第2章 數(shù) 據(jù) 加 密_第1頁
已閱讀1頁,還剩186頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,第 2 章 數(shù) 據(jù) 加 密,2.1 數(shù)據(jù)加密概述 2.2 對稱密碼體制 2.3 非對稱密碼體制2.4 密鑰的管理 2.5軟件與硬件加密技術(shù)2.6信息偽裝與數(shù)字水印,2,密碼學(xué)的發(fā)展歷史:第1階段:1949年以前,密碼技術(shù)表現(xiàn)為一種藝術(shù); 第2階段:從1949年到1975年,密碼學(xué)成為了一門學(xué)科;標(biāo)志:1949年Shannon發(fā)表的《保密系統(tǒng)的信息理論》一文。 第3階段:1976年至今,開創(chuàng)了公鑰密碼學(xué)的新紀元。

2、標(biāo)志:1976年Diffie和Hellman發(fā)表了《密碼學(xué)新方向》一文。,密碼學(xué)(Cryptology)一字源于希臘文“krypto’s”及”logos”兩字,直譯即為“隱藏”及”訊息”之意。,3,2.1 數(shù)字加密概述,一個加密系統(tǒng)采用的基本工作方式稱為密碼體制,密碼體制的基本要素是密碼算法和密鑰,其中密碼算法是一些公式、法則或程序,而密鑰是密碼算法中的可變參數(shù)。密碼算法分為加密和解密算法,前者是將明文變換成密文,后者是將密文變換成

3、明文;密鑰相應(yīng)地也分為加密密鑰和解密密鑰。,4,加密和解密,加密,解密,,,,明文M,密文C,原始明文M,E(M)=C.,D(C)=M,D(E(M))=M,,5,組成部分,X,明文(plain-text): 作為加密輸入的原始信息。Y,密文(cipher-text):對明文變換的結(jié)果。E,加密(encrypt):是一組含有參數(shù)的變換。D,解密(decrypt):加密的逆變換。Z,密鑰(key):是參與加密解密變換的參數(shù)。,一密碼

4、系統(tǒng)由算法以及所有可能的明文、密文和密鑰(分別稱為明文空間、密文空間和密鑰空間)組成。,6,加密和解密,1*.Alice要將明文X在不安全信道上發(fā)給Bob,設(shè)X=x1 x2… xn , 其中xi ∈P, Alice用加密算法ek作yi=ek(xi) 1≤ i≤ n 結(jié)果的密文是 Y=y1y2….yn ,在信道上發(fā)送, Bob收到后解密:xi=dk(yi) 得到明文X=x1 x2… xn .。2*.加密函

5、數(shù)ek必須是單射函數(shù),就是一對一的函數(shù)。3*.好的密鑰算法是唯密鑰而保密的。4*.若Alice和Bob在一次通信中使用相同的密鑰,那么這個加密體制為對稱的,否則稱為非對稱的。,7,密碼體制的分類,幾種不同的分類標(biāo)準 按操作方式進行分類(操作方式:是明文變換成密文的方法。)替代操作、置換操作、混合操作。按照使用密鑰的數(shù)量進行分類對稱密鑰(單密鑰)。公開密鑰(雙密鑰)。按照對明文的處理方法進行分類流密碼。分組密碼。,8

6、,Kerckhoffs假設(shè) (Auguste Kerckhoff,1883),假定: 密碼分析者知道對方所使用的密碼系統(tǒng),包括明文的統(tǒng)計特性、加密體制(操作方式、處理方法和加/解密算法 )、密鑰空間及其統(tǒng)計特性。不知道密鑰。 在設(shè)計一個密碼系統(tǒng)時,目標(biāo)是在Kerckhoffs 假設(shè)的前提下實現(xiàn)安全 。,9,密碼系統(tǒng),一個好的密碼系統(tǒng)應(yīng)滿足:系統(tǒng)理論上安全,或計算上安全;系統(tǒng)的保密性是依賴于密鑰

7、的,而不是依賴于對加密體制或算法的保密;否則稱為“含糊安全性”:企圖使算法保密的做法。加密和解密算法適用于密鑰空間中的所有元素; 系統(tǒng)既易于實現(xiàn)又便于使用。,10,加密的功能,保密性:基本功能,使非授權(quán)者無法知道消息的內(nèi)容。 鑒別:消息的接收者應(yīng)該能夠確認消息的來源。 完整性:消息的接收者應(yīng)該能夠驗證消息在傳輸過程中沒有被改變。 不可否認性:發(fā)送方不能否認已發(fā)送的消息。,11,2.1.1 保密通信模型 首先來

8、看一個保密通信系統(tǒng)的基本模型,如圖2.1所示:A向B發(fā)送一報文,為了不被E竊聽,A對報文進行加密,然后在通信信道上進行傳輸,B收到報文后進行解密,得到原來的報文。,12,圖2.1 保密通信系統(tǒng)的模型,13,2.1.2 經(jīng)典加密方法1.換位加密法(Transposition)(1)鐵軌法(Railroad Method)鐵軌法是換位算法最基本的形式。首先,它要求明文的長度必須是4的倍數(shù),不符合要求則在明文最后加上一些字母以符合

9、加密的條件。 例如,明文“STRIKE WHILE THE IRON IS HOT”就不滿足條件(空白不計),故在尾端加上字母“E”使明文的長度變成4的倍數(shù),接著將明文以從上到下的順序逐列寫出,表示如下:S R K W I E H I O I H TT I E H L T E R N S O E,14,依序由左而右再由上而下地寫出字母即為密文,表示如下:

10、SRKWIEHIOIHTTITIEHLTERNSOE為方便起見,將密文每4個字母一組,其間用空格隔開: SRKW IEHI OIHT TIRH LYRT NSOE,15,這就是為什么要使密文長度為4的倍數(shù)的原因了。接收方收到此密文后,因為知道加密的順序,因此,接收方可將密文以一直線從中分為兩個部分,如下所示:SRKW IEHI OIHT | TIRH LYRT NSOE然后左右兩半依序輪

11、流讀出字母便可以還原成原來的明文了。當(dāng)然,在寫明文時也可以寫成三列或四列等。寫法不同,則解法也相應(yīng)不同。,16,(2)路游法 路游法可以說是一種鐵軌法的推廣。同樣,此法也必須將明文的長度調(diào)整為4的倍數(shù)。之后將調(diào)整過的明文依由左而右由上而下的順序(此順序稱之為排列順序)填入方格矩陣中。依前例,可以得到如下矩陣。,17,有了此矩陣后,便可以依照某一事先規(guī)定的路徑(稱為游走路徑)來游走矩陣并輸出所經(jīng)過的字母,此即為密文。

12、如果以如圖2.2所示的游走路徑來走,則可以得到如下的密文:ETNETOEKILROHIIRTHESIHWS,18,圖2.2 游走路徑,19,(3)密鑰法 密鑰法最大的好處是就是將加密者和解密者雙方所持有的加、解密信息具體化。密鑰法大致來說與路游法相似,首先也是將明文填入一個矩陣(見路游法中的矩陣),接著,任意挑選一個密鑰,如以“PREDIC”這個英文單字為加、解密雙方所協(xié)議的共同密鑰,然后,將密鑰寫于矩陣上方,

13、如下所示。,,20,21,接著依照加密密鑰字母的順序分別依序讀出其相對應(yīng)的列便可得到密文,即先讀出字母C對應(yīng)的列,再依次讀出字母DEIPR對應(yīng)的列,得到密文如下:E T N E I L R O R I I HKE O TSWH I H T ES,22,2.替換加密法(Substitution) 替換加密法與此思路完全相反,對于明文的每一個字母并不去改變它的位置,只是將它以別的字母或符號取代。,23,24,(1)旋轉(zhuǎn)替換法

14、 假設(shè)有一個由兩個同心圓所組成的密碼轉(zhuǎn)盤,如圖2.3所示。,,25,圖2.3 密碼轉(zhuǎn)盤圖,圖2.4 旋轉(zhuǎn)后的密碼轉(zhuǎn)盤,26,(2)Lewis Carroll’s Vigenere代換法,一種以移位代換為基礎(chǔ)的周期代換密碼,為1858年法國密碼學(xué)家維吉尼亞提出。 構(gòu)成明文:每個字符惟一對應(yīng)一個0~25間的數(shù)字。密鑰:一個字符串,其中每個字符同明文一樣對應(yīng)一個數(shù)字,代表位移值,如a 表示位移 0,b 表示位移 1,c 表示

15、位移 2,...... )。加密過程:將明文數(shù)字串依據(jù)密鑰長度分段,并逐一與密鑰數(shù)字串相加(模26),得到密文數(shù)字串;最后,將密文數(shù)字串轉(zhuǎn)換為字母串。,27,,例如:明文為System,密鑰為dog,加密過程如下:明文:S y s t e m密鑰:d o g d o g密文:V m g w r s在這個例子中,每三個字母中的第一、第二、第三個字母分別移動(mod 26)3個,14個和6個位置。,28,首先構(gòu)造一個維吉尼亞方

16、陣:它的基本陣列是26行26列的方陣.方陣的第一行是按正常順序排列的字母表,第二行是第一行左移循環(huán)1位得到的,依此類推,得到其余各行.然后在基本方陣的最上方附加一行,最左側(cè)附加一列,分別依序?qū)懮蟖到z 26個字母,表的第一行與與附加列上的的字母a相對應(yīng),表的第二行與附加列上的字母b相對應(yīng)..最后一行與附加列上的字母z相對應(yīng).如果把上面的附加行看作是明文序列,則下面的26行就分別構(gòu)成了左移0位,1位,2位…,25位的26個單表代換加同余密

17、碼的密文序列。加密時,按照密鑰字的指示,決定采用哪一個單表。,29,30,維吉尼亞密碼密鑰字 encryptionencryptione明 文:publickeydistribution密 文:thdcgrdmmqmfvrgqnbwbr,由于密鑰字比明文短,所以要重復(fù)書寫密鑰字,以得與明文等長的密鑰序列。,31,,2.1.3 現(xiàn)代密碼體制1.對稱密碼體制和非對稱密碼體制 對稱密碼體制又稱為秘密密鑰密碼體制(或單

18、密鑰密碼體制/隱蔽密鑰密碼體制),即加密密鑰和解密密鑰相同或一個可由另一個導(dǎo)出。 非對稱密碼體制又稱為公開密鑰密碼體制,即加密密鑰公開,解密密鑰不公開,從一個推導(dǎo)出另一個是不可行的。,32,2.分組密碼體制和序列密碼體制 這是根據(jù)密碼算法對明文信息的加密方式進行分類的方法。如果密文僅與給定的密碼算法和密鑰有關(guān),與被處理的明文數(shù)據(jù)段在整個明文(或密文)中所處的位置無關(guān),則稱為分組密碼體制。分組密碼體制就是將

19、明文分成固定長度的組,如64bit一組,用同一密鑰和算法對每一組加密,輸出也是固定長度的密文。 如果密文不僅與給定的密碼算法和密鑰有關(guān),同時也是被處理的明文數(shù)據(jù)段在整個明文(或密文)中所處的位置的函數(shù),則稱為序列密碼體制。,33,3.確定型密碼體制和概率密碼體制 如果一個加密過程可以描述為:當(dāng)明文和密鑰確定后,密文的形式也就惟一地確定,則稱為確定型密碼體制。前面提到的加密方法中,多數(shù)屬于這一類。 如果一

20、個加密過程可以描述為:當(dāng)明文和密鑰確定后,密文的形式仍是不確定的,最后產(chǎn)生出來的密文通過客觀隨機因素從一個密文集合中選出,則稱為概率密碼體制。 4.單向函數(shù)密碼體制和雙向變換密碼體制,34,2.2 對稱密碼體制,2.2.1 美國數(shù)據(jù)加密標(biāo)準(DES)美國數(shù)據(jù)加密標(biāo)準(Data Encryption Standard,DES)是在20世紀70年代中期由美國IBM公司的一個密碼算法發(fā)展而來的,1977年美國國家標(biāo)準局公布DES密碼算

21、法作為美國數(shù)據(jù)加密標(biāo)準。直到今日,盡管DES已經(jīng)經(jīng)歷了30多個年頭,但在已知的公開文獻中,還是無法完全地、徹底地把DES給破解掉。,明文和密文的長度均為64位,密鑰長度為56位。,35,DES的產(chǎn)生背景,美國國家標(biāo)準局(NBS)1973 年公開征求計算機加密算法標(biāo)準,要求如下:該算法必須提供較高的安全性;該算法必須完全確定并且易于理解;該算法的安全性不應(yīng)依賴于算法本身,而是應(yīng)該依賴于密鑰;該算法必須對所有的用戶有效;該算法必須

22、適用于各種應(yīng)用;該算法必須能夠通過價格合理的電子器件得以實現(xiàn);該算法必須能夠有效使用;該算法必須能夠得以驗證;該算法必須能夠得以出口。,36,DES的生命期,NBS最終采納了 IBM 的 LUCIFER 方案,于 1975 年公開發(fā)表。1977 年正式頒布為數(shù)據(jù)加密標(biāo)準(DES - Data Encryption Standard)。1979 年,美國銀行協(xié)會批準使用 DES。1980 年,DES 成為美國標(biāo)準化協(xié)會 (A

23、NSI) 標(biāo)準。1984 年,ISO 開始在 DES 基礎(chǔ)上制定數(shù)據(jù)加密的國際標(biāo)準。DES的發(fā)展:如衍生出可抗差分分析攻擊的變形DES以及密鑰長度為128比特的三重DES等?,F(xiàn)已經(jīng)確定了選用Rijndael算法作為高級加密算法AES。,37,DES的抗攻擊能力,38,上表中攻擊者配有如下計算機資源的攻擊能力,39,DES算法描述,算法設(shè)計中采用的基本變換和操作:置換(P)重新排列輸入的比特位置。交換(SW)將輸入的左右兩部

24、分的比特進行互換。循環(huán)移位將輸入中的比特進行循環(huán)移位,作為輸出。一個復(fù)雜變換( fK )通常是一個多階段的乘積變換;與密鑰 Key 相關(guān);必須是非線性變換;實現(xiàn)對密碼分析的擾亂;是密碼設(shè)計安全性的關(guān)鍵。,40,DES的加密過程,41,DES的加密過程,利用傳統(tǒng)的換位和置換加密。假定信息空間由{0,1}組成的字符串,信息被分成64比特的塊,密鑰是56比特。經(jīng)過DES加密的密文也是64比特的塊?! ∶魑模簃=m1m2…m6

25、4 mi = 0,1 (i = 1,2,…64)  密鑰:k=k1k2…k64 ki = 0,1( i = 1,2,…64 )其中k8,k16,…,k64是奇偶校驗位,起作用的僅為56位。   加密算法:  Ek(m) = IP-1·T16·T15……T1·IP(m)   其中IP為初始置換,IP-1是IP的逆,Ti(i = 1,2,…16)是一系列的變換。  

26、 解密算法:  Ek-1 (c) = IP-1·T1·T2……T16·IP (c),42,DES的加密過程,第一步:初始置換IP。對于給定的明文m,通過初始置換IP獲得 ,并將 分為兩部分,前面32位記為 ,后面32位記為 ,即 。,,,,,,43,初始變換IP,初始變換IP,44,IP 中各列元素位置號數(shù)相差

27、為8 ,相當(dāng)于將原明文各字節(jié)按列寫出,將陣中元素按行讀得的結(jié)果。1 9 17 25 33 41 49 572 10 18 26 34 42 50 583 11 19 27 35 43 51 594 12 20 28 36 44 52 605 13 21 29 37 45 53 616 14 22 30 38 46 54 627 15 23 31 39 47 55 638 16 24 32 40 48 56 64輸入6

28、4個二進制位明碼文數(shù)據(jù)區(qū)組m= m1m2…m64按初始換位表IP進行換位,得到m58m50…m7記成L0、R0左右兩部分,45,DES的加密過程,第二步:乘積變換( 16輪)。在每一輪中依據(jù)下列方法計算 ( )(16輪中的計算方法相同): , 其中, 為第i輪使用的子密鑰,各 均為 的一個置換選擇,所有

29、 構(gòu)成密鑰方案。函數(shù) 中的變量 為32位字符串, 為48位字符串, 函數(shù) 輸出的結(jié)果為32位字符串。,,,,,,,,,,,,,46,DES的加密過程,第二步各輪中的加密過程,,47,(1)加密函數(shù)f(Ri-1,Ki),Ri-1(32位),48位結(jié)果,48位Ki,+,,,,,選擇函數(shù)組(S1~S8),32位結(jié)果,(Ri-1,Ki),置換運算P,,,,,,,32位,48,

30、乘積變換中的一次迭代,49,32位,置換運算P,32位加密函數(shù)輸出,32位,Ri,右32位,,,,,,Ri-1,Li-1,模2加,,,,,+++++...++++++,,,,,,Li,左32位,50,①擴展置換E,Ri-1,32位,32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24

31、 2524 25 26 27 28 2928 29 30 31 32 1,選擇運算E,選擇運算E的結(jié)果,48位,,,51,使用密鑰:在第i次迭代中,用48位二進制的密鑰(由56位密鑰生成,下邊會介紹)K(i)=k1(i)k2(i)…k48(i)與E(R(i-1))按位相加(邏輯異或),輸出仍是48位,共8行,每行6位。B1 :B1(1) B1(2) B1(3) B1(4) B1(5) B1(6)B2 :B2(1) … B

32、2(6)…B 8 :B8(1)… B8(6)作為8個Si選擇函數(shù)的輸入,,②明文與密鑰模2加,52,③S1,S2...S8選擇函數(shù),其功能是把6bit數(shù)據(jù)變?yōu)?bit數(shù)據(jù)。Si(i=1,2......8)的功能表。S 盒是DES 的最敏感部分,其原理至今未公開。人們擔(dān)心S 盒隱藏陷門,使得只有他們才可以破譯算法,但研究中并沒有找到弱點。美國國家安全局透露了S 盒的幾條設(shè)計準則: 所有的S 盒都不是它輸入的線性仿射函數(shù)。就是沒

33、有一個線性方程能將四個輸出比特表示成六個比特輸入的函數(shù)。 改變S 盒的1 位輸入,輸出至少改變2 位。這意味著S 盒是經(jīng)過精心設(shè)計的,它最大程度上增大了擴散量。 S 盒的任意一位輸出保持不變時,0 和1 個數(shù)之差極小。即如果保持一位不變而改變其它五位,那么其輸出0 和1 的個數(shù)不應(yīng)相差太多。,53,將以上第j個(1≤j≤6)二進制的塊(記為B j=bj1 bj2 bj3 bj4 bj5 bj6)輸入第j個選擇函數(shù)Sj。各選擇函數(shù)Sj

34、的功能是把6位數(shù)變換成4位數(shù),做法是以bj1bj6為行號,bj2 bj3 bj4 bj5為列號,查找Sj,行列交叉處即是要輸出的4位數(shù)。在此以S1為例說明其功能,我們可以看到:在S1中,共有4行數(shù)據(jù),命名為0,1、2、3行;每行有16列,命名為0、1、2、3,......,14、15列。現(xiàn)設(shè)輸入為: B1=101100令:列=0110  行=10  坐標(biāo)為(2,6),然后在S1表中查得對應(yīng)的數(shù)為2,以4位二進制表示為0010,此

35、即選擇函數(shù)S1的輸出。,54,使用選擇函數(shù)S的例子,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 71 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 82 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5

36、 03 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13,,,S1,1 0 1 1 0 0,,,102,,,,0 0 1 0,輸入6位,輸出4位,,,,,55,④置換P(單純換位表),8個選擇函數(shù)的輸出,(32位),16 7 20 2129 12 28 17 1 15 23 26 5 18 31 10 2 8 24 1432 27 3

37、 919 13 30 622 11 4 25,置換P,加密函數(shù)的結(jié)果X,(32位),,,56,⑤迭代,把L(i-1)與X(i)按位相加,形成R(i),且令R(i)為L(i),即得到經(jīng)第i次迭代加密后的輸出L(i)R(i),其中L(i)= R(i-1)R(i)= L(i-1)⊕f(R(i-1),K(i)) (i=0,1,2,…,15),57,(2)密鑰ki的生成,58,①置換選擇1,密鑰計算的目的在于產(chǎn)生加密和解

38、密時所需要的16個子密鑰,記作K(i)。初始密鑰Key值為64位,但DES算法規(guī)定,其中第8、16、......64位是奇偶校驗位,不參與DES運算。故Key 實際可用位數(shù)便只有56位。即:經(jīng)過子密鑰換位表PC-1的變換后,Key 的位數(shù)由64 位變成了56位,此56位分為C0、D0兩部分,各28位。,59,,57 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 35 271

39、9 11 3 60 52 44 36,63 55 47 39 31 33 15 7 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4,密鑰(64位),,,,,C0(28位),D0(28位),密鑰置換選擇1,不考慮各字節(jié)第8位,60,②循環(huán)移位,循環(huán)移位規(guī)則:輪數(shù):1 2 3 4 5 6 7 8 9 10 11 12

40、 13 14 15 16位數(shù):1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1,61,③置換選擇2,56位分為C0、D0兩部分,然后分別進行第1次循環(huán)左移,得到C1、D1,將C1(28位)、D1(28位)合并得到56位,再經(jīng)過子密鑰換位表PC-2,便得到了密鑰K1(48位)。 子密鑰換位表PC-2給出了選擇及選擇后的次序,可

41、以看出去掉了第9、18、22、25、35、38、43、54位。,62,Ci(28位),Di(28位),14 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32,Ki(48位),,,,,去掉第9,18,22,25

42、,35,38,43,54位,56位變成48位,密鑰置換2,63,DES的加密過程,第三步:初始置換 的逆置換 。應(yīng)用初始置換 的逆置換 對 進行置換,得到密文 c ,即 。在最后一輪計算之后,將 (而非左右部分交換后的結(jié)果 )作為 的輸入,以便DES能夠同時被用于加密和解密。,,,,,,,,,

43、,64,DES的抗攻擊能力 DES用軟件進行解碼需要用很長時間,而用硬件解碼速度非???,但幸運的是當(dāng)時大多數(shù)黑客并沒有足夠的設(shè)備制造出這種硬件設(shè)備。 在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用于DES的解密,而且需要12個小時的破解才能得到結(jié)果。所以,當(dāng)時DES被認為是一種十分強壯的加密方法。,65,1997年開始,RSA公司發(fā)起了一個稱作“向DES挑戰(zhàn)”的競技賽。 1997年1月

44、,用了96天時間,成功地破解了用DES加密的一段信息; 一年之后,在第二屆賽事上,這一記錄41天 ;1998年7月, “第2-2屆DES挑戰(zhàn)賽(DES Challenge II-2)” 把破解DES的時間縮短到了只需56個小時; “第三屆DES挑戰(zhàn)賽(DES Challenge III)”把破解DES的時間縮短到了只需22.5小時 。美國國家安全局NSA每隔年對該算法進行評估 ,1994年,決定1998年12月之后不再使用DE

45、S 。,66,三重DES 解決其密鑰長度問題的方法,即采用三重DES。這種方法用兩個密鑰對明文進行三次加密,假設(shè)兩個密鑰是K1和K2,其算法的步驟:1. 用密鑰K1進行DES加密。2. 用K2對步驟1的結(jié)果進行DES解密。 3. 用步驟2的結(jié)果使用密鑰K1進行DES加密缺點:花費原來三倍時間優(yōu)點:112位密鑰長度,很“強壯”的加密方式,67,,68,4.DES的安全性(1)弱密鑰(Weak Key) 所

46、謂的弱密鑰是指在所有可能的密鑰中,有某幾個特別的密鑰會降低DES的安全性,所以使用者一定要避免使用這幾個弱密鑰。(2)半弱密鑰(Semi-weak Key) 除了上述的弱密鑰之外,還有另外一種被稱為半弱密鑰的初始密鑰。半弱密鑰所產(chǎn)生的子密鑰只有兩種可能,每一種可能的子密鑰剛好各出現(xiàn)8次。,69,(3)DES的互補性(Complement) 在DES的明文m,密文C與密鑰K之間存在著互補的特性。如果以密鑰K對

47、明文m加密得到密文C,那么以密鑰 對明文 加密,亦可到 。 (4)S-盒的設(shè)計原則 S-盒為整個DES加密系統(tǒng)安全性的關(guān)鍵所在,但其設(shè)計規(guī)則與過程一直因為種種不為人知的因素所限,未被公布出來。,,,,70,2.2.2 國際數(shù)據(jù)加密算法(IDEA) 國際數(shù)據(jù)加密算法(International Data Encryption Algorithm,IDEA)是由瑞士聯(lián)邦理工

48、學(xué)院Xuejia Lai和James Massey的在1990年提出的。IDEA是近年來提出的用來替代DES的許多算法中的一種,是一個對稱分組密碼算法。,71,1.設(shè)計原理 IDEA是一種使用128位密鑰以64位分組為單位加密數(shù)據(jù)的分組密碼算法。與此相對照,DES使用56位密鑰以64位的分組為單位進行加密。IDEA的設(shè)計目標(biāo)可以歸結(jié)為與密碼強度和使用的方便性兩方面有關(guān),其中密碼強度包括分組長度、密鑰長度、混淆(Conf

49、usion)和擴散(Diffusion);使用的方便性指方便硬件和軟件實現(xiàn)。通過由超大規(guī)模集成電路(VLSI)進行的硬件實現(xiàn)的設(shè)計目標(biāo)是取得高速度,而軟件實現(xiàn)則有靈活和低價的優(yōu)點。,72,2.IDEA加密方法 IDEA加密方法包括8輪的重復(fù)運算,加上最后的輸出變換運算(Transformation)。64位的明文分組在每一輪中都是被分成4份,每份16位為一單元來處理。每一輪中有6個不同的子密鑰參與作用。,73,圖2.6

50、 IDEA加密流程,74,圖2.7 IDEA單輪運算結(jié)構(gòu),75,圖2.8 IDEA中最后的輸出變換運算,76,3.子密鑰生成過程 從圖2.6中可以看出,IDEA一次完整的加密運算需要52個子密鑰。這52個16位的子密鑰都是由一個128位的加密密鑰產(chǎn)生的。將128位分成8份,每份16位,相當(dāng)于Z1,Z2,…,Z8的子密鑰,Z1的16位對應(yīng)于加密密鑰中最高有效(Most Significant)的16位,而Z8的16位對應(yīng)于加

51、密密鑰中最低有效(Least Significant)的16位。將加密密鑰循環(huán)左移25位以后,用同樣的方法可以得到另外的8個子密鑰Z8,Z9,…,Z16。重復(fù)同樣的步驟,每循環(huán)25位,可以得到另外的新的8個子密鑰。如此,Z1,Z2,…,Z52可以依此陸續(xù)生成。,77,4.IDEA解密方法 使用與加密算法同樣的結(jié)構(gòu),可以將密文分組當(dāng)作輸入而逐步恢復(fù)明文分組解密過程。 與加密過程中惟一不同的是子密鑰的生成方法。,

52、78,2.2.3 高級加密標(biāo)準(AES),1997年1月,NITS召集密碼學(xué)專家研制一種新的加密體制。AES要求:(1)它必須是一個對稱的塊密碼算法;(2)必須公開所有的設(shè)計;(3)必須支持128、192和256位密鑰長度;(4)軟件實現(xiàn)和硬件實現(xiàn)必須都是可能的;(5)算法必須是公有的,或者毫無歧視地授權(quán)給大眾使用。,79,1998年8月,從提交的算法中選出了15種;1999年8月,侯選算法縮小到了5種,最終獲勝的是Rijn

53、dael(榮代爾)算法。它是比利時密碼學(xué)家(Rijmem+Daemem)設(shè)計的,美國政府在2001年12月采納了AES,并使其成為了聯(lián)邦信息處理標(biāo)準197。AES的加密:數(shù)據(jù)塊128位,密鑰128位,輪函數(shù)9輪; 數(shù)據(jù)塊128位,密鑰192位,輪函數(shù)11輪; 數(shù)據(jù)塊128位,密鑰256位,輪函數(shù)13輪; 在128位密鑰空間中有21

54、28≈3X1038個密鑰,即使NSA想辦法創(chuàng)建一臺內(nèi)含10億個并行處理器的機器,且每個處理器每秒鐘可以計算1012個密鑰,也需要1010年才能搜索完整個密鑰空間。,80,1.設(shè)計基本原理(1)該算法的設(shè)計目標(biāo)有以下3點:① 能抗擊所有的已知攻擊;② 在廣大范圍平臺上的快速和代碼簡潔;③ 設(shè)計簡單。,81,(2)在大多數(shù)加密算法中都是采用的Feistel結(jié)構(gòu)的輪變換,而Rijndael算法徹底改變了這種結(jié)構(gòu),每一輪的變換由

55、3層組成,每一層都實現(xiàn)一定的功能。① 線性混合層:確保多輪之上的高度擴散。② 非線性層:并行使用多個S-盒,可優(yōu)化最壞情況非線性特性。③ 密鑰加層:輪密鑰(子密鑰)簡單異或到中間級狀態(tài)上。,82,2.算法詳細描述Rijndael是一種具有可變分組長度和可變密鑰長度的重復(fù)的分組密碼。分組長度和密鑰長度可獨立選擇為128,192和256bit。,83,3.Rijndael加密和解密算法(1)Rijndael加密算法用偽C代碼表

56、示如下:Rijndael ( State, CipherKey ){KeyExpansion ( CipherKey, ExpandedKey ) ;AddRoundKey ( State, ExpandedKey ) ;For (i=1 ; i<Nr ; i++ ) Round ( State, ExpandedKey + Nb*i) ;FinalRound ( State, ExpandedKey + Nb*

57、Nr ) ;},84,(2)Rijndael解密算法解密算法用偽C代碼表示如下:I _ Rijndael ( State, CipherKey ){I _ KeyExpansion ( CipherKey, I _ ExpandedKey ) ;AddRoundKey ( State, I _ ExpandedKey +Nb*Nr ) ;For (i= Nr - 1 ; i> 0 ; i-- ) Round (

58、 State, I _ ExpandedKey + Nb*i) ;FinalRound ( State, I _ ExpandedKey ) ;},85,其中I _ KeyExpansion 的偽C代碼如下:I _ KeyExpansion ( CipherKey, I _ ExpandedKey ){KeyExpansion ( CipherKey, I _ ExpandedKey ) ;For ( i=1 ; i<

59、; Nr ; i++ ) InvMixColumn (I _ ExpandedKey + Nb*i );},86,2.2.4分組密碼的工作模式,已經(jīng)提出的分組密碼工作模式有:電子代碼簿(ECB)模式;密碼分組鏈接(CBC)模式;密碼反饋(CFB)模式;輸出反饋(OFB)模式;級連(CM)模式(又稱多重加密模式);,87,1.電子代碼簿(ECB)模式,為了使用DES加密一長段明文,最簡單的做法是將它分割成連續(xù)的8

60、字節(jié)(64位)數(shù)據(jù)塊,然后用同樣的密鑰逐個加密這些數(shù)據(jù)塊。如有必要,將最后一片明文填充至64位。這項技術(shù)稱為ECB模式。例子:,88,2.密碼分組鏈接(CBC)模式,基本原理如圖 :,,,89,密碼分組鏈接(CBC)模式,密文分組 被反饋到輸入端,明文分組 與 的異或結(jié)果被作為DES加密算法的輸入,從而得到下一個密文分組 ,即 。解密過程為 :

61、 。 密文分組 為無須保密的事先設(shè)定的初值,不同的明文 x(而非明文分組)對應(yīng)不同的 。 各密文分組 不僅與與之對應(yīng)的明文分組 有關(guān),也和此前的所有明文分組(即 )有關(guān)。,,,,,,,,,,,,90,密碼分組鏈接(CBC)模式,優(yōu)點 :能夠隱蔽明文的數(shù)據(jù)模式; 能夠在一定程度上防止分組的重放、插入和刪除

62、等攻擊。 缺點: 易導(dǎo)致錯誤傳播。由于任何一個明文或密文分組出錯都會導(dǎo)致其后的密文分組出錯,但實際上,這種錯誤傳播的影響并不大,至多影響兩個密文分組(例如,加密過程中,xi的傳輸錯誤至多影響到y(tǒng)i和yi+1),91,3.密碼反饋(CFB)模式,基本原理如圖:,92,密碼反饋(CFB)模式,實質(zhì)上是一種自同步流密碼。 適用于必須按比特或者字符對明文進行加密的情況。 采用該模式實現(xiàn)DES算法時,反饋的密文分組的長度

63、與此前的密文分組長度不同,而是通常為事先設(shè)定的n值( ),與明文相加的只是密文分組的最左邊n位,反饋的密文分組同時反饋到密鑰產(chǎn)生器。,,93,,優(yōu)點:能夠隱蔽明文的數(shù)據(jù)模式; 能夠在一定程度上防止分組的重放、插入和刪除等攻擊;適用于用戶數(shù)據(jù)格式的需要。 缺點: 對錯誤傳輸敏感。該模式即使密文在傳輸中只有一位偶然發(fā)生翻轉(zhuǎn),則在解密過程中,壞字節(jié)位于寄存器中所涉及的8個字節(jié)將遭到破壞,

64、一旦字節(jié)移出了寄存器以后,后面產(chǎn)生的明文仍然是正確的; 降低了數(shù)據(jù)加密的速率。,94,4.輸出反饋(OFB)模式,基本原理如圖 :,95,輸出反饋(OFB)模式,優(yōu)點:能夠克服錯誤傳播。 缺點:很難發(fā)現(xiàn)密文被篡改; 不具備自同步能力。,96,5.級連(CM)模式,基本原理如圖 :,97,,該模式的提出主要是為了增加密鑰的長度,并采用不同的密鑰和分組密碼算法對同一明文連續(xù)進行多次加密。 但如果

65、所選用的加密算法成群,則由于群的封閉性特點(即任意次級連加密等于一次加密),級連模式并不能增加破譯的難度。 已證明采用級連模式能提高DES的安全性(如:三重DES)。,98,2.3 非對稱密碼體制,,背景:,對稱密鑰編碼所面臨的難題密鑰分配。密鑰必須在安全信道上傳輸;通信密鑰太多,管理和分發(fā)困難。數(shù)字簽名和認證。密碼體制上的突破Diffie & Hellman, “New Direction

66、in Cryptography”, 1976年首次公開提出了“公開密鑰密碼編碼學(xué)”的概念。這是一個與對稱密碼編碼截然不同的方案。提出公開密鑰的理論時,其實用性并沒有得到證明:當(dāng)時還未發(fā)現(xiàn)滿足公開密鑰編碼理論的算法;直到 1977 年,RSA 算法的提出。,99,基本特征,兩個密鑰:使用一個密鑰進行加密,用另一個相關(guān)的密鑰進行解密用加密密鑰生成的密文只有使用其對應(yīng)的解密密鑰才能解密。兩個密鑰的關(guān)系滿足:兩個密鑰是不相同;且

67、在僅知道密碼算法和加密密鑰的情況下,要推斷解密密鑰在計算上是不可行的。,100,優(yōu)點,密鑰管理加密密鑰是公開的; 解密密鑰需要妥善保存; 在當(dāng)今具有用戶量大、消息發(fā)送方與接收方具有明顯的信息不對稱特點的應(yīng)用環(huán)境中表現(xiàn)出了令人樂觀的前景。 數(shù)字簽名和認證 只有解密密鑰能解密,只有正確的接收者才擁有解密密鑰。,101,2.3.1 非對稱密碼體制的原理 公開密鑰算法有一個重要特性:僅僅知道密碼算法和加密

68、密鑰而要確定解密密鑰,在計算上是不可能的。另外,某些算法,如RSA,還具有以下特性,兩個相關(guān)密鑰中任何一個都可以用作加密而讓另一個用作解密。,102,如圖2.9所示,公開密鑰加密過程重要步驟如下。(1)網(wǎng)絡(luò)中的每個端系統(tǒng)都產(chǎn)生一對用于它將接收的報文進行加密和解密的密鑰。(2)每個系統(tǒng)都通過把自己的加密密鑰放進一個登記本或者文件來公布它,這就是公開密鑰。另一個則是私有的。(3)如果A想給B發(fā)送一個報文,A就用B的公開密鑰加密這個報

69、文。(4)B收到這個報文后就用他的保密密鑰解密報文。其他所有收到這個報文的人都無法解密,因為只有B才有B的私有密鑰。,103,圖2.9 公開密鑰的加密過程,104,公鑰密碼算法,加密與解密由不同的密鑰完成加密: X?Y: Y = EKU(X)解密: Y?X: X = DKR(Y) = DKR(EKU(X))兩個密鑰中任何一個都可以用作加密而另一個用作解密(不是必須的)X = DKR(EKU(X)) = EKU(DKR

溫馨提示

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

評論

0/150

提交評論