亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rfc2144.txt

?? RFC規范的翻譯稿
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
組織:中國互動出版網(http://www.china-pub.com/)
RFC文檔中文翻譯計劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:王安鵬(anpengwang    anpengwang@263.net)
譯文發布時間:2001-8-22
版權:本中文翻譯文檔版權歸中國互動出版網所有。可以用于非商業用途自由轉載,但必須
保留本文檔的翻譯及版權信息。


Network Working Group                                         C. Adams
Request for Comments: 2144                        Entrust Technologies
Category: Informational                                       May 1997

CAST-128加密算法
(RFC2144——The CAST-128 Encryption Algorithm )

本備忘錄的狀態
本備忘錄為Internet社區提供信息,但沒有定義任何類型的Internet標準。本備忘錄的
發布沒有限制。

摘要
Internet社區需要一種不受限制的加密算法,這種算法的密碼長度應該允許在較大范圍
內變動,以便用于各種不同的加密應用程序和協議中提供安全性。
本文檔描述了一種已經存在的算法,可以滿足這些要求。內容包括:密碼和密鑰安排算
法(第二節)的描述,置換箱(附錄A)以及一組測試向量(附錄B)。
目錄
1	簡介	1
2	算法的描述	2
2.1	循環密鑰對	2
2.2	不同的循環	2
2.3	置換箱(Substitution Boxes)	3
2.4	密鑰表	3
2.4.1. 掩碼子鑰與旋轉子鑰	4
2.5	可變的密鑰長度	5
2.6	CAST5對象標識符	5
2.7	討論	6
3	知識產權的問題	6
4	安全性的問題	6
5	參考	6
6	作者地址	7
7	附錄A  置換箱(S-Boxes)	7
8	附錄B. 測試向量	13

1	簡介
本文檔描述了CAST-128加密算法,這是一種類似于DES的置換組合網路
(Substitution-Permutation Network,SPN)加密系統,對于微分密碼分析、線性密碼分析、
密碼相關分析具有較好的抵抗力。這種加密還有其他的幾個理想的特點,包括雪崩、嚴格的
雪崩標準(SAC)、位獨立標準(BIC)、沒有互補屬性也不存在軟弱或者半軟弱的密鑰。因
此對于整個Internet社區——要求密碼強壯、容易獲取的加密算法——而言,這是一種能夠
滿足一般應用的很好的選擇。
Adams[Adams]詳細地討論了CAST設計過程,對于這種算法的分析也可以在網上找到
(比如,[Web1]或[Web2])。

2	算法的描述
CAST-128屬于稱為Feistel加密的一類加密算法,因此所有的操作都類似于數據加密標
準(DES)。完整的加密算法分下面四步給出。
輸入:明文m1...m64; 密鑰 K = k1...k128
輸出:密文c1...c64
1)(密鑰表)從K計算出16對子鑰(Kmi, Kri)(參見2.1到2.4節);
2)(L0,R0) <-- (m1...m64)(把明文分為左右兩半,L0=m1…m32,R0=m33…m64);
3)(循環16次)對于i從1到16,按下述方法計算Li和Ri:
      Li = Ri-1;
      Ri = Li-1 ^ f(Ri-1,Kmi,Kri), 其中f在第2.2節中定義。(f根據i的不同,可以是
Type 1、Type 2或者Type 3)
4)c1...c64 <-- (R16,L16) (交換最終得到的L16和R16并連接在一起構成密文。)
解密算法與上述加密算法一致,只不過循環(因此還有子鑰對)是按照相反的順序從
(R16,L16)計算出(L0,R0)。
可以使用附錄B中的測試向量驗證該算法的正確性。

2.1	循環密鑰對
CAST-128在每次循環中使用以對子鑰:32位量Km作為“掩碼”,5位量Kr用作“旋
轉碼”。

2.2	不同的循環
CAST-128使用三種不同的循環函數,如下所示(其中“D”是輸入函數f的數據,“Ia”
到“Id”分別表示I中從高到低的4個字節)。注意“+”和“-”是以2**32為模的加減法,
“^”是位異或,“<<<”表示循環左移操作。
       Type 1:  I = ((Kmi + D) <<< Kri)
                f = ((S1[Ia] ^ S2[Ib]) - S3[Ic]) + S4[Id]
       Type 2:  I = ((Kmi ^ D) <<< Kri)
                f = ((S1[Ia] - S2[Ib]) + S3[Ic]) ^ S4[Id]
       Type 3:  I = ((Kmi - D) <<< Kri)
                f = ((S1[Ia] + S2[Ib]) ^ S3[Ic]) - S4[Id]
   循環1、4、7、10、13和16 使用f 函數Type 1;
   循環2、5、8、11和14 使用f函數Type 2;
   循環3、6、9、12和15使用f 函數Type 3。

2.3	置換箱(Substitution Boxes)
CAST-128使用8個置換箱:置換箱(s-box)S1、S2、S3和S4是循環置換箱,S5、S6、
S7和S8是密鑰表置換箱。盡管8個置換箱總共需要8K字節的內存,但是要注意在實際加
密/解密過程中只需要4K字節,因為子鑰的產生通常在輸入數據之前就完成了。
置換箱S1-S8的內容參見附錄A。

2.4	密鑰表
假設128位的密鑰是x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF,其中x0是最高位的字節,
xF是最低位的字節。
令z0…zF是中間(臨時)字節。
令S[i]表示置換箱i,“^”代表異或加。
按照下述公式從密鑰x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF生成子鑰:
   z0z1z2z3 = x0x1x2x3 ^ S5[xD] ^ S6[xF] ^ S7[xC] ^ S8[xE] ^ S7[x8]
   z4z5z6z7 = x8x9xAxB ^ S5[z0] ^ S6[z2] ^ S7[z1] ^ S8[z3] ^ S8[xA]
   z8z9zAzB = xCxDxExF ^ S5[z7] ^ S6[z6] ^ S7[z5] ^ S8[z4] ^ S5[x9]
   zCzDzEzF = x4x5x6x7 ^ S5[zA] ^ S6[z9] ^ S7[zB] ^ S8[z8] ^ S6[xB]
   K1  = S5[z8] ^ S6[z9] ^ S7[z7] ^ S8[z6] ^ S5[z2]
   K2  = S5[zA] ^ S6[zB] ^ S7[z5] ^ S8[z4] ^ S6[z6]
   K3  = S5[zC] ^ S6[zD] ^ S7[z3] ^ S8[z2] ^ S7[z9]
   K4  = S5[zE] ^ S6[zF] ^ S7[z1] ^ S8[z0] ^ S8[zC]
   x0x1x2x3 = z8z9zAzB ^ S5[z5] ^ S6[z7] ^ S7[z4] ^ S8[z6] ^ S7[z0]
   x4x5x6x7 = z0z1z2z3 ^ S5[x0] ^ S6[x2] ^ S7[x1] ^ S8[x3] ^ S8[z2]
   x8x9xAxB = z4z5z6z7 ^ S5[x7] ^ S6[x6] ^ S7[x5] ^ S8[x4] ^ S5[z1]
   xCxDxExF = zCzDzEzF ^ S5[xA] ^ S6[x9] ^ S7[xB] ^ S8[x8] ^ S6[z3]
   K5  = S5[x3] ^ S6[x2] ^ S7[xC] ^ S8[xD] ^ S5[x8]
   K6  = S5[x1] ^ S6[x0] ^ S7[xE] ^ S8[xF] ^ S6[xD]
   K7  = S5[x7] ^ S6[x6] ^ S7[x8] ^ S8[x9] ^ S7[x3]
   K8  = S5[x5] ^ S6[x4] ^ S7[xA] ^ S8[xB] ^ S8[x7]
   z0z1z2z3 = x0x1x2x3 ^ S5[xD] ^ S6[xF] ^ S7[xC] ^ S8[xE] ^ S7[x8]
   z4z5z6z7 = x8x9xAxB ^ S5[z0] ^ S6[z2] ^ S7[z1] ^ S8[z3] ^ S8[xA]
   z8z9zAzB = xCxDxExF ^ S5[z7] ^ S6[z6] ^ S7[z5] ^ S8[z4] ^ S5[x9]
   zCzDzEzF = x4x5x6x7 ^ S5[zA] ^ S6[z9] ^ S7[zB] ^ S8[z8] ^ S6[xB]
   K9  = S5[z3] ^ S6[z2] ^ S7[zC] ^ S8[zD] ^ S5[z9]
   K10 = S5[z1] ^ S6[z0] ^ S7[zE] ^ S8[zF] ^ S6[zC]
   K11 = S5[z7] ^ S6[z6] ^ S7[z8] ^ S8[z9] ^ S7[z2]
   K12 = S5[z5] ^ S6[z4] ^ S7[zA] ^ S8[zB] ^ S8[z6]
   x0x1x2x3 = z8z9zAzB ^ S5[z5] ^ S6[z7] ^ S7[z4] ^ S8[z6] ^ S7[z0]
   x4x5x6x7 = z0z1z2z3 ^ S5[x0] ^ S6[x2] ^ S7[x1] ^ S8[x3] ^ S8[z2]
   x8x9xAxB = z4z5z6z7 ^ S5[x7] ^ S6[x6] ^ S7[x5] ^ S8[x4] ^ S5[z1]
   xCxDxExF = zCzDzEzF ^ S5[xA] ^ S6[x9] ^ S7[xB] ^ S8[x8] ^ S6[z3]
   K13 = S5[x8] ^ S6[x9] ^ S7[x7] ^ S8[x6] ^ S5[x3]
   K14 = S5[xA] ^ S6[xB] ^ S7[x5] ^ S8[x4] ^ S6[x7]
   K15 = S5[xC] ^ S6[xD] ^ S7[x3] ^ S8[x2] ^ S7[x8]
   K16 = S5[xE] ^ S6[xF] ^ S7[x1] ^ S8[x0] ^ S8[xD]

   [剩下的一半與上面給出的一樣,從最后生成的x0..xF產生密鑰 K17 - K32。]

   z0z1z2z3 = x0x1x2x3 ^ S5[xD] ^ S6[xF] ^ S7[xC] ^ S8[xE] ^ S7[x8]
   z4z5z6z7 = x8x9xAxB ^ S5[z0] ^ S6[z2] ^ S7[z1] ^ S8[z3] ^ S8[xA]
   z8z9zAzB = xCxDxExF ^ S5[z7] ^ S6[z6] ^ S7[z5] ^ S8[z4] ^ S5[x9]
   zCzDzEzF = x4x5x6x7 ^ S5[zA] ^ S6[z9] ^ S7[zB] ^ S8[z8] ^ S6[xB]
   K17 = S5[z8] ^ S6[z9] ^ S7[z7] ^ S8[z6] ^ S5[z2]
   K18 = S5[zA] ^ S6[zB] ^ S7[z5] ^ S8[z4] ^ S6[z6]
   K19 = S5[zC] ^ S6[zD] ^ S7[z3] ^ S8[z2] ^ S7[z9]
   K20 = S5[zE] ^ S6[zF] ^ S7[z1] ^ S8[z0] ^ S8[zC]
   x0x1x2x3 = z8z9zAzB ^ S5[z5] ^ S6[z7] ^ S7[z4] ^ S8[z6] ^ S7[z0]
   x4x5x6x7 = z0z1z2z3 ^ S5[x0] ^ S6[x2] ^ S7[x1] ^ S8[x3] ^ S8[z2]
   x8x9xAxB = z4z5z6z7 ^ S5[x7] ^ S6[x6] ^ S7[x5] ^ S8[x4] ^ S5[z1]
   xCxDxExF = zCzDzEzF ^ S5[xA] ^ S6[x9] ^ S7[xB] ^ S8[x8] ^ S6[z3]
   K21 = S5[x3] ^ S6[x2] ^ S7[xC] ^ S8[xD] ^ S5[x8]
   K22 = S5[x1] ^ S6[x0] ^ S7[xE] ^ S8[xF] ^ S6[xD]
   K23 = S5[x7] ^ S6[x6] ^ S7[x8] ^ S8[x9] ^ S7[x3]
   K24 = S5[x5] ^ S6[x4] ^ S7[xA] ^ S8[xB] ^ S8[x7]
   z0z1z2z3 = x0x1x2x3 ^ S5[xD] ^ S6[xF] ^ S7[xC] ^ S8[xE] ^ S7[x8]
   z4z5z6z7 = x8x9xAxB ^ S5[z0] ^ S6[z2] ^ S7[z1] ^ S8[z3] ^ S8[xA]
   z8z9zAzB = xCxDxExF ^ S5[z7] ^ S6[z6] ^ S7[z5] ^ S8[z4] ^ S5[x9]
   zCzDzEzF = x4x5x6x7 ^ S5[zA] ^ S6[z9] ^ S7[zB] ^ S8[z8] ^ S6[xB]
   K25 = S5[z3] ^ S6[z2] ^ S7[zC] ^ S8[zD] ^ S5[z9]
   K26 = S5[z1] ^ S6[z0] ^ S7[zE] ^ S8[zF] ^ S6[zC]
   K27 = S5[z7] ^ S6[z6] ^ S7[z8] ^ S8[z9] ^ S7[z2]
   K28 = S5[z5] ^ S6[z4] ^ S7[zA] ^ S8[zB] ^ S8[z6]
   x0x1x2x3 = z8z9zAzB ^ S5[z5] ^ S6[z7] ^ S7[z4] ^ S8[z6] ^ S7[z0]
   x4x5x6x7 = z0z1z2z3 ^ S5[x0] ^ S6[x2] ^ S7[x1] ^ S8[x3] ^ S8[z2]
   x8x9xAxB = z4z5z6z7 ^ S5[x7] ^ S6[x6] ^ S7[x5] ^ S8[x4] ^ S5[z1]
   xCxDxExF = zCzDzEzF ^ S5[xA] ^ S6[x9] ^ S7[xB] ^ S8[x8] ^ S6[z3]
   K29 = S5[x8] ^ S6[x9] ^ S7[x7] ^ S8[x6] ^ S5[x3]
   K30 = S5[xA] ^ S6[xB] ^ S7[x5] ^ S8[x4] ^ S6[x7]
   K31 = S5[xC] ^ S6[xD] ^ S7[x3] ^ S8[x2] ^ S7[x8]
   K32 = S5[xE] ^ S6[xF] ^ S7[x1] ^ S8[x0] ^ S8[xD]

2.4.1. 掩碼子鑰與旋轉子鑰
令Km1, ..., Km16為32位的掩碼子鑰(每次循環使用一個);
令Kr1, … , Kr16為32位的旋轉子鑰(每次循環使用一個,只是用最低的5位);
   for (i=1; i<=16; i++)  { Kmi = Ki;  Kri = K16+i; }

2.5	可變的密鑰長度
CAST-128加密算法被設計為密碼長度是可變的,從40位到128位,每次遞增8位(就
是說,密碼長度可以是40、48、56、64…112、120、128位)。對于不同的密碼長度,分別
采用不同的規范:
1)	密碼長度從40到80(含80),按照上述算法操作,但是采用12循環而不是16。
2)	如果密碼長度大于80位,采用完整的16次循環。
3)	如果密碼長度小于128位,則在最低位補0直到128位(因為CAST-128密鑰表假
定輸入的密碼是128位的。)
盡管CAST-128支持上述12種長度的密碼,但在典型的應用中發現40、64、80和128
位是最有用的密碼長度。因此,只要支持這四種長度的子集對于大多數應用就足夠了。
為了避免在使用不同的密碼長度操作時發生混淆,CAST-128被認為與名CAST5是同
義的,這樣在后面加上密碼長度就不會發生歧義了。這樣,比方說使用40位密碼的CAST-128
就被表示為CAST5-40;如果明確地使用128位密碼,應該使用名稱CAST5-128。

2.6	CAST5對象標識符
如果需要在協議中的算法協商中,或者其它需要使用對象標識符的上下文中使用
CAST,可以使用以下定義的OID。

algorithms OBJECT IDENTIFIER ::=
   { iso(1) memberBody(2) usa(840) nt(113533) nsn(7) algorithms(66) }

cast5CBC OBJECT IDENTIFIER ::= { algorithms cast5CBC(10) }

    Parameters ::= SEQUENCE {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国产午夜精品| 国产精品一区专区| 色欧美乱欧美15图片| 日韩美女一区二区三区四区| 欧美精品一区二区三区高清aⅴ | 一区二区不卡在线视频 午夜欧美不卡在 | 久久蜜桃香蕉精品一区二区三区| 亚洲国产一区二区在线播放| 成人成人成人在线视频| 欧美经典一区二区| 粉嫩一区二区三区在线看| 337p日本欧洲亚洲大胆色噜噜| 日本特黄久久久高潮| 欧美丰满美乳xxx高潮www| 五月综合激情网| 欧洲av在线精品| 亚洲色图第一区| 色婷婷综合久久久中文字幕| 亚洲欧洲日产国码二区| 91浏览器入口在线观看| 亚洲视频免费在线观看| 国产福利91精品一区| 精品伦理精品一区| 久久66热偷产精品| 中文字幕成人在线观看| 色综合久久综合网欧美综合网| 亚洲免费资源在线播放| 欧美日韩午夜在线| 狠狠色狠狠色综合系列| 国产欧美一区二区三区在线看蜜臀 | 中文字幕五月欧美| 欧美性猛交xxxx乱大交退制版| 亚洲成人一区二区在线观看| 欧美欧美午夜aⅴ在线观看| 亚洲成人三级小说| 欧美精品一区二区在线播放| 成人永久免费视频| 亚洲国产精品精华液网站| 欧美成人一区二区三区片免费 | 蜜臀av一区二区在线免费观看 | 97精品国产露脸对白| 亚洲国产一区二区在线播放| 欧美一级欧美一级在线播放| 国产精品一区二区视频| 亚洲人成在线播放网站岛国| 91免费国产在线观看| 夜夜精品视频一区二区| 精品少妇一区二区三区在线播放| 国产iv一区二区三区| 亚洲综合在线视频| 亚洲精品在线电影| 色呦呦网站一区| 麻豆成人综合网| 亚洲日本在线看| 精品国产电影一区二区| 91在线精品一区二区| 免播放器亚洲一区| 最新高清无码专区| 欧美一级高清大全免费观看| 福利电影一区二区| 日韩影院精彩在线| 亚洲欧美日韩国产一区二区三区| 日韩三级精品电影久久久| 色综合天天综合在线视频| 美腿丝袜亚洲一区| 亚洲一区二区三区不卡国产欧美| 久久网站热最新地址| 欧美午夜精品一区| av午夜精品一区二区三区| 九一九一国产精品| 亚洲va欧美va天堂v国产综合| 亚洲精品在线观看网站| 在线视频你懂得一区二区三区| 国产一区二区三区四| 亚洲国产另类av| 自拍偷在线精品自拍偷无码专区| 日韩三级视频中文字幕| 在线日韩av片| 97久久人人超碰| 国产a区久久久| 国产资源精品在线观看| 日本不卡高清视频| 午夜精彩视频在线观看不卡| 日韩毛片一二三区| 国产欧美一区二区精品性色| 精品国产乱码久久| 精品国产乱码久久久久久免费| 欧美精品三级在线观看| 欧美性猛片aaaaaaa做受| 91免费看片在线观看| 91免费视频网址| 99久久精品免费精品国产| www.亚洲色图| 99国产一区二区三精品乱码| 99视频有精品| 91免费看片在线观看| 在线观看亚洲一区| 欧美亚洲高清一区二区三区不卡| 91浏览器打开| 91国产精品成人| 欧美日韩国产大片| 91麻豆精品国产无毒不卡在线观看 | 日韩欧美一区在线| 日韩欧美国产成人一区二区| 日韩精品专区在线影院观看| 精品88久久久久88久久久| 久久久91精品国产一区二区精品 | 国产伦理精品不卡| 成人免费毛片a| 99精品热视频| 91电影在线观看| 欧美日韩不卡在线| 精品久久久三级丝袜| 国产欧美日本一区二区三区| 国产精品高清亚洲| 亚洲韩国一区二区三区| 夜夜揉揉日日人人青青一国产精品| 亚洲黄色在线视频| 日本成人在线不卡视频| 国产真实乱对白精彩久久| 国产成人在线视频网址| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 97久久精品人人爽人人爽蜜臀| 色欧美片视频在线观看| 91精品国产入口在线| 国产无一区二区| 亚洲精品国产无套在线观| 亚洲成a人片综合在线| 久久99精品久久只有精品| 不卡视频免费播放| 4438x亚洲最大成人网| 久久亚洲综合色一区二区三区| 亚洲欧美在线视频| 男人的天堂亚洲一区| 国产精品99久久久久久宅男| 91精品福利视频| 久久亚洲精品小早川怜子| 一区二区三区四区在线播放 | 69av一区二区三区| 欧美自拍丝袜亚洲| 久久亚洲私人国产精品va媚药| 综合久久一区二区三区| 久久精品av麻豆的观看方式| 成人短视频下载| 日韩视频一区二区三区在线播放| 国产精品每日更新在线播放网址| 亚洲精品视频免费观看| 午夜欧美一区二区三区在线播放| 国内成人免费视频| 欧美日韩免费一区二区三区视频| 久久综合国产精品| 亚洲国产乱码最新视频| 成人av电影在线| 日韩视频在线你懂得| 亚洲综合另类小说| www.欧美.com| 久久综合成人精品亚洲另类欧美| 国产精品五月天| 日本不卡视频一二三区| 91久久精品一区二区三区| 欧美精品一区二区三区在线| 日韩av在线发布| 欧美网站大全在线观看| 综合久久给合久久狠狠狠97色 | 欧美日韩一区二区不卡| 中文字幕 久热精品 视频在线| 蜜臀精品久久久久久蜜臀| 欧美色欧美亚洲另类二区| 亚洲永久免费av| 欧美午夜精品一区二区蜜桃| 亚洲国产精品一区二区久久| 欧美性大战久久久| 亚洲成人动漫在线观看| 欧美日韩国产在线观看| 日韩精品成人一区二区三区| 欧美电影影音先锋| 美国三级日本三级久久99| 日韩欧美一级二级三级久久久| 久久99精品久久久久| 久久婷婷久久一区二区三区| 国产一区91精品张津瑜| 国产欧美一区在线| 一本大道综合伊人精品热热| 亚洲国产成人精品视频| 欧美久久久久久久久中文字幕| 日韩精品一二区| 日韩亚洲欧美综合| 国产成人av一区二区三区在线| 国产精品毛片无遮挡高清| 色综合咪咪久久| 五月激情综合婷婷| 2017欧美狠狠色| 色综合天天天天做夜夜夜夜做| 亚洲国产一区在线观看| 精品少妇一区二区三区免费观看| 国产福利一区在线| 亚洲一区二区三区四区在线免费观看 | 另类小说图片综合网| 欧美激情综合五月色丁香小说| 日本高清不卡视频|