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

関連データによる確定的認証付き暗号化(確定的 AEAD)プリミティブは、確定的な暗号化を提供します。同じデータを暗号化しても、常に同じ暗号テキストが生成されます。このタイプの暗号化は、鍵のラップや、暗号化されたデータの検索に使用されるスキームに役立ちます(詳細については、RFC 5297 のセクション 1.3 をご覧ください)。このプリミティブは確定的であるため、攻撃者は特定のメッセージの暗号文を特定するだけで、そのメッセージの他のインスタンスを特定できるため、このプリミティブを実装すると秘密性が失われる可能性があります。

確定的 AEAD には次の特性があります。

  • Secrecy: 平文については、長さと繰り返しの平文の等価性以外は何もわかりません。
  • 真正性: 暗号テキストの基になる暗号化された平文を検出されることなく変更することはできません。
  • 対称: 平文の暗号化と暗号テキストの復号は、同じ鍵で行われます。
  • 確定的: 主キーが変更されない限り、同じパラメータで平文を 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 未満の場合)。

使用例

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