Presentation on theme: "3.1 信息加密技術(shù)概述 3.2 密碼技術(shù) 3.3 密鑰管理 3.4 網(wǎng)絡(luò)加密技術(shù) 習(xí)題與思考題 參考文獻(xiàn) 實(shí)訓(xùn)指南"— Presentation transcript:
1
3.1 信息加密技術(shù)概述 3.2 密碼技術(shù) 3.3 密鑰管理 3.4 網(wǎng)絡(luò)加密技術(shù) 習(xí)題與思考題 參考文獻(xiàn) 實(shí)訓(xùn)指南
2
教學(xué)目的和要求▼ 通過(guò)本章的學(xué)習(xí),使學(xué)生掌握基本的信息加密技術(shù),并會(huì)實(shí)際應(yīng)用。要求了解信息加密技術(shù)的概念;掌握密碼學(xué)一些簡(jiǎn)單技術(shù);了解DES、RSA密碼體制;了解密鑰的管理;了解基本的網(wǎng)絡(luò)加密技術(shù)。
3
關(guān)鍵詞匯▼ 密碼學(xué)(Cryptology) 明文(plaintext,通常記作P;也記作M,message)
4
前言 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,大大改變了人們的生活面貌,促進(jìn)了社會(huì)的發(fā)展??墒腔ヂ?lián)網(wǎng)是一個(gè)面向大眾的開(kāi)放系統(tǒng),對(duì)于信息的保密和系統(tǒng)的安全性考慮得并不完備,由此引起的網(wǎng)絡(luò)安全問(wèn)題日益嚴(yán)重。如何保護(hù)計(jì)算機(jī)信息的的內(nèi)容,也即信息內(nèi)容的保密問(wèn)題顯得越來(lái)越重要。 加密技術(shù)是網(wǎng)絡(luò)信息安全主動(dòng)的、開(kāi)放型的防范手段,對(duì)于敏感數(shù)據(jù)應(yīng)采用加密處理,并且在數(shù)據(jù)傳輸時(shí)采用加密傳輸。本章就將著重介紹信息加密技術(shù)的一般方法,內(nèi)容包括:密碼技術(shù)基礎(chǔ)知識(shí);密鑰管理在數(shù)據(jù)保密中的重要性;網(wǎng)絡(luò)加密的方式等。
5
3.1 信息加密技術(shù)概述 信息加密技術(shù)是利用數(shù)學(xué)或物理手段,對(duì)電子信息在傳輸過(guò)程中和存儲(chǔ)體內(nèi)進(jìn)行保護(hù),以防止泄漏的技術(shù)。保密通信、計(jì)算機(jī)密鑰、防復(fù)制軟盤(pán)等都屬于信息加密技術(shù)。通信過(guò)程中的加密主要是采用密碼,在數(shù)字通信中可利用計(jì)算機(jī)加密法,改變負(fù)載信息的數(shù)碼結(jié)構(gòu)。計(jì)算機(jī)信息保護(hù)則以軟件加密為主。目前世界上最流行的幾種加密體制和加密算法有:AES算法和RSA算法等。為防止破密,加密軟件還常采用硬件加密和加密軟盤(pán)。一些軟件商品常帶有一種小的硬卡,這就是硬件加密措施。在軟盤(pán)上用激光穿孔,使軟件的存儲(chǔ)區(qū)有不為人所知的局部存壞,就可以防止非法復(fù)制。這樣的加密軟盤(pán)可以為不掌握加密技術(shù)的人員使用,以保護(hù)軟件。由于計(jì)算機(jī)軟件的非法復(fù)制,解密及盜版問(wèn)題日益嚴(yán)重,甚至引發(fā)國(guó)際爭(zhēng)端,因此對(duì)信息加密技術(shù)和加密手段的研究與開(kāi)發(fā),受到各國(guó)計(jì)算機(jī)界的重視,發(fā)展日新月異。
6
信息加密技術(shù)是應(yīng)用最早、也是一般用戶(hù)接觸最多的安全技術(shù)領(lǐng)域,從最初的保密通信發(fā)展到目前的網(wǎng)絡(luò)信息加密,一直伴隨著信息技術(shù)的發(fā)展而發(fā)展并始終受到重視。在基于信息論和近代數(shù)學(xué)的現(xiàn)代密碼學(xué)成立之后,加密技術(shù)已經(jīng)不再依賴(lài)于對(duì)加密算法本身的保密,而是通過(guò)在統(tǒng)計(jì)學(xué)意義上提高破解的成本來(lái)提供高的安全性。近年來(lái)通過(guò)與其他領(lǐng)域的交叉,產(chǎn)生了量子密碼、基于DNA的密碼和數(shù)字隱寫(xiě)等分支領(lǐng)域,其安全性能和潛在的應(yīng)用領(lǐng)域均有很大的突破。相信加密技術(shù)仍將在信息安全領(lǐng)域內(nèi)扮演十分重要的角色。 現(xiàn)代的電腦加密技術(shù)就是適應(yīng)了網(wǎng)絡(luò)安全的需要而應(yīng)運(yùn)產(chǎn)生的,它為我們進(jìn)行一般的電子商務(wù)活動(dòng)提供了安全保障,如在網(wǎng)絡(luò)中進(jìn)行文件傳輸、電子郵件往來(lái)和進(jìn)行合同文本的簽署等。其實(shí)加密技術(shù)也不是什么新生事物,只不過(guò)應(yīng)用在當(dāng)今電子商務(wù)、電腦網(wǎng)絡(luò)中還是近幾年的歷史。下面我們就詳細(xì)介紹一下加密技術(shù)的方方面面,希望能為那些對(duì)加密技術(shù)還一知半解的朋友提供一個(gè)詳細(xì)了解的機(jī)會(huì)!
7
3.2 密碼技術(shù) 一提到密碼學(xué),可能絕大多數(shù)的讀者腦海里會(huì)浮現(xiàn)諸如007、布律蒂斯、川島芳子等歷史上著名的間諜人物,會(huì)想到暗殺、突襲等軍事活動(dòng)。是的,對(duì)于我們而言,密碼始終處于一種未知的黑暗之中,常常與軍事、外交、情報(bào)等工作聯(lián)系在一起,讓人在感到神秘之余,又有幾分畏懼。 但是,在如今這個(gè)電子化、數(shù)字化幾乎已經(jīng)波及社會(huì)生活的所有方面的時(shí)代,密碼已經(jīng)成為公民正常生活、學(xué)習(xí)不可缺少的部分。銀行賬號(hào)、 密碼、網(wǎng)絡(luò)游戲賬號(hào)、電子購(gòu)物等,哪樣都離不開(kāi)密碼。此外,許多傳統(tǒng)上基于紙面的,常常需要簽名蓋章的重要憑證,諸如紙幣、存單、支票、股票、合同、租約、法律文書(shū)、身份證件、學(xué)歷證書(shū)等等,也已陸續(xù)轉(zhuǎn)化或增加為數(shù)字電子媒體的形式。 那么,密碼學(xué)是怎樣逐漸揭去神秘的面紗,走進(jìn)公眾的日常生活當(dāng)中的呢?主要的推動(dòng)因素是社會(huì)公眾對(duì)于個(gè)人信息秘密性與真實(shí)性的需求。密碼學(xué)提供的只是技術(shù)保障作用。它不僅具有信息加密功能,而且具有數(shù)字簽名、身份驗(yàn)證、秘密分存、系統(tǒng)安全等功能,可以充分保證信息的機(jī)密性、完整性和準(zhǔn)確性,防止信息被篡改、偽造或假冒。
8
密碼學(xué)基礎(chǔ)知識(shí) 密碼學(xué)基本概念 密碼學(xué)(Cryptology)是結(jié)合數(shù)學(xué)、計(jì)算機(jī)科學(xué)、電子與通信等諸多學(xué)科于一的交叉學(xué)科,是研究信息系統(tǒng)安全保密的一門(mén)科學(xué),包括密碼編碼學(xué)(Cryptography)和密碼分析學(xué)(Cryptanalytics)兩個(gè)分支。密碼編碼學(xué)主要研究對(duì)信息進(jìn)行編碼,實(shí)現(xiàn)對(duì)信息的隱蔽;而密碼分析學(xué)則相反,主要研究加密消息的破譯或消息的偽造。這兩者天生就相互對(duì)立,但是正是這種對(duì)立促使密碼學(xué)不斷的發(fā)展。
9
明文 密文 密鑰 加密算法 解密算法 圖3.1 加密、解密全過(guò)程 一個(gè)完整的密碼系統(tǒng)至少由明文、密文、密碼方案和密鑰四個(gè)部分組成。
10
密碼體制的分類(lèi) 密碼體制的分類(lèi)方法有很多,最常見(jiàn)的是分成以下兩種: 對(duì)稱(chēng)密碼體制(symmetric system):就是加密密鑰和解密密鑰相同,或者雖然不相同,但由其中的任意一個(gè)可以很容易的推出另一個(gè)。又稱(chēng)傳統(tǒng)密碼體制、秘密密鑰體制或單鑰密鑰體制。如本書(shū)后面將介紹的DES就是采用對(duì)稱(chēng)密碼體制的典型例子。 非對(duì)稱(chēng)密碼體制(asymmetric system):加密密鑰和解密密鑰不相同,并且從一個(gè)很難推出另一個(gè)。又稱(chēng)公開(kāi)密鑰體制。公開(kāi)密鑰體制用一個(gè)密鑰進(jìn)行加密,而用另一個(gè)進(jìn)行解密。其中的加密密鑰可以公開(kāi),又稱(chēng)公開(kāi)密鑰(public key),簡(jiǎn)稱(chēng)公鑰;解密密鑰必須保密,又稱(chēng)私人密鑰(private key),簡(jiǎn)稱(chēng)私鑰。如本書(shū)后面將介紹的RSA就是采用非對(duì)稱(chēng)密碼體制的典型。
11
3.2.2 傳統(tǒng)密碼技術(shù) 隱寫(xiě)術(shù)(steganography)
12
隱寫(xiě)術(shù)分為兩種,技術(shù)隱寫(xiě)術(shù)和語(yǔ)義隱寫(xiě)術(shù)。
13
替代(substitution) 替代密碼就是將明文字母表中的每個(gè)字符替換為密文字母表中的字符。這里對(duì)應(yīng)密文字母可能是一個(gè),也可能是多個(gè)。接收者對(duì)密文進(jìn)行逆向替換即可得到明文。代替密碼有四種表現(xiàn)形式: (1)單表代替 (2)多名碼代替 (3)多音碼代替 (4)多表代替
14
(1)單表代替 就是明文的一個(gè)字符用相應(yīng)的一個(gè)密文字符代替,也叫循環(huán)移位密碼。
15
由愷撒密碼我們可以推導(dǎo)出單表代替密碼的映射關(guān)系可以表示為如下函數(shù):
16
如英文26個(gè)字母的映射表如下: 例如在愷撒密碼中,k=3 對(duì)于明文P=caesar,有 F(c)=(2+3) mod 26=5=F F(a)=(0+3) mod 26=3=D F(e)=(4+3) mod 26=7=H F(s)=(18+3) mod 26=21=V F(a)=(0+3) mod 26=3=D F(r)=(17+3) mod 26=20=U 因此密文C=FDHVDU
17
除了愷撒密碼,在其他的單表替代法中,有的字母表被打亂。比如,在字母表中首先排列出密鑰中出現(xiàn)的字母,然后在密鑰后面填上剩余的字母。如密鑰是cipher,那么新的字母表映射如下:
18
在單表代替下字母的頻度、重復(fù)字母模式、字母結(jié)合方式等統(tǒng)計(jì)特性除了字母名稱(chēng)改變以外,都未發(fā)生變化,依靠這些不變的統(tǒng)計(jì)特性就能破譯。
19
(2)多名碼代替 就是將明文字母表中的字符映射為密文字母表中的多個(gè)字符。多名碼簡(jiǎn)單代替早在1401年就由DuchyMantua公司使用。在英文中,元音字母出現(xiàn)頻率最高,降低對(duì)應(yīng)密文字母出現(xiàn)頻率的一種方法就是使用多名碼。
20
如下面的一個(gè)映射: 若明文P=bee 則密文C可以是ILL或ILM或ILN或IMM或IMN或INN
21
(3)多音碼代替 就是將多個(gè)明文字符代替為一個(gè)密文字符。最古老的這種多字母加密始見(jiàn)于1563年由波他的《密寫(xiě)評(píng)價(jià)》(De furtiois literarum notis)一書(shū)。
22
如下面的一個(gè)映射: 若明文P=behg 則密文C=JMNN
23
(4)多表代替 即由多個(gè)簡(jiǎn)單代替組成,也就是使用了兩個(gè)或兩個(gè)以上的代替表。比如使用有5個(gè)簡(jiǎn)單代替表的代替密碼,明文的第一個(gè)字母用第一個(gè)代替表,第二個(gè)字母用第二個(gè)表,第三個(gè)字母用第三個(gè)表,以此類(lèi)推,循環(huán)使用這五張代替表。
24
著名的維吉尼亞(vigenere)密碼就是多表代替密碼,它以字母表移位為基礎(chǔ)把26個(gè)英文字母進(jìn)行循環(huán)移位,排列在一起,形成26×26的方陣,如表3.1所示。
25
實(shí)際使用時(shí),選擇一個(gè)詞組作為密鑰。加密過(guò)程就是以明文字母選擇列,密鑰字母選擇行,兩者的交點(diǎn)就是加密生成的密文字母。 如:選取K=sub,P= vigenere
26
易位(transposition) 易位密碼,也稱(chēng)換位密碼、排列組合密碼,它最大的特點(diǎn)是不需對(duì)明文字母作任何變換,只需對(duì)明文字母的順序按密鑰的規(guī)律相應(yīng)的排列組合后輸出,然后形成密文。明文出現(xiàn)的字母也在密文中出現(xiàn),只是位置不同,并不隱藏它們。 此種加密方法保密的程度較高,但其最大的缺點(diǎn)是密文呈現(xiàn)字母自然出現(xiàn)頻率,破譯者只要稍加統(tǒng)計(jì)即可識(shí)別屬此類(lèi)加密方法,然后采取先假定密鈅長(zhǎng)度的方法,對(duì)密文進(jìn)行排列組合,借助計(jì)算機(jī)的高速運(yùn)算能力及常用字母的組合規(guī)律,也可以進(jìn)行不同程度破譯。
27
(1)列易位算法 首先選取一個(gè)不含重復(fù)字母的單詞為密鑰,寫(xiě)出密鑰在字母表中的排列順序,明文從第一列開(kāi)始按列生成密文。
28
其解密過(guò)程是將密文C=“合換易碼排密位位也列碼或密稱(chēng)組”按密鑰長(zhǎng)度為列寫(xiě)出:
29
(2)矩陣換位法 把明文中的字母按給定的順序排列在一矩陣中,然后用另一種順序選出矩陣的字母來(lái)產(chǎn)生密文。
30
給定一個(gè)置換 現(xiàn)在根據(jù)給定的置換,按第3列、第1列、第4列、第2列的次序排列如下: 得到密文C=“密易碼位稱(chēng),換也碼位。密”
31
在這個(gè)加密方案中,密鑰就是矩陣的行數(shù)m和列數(shù)n,即m×n=3×4,以及給定的置換矩陣
32
其解密過(guò)程是將密文C=“密易碼位稱(chēng),換也碼位。密”根據(jù)3×4矩陣,按行、按列的順序排列如下:
33
DES數(shù)據(jù)加密標(biāo)準(zhǔn) 數(shù)據(jù)加密標(biāo)準(zhǔn)DES(Date Encryption Standard)是迄今為止世界上最為廣泛使用和流行的一種分組密碼算法。它由IBM公司研制,于1977年被美國(guó)標(biāo)準(zhǔn)局NBS(National Bureau Of Standards,現(xiàn)在的美國(guó)標(biāo)準(zhǔn)技術(shù)協(xié)會(huì),NIST)作為非機(jī)密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)。DES是一種世界公認(rèn)的較好的加密算法。自它問(wèn)世20多年來(lái),成為密碼界研究的重點(diǎn),經(jīng)受住了許多科學(xué)家的研究和破譯,在民用密碼領(lǐng)域得到了廣泛的應(yīng)用,為全球貿(mào)易、金融等非官方部門(mén)提供了可靠的通信安全保障。 進(jìn)入20世紀(jì)90年代以來(lái),由于DES密鑰長(zhǎng)度不夠,不斷受到諸如差分分析、線性逼近分析等各種攻擊威脅,使其安全性受到動(dòng)搖。1994年最近一次對(duì)DES的評(píng)估認(rèn)為它已沒(méi)有安全感。于是,美國(guó)決定從1998年12月以后將不再使用DES,而使用稱(chēng)之為AES(Advanced Encryption Standard)的新加密標(biāo)準(zhǔn)。盡管如此,DES對(duì)于推動(dòng)密碼理論的發(fā)展和應(yīng)用畢竟起了重大作用,對(duì)于掌握分組密碼的基本理論、設(shè)計(jì)思想和實(shí)際應(yīng)用仍然有著重要的參考價(jià)值。
34
Ⅰ 分組密碼概述 分組密碼(Block cipher),也稱(chēng)塊密碼,它是將明文消息經(jīng)編碼表示后的數(shù)字(通常是0和1)序列:m0,m1,…,mi,…,劃分為若干固定長(zhǎng)度為l的組(或塊)m=(m0,m1,…,ml-1),各組分別在密鑰k=(k0,k1,…,kt-1)(密鑰長(zhǎng)為t)的控制下轉(zhuǎn)換成等長(zhǎng)度的密文分別輸出c=(c0,c1,…,cn-1)(長(zhǎng)為n)。其本質(zhì)仍是一個(gè)從明文空間M到密文分組C的映射,該映射由密鑰確定。分組密碼簡(jiǎn)化圖示如圖3.2: 其中,明文長(zhǎng)度為l,密文長(zhǎng)度為n。通常的分組密碼算法取l=n,表明加密和解密的結(jié)構(gòu)一樣,便于簡(jiǎn)單的實(shí)現(xiàn)。若l>n,則稱(chēng)為帶數(shù)據(jù)壓縮的分組密碼,易增加密文解密的難度;若l<n,則稱(chēng)為帶數(shù)據(jù)擴(kuò)展的分組密碼,必然要增加密文存儲(chǔ)和傳輸?shù)拇鷥r(jià)。
35
一般情況下,對(duì)分組密碼算法有如下的要求:
36
Ⅱ DES算法詳述 DES是一種分組密碼,它主要采用替換和移位的方法加密。它用56位密鑰對(duì)64位二進(jìn)制數(shù)據(jù)塊進(jìn)行加密,每次加密可對(duì)64位的輸入數(shù)據(jù)進(jìn)行16輪編碼,經(jīng)一系列替換和移位后,輸入的64位原始數(shù)據(jù)轉(zhuǎn)換成完全不同的64位輸出數(shù)據(jù)。DES是一個(gè)對(duì)稱(chēng)密碼體制,加密與解密使用同一密鑰與同一算法,它所有的保密性均依賴(lài)于密鑰。 DES算法大致可以分成四個(gè)部分: 初始置換 迭代過(guò)程 逆置換 子密鑰生成
37
整個(gè)算法的主流程圖如圖3.3 64位數(shù)據(jù)區(qū)組輸入L0,R0 初始換位 (IP) 32位 L0 R0 K1 f L1=R0
38
1、初始置換IP 把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L(zhǎng)0、R0兩部分,每部分各長(zhǎng)32位,按表3.2的置換規(guī)則進(jìn)行換位。
39
2、迭代過(guò)程 每個(gè)迭代過(guò)程實(shí)際上包括四個(gè)獨(dú)立的操作。首先是右半部分由32位擴(kuò)展為48位。然后與密鑰的某一形式相結(jié)合,其結(jié)果被替換為另一結(jié)果,同時(shí)其位數(shù)又壓縮到了32位。這32位數(shù)據(jù)經(jīng)過(guò)置換再與左半部分相加,結(jié)果產(chǎn)生新的右半部分。 圖3.4為DES一次迭代的運(yùn)算過(guò)程(圖中的虛線框表示f函數(shù),圖中右面一半為子密鑰的產(chǎn)生過(guò)程)。
40
DES算法的安全性關(guān)鍵在于非線性函數(shù)f的性質(zhì)。DES算法中,函數(shù)f以長(zhǎng)度為32位的比特串作為輸入,產(chǎn)生的中間結(jié)果為48位,并在最終產(chǎn)生長(zhǎng)度為32位的比特串作為輸出。把圖3-4中所示的函數(shù)f單獨(dú)用圖3.5表示出來(lái)。
41
(1)擴(kuò)展置換 從圖3-5中,可以看到函數(shù)f的執(zhí)行過(guò)程如下:
42
把輸出位和輸入位對(duì)應(yīng)關(guān)系列成一個(gè)表格(表3
43
(2)與子密鑰異或 (3)S盒代替 函數(shù)f將擴(kuò)展置換得到48位輸出與子密鑰Ki進(jìn)行異或(按位模2加)。
44
具體替代方式我們可以描述如下: 將S盒的6位輸入定義為 a1 a2 a3 a4 a5 a6 。將 a1 a6 組成一個(gè)2位二進(jìn)制數(shù),對(duì)應(yīng)著表中的行號(hào);將 a2 a3 a4 a5 組成一個(gè)4位二進(jìn)制數(shù),對(duì)應(yīng)著表中的列號(hào);交叉點(diǎn)的數(shù)據(jù)就是該S盒的輸出。 例如:第5個(gè)S盒的輸出為110011,第1位和第6位的組合為11(轉(zhuǎn)換為十進(jìn)制值等于3),第2位至第5位的組合為1001(轉(zhuǎn)換為十進(jìn)制值等于9)。那么,它對(duì)應(yīng)的就是第5個(gè)S盒的第3行、第9列(行、列的記數(shù)均從0開(kāi)始)。查表可知對(duì)應(yīng)的數(shù)值為15(轉(zhuǎn)換為二進(jìn)制值等于1111),于是1111代替了110011,成為S盒的4位輸出。
45
表3.4 給出了全部的8個(gè)S盒。 S盒是函數(shù)f的核心所在,同時(shí)也是DES算法的關(guān)鍵步驟。除S盒外,DES的其它運(yùn)算都是線性的,易于分析,而S盒是非線性的,它決定了DES算法的安全性。 48位的比特串(分為8個(gè)6位分組)在經(jīng)過(guò)8個(gè)S盒進(jìn)行代替運(yùn)算后,得到8個(gè)4位的分組,它們重新合在一起形成一個(gè)32位的比特串。這個(gè)比特串將進(jìn)行下一步運(yùn)算:P盒置換。
46
(4)P盒置換 P盒置換是將S盒輸出的32位的比特串根據(jù)固定的置換P(也成為P盒)置換到相應(yīng)的位置,它也稱(chēng)為直接置換(straight permutation)。 表3.5給出了置換P。 表3.5 的含義可以描述如下:在32位的比特串中,第16位置換到第1位,第7位置換到第2位,第4位置換到第31位,…,第25位置換到32位。 P盒置換運(yùn)算后得到的輸出即為函數(shù)(Ri-1,Ki)的最終結(jié)果。
47
3、逆置換IP-1 經(jīng)過(guò)16次迭代運(yùn)算后。得到L16、R16,將此作為輸入,進(jìn)行逆置換,即得到密文輸出。逆置換正好是初始置的逆運(yùn)算,例如,第1位經(jīng)過(guò)初始置換后,處于第40位,而通過(guò)逆置換,又將第40位換回到第1位,其逆置換規(guī)則如表3.6所示:
48
4、密鑰的產(chǎn)生 在DES算法中,每一輪迭代運(yùn)算都使用一個(gè)子密鑰,子密鑰產(chǎn)生的流程圖如圖3.7所示。K是長(zhǎng)度為64位的比特串,其中56位是密鑰,8位是奇偶校驗(yàn)碼,分布在8、16、24、32、40、48、56、64比特位置上,目的是用來(lái)檢錯(cuò),可在8位組中檢查單個(gè)錯(cuò)誤。實(shí)際上,在密鑰編排的計(jì)算中只用56位,不包括這8位。
49
子密鑰的產(chǎn)生過(guò)程分為: 置換選擇1(pc-1) 循環(huán)左移 置換選擇2(pc-2) 分別產(chǎn)生16個(gè)子密鑰
50
(1)置換選擇1(pc-1) 對(duì)56位密鑰輸入按表3.7進(jìn)行重新編排。
51
(2)循環(huán)左移計(jì)算 對(duì)16輪的計(jì)算模型描述如下:
52
(3)選擇置換2(pc-2) 其作用是刪除每次移位后C中第9、18、22、25位和D中第7、9、15、26比特位,其余比特按表3.9置換后送出48位比特,作為第i次迭代的子密鑰ki使用。 以上介紹了DES算法的加密過(guò)程。DES算法的解密過(guò)程是一樣的,區(qū)別僅僅在于第一次迭代時(shí)用子密鑰K15,第二次K14、......,最后一次用K0,算法本身并沒(méi)有任何變化,不再詳述。
53
Ⅲ DES安全性分析 DES算法具有極高安全性,到目前為止,除了用窮舉搜索法對(duì)DES算法進(jìn)行攻擊外,還沒(méi)有發(fā)現(xiàn)更有效的辦法。DES算法僅使用最大為64位的標(biāo)準(zhǔn)算術(shù)和邏輯運(yùn)算,優(yōu)點(diǎn)是運(yùn)算速度快,密鑰生產(chǎn)容易,適合于在當(dāng)前大多數(shù)計(jì)算機(jī)上用軟件方法實(shí)現(xiàn),同時(shí)也適合于在專(zhuān)用芯片上實(shí)現(xiàn)。比如現(xiàn)在熱賣(mài)的愛(ài)國(guó)者移動(dòng)存儲(chǔ)加密王,就是采用DES實(shí)時(shí)運(yùn)算法則的硬件加密芯片。 但是DES的密鑰太短(56位),影響了它的保密強(qiáng)度。DES的前身,IBM的Lucifer密碼體制具有128比特的密鑰長(zhǎng)度。DES的最初提案也有64比特的密鑰長(zhǎng)度,但后來(lái)被減少到56比特。IBM聲稱(chēng),這個(gè)減少的原因是必須在密鑰中包含8位奇偶校驗(yàn)位,這就意味著64比特的存儲(chǔ)只能包含一個(gè)56比特的密鑰。 對(duì)于56比特的密鑰長(zhǎng)度來(lái)說(shuō),一共有256種可能的密鑰,也就是大約7.2×1016種密鑰。從表面上看,窮舉式攻擊似乎不現(xiàn)實(shí)。如果假定平均有一半的密鑰空間需要搜索,則一臺(tái)每微秒完成一次DES加密的機(jī)器將要花費(fèi)1000年的時(shí)間才能破譯這個(gè)密碼。 然而,每微秒一次加密的假設(shè)過(guò)分保守。早在1977年,Diffie和Hellman就設(shè)想有一種技術(shù)可以制造出具有100萬(wàn)個(gè)加密設(shè)備的并行機(jī),其中的每一個(gè)設(shè)備都可以在一微秒之內(nèi)完成一次加密,這樣平均搜索時(shí)間就減少到10小時(shí)。
54
一個(gè)對(duì)DES的弱點(diǎn)更引人注目的演示是RSA實(shí)驗(yàn)室所發(fā)起的一個(gè)破解密鑰的比賽。比賽提供1萬(wàn)美元的獎(jiǎng)金,要求在給定了密文和部分明文的情況下找到DES密鑰,其中明文開(kāi)始的三個(gè)分組包含了24個(gè)字符的短語(yǔ)“the unknown messagr is:”。RSA在1997年1月29日發(fā)布競(jìng)賽。一個(gè)獨(dú)立顧問(wèn)Rocke Verser響應(yīng)了這個(gè)比賽,他編了一個(gè)窮舉式程序并通過(guò)internet做了發(fā)布。這個(gè)項(xiàng)目受到很多密碼愛(ài)好者的響應(yīng),最后發(fā)展到7萬(wàn)個(gè)系統(tǒng)。每個(gè)計(jì)算機(jī)自愿者加入后,項(xiàng)目組就為這臺(tái)計(jì)算機(jī)分配一部分DES密鑰空間供它檢驗(yàn)。項(xiàng)目從1977年2月18日開(kāi)始,96天后找到了正確的密鑰,這時(shí)大約已經(jīng)搜索了四分之一的可能密鑰。這個(gè)比賽顯示了分布式個(gè)人計(jì)算機(jī)在對(duì)付艱難的密碼分析問(wèn)題時(shí)的威力。也證實(shí)了DES的強(qiáng)度是有限的。 此外,由于DES算法完全公開(kāi),其安全性完全依賴(lài)于對(duì)密鑰的保護(hù),必須有可靠的信道來(lái)分發(fā)密鑰。如采用信使遞送密鑰等。因此,它不適合在網(wǎng)絡(luò)環(huán)境下單獨(dú)使用。 雖然研制替代DES的新的密碼算法被提上議程,但確定一種新的加密法是否真的安全是極為困難的,何況DES的密碼學(xué)缺點(diǎn)只是密鑰長(zhǎng)度相對(duì)比較短,所以人們并沒(méi)有放棄使用DES,而是想出了一個(gè)解決其長(zhǎng)度方法,即采用三重DES。這種方法用兩個(gè)密鑰對(duì)明文進(jìn)行三次加密。假設(shè)兩個(gè)密鑰是K1和K2,第一步用密鑰K1進(jìn)行DES加密,第二步用K2對(duì)步驟1結(jié)果進(jìn)行DES加密,第三步用步驟2的結(jié)果使用密鑰K1進(jìn)行DES加密。
55
RSA密碼體制 上一節(jié)討論的DES密碼體制是對(duì)稱(chēng)密鑰密碼體制。使用對(duì)稱(chēng)密鑰密碼體制進(jìn)行秘密通信時(shí),任意不同兩個(gè)用戶(hù)之間都應(yīng)該使用互不相同的密鑰。這樣,如果一個(gè)網(wǎng)絡(luò)中有n個(gè)用戶(hù)需要彼此通信,那么將共需要n(n-1)/2個(gè)密鑰(其中,每人需要保管n-1個(gè)密鑰),假設(shè)n=1000,則,如此巨大的密鑰量,在密鑰管理、分配、更換等都將是十分繁重的工作。另外,在網(wǎng)絡(luò)大力普及的今天,互不相識(shí)的兩個(gè)人要進(jìn)行通信,如電子商務(wù)活動(dòng)需要對(duì)身份驗(yàn)證,電子簽名,不僅要解決保密問(wèn)題,還必須解決認(rèn)證問(wèn)題,對(duì)于這些新要求,對(duì)稱(chēng)密碼算法是比較難實(shí)現(xiàn)的。 1976年,Diffe和Hellman在一篇名叫“New direction in cryptography”(密碼學(xué)的新方向)的論文中提出了雙鑰密碼的新型密碼體制,把加密密鑰和解密密鑰分割開(kāi)來(lái),而無(wú)法由一個(gè)推出另一個(gè),使得不僅可以公開(kāi)密碼算法,而且加密密鑰也可以公開(kāi),開(kāi)創(chuàng)了公開(kāi)密鑰密碼體制,為密碼學(xué)研究提出了新的方向。
56
Ⅰ 公鑰密碼體制 公開(kāi)密鑰密碼編碼學(xué)的發(fā)展是整個(gè)密碼編碼學(xué)歷史上最大的而且也是唯一真正的革命。從最初一直到現(xiàn)代,幾乎所有密碼編碼系統(tǒng)都建立在基本的替代和置換工具的基礎(chǔ)上。即使是最有名的DES,雖然代表了重要的進(jìn)展,也仍然依賴(lài)于替代和置換這樣的基本工具。 公開(kāi)密鑰密碼編碼學(xué)則與以前的所有方法截然不同。一方面公開(kāi)密鑰算法基于數(shù)學(xué)函數(shù)而不是替代和置換;更重要的是,公開(kāi)密鑰密碼編碼學(xué)是非對(duì)稱(chēng)的,它用到兩個(gè)不同的密鑰,而對(duì)稱(chēng)的常規(guī)加密則只使用一個(gè)密鑰。使用兩個(gè)密鑰對(duì)于保密通信、密鑰分配和鑒別等領(lǐng)域都有著深遠(yuǎn)的影響。例如。對(duì)于網(wǎng)上的大量用戶(hù),可以將加密密鑰用電話(huà)簿的方式印出。如果某用戶(hù)想與另一用戶(hù)進(jìn)行保密通信,只需從公鑰簿上查出對(duì)方的加密密鑰,用它對(duì)所傳送的信息加密發(fā)出即可。對(duì)方收到信息后,用僅為自己所知的解密密鑰將信息脫密,了解報(bào)文的內(nèi)容。由此可看出,RSA算法解決了大量網(wǎng)絡(luò)用戶(hù)密鑰管理的難題。
57
圖3.8給出了一般公鑰密碼體制原理示意圖。 其中,E(eB,m)表示使用用戶(hù)B的公開(kāi)密鑰eB對(duì)明文m進(jìn)行加密,D(dB,c)表示用戶(hù)B使用自己保存的秘密密鑰dB對(duì)密文c進(jìn)行解密。 公開(kāi)密鑰密碼的加密變換E(eB,m)與解密變換D(dB,c)應(yīng)滿(mǎn)足下列要求: (1)D(dB,c)是E(eB,m)的逆變換,即對(duì)于任意明文m,均有D(dB,c)=D(dB,E(eB,m))=m; (2)在已知加密密鑰eB時(shí),E(eB,m)的計(jì)算不難;在已知解密密鑰dB時(shí),D(dB,c)的計(jì)算也不難; (3)如果不知道dB,那么即使知道eB、具體的加密與解密算法過(guò)程以及密文c,確定明文m的計(jì)算也是不可行的。 我們可以這樣來(lái)想,例如你有個(gè)信箱(物理信箱),開(kāi)著一個(gè)縫隙(公鑰),大家都能往里塞東西,但是一旦塞進(jìn)去,那可不是大家都能取到的,只有擁有信箱鑰匙(私鑰)才能得到。公鑰就這樣,不要擔(dān)心它多難理解。
58
Ⅱ RAS算法詳述 RSA算法是由麻省理工學(xué)院的Ron Rivest,Adi Shamir和Len Adleman于1977年研制并于1978年首次發(fā)表的一種算法,DES是用數(shù)論構(gòu)造的,也是迄今為止理論上最為成熟完善的公鑰密碼體制。 數(shù)學(xué)上的單向陷門(mén)函數(shù)的特點(diǎn)是一個(gè)方向求值很容易,但其逆向計(jì)算卻很困難。許多形式為Y=f(x)的函數(shù),對(duì)于給定的自變量x值,很容易計(jì)算出函數(shù)Y的值;而由給定的Y值,在很多情況下依照函數(shù)關(guān)系f(x)計(jì)算x值十分困難。例如,兩個(gè)大素?cái)?shù)p和q相乘得到乘積n比較容易計(jì)算,但從它們的乘積n分解為兩個(gè)大素?cái)?shù)p和q則十分困難。如果n為足夠大,當(dāng)前的算法不可能在有效的時(shí)間內(nèi)實(shí)現(xiàn)。 RSA算法正是基于這種理論,為公用網(wǎng)絡(luò)上信息的加密和鑒別提供了一種基本的方法。它通常是先生成一對(duì)RSA密鑰,其中之一是保密密鑰,由用戶(hù)保存;另一個(gè)為公開(kāi)密鑰,可對(duì)外公開(kāi),甚至可在網(wǎng)絡(luò)服務(wù)器中注冊(cè)。
59
RSA的演算方法是: (1)用戶(hù)選擇2個(gè)足夠大的保密質(zhì)數(shù)q、p(一般為100位以上十進(jìn)數(shù))。 (2)令n=pq,n是公開(kāi)的,從n分解出q和p是極其困難的。 n的歐拉函數(shù):Φ(n)=(p-1)(q-1),Φ(n)小于等于n,并與n互質(zhì)。 (3)選擇一個(gè)相對(duì)大的整數(shù)e作為加密指數(shù),使e與Φ(n)互質(zhì)。 (4)解恒等方程:de≡1 mod Φ(n),求出解密指數(shù)d。 (5)設(shè)m、C分別為要加密的明文和被加密的密文(m、C小于n),則加密運(yùn)算為:C=E(m)=me mod n,解密運(yùn)算為:M=D(C)=Cd mod n。 通過(guò)以上算法,每個(gè)用戶(hù)都擁有一組密鑰(e、d、n),其中(e、n)為公開(kāi)密鑰(public key),可以公開(kāi)在手冊(cè)上,e為加密指數(shù);(d、n)為私人密鑰(private key),是用戶(hù)保密的私鑰;p、q消毀。
60
舉例如下: (1)選兩個(gè)質(zhì)數(shù):p=47,q=71(為了計(jì)算方便,只選取十位數(shù),實(shí)際加密時(shí)應(yīng)該選取100位以上十進(jìn)數(shù)的質(zhì)數(shù)) (2)計(jì)算:n=pq=47×71=3337,Φ(n)=(47-1)×(71-1)=3220 (3)e必須與Φ(n)互質(zhì),選e=79 (4)計(jì)算:ed=1 mod Φ(n)=1 mod (3220),得出d=1019,這是因?yàn)?019×79=3220×25+1。 然后將e=79、n=3337公布,d=1019保密,p、q消毀即可。 如有一明文m= 加密過(guò)程如下: 先將m分割成多塊:m1=688,m2=232,m3=687,m4=966,m5=668,m6=3 將第1塊m1加密后得密文C1=m1e(mod3337)=688×79(mod3337)=1570 依次對(duì)各區(qū)塊加密后得密文C= 解密過(guò)程如下: 對(duì)C1解密得m1 M1=C1d(mod3337)= (mod3337)=688 依次解密得原文M。
61
Ⅲ RSA安全性分析 RSA的安全性依賴(lài)于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆](méi)有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無(wú)須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前,RSA的一些變種算法已被證明等價(jià)于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法。 隨著計(jì)算機(jī)計(jì)算能力的不斷提高,原來(lái)被認(rèn)為是不可能分解的大數(shù)已被成功分解。例如,1977年,RSA的三個(gè)發(fā)明者在《科學(xué)美國(guó)人》Martin Gardner的數(shù)學(xué)游戲?qū)谏嫌×艘粋€(gè)密碼并對(duì)該刊的讀者提出了破譯該密碼的挑戰(zhàn)。他們懸賞100美元給可以提供明文的人,他們估計(jì)要得到正確的結(jié)果至少需要4億億年。可是,1994年4月,一個(gè)通過(guò)internet進(jìn)行合作的小組僅僅在工作了8個(gè)月之后就領(lǐng)到了這筆獎(jiǎng)金。這項(xiàng)挑戰(zhàn)使用了一個(gè)129個(gè)數(shù)字或者大約428比特大小(長(zhǎng)度為n)的公開(kāi)密鑰。 對(duì)較大密鑰的攻擊威脅的另一方面還來(lái)自因子分解算法的不斷完善。分解算法過(guò)去都采用二次篩法,如對(duì)RSA-129的分解。而事實(shí)上,一個(gè)新算法,廣義數(shù)域篩GNFS(Generalized Number Field Sieve)的分解速度更快,該算法在分解RSA-130時(shí)所作的計(jì)算僅比RSA-129多10%。將來(lái)或許還有更好的分解算法。因此在使用RSA算法時(shí)對(duì)其密鑰的選取要大。估計(jì)在未來(lái)一段比較長(zhǎng)的時(shí)期,密鑰長(zhǎng)度介于1024比特至2048比特之間的RSA會(huì)是安全的。
62
單向散列函數(shù)HASH 前面我們介紹的加密技術(shù),如DES、RSA算法,都是抗擊消息受到被動(dòng)攻擊(被竊聽(tīng)、信息量分析等)的一種技術(shù),即對(duì)于接收到的消息,我們不清楚它是否泄露、是否完整,只關(guān)心密碼算法及密鑰的強(qiáng)度,以保證在信息有效期內(nèi)即使被攻擊也安全。那么,有沒(méi)有這樣一種技術(shù),即不僅可以驗(yàn)證消息的真實(shí)性,還能驗(yàn)證信息的完整性呢?答案是肯定的,單向散列函數(shù)就可以滿(mǎn)足我們的這種抗擊主動(dòng)攻擊需求。 HASH函數(shù),又稱(chēng)雜湊函數(shù),是在信息安全領(lǐng)域有廣泛和重要應(yīng)用的密碼算法,它是一個(gè)從明文到密文的不可逆函數(shù),也就是說(shuō),只能加密不能還原。單向散列函數(shù)H作用于任意長(zhǎng)度的信息M,返回一固定長(zhǎng)度的散列值(也稱(chēng)摘要信息)h=H(M)。
63
好的單向散列函數(shù)必須具有以下特性: 1、計(jì)算的單向性:給定M和H,求h=H(M)容易,但反過(guò)來(lái)給定h和H,求M=H-1(h)在計(jì)算上是不可行的。 2、弱碰撞自由:給定M,要尋找另一信息M′,滿(mǎn)足H(M′)=H(M)在計(jì)算上不可行。 3、強(qiáng)碰撞自由:要尋找不同的信息M和M′,滿(mǎn)足H(M′)=H(M)在計(jì)算上不可行。 HASH通常應(yīng)用于只需要加密、不需要解密的特殊場(chǎng)合:如驗(yàn)證數(shù)據(jù)的完整性、口令表的加密、數(shù)字簽名、身份認(rèn)證等。當(dāng)我們使用HASH函數(shù)構(gòu)造數(shù)據(jù)的“指紋”時(shí)(用散列函數(shù)對(duì)數(shù)據(jù)生成散列值并保存),一旦數(shù)據(jù)改變(被主動(dòng)攻擊),即使只更動(dòng)一個(gè)字母,對(duì)應(yīng)的壓縮信息也會(huì)變?yōu)榻厝徊煌摹爸讣y”,這就保證了經(jīng)過(guò)處理信息的唯一性。例如在口令加密的場(chǎng)合,系統(tǒng)中保存的是口令的散列值,當(dāng)用戶(hù)輸入口令以進(jìn)入系統(tǒng)時(shí),系統(tǒng)重新計(jì)算用戶(hù)輸入口令的散列值并與保存的數(shù)值比較。只有兩者相同,才授權(quán)用戶(hù)進(jìn)入系統(tǒng)。這就避免了以明文形式保存口令,使系統(tǒng)的安全性大大加強(qiáng)。
64
Ⅰ 消息摘要算法MD5 MD5的全稱(chēng)是“Message-Digest Algorithm 5(信息-摘要算法)”,它是由MD2、MD3、MD4發(fā)展而來(lái)的一種單向函數(shù)算法(也就是HASH算法),由國(guó)際著名的公鑰加密算法標(biāo)準(zhǔn)RSA的第一設(shè)計(jì)者R.Rivest在1991年開(kāi)發(fā)出來(lái)的技術(shù)上更為趨近成熟的一種算法。MD5的最大作用在于,讓大容量信息在用數(shù)字簽名軟件簽署私人密匙前被“壓縮”成一種保密的格式(就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的大整數(shù)),關(guān)鍵之處在于——這種“壓縮”是不可逆的。不管是md2、md4還是md5,它們都需要獲得一個(gè)隨機(jī)長(zhǎng)度的信息并產(chǎn)生一個(gè)128位的信息摘要。 MD5的典型應(yīng)用是對(duì)一段信息(message)產(chǎn)生信息摘要(message-digest),以防止被篡改。這是因?yàn)镸D5可以為任何文件(不管其大小、格式、數(shù)量)產(chǎn)生一個(gè)獨(dú)一無(wú)二的“數(shù)字指紋”,如果任何人對(duì)文件做了任何改動(dòng),其MD5值也就是對(duì)應(yīng)的“數(shù)字指紋”都會(huì)發(fā)生變化。 我們常常在某些軟件下載站點(diǎn)的某軟件信息中看到其MD5值,它的作用就在于我們可以在下載該軟件后,對(duì)下載回來(lái)的文件用專(zhuān)門(mén)的軟件(如Windows MD5 Check等)做一次MD5校驗(yàn),以確保我們獲得的文件與該站點(diǎn)提供的文件為同一文件。如果再有一個(gè)第三方的認(rèn)證機(jī)構(gòu),用MD5還可以防止文件作者的“抵賴(lài)”,這就是所謂的數(shù)字簽名應(yīng)用。利用MD5算法來(lái)進(jìn)行文件校驗(yàn)的方案被大量應(yīng)用到軟件下載站、論壇數(shù)據(jù)庫(kù)、系統(tǒng)文件安全等方面。
65
MD5還廣泛用于加密和解密技術(shù)上。比如用戶(hù)的密碼是以MD5(或其它類(lèi)似的算法)經(jīng)加密后存儲(chǔ)在文件系統(tǒng)中。當(dāng)用戶(hù)登錄的時(shí)候,系統(tǒng)把用戶(hù)輸入的密碼計(jì)算成MD5值,然后再去和保存在文件系統(tǒng)中的MD5值進(jìn)行比較,進(jìn)而確定輸入的密碼是否正確。通過(guò)這樣的步驟,系統(tǒng)在并不知道用戶(hù)密碼的明碼的情況下就可以確定用戶(hù)登錄系統(tǒng)的合法性。這不但可以避免用戶(hù)的密碼被具有系統(tǒng)管理員權(quán)限的用戶(hù)知道,而且還在一定程度上增加了密碼被破解的難度。 天下沒(méi)有不透風(fēng)的墻,任何一種算法都會(huì)有其漏洞,即使是目前大行其道的MD5,當(dāng)對(duì)漏洞的研究發(fā)展到其能夠被有效利用時(shí),則標(biāo)志著該算法滅亡的時(shí)候到了。在2004年8月美國(guó)加州圣巴巴拉召開(kāi)的國(guó)際密碼學(xué)會(huì)議(Crypto’2004)上,來(lái)自中國(guó)山東大學(xué)王小云教授的一篇關(guān)于“破譯MD5、HAVAL-128、MD4以及RIPEMD-128算法”的報(bào)告引起了轟動(dòng),報(bào)告中提到的新破譯方法幾乎標(biāo)志著世界通信密碼標(biāo)準(zhǔn)——MD5堡壘的轟然倒塌。但盡管MD5被淘汰已經(jīng)成為必然,不過(guò)鑒于它開(kāi)源以及免費(fèi)的特性,而且目前還沒(méi)有真正有效的快速破解方法,因此它還將繼續(xù)在歷史舞臺(tái)活躍一段時(shí)間。
66
Ⅱ 報(bào)文鑒別碼MAC MAC(message authentication code),也稱(chēng)為密碼檢驗(yàn)和,消息認(rèn)證碼,是指滿(mǎn)足某種安全性質(zhì)的帶密鑰的HASH函數(shù)。因此,它的安全性質(zhì)與普通的單向散列函數(shù)是有明顯區(qū)別的。盡管兩者具有相同的散列函數(shù)結(jié)構(gòu),但引入MAC后,只有擁有密鑰的才能鑒別給定的散列函數(shù)。這就能保證有時(shí)候不想對(duì)原文件進(jìn)行加密(如發(fā)布通知、公告等),只要求能夠確保傳送文件不被修改,或修改了也能識(shí)別。如果使用的不是MAC而是普通的單向散列函數(shù),那么任何人都可以修改文件以至造成產(chǎn)生新的散列函數(shù)而不可辯識(shí)的后果。 構(gòu)造報(bào)文鑒別碼是用一個(gè)密鑰生成的一個(gè)小的數(shù)據(jù)塊追加在報(bào)文的后面。這種技術(shù)是假定通信雙方(例如用戶(hù)A和用戶(hù)B)共享一個(gè)密鑰K。當(dāng)用戶(hù)A向用戶(hù)B發(fā)送報(bào)文M時(shí),就根據(jù)此密鑰和報(bào)文計(jì)算出報(bào)文鑒別碼MAC=f(K,M),這里f就是加密算法的某一函數(shù)。此報(bào)文的鑒別碼一起傳送到用戶(hù)B。用戶(hù)B用收到的報(bào)文(不包括報(bào)文鑒別碼),使用同樣的密鑰K,再計(jì)算一次報(bào)文鑒別碼,并與收到的報(bào)文鑒別碼相比較。如一致,則鑒別此報(bào)文是真的;反之,報(bào)文就不是用戶(hù)A所發(fā),或者即使是A所發(fā),也被篡改過(guò)。這樣就可以最大限度的保證通信安全。 值得注意的是,生成報(bào)文鑒別碼的過(guò)程與加密過(guò)程十分相似。但區(qū)別是,鑒別算法不進(jìn)行反向的計(jì)算。也就是說(shuō),對(duì)MAC不進(jìn)行類(lèi)似加密過(guò)程的反向計(jì)算。由于鑒別函數(shù)的這一特點(diǎn),鑒別是較難被攻破的。
67
密碼技術(shù)的未來(lái) 盡管雙鑰密碼體制比單鑰密碼體制更為可靠,但由于計(jì)算過(guò)于復(fù)雜,雙鑰密碼體制在進(jìn)行大信息量通信時(shí),加密速率僅為單鑰體制的1/100,甚至是1/1000。正是由于不同體制的加密算法各有所長(zhǎng),所以在今后相當(dāng)長(zhǎng)的一段時(shí)期內(nèi),各類(lèi)加密體制將會(huì)共同發(fā)展。而在由IBM等公司于1996年聯(lián)合推出的用于電子商務(wù)的協(xié)議標(biāo)準(zhǔn)SET(Secure Electronic ransaction)中和1992年由多國(guó)聯(lián)合開(kāi)發(fā)的PGP技術(shù)中,均采用了包含單鑰密碼、雙鑰密碼、單向雜湊算法和隨機(jī)數(shù)生成算法在內(nèi)的混合密碼系統(tǒng)的動(dòng)向來(lái)看,這似乎從一個(gè)側(cè)面展示了今后密碼技術(shù)應(yīng)用的未來(lái)。 在單鑰密碼領(lǐng)域,一次一密被認(rèn)為是最為可靠的機(jī)制,但是由于流密碼體制中的密鑰流生成器在算法上未能突破有限循環(huán),故一直未被廣泛應(yīng)用。如果找到一個(gè)在算法上接近無(wú)限循環(huán)的密鑰流生成器,該體制將會(huì)有一個(gè)質(zhì)的飛躍。近年來(lái),混沌學(xué)理論的研究給在這一方向產(chǎn)生突破帶來(lái)了曙光。此外,充滿(mǎn)生氣的量子密碼被認(rèn)為是一個(gè)潛在的發(fā)展方向,因?yàn)樗腔诠鈱W(xué)和量子力學(xué)理論的。該理論對(duì)于在光纖通信中加強(qiáng)信息安全、對(duì)付擁有量子計(jì)算能力的破譯無(wú)疑是一種理想的解決方法。 保密與竊密就像矛與盾一樣形影相隨,它們之間的斗爭(zhēng)已經(jīng)持續(xù)了幾千年,任何一種新的密碼技術(shù)的出現(xiàn),必然會(huì)有相應(yīng)的解密方法。當(dāng)然,或許隨著科技的進(jìn)一步發(fā)展,通過(guò)在密碼算法設(shè)計(jì)的新思路、信息保護(hù)的新思路等方面的突破,未來(lái)的加密技術(shù)將成為這場(chǎng)斗爭(zhēng)的終結(jié)者。
68
3.3 密鑰管理 密鑰管理技術(shù)主要處理密鑰從產(chǎn)生到最終銷(xiāo)毀整個(gè)過(guò)程中的有關(guān)問(wèn)題,包括密鑰的產(chǎn)生、存儲(chǔ)、裝入、分配、保護(hù)、丟失、銷(xiāo)毀等內(nèi)容,它的主要任務(wù)是保證在公用數(shù)據(jù)網(wǎng)上安全地傳遞密鑰而不被竊取。 密鑰是密碼系統(tǒng)中的可變部分?,F(xiàn)代密碼體制要求加密算法是可以公開(kāi)評(píng)估的,這個(gè)密碼系統(tǒng)的安全性并不取決于對(duì)密碼算法的保密或者是對(duì)加密設(shè)備等的保護(hù),盡管這樣有利于提高整個(gè)密碼系統(tǒng)的安全程度,但這種提高只是相對(duì)而言的)。這時(shí),決定這個(gè)密碼體制安全性的因素將是密鑰的保密性;密碼算法可以公開(kāi),密碼設(shè)備可以丟失,但它們都不危及密碼體制的安全性;但一旦密鑰丟失,攻擊者將會(huì)有可能竊取信息。在考慮密碼系統(tǒng)的設(shè)計(jì)時(shí),需要解決的核心問(wèn)題是密鑰管理問(wèn)題,而不是密碼算法問(wèn)題。
69
3.3.1 密鑰管理基礎(chǔ)知識(shí) Ⅰ 密鑰管理的要求 密鑰管理是一門(mén)綜合性技術(shù),它除了技術(shù)性的因素之外,還與人的因素,例如密鑰的行政管理制度以及人員的素質(zhì)密切相關(guān)。管理不好,密鑰同樣可能被無(wú)意識(shí)地泄露,并不是有了密鑰就高枕無(wú)憂(yōu),任何保密也只是相對(duì)的,是有時(shí)效的。 為此,對(duì)密鑰管理系統(tǒng)一般有以下具體要求: (1)密鑰難以被非法竊??; (2)在一定條件下即使竊取了密鑰也沒(méi)用; (3)密鑰的分配和更換過(guò)程在用戶(hù)看來(lái)是透明的,用戶(hù)不一定要親自掌握密鑰。 從管理角度來(lái)說(shuō),密鑰管理的基本要求是: (1)脫離密碼設(shè)備的密鑰數(shù)據(jù)應(yīng)絕對(duì)保密; (2)密碼設(shè)備內(nèi)部的密鑰數(shù)據(jù)絕對(duì)不外泄,一旦發(fā)現(xiàn)有攻擊跡象,應(yīng)立即銷(xiāo)毀密鑰數(shù)據(jù); (3)密鑰使命完成,應(yīng)徹底銷(xiāo)毀、更換。
70
Ⅱ 密鑰管理的組織結(jié)構(gòu) 適應(yīng)于對(duì)密鑰管理系統(tǒng)的要求,現(xiàn)有的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的密鑰管理的設(shè)計(jì)大都采用了層次化的密鑰結(jié)構(gòu)。
71
最底層的密鑰Kn也稱(chēng)為工作密鑰,或稱(chēng)數(shù)據(jù)加密密鑰,它直接用于對(duì)明文數(shù)據(jù)的加、解密;所有上層密鑰可稱(chēng)為密鑰加密密鑰,它們用于保護(hù)數(shù)據(jù)加密密鑰或者其他低層的密鑰加密密鑰;最高層的密鑰K1也叫做主密鑰,一般來(lái)說(shuō),主密鑰是整個(gè)密鑰管理系統(tǒng)的核心,應(yīng)采用最保險(xiǎn)的方式來(lái)進(jìn)行保護(hù)。 平時(shí),數(shù)據(jù)加密密鑰(工作密鑰)并不存在,在進(jìn)行數(shù)據(jù)的加、解密時(shí),數(shù)據(jù)加密密鑰將在上層密鑰的保護(hù)下動(dòng)態(tài)地產(chǎn)生;數(shù)據(jù)加密密鑰在使用完畢后,將立即清除,不再以明的形式出現(xiàn)在密碼系統(tǒng)中。 通常,我們可以以相對(duì)的概念來(lái)理解層次化的密鑰結(jié)構(gòu);某一層密鑰Ki相對(duì)于更高層的密鑰Ki-1是工作密鑰,而相對(duì)于低一層的密鑰Ki+1是密鑰加密密鑰。 層次化的密鑰結(jié)構(gòu)意味著以密鑰來(lái)保護(hù)密鑰,這樣,大量的數(shù)據(jù)可以通過(guò)少量動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)加密密鑰(工作密鑰)進(jìn)行保護(hù),而數(shù)據(jù)加密密鑰又可以由更少量的、相對(duì)不變(使用期較長(zhǎng))的密鑰加密密鑰來(lái)保護(hù),依此類(lèi)推,最后,第二層的密鑰加密密鑰可以由主密鑰進(jìn)行保護(hù),從而保證了除了主密鑰可以以明文的形式存儲(chǔ)在有嚴(yán)密物理保護(hù)的主機(jī)密碼器件中,其它密碼則以加密后的密文形式存儲(chǔ),這樣,使密鑰的安全性大大提高,也為密鑰管理自動(dòng)化帶來(lái)了方便。
72
Ⅱ 密鑰的種類(lèi) 密鑰分為數(shù)據(jù)加密密鑰(作用于明文數(shù)據(jù)對(duì)象)和密鑰加密密鑰(作用于數(shù)據(jù)加密密鑰及其它密鑰加密密鑰對(duì)象)。從具體的功能角度來(lái)看,在一般的密碼系統(tǒng)中有以下幾種密鑰: (1)基本密鑰(base key) (2)會(huì)話(huà)密鑰(session key) (3)密鑰加密密鑰(key encrypting key) (4)主機(jī)主密鑰(host master key)
73
(1)基本密鑰(base key) 基本密鑰也稱(chēng)為初始密鑰(primary key),是由用戶(hù)選定或由系統(tǒng)分配給用戶(hù)的、可在較長(zhǎng)時(shí)間內(nèi)(相對(duì)于會(huì)話(huà)密鑰)由一對(duì)用戶(hù)(例如密鑰分配中心與某一用戶(hù)之間,或兩個(gè)用戶(hù)之間)所專(zhuān)用的秘密密鑰。在某種程度上,基本密鑰還起到了標(biāo)識(shí)用戶(hù)的作用?;久荑€也可以稱(chēng)為用戶(hù)密鑰(user key)。 (2)會(huì)話(huà)密鑰(session key) 會(huì)話(huà)密鑰是在一次通信或數(shù)據(jù)交換中,用戶(hù)之間所使用的密鑰。會(huì)話(huà)密鑰可由通信用戶(hù)之間進(jìn)行協(xié)商得到。它一般是動(dòng)態(tài)地、僅在需要進(jìn)行會(huì)話(huà)數(shù)據(jù)加密時(shí)產(chǎn)生,并在使用完畢后立即進(jìn)行清除掉的(當(dāng)然也可以由用戶(hù)雙方進(jìn)行預(yù)先約定)。 會(huì)話(huà)密鑰可以使我們不必太頻繁地更改基本密鑰,而通過(guò)密鑰分配或密鑰協(xié)商的方法得到某次數(shù)據(jù)通信所使用的數(shù)據(jù)加密密鑰,這樣我們可以做到一報(bào)一密,從而大大提高通信的安全性,并方便密鑰的管理。 (3)密鑰加密密鑰(key encrypting key) 密鑰加密密鑰一般是用來(lái)對(duì)傳送的會(huì)話(huà)密鑰或文件秘密密鑰進(jìn)行加密時(shí)所采用的密鑰,也可以稱(chēng)為二級(jí)密鑰。密鑰加密密鑰所保護(hù)的對(duì)象是實(shí)際用來(lái)保護(hù)通信或文件數(shù)據(jù)的會(huì)話(huà)密鑰或文件加密密鑰。在通信網(wǎng)中,一般在每個(gè)節(jié)點(diǎn)都分配有一個(gè)這類(lèi)密鑰,同時(shí),為了安全,各節(jié)點(diǎn)的密鑰加密密鑰應(yīng)互不相同。節(jié)點(diǎn)之間進(jìn)行密鑰協(xié)商時(shí),應(yīng)使用各節(jié)點(diǎn)的密鑰加密密鑰進(jìn)行。 (4)主機(jī)主密鑰(host master key) 主機(jī)主密鑰對(duì)應(yīng)于層次化密鑰結(jié)構(gòu)中的最高層次,它是對(duì)密鑰加密密鑰進(jìn)行加密的密鑰。因此,主機(jī)主密鑰應(yīng)受到嚴(yán)格的保護(hù)。
74
密鑰生成 密鑰生成是密鑰管理的基本要件,對(duì)于一個(gè)密碼體制,如何產(chǎn)生好的密鑰是很關(guān)鍵的,密鑰選擇不當(dāng),即使算法再?gòu)?qiáng),其安全性也是不敢恭維的。例如,以DES作為說(shuō)明,如果我們只使用英文字母(包括大小寫(xiě))與數(shù)字作為密鑰,則可能的密鑰(即密鑰空間的大?。┲挥?.2×1014個(gè)。它僅僅是原來(lái)DES可能的密鑰空間的三百多分之一,這樣對(duì)于窮舉攻擊是很有利的。 那么,什么樣的密鑰才叫做安全?怎樣產(chǎn)生安全的密鑰?下面將逐一為你描述。
75
Ⅰ 安全密鑰產(chǎn)生的幾個(gè)特性 密鑰產(chǎn)生方式可由人工生成,也可由機(jī)器自動(dòng)生成,不管怎樣,產(chǎn)生的密鑰必須滿(mǎn)足偽隨機(jī)特性的統(tǒng)計(jì)檢驗(yàn)。一般我們把滿(mǎn)足下面幾個(gè)條件的密鑰稱(chēng)為比較安全的密鑰: 真正隨機(jī)等概,如采取扔色子、擲硬幣等取法; 避免弱密碼的應(yīng)用(主要是單鑰系統(tǒng)); 雙鑰系統(tǒng)應(yīng)選擇數(shù)學(xué)關(guān)系巧、難的方法產(chǎn)生密鑰; 選用長(zhǎng)度適中、安全易記且難猜中的密鑰; 適當(dāng)采用雜湊技術(shù),能將長(zhǎng)密鑰變換成偽隨機(jī)數(shù)串(64bit)。
76
Ⅱ 密鑰長(zhǎng)短安全性 密碼系統(tǒng)的安全性主要依賴(lài)于密鑰,而不僅僅依賴(lài)于算法的強(qiáng)壯度。選擇密鑰長(zhǎng)度既不能太長(zhǎng)也不能太短。原因很簡(jiǎn)單,一旦選擇過(guò)長(zhǎng),必須為密鑰變長(zhǎng)付出所需計(jì)算時(shí)間的代價(jià)。如果選擇太短,又?jǐn)巢贿^(guò)窮舉搜索等攻擊。表3.10給出了不同對(duì)象空間的密鑰數(shù)和對(duì)應(yīng)的窮舉搜索時(shí)間(假設(shè)每秒測(cè)試一百萬(wàn)次)。 按照現(xiàn)在計(jì)算機(jī)發(fā)展的速度和計(jì)算能力分析,每2~3年左右,窮舉搜索能力也將要翻一番。因此在通行字之類(lèi)密碼中,特別是口令密碼,應(yīng)盡量避免遭受字典式攻擊(dictionary attack),如本人名、首字母、帳戶(hù)名、數(shù)據(jù)庫(kù)縮寫(xiě)名等作口令極易受攻擊。
77
Ⅲ 密鑰產(chǎn)生方式 主機(jī)主密鑰。屬控制其它加密密鑰的密鑰,對(duì)應(yīng)于層次化密鑰結(jié)構(gòu)中的最高層次,一般它的密鑰量很小,但作為整個(gè)密碼系統(tǒng)的核心,應(yīng)保證完全隨機(jī)性、不可重復(fù)性和不可預(yù)測(cè)性。故宜用擲硬幣、噪聲產(chǎn)生器等方法產(chǎn)生。 密鑰加密密鑰??捎蓹C(jī)器自動(dòng)產(chǎn)生或由操作員選定。一般可用安全算法、偽隨機(jī)數(shù)產(chǎn)生器、電子學(xué)噪聲源等產(chǎn)生。典型的有在主機(jī)主密鑰控制下,由X9.17安全算法(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)ANSI采用)生成。 會(huì)話(huà)密鑰、工作密鑰。在密鑰加密密鑰的控制下,通過(guò)某種安全算法動(dòng)態(tài)產(chǎn)生。例如用初始密鑰控制非線性移位寄存器,或用密鑰加密密鑰控制DES算法產(chǎn)生。
78
密鑰分配 要使常規(guī)加密有效進(jìn)行,信息交互的雙方必須共享同一個(gè)密鑰,并且這個(gè)密鑰還要防止被其他人獲得。另外我們還希望密鑰經(jīng)常更換,以便在攻擊者知道密鑰的情況下使得泄露的數(shù)據(jù)量有個(gè)限制。因此,任何一個(gè)密碼編碼系統(tǒng)的強(qiáng)度都依賴(lài)于密鑰分配技術(shù)。 密鑰分配技術(shù)是在不讓其他人看到密鑰的情況下將一個(gè)密鑰傳遞給希望交換數(shù)據(jù)的雙方的方法。下面我們簡(jiǎn)單介紹些關(guān)于密鑰分配的基本知識(shí)。
79
Ⅰ 密鑰分配基本方法 例如有兩個(gè)用戶(hù)A和B,想獲得共享密鑰的方法有以下幾種: 1、密鑰由A選取并通過(guò)物理手段發(fā)送給B。
80
一種典型的分配方案如圖3.10所示:
81
假設(shè)用戶(hù)A希望與用戶(hù)B建立一個(gè)邏輯連接,并且需要一次性的會(huì)話(huà)密鑰來(lái)保護(hù)經(jīng)過(guò)這個(gè)連接傳輸?shù)臄?shù)據(jù)。A和B都與密鑰分配中心KDC(key distribution center)有一個(gè)共享的主密鑰KA和KB。密鑰分配步驟如下: 1、A向KDC發(fā)出請(qǐng)求,要求得到一個(gè)用來(lái)保護(hù)他與B之間邏輯連接的會(huì)話(huà)密鑰。這個(gè)報(bào)文包括A和B的標(biāo)識(shí)以及一個(gè)對(duì)于這次交互而言的唯一的標(biāo)識(shí)符N1,N1為一次性隨機(jī)數(shù),也叫作現(xiàn)時(shí),它可以是一個(gè)時(shí)間戳、一個(gè)計(jì)數(shù)器或者一個(gè)隨機(jī)數(shù),對(duì)它的最低要求是它在每個(gè)請(qǐng)求中是不同的。另外,為了防止冒充,應(yīng)使敵手對(duì)N1難以預(yù)測(cè),因此用隨機(jī)數(shù)最為合適。 2、KDC用一個(gè)經(jīng)過(guò)KA加密的報(bào)文作為響應(yīng)。因而,A是唯一可以成功收到這個(gè)報(bào)文的實(shí)體,而且A知道這個(gè)報(bào)文來(lái)自KDC。這個(gè)報(bào)文包含給A的兩項(xiàng)內(nèi)容: 用于會(huì)話(huà)的一次性密鑰KS。 原來(lái)的請(qǐng)求報(bào)文,包括一次性隨機(jī)數(shù)N1,以便使A將收到的應(yīng)答與發(fā)出的請(qǐng)求相比較,看是否匹配。 因而,A可以證實(shí)它原來(lái)的請(qǐng)求在KDC收到之前沒(méi)有被篡改,并且這不是一個(gè)以前請(qǐng)求的重放。 另外,這個(gè)報(bào)文還包括給B的兩項(xiàng)內(nèi)容: 用于會(huì)話(huà)的一次性密鑰Ks。 A的標(biāo)識(shí)符(例如他的網(wǎng)絡(luò)地址)IDa。 這兩項(xiàng)內(nèi)容是用KB進(jìn)行加密的,它們被發(fā)送到B來(lái)建立連接并證實(shí)A的身份。
82
3、A把會(huì)話(huà)密鑰存儲(chǔ)起來(lái)以便用于后續(xù)的會(huì)話(huà),并將KDC發(fā)送給B的信息即EKB[KS||IDA]轉(zhuǎn)發(fā)給B。因?yàn)檫@個(gè)信息是用Kb加密的,它對(duì)竊聽(tīng)有了防護(hù)。B現(xiàn)在知道了會(huì)話(huà)密鑰(Ks),知道了通信的另一方是A(從IDa得知),并且知道了信息是從KDC發(fā)出的(因?yàn)樗怯肊kb加密的)。 這時(shí)一個(gè)會(huì)話(huà)密鑰就安全地傳送給了A和B,他們就可以開(kāi)始受到保護(hù)的信息交互了。然而還有兩個(gè)步驟是必要的: 4、B使用為加密新造的會(huì)話(huà)密鑰發(fā)送一個(gè)一次性隨機(jī)數(shù)N2給A。 5、A也使用KS響應(yīng)一個(gè)f(N2),其中f是一個(gè)對(duì)N2進(jìn)行某種變換的函數(shù)(例如加1)。 這些步驟使得B確信它原來(lái)所收到(步驟3)的報(bào)文不是一個(gè)重放。 注意實(shí)際的密鑰分配過(guò)程只涉及步驟1到3,而步驟4和5結(jié)合3完成的是鑒別功能。
83
Ⅱ 公開(kāi)密鑰分發(fā) 公開(kāi)密鑰分發(fā),顧名思義,就是公鑰系統(tǒng)中的加密公開(kāi)密鑰是公開(kāi)的,它通過(guò)各種公開(kāi)的手段和方式,或由公開(kāi)權(quán)威機(jī)構(gòu)實(shí)現(xiàn)公開(kāi)密鑰分發(fā)和傳送。 公開(kāi)密鑰分發(fā)有下列幾種形式: 1、公開(kāi)宣布 2、公布可以得到的目錄 3、公開(kāi)密鑰機(jī)構(gòu)分發(fā) 4、公開(kāi)密鑰證書(shū)分發(fā)
84
1、公開(kāi)宣布 依據(jù)被廣泛接受的公開(kāi)密鑰算法(如RSA),參與者可將其公開(kāi)密鑰發(fā)送給他人,或通過(guò)廣播式在整個(gè)通信社區(qū)公布公開(kāi)密鑰。比如郵件加密的PGP用戶(hù)可在消息后面附上公開(kāi)密鑰信息,并將其送到公開(kāi)論壇USENET新聞組上公布。 這個(gè)方法很方便,但是易受假冒用戶(hù)攻擊,必須對(duì)偽造密鑰進(jìn)行鑒別。
85
2、公布可以得到的目錄 由一個(gè)可信實(shí)體或組織負(fù)責(zé)一個(gè)公開(kāi)密鑰的公開(kāi)目錄的維護(hù)和分發(fā)??尚艡C(jī)構(gòu)與參與者之間建立一條{用戶(hù)名·公開(kāi)密鑰}條目。參與者可通過(guò)正常或可信渠道到目錄權(quán)威機(jī)構(gòu)登記公開(kāi)密鑰。允許參與者隨時(shí)更改一個(gè)已有的密鑰(如公鑰使用太長(zhǎng),或公鑰已泄密),目錄權(quán)威機(jī)構(gòu)可周期性地公布整個(gè)目錄,或?qū)δ夸涍M(jìn)行刷新,參與者也可以電子方式訪問(wèn)這個(gè)目錄。為安全起見(jiàn),參與者與權(quán)威機(jī)構(gòu)的通信安全受鑒別保護(hù)。 這個(gè)方法的安全性顯然強(qiáng)于公開(kāi)宣布,但是也易受冒充權(quán)威機(jī)構(gòu)偽造公開(kāi)密鑰的攻擊。
86
3、公開(kāi)密鑰機(jī)構(gòu)分發(fā) 由專(zhuān)門(mén)機(jī)構(gòu)授權(quán),用來(lái)負(fù)責(zé)管理公開(kāi)密鑰的公開(kāi)目錄分發(fā)的一個(gè)中心權(quán)威機(jī)構(gòu)可信實(shí)體或組織,并負(fù)責(zé)維護(hù)一個(gè)所有參與者登記在冊(cè)的公開(kāi)密鑰信息的公開(kāi)動(dòng)態(tài)目錄,使公開(kāi)密鑰的分發(fā)達(dá)到更高的安全強(qiáng)度。當(dāng)然,每個(gè)參與者都有一種可信渠道知曉權(quán)威機(jī)構(gòu)的公開(kāi)密鑰,而其對(duì)應(yīng)的私鑰只能由機(jī)構(gòu)本身秘密擁有。這種公開(kāi)密鑰分發(fā)方案主要用于A和B雙方在進(jìn)行通信時(shí),需要了解對(duì)方的公開(kāi)密鑰信息。一方向公開(kāi)密鑰機(jī)構(gòu)要求分發(fā)另一方的公開(kāi)密鑰,用雙方的公開(kāi)密鑰進(jìn)行信息加密傳送給對(duì)方。這時(shí)為安全起見(jiàn),主要通過(guò)時(shí)戳等技術(shù)加以保護(hù)和判別。公開(kāi)密鑰機(jī)構(gòu)分發(fā)方式同樣存在真實(shí)性和鑒別問(wèn)題。
87
4、公開(kāi)密鑰證書(shū)分發(fā) 公開(kāi)密鑰證書(shū)方法是由Kohnfelder[KOHN78]首先提出的,目的是用戶(hù)使用證書(shū)交換公開(kāi)密鑰,無(wú)需與權(quán)威機(jī)構(gòu)聯(lián)系,也能達(dá)到類(lèi)似直接從權(quán)威目錄機(jī)構(gòu)獲取公開(kāi)密鑰方法的安全性?;咀鞣ㄊ牵鹤C書(shū)由可信證書(shū)中心生成,內(nèi)容包含用戶(hù)公開(kāi)密鑰、對(duì)應(yīng)的私有密鑰及相關(guān)信息。參與者通過(guò)將相應(yīng)證書(shū)傳送給另一個(gè)參與者而達(dá)到傳送公鑰信息的目的。其他參與者可以驗(yàn)證此證書(shū)是否由權(quán)威機(jī)構(gòu)簽發(fā)。該方案的特點(diǎn)是: (1)每個(gè)參與者都可解析證書(shū),以獲悉證書(shū)持有者名和公鑰信息; (2)每個(gè)參與者均可驗(yàn)證一個(gè)證書(shū)是否由權(quán)威機(jī)構(gòu)簽發(fā)的真實(shí)性; (3)只有權(quán)威機(jī)構(gòu)能夠簽發(fā)和更新合法的證書(shū); (4)每個(gè)參與者都能驗(yàn)證證書(shū)的適時(shí)性。 其中(1)~(3)在Kohnfelder[KOHN78]中提到,(4)在Denning[DENN83]中提到。
88
Ⅲ 秘密密鑰分發(fā) 公開(kāi)密鑰分發(fā)一方面易受搭線攻擊,另一方面加解密速度偏慢,因此,比較合理的做法是將公開(kāi)密鑰加密當(dāng)作一個(gè)分配常規(guī)加密所用的秘密密鑰的工具。
89
1、簡(jiǎn)單的秘密密鑰分配 一個(gè)極端簡(jiǎn)單的方案如圖3.13所示: 如果A希望和B通信,就使用如下步驟:
90
但是這個(gè)協(xié)議容易受到主動(dòng)攻擊。如果一個(gè)敵對(duì)方E控制了中間的通信信道,那么E就可以用下列方式破壞通信而不被發(fā)覺(jué):
91
2、具有保密和鑒別能力的秘密密鑰分配 圖3.14提供了對(duì)于被動(dòng)和主動(dòng)兩種攻擊的防護(hù)。
92
密鑰托管 任何東西都具有兩面性,加密技術(shù)也不例外:一方面可為用戶(hù)提供正常保密保護(hù);另一方面也為竊密分子提供犯罪掩護(hù),給監(jiān)管帶來(lái)了困難。那么如何控制加密技術(shù)的使用,使得一方面政府機(jī)構(gòu)在需要時(shí),可通過(guò)適當(dāng)?shù)某绦颍绶ㄔ鹤C書(shū),解密用戶(hù)的信息;另一方面,當(dāng)用戶(hù)的密鑰丟失或損壞,也可通過(guò)該技術(shù)恢復(fù)自己的密鑰呢? 這就要用到密鑰托管技術(shù),下面我們簡(jiǎn)單介紹些關(guān)于它的基本知識(shí)。
93
Ⅰ 密鑰托管基本含義 1993年4月16日,美國(guó)政府為了滿(mǎn)足其電信安全、公眾安全和國(guó)家安全,提出了托管加密標(biāo)準(zhǔn)EES(escorowed encryption standard),又稱(chēng)Clipper建議,解決了加密技術(shù)兩面性的需求:不僅提供強(qiáng)加密功能,也為政府機(jī)構(gòu)提供了實(shí)施法律授權(quán)下的監(jiān)聽(tīng)功能。EES標(biāo)準(zhǔn)于1994年2月正式被美國(guó)政府公布采用。 所謂密鑰托管技術(shù),指為用戶(hù)提供更好的安全通信方式,同時(shí)允許授權(quán)者(包括用戶(hù)、企業(yè)專(zhuān)門(mén)人員、政府保密部門(mén)等)為了國(guó)家等安全利益,監(jiān)聽(tīng)某些通信和解密有關(guān)密文。所以,密鑰托管也叫“密鑰恢復(fù)”,或者延伸為“受信任的第三方”、“數(shù)據(jù)恢復(fù)”、“特殊獲取”等含義。 密鑰托管技術(shù)的核心是一個(gè)稱(chēng)為Clipper的防竄擾芯片,它是由美國(guó)國(guó)家安全局(NSA)主持開(kāi)發(fā)的軟件實(shí)現(xiàn)密碼部件。內(nèi)部利用skipjack的私鑰密碼算法,芯片的單元密碼(UK)由兩個(gè)稱(chēng)之為Escrow的機(jī)構(gòu)聯(lián)合提供。 美國(guó)政府的EES標(biāo)準(zhǔn)公布之后,在社會(huì)上引起了很大的爭(zhēng)議,但出于商業(yè)利益的動(dòng)機(jī),不少公司紛紛推出自己的密鑰托管系統(tǒng),常用的有幾十種不同功能的密鑰托管技術(shù)。
94
Ⅱ 密鑰托管系統(tǒng)的組成 密鑰托管加密體制主要由三部分組成:用戶(hù)安全分量、密鑰托管分量和數(shù)據(jù)恢復(fù)分量。三者緊密聯(lián)系,相互制約。圖3.15給出了密鑰托管加密系統(tǒng)示意圖。
95
1、用戶(hù)安全分量(User Security Component,簡(jiǎn)稱(chēng)USC)
96
(2)數(shù)據(jù)恢復(fù)密鑰。作用是保證采用托管加密后,所有加密數(shù)據(jù)均能與數(shù)據(jù)恢復(fù)密鑰相連,以備必要時(shí)數(shù)據(jù)恢復(fù)使用。數(shù)據(jù)恢復(fù)密鑰種類(lèi)可分為:A、數(shù)據(jù)加密密鑰(如會(huì)話(huà)密鑰、網(wǎng)絡(luò)密鑰、文件密鑰等,密鑰由KEC中心分發(fā))。B、用戶(hù)密鑰,用于建立數(shù)據(jù)加密密鑰,可由KEC分發(fā)。C、主密鑰,可由多個(gè)USC共享,直接與KEC相關(guān)。D、產(chǎn)品密鑰,屬于USC專(zhuān)有。所有數(shù)據(jù)恢復(fù)密鑰的托管時(shí)機(jī)可在產(chǎn)品制作或初始化階段,以及用戶(hù)注冊(cè)期間進(jìn)行。 (3)數(shù)據(jù)恢復(fù)業(yè)務(wù)。包括向DRC披露信息、授權(quán)指導(dǎo)業(yè)務(wù),如建立身份證明和獲取接入已加密數(shù)據(jù)的合法授權(quán)證明。提供業(yè)務(wù)選擇方式有:A、披露數(shù)據(jù)恢復(fù)密鑰;B、披露派生密鑰;C、解密密鑰;D、實(shí)現(xiàn)門(mén)限解密等內(nèi)容。這些業(yè)務(wù)可用人工后自動(dòng)地將數(shù)據(jù)傳入或傳出后DRC。 (4)托管密鑰保護(hù)。用來(lái)防止密鑰泄露或丟失,集成各種技術(shù)保護(hù)、操作保護(hù)和法律保護(hù)等。 3、數(shù)據(jù)恢復(fù)分量(Date Recovery Component,簡(jiǎn)稱(chēng)DRC) DRC主要由專(zhuān)用算法、協(xié)議和必要的設(shè)備組成,能夠從密文和KEC所提供的,包含于DRC的信息中恢復(fù)出明文。DRC的功能主要由:適時(shí)解密,能實(shí)時(shí)解密截獲信息;后處理,可解密以前截獲和記錄的通信;透明性,非各方知識(shí)參與也可解密;獨(dú)立性,一旦獲得密鑰,利用自己的資源就能解密。但是,只有在執(zhí)行規(guī)定的合法數(shù)據(jù)恢復(fù)時(shí)才能使用DRC。
97
3.4 網(wǎng)絡(luò)加密技術(shù) 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)安全也就成為當(dāng)今網(wǎng)絡(luò)社會(huì)的焦點(diǎn)中的焦點(diǎn),幾乎沒(méi)有人不在談?wù)摼W(wǎng)絡(luò)上的安全問(wèn)題。病毒、黑客程序、郵件炸彈、遠(yuǎn)程偵聽(tīng)等這一切都無(wú)不讓人膽戰(zhàn)心驚,病毒、黑客的猖獗使身處今日網(wǎng)絡(luò)社會(huì)的人們感覺(jué)到談網(wǎng)色變,無(wú)所適從。 那么,怎樣解決這一切一切的安全問(wèn)題呢?或許加密是我們唯一的選擇。
98
網(wǎng)絡(luò)加密的重要性 網(wǎng)絡(luò)是由各網(wǎng)絡(luò)節(jié)點(diǎn)、它們之間的連接以及其上的網(wǎng)絡(luò)應(yīng)用服務(wù)等組成的,任何一個(gè)環(huán)節(jié)的疏漏都可能威脅到網(wǎng)絡(luò)的安全。如目前應(yīng)用得最廣泛的TCP/IP協(xié)議,其IP層協(xié)議就有許多安全缺陷:IP地址可以利用軟件進(jìn)行設(shè)置,這就造成了地址假冒和地址欺騙兩類(lèi)安全隱患;IP協(xié)議支持源路由方式,即源點(diǎn)可以指定信息包傳送到目的節(jié)點(diǎn)的中間路由,這就提供了源路由攻擊的條件。 當(dāng)我們?cè)诨ヂ?lián)網(wǎng)上進(jìn)行文件傳輸、電子郵件商務(wù)往來(lái)時(shí),黑客就利用網(wǎng)絡(luò)的漏洞和缺陷對(duì)我們的活動(dòng)進(jìn)行有目的的攻擊。有的出于政治原因,為了獲取國(guó)家機(jī)密、軍事情報(bào)等;有的為了取得商業(yè)競(jìng)爭(zhēng)的勝利,盜竊甚至破壞他人的客戶(hù)資料,獲取對(duì)方產(chǎn)品開(kāi)發(fā)信息、公司銷(xiāo)售策略等;更多的還是出于金錢(qián)利益的誘惑,盜取他人網(wǎng)銀賬號(hào)密碼、網(wǎng)絡(luò)游戲虛擬裝備等。無(wú)論什么目的,都會(huì)我們帶來(lái)巨大的損失。因此為了能在安全的基礎(chǔ)上大開(kāi)通向世界之門(mén),我們只好選擇了網(wǎng)絡(luò)加密技術(shù)。 網(wǎng)絡(luò)加密技術(shù)的目的就是保護(hù)網(wǎng)內(nèi)的數(shù)據(jù)、文件、口令和控制信息,保護(hù)網(wǎng)上傳輸?shù)臄?shù)據(jù),防止有用或私有化信息在網(wǎng)絡(luò)上被攔截和竊取,或者即使被攻擊者獲得也是不可讀的。在某種意義上來(lái)說(shuō),加密也成為當(dāng)今網(wǎng)絡(luò)社會(huì)進(jìn)行文件或郵件安全傳輸?shù)臅r(shí)代象征。
99
網(wǎng)絡(luò)加密的形式 密碼技術(shù)是網(wǎng)絡(luò)安全最有效的技術(shù)之一。一個(gè)加密網(wǎng)絡(luò),不但可以防止非授權(quán)用戶(hù)的搭線竊聽(tīng)和入網(wǎng),而且也是對(duì)付惡意軟件的有效方法之一。 一般的數(shù)據(jù)加密可以在通信的三個(gè)層次來(lái)實(shí)現(xiàn): Ⅰ 鏈路加密 Ⅱ 節(jié)點(diǎn)加密 Ⅲ 端到端加密
100
Ⅰ 鏈路加密 這是一種面向物理層的數(shù)據(jù)加密方式。對(duì)于在兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)間的某一次通信鏈路,鏈路加密能為網(wǎng)上傳輸?shù)臄?shù)據(jù)提供安全保證。對(duì)于鏈路加密(又稱(chēng)在線加密),所有消息在被傳輸之前進(jìn)行加密,在每一個(gè)節(jié)點(diǎn)對(duì)接收到的消息進(jìn)行解密,然后先使用下一個(gè)鏈路的密鑰對(duì)消息進(jìn)行加密,再進(jìn)行傳輸。在到達(dá)目的地之前,一條消息可能要經(jīng)過(guò)許多通信鏈路的傳輸。 由于在每一個(gè)中間傳輸節(jié)點(diǎn)消息均被解密后重新進(jìn)行加密,因此,包括路由信息在內(nèi)的鏈路上的所有數(shù)據(jù)均以密文形式出現(xiàn)。這樣,鏈路加密就掩蓋了被傳輸消息的源點(diǎn)與終點(diǎn)。由于填充技術(shù)的使用以及填充字符在不需要傳輸數(shù)據(jù)的情況下就可以進(jìn)行加密,這使得消息的頻率和長(zhǎng)度特性得以掩蓋,從而可以防止對(duì)通信業(yè)務(wù)進(jìn)行分析。 盡管鏈路加密在計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中使用得相當(dāng)普遍,但它并非沒(méi)有問(wèn)題。鏈路加密通常用在點(diǎn)對(duì)點(diǎn)的同步或異步線路上,它要求先對(duì)在鏈路兩端的加密設(shè)備進(jìn)行同步,然后使用一種鏈模式對(duì)鏈路上傳輸?shù)臄?shù)據(jù)進(jìn)行加密。這就給網(wǎng)絡(luò)的性能和可管理性帶來(lái)了副作用。
101
在線路/信號(hào)經(jīng)常不通的海外或衛(wèi)星網(wǎng)絡(luò)中,鏈路上的加密設(shè)備需要頻繁地進(jìn)行同步,帶來(lái)的后果是數(shù)據(jù)丟失或重傳。另一方面,即使僅一小部分?jǐn)?shù)據(jù)需要進(jìn)行加密,也會(huì)使得所有傳輸數(shù)據(jù)被加密。
102
Ⅱ 節(jié)點(diǎn)加密 節(jié)點(diǎn)加密在操作方式上與鏈路加密是類(lèi)似的:兩者均在通信鏈路上為傳輸?shù)南⑻峁┌踩?;都在中間節(jié)點(diǎn)先對(duì)消息進(jìn)行解密,然后進(jìn)行加密。因?yàn)橐獙?duì)所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,所以加密過(guò)程對(duì)用戶(hù)是透明的。 然而,與鏈路加密不同,節(jié)點(diǎn)加密不允許消息在網(wǎng)絡(luò)節(jié)點(diǎn)以明文形式存在,它先把收到的消息進(jìn)行解密,然后采用另一個(gè)不同的密鑰進(jìn)行加密,這一過(guò)程是在節(jié)點(diǎn)上的一個(gè)安全模塊中進(jìn)行。因此節(jié)點(diǎn)加密能給網(wǎng)絡(luò)數(shù)據(jù)提供較高的安全性。 節(jié)點(diǎn)加密要求報(bào)頭和路由信息以明文形式傳輸,以便中間節(jié)點(diǎn)能得到如何處理消息的信息。因此這種方法對(duì)于防止攻擊者分析通信業(yè)務(wù)是脆弱的。
103
Ⅲ 端到端加密 端到端加密(又稱(chēng)脫線加密或包加密),屬高層加密方式。源端在發(fā)送源消息之前將消息加密成密文,并以密文消息的形式經(jīng)通信網(wǎng)傳送到目的端。各端點(diǎn)采用相同的密碼算法和密鑰,對(duì)傳遞通路上的各個(gè)中間節(jié)點(diǎn),其數(shù)據(jù)是保密的。也就是說(shuō),加密方式不依賴(lài)于中間節(jié)點(diǎn),中間節(jié)點(diǎn)沒(méi)有義務(wù)對(duì)其他層的協(xié)議信息進(jìn)行解密,只有收端用戶(hù)正確解密才能恢復(fù)明文。 采用端到端加密,數(shù)據(jù)在從源點(diǎn)到終點(diǎn)的傳輸過(guò)程中始終以密文形式存在,在整個(gè)傳輸過(guò)程中均受到保護(hù),所以即使有節(jié)點(diǎn)被損壞也不會(huì)使消息泄露。端到端加密系統(tǒng)的價(jià)格便宜些,并且與鏈路加密和節(jié)點(diǎn)加密相比更可靠,更容易設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)。端到端加密還避免了其它加密系統(tǒng)所固有的同步問(wèn)題,因?yàn)槊總€(gè)報(bào)文包均是獨(dú)立被加密的,所以一個(gè)報(bào)文包所發(fā)生的傳輸錯(cuò)誤不會(huì)影響后續(xù)的報(bào)文包。此外,從用戶(hù)對(duì)安全需求的直覺(jué)上講,端到端加密更自然些。單個(gè)用戶(hù)可能會(huì)選用這種加密方法,以便不影響網(wǎng)絡(luò)上的其他用戶(hù),此方法只需要源和目的節(jié)點(diǎn)是保密的即可。 端到端加密系統(tǒng)通常不允許對(duì)消息的目的地址進(jìn)行加密,這是因?yàn)槊恳粋€(gè)消息所經(jīng)過(guò)的節(jié)點(diǎn)都要用此地址來(lái)確定如何傳輸消息。由于這種加密方法不能掩蓋被傳輸消息的源點(diǎn)與終點(diǎn),因此它對(duì)于防止攻擊者分析通信業(yè)務(wù)是脆弱的。
104
要取得更大的安全程度,我們既需要鏈路加密也需要端到端加密,如圖3.16所示:
105
表3.11總結(jié)了鏈路加密與端端加密策略的關(guān)鍵特性。
106
知識(shí)歸納 信息加密技術(shù)是一門(mén)既古老又年輕的科學(xué)。當(dāng)代社會(huì)是信息化社會(huì),如果說(shuō)信息得不到應(yīng)有的保密,那么政府、公司和個(gè)人的開(kāi)發(fā)活動(dòng)都將陷入混亂,整個(gè)社會(huì)將變得不可收拾。因此,信息的安全與保密問(wèn)題成了人人都關(guān)心的問(wèn)題。 現(xiàn)代密碼學(xué)涉及數(shù)學(xué)(如數(shù)論、近世代數(shù)、復(fù)雜性理論、組合算法、概率算法及代數(shù)幾何等)、物理學(xué)(如量子力學(xué)、現(xiàn)代光學(xué)、混沌動(dòng)力學(xué)等)、信息論、計(jì)算機(jī)科學(xué)等學(xué)科,內(nèi)容十分豐富。本章只簡(jiǎn)單介紹了密碼學(xué)的基礎(chǔ)知識(shí),目的是通過(guò)我的介紹,給真正對(duì)密碼技術(shù)感興趣的讀者一個(gè)引路而已。
107
習(xí)題與思考題 3.1 比較單鑰密碼體制與雙鑰,試述它們的本質(zhì)區(qū)別,以及各自的優(yōu)缺點(diǎn)。
108
實(shí)訓(xùn)指南 實(shí)訓(xùn)一 制作密碼卡片 實(shí)訓(xùn)二 密碼推斷 實(shí)訓(xùn)三 DES加、解密 實(shí)訓(xùn)四 RSA保密通信
109
實(shí)訓(xùn)一 制作密碼卡片 實(shí)訓(xùn)目的 通過(guò)制作簡(jiǎn)單的6×6密碼卡片,使學(xué)生深刻理解易位密碼這種傳統(tǒng)技術(shù)。 實(shí)訓(xùn)環(huán)境
110
實(shí)訓(xùn)二 密碼推斷 實(shí)訓(xùn)目的 通過(guò)練習(xí),使學(xué)生深刻理解傳統(tǒng)密碼技術(shù),并能根據(jù)自己的需要選擇合適的算法 實(shí)訓(xùn)環(huán)境 課堂練習(xí)即可,準(zhǔn)備空白紙張若干
111
實(shí)訓(xùn)三 DES加、解密 實(shí)訓(xùn)目的 通過(guò)對(duì)DES密碼算法的練習(xí),理解DES工作的原理 實(shí)訓(xùn)環(huán)境 課堂練習(xí)即可,準(zhǔn)備空白紙張若干 實(shí)訓(xùn)內(nèi)容
112
實(shí)訓(xùn)四 RSA保密通信 實(shí)訓(xùn)目的 通過(guò)對(duì)RSA密碼算法的練習(xí),理解RSA工作的原理 實(shí)訓(xùn)環(huán)境 課堂練習(xí)即可,準(zhǔn)備空白紙張若干 實(shí)訓(xùn)內(nèi)容
113
參考文獻(xiàn) 《密碼學(xué)與計(jì)算機(jī)網(wǎng)絡(luò)安全》 卿斯?jié)h 清華大學(xué)出版社 《對(duì)稱(chēng)密碼學(xué)》 胡予濮等 機(jī)械工業(yè)出版社 |
|
|