確定性 AEAD 會提供「確定性」屬性加密:加密相同資料一律會產生相同的密文。這種加密方式適用於金鑰包裝,或是針對加密資料搜尋某些配置 (詳情請參閱 RFC 5297 的第 1.3 節)。由於這種原始屬性具有確定性,因此實作此原始動作可能會導緻密碼遺失,因為攻擊者只需要找出指定訊息的密文,就能識別該訊息的其他執行個體。
確定性 AEAD 具備下列屬性:
- 安全性:除了明文的長度和重複明文的相等外,文中其他任何資訊皆無法得知。
- 真實性:在未偵測到的情況下,您無法變更加密明文的基礎密文。
- 對稱式:如要加密明文及解密密文,系統會使用相同的金鑰。
- 確定性:只要主鍵未變更,使用相同參數加密兩次明文就會產生相同的密文。
相關資料
確定性 AEAD 也可用來將密文連結至特定相關資料。假設您有一個包含 user-id
和 encrypted-medical-history
欄位的資料庫。在這種情況下,user-id
在加密 encrypted-medical-history
時可做為關聯資料使用。這可以防止攻擊者將病歷轉移到其他使用者。
選擇金鑰類型
我們建議所有用途均採用 AES256_SIV 金鑰類型。
安全性保證
- 至少 80 位元驗證強度。
- 明文和相關聯的資料可以有任意長度 (在 0..232 個位元組範圍內)。
- 可抵禦金鑰復原攻擊以及最多使用者攻擊 (最多 232 組金鑰) 的 128 位元安全等級。也就是說,若攻擊者取得在 232 金鑰下加密的同一訊息 232 個密文,就必須進行 2128 運算,以取得單一金鑰。
- 能夠安全加密 238 則訊息 (前提是每則訊息的長度不超過 1 MB)。
範例應用實例
請參閱「我想加密資料」和「我想根據結構定義繫結密文」。