簡述CAST加密算法

在AES算法的海選中,涌現(xiàn)了許多優(yōu)秀的算法,雖然很多沒有最終當選,但也同樣十分優(yōu)秀,今天我們就來了解其中一種競選算法——CAST算法

CAST算法簡介

CAST算法是由Carliasle Adams和Stafford Tavares分別于1996年和1998年提出的,包括CAST5(也稱CAST-128)和CAST6(也稱CAST-256)兩種,其中CAST5是一種類似DES的置換組合網絡(SPN)加密系統(tǒng),而CAST6是作為AES的競選算法提出的。

CAST5是一種12或16循環(huán)的Feistel密碼,塊長度為64位,密鑰長度可變,從40位到128位按8位遞增,并且只有當密鑰長度大于80位時,才允許使用16循環(huán)。

CAST6是一種48循環(huán)的Feistel密碼,塊長度位128位,密鑰長度可變,從128位到256位按32位遞增。

CAST128和CAST5是一樣的,不是指使用128位密鑰。為區(qū)分不同密鑰長度的操作,在算法名后需要加上密鑰長度,如使用40位密鑰時表示為CAST5-40,使用128位密鑰時表示為CAST5-128。

CAST算法

CAST算法加密過程

CAST-128整個加密過程分為密鑰預處理和信息加密兩個過程。密鑰預處理過程是根據輸入的 128 位密鑰,通過一系列的S-盒置換生成 16 對子密鑰。信息加密是把輸入的 64 位信息分為左右兩半 L0 和 R0,通過一系列的循環(huán)變換生成 L16 和 R16,然后連接 L16 和 R16 就是輸出的密文。對 Cast-128 算法解密也要分為密鑰預處理和信息解密兩個過程。密鑰預處理和加密的時候完全相同,輸入的密鑰表也一樣。而信息解密是把加密時的一系列循環(huán)變換倒過來,按相反的順序從 L16 和 R16 計算出 L0 和 R0。

CAST算法

CAST-256和CAST-128的關系

CAST-256可以看作CAST-128的擴展版本,同樣采用CAST算法設計過程,它的分組長度為128比特,密鑰長度為256比特,采用含有4個分支的廣義Feistel結構。因為CAST-128和CAST-256擁有良好的密碼學性質,并被廣泛地使用,使得它們受到了密碼學家的廣泛關注。

免責聲明:素材源于網絡,如有侵權,請聯(lián)系刪稿。