AWS Encryption SDK 初始化向量參考 - AWS Encryption SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Encryption SDK 初始化向量參考

本頁面上提供的參考可讓您建置自己的並與 AWS Encryption SDK相容的加密儲存庫。如果您不是自己建置相容的加密儲存庫,可能不需要此資訊。

若要在其 AWS Encryption SDK 中一種受支援的程式設計語言中使用,請參閱程式設計語言

如需定義適當 AWS Encryption SDK 實作之元素的規格,請參閱中的AWS Encryption SDK 規格 GitHub。

會提 AWS Encryption SDK 供所有支援演算法套件所需的初始化向量 (IV)。開發套件使用框架序號來建構 IV,因此同一訊息沒有兩個框架可使用相同的 IV。

每個 96 位元 (12 位元組) IV 由兩個大端序位元組陣列建構得來,並以下列順序串連:

  • 64 位元:0 (保留以供日後使用)。

  • 32 位元:框架序號。對於標頭驗證標籤,這個值全是零。

在引進資料金鑰快取之前, AWS Encryption SDK 一直使用新的資料金鑰來加密每則訊息,並隨機產生所有 IV。因為資料金鑰從未重複使用,因此隨機產生的 IV 在密碼演算法上是安全的。當開發套件引進資料金鑰快取 (特意重複使用資料金鑰),我們也變更開發套件產生 IV 的方式。

在訊息中使用無法重複的決定性 IV,會大幅增加可在單一資料金鑰下安全執行的呼叫數量。此外,快取的資料金鑰一律使用演算法套件搭配金鑰衍生函數。使用具有虛擬隨機金鑰衍生函數的確定性 IV,從資料金鑰衍生加密金鑰可讓您在不超過加密界限的情況下 AWS Encryption SDK 加密 2^32 個訊息。