相關資料的確定性驗證加密 (確定性 AEAD)

確定性 AEAD (Deterministic Authenticated Encryption with Associated Data) 基本體提供具有確定性的加密功能:加密相同資料一律會產生相同密文。這類加密方式適用於金鑰包裝,或用於某些加密資料搜尋機制 (詳情請參閱 RFC 5297 第 1.3 節)。由於這項基本元素的決定性屬性,實作這項元素可能會導致機密性喪失,因為攻擊者只需要找出特定訊息的密文,就能識別該訊息的其他例項。

決定性 AEAD 具有下列屬性:

  • Secrecy:除了長度和重複明文的相等性之外,明文的任何資訊都不會洩漏。
  • 真實性:如果想變更密文底層的加密純文字,一定會遭到偵測。
  • 對稱式:使用相同金鑰加密明文和解密密文。
  • 決定性:只要主要金鑰未變更,使用相同參數加密明文兩次,就會產生相同密文。

相關資料

確定性 AEAD 可用來將密文繫結至特定相關聯資料。假設您有一個資料庫,其中包含 user-idencrypted-medical-history 欄位。在這種情況下,加密 encrypted-medical-history 時,user-id 可做為相關聯的資料。這可防止攻擊者將醫療記錄從一位使用者轉移給另一位使用者。

關聯資料為選用項目。如果指定了關聯資料,則只有在加密和解密呼叫中傳遞相同的關聯資料時,解密才會成功。

選擇車鑰類型

建議您在所有用途中都使用 AES256_SIV 金鑰類型。

安全保障

  • 驗證強度至少為 80 位元。
  • 明文和相關聯的資料長度不限 (在 0 到 232 位元組的範圍內)。
  • 可抵禦金鑰復原攻擊,且在多使用者攻擊中,最多可抵禦 232 個金鑰,也就是說,如果攻擊者取得以 232 個金鑰加密的同一則訊息的 232 個密文,就必須執行 2128 次運算才能取得單一金鑰。
  • 安全加密 238 封郵件,前提是每封郵件的長度都小於 1 MB。

用途範例

請參閱「我想以決定性方式加密資料」和「我想將密文繫結至其內容」。