関連データによる確定的認証付き暗号化(確定的 AEAD)

確定的 AEAD は、確定的性質による暗号化を提供します。つまり、同じデータを暗号化しても常に同じ暗号テキストが生成されます。このタイプの暗号化は、鍵のラッピングや、暗号化されたデータを検索する一部のスキームで役立ちます(詳しくは RFC 5297、セクション 1.3 をご覧ください)。このプリミティブの実装は確定的な性質を持つため、秘匿性の低下につながる可能性があります。攻撃者は、特定のメッセージの暗号テキストを確認すれば、そのメッセージの他のインスタンスを識別できるためです。

決定論的な AEAD には次の特性があります。

  • 秘匿性: 平文の長さと繰り返されている平文の同等性を除き、平文については何も知られていません。
  • 真正性: 暗号テキストの基となる暗号化された平文を検出せずに変更することはできません。
  • 対称性: 平文の暗号化と暗号テキストの復号は、同じ鍵で行われます。
  • 確定的: 主キーが変更されない限り、同じパラメータで平文を 2 回暗号化すると、同じ暗号テキストになります。

関連データ

確定的 AEAD は、暗号テキストを特定の関連データに結び付けるためにも使用できます。データベースに user-id フィールドと encrypted-medical-history フィールドがあるとします。このシナリオでは、encrypted-medical-history を暗号化するときに user-id を関連データとして使用できます。これにより、攻撃者がユーザー間で医療履歴を移動するのを防ぐことができます。

キータイプの選択

すべてのユースケースで、AES256_SIV 鍵タイプをおすすめします。

セキュリティ保証

  • 認証強度が 80 ビット以上である。
  • 平文と関連データは任意の長さ(0..232 バイトの範囲)にすることができます。
  • 鍵復旧攻撃に対する 128 ビットのセキュリティ レベル、および最大 232 の鍵を使用したマルチユーザー攻撃の場合。つまり、攻撃者が 232 の鍵で暗号化された同じメッセージの 232 暗号テキストを取得した場合、単一の鍵を取得するために 2128 の計算を行う必要があります。
  • 238 個のメッセージを安全に暗号化できます(各メッセージの長さが 1 MB 未満の場合)。

使用例

データを確定的に暗号化する暗号テキストをそのコンテキストにバインドするをご覧ください。