3個(gè)著名加密算法(MD5、RSA、DES)的解析_第1頁(yè)
3個(gè)著名加密算法(MD5、RSA、DES)的解析_第2頁(yè)
3個(gè)著名加密算法(MD5、RSA、DES)的解析_第3頁(yè)
3個(gè)著名加密算法(MD5、RSA、DES)的解析_第4頁(yè)
3個(gè)著名加密算法(MD5、RSA、DES)的解析_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、3個(gè)著名加密算法(MD5、RSA、DES)的解析MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計(jì)算機(jī)科學(xué)實(shí)驗(yàn)室和RSA Data Security Inc發(fā)明,經(jīng)MD2、MD3和MD4發(fā)展而來(lái)。 MD5將任意長(zhǎng)度的“字節(jié)串”變換成一個(gè)128bit的大整數(shù),并且它是一個(gè)不可逆的字符串變換算法,換句話說(shuō)就是,即使你看到源程序和算法描述,也無(wú)法將一個(gè)MD5的值變換回原始的字符串,從數(shù)學(xué)原理上說(shuō),是因?yàn)樵嫉淖址袩o(wú)窮多個(gè),這有點(diǎn)象不存在反函數(shù)的數(shù)學(xué)函數(shù)。 MD5的典型應(yīng)用是對(duì)一段Message(字節(jié)串)產(chǎn)生fingerprint(指紋),以防止被“篡改”

2、。舉個(gè)例子,你將一段話寫(xiě)在一個(gè)叫 readme.txt文件中,并對(duì)這個(gè)readme.txt產(chǎn)生一個(gè)MD5的值并記錄在案,然后你可以傳播這個(gè)文件給別人,別人如果修改了文件中的任何內(nèi)容,你對(duì)這個(gè)文件重新計(jì)算MD5時(shí)就會(huì)發(fā)現(xiàn)。如果再有一個(gè)第三方的認(rèn)證機(jī)構(gòu),用MD5還可以防止文件作者的“抵賴”,這就是所謂的數(shù)字簽名應(yīng)用。 MD5還廣泛用于加密和解密技術(shù)上,在很多操作系統(tǒng)中,用戶的密碼是以MD5值(或類似的其它算法)的方式保存的, 用戶Login的時(shí)候,系統(tǒng)是把用戶輸入的密碼計(jì)算成MD5值,然后再去和系統(tǒng)中保存的MD5值進(jìn)行比較,而系統(tǒng)并不“知道”用戶的密碼是什么。RSA是第一個(gè)既能用于數(shù)據(jù)加密也能用于

3、數(shù)字簽名的算法。它易于理解和操作,也很流行。算法的名字以發(fā)明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理論上的證明。它經(jīng)歷了各種攻擊,至今未被完全攻破。 DES算法 美國(guó)國(guó)家標(biāo)準(zhǔn)局1973年開(kāi)始研究除國(guó)防部外的其它部門(mén)的計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)加密標(biāo)準(zhǔn),于1973年5月15日和1974年8月27日先后兩次向公眾發(fā)出了征求加密算法的公告。 1977年1月,美國(guó)政府頒布:采納IBM公司設(shè)計(jì)的方案作為非機(jī)密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)(DES?Data Encryption Standard)。 1.加密算法之MD5算法在一些初始化處

4、理后,MD5以512位分組來(lái)處理輸入文本,每一分組又劃分為16個(gè)32位子分組。算法的輸出由四個(gè)32位分組組成,將它們級(jí)聯(lián)形成一個(gè)128位散列值。 首先填充消息使其長(zhǎng)度恰好為一個(gè)比512位的倍數(shù)僅小64位的數(shù)。填充方法是附一個(gè)1在消息后面,后接所要求的多個(gè)0,然后在其后附上64位的消息長(zhǎng)度(填充前)。這兩步的作用是使消息長(zhǎng)度恰好是512位的整數(shù)倍(算法的其余部分要求如此),同時(shí)確保不同的消息在填充后不相同。 四個(gè)32位變量初始化為: A=001234567 B=089abcdef C=0xfedcba98 D=076543210 它們稱為鏈接變量(chaining variable) 接著進(jìn)行算

5、法的主循環(huán),循環(huán)的次數(shù)是消息中512位消息分組的數(shù)目。 將上面四個(gè)變量復(fù)制到別外的變量中:A到a,B到b,C到c,D到d。 主循環(huán)有四輪(MD4只有三輪),每輪很相擬。第一輪進(jìn)行16次操作。每次操作對(duì)a,b,c和d中的其中三個(gè)作一次非線性函數(shù)運(yùn)算,然后將所得結(jié)果加上第四個(gè)變量,文本的一個(gè)子分組和一個(gè)常數(shù)。再將所得結(jié)果向右環(huán)移一個(gè)不定的數(shù),并加上a,b,c或d中之一。最后用該結(jié)果取代a,b,c或d中之一。 以一下是每次操作中用到的四個(gè)非線性函數(shù)(每輪一個(gè))。 F(X,Y,Z)=(X&Y)|(X)&Z) G(X,Y,Z)=(X&Z)|(Y&(Z) H(X,Y,Z)=XYZ I(X,Y,Z)=Y(X

6、|(Z) (&是與,|是或,是非,是異或) 這些函數(shù)是這樣設(shè)計(jì)的:如果X、Y和Z的對(duì)應(yīng)位是獨(dú)立和均勻的,那么結(jié)果的每一位也應(yīng)是獨(dú)立和均勻的。 函數(shù)F是按逐位方式操作:如果X,那么Y,否則Z。函數(shù)H是逐位奇偶操作符。 設(shè)Mj表示消息的第j個(gè)子分組(從0到15), s表示循環(huán)左移s位,則四種操作為: FF(a,b,c,d,Mj,s,ti)表示a=b+(a+(F(b,c,d)+Mj+ti) s) GG(a,b,c,d,Mj,s,ti)表示a=b+(a+(G(b,c,d)+Mj+ti) s) HH(a,b,c,d,Mj,s,ti)表示a=b+(a+(H(b,c,d)+Mj+ti) s) II(a,b,

7、c,d,Mj,s,ti)表示a=b+(a+(I(b,c,d)+Mj+ti) s) 這四輪(64步)是: 第一輪 FF(a,b,c,d,M0,7,0xd76aa478) FF(d,a,b,c,M1,12,0xe8c7b756) FF(c,d,a,b,M2,17,0242070db) FF(b,c,d,a,M3,22,0xc1bdceee) FF(a,b,c,d,M4,7,0xf57c0faf) FF(d,a,b,c,M5,12,04787c62a) FF(c,d,a,b,M6,17,0xa8304613) FF(b,c,d,a,M7,22,0xfd469501) FF(a,b,c,d,M8,7,

8、0698098d8) FF(d,a,b,c,M9,12,08b44f7af) FF(c,d,a,b,M10,17,0xffff5bb1) FF(b,c,d,a,M11,22,0895cd7be) FF(a,b,c,d,M12,7,06b901122) FF(d,a,b,c,M13,12,0xfd987193) FF(c,d,a,b,M14,17,0xa679438e) FF(b,c,d,a,M15,22,049b40821) 第二輪 GG(a,b,c,d,M1,5,0xf61e2562) GG(d,a,b,c,M6,9,0xc040b340) GG(c,d,a,b,M11,14,0265e5a

9、51) GG(b,c,d,a,M0,20,0xe9b6c7aa) GG(a,b,c,d,M5,5,0xd62f105d) GG(d,a,b,c,M10,9,002441453) GG(c,d,a,b,M15,14,0xd8a1e681) GG(b,c,d,a,M4,20,0xe7d3fbc8) GG(a,b,c,d,M9,5,021e1cde6) GG(d,a,b,c,M14,9,0xc33707d6) GG(c,d,a,b,M3,14,0xf4d50d87) GG(b,c,d,a,M8,20,0455a14ed) GG(a,b,c,d,M13,5,0xa9e3e905) GG(d,a,b,c

10、,M2,9,0xfcefa3f8) GG(c,d,a,b,M7,14,0676f02d9) GG(b,c,d,a,M12,20,08d2a4c8a) 第三輪 HH(a,b,c,d,M5,4,0xfffa3942) HH(d,a,b,c,M8,11,08771f681) HH(c,d,a,b,M11,16,06d9d6122) HH(b,c,d,a,M14,23,0xfde5380c) HH(a,b,c,d,M1,4,0xa4beea44) HH(d,a,b,c,M4,11,04bdecfa9) HH(c,d,a,b,M7,16,0xf6bb4b60) HH(b,c,d,a,M10,23,0xb

11、ebfbc70) HH(a,b,c,d,M13,4,0289b7ec6) HH(d,a,b,c,M0,11,0xeaa127fa) HH(c,d,a,b,M3,16,0xd4ef3085) HH(b,c,d,a,M6,23,004881d05) HH(a,b,c,d,M9,4,0xd9d4d039) HH(d,a,b,c,M12,11,0xe6db99e5) HH(c,d,a,b,M15,16,01fa27cf8) HH(b,c,d,a,M2,23,0xc4ac5665) 第四輪 II(a,b,c,d,M0,6,0xf4292244) II(d,a,b,c,M7,10,0432aff97) I

12、I(c,d,a,b,M14,15,0xab9423a7) II(b,c,d,a,M5,21,0xfc93a039) II(a,b,c,d,M12,6,0655b59c3) II(d,a,b,c,M3,10,08f0ccc92) II(c,d,a,b,M10,15,0xffeff47d) II(b,c,d,a,M1,21,085845dd1) II(a,b,c,d,M8,6,06fa87e4f) II(d,a,b,c,M15,10,0xfe2ce6e0) II(c,d,a,b,M6,15,0xa3014314) II(b,c,d,a,M13,21,04e0811a1) II(a,b,c,d,M4

13、,6,0xf7537e82) II(d,a,b,c,M11,10,0xbd3af235) II(c,d,a,b,M2,15,02ad7d2bb) II(b,c,d,a,M9,21,0xeb86d391) 常數(shù)ti可以如下選擇: 在第i步中,ti是4294967296*abs(sin(i)的整數(shù)部分,i的單位是弧度。 (2的32次方) 所有這些完成之后,將A,B,C,D分別加上a,b,c,d。然后用下一分組數(shù)據(jù)繼續(xù)運(yùn)行算法,最后的輸出是A,B,C和D的級(jí)聯(lián)。 MD5的安全性 MD5相對(duì)MD4所作的改進(jìn): 1.增加了第四輪. 2.每一步均有唯一的加法常數(shù). 3.為減弱第二輪中函數(shù)G的對(duì)稱性從(X&

14、Y)|(X&Z)|(Y&Z)變?yōu)?X&Z)|(Y&(Z) 4.第一步加上了上一步的結(jié)果,這將引起更快的雪崩效應(yīng). 5.改變了第二輪和第三輪中訪問(wèn)消息子分組的次序,使其更不相似. 6.近似優(yōu)化了每一輪中的循環(huán)左移位移量以實(shí)現(xiàn)更快的雪崩效應(yīng).各輪的位移量互不相同.2.加密算法之RSA算法它是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。算法的名字以發(fā)明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理論上的證明。它經(jīng)歷了各種攻擊,至今未被完全攻破。 一、RSA算法 : 首先, 找出三個(gè)數(shù), p,

15、q, r, 其中 p, q 是兩個(gè)相異的質(zhì)數(shù), r 是與 (p-1)(q-1) 互質(zhì)的數(shù) p, q, r 這三個(gè)數(shù)便是 private key 接著, 找出 m, 使得 rm = 1 mod (p-1)(q-1). 這個(gè) m 一定存在, 因?yàn)?r 與 (p-1)(q-1) 互質(zhì), 用輾轉(zhuǎn)相除法就可以得到了. 再來(lái), 計(jì)算 n = pq. m, n 這兩個(gè)數(shù)便是 public key 編碼過(guò)程是, 若資料為 a, 將其看成是一個(gè)大整數(shù), 假設(shè) a = n 的話, 就將 a 表成 s 進(jìn)位 (s = n, 通常取 s = 2t), 則每一位數(shù)均小於 n, 然後分段編碼 接下來(lái), 計(jì)算 b = am

16、 mod n, (0 = b n), b 就是編碼後的資料 解碼的過(guò)程是, 計(jì)算 c = br mod pq (0 = c pq), 於是乎, 解碼完畢 等會(huì)會(huì)證明 c 和 a 其實(shí)是相等的 如果第三者進(jìn)行竊聽(tīng)時(shí), 他會(huì)得到幾個(gè)數(shù): m, n(=pq), b 他如果要解碼的話, 必須想辦法得到 r 所以, 他必須先對(duì) n 作質(zhì)因數(shù)分解 要防止他分解, 最有效的方法是找兩個(gè)非常的大質(zhì)數(shù) p, q, 使第三者作因數(shù)分解時(shí)發(fā)生困難 若 p, q 是相異質(zhì)數(shù), rm = 1 mod (p-1)(q-1), a 是任意一個(gè)正整數(shù), b = am mod pq, c = br mod pq, 則 c =

17、a mod pq 證明的過(guò)程, 會(huì)用到費(fèi)馬小定理, 敘述如下: m 是任一質(zhì)數(shù), n 是任一整數(shù), 則 nm = n mod m (換另一句話說(shuō), 如果 n 和 m 互質(zhì), 則 n(m-1) = 1 mod m) 運(yùn)用一些基本的群論的知識(shí), 就可以很容易地證出費(fèi)馬小定理的. 因?yàn)?rm = 1 mod (p-1)(q-1), 所以 rm = k(p-1)(q-1) + 1, 其中 k 是整數(shù) 因?yàn)樵?modulo 中是 preserve 乘法的 (x = y mod z and u = v mod z = xu = yv mod z), 所以, c = br = (am)r = a(rm) =

18、 a(k(p-1)(q-1)+1) mod pq 1. 如果 a 不是 p 的倍數(shù), 也不是 q 的倍數(shù)時(shí), 則 a(p-1) = 1 mod p (費(fèi)馬小定理) = a(k(p-1)(q-1) = 1 mod p a(q-1) = 1 mod q (費(fèi)馬小定理) = a(k(p-1)(q-1) = 1 mod q 所以 p, q 均能整除 a(k(p-1)(q-1) - 1 = pq | a(k(p-1)(q-1) - 1 即 a(k(p-1)(q-1) = 1 mod pq = c = a(k(p-1)(q-1)+1) = a mod pq 2. 如果 a 是 p 的倍數(shù), 但不是 q 的

19、倍數(shù)時(shí), 則 a(q-1) = 1 mod q (費(fèi)馬小定理) = a(k(p-1)(q-1) = 1 mod q = c = a(k(p-1)(q-1)+1) = a mod q = q | c - a 因 p | a = c = a(k(p-1)(q-1)+1) = 0 mod p = p | c - a 所以, pq | c - a = c = a mod pq 3. 如果 a 是 q 的倍數(shù), 但不是 p 的倍數(shù)時(shí), 證明同上 4. 如果 a 同時(shí)是 p 和 q 的倍數(shù)時(shí), 則 pq | a = c = a(k(p-1)(q-1)+1) = 0 mod pq = pq | c - a

20、= c = a mod pq Q.E.D. 這個(gè)定理說(shuō)明 a 經(jīng)過(guò)編碼為 b 再經(jīng)過(guò)解碼為 c 時(shí), a = c mod n (n = pq). 但我們?cè)谧鼍幋a解碼時(shí), 限制 0 = a n, 0 = c n, 所以這就是說(shuō) a 等於 c, 所以這個(gè)過(guò)程確實(shí)能做到編碼解碼的功能. 二、RSA 的安全性 RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆](méi)有證明破解 RSA就一定需要作大數(shù)分解。假設(shè)存在一種無(wú)須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前, RSA 的一些變種算法已被證明等價(jià)于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法。現(xiàn)在,人們已能分解

21、多個(gè)十進(jìn)制位的大素?cái)?shù)。因此,模數(shù)n 必須選大一些,因具體適用情況而定。 三、RSA的速度 由于進(jìn)行的都是大數(shù)計(jì)算,使得RSA最快的情況也比DES慢上倍,無(wú)論是軟件還是硬件實(shí)現(xiàn)。速度一直是RSA的缺陷。一般來(lái)說(shuō)只用于少量數(shù)據(jù)加密。 四、RSA的選擇密文攻擊 RSA在選擇密文攻擊面前很脆弱。一般攻擊者是將某一信息作一下偽裝( Blind),讓擁有私鑰的實(shí)體簽署。然后,經(jīng)過(guò)計(jì)算就可得到它所想要的信息。實(shí)際上,攻擊利用的都是同一個(gè)弱點(diǎn),即存在這樣一個(gè)事實(shí):乘冪保留了輸入的乘法結(jié)構(gòu): ( XM )d = Xd *Md mod n 前面已經(jīng)提到,這個(gè)固有的問(wèn)題來(lái)自于公鑰密碼系統(tǒng)的最有用的特征每個(gè)人都能使用

22、公鑰。但從算法上無(wú)法解決這一問(wèn)題,主要措施有兩條:一條是采用好的公鑰協(xié)議,保證工作過(guò)程中實(shí)體不對(duì)其他實(shí)體任意產(chǎn)生的信息解密,不對(duì)自己一無(wú)所知的信息簽名;另一條是決不對(duì)陌生人送來(lái)的隨機(jī)文檔簽名,簽名時(shí)首先使用One-Way HashFunction 對(duì)文檔作HASH處理,或同時(shí)使用不同的簽名算法。在中提到了幾種不同類型的攻擊方法。 五、RSA的公共模數(shù)攻擊 若系統(tǒng)中共有一個(gè)模數(shù),只是不同的人擁有不同的e和d,系統(tǒng)將是危險(xiǎn)的。最普遍的情況是同一信息用不同的公鑰加密,這些公鑰共模而且互質(zhì),那末該信息無(wú)需私鑰就可得到恢復(fù)。設(shè)P為信息明文,兩個(gè)加密密鑰為e1和e2,公共模數(shù)是n,則: C1 = Pe1

23、mod n C2 = Pe2 mod n 密碼分析者知道n、e1、e2、C1和C2,就能得到P。 因?yàn)閑1和e2互質(zhì),故用Euclidean算法能找到r和s,滿足: r * e1 + s * e2 = 1 假設(shè)r為負(fù)數(shù),需再用Euclidean算法計(jì)算C1(-1),則 ( C1(-1) )(-r) * C2s = P mod n 另外,還有其它幾種利用公共模數(shù)攻擊的方法??傊?,如果知道給定模數(shù)的一對(duì)e和d,一是有利于攻擊者分解模數(shù),一是有利于攻擊者計(jì)算出其它成對(duì)的e和d,而無(wú)需分解模數(shù)。解決辦法只有一個(gè),那就是不要共享模數(shù)n。 RSA的小指數(shù)攻擊。 有一種提高 RSA速度的建議是使公鑰e取較小

24、的值,這樣會(huì)使加密變得易于實(shí)現(xiàn),速度有 所提高。但這樣作是不安全的,對(duì)付辦法就是e和d都取較大的值。 RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近二十年,經(jīng)歷了各種攻擊的考驗(yàn),逐漸為人們接受,普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一。RSA的安全性依賴于大數(shù)的因子分解,但并沒(méi)有從理論上證明破譯RSA的難度與大數(shù)分解難度等價(jià)。即RSA的重大缺陷是無(wú)法從理論上把握它的保密性能如何,而且密碼學(xué)界多數(shù)人士?jī)A向于因子分解不是NPC問(wèn)題。 RSA的缺點(diǎn)主要有:A)產(chǎn)生密鑰很麻煩,受到素?cái)?shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密。B)分組長(zhǎng)度太

25、大,為保證安全性,n 至少也要 600 bits 以上,使運(yùn)算代價(jià)很高,尤其是速度較慢,較對(duì)稱密碼算法慢幾個(gè)數(shù)量級(jí);且隨著大數(shù)分解技術(shù)的發(fā)展,這個(gè)長(zhǎng)度還在增加,不利于數(shù)據(jù)格式的標(biāo)準(zhǔn)化。目前,SET( Secure Electronic Transaction )協(xié)議中要求CA采用比特長(zhǎng)的密鑰,其他實(shí)體使用比特的密鑰。3.加密算法之DES算法一、DES算法 美國(guó)國(guó)家標(biāo)準(zhǔn)局1973年開(kāi)始研究除國(guó)防部外的其它部門(mén)的計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)加密標(biāo)準(zhǔn),于1973年5月15日和1974年8月27日先后兩次向公眾發(fā)出了征求加密算法的公告。加密算法要達(dá)到的目的(通常稱為DES 密碼算法要求)主要為以下四點(diǎn): 提供高質(zhì)

26、量的數(shù)據(jù)保護(hù),防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺(jué)的修改; 具有相當(dāng)高的復(fù)雜性,使得破譯的開(kāi)銷(xiāo)超過(guò)可能獲得的利益,同時(shí)又要便于理解和掌握; DES密碼體制的安全性應(yīng)該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎(chǔ); 實(shí)現(xiàn)經(jīng)濟(jì),運(yùn)行有效,并且適用于多種完全不同的應(yīng)用。 1977年1月,美國(guó)政府頒布:采納IBM公司設(shè)計(jì)的方案作為非機(jī)密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)(DES?Data Encryption Standard)。 目前在國(guó)內(nèi),隨著三金工程尤其是金卡工程的啟動(dòng),DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收費(fèi)站等領(lǐng)域被廣泛應(yīng)用,以此來(lái)實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)的保密,如信用卡持卡人的

27、PIN的加密傳輸,IC卡與POS間的雙向認(rèn)證、金融交易數(shù)據(jù)包的MAC校驗(yàn)等,均用到DES算法。 DES算法的入口參數(shù)有三個(gè):Key、Data、Mode。其中Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰;Data也為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密。 DES算法是這樣工作的:如Mode為加密,則用Key 去把數(shù)據(jù)Data進(jìn)行加密, 生成Data的密碼形式(64位)作為DES的輸出結(jié)果;如Mode為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸出結(jié)果。在通信網(wǎng)絡(luò)的兩端,雙方約定一致的Key

28、,在通信的源點(diǎn)用Key對(duì)核心數(shù)據(jù)進(jìn)行DES加密,然后以密碼形式在公共通信網(wǎng)(如電話網(wǎng))中傳輸?shù)酵ㄐ啪W(wǎng)絡(luò)的終點(diǎn),數(shù)據(jù)到達(dá)目的地后,用同樣的Key對(duì)密碼數(shù)據(jù)進(jìn)行解密,便再現(xiàn)了明碼形式的核心數(shù)據(jù)。這樣,便保證了核心數(shù)據(jù)(如PIN、MAC等)在公共通信網(wǎng)中傳輸?shù)陌踩院涂煽啃浴?通過(guò)定期在通信網(wǎng)絡(luò)的源端和目的端同時(shí)改用新的Key,便能更進(jìn)一步提高數(shù)據(jù)的保密性,這正是現(xiàn)在金融交易網(wǎng)絡(luò)的流行做法。 DES算法詳述 DES算法把64位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位,整個(gè)算法的主流程圖如下: 其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L(zhǎng)0、R0兩部分,每部分各長(zhǎng)32位

29、,其置換規(guī)則見(jiàn)下表: 58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4, 62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8, 57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3, 61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7, 即將輸入的第58位換到第一位,第50位換到第2位,依此類推,最后一位是原來(lái)的第7位。L0、R0則是換位輸出后的兩部分,L0是輸出的左32位,R0 是右32位,例:設(shè)置換前的輸入值為D1D2D3D64,則

30、經(jīng)過(guò)初始置換后的結(jié)果為:L0=D58D50D8;R0=D57D49D7。 經(jīng)過(guò)16次迭代運(yùn)算后。得到L16、R16,將此作為輸入,進(jìn)行逆置換,即得到密文輸出。逆置換正好是初始置的逆運(yùn)算,例如,第1位經(jīng)過(guò)初始置換后,處于第40位,而通過(guò)逆置換,又將第40位換回到第1位,其逆置換規(guī)則如下表所示: 40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31, 38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29, 36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27, 34,2,42,10,5

31、0,18,58 26,33,1,41, 9,49,17,57,25, 放大換位表 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10,11, 12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21, 22,23,24,25,24,25,26,27,28,29,28,29,30,31,32, 1, 單純換位表 16,7,20,21,29,12,28,17, 1,15,23,26, 5,18,31,10, 2,8,24,14,32,27, 3, 9,19,13,30, 6,22,11, 4,25, 在f(Ri,Ki)算

32、法描述圖中,S1,S2S8為選擇函數(shù),其功能是把6bit數(shù)據(jù)變?yōu)?bit數(shù)據(jù)。下面給出選擇函數(shù)Si(i=1,2的功能表: 選擇函數(shù)Si S1: 14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7, 0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8, 4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0, 15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13, S2: 15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10, 3,13,4,7,15,2,8,14,12,0,1,10,

33、6,9,11,5, 0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15, 13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9, S3: 10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8, 13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, 13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7, 1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12, S4: 7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15, 13,8,11,5

34、,6,15,0,3,4,7,2,12,1,10,14,9, 10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4, 3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14, S5: 2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9, 14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6, 4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14, 11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3, S6: 12,1,10,15,9,2,6,8,0,13,3,4,

35、14,7,5,11, 10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8, 9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6, 4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13, S7: 4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1, 13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6, 1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, 6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12, S8: 13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7, 1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2, 7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8, 2,1,14,7,4,10,8,13,15,12,9,0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論