3

私はC#のGCMモードでAES暗号を実装しています。私の質問は「追加の認証済みデータ」(AAD)に関するものです。次のコードでは

http://blogs.msdn.com/b/shawnfa/archive/2009/03/17/authenticated-symmetric-encryption-in-net.aspx

AADをどこから取得する必要があるのか​​、および復号化中にこの暗号化に固有のAADを取得する方法は不明です。

// Authenticated data becomes part of the authentication tag that is generated during
// encryption, however it is not part of the ciphertext.  That is, when decrypting the
// ciphertext the authenticated data will not be produced.  However, if the
// authenticated data does not match at encryption and decryption time, the
// authentication tag will not validate.
aes.AuthenticatedData = Encoding.UTF8.GetBytes("Additional authenticated data");

このAADの使用方法についての説明をいただければ幸いです。ありがとう

4

1 に答える 1

12

AADは、AdditionalAuthenticatedDataまたはAdditionalAssociatedDataの略です。これは、暗号文と一緒に平文で送信できるデータです。AEAD暗号の検証と復号化を組み合わせて実行すると、暗号文とAADの両方の整合性が検証されます。

AADデータはキーではありません。完全性のために保護する必要があるが、暗号化を必要としない(または、より論理的には役に立たない)プロトコルに含めることができる単なるデータです。良い例は、暗号化されたIPパケットのヘッダーです。暗号化するとルーティングに使用できなくなり、整合性を保護しないと、攻撃者は受信者に気付かれずにメッセージの長さや送信元アドレスを変更する可能性があります。

AEAD暗号には、認証タグの計算にすでにIV/nonceが含まれていることに注意してください。したがって、AADに含める必要はありません。AADは、送信者、受信者、場合によってはメッセージ識別番号を含めるためによく使用されます。これがメッセージの暗号化された部分の外部にある場合です。

于 2012-07-17T20:56:50.893 に答える