AES-Rijndael算法

Rijndael(發音為rain-dahl)是美國國家標準與技術研究院(NIST)選擇的算法,作為高級加密標準(AES)的候選者。它是從五個入圍者的名單中選出的,這些入圍者本身是從超過15份提交的原始列表中選出的。Rijndael將在未來幾年內在許多加密應用程序中開始取代數據加密標準(DES) - 以及後來的Triple DES 。該算法由兩名比利時密碼學家Vincent Rijmen和Joan Daemen設計,他們的姓氏以密碼的名字反映出來。Rijndael起源於Square,這是兩位密碼學家之間的早期合作。

AES-Rijndael算法

Rijndael算法是新一代對稱分組密碼,支持128,192和256位的密鑰大小,數據以128位塊處理 - 但是,超過AES設計標準,塊大小可以反映密鑰的大小。Rijndael使用可變數量的輪次,具體取決於密鑰/塊大小,如下所示:

如果密鑰/塊大小為128位,則為9輪

如果密鑰/塊大小為192位,則為11輪

如果密鑰/塊大小為256位,則為13輪

Rijndael是替換線性變換密碼,不需要Feistel網絡。它使用三重離散的可逆均勻變換(層)。具體來說,這些是:線性混合變換; 非線性變換和密鑰加法變換。即使在第一輪之前,也會執行簡單的密鑰添加層,這增加了安全性。此後,有Nr-1輪,然後是最後一輪。轉換在開始時但在整個過程完成之前形成一個狀態。

狀態可以被認為是一個數組,由4行構成,列號是塊長度除以比特長度(例如,除以32)。密鑰類似地是具有4行的數組,但是密鑰長度除以32以給出列數。這些塊可以解釋為4字節向量的一維數組。

確切的轉換髮生如下:字節子轉換是非線性的,並且獨立地對每個狀態字節進行操作 - 可逆S-box(替換表)由2個轉換組成。shiftrow變換看到狀態轉移到可變偏移。移位偏移值取決於State的塊長度。混合列變換看到狀態列採用伽羅瓦域值(28)上的多項式特徵,乘以x4 + 1(模)與固定多項式。最後,roundkey變換與狀態異或。密鑰安排有助於密碼密鑰通過密鑰擴展和輪選擇來確定輪密鑰。

總的來說,Rijndael的結構顯示了高度的模塊化設計,應該對未來開發的任何攻擊進行修改,這比過去的算法設計要簡單得多。

Rijndael是最好的選擇嗎?

我們的密碼學專家Borys Pawliw評論道:“AES選擇始終是一個妥協,平衡各種因素,如整體安全性,性能和效率。因此,任何一種算法的選擇都不太可能獲得一致好評Rijndael的選擇受到了一些人的批評,因為該算法似乎並不像其他一些選擇那樣安全。

AES-Rijndael算法

這種批評在理論上是有效的,但並不意味著使用該算法保護的數據將不可接受地受到攻擊。儘管從學術角度來看Rijndael可能不是最安全的算法,但是維護者聲稱它對現實世界中的所有應用程序來說足夠安全,並且可以通過簡單地添加更多輪次來增強。對算法的攻擊只在極其有限的環境中取得了成功,雖然從數學角度來看很有趣,但在現實世界中似乎沒什麼影響。“


分享到:


相關文章: