Rijndael
為什麼具有 256 位塊的 Rijndael 要求底部兩行比平時多移動一個空間?
來自維基百科:
對於 256 位塊,第一行不變,第二、第三和第四行的移位分別為 1 字節、3 字節和 4 字節。
為什麼改變?與使用其他鍵大小一樣使用 0、1、2、3 有什麼區別嗎?
該變體直接實現了 NIST 提案中指定的 Rinjdael 的 ShiftRow(第 4.2.2 節),為 128、192 和 256 位塊大小(Nb=4、6 和 8)定義了 Shitftrows。
粗略地說,偏移量改善了連續輪密碼的混合(擴散)特性。更準確地說,作者將他們的動機(第 7.4 節)表述為:
ShiftRow 偏移量
已根據以下標準從所有可能的組合中進行選擇:
- 四個偏移量不同,C0 = 0;
- 使用截斷差分抵抗攻擊$$ Kn95 $$;
- 抵抗廣場攻擊$$ DaKnRi97 $$;
- 簡單
對於某些組合,使用截斷差分的攻擊可以處理比其他組合更多的回合(通常只有一個)。對於某些組合,Square 攻擊可以處理比其他組合更多的回合。從最符合標準 2 和 3 的組合中,選擇了最簡單的組合。