亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
av在线不卡网| 久久er精品视频| 久久综合久久综合久久综合| 91欧美激情一区二区三区成人| 麻豆91精品91久久久的内涵| 亚洲一级在线观看| 国产精品入口麻豆原神| 91精品免费观看| 在线观看不卡视频| youjizz久久| 亚洲欧美一区二区三区极速播放| 91精品国产免费| 欧美天天综合网| 色综合天天视频在线观看| 成人综合在线观看| 国产精品456| 国产九色sp调教91| 韩国女主播一区| 激情综合色丁香一区二区| 午夜精品福利一区二区蜜股av| 亚洲精品国产无天堂网2021| 国产精品女人毛片| 国产精品免费丝袜| 国产精品美女久久久久久久久 | 91亚洲国产成人精品一区二三 | 欧美吻胸吃奶大尺度电影 | 91丨九色丨蝌蚪丨老版| 成人黄色电影在线| 94色蜜桃网一区二区三区| www.亚洲色图| 韩日欧美一区二区三区| 国产麻豆精品一区二区| 亚洲自拍都市欧美小说| 国产精品免费免费| 亚洲欧美在线高清| 亚洲一区在线观看网站| 亚洲线精品一区二区三区| 亚洲一区中文在线| 麻豆精品在线看| 国产一区二三区好的| 国产一区二区视频在线| 国产成人在线看| 99国内精品久久| 欧美日韩在线播| 精品成人私密视频| 国产欧美精品一区aⅴ影院| 国产精品国产三级国产有无不卡| 亚洲欧美综合网| 日韩精品亚洲一区二区三区免费| 美女视频黄久久| 国产成a人无v码亚洲福利| 色综合天天综合在线视频| 色综合久久综合中文综合网| 99亚偷拍自图区亚洲| 丝袜国产日韩另类美女| 91精品久久久久久久91蜜桃| 欧美大片顶级少妇| 亚洲国产精品久久不卡毛片| 美国毛片一区二区三区| 久久91精品国产91久久小草| 在线观看亚洲成人| 精品国产乱码久久久久久久久| 亚洲午夜av在线| 国模大尺度一区二区三区| 久久机这里只有精品| 91性感美女视频| 久久久影视传媒| 日欧美一区二区| 成人精品视频一区二区三区尤物| 欧美视频在线一区| 久久精品欧美日韩精品 | 性欧美疯狂xxxxbbbb| 国产精品自拍网站| 制服丝袜国产精品| 亚洲色图欧美激情| 国产成人午夜电影网| 777色狠狠一区二区三区| 综合久久一区二区三区| 国产麻豆一精品一av一免费| 大胆亚洲人体视频| 精品福利在线导航| 日韩影院免费视频| 在线精品视频免费观看| 中文字幕欧美日韩一区| 青椒成人免费视频| 欧美日韩国产色站一区二区三区| 中文字幕免费不卡| 激情综合色综合久久| 欧美猛男男办公室激情| 欧美国产激情一区二区三区蜜月| 久久www免费人成看片高清| 91超碰这里只有精品国产| 亚洲高清不卡在线| 欧美午夜在线一二页| 亚洲精品精品亚洲| 日本精品免费观看高清观看| 亚洲欧洲无码一区二区三区| 成人激情文学综合网| 中文一区在线播放| 成人免费视频一区二区| 国产精品欧美一区喷水| av亚洲精华国产精华| 亚洲精品免费播放| 色综合久久88色综合天天| 一区二区视频在线看| 欧美视频精品在线| 美女诱惑一区二区| 精品欧美一区二区在线观看| 久久国产综合精品| 国产性做久久久久久| 成人av午夜影院| 亚洲国产成人porn| 在线播放中文字幕一区| 久久99精品国产.久久久久久| 久久久综合视频| 99re免费视频精品全部| 亚洲va欧美va人人爽| 日韩一区二区三区免费看| 激情综合一区二区三区| 欧美韩国日本不卡| 欧美三级电影在线观看| 蜜臀久久久99精品久久久久久| 久久免费午夜影院| 色又黄又爽网站www久久| 免费高清在线视频一区·| 久久色在线视频| 91精品福利视频| 看片网站欧美日韩| **欧美大码日韩| 6080亚洲精品一区二区| 国产传媒一区在线| 国产精品麻豆欧美日韩ww| 日本精品一区二区三区高清 | k8久久久一区二区三区| 亚洲最色的网站| 欧美日韩午夜精品| 粉嫩欧美一区二区三区高清影视 | www.综合网.com| 日韩激情中文字幕| 国产精品国产三级国产普通话三级 | 久久er精品视频| 亚洲美女在线一区| 久久久久久久久伊人| 欧美三区在线视频| av一区二区三区在线| 青青草91视频| 亚洲一区二区三区在线看| 久久精品在线免费观看| 91精品中文字幕一区二区三区| 国产成人免费视频网站高清观看视频| 亚洲一区二区三区自拍| 中文字幕第一区综合| 日韩一区二区麻豆国产| 色视频欧美一区二区三区| 国产精品综合二区| 美女被吸乳得到大胸91| 亚洲午夜av在线| 亚洲免费三区一区二区| 国产日产欧美一区二区视频| 91精品欧美一区二区三区综合在| 色域天天综合网| 久久99久久久欧美国产| 日韩国产精品久久| 夜夜揉揉日日人人青青一国产精品| 久久久蜜桃精品| 欧美一区二区三级| 91原创在线视频| 91亚洲国产成人精品一区二区三 | 久久久99久久| 精品国产免费一区二区三区四区| 欧美三级蜜桃2在线观看| 色综合天天综合网国产成人综合天| 狠狠色丁香九九婷婷综合五月| 日韩国产精品91| 美女网站一区二区| 美女网站视频久久| 久久精品99国产精品| 精品中文av资源站在线观看| 天堂久久一区二区三区| 日一区二区三区| 国产精品自拍三区| 成人午夜在线播放| 99视频有精品| 欧美综合在线视频| 99久久久国产精品| 成人黄色av电影| 成人成人成人在线视频| 五月天国产精品| 国产精品91一区二区| 91小视频在线| 欧美成人女星排行榜| 欧美国产在线观看| 亚洲主播在线观看| 国产成人精品aa毛片| 欧美亚洲国产一卡| 中文字幕国产一区二区| 偷拍日韩校园综合在线| 北岛玲一区二区三区四区| 日韩一级黄色大片| 一区二区三区欧美日|