2013-09-21 458 views
2

在AES密鑰計劃教程中,我看到密鑰計劃(rotate,rcon,s-box)的操作應用於一個4字節的單詞。請你解釋這個單詞來自哪裏?我知道我從128位長的密鑰中提取它。密鑰保存爲4x4矩陣。我怎樣才能獲得用於密鑰計劃的單詞?也許這是一個容易的問題,但我不明白。謝謝。AES密鑰計劃

+2

這些問題最好在crypto.stackexchange.com上提問(當然,如果不存在的話)。 –

回答

2

它的解釋here (with some code)。它是「迄今爲止」擴展鍵的最後4個字節。

  1. 您以128位(16字節)鍵開頭。擴展密鑰的前16個字節是那些字節。

  2. 你取最後4個字節的那個,做(rotate,rcon,s-box)舞蹈,並且得到4個字節,你用4個字節提前16個字節(所以,第一次,在密鑰的開始),並將其附加到擴展密鑰。

  3. 您將擴展密鑰的最後4個字節(您剛剛添加的內容)與異或字節16位字節「返回」(所以第一次是字節5到8)並將結果追加到擴展密鑰。

  4. 您重複3次另外2次,每次使用擴展密鑰的最後4個字節。

  5. 從2開始重複,直到獲得所需的總擴展長度。

所以總是使用最後附加到擴展鍵的4個字節。你用16個字節的「部分」來完成,其中該部分的前4個字節是使用(rotate,rcon,s-box)「初始化」的。

它也在the standard的第5.2節中有所解釋,稍有不同(以及可能會更清楚地回答您的問題)。他們將它描述爲始終佔用最後4個字節,並且每4次用4個字節的16個字節先前PLUS來執行(旋轉,rcon,s-box)舞蹈。這更清楚地表明上述步驟2和3中的xor是「相同的」。

對於較長的鍵,您可以調整上述的一些常量(這樣您可以做更長的「節」)。