密碼技術(shù)基礎(chǔ)_第1頁(yè)
密碼技術(shù)基礎(chǔ)_第2頁(yè)
密碼技術(shù)基礎(chǔ)_第3頁(yè)
密碼技術(shù)基礎(chǔ)_第4頁(yè)
密碼技術(shù)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩54頁(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、第二章第二章 密碼技術(shù)基礎(chǔ)密碼技術(shù)基礎(chǔ)v密碼技術(shù)概述 v傳統(tǒng)密碼技術(shù)v現(xiàn)代密碼技術(shù) v網(wǎng)絡(luò)加密技術(shù) 2.1 密碼技術(shù)概述密碼技術(shù)概述v2.1.1 密碼基本概念密碼基本概念 安全問(wèn)題包含兩個(gè)主要內(nèi)容: 數(shù)據(jù)的保密性數(shù)據(jù)的保密性 數(shù)據(jù)的完整性數(shù)據(jù)的完整性 密碼學(xué)密碼學(xué) 密碼學(xué)是研究密碼分析和密碼編制的一門(mén)科學(xué),它涉及數(shù)學(xué)、物理、計(jì)算機(jī)科學(xué)、電子學(xué)、系統(tǒng)工程、語(yǔ)言學(xué)等學(xué)科內(nèi)容。 加密加密(encryption) 用某種方法偽裝消息并隱藏它的內(nèi)容的方法稱作加密 明文明文(plaintext) 待加密的消息被稱作明文 明文空間明文空間 所有明文的集合稱為明文空間 2.1 密碼技術(shù)概述密碼技術(shù)概述 密文密

2、文(ciphertext) 被加密以后的消息稱為密文 密文空間密文空間 所有密文的集合稱為密文空間 解密解密(decryption) 把密文轉(zhuǎn)變成明文的過(guò)程稱為解密 密鑰密鑰 加密體制中的加密運(yùn)算是由一個(gè)算法類組成,這些算法類的不同運(yùn)算可用 不同的參數(shù)表示,不同的參數(shù)分別代表不同的算法,被稱作密鑰 密鑰空間密鑰空間 密鑰空間是所有密鑰的集合 明文空間明文空間 所有明文的集合稱為明文空間注: 任何一個(gè)密碼系統(tǒng)包含明文空間、密文空間、密鑰空間和算法。密碼系統(tǒng)的兩個(gè)基本單元是算法和密鑰。其中算法是相對(duì)穩(wěn)定的,視為常量;密鑰則是不固定的,視為變量。密鑰安全性是系統(tǒng)安全的關(guān)鍵,因此為了密碼系統(tǒng)的安全,頻

3、繁更換密鑰是必要的,在密鑰的分發(fā)和存儲(chǔ)時(shí)應(yīng)當(dāng)特別小心。 2.1 密碼技術(shù)概述密碼技術(shù)概述 簡(jiǎn)單加密、解密過(guò)程簡(jiǎn)單加密、解密過(guò)程 加密加密解密解密接受方接受方第三方第三方發(fā)送方發(fā)送方明文 密文 原來(lái)的明文 圖21 簡(jiǎn)單加密、解密過(guò)程 發(fā)送方用加密密鑰,通過(guò)加密設(shè)備或算法,將信息加密后發(fā)送出去。接收方在收到密文后,用解密密鑰將密文解密,恢復(fù)為明文。如果傳輸中有人竊取,他只能得到無(wú)法理解的密文,從而對(duì)信息起到保密作用。 2.1 密碼技術(shù)概述密碼技術(shù)概述v2.1.2 密碼技術(shù)的分類密碼技術(shù)的分類 密碼體制一般可分為傳統(tǒng)密碼和現(xiàn)代密碼,從不同的角度根據(jù)不同的標(biāo)準(zhǔn),可以把密碼分成若干類: 按應(yīng)用技術(shù)或歷史

4、發(fā)展階段劃分按應(yīng)用技術(shù)或歷史發(fā)展階段劃分 1手工密碼 2機(jī)械密碼 3電子機(jī)內(nèi)亂密碼 4計(jì)算機(jī)密碼 按保密程度劃分按保密程度劃分 1理論上保密的密碼 2實(shí)際上保密的密碼 3不保密的密碼 按密鑰方式劃分按密鑰方式劃分 1對(duì)稱式密碼 2非對(duì)稱式密碼 按明文形態(tài)分按明文形態(tài)分 1模擬型密碼 2數(shù)字型密碼 按編制原理劃分按編制原理劃分 1移位 2代替 3置換 4組合形式 與電子商務(wù)密切相關(guān)的安全理論主要有以下三大類與電子商務(wù)密切相關(guān)的安全理論主要有以下三大類: 1分組密碼 2公開(kāi)密鑰密碼 3非密碼的安全理論和技術(shù) 2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)v2.2.1 換位密碼換位密碼 換位密碼根據(jù)一定的規(guī)則重新

5、安排明文字母,使之成為密文。常用的換位密碼有兩種,一種是列換位密碼,另一種是周期換位密碼。 例例1 假定有一個(gè)密鑰是type的列換位密碼,我們把明文can you believe her寫(xiě)成4行4列矩陣,如表表21所示。 表表21 密鑰 type 順序 3 4 2 1 c a n y o u b e l i e v e h e r 密鑰type順序3 4 2 1c a n yo u b el i e ve h e r按照密鑰type所確定的順序,按列寫(xiě)出該矩陣中的字母,就得出密文: y e v r n b e e a u i h co l e例例2 假設(shè)有一個(gè)周期是4的換位密碼,其密鑰是i1,

6、2,3,4的一個(gè)置換f(i)3,4,2,l。明文同上例,加密時(shí)先將明文分組,每組4個(gè)字母,然后根據(jù)密鑰所規(guī)定的順序變換如下:明文: mc a n y o u b e 1 i e v e h e r密文: cn y a c b e u o e v i l e r h e2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)v2.2.2 代替密碼代替密碼 密碼體制一般可分為傳統(tǒng)密碼和現(xiàn)代密碼,從不同的角度根據(jù)不同的標(biāo)準(zhǔn),可以把密碼分成若干類: 簡(jiǎn)單代替密碼(簡(jiǎn)單代替密碼(simple substitution cipher) 簡(jiǎn)單代替密碼就是將明文字母表m中的每個(gè)字母用密文字母表c中的相應(yīng)字母來(lái)代替。 1移位密碼 加密

7、變換可表示為:ek(m)=(k+m)mod q=c,解密變換為;dk(c)=(m-k)mod q=m,其中q為字母表m的長(zhǎng)度,m為明文字符在字母表m中的位置,c為密文字母在字母表c中的位置。移位密碼就是對(duì)英文26個(gè)字母進(jìn)行移位代替的密碼 。 2乘數(shù)密碼 加密過(guò)程可表示為: ek(m)km mod q=c, 其中k和q為互素的,這樣字母表中的字母會(huì)產(chǎn)生一個(gè)復(fù)雜的剩余集合。 3仿射密碼 加密的形式為:ek(m)=(k1m+k2)mod q=c,其中要求k1和q是互素的。 2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù) 多名或同音代替密碼多名或同音代替密碼(homophonic substitution ciph

8、er) 在同音代替中,一個(gè)明文字母表的字母a,可以變換為若干個(gè)密文字母f(a),稱為同音字母,因此,從明文到密文的映射f的形式是f:a2c,其中a,c分別為明文和密文的字母表。 例例3 假定一個(gè)同音代替密碼的密鑰是一段短文,該文及其其中各個(gè)單詞的編號(hào),如下所示: (1) canadas large land mass and (6) scattered population make efficient communication (11) a necessityextensive railway,road (16) and other transportation systems,as (2

9、1) well as telephone,telegraph,and (26) cable networks,have helped to (31) link communities and have played (36) a vital part in the (41) countrys development for future 在上表中,每一個(gè)單詞的首字母都和一個(gè)數(shù)字對(duì)應(yīng),例如字母c與數(shù)字1,10,26,32,41對(duì)應(yīng);字母m和數(shù)字4,8對(duì)應(yīng)等,加密時(shí)可以用與字母對(duì)應(yīng)的任何一個(gè)數(shù)字代替字母,例如,如果明文為i love her forever的密文可能是39 2 17 37 9 28

10、 9 14 43 17 14 13 37 13 142.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù) 多表代替密碼多表代替密碼(polyalphabetic substitution cipher) 在vigenere密碼中,用戶鑰是一個(gè)有限序列k(kl,k2,k3,kd),我們可以通過(guò)周期性(周期為d)將k擴(kuò)展為無(wú)限序列,得到工作鑰 k(kl,k2,k3,),其中 kik(i mod d),li,如果我們用和分別表示密文和明文字母,則vigenere密碼的變換公式為: (+ki)(mod n) 例例4 在用戶鑰為cat的vigenere密碼(周期為3)中,加密明 文vigenere cipher的過(guò)程如下(

11、n26): 明 文 mvig ene rec iph er 工作鑰 kcat cat cat cat ca, 密 文 cxiz gnx tev kpa gr. 在這個(gè)例子中,每個(gè)三字母組中的第一個(gè)、第二個(gè)和第三個(gè)字母分別移動(dòng)(mod 26)2個(gè)、0個(gè)和19個(gè)位置。 游動(dòng)鑰密碼是一種非周期性的vigenere密碼,它的密鑰和明文信息一樣長(zhǎng),而且不重復(fù)。2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)例例5 假定一個(gè)游動(dòng)鑰密碼的密鑰是美國(guó)1776年7月4日發(fā)布的獨(dú)立宣 言,從第一段開(kāi)始,因此,明文the object of 明文: mt h e o b j e c t o f 密鑰: kw h e n i n t

12、 h e c o 密文: cp o i b j w x j x q t 多字母代替密碼多字母代替密碼(polygram substitution cipher) 每一對(duì)明文字母m1和m2,都根據(jù)以下5條規(guī)則進(jìn)行加密: (1)若ml和m2在密鑰方陣中的同一行,則密文字母c1和c2分別是ml和m2右邊字母(第一行看作在第五行的下邊)。 (2)若ml和m2在同一列,則c1和c2分別是m1和m2右邊的字母(第一行看作為第五行的下邊)。 (3)若m1和m2在密鑰方陣中的不同行和列,密文字母c1和c2分別是以m1和m2為頂點(diǎn)組成的長(zhǎng)方形中的另兩個(gè)頂點(diǎn),其中c1和m1、 c2和m2分別在同一行。 (4)若m

13、1m2,則在ml和m2之間插進(jìn)一個(gè)無(wú)效字母,例如x。 (5)若明文信息共有奇數(shù)個(gè)字母,則在明文末尾附加一個(gè)無(wú)效字母。2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)例例6 用playfair密碼加密明文bookstore,我們有明文 mbo xo ks to re密文 cid rg lp qd hgh a r p s i c o d b e f g k l m n q t u v w x y z 2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)v2.2.3 轉(zhuǎn)輪機(jī)轉(zhuǎn)輪機(jī) 輪轉(zhuǎn)機(jī)有一個(gè)鍵盤(pán)和一系列轉(zhuǎn)輪,每個(gè)轉(zhuǎn)輪是字母的任意組合,輪轉(zhuǎn)機(jī)有一個(gè)鍵盤(pán)和一系列轉(zhuǎn)輪,每個(gè)轉(zhuǎn)輪是字母的任意組合,有有26個(gè)位置,并且完成一種簡(jiǎn)單代替。例如,

14、一個(gè)轉(zhuǎn)輪可能被用線連個(gè)位置,并且完成一種簡(jiǎn)單代替。例如,一個(gè)轉(zhuǎn)輪可能被用線連起來(lái)以完成用起來(lái)以完成用k代替代替a,月,月w代替代替d,用,用l代替代替t等,而且轉(zhuǎn)輪的輸出栓等,而且轉(zhuǎn)輪的輸出栓連接到相鄰的輸入栓。連接到相鄰的輸入栓。 例如,例如,有一個(gè)密碼機(jī),有4個(gè)轉(zhuǎn)輪,第一個(gè)轉(zhuǎn)輪可能用g代替b,第二個(gè)轉(zhuǎn)輪可能內(nèi)n代替g,第二個(gè)轉(zhuǎn)輪可能用s代替n。第四個(gè)轉(zhuǎn)輪可能用c替s,c應(yīng)該是輸出密文。當(dāng)轉(zhuǎn)輪移動(dòng)后,下一次代替將不同。為使機(jī)器更加安全,可以把幾種轉(zhuǎn)輪和移動(dòng)的齒輪結(jié)合起來(lái)。因?yàn)樗械霓D(zhuǎn)輪以不同的速度移動(dòng),n個(gè)轉(zhuǎn)輪的機(jī)器周期為26n。為進(jìn)一步阻止密碼分析,有些轉(zhuǎn)輪機(jī)在每個(gè)轉(zhuǎn)輪上還有不同的位置號(hào)。

15、2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)v2.2.4 一次一密密碼一次一密密碼 每個(gè)密鑰僅對(duì)一個(gè)消息使用每個(gè)密鑰僅對(duì)一個(gè)消息使用次。發(fā)方對(duì)所發(fā)的消息加密,然后銷(xiāo)毀次。發(fā)方對(duì)所發(fā)的消息加密,然后銷(xiāo)毀亂碼本中用過(guò)的一頁(yè)或用過(guò)的磁帶部分。收方有一個(gè)同樣的亂碼本,亂碼本中用過(guò)的一頁(yè)或用過(guò)的磁帶部分。收方有一個(gè)同樣的亂碼本,并依次使用亂碼本上的每個(gè)密鑰去解密密文的每個(gè)字符。收方在解密并依次使用亂碼本上的每個(gè)密鑰去解密密文的每個(gè)字符。收方在解密消息后銷(xiāo)毀亂碼本中用過(guò)的一頁(yè)或用過(guò)的磁帶部分。新的消息則用亂消息后銷(xiāo)毀亂碼本中用過(guò)的一頁(yè)或用過(guò)的磁帶部分。新的消息則用亂碼本中新的密鑰加密。碼本中新的密鑰加密。 例如,例如

16、, 消息 0netimepad 亂碼本的密鑰序列 tbfrgfarfm 密文 ipklpsfhgq,因?yàn)閛+t mod26in+b mod26pe+f mod26k密鑰序列也可能是: poyyaeaazx解密出來(lái)是: salmoneggs或密鑰序列為: bxfgbmtmxm解密出來(lái)的明文為: greenfluid2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)使用一次一密亂碼本需要注意使用一次一密亂碼本需要注意 密鑰字母必須隨機(jī)產(chǎn)生。對(duì)這種方案的攻擊主要是針對(duì)用來(lái)產(chǎn)生密鑰序列的方法。偽隨機(jī)數(shù)發(fā)生器通常只有非隨機(jī)性,所以不能用于產(chǎn) 生 隨 機(jī) 密 鑰 序 列 。 采 用 真 隨 機(jī) 源 , 它 才 是 安 全

17、的 。 0netimepad 密鑰序列不能重復(fù)使用。如果密碼分析家有多個(gè)密鑰重疊的密文,那么即使你用多兆字節(jié)的亂碼本,他也能重構(gòu)明文。他可以把每排密文移來(lái)移去,并計(jì)算每個(gè)位置的適配量。如果他們排列正確,則適配的比例會(huì)突然升高(準(zhǔn)確的百分比與明文的語(yǔ)種有關(guān))。從這一點(diǎn)來(lái)說(shuō),密碼分析是容易的,它類似于重合指數(shù)法只不過(guò)用兩個(gè)“周期”。所以千萬(wàn)別重復(fù)使用密鑰序列。 2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)v 2.3.1 對(duì)稱密碼技術(shù)對(duì)稱密碼技術(shù) 對(duì)稱密鑰密碼系統(tǒng)使用的加密密鑰和解密密鑰是相同的,或者可以簡(jiǎn)單地相互推導(dǎo)出來(lái)。典型的對(duì)稱密鑰密碼系統(tǒng)是數(shù)據(jù)加密標(biāo)準(zhǔn)(des-data encryption stand

18、ard),此外還有idea(international data encryption algorithm)、aes(advanced encryption standard)等。 數(shù)據(jù)加密標(biāo)準(zhǔn)(數(shù)據(jù)加密標(biāo)準(zhǔn)(des) 逆初始變換逆初始變換子密鑰生成子密鑰生成k1,k2,k16初始變換初始變換64比特密文比特密文64比特明文比特明文64比特密鑰比特密鑰初始換位初始換位圖22 des加密的數(shù)據(jù)流程2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)1加密處理加密處理 a 初始換位初始換位:加密處理首先要對(duì)64比特的明文按表表23所示的初始換位表1p進(jìn)行換位。 表中的數(shù)值表示輸入比特被置換后的新比特位置。例如,輸入的

19、第58比特,在輸出時(shí)被置換到第l比特的位置;輸入的第2比特,在輸出時(shí)被置換到第8比特的位置;輸入的第l比特,在輸出時(shí)被置換到第40比特的位置;輸入的第7比特,在輸出時(shí)被置換到第64比特的位置上。表232.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)b 加密處理加密處理: 上述換位處理的輸出、中間要經(jīng)過(guò)16層復(fù)雜的加密變換。經(jīng)過(guò)初始換位的64比特的輸出變?yōu)橄乱徊降妮斎?,?4比特分成左、有兩個(gè)32比特,左為lo,右為ro,從lo和ro到ll6和r16共進(jìn)行了如圖圖24所示的16層加密變換。換完之后,若經(jīng)過(guò)第n層處理后的左、右32比特分別為ln和rn,則ln和rn可作如下的定義; ln=rn-1 rn=ln-1

20、f(rn-1,kn) 這里,kn是向第n層輸入的48比特的密鑰;ln-1和rn-1分別是第n-1層的輸出;f是以rn-1和kn為變量的輸出32比特的函數(shù)。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)明文(64)初始變換左移位左移位d0(28)c0(28)密鑰(56)壓縮型變換壓縮型變換f(r1,k2)r0(32)r2(32)l1(32)f(r0,k1)l0(32)壓縮型換位密鑰(64)c1(28)c1(28)左移位c2(28)c2(28)左移位左移位左移位第一層加密處理部分加密處理部分密鑰生成部分密鑰生成部分圖圖23 des算法的框圖算法的框圖2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)d16(28)c16(28)r

21、16(32)壓縮型換位f(r15,k15)r2(32)r15(32)l15(32)l16(32)l2(32)密文(64)最后變換第16層加密變換( )內(nèi)為比特?cái)?shù)k16(48)k162.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)ln-1rnlnf(rn-1,kn)rn-132比特比特32比特比特32比特比特32比特比特48比特比特kn圖圖24 第第n層的加密變換層的加密變換2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)c 最后換位最后換位: 進(jìn)行完16次的加密變換之后,將l16和r16合成64位數(shù)據(jù),再按表表24所示的最后換位表ip1進(jìn)行換位,得到64比特的密文,這就是des加密的結(jié)果。408481656246432397

22、47155523633138646145422623037545135321612936444125220602835343115119592731242105018582633141949175725表24 最后換位表ip1 由圖圖25可以看出,表24和表23是完全的逆變換。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)2加密變換加密變換 例例: 向s1輸入一個(gè)二進(jìn)制狀態(tài)0ll01l時(shí),因開(kāi)頭的0和末尾的1合起來(lái)為01(即十進(jìn)制數(shù)1),所以選中了編號(hào)為1的代替表;又因中間4個(gè)比特狀態(tài)為1101(十進(jìn)制數(shù)13),表示選第13列。第1行第13列所指示的值為5,即輸出狀態(tài)為0101,這4個(gè)比特就是經(jīng)過(guò)代替之后的

23、狀態(tài)。表表27給出了s1s8的s盒代替表,其中的每一行代表一種代替表。接著,從8個(gè)s盒輸出的32比特,根據(jù)表表28所示的單純換位表p進(jìn)行換位,這樣便實(shí)現(xiàn)了f(r,k)的變換。3212645456789891011121312131415161716171819202120212223242524252627282925293031321表25 擴(kuò)展型換位表e2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù) 列行01234567891011121314150144131215118310612590710157414213110612119538241148136211151297310503151282491

24、7511314100613表26 s盒的代替表(s1)2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)圖25 初始換位和最后換位2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)表表27 s盒代替表盒代替表2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)1672021291228171152326518311028241432273919133062211425表28 單純換位表p2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)3.子密鑰的生成子密鑰的生成 下面,說(shuō)明子密鑰k1k16的16層子密鑰的生成過(guò)程。在64比特的密鑰里包含了8位的奇偶校驗(yàn)位,所以實(shí)際密鑰長(zhǎng)度是56比特,而每層要生成48比特的子密鑰。 輸入64比特的密鑰

25、,首先通過(guò)壓縮型換位pc1(permutation choice)去掉奇偶校驗(yàn)位,再將不含奇偶校驗(yàn)位的56比特進(jìn)行輸出,而每層要分成兩部分,上部分的28比特為c0,下部分的28比特為d0,如表表29所示。c0和d0依次進(jìn)行循環(huán)左移位,這樣就生成了cl和dl,然后將cl和dl合成56位,再通過(guò)壓縮型換位pc2(表表210),輸出的結(jié)果即為48位的子密鑰k1。再將c1和d1進(jìn)行循環(huán)左移位和pc2的轉(zhuǎn)換,即得子密鑰k2。依次類推,就可以得出16級(jí)的子密鑰k1,k2,k16。16層子密鑰的生成過(guò)程如圖圖23右半部所示。值得注意的是,在產(chǎn)生16級(jí)子密鑰的過(guò)程中,l1、l2、l9、 l16是循環(huán)左移1位的

26、變換,而其余的ln都是循環(huán)左移2位的變換。16層變換中的循環(huán)左移位次數(shù)如表表211所示。2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)2.2 傳統(tǒng)密碼技術(shù)傳統(tǒng)密碼技術(shù)密鑰層次循環(huán)左移位次數(shù)密鑰層次循環(huán)左移位次數(shù)119121102321124212252132621427215282161表211 密鑰生成中的循環(huán)左移位次數(shù)2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)4解密處理解密處理 從密文到明文的解密處理可采用與加密算法完全相同的算法。不過(guò)解密要用加密的逆變換,也就是把上述的最后換位表1p-1和初始換位表lp完全倒過(guò)來(lái)變換。另外,在16層的變換處理中,由于rn-1ln和ln-1rn fln,kn,因此要求出rn-1和

27、ln-1只要知道ln、rn和kn,并使用同一個(gè)函數(shù)f所表示的變換便可以實(shí)現(xiàn),從而在各層變換中,如果采用與加密時(shí)相同的kn來(lái)處理,就能實(shí)現(xiàn)解密。具體地說(shuō),輸入des算法中的密文,經(jīng)過(guò)初始換位可得到l16和r16,第1層處理時(shí)的密鑰是逆序的,用k-16可以求出l15和r15,其中f(r,k)即使不可逆也沒(méi)有關(guān)系;然后用k15進(jìn)行變換求出l14和r14。依次類推,經(jīng)過(guò)16層的變換即可得到l0和r0。5des加密的評(píng)價(jià)加密的評(píng)價(jià) 2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)6二重二重des 二重des是多重使用des時(shí)最簡(jiǎn)單的形式,其中明文為p,兩個(gè)加密密鑰為k1和k2,密文為: cek2ek1p. 解密時(shí),以相

28、反順序使用兩個(gè)密鑰: pdk1dk2c.因此,二重des所用密鑰長(zhǎng)度為112比特,強(qiáng)度極大地增加。然而,如果對(duì)任意兩個(gè)密鑰k1和k2,能夠找出另一密鑰k3,使得 ek2ek1p=ek3p. 那么,二重des以及多重des都沒(méi)有意義,因?yàn)樗鼈兣c56比特密鑰的單重des等價(jià)。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)7兩個(gè)密鑰的三重兩個(gè)密鑰的三重des 2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)8三個(gè)密鑰的三重三個(gè)密鑰的三重des 三個(gè)密鑰的三重三個(gè)密鑰的三重des密鑰長(zhǎng)度為密鑰長(zhǎng)度為168比特,加密方式為比特,加密方式為: cek3dk2ek1p 令令k3k2或或k1k2,則變?yōu)橐恢?,則變?yōu)橐恢豥es。 三個(gè)密鑰的

29、三重三個(gè)密鑰的三重des己在因特網(wǎng)的許多應(yīng)用己在因特網(wǎng)的許多應(yīng)用(如如pgf和和s/mime)中被中被采用。采用。 2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù) 國(guó)際數(shù)據(jù)加密算法(國(guó)際數(shù)據(jù)加密算法(idea) 高級(jí)加密標(biāo)準(zhǔn)(高級(jí)加密標(biāo)準(zhǔn)(aes) 整個(gè)算法包括加密過(guò)程加密過(guò)程與輪密鑰生成輪密鑰生成兩個(gè)獨(dú)立的部分1.加密過(guò)程加密過(guò)程 設(shè)信息塊是m,輪密鑰分別是k0, k1,knr-1 ,加密過(guò)程如圖圖210所示。解密過(guò)程把加密過(guò)程完全反過(guò)來(lái)即可。+ee1e明文明文m密文密文bytesubshiftrowmixcolumnbytesubshiftrow2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)bytesub函數(shù)函數(shù) 把

30、每個(gè)8bit的字節(jié)看成有限域gf(28)中的一個(gè)元素,那么函數(shù)bytesub是作用在每個(gè)字節(jié)上的非線性變換,它定義為:bytesub:gf(28)gf(28) 如右圖:如右圖: 圖圖211描述了信息塊長(zhǎng)度是192bit時(shí), 函數(shù)bytesub的作用情況。shiftrow函數(shù)函數(shù) 把信息塊記為4行、nb列的矩陣形式, 函數(shù)shiftrow就是對(duì)每行實(shí)行不同的 左移位,每行的左移位數(shù)c1,c2,c3分 別由nb按照表213決定。 函數(shù)shiftrow的作用可表示成圖212。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)a00a01a02a03a04a05a10a11a12a13a14a15a20a21a22a2

31、3a24a25a30a31a32a33a34a35a00a01a02a03a04a05a10a11a12a13a14a15a20a21a22a23a24a25a30a31a32a33a34a35bytesub圖211 函數(shù)bytesubn6c1c2c3412361238134表213 左移位函數(shù)的確定2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)mmopjkldefwxyzmmopjdewxy不移位左移c1位左移c2位左移c3位圖212 函數(shù)shiftrow2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)mixcolumn函數(shù)函數(shù) mixcolumn函數(shù)是gf(28)4上的一個(gè)線性變換,變換矩陣c定義為:其中,的運(yùn)算均為在

32、gf(28)中進(jìn)行。圖圖213描述了信息塊長(zhǎng)度是描述了信息塊長(zhǎng)度是192bit時(shí),mixcolumn函數(shù)的作用情況。此處矩陣c中的元素xy理解為兩個(gè)4 bit長(zhǎng)的二進(jìn)制數(shù)的串接,比如02理解為0000 0010。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)a00a01a02a03a04a05a10a11a12a13a14a15a20a21a22a23a24a25a30a31a32a33a34a35a00a01a02a03a04a05a10a11a12a13a14a15a20a21a22a23a24a25a30a31a32a33a34a35圖213 函數(shù)mixcolumn2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)2.

33、輪密鑰的生成輪密鑰的生成 輪密鑰的生成過(guò)程包括加密密鑰的擴(kuò)張和輪密鑰的選取兩個(gè)部分。 加密密鑰的擴(kuò)張加密密鑰的擴(kuò)張 假設(shè)信息塊的長(zhǎng)度是nb個(gè)32bit字,由于整個(gè)加密過(guò)程需要nr +1個(gè)輪密鑰,每個(gè)輪密鑰的長(zhǎng)度是nb個(gè)32bit字,因此密鑰的擴(kuò)張過(guò)程需要產(chǎn)生nb(nr 1)個(gè)32bit字,記為w0,w1,,wnb(nr +1)-1。加密密鑰的擴(kuò)張根據(jù)密鑰長(zhǎng)度nk的不同,有兩種不同的擴(kuò)張方式。假設(shè)加密密鑰為wk0 wk1wknr-1,令w0= wk0,w1= wk1,wnr-1= wknr-1。 當(dāng)nr6時(shí),對(duì)于nkinb(nr +1),如圖214a所示。當(dāng)nr6時(shí),對(duì)于nkinb(nr +1)

34、,如圖214b所示。 其中,rotbyte把(a,b,c,d)變?yōu)?b,c,d,a),a,b,c,d是8bit字節(jié); rconti=(rci,00,00,00);rc1=1,rci=xrci-1=xi-1,2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)輪密鑰的選取輪密鑰的選取 加密密鑰經(jīng)過(guò)擴(kuò)張產(chǎn)生了nb(nr +1)個(gè)32bit字,把它們均等地分成nr +l塊,每塊包含nb個(gè)32bit字,那么第一個(gè)輪密鑰就是第一個(gè)塊,第二個(gè)輪密鑰就是第二個(gè)塊,依此類推得到所有的輪密鑰。3.關(guān)于關(guān)于aes的討論的討論 與其他分組碼相比,aes具有如下特點(diǎn):可變的密鑰長(zhǎng)度;混合的運(yùn)算;數(shù)據(jù)相關(guān)的

35、圈數(shù);密鑰相關(guān)的圈數(shù);密鑰相關(guān)的s盒;長(zhǎng)密鑰調(diào)度算法;可變長(zhǎng)明文/密文塊長(zhǎng)度;可變?nèi)?shù);每圈操作作用于全部數(shù)據(jù)。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)輪密鑰的選取輪密鑰的選取 加密密鑰經(jīng)過(guò)擴(kuò)張產(chǎn)生了nb(nr +1)個(gè)32bit字,把它們均等地分成nr +l塊,每塊包含nb個(gè)32bit字,那么第一個(gè)輪密鑰就是第一個(gè)塊,第二個(gè)輪密鑰就是第二個(gè)塊,依此類推得到所有的輪密鑰。3.關(guān)于關(guān)于aes的討論的討論 與其他分組碼相比,aes具有如下特點(diǎn):可變的密鑰長(zhǎng)度;混合的運(yùn)算;數(shù)據(jù)相關(guān)的圈數(shù);密鑰相關(guān)的圈數(shù);密鑰相關(guān)的s盒;長(zhǎng)密鑰調(diào)度算法;可變長(zhǎng)明文/密文塊長(zhǎng)度;可變?nèi)?shù);每圈操作作用于全部數(shù)據(jù)。2.3 現(xiàn)代密

36、碼技術(shù)現(xiàn)代密碼技術(shù)v 2.3.2 非對(duì)稱密碼技術(shù)非對(duì)稱密碼技術(shù) 公鑰加密技術(shù)原理概述公鑰加密技術(shù)原理概述 公鑰加密是基于單向陷門(mén)(trap door)函數(shù)來(lái)實(shí)現(xiàn)的,單向陷門(mén)函數(shù)是指滿足下列條件的函數(shù)f(x): (1)給定x,計(jì)算yf(x)是容易的; (2)給定y,計(jì)算xf-1(y)是困難的; (3)存在,已知時(shí),對(duì)給定的任何y,若相應(yīng)的x存在,則計(jì)算x=f-1(y)是容易的。 僅滿足第(1)條、第(2)條的稱為單向函數(shù),第(3)條稱為陷門(mén)性,稱為陷門(mén)信息。當(dāng)用陷門(mén)函數(shù)f(x)作為加密函數(shù)時(shí)可將f(x)公開(kāi),這相當(dāng)于公鑰。f(x)函數(shù)的設(shè)計(jì)者將保密,用作解密密鑰,這相當(dāng)于私鑰。由于加密函數(shù)是公開(kāi)

37、的,任何人都可以將信息x加密成y=f(x),然后送給函數(shù)的設(shè)計(jì)者,當(dāng)然可以通過(guò)不安全信道傳送,由于設(shè)計(jì)者擁有(私鑰),他可以容易地解出xf-1(y)。單向陷門(mén)函數(shù)的第(2)條性質(zhì)表明竊聽(tīng)者由截獲的密文yf(x)推測(cè)x是不可行的。目前公鑰密碼系統(tǒng)單向陷門(mén)函數(shù)的設(shè)計(jì)主要依賴下面3種數(shù)學(xué)難題: (1)背包問(wèn)題;(2)大整數(shù)因子分解問(wèn)題;(3)離散對(duì)數(shù)問(wèn)題2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù) rsa加密系統(tǒng)加密系統(tǒng) 1.rsa算法的描述算法的描述 rsa算法的實(shí)現(xiàn)步驟如下:(b為實(shí)現(xiàn)者) (1)b尋找出兩個(gè)大素?cái)?shù)p和q。 (2)b計(jì)算出n=pq和f(n)(p一1)(q一1)。 (3)b選擇一個(gè)隨機(jī)數(shù)e(0

38、ej(n),滿足(e,f(n)=1。 (4)b使用歐幾里得擴(kuò)展算法計(jì)算d=e-1(mod f(n)。 (5)b在目錄中公開(kāi)n和e作為他的公開(kāi)鑰,保密p、q和d。 密碼分析者攻擊rsa體制的關(guān)鍵點(diǎn)在于如何分解n。若分解成功使n=pq,則可以算出f(n)=(p-1)(q1),然后由公開(kāi)的e解出秘密的d。加密時(shí),對(duì)每一明文分組如下計(jì)算:ci=mie (mod n).解密時(shí),取每一密文分組c并計(jì)算:mi=cie (mod n) rsa算法主要用于數(shù)據(jù)加密和數(shù)字簽名。rsa算法用于數(shù)字簽名時(shí),公鑰和私鑰的角色變換即可。即將消息用d加密簽名,用e驗(yàn)證簽名。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)2.rsa算法實(shí)例

39、算法實(shí)例 若b選擇了p=101和q=113,那么,n=11413,f(n)=100 x112=11200;再用輾轉(zhuǎn)相除法(euclidean算法)來(lái)求得e,使(e,f(n)=1)。假設(shè)b選擇了e=3533,那么用輾轉(zhuǎn)相除法將求得:d=e-1(mod ll200),于是b的解密密鑰d= 6597。 b在一個(gè)目錄中公開(kāi)n=11413和e=3533,現(xiàn)假設(shè)a想發(fā)送明文9726給b,他計(jì)算:97263533(mod ll413)=5761,且在一個(gè)信道上發(fā)送密文5761。當(dāng)b接收到密文5761時(shí),他用他的秘密解密指數(shù)(私鑰)d=6597進(jìn)行解密: 57616597(mod ll413)=97263.關(guān)

40、于關(guān)于rsa的討論的討論2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù) 3 elgamal加密系統(tǒng)加密系統(tǒng) 1.密鑰對(duì)產(chǎn)生方法密鑰對(duì)產(chǎn)生方法 密鑰對(duì)產(chǎn)生辦法如下: (1)選擇一個(gè)素?cái)?shù)p,兩個(gè)隨機(jī)數(shù)g和x,要求g,xp。 (2)計(jì)算ygx (mod p),則其公鑰為y、g和p;私鑰是x。g和p可由一組 用戶共享。2.eigamal用于加密用于加密 假定被加密信息為m,首先選擇一個(gè)隨機(jī)數(shù)k,k與p-1互質(zhì),計(jì)算 a=gk(mod p), b=ykm(mod p). (a,b)為密文,是明文的兩倍長(zhǎng)。解密 時(shí)計(jì)算 mb/ax(mod p)3.eigamal用于數(shù)字簽名用于數(shù)字簽名 eigamal主要用于數(shù)字簽名。

41、假定被簽信息為m,首先選擇一個(gè)隨機(jī)數(shù) k,k與p-1互質(zhì),計(jì)算a=gk(mod p),再用擴(kuò)展euclidean算法對(duì)下面方程 求解b: m=xa + kb(mod p-1)簽名就是(a,b)。隨機(jī)數(shù)k須丟棄。驗(yàn)證時(shí)要驗(yàn)證下式: yaab (mod p)=gm(mod p)同時(shí)一定要檢驗(yàn)是否滿足lap,否則簽名容易偽造。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù) 橢圓曲線密碼體制橢圓曲線密碼體制 1.有限域上的橢圓曲線定義有限域上的橢圓曲線定義 設(shè)k表示一個(gè)有限域,e是域k上的橢圓曲線,則e是一個(gè)點(diǎn)的集合: e/k=(x,y)|y2+a1xy+a3y=x3+a2x2+a4x+a6,a1,a3,a2,a4

42、,a6,x,yko 其中o表示無(wú)窮遠(yuǎn)點(diǎn)。 在e上定義“+”運(yùn)算,p+qr,r是過(guò)p、q的直線與曲線的另一交點(diǎn)關(guān)于x軸的對(duì)稱點(diǎn)(如圖圖215所示),當(dāng)pq時(shí)r是p點(diǎn)的切線與曲線的另一交點(diǎn)關(guān)于x軸的對(duì)稱點(diǎn)(如圖圖216所示)。這樣,(e,+)構(gòu)成可換群(abel群),o是加法單位元(零元)。2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)橢圓曲線離散對(duì)數(shù)問(wèn)題定義如下:給定定義在k上的橢圓曲線e,一個(gè)n階的點(diǎn)p e/k和點(diǎn)qe/k,如果存在l,確定整數(shù)1,0ln1,q=lp 2.3 現(xiàn)代密碼技術(shù)現(xiàn)代密碼技術(shù)2.橢圓曲線上的密碼算法橢圓曲線上的密碼算法利用eigamal思想構(gòu)造的橢圓曲線密碼體制如下: 首先是產(chǎn)生密鑰階段。b從zn中隨機(jī)選取充分大的整數(shù)kb,隨后計(jì)算出橢圓曲線上的點(diǎn)p=kbq(q是橢圓曲線上的適當(dāng)?shù)囊稽c(diǎn)),將kb保密,作為秘密密鑰,并將p公開(kāi),作為公鑰。 加密方法如下:如果a想把消息m(同樣是橢圓曲線上的一點(diǎn))發(fā)送給b,就從zn中隨機(jī)選擇整數(shù)lzn后,計(jì)算出s1=lq和s2m+lp的值,加密以后的信息就是橢圓曲線上兩點(diǎn)(s1,s2)。 解密:b收到加密信息(s1,s2)后,通過(guò)密鑰kb就可以計(jì)算ms2kbs1得到消息m。 例如:橢圓曲線密碼實(shí)例例如:橢圓曲線密碼實(shí)例 作為加密過(guò)程的例子,取p=751;ep(-1,188),這等價(jià)于曲線y2=x3

溫馨提示

  • 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)論