【CAST-128加密算法】本備忘錄的狀態(tài)
本備忘錄為Internet社區(qū)提供信息,但沒(méi)有定義任何類型的Internet標(biāo)準(zhǔn) 。本備忘錄的
發(fā)布沒(méi)有限制 。
摘要
Internet社區(qū)需要一種不受限制的加密算法,這種算法的密碼長(zhǎng)度應(yīng)該答應(yīng)在較大范圍
內(nèi)變動(dòng),以便用于各種不同的加密應(yīng)用程序和協(xié)議中提供安全性 。
本文檔描述了一種已經(jīng)存在的算法,可以滿足這些要求 。內(nèi)容包括:密碼和密鑰安排算
法(第二節(jié))的描述,置換箱(附錄A)以及一組測(cè)試向量(附錄B) 。
目錄
1 簡(jiǎn)介 1
2 算法的描述 2
2.1 循環(huán)密鑰對(duì) 2
2.2 不同的循環(huán) 2
2.3 置換箱(SubstitutionBoxes) 3
2.4 密鑰表 3
2.4.1.掩碼子鑰與旋轉(zhuǎn)子鑰 4
2.5 可變的密鑰長(zhǎng)度 5
2.6 CAST5對(duì)象標(biāo)識(shí)符 5
2.7 討論 6
3 知識(shí)產(chǎn)權(quán)的問(wèn)題 6
4 安全性的問(wèn)題 6
5 參考 6
6 作者地址 7
7 附錄A置換箱(S-Boxes) 7
8 附錄B.測(cè)試向量 13
1 簡(jiǎn)介
本文檔描述了CAST-128加密算法,這是一種類似于DES的置換組合網(wǎng)路
(Substitution-PermutationNetwork,SPN)加密系統(tǒng),對(duì)于微分密碼分析、線性密碼分析、
密碼相關(guān)分析具有較好的反抗力 。這種加密還有其他的幾個(gè)理想的特點(diǎn),包括雪崩、嚴(yán)格的
雪崩標(biāo)準(zhǔn)(SAC)、位獨(dú)立標(biāo)準(zhǔn)(BIC)、沒(méi)有互補(bǔ)屬性也不存在軟弱或者半軟弱的密鑰 。因
此對(duì)于整個(gè)Internet社區(qū)——要求密碼強(qiáng)壯、輕易獲取的加密算法——而言,這是一種能夠
滿足一般應(yīng)用的很好的選擇 。
Adams[Adams]具體地討論了CAST設(shè)計(jì)過(guò)程,對(duì)于這種算法的分析也可以在網(wǎng)上找到
(比如,[Web1]或[Web2]) 。
2 算法的描述
CAST-128屬于稱為Feistel加密的一類加密算法,因此所有的操作都類似于數(shù)據(jù)加密標(biāo)
準(zhǔn)(DES) 。完整的加密算法分下面四步給出 。
輸入:明文m1...m64;密鑰K=k1...k128
輸出:密文c1...c64
1)(密鑰表)從K計(jì)算出16對(duì)子鑰(Kmi,Kri)(參見(jiàn)2.1到2.4節(jié));
2)(L0,R0)<--(m1...m64)(把明文分為左右兩半,L0=m1…m32,R0=m33…m64);
3)(循環(huán)16次)對(duì)于i從1到16,按下述方法計(jì)算Li和Ri:
Li=Ri-1;
Ri=Li-1^f(Ri-1,Kmi,Kri),其中f在第2.2節(jié)中定義 。(f根據(jù)i的不同,可以是
Type1、Type2或者Type3)
4)c1...c64<--(R16,L16)(交換最終得到的L16和R16并連接在一起構(gòu)成密文 。)
解密算法與上述加密算法一致,只不過(guò)循環(huán)(因此還有子鑰對(duì))是按照相反的順序從
(R16,L16)計(jì)算出(L0,R0) 。
可以使用附錄B中的測(cè)試向量驗(yàn)證該算法的正確性 。
2.1 循環(huán)密鑰對(duì)
CAST-128在每次循環(huán)中使用以對(duì)子鑰:32位量Km作為“掩碼”,5位量Kr用作“旋
轉(zhuǎn)碼” 。
2.2 不同的循環(huán)
CAST-128使用三種不同的循環(huán)函數(shù),如下所示(其中“D”是輸入函數(shù)f的數(shù)據(jù),“Ia”
到“Id”分別表示I中從高到低的4個(gè)字節(jié)) 。注重“ ”和“-”是以2**32為模的加減法,
“^”是位異或,“<<<”表示循環(huán)左移操作 。
Type1:I=((Kmi D)<<
Type2:I=((Kmi^D)<<
Type3:I=((Kmi-D)<<
循環(huán)1、4、7、10、13和16使用f函數(shù)Type1;
循環(huán)2、5、8、11和14使用f函數(shù)Type2;
循環(huán)3、6、9、12和15使用f函數(shù)Type3 。
2.3 置換箱(SubstitutionBoxes)
CAST-128使用8個(gè)置換箱:置換箱(s-box)S1、S2、S3和S4是循環(huán)置換箱,S5、S6、
S7和S8是密鑰表置換箱 。盡管8個(gè)置換箱總共需要8K字節(jié)的內(nèi)存,但是要注重在實(shí)際加
推薦閱讀
- HTTP遠(yuǎn)程變量選擇算法—RVSA/1.0
- PKCS#1:RSA加密 版本1.5
- 等價(jià)多徑算法的分析
- ESP CBC模式加密算法
- NULL加密算法及其在IPsec協(xié)議中的應(yīng)用
- 聯(lián)想z5s中為應(yīng)用加密具體操作步驟
- vivox23幻彩版開(kāi)啟應(yīng)用指紋加密
- Moboplayer怎么文件夾加密
- 如何判斷一個(gè)算法的好壞
- 1 RIP協(xié)議V-D算法的介紹
