Aes

Rijndael 的 AES 密鑰和塊長度子集是如何選擇的?

  • May 12, 2012

我的直覺告訴我這是速度和安全性之間的權衡,但是標準化過程是如何選擇這三個看似任意的密鑰長度(即 AES-128、AES-192、AES-256)的。

在Paŭlo 評論的提示下,我查看了為 AES 候選人設定的原始要求。一個有用的頁面原來是NIST 網站上的AES - The Early Years (1997-98)(並且在那裡很難找到;內部連結已損壞,Google也找不到它)。

AES 密鑰長度在 1997 年 9 月 12 日在聯邦公報上發布的 AES 候選算法提名的原始請求中指定,第 3 節,最低可接受性要求(強調原始):

“候選算法應能夠支持大小為 128-128、192-128 和 256-128 位的 key-block 組合**。送出算法可能支持**其他 key-block 大小和組合,這些特徵將被納入分析和評估時的考慮。”

那麼這些鍵/塊大小組合是從哪裡來的呢?在1997 年 1 月 2 日發佈在《聯邦公報》上的較早的“宣布開發高級加密標準的聯邦資訊處理標準”的通知中,“擬議的最低可接受性要求和評估標準草案”包括:

“A.3 AES 的設計應使密鑰長度可以根據需要增加。”

這一提議的要求收到了許多評論,並在 1997 年 4 月 15 日的 AES 研討會上進行了討論。布魯斯·施奈爾在他的研討會筆記中寫道:

“隨後進行了討論。午餐前的所有爭論都是關於塊和密鑰大小的。很快就消除了 64 位和 80 位的塊大小,以及 64 位密鑰大小。人們想要 128、192、256 的某個子集的可變密鑰大小,甚至 512 位,以及 128 位或 128 和 256 位的塊大小。沒有討論流密碼,或使用塊密碼作為散列函式。

顯然,NIST 最低要求以及後來的 AES 標準中指定的三種密鑰大小和一種塊大小至少部分是基於這些討論選擇的。

附言。我已經看到它聲稱,例如 Thomas Pornin 在這個答案中,三個密鑰長度“主要是為了滿足一些美國軍事法規,這些法規要求存在幾個不同的‘安全級別’ ”。上面引用的註釋和評論強烈地向我表明,這可能不是決定需要多個密鑰長度的唯一原因,儘管它肯定是一個原因。無論如何,如果有人能真正指出需要這些不同安全級別的特定法規(假設它們是公開可用的),我很想看看它們。

引用自:https://crypto.stackexchange.com/questions/2593