CryptographicEngine.EncryptAndAuthenticate メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
認証された暗号化を実行します。
public:
static EncryptedAndAuthenticatedData ^ EncryptAndAuthenticate(CryptographicKey ^ key, IBuffer ^ data, IBuffer ^ nonce, IBuffer ^ authenticatedData);
static EncryptedAndAuthenticatedData EncryptAndAuthenticate(CryptographicKey const& key, IBuffer const& data, IBuffer const& nonce, IBuffer const& authenticatedData);
public static EncryptedAndAuthenticatedData EncryptAndAuthenticate(CryptographicKey key, IBuffer data, IBuffer nonce, IBuffer authenticatedData);
function encryptAndAuthenticate(key, data, nonce, authenticatedData)
Public Shared Function EncryptAndAuthenticate (key As CryptographicKey, data As IBuffer, nonce As IBuffer, authenticatedData As IBuffer) As EncryptedAndAuthenticatedData
パラメーター
- key
- CryptographicKey
暗号化に使用する対称キー。
- data
- IBuffer
暗号化および認証されるデータ。
- nonce
- IBuffer
使用する Nonce。 nonce は、繰り返しの可能性が最小限の変数です。 たとえば、使用ごとに新しく生成されるランダムな値、タイム スタンプ、シーケンス番号、またはこれらの組み合わせを使用できます。 Microsoft GCM の実装には、12 バイトの nonce が必要です。 CCM 実装には、7 バイトから 13 バイトの nonce が必要です。
- authenticatedData
- IBuffer
認証済みデータ。 Null を指定できます。
戻り値
暗号化および認証されたデータ。メソッドが失敗した場合、認証は失敗します。メソッドが成功した場合は、認証も成功しました。
例
public void AuthenticatedDecryption(
String strAlgName,
CryptographicKey key,
EncryptedAndAuthenticatedData objEncrypted,
BinaryStringEncoding encoding,
IBuffer buffNonce)
{
// Declare a buffer to contain the decrypted data.
IBuffer buffDecrypted;
// Open a SymmetricKeyAlgorithmProvider object for the specified algorithm.
SymmetricKeyAlgorithmProvider objAlgProv = SymmetricKeyAlgorithmProvider.OpenAlgorithm(strAlgName);
// The input key must be securely shared between the sender of the encrypted message
// and the recipient. The nonce must also be shared but does not need to be shared
// in a secure manner. If the sender encodes the message string to a buffer, the
// binary encoding method must also be shared with the recipient.
// The recipient uses the DecryptAndAuthenticate() method as follows to decrypt the
// message, authenticate it, and verify that it has not been altered in transit.
buffDecrypted = CryptographicEngine.DecryptAndAuthenticate(
key,
objEncrypted.EncryptedData,
buffNonce,
objEncrypted.AuthenticationTag,
null);
// Convert the decrypted buffer to a string (for display). If the sender created the
// original message buffer from a string, the sender must tell the recipient what
// BinaryStringEncoding value was used. Here, BinaryStringEncoding.Utf8 is used to
// convert the message to a buffer before encryption and to convert the decrypted
// buffer back to the original plaintext.
String strDecrypted = CryptographicBuffer.ConvertBinaryToString(encoding, buffDecrypted);
}
注釈
認証された暗号化は、1 回の操作でコンテンツを暗号化および認証します。 認証子 (タグとも呼ばれます) は暗号化中に使用され、プロセスの出力にはタグと暗号テキストのペアが含まれています。 詳細については、 AuthenticationTag プロパティと EncryptedData プロパティに関するページを 参照してください。 暗号化解除プロセスは、タグに対して暗号テキストを検証します。
認証された暗号化アルゴリズムは、SymmetricKeyAlgorithmProvider クラスで OpenAlgorithm メソッドを呼び出し、開くアルゴリズムの名前を指定した後で使用できます。 認証された暗号化と暗号化解除では、次のアルゴリズム名がサポートされています。
- SymmetricAlgorithmNames.AesGcm
- SymmetricAlgorithmNames.AesCcm 次のコード例を含む完全なサンプルについては、 EncryptedAndAuthenticatedData クラスを参照してください。