日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

3.1 信息加密技術(shù)概述 3.2 密碼技術(shù) 3.3 密鑰管理 3.4 網(wǎng)絡(luò)加密技術(shù) 習(xí)題與思考題 參考文獻(xiàn) 實訓(xùn)指南

 123山不轉(zhuǎn)水轉(zhuǎn) 2019-10-16

Presentation on theme: "3.1 信息加密技術(shù)概述 3.2 密碼技術(shù) 3.3 密鑰管理 3.4 網(wǎng)絡(luò)加密技術(shù) 習(xí)題與思考題 參考文獻(xiàn) 實訓(xùn)指南"— Presentation transcript:

1 3.1 信息加密技術(shù)概述 3.2 密碼技術(shù) 3.3 密鑰管理 3.4 網(wǎng)絡(luò)加密技術(shù) 習(xí)題與思考題 參考文獻(xiàn) 實訓(xùn)指南
第三章 信息加密技術(shù) 3.1 信息加密技術(shù)概述 3.2 密碼技術(shù) 3.3 密鑰管理 3.4 網(wǎng)絡(luò)加密技術(shù) 習(xí)題與思考題 參考文獻(xiàn) 實訓(xùn)指南

2 教學(xué)目的和要求▼ 通過本章的學(xué)習(xí),使學(xué)生掌握基本的信息加密技術(shù),并會實際應(yīng)用。要求了解信息加密技術(shù)的概念;掌握密碼學(xué)一些簡單技術(shù);了解DES、RSA密碼體制;了解密鑰的管理;了解基本的網(wǎng)絡(luò)加密技術(shù)。

3 關(guān)鍵詞匯▼ 密碼學(xué)(Cryptology) 明文(plaintext,通常記作P;也記作M,message)
密文(ciphertext,通常記作C) 密碼算法(Cryptography Algorithm) 加密(Encrtption,通常記作E) 解密(Decryption,通常記作D) 密鑰(key,通常記作K) 對稱密碼體制(symmetric system) 非對稱密碼體制(asymmetric system) 隱寫術(shù)(steganography) 替代(substitution) 易位(transposition) DES(Data Encryption Standard) RSA 廣義數(shù)域篩GNFS(Generalized Number Field Sieve) 信息-摘要算法MD5(Message-Digest Algorithm 5) 消息認(rèn)證代碼MAC(Message Authentication Code) 托管加密標(biāo)準(zhǔn)EES(escorowed encryption standard) 密鑰分配中心KDC(key distribution center) 密碼學(xué)(Cryptology):是結(jié)合數(shù)學(xué)、計算機科學(xué)、電子與通信等諸多學(xué)科于一的交叉學(xué)科,是研究信息系統(tǒng)安全保密的一門科學(xué),包含密碼編碼學(xué)(Cryptography)和密碼分析學(xué)(Cryptanalytics)兩個分支。 明文(plaintext,通常記作P;也記作M,message):兩個用戶之間要傳遞的信息 密文(ciphertext,通常記作C):明文經(jīng)加密算法后形成的信息 密碼算法(Cryptography Algorithm):達(dá)到加密變換與解密變換目的的具體規(guī)則 加密(Encrtption,通常記作E):用某種方法偽裝明文以隱藏它的內(nèi)容的過程稱。 解密(Decryption,通常記作D):把密文轉(zhuǎn)變?yōu)槊魑牡倪^程 密鑰(key,通常記作K):控制明文與密文之間變換的關(guān)鍵,通常是一隨機字符串 對稱密碼體制(symmetric system):就是加密密鑰和解密密鑰相同,或者雖然不相同,但由其中的任意一個可以很容易的推出另一個的一種密碼體制。也稱傳統(tǒng)密碼體制、秘密密鑰體制或單鑰密鑰體制。 非對稱密碼體制(asymmetric system):加密密鑰和解密密鑰不相同,并且從一個很難推出另一個的一種密碼體制。又稱公開密鑰體制。 隱寫術(shù)(steganography):通過隱藏消息的存在來達(dá)到加密信息的目的的一種技術(shù) 替代(substitution):將明文字母表中的每個字符替換為密文字母表中的字符,以達(dá)到加密目的的一種技術(shù)。 易位(transposition):也稱換位密碼、排列組合密碼,是不需對明文字母作任何變換,只需對明文字母的順序按密鑰的規(guī)律相應(yīng)的排列組合后輸出,然后形成密文的一種技術(shù)。 DES(Data Encryption Standard):最著名的私鑰密碼體制 RSA:一種迄今為止理論上最為成熟完善的公鑰密碼體制 GNFS(Generalized Number Field Sieve):廣義數(shù)域篩,一種因子分解算法,多用來攻擊RSA。 MD5(Message-Digest Algorithm 5):信息-摘要算法,對一段信息產(chǎn)生信息摘要,以防止被篡改。 MAC(Message Authentication Code):消息認(rèn)證代碼,是一種使用密鑰的單向函數(shù),可以用它們在系統(tǒng)上或用戶之間認(rèn)證文件或消息。 EES(escorowed encryption standard):一種托管加密標(biāo)準(zhǔn),又稱Clipper建議 KDC(key distribution center):密鑰分配中心

4 前言 計算機網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,大大改變了人們的生活面貌,促進(jìn)了社會的發(fā)展??墒腔ヂ?lián)網(wǎng)是一個面向大眾的開放系統(tǒng),對于信息的保密和系統(tǒng)的安全性考慮得并不完備,由此引起的網(wǎng)絡(luò)安全問題日益嚴(yán)重。如何保護(hù)計算機信息的的內(nèi)容,也即信息內(nèi)容的保密問題顯得越來越重要。 加密技術(shù)是網(wǎng)絡(luò)信息安全主動的、開放型的防范手段,對于敏感數(shù)據(jù)應(yīng)采用加密處理,并且在數(shù)據(jù)傳輸時采用加密傳輸。本章就將著重介紹信息加密技術(shù)的一般方法,內(nèi)容包括:密碼技術(shù)基礎(chǔ)知識;密鑰管理在數(shù)據(jù)保密中的重要性;網(wǎng)絡(luò)加密的方式等。

5 3.1 信息加密技術(shù)概述 信息加密技術(shù)是利用數(shù)學(xué)或物理手段,對電子信息在傳輸過程中和存儲體內(nèi)進(jìn)行保護(hù),以防止泄漏的技術(shù)。保密通信、計算機密鑰、防復(fù)制軟盤等都屬于信息加密技術(shù)。通信過程中的加密主要是采用密碼,在數(shù)字通信中可利用計算機加密法,改變負(fù)載信息的數(shù)碼結(jié)構(gòu)。計算機信息保護(hù)則以軟件加密為主。目前世界上最流行的幾種加密體制和加密算法有:AES算法和RSA算法等。為防止破密,加密軟件還常采用硬件加密和加密軟盤。一些軟件商品常帶有一種小的硬卡,這就是硬件加密措施。在軟盤上用激光穿孔,使軟件的存儲區(qū)有不為人所知的局部存壞,就可以防止非法復(fù)制。這樣的加密軟盤可以為不掌握加密技術(shù)的人員使用,以保護(hù)軟件。由于計算機軟件的非法復(fù)制,解密及盜版問題日益嚴(yán)重,甚至引發(fā)國際爭端,因此對信息加密技術(shù)和加密手段的研究與開發(fā),受到各國計算機界的重視,發(fā)展日新月異。

6 信息加密技術(shù)是應(yīng)用最早、也是一般用戶接觸最多的安全技術(shù)領(lǐng)域,從最初的保密通信發(fā)展到目前的網(wǎng)絡(luò)信息加密,一直伴隨著信息技術(shù)的發(fā)展而發(fā)展并始終受到重視。在基于信息論和近代數(shù)學(xué)的現(xiàn)代密碼學(xué)成立之后,加密技術(shù)已經(jīng)不再依賴于對加密算法本身的保密,而是通過在統(tǒng)計學(xué)意義上提高破解的成本來提供高的安全性。近年來通過與其他領(lǐng)域的交叉,產(chǎn)生了量子密碼、基于DNA的密碼和數(shù)字隱寫等分支領(lǐng)域,其安全性能和潛在的應(yīng)用領(lǐng)域均有很大的突破。相信加密技術(shù)仍將在信息安全領(lǐng)域內(nèi)扮演十分重要的角色。 現(xiàn)代的電腦加密技術(shù)就是適應(yīng)了網(wǎng)絡(luò)安全的需要而應(yīng)運產(chǎn)生的,它為我們進(jìn)行一般的電子商務(wù)活動提供了安全保障,如在網(wǎng)絡(luò)中進(jìn)行文件傳輸、電子郵件往來和進(jìn)行合同文本的簽署等。其實加密技術(shù)也不是什么新生事物,只不過應(yīng)用在當(dāng)今電子商務(wù)、電腦網(wǎng)絡(luò)中還是近幾年的歷史。下面我們就詳細(xì)介紹一下加密技術(shù)的方方面面,希望能為那些對加密技術(shù)還一知半解的朋友提供一個詳細(xì)了解的機會!

7 3.2 密碼技術(shù) 一提到密碼學(xué),可能絕大多數(shù)的讀者腦海里會浮現(xiàn)諸如007、布律蒂斯、川島芳子等歷史上著名的間諜人物,會想到暗殺、突襲等軍事活動。是的,對于我們而言,密碼始終處于一種未知的黑暗之中,常常與軍事、外交、情報等工作聯(lián)系在一起,讓人在感到神秘之余,又有幾分畏懼。 但是,在如今這個電子化、數(shù)字化幾乎已經(jīng)波及社會生活的所有方面的時代,密碼已經(jīng)成為公民正常生活、學(xué)習(xí)不可缺少的部分。銀行賬號、 密碼、網(wǎng)絡(luò)游戲賬號、電子購物等,哪樣都離不開密碼。此外,許多傳統(tǒng)上基于紙面的,常常需要簽名蓋章的重要憑證,諸如紙幣、存單、支票、股票、合同、租約、法律文書、身份證件、學(xué)歷證書等等,也已陸續(xù)轉(zhuǎn)化或增加為數(shù)字電子媒體的形式。 那么,密碼學(xué)是怎樣逐漸揭去神秘的面紗,走進(jìn)公眾的日常生活當(dāng)中的呢?主要的推動因素是社會公眾對于個人信息秘密性與真實性的需求。密碼學(xué)提供的只是技術(shù)保障作用。它不僅具有信息加密功能,而且具有數(shù)字簽名、身份驗證、秘密分存、系統(tǒng)安全等功能,可以充分保證信息的機密性、完整性和準(zhǔn)確性,防止信息被篡改、偽造或假冒。

8 密碼學(xué)基礎(chǔ)知識 密碼學(xué)基本概念 密碼學(xué)(Cryptology)是結(jié)合數(shù)學(xué)、計算機科學(xué)、電子與通信等諸多學(xué)科于一的交叉學(xué)科,是研究信息系統(tǒng)安全保密的一門科學(xué),包括密碼編碼學(xué)(Cryptography)和密碼分析學(xué)(Cryptanalytics)兩個分支。密碼編碼學(xué)主要研究對信息進(jìn)行編碼,實現(xiàn)對信息的隱蔽;而密碼分析學(xué)則相反,主要研究加密消息的破譯或消息的偽造。這兩者天生就相互對立,但是正是這種對立促使密碼學(xué)不斷的發(fā)展。

9 明文 密文 密鑰 加密算法 解密算法 圖3.1 加密、解密全過程 一個完整的密碼系統(tǒng)至少由明文、密文、密碼方案和密鑰四個部分組成。
(1)、信息的原始形式稱為明文(plaintext,通常記作P;也記作M,message)。 (2)、經(jīng)過變換加密的明文稱為密文(ciphertext,通常記作C)。 (3)、密碼方案是通過密碼算法(Cryptography Algorithm)達(dá)到加密變換與解密變換目的的具體規(guī)則。用某種方法偽裝明文以隱藏它的內(nèi)容的過程稱為加密(Encrtption,通常記作E),而把密文轉(zhuǎn)變?yōu)槊魑牡倪^程稱為解密(Decryption,通常記作D)。 (4)、密鑰(key,通常記作K)是唯一能控制明文與密文之間變換的關(guān)鍵。密鑰是由使用密碼體制的用戶隨機選取的,它通常是一隨機字符串。 圖3.1描述了明文P經(jīng)過加密后變成密文C,然后再由密文C經(jīng)過解密后得到明文P的過程。 明文 密文 密鑰 加密算法 解密算法 圖3.1 加密、解密全過程

10 密碼體制的分類 密碼體制的分類方法有很多,最常見的是分成以下兩種: 對稱密碼體制(symmetric system):就是加密密鑰和解密密鑰相同,或者雖然不相同,但由其中的任意一個可以很容易的推出另一個。又稱傳統(tǒng)密碼體制、秘密密鑰體制或單鑰密鑰體制。如本書后面將介紹的DES就是采用對稱密碼體制的典型例子。 非對稱密碼體制(asymmetric system):加密密鑰和解密密鑰不相同,并且從一個很難推出另一個。又稱公開密鑰體制。公開密鑰體制用一個密鑰進(jìn)行加密,而用另一個進(jìn)行解密。其中的加密密鑰可以公開,又稱公開密鑰(public key),簡稱公鑰;解密密鑰必須保密,又稱私人密鑰(private key),簡稱私鑰。如本書后面將介紹的RSA就是采用非對稱密碼體制的典型。

11 3.2.2 傳統(tǒng)密碼技術(shù) 隱寫術(shù)(steganography)
傳統(tǒng)密碼技術(shù) 隱寫術(shù)(steganography) 隱寫術(shù)是通過隱藏消息的存在來達(dá)到加密信息的目的。隱寫術(shù)一詞來源于希臘語,其對應(yīng)的英文意思是“Covered writing”。 它的應(yīng)用實例可以追溯到非常久遠(yuǎn)的年代。古希臘的斯巴達(dá)人曾將軍事情報刻在普通的木板上,用石蠟填平,收信的一方只要用火烤熱木板,融化石蠟后,就可以看到密信。被人們譽為歷史學(xué)之父的古希臘歷史學(xué)家希羅多德(Herodotus, 486—425),在其著作中講述了這樣一則故事:一個名叫Histaieus的人籌劃著與他的朋友合伙發(fā)起叛亂,里應(yīng)外合,以便推翻波斯人的統(tǒng)治。他找來一位忠誠的奴隸,剃光其頭發(fā)并把消息文刺在頭皮上,等到頭發(fā)又長起來了,把這人派出去送“信”,最后叛亂成功了。

12 隱寫術(shù)分為兩種,技術(shù)隱寫術(shù)和語義隱寫術(shù)。
技術(shù)隱寫術(shù)是將秘密傳遞的信息記錄下來,隱藏在特定媒介中,然后再傳送出去的一種技術(shù)。17世紀(jì),英國的Wilkins(1614—1672)是資料記載中最早使用隱寫墨水進(jìn)行秘密通信的人。早期的隱寫墨水是由易于獲得的有機物(例如牛奶、果汁或尿)制成,加熱后顏色就會變暗從而顯現(xiàn)出來。后來隨著化學(xué)工業(yè)的發(fā)展,在第一次世界大戰(zhàn)中人們制造出了復(fù)雜的化合物做成隱寫墨水和顯影劑,使得隱蔽性更強。 語義隱寫術(shù)則是將記錄這個行為本身隱藏起來,信息由隱藏的“寫”語言和語言形式所組成,一般依賴于信息編碼。十六七世紀(jì)涌現(xiàn)了許多關(guān)于語義隱寫術(shù)的著作,斯科特提出的擴(kuò)展“AveMaria”碼是一種典型的語義隱寫方法。語義隱寫主要提供兩種類型的方法:符號碼和公開代碼。 符號碼是以可見的方式,如手寫體字或圖形,隱藏秘密的書寫。在書或報紙上標(biāo)記所選擇的字母,比如用點或短劃線。此方法易于實現(xiàn),但在公開信道傳送偽裝的消息時,需要雙方事前的約定,不利于隱藏信息的發(fā)布。 公開代碼的第二種類型就是利用虛碼和漏格進(jìn)行隱藏。隱藏消息的規(guī)則比較常見的有:“某個特定字符后的第幾個字符”,比如每行的第一個字符,如中國古代的“藏頭詩”等。漏格方法可以追溯到卡達(dá)諾(Cardano,1550年)時代,這是一種容易掌握的方法,但不足之處是雙方需要相同的漏格,特別是戰(zhàn)場上的士兵,使用時不太方便。

13 替代(substitution) 替代密碼就是將明文字母表中的每個字符替換為密文字母表中的字符。這里對應(yīng)密文字母可能是一個,也可能是多個。接收者對密文進(jìn)行逆向替換即可得到明文。代替密碼有四種表現(xiàn)形式: (1)單表代替 (2)多名碼代替 (3)多音碼代替 (4)多表代替

14 (1)單表代替 就是明文的一個字符用相應(yīng)的一個密文字符代替,也叫循環(huán)移位密碼。
最古老的代表是凱撒密碼(Caesar cipher)。在這種方法中,a換成D,b換成E,c換成F……,z換成C。其字母映射如下: 于是caesar就變成了FDHVDU。

15 由愷撒密碼我們可以推導(dǎo)出單表代替密碼的映射關(guān)系可以表示為如下函數(shù):
其中:p表示明文字母 n為字符集中字母的個數(shù) k為密鑰

16 如英文26個字母的映射表如下: 例如在愷撒密碼中,k=3 對于明文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,那么新的字母表映射如下:
這時對于明文P=caesar,有 F(c)=(2+3) mod 26=5=R F(a)=(0+3) mod 26=3=H F(e)=(4+3) mod 26=7=B F(s)=(18+3) mod 26=21=V F(a)=(0+3) mod 26=3=H F(r)=(17+3) mod 26=20=U 因此密文C=RHBVHU

18 在單表代替下字母的頻度、重復(fù)字母模式、字母結(jié)合方式等統(tǒng)計特性除了字母名稱改變以外,都未發(fā)生變化,依靠這些不變的統(tǒng)計特性就能破譯。
單表替代是所有加密中最簡單的方法,缺點很明顯: 在單表代替下字母的頻度、重復(fù)字母模式、字母結(jié)合方式等統(tǒng)計特性除了字母名稱改變以外,都未發(fā)生變化,依靠這些不變的統(tǒng)計特性就能破譯。

19 (2)多名碼代替 就是將明文字母表中的字符映射為密文字母表中的多個字符。多名碼簡單代替早在1401年就由DuchyMantua公司使用。在英文中,元音字母出現(xiàn)頻率最高,降低對應(yīng)密文字母出現(xiàn)頻率的一種方法就是使用多名碼。

20 如下面的一個映射: 若明文P=bee 則密文C可以是ILL或ILM或ILN或IMM或IMN或INN

21 (3)多音碼代替 就是將多個明文字符代替為一個密文字符。最古老的這種多字母加密始見于1563年由波他的《密寫評價》(De furtiois literarum notis)一書。

22 如下面的一個映射: 若明文P=behg 則密文C=JMNN

23 (4)多表代替 即由多個簡單代替組成,也就是使用了兩個或兩個以上的代替表。比如使用有5個簡單代替表的代替密碼,明文的第一個字母用第一個代替表,第二個字母用第二個表,第三個字母用第三個表,以此類推,循環(huán)使用這五張代替表。

24 著名的維吉尼亞(vigenere)密碼就是多表代替密碼,它以字母表移位為基礎(chǔ)把26個英文字母進(jìn)行循環(huán)移位,排列在一起,形成26×26的方陣,如表3.1所示。

25 實際使用時,選擇一個詞組作為密鑰。加密過程就是以明文字母選擇列,密鑰字母選擇行,兩者的交點就是加密生成的密文字母。 如:選取K=sub,P= vigenere
得到C=NCHWHFJY 解密時相反,以密鑰字母選擇行,從中找到密文字母,密文字母所在列的列名即為明文字母。

26 易位(transposition) 易位密碼,也稱換位密碼、排列組合密碼,它最大的特點是不需對明文字母作任何變換,只需對明文字母的順序按密鑰的規(guī)律相應(yīng)的排列組合后輸出,然后形成密文。明文出現(xiàn)的字母也在密文中出現(xiàn),只是位置不同,并不隱藏它們。 此種加密方法保密的程度較高,但其最大的缺點是密文呈現(xiàn)字母自然出現(xiàn)頻率,破譯者只要稍加統(tǒng)計即可識別屬此類加密方法,然后采取先假定密鈅長度的方法,對密文進(jìn)行排列組合,借助計算機的高速運算能力及常用字母的組合規(guī)律,也可以進(jìn)行不同程度破譯。

27 (1)列易位算法 首先選取一個不含重復(fù)字母的單詞為密鑰,寫出密鑰在字母表中的排列順序,明文從第一列開始按列生成密文。
如明文P=“易位密碼也稱換位或排列組合密碼”,選取密鑰為“trans”。 加密過程為: 產(chǎn)生密文C=“合換易碼排密位位也列碼或密稱組”

28 其解密過程是將密文C=“合換易碼排密位位也列碼或密稱組”按密鑰長度為列寫出:
根據(jù)密鑰及其在字母表中的次序 易位相應(yīng)的列產(chǎn)生明文P=“易位密碼也稱換位或排列組合密碼”。

29 (2)矩陣換位法 把明文中的字母按給定的順序排列在一矩陣中,然后用另一種順序選出矩陣的字母來產(chǎn)生密文。
如將明文P=“易位密碼,也稱換位密碼。”按行排列在3×4矩陣中,如下所示:

30 給定一個置換 現(xiàn)在根據(jù)給定的置換,按第3列、第1列、第4列、第2列的次序排列如下: 得到密文C=“密易碼位稱,換也碼位。密”

31 在這個加密方案中,密鑰就是矩陣的行數(shù)m和列數(shù)n,即m×n=3×4,以及給定的置換矩陣
也就是k=(m×n,f)

32 其解密過程是將密文C=“密易碼位稱,換也碼位。密”根據(jù)3×4矩陣,按行、按列的順序排列如下:
再根據(jù)給定置換產(chǎn)生新的矩陣: 恢復(fù)明文P=“易位密碼,也稱換位密碼?!?/span>

33 DES數(shù)據(jù)加密標(biāo)準(zhǔn) 數(shù)據(jù)加密標(biāo)準(zhǔn)DES(Date Encryption Standard)是迄今為止世界上最為廣泛使用和流行的一種分組密碼算法。它由IBM公司研制,于1977年被美國標(biāo)準(zhǔn)局NBS(National Bureau Of Standards,現(xiàn)在的美國標(biāo)準(zhǔn)技術(shù)協(xié)會,NIST)作為非機密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)。DES是一種世界公認(rèn)的較好的加密算法。自它問世20多年來,成為密碼界研究的重點,經(jīng)受住了許多科學(xué)家的研究和破譯,在民用密碼領(lǐng)域得到了廣泛的應(yīng)用,為全球貿(mào)易、金融等非官方部門提供了可靠的通信安全保障。 進(jìn)入20世紀(jì)90年代以來,由于DES密鑰長度不夠,不斷受到諸如差分分析、線性逼近分析等各種攻擊威脅,使其安全性受到動搖。1994年最近一次對DES的評估認(rèn)為它已沒有安全感。于是,美國決定從1998年12月以后將不再使用DES,而使用稱之為AES(Advanced Encryption Standard)的新加密標(biāo)準(zhǔn)。盡管如此,DES對于推動密碼理論的發(fā)展和應(yīng)用畢竟起了重大作用,對于掌握分組密碼的基本理論、設(shè)計思想和實際應(yīng)用仍然有著重要的參考價值。

34 Ⅰ 分組密碼概述 分組密碼(Block cipher),也稱塊密碼,它是將明文消息經(jīng)編碼表示后的數(shù)字(通常是0和1)序列:m0,m1,…,mi,…,劃分為若干固定長度為l的組(或塊)m=(m0,m1,…,ml-1),各組分別在密鑰k=(k0,k1,…,kt-1)(密鑰長為t)的控制下轉(zhuǎn)換成等長度的密文分別輸出c=(c0,c1,…,cn-1)(長為n)。其本質(zhì)仍是一個從明文空間M到密文分組C的映射,該映射由密鑰確定。分組密碼簡化圖示如圖3.2: 其中,明文長度為l,密文長度為n。通常的分組密碼算法取l=n,表明加密和解密的結(jié)構(gòu)一樣,便于簡單的實現(xiàn)。若l>n,則稱為帶數(shù)據(jù)壓縮的分組密碼,易增加密文解密的難度;若l<n,則稱為帶數(shù)據(jù)擴(kuò)展的分組密碼,必然要增加密文存儲和傳輸?shù)拇鷥r。

35 一般情況下,對分組密碼算法有如下的要求:
1、分組長度n足夠大 當(dāng)長度n較小時,分組密碼和類似于古典的代替密碼,仍然保留了明文的統(tǒng)計信息,給攻擊者留下可乘之機;另外;也難以抵抗窮舉搜索的攻擊。 2、密鑰空間足夠大 分組密碼的密鑰所確定的密碼變換只是所有置換中的極一小部分。如果這一部分不夠大,攻擊者可以有效的通過窮舉密鑰,確定所有的置換。 3、密碼變化必須足夠復(fù)雜 目的是使攻擊者除了窮舉法攻擊以外,找不到其他簡潔的數(shù)學(xué)破譯方法。為了便于實現(xiàn)和分析,在實踐中經(jīng)常采取以下兩個方法來達(dá)到這個要求:(1)將大的明文分組分成幾個小段,分別完成各個小段的加密置換,最后進(jìn)行并行操作,達(dá)到使總的分組長度足夠大。這樣的做法有利于對密碼的實際分析和評測,以保證密碼算法的強度。(2)采用乘積密碼掩蓋。乘積密碼就是以某種方式連續(xù)執(zhí)行兩個或多個密碼變換。例如,設(shè)有兩個子密碼變換T1和T2,則先以T1對明文進(jìn)行加密,然后再以T2對所得結(jié)果進(jìn)行加密。其中T1的密文空間與T2的明文空間相同。如果得當(dāng)?shù)脑?,乘積密碼可以有效的掩蓋密碼變化的弱點,構(gòu)成比其中任意一個密碼變換強度更高的密碼系統(tǒng)。

36 Ⅱ DES算法詳述 DES是一種分組密碼,它主要采用替換和移位的方法加密。它用56位密鑰對64位二進(jìn)制數(shù)據(jù)塊進(jìn)行加密,每次加密可對64位的輸入數(shù)據(jù)進(jìn)行16輪編碼,經(jīng)一系列替換和移位后,輸入的64位原始數(shù)據(jù)轉(zhuǎn)換成完全不同的64位輸出數(shù)據(jù)。DES是一個對稱密碼體制,加密與解密使用同一密鑰與同一算法,它所有的保密性均依賴于密鑰。 DES算法大致可以分成四個部分: 初始置換 迭代過程 逆置換 子密鑰生成

37 整個算法的主流程圖如圖3.3 64位數(shù)據(jù)區(qū)組輸入L0,R0 初始換位 (IP) 32位 L0 R0 K1 f L1=R0
R1=L f(R0,K1) K2 L2=R1 R2=L f(R1,K2) Ki L15=R14 R15=L f(R14,K15) K16 L16=R15 R16=L15 f(R15,K16) 逆初始換位IP-1 64位數(shù)據(jù)區(qū)組輸出 圖3.3 DES算法主流程圖 整個算法的主流程圖如圖3.3

38 1、初始置換IP 把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0、R0兩部分,每部分各長32位,按表3.2的置換規(guī)則進(jìn)行換位。
表中數(shù)字的含義是將輸入的第58位換到第一位,第50位換到第2位,……,依此類推,最后一位是原來的第7位。L0、R0則是換位輸出后的兩部分,L0是輸出的左32位,R0是右32位,例:設(shè)置換前的輸入值為D1D2D3……D64,則經(jīng)過初始置換后的結(jié)果為:L0=D58D50…D8;R0=D57D49…D7。

39 2、迭代過程 每個迭代過程實際上包括四個獨立的操作。首先是右半部分由32位擴(kuò)展為48位。然后與密鑰的某一形式相結(jié)合,其結(jié)果被替換為另一結(jié)果,同時其位數(shù)又壓縮到了32位。這32位數(shù)據(jù)經(jīng)過置換再與左半部分相加,結(jié)果產(chǎn)生新的右半部分。 圖3.4為DES一次迭代的運算過程(圖中的虛線框表示f函數(shù),圖中右面一半為子密鑰的產(chǎn)生過程)。

40 DES算法的安全性關(guān)鍵在于非線性函數(shù)f的性質(zhì)。DES算法中,函數(shù)f以長度為32位的比特串作為輸入,產(chǎn)生的中間結(jié)果為48位,并在最終產(chǎn)生長度為32位的比特串作為輸出。把圖3-4中所示的函數(shù)f單獨用圖3.5表示出來。

41 (1)擴(kuò)展置換 從圖3-5中,可以看到函數(shù)f的執(zhí)行過程如下:
函數(shù)f以前一輪迭代的結(jié)果Ri-1作為輸入,首先根據(jù)一個固定的擴(kuò)展函數(shù)E(也稱為E盒)擴(kuò)展成長度為48的比特串,其中有16個比特出現(xiàn)了兩次。 具體來說,擴(kuò)展函數(shù)E是以如下方式對Ri-1中的32個比特進(jìn)行擴(kuò)展、排列的: 擴(kuò)展函數(shù)E對32位明文按4位分組,每個小分組中的4位將全部輸出作為輸出的6位分組(每個小分組被擴(kuò)展函數(shù)E擴(kuò)展為6位的小分組)的中間四位而6位分組的第1位與第6位(位0與位5)分別由相鄰的兩個4位小分組(其中第1個小分組的左側(cè)相鄰分組為最后一個小分組)的最外面兩位擴(kuò)散進(jìn)入到本分組產(chǎn)生。圖3.6以第1個小分組(第1位至第4位)為例,給出了擴(kuò)展函數(shù)E的工作過程。

42 把輸出位和輸入位對應(yīng)關(guān)系列成一個表格(表3
把輸出位和輸入位對應(yīng)關(guān)系列成一個表格(表3.3),它表示了輸出分組中各位在輸入分組中的位置。例如,輸出分組的第4位是原來輸入分組中的第3位,而輸出分組的第30位與第32位都是輸入分組的第21位。 這樣,當(dāng)明文的右半部分32位Ri-1經(jīng)過擴(kuò)展函數(shù)E后,將擴(kuò)展成長度為48位的數(shù)據(jù),它將與長度同為48位的子密鑰進(jìn)行運算。

43 (2)與子密鑰異或 (3)S盒代替 函數(shù)f將擴(kuò)展置換得到48位輸出與子密鑰Ki進(jìn)行異或(按位模2加)。
DES算法共有8個S盒(這樣,每一個分組將對應(yīng)于一個S盒進(jìn)行代替運算:分組1由S盒1操作,分組2由S盒2操作,如此等等),每個S盒各不相同,但所有的S盒都具有6位的輸入,其輸出都為4位。 DES算法的每一個S盒都是一個4行(行0~行3)×16列(列0~列15)的表,表中每一項都是一個4位的數(shù)據(jù)。S盒根據(jù)6位輸入,確定替代數(shù)據(jù)的位置,然后將該位置的4位數(shù)據(jù)作為輸出用以替換輸入的6位數(shù)據(jù)。

44 具體替代方式我們可以描述如下: 將S盒的6位輸入定義為 a1 a2 a3 a4 a5 a6 。將 a1 a6 組成一個2位二進(jìn)制數(shù),對應(yīng)著表中的行號;將 a2 a3 a4 a5 組成一個4位二進(jìn)制數(shù),對應(yīng)著表中的列號;交叉點的數(shù)據(jù)就是該S盒的輸出。 例如:第5個S盒的輸出為110011,第1位和第6位的組合為11(轉(zhuǎn)換為十進(jìn)制值等于3),第2位至第5位的組合為1001(轉(zhuǎn)換為十進(jìn)制值等于9)。那么,它對應(yīng)的就是第5個S盒的第3行、第9列(行、列的記數(shù)均從0開始)。查表可知對應(yīng)的數(shù)值為15(轉(zhuǎn)換為二進(jìn)制值等于1111),于是1111代替了110011,成為S盒的4位輸出。

45 表3.4 給出了全部的8個S盒。 S盒是函數(shù)f的核心所在,同時也是DES算法的關(guān)鍵步驟。除S盒外,DES的其它運算都是線性的,易于分析,而S盒是非線性的,它決定了DES算法的安全性。 48位的比特串(分為8個6位分組)在經(jīng)過8個S盒進(jìn)行代替運算后,得到8個4位的分組,它們重新合在一起形成一個32位的比特串。這個比特串將進(jìn)行下一步運算:P盒置換。

46 (4)P盒置換 P盒置換是將S盒輸出的32位的比特串根據(jù)固定的置換P(也成為P盒)置換到相應(yīng)的位置,它也稱為直接置換(straight permutation)。 表3.5給出了置換P。 表3.5 的含義可以描述如下:在32位的比特串中,第16位置換到第1位,第7位置換到第2位,第4位置換到第31位,…,第25位置換到32位。 P盒置換運算后得到的輸出即為函數(shù)(Ri-1,Ki)的最終結(jié)果。

47 3、逆置換IP-1 經(jīng)過16次迭代運算后。得到L16、R16,將此作為輸入,進(jìn)行逆置換,即得到密文輸出。逆置換正好是初始置的逆運算,例如,第1位經(jīng)過初始置換后,處于第40位,而通過逆置換,又將第40位換回到第1位,其逆置換規(guī)則如表3.6所示:

48 4、密鑰的產(chǎn)生 在DES算法中,每一輪迭代運算都使用一個子密鑰,子密鑰產(chǎn)生的流程圖如圖3.7所示。K是長度為64位的比特串,其中56位是密鑰,8位是奇偶校驗碼,分布在8、16、24、32、40、48、56、64比特位置上,目的是用來檢錯,可在8位組中檢查單個錯誤。實際上,在密鑰編排的計算中只用56位,不包括這8位。

49 子密鑰的產(chǎn)生過程分為: 置換選擇1(pc-1) 循環(huán)左移 置換選擇2(pc-2) 分別產(chǎn)生16個子密鑰

50 (1)置換選擇1(pc-1) 對56位密鑰輸入按表3.7進(jìn)行重新編排。
將前28位作為C,后28位作為D。即C0=k57k49k41…k52k44k36,D0=k63k55k47…k20k12k4

51 (2)循環(huán)左移計算 對16輪的計算模型描述如下:
LSi表示循環(huán)左移一個或兩個位置,它取決于i值變化的次數(shù),當(dāng)i=1、2、9、16時,則左移一個位置,其余左移兩個位置,如表3.8所示。 比如,對應(yīng)不同次數(shù),左移變化情況如下: i=1,C1=c1c2…c27c28,D1=d1d2…d28 i=2,C2=c2c3…c28c1,D2=d2d3…d28d1 i=3,C3=c4c5…c28c1c2c3,D3=d4d5…d28d1d2d3 其他依次類推。

52 (3)選擇置換2(pc-2) 其作用是刪除每次移位后C中第9、18、22、25位和D中第7、9、15、26比特位,其余比特按表3.9置換后送出48位比特,作為第i次迭代的子密鑰ki使用。 以上介紹了DES算法的加密過程。DES算法的解密過程是一樣的,區(qū)別僅僅在于第一次迭代時用子密鑰K15,第二次K14、......,最后一次用K0,算法本身并沒有任何變化,不再詳述。

53 Ⅲ DES安全性分析 DES算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES算法進(jìn)行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。DES算法僅使用最大為64位的標(biāo)準(zhǔn)算術(shù)和邏輯運算,優(yōu)點是運算速度快,密鑰生產(chǎn)容易,適合于在當(dāng)前大多數(shù)計算機上用軟件方法實現(xiàn),同時也適合于在專用芯片上實現(xiàn)。比如現(xiàn)在熱賣的愛國者移動存儲加密王,就是采用DES實時運算法則的硬件加密芯片。 但是DES的密鑰太短(56位),影響了它的保密強度。DES的前身,IBM的Lucifer密碼體制具有128比特的密鑰長度。DES的最初提案也有64比特的密鑰長度,但后來被減少到56比特。IBM聲稱,這個減少的原因是必須在密鑰中包含8位奇偶校驗位,這就意味著64比特的存儲只能包含一個56比特的密鑰。 對于56比特的密鑰長度來說,一共有256種可能的密鑰,也就是大約7.2×1016種密鑰。從表面上看,窮舉式攻擊似乎不現(xiàn)實。如果假定平均有一半的密鑰空間需要搜索,則一臺每微秒完成一次DES加密的機器將要花費1000年的時間才能破譯這個密碼。 然而,每微秒一次加密的假設(shè)過分保守。早在1977年,Diffie和Hellman就設(shè)想有一種技術(shù)可以制造出具有100萬個加密設(shè)備的并行機,其中的每一個設(shè)備都可以在一微秒之內(nèi)完成一次加密,這樣平均搜索時間就減少到10小時。

54 一個對DES的弱點更引人注目的演示是RSA實驗室所發(fā)起的一個破解密鑰的比賽。比賽提供1萬美元的獎金,要求在給定了密文和部分明文的情況下找到DES密鑰,其中明文開始的三個分組包含了24個字符的短語“the unknown messagr is:”。RSA在1997年1月29日發(fā)布競賽。一個獨立顧問Rocke Verser響應(yīng)了這個比賽,他編了一個窮舉式程序并通過internet做了發(fā)布。這個項目受到很多密碼愛好者的響應(yīng),最后發(fā)展到7萬個系統(tǒng)。每個計算機自愿者加入后,項目組就為這臺計算機分配一部分DES密鑰空間供它檢驗。項目從1977年2月18日開始,96天后找到了正確的密鑰,這時大約已經(jīng)搜索了四分之一的可能密鑰。這個比賽顯示了分布式個人計算機在對付艱難的密碼分析問題時的威力。也證實了DES的強度是有限的。 此外,由于DES算法完全公開,其安全性完全依賴于對密鑰的保護(hù),必須有可靠的信道來分發(fā)密鑰。如采用信使遞送密鑰等。因此,它不適合在網(wǎng)絡(luò)環(huán)境下單獨使用。 雖然研制替代DES的新的密碼算法被提上議程,但確定一種新的加密法是否真的安全是極為困難的,何況DES的密碼學(xué)缺點只是密鑰長度相對比較短,所以人們并沒有放棄使用DES,而是想出了一個解決其長度方法,即采用三重DES。這種方法用兩個密鑰對明文進(jìn)行三次加密。假設(shè)兩個密鑰是K1和K2,第一步用密鑰K1進(jìn)行DES加密,第二步用K2對步驟1結(jié)果進(jìn)行DES加密,第三步用步驟2的結(jié)果使用密鑰K1進(jìn)行DES加密。

55 RSA密碼體制 上一節(jié)討論的DES密碼體制是對稱密鑰密碼體制。使用對稱密鑰密碼體制進(jìn)行秘密通信時,任意不同兩個用戶之間都應(yīng)該使用互不相同的密鑰。這樣,如果一個網(wǎng)絡(luò)中有n個用戶需要彼此通信,那么將共需要n(n-1)/2個密鑰(其中,每人需要保管n-1個密鑰),假設(shè)n=1000,則,如此巨大的密鑰量,在密鑰管理、分配、更換等都將是十分繁重的工作。另外,在網(wǎng)絡(luò)大力普及的今天,互不相識的兩個人要進(jìn)行通信,如電子商務(wù)活動需要對身份驗證,電子簽名,不僅要解決保密問題,還必須解決認(rèn)證問題,對于這些新要求,對稱密碼算法是比較難實現(xiàn)的。 1976年,Diffe和Hellman在一篇名叫“New direction in cryptography”(密碼學(xué)的新方向)的論文中提出了雙鑰密碼的新型密碼體制,把加密密鑰和解密密鑰分割開來,而無法由一個推出另一個,使得不僅可以公開密碼算法,而且加密密鑰也可以公開,開創(chuàng)了公開密鑰密碼體制,為密碼學(xué)研究提出了新的方向。

56 Ⅰ 公鑰密碼體制 公開密鑰密碼編碼學(xué)的發(fā)展是整個密碼編碼學(xué)歷史上最大的而且也是唯一真正的革命。從最初一直到現(xiàn)代,幾乎所有密碼編碼系統(tǒng)都建立在基本的替代和置換工具的基礎(chǔ)上。即使是最有名的DES,雖然代表了重要的進(jìn)展,也仍然依賴于替代和置換這樣的基本工具。 公開密鑰密碼編碼學(xué)則與以前的所有方法截然不同。一方面公開密鑰算法基于數(shù)學(xué)函數(shù)而不是替代和置換;更重要的是,公開密鑰密碼編碼學(xué)是非對稱的,它用到兩個不同的密鑰,而對稱的常規(guī)加密則只使用一個密鑰。使用兩個密鑰對于保密通信、密鑰分配和鑒別等領(lǐng)域都有著深遠(yuǎn)的影響。例如。對于網(wǎng)上的大量用戶,可以將加密密鑰用電話簿的方式印出。如果某用戶想與另一用戶進(jìn)行保密通信,只需從公鑰簿上查出對方的加密密鑰,用它對所傳送的信息加密發(fā)出即可。對方收到信息后,用僅為自己所知的解密密鑰將信息脫密,了解報文的內(nèi)容。由此可看出,RSA算法解決了大量網(wǎng)絡(luò)用戶密鑰管理的難題。

57 圖3.8給出了一般公鑰密碼體制原理示意圖。 其中,E(eB,m)表示使用用戶B的公開密鑰eB對明文m進(jìn)行加密,D(dB,c)表示用戶B使用自己保存的秘密密鑰dB對密文c進(jìn)行解密。 公開密鑰密碼的加密變換E(eB,m)與解密變換D(dB,c)應(yīng)滿足下列要求: (1)D(dB,c)是E(eB,m)的逆變換,即對于任意明文m,均有D(dB,c)=D(dB,E(eB,m))=m; (2)在已知加密密鑰eB時,E(eB,m)的計算不難;在已知解密密鑰dB時,D(dB,c)的計算也不難; (3)如果不知道dB,那么即使知道eB、具體的加密與解密算法過程以及密文c,確定明文m的計算也是不可行的。 我們可以這樣來想,例如你有個信箱(物理信箱),開著一個縫隙(公鑰),大家都能往里塞東西,但是一旦塞進(jìn)去,那可不是大家都能取到的,只有擁有信箱鑰匙(私鑰)才能得到。公鑰就這樣,不要擔(dān)心它多難理解。

58 Ⅱ RAS算法詳述 RSA算法是由麻省理工學(xué)院的Ron Rivest,Adi Shamir和Len Adleman于1977年研制并于1978年首次發(fā)表的一種算法,DES是用數(shù)論構(gòu)造的,也是迄今為止理論上最為成熟完善的公鑰密碼體制。 數(shù)學(xué)上的單向陷門函數(shù)的特點是一個方向求值很容易,但其逆向計算卻很困難。許多形式為Y=f(x)的函數(shù),對于給定的自變量x值,很容易計算出函數(shù)Y的值;而由給定的Y值,在很多情況下依照函數(shù)關(guān)系f(x)計算x值十分困難。例如,兩個大素數(shù)p和q相乘得到乘積n比較容易計算,但從它們的乘積n分解為兩個大素數(shù)p和q則十分困難。如果n為足夠大,當(dāng)前的算法不可能在有效的時間內(nèi)實現(xiàn)。 RSA算法正是基于這種理論,為公用網(wǎng)絡(luò)上信息的加密和鑒別提供了一種基本的方法。它通常是先生成一對RSA密鑰,其中之一是保密密鑰,由用戶保存;另一個為公開密鑰,可對外公開,甚至可在網(wǎng)絡(luò)服務(wù)器中注冊。

59 RSA的演算方法是: (1)用戶選擇2個足夠大的保密質(zhì)數(shù)q、p(一般為100位以上十進(jìn)數(shù))。 (2)令n=pq,n是公開的,從n分解出q和p是極其困難的。 n的歐拉函數(shù):Φ(n)=(p-1)(q-1),Φ(n)小于等于n,并與n互質(zhì)。 (3)選擇一個相對大的整數(shù)e作為加密指數(shù),使e與Φ(n)互質(zhì)。 (4)解恒等方程:de≡1 mod Φ(n),求出解密指數(shù)d。 (5)設(shè)m、C分別為要加密的明文和被加密的密文(m、C小于n),則加密運算為:C=E(m)=me mod n,解密運算為:M=D(C)=Cd mod n。 通過以上算法,每個用戶都擁有一組密鑰(e、d、n),其中(e、n)為公開密鑰(public key),可以公開在手冊上,e為加密指數(shù);(d、n)為私人密鑰(private key),是用戶保密的私鑰;p、q消毀。

60 舉例如下: (1)選兩個質(zhì)數(shù):p=47,q=71(為了計算方便,只選取十位數(shù),實際加密時應(yīng)該選取100位以上十進(jìn)數(shù)的質(zhì)數(shù)) (2)計算:n=pq=47×71=3337,Φ(n)=(47-1)×(71-1)=3220 (3)e必須與Φ(n)互質(zhì),選e=79 (4)計算:ed=1 mod Φ(n)=1 mod (3220),得出d=1019,這是因為1019×79=3220×25+1。 然后將e=79、n=3337公布,d=1019保密,p、q消毀即可。 如有一明文m= 加密過程如下: 先將m分割成多塊:m1=688,m2=232,m3=687,m4=966,m5=668,m6=3 將第1塊m1加密后得密文C1=m1e(mod3337)=688×79(mod3337)=1570 依次對各區(qū)塊加密后得密文C= 解密過程如下: 對C1解密得m1 M1=C1d(mod3337)= (mod3337)=688 依次解密得原文M。

61 Ⅲ RSA安全性分析 RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因為沒有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。目前,RSA的一些變種算法已被證明等價于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法。 隨著計算機計算能力的不斷提高,原來被認(rèn)為是不可能分解的大數(shù)已被成功分解。例如,1977年,RSA的三個發(fā)明者在《科學(xué)美國人》Martin Gardner的數(shù)學(xué)游戲?qū)谏嫌×艘粋€密碼并對該刊的讀者提出了破譯該密碼的挑戰(zhàn)。他們懸賞100美元給可以提供明文的人,他們估計要得到正確的結(jié)果至少需要4億億年。可是,1994年4月,一個通過internet進(jìn)行合作的小組僅僅在工作了8個月之后就領(lǐng)到了這筆獎金。這項挑戰(zhàn)使用了一個129個數(shù)字或者大約428比特大小(長度為n)的公開密鑰。 對較大密鑰的攻擊威脅的另一方面還來自因子分解算法的不斷完善。分解算法過去都采用二次篩法,如對RSA-129的分解。而事實上,一個新算法,廣義數(shù)域篩GNFS(Generalized Number Field Sieve)的分解速度更快,該算法在分解RSA-130時所作的計算僅比RSA-129多10%。將來或許還有更好的分解算法。因此在使用RSA算法時對其密鑰的選取要大。估計在未來一段比較長的時期,密鑰長度介于1024比特至2048比特之間的RSA會是安全的。

62 單向散列函數(shù)HASH 前面我們介紹的加密技術(shù),如DES、RSA算法,都是抗擊消息受到被動攻擊(被竊聽、信息量分析等)的一種技術(shù),即對于接收到的消息,我們不清楚它是否泄露、是否完整,只關(guān)心密碼算法及密鑰的強度,以保證在信息有效期內(nèi)即使被攻擊也安全。那么,有沒有這樣一種技術(shù),即不僅可以驗證消息的真實性,還能驗證信息的完整性呢?答案是肯定的,單向散列函數(shù)就可以滿足我們的這種抗擊主動攻擊需求。 HASH函數(shù),又稱雜湊函數(shù),是在信息安全領(lǐng)域有廣泛和重要應(yīng)用的密碼算法,它是一個從明文到密文的不可逆函數(shù),也就是說,只能加密不能還原。單向散列函數(shù)H作用于任意長度的信息M,返回一固定長度的散列值(也稱摘要信息)h=H(M)。

63 好的單向散列函數(shù)必須具有以下特性: 1、計算的單向性:給定M和H,求h=H(M)容易,但反過來給定h和H,求M=H-1(h)在計算上是不可行的。 2、弱碰撞自由:給定M,要尋找另一信息M′,滿足H(M′)=H(M)在計算上不可行。 3、強碰撞自由:要尋找不同的信息M和M′,滿足H(M′)=H(M)在計算上不可行。 HASH通常應(yīng)用于只需要加密、不需要解密的特殊場合:如驗證數(shù)據(jù)的完整性、口令表的加密、數(shù)字簽名、身份認(rèn)證等。當(dāng)我們使用HASH函數(shù)構(gòu)造數(shù)據(jù)的“指紋”時(用散列函數(shù)對數(shù)據(jù)生成散列值并保存),一旦數(shù)據(jù)改變(被主動攻擊),即使只更動一個字母,對應(yīng)的壓縮信息也會變?yōu)榻厝徊煌摹爸讣y”,這就保證了經(jīng)過處理信息的唯一性。例如在口令加密的場合,系統(tǒng)中保存的是口令的散列值,當(dāng)用戶輸入口令以進(jìn)入系統(tǒng)時,系統(tǒng)重新計算用戶輸入口令的散列值并與保存的數(shù)值比較。只有兩者相同,才授權(quán)用戶進(jìn)入系統(tǒng)。這就避免了以明文形式保存口令,使系統(tǒng)的安全性大大加強。

64 Ⅰ 消息摘要算法MD5 MD5的全稱是“Message-Digest Algorithm 5(信息-摘要算法)”,它是由MD2、MD3、MD4發(fā)展而來的一種單向函數(shù)算法(也就是HASH算法),由國際著名的公鑰加密算法標(biāo)準(zhǔn)RSA的第一設(shè)計者R.Rivest在1991年開發(fā)出來的技術(shù)上更為趨近成熟的一種算法。MD5的最大作用在于,讓大容量信息在用數(shù)字簽名軟件簽署私人密匙前被“壓縮”成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的大整數(shù)),關(guān)鍵之處在于——這種“壓縮”是不可逆的。不管是md2、md4還是md5,它們都需要獲得一個隨機長度的信息并產(chǎn)生一個128位的信息摘要。 MD5的典型應(yīng)用是對一段信息(message)產(chǎn)生信息摘要(message-digest),以防止被篡改。這是因為MD5可以為任何文件(不管其大小、格式、數(shù)量)產(chǎn)生一個獨一無二的“數(shù)字指紋”,如果任何人對文件做了任何改動,其MD5值也就是對應(yīng)的“數(shù)字指紋”都會發(fā)生變化。 我們常常在某些軟件下載站點的某軟件信息中看到其MD5值,它的作用就在于我們可以在下載該軟件后,對下載回來的文件用專門的軟件(如Windows MD5 Check等)做一次MD5校驗,以確保我們獲得的文件與該站點提供的文件為同一文件。如果再有一個第三方的認(rèn)證機構(gòu),用MD5還可以防止文件作者的“抵賴”,這就是所謂的數(shù)字簽名應(yīng)用。利用MD5算法來進(jìn)行文件校驗的方案被大量應(yīng)用到軟件下載站、論壇數(shù)據(jù)庫、系統(tǒng)文件安全等方面。

65 MD5還廣泛用于加密和解密技術(shù)上。比如用戶的密碼是以MD5(或其它類似的算法)經(jīng)加密后存儲在文件系統(tǒng)中。當(dāng)用戶登錄的時候,系統(tǒng)把用戶輸入的密碼計算成MD5值,然后再去和保存在文件系統(tǒng)中的MD5值進(jìn)行比較,進(jìn)而確定輸入的密碼是否正確。通過這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這不但可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道,而且還在一定程度上增加了密碼被破解的難度。 天下沒有不透風(fēng)的墻,任何一種算法都會有其漏洞,即使是目前大行其道的MD5,當(dāng)對漏洞的研究發(fā)展到其能夠被有效利用時,則標(biāo)志著該算法滅亡的時候到了。在2004年8月美國加州圣巴巴拉召開的國際密碼學(xué)會議(Crypto’2004)上,來自中國山東大學(xué)王小云教授的一篇關(guān)于“破譯MD5、HAVAL-128、MD4以及RIPEMD-128算法”的報告引起了轟動,報告中提到的新破譯方法幾乎標(biāo)志著世界通信密碼標(biāo)準(zhǔn)——MD5堡壘的轟然倒塌。但盡管MD5被淘汰已經(jīng)成為必然,不過鑒于它開源以及免費的特性,而且目前還沒有真正有效的快速破解方法,因此它還將繼續(xù)在歷史舞臺活躍一段時間。

66 Ⅱ 報文鑒別碼MAC MAC(message authentication code),也稱為密碼檢驗和,消息認(rèn)證碼,是指滿足某種安全性質(zhì)的帶密鑰的HASH函數(shù)。因此,它的安全性質(zhì)與普通的單向散列函數(shù)是有明顯區(qū)別的。盡管兩者具有相同的散列函數(shù)結(jié)構(gòu),但引入MAC后,只有擁有密鑰的才能鑒別給定的散列函數(shù)。這就能保證有時候不想對原文件進(jìn)行加密(如發(fā)布通知、公告等),只要求能夠確保傳送文件不被修改,或修改了也能識別。如果使用的不是MAC而是普通的單向散列函數(shù),那么任何人都可以修改文件以至造成產(chǎn)生新的散列函數(shù)而不可辯識的后果。 構(gòu)造報文鑒別碼是用一個密鑰生成的一個小的數(shù)據(jù)塊追加在報文的后面。這種技術(shù)是假定通信雙方(例如用戶A和用戶B)共享一個密鑰K。當(dāng)用戶A向用戶B發(fā)送報文M時,就根據(jù)此密鑰和報文計算出報文鑒別碼MAC=f(K,M),這里f就是加密算法的某一函數(shù)。此報文的鑒別碼一起傳送到用戶B。用戶B用收到的報文(不包括報文鑒別碼),使用同樣的密鑰K,再計算一次報文鑒別碼,并與收到的報文鑒別碼相比較。如一致,則鑒別此報文是真的;反之,報文就不是用戶A所發(fā),或者即使是A所發(fā),也被篡改過。這樣就可以最大限度的保證通信安全。 值得注意的是,生成報文鑒別碼的過程與加密過程十分相似。但區(qū)別是,鑒別算法不進(jìn)行反向的計算。也就是說,對MAC不進(jìn)行類似加密過程的反向計算。由于鑒別函數(shù)的這一特點,鑒別是較難被攻破的。

67 密碼技術(shù)的未來 盡管雙鑰密碼體制比單鑰密碼體制更為可靠,但由于計算過于復(fù)雜,雙鑰密碼體制在進(jìn)行大信息量通信時,加密速率僅為單鑰體制的1/100,甚至是1/1000。正是由于不同體制的加密算法各有所長,所以在今后相當(dāng)長的一段時期內(nèi),各類加密體制將會共同發(fā)展。而在由IBM等公司于1996年聯(lián)合推出的用于電子商務(wù)的協(xié)議標(biāo)準(zhǔn)SET(Secure Electronic ransaction)中和1992年由多國聯(lián)合開發(fā)的PGP技術(shù)中,均采用了包含單鑰密碼、雙鑰密碼、單向雜湊算法和隨機數(shù)生成算法在內(nèi)的混合密碼系統(tǒng)的動向來看,這似乎從一個側(cè)面展示了今后密碼技術(shù)應(yīng)用的未來。 在單鑰密碼領(lǐng)域,一次一密被認(rèn)為是最為可靠的機制,但是由于流密碼體制中的密鑰流生成器在算法上未能突破有限循環(huán),故一直未被廣泛應(yīng)用。如果找到一個在算法上接近無限循環(huán)的密鑰流生成器,該體制將會有一個質(zhì)的飛躍。近年來,混沌學(xué)理論的研究給在這一方向產(chǎn)生突破帶來了曙光。此外,充滿生氣的量子密碼被認(rèn)為是一個潛在的發(fā)展方向,因為它是基于光學(xué)和量子力學(xué)理論的。該理論對于在光纖通信中加強信息安全、對付擁有量子計算能力的破譯無疑是一種理想的解決方法。 保密與竊密就像矛與盾一樣形影相隨,它們之間的斗爭已經(jīng)持續(xù)了幾千年,任何一種新的密碼技術(shù)的出現(xiàn),必然會有相應(yīng)的解密方法。當(dāng)然,或許隨著科技的進(jìn)一步發(fā)展,通過在密碼算法設(shè)計的新思路、信息保護(hù)的新思路等方面的突破,未來的加密技術(shù)將成為這場斗爭的終結(jié)者。

68 3.3 密鑰管理 密鑰管理技術(shù)主要處理密鑰從產(chǎn)生到最終銷毀整個過程中的有關(guān)問題,包括密鑰的產(chǎn)生、存儲、裝入、分配、保護(hù)、丟失、銷毀等內(nèi)容,它的主要任務(wù)是保證在公用數(shù)據(jù)網(wǎng)上安全地傳遞密鑰而不被竊取。 密鑰是密碼系統(tǒng)中的可變部分?,F(xiàn)代密碼體制要求加密算法是可以公開評估的,這個密碼系統(tǒng)的安全性并不取決于對密碼算法的保密或者是對加密設(shè)備等的保護(hù),盡管這樣有利于提高整個密碼系統(tǒng)的安全程度,但這種提高只是相對而言的)。這時,決定這個密碼體制安全性的因素將是密鑰的保密性;密碼算法可以公開,密碼設(shè)備可以丟失,但它們都不危及密碼體制的安全性;但一旦密鑰丟失,攻擊者將會有可能竊取信息。在考慮密碼系統(tǒng)的設(shè)計時,需要解決的核心問題是密鑰管理問題,而不是密碼算法問題。

69 3.3.1 密鑰管理基礎(chǔ)知識 Ⅰ 密鑰管理的要求 密鑰管理是一門綜合性技術(shù),它除了技術(shù)性的因素之外,還與人的因素,例如密鑰的行政管理制度以及人員的素質(zhì)密切相關(guān)。管理不好,密鑰同樣可能被無意識地泄露,并不是有了密鑰就高枕無憂,任何保密也只是相對的,是有時效的。 為此,對密鑰管理系統(tǒng)一般有以下具體要求: (1)密鑰難以被非法竊??; (2)在一定條件下即使竊取了密鑰也沒用; (3)密鑰的分配和更換過程在用戶看來是透明的,用戶不一定要親自掌握密鑰。 從管理角度來說,密鑰管理的基本要求是: (1)脫離密碼設(shè)備的密鑰數(shù)據(jù)應(yīng)絕對保密; (2)密碼設(shè)備內(nèi)部的密鑰數(shù)據(jù)絕對不外泄,一旦發(fā)現(xiàn)有攻擊跡象,應(yīng)立即銷毀密鑰數(shù)據(jù); (3)密鑰使命完成,應(yīng)徹底銷毀、更換。

70 Ⅱ 密鑰管理的組織結(jié)構(gòu) 適應(yīng)于對密鑰管理系統(tǒng)的要求,現(xiàn)有的計算機網(wǎng)絡(luò)系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的密鑰管理的設(shè)計大都采用了層次化的密鑰結(jié)構(gòu)。
Ⅱ 密鑰管理的組織結(jié)構(gòu) 適應(yīng)于對密鑰管理系統(tǒng)的要求,現(xiàn)有的計算機網(wǎng)絡(luò)系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的密鑰管理的設(shè)計大都采用了層次化的密鑰結(jié)構(gòu)。 層次化的密鑰結(jié)構(gòu)與整個系統(tǒng)的密鑰控制關(guān)系是對應(yīng)的。按照密鑰的作用與類型及它們之間的相互控制關(guān)系,可以將不同類型的密鑰劃分為一級密鑰、二級密鑰、……、n級密鑰,從而組成一個n層密鑰系統(tǒng),如圖3.9所示: 其中,系統(tǒng)使用一級密鑰K1通過算法f1保護(hù)二級密鑰(一級密鑰使用物理方法或者其他的方法進(jìn)行保護(hù)),使用二級密鑰通過算法f2保護(hù)三級密鑰,以此類推,直到最后使用n級密鑰通過算法fn保護(hù)明文P。隨著加密過程的進(jìn)行,各層密鑰的內(nèi)容動態(tài)變化,而這種變化的規(guī)則由相應(yīng)層次的密鑰協(xié)議控制。

71 最底層的密鑰Kn也稱為工作密鑰,或稱數(shù)據(jù)加密密鑰,它直接用于對明文數(shù)據(jù)的加、解密;所有上層密鑰可稱為密鑰加密密鑰,它們用于保護(hù)數(shù)據(jù)加密密鑰或者其他低層的密鑰加密密鑰;最高層的密鑰K1也叫做主密鑰,一般來說,主密鑰是整個密鑰管理系統(tǒng)的核心,應(yīng)采用最保險的方式來進(jìn)行保護(hù)。 平時,數(shù)據(jù)加密密鑰(工作密鑰)并不存在,在進(jìn)行數(shù)據(jù)的加、解密時,數(shù)據(jù)加密密鑰將在上層密鑰的保護(hù)下動態(tài)地產(chǎn)生;數(shù)據(jù)加密密鑰在使用完畢后,將立即清除,不再以明的形式出現(xiàn)在密碼系統(tǒng)中。 通常,我們可以以相對的概念來理解層次化的密鑰結(jié)構(gòu);某一層密鑰Ki相對于更高層的密鑰Ki-1是工作密鑰,而相對于低一層的密鑰Ki+1是密鑰加密密鑰。 層次化的密鑰結(jié)構(gòu)意味著以密鑰來保護(hù)密鑰,這樣,大量的數(shù)據(jù)可以通過少量動態(tài)產(chǎn)生的數(shù)據(jù)加密密鑰(工作密鑰)進(jìn)行保護(hù),而數(shù)據(jù)加密密鑰又可以由更少量的、相對不變(使用期較長)的密鑰加密密鑰來保護(hù),依此類推,最后,第二層的密鑰加密密鑰可以由主密鑰進(jìn)行保護(hù),從而保證了除了主密鑰可以以明文的形式存儲在有嚴(yán)密物理保護(hù)的主機密碼器件中,其它密碼則以加密后的密文形式存儲,這樣,使密鑰的安全性大大提高,也為密鑰管理自動化帶來了方便。

72 Ⅱ 密鑰的種類 密鑰分為數(shù)據(jù)加密密鑰(作用于明文數(shù)據(jù)對象)和密鑰加密密鑰(作用于數(shù)據(jù)加密密鑰及其它密鑰加密密鑰對象)。從具體的功能角度來看,在一般的密碼系統(tǒng)中有以下幾種密鑰: (1)基本密鑰(base key) (2)會話密鑰(session key) (3)密鑰加密密鑰(key encrypting key) (4)主機主密鑰(host master key)

73 (1)基本密鑰(base key) 基本密鑰也稱為初始密鑰(primary key),是由用戶選定或由系統(tǒng)分配給用戶的、可在較長時間內(nèi)(相對于會話密鑰)由一對用戶(例如密鑰分配中心與某一用戶之間,或兩個用戶之間)所專用的秘密密鑰。在某種程度上,基本密鑰還起到了標(biāo)識用戶的作用?;久荑€也可以稱為用戶密鑰(user key)。 (2)會話密鑰(session key) 會話密鑰是在一次通信或數(shù)據(jù)交換中,用戶之間所使用的密鑰。會話密鑰可由通信用戶之間進(jìn)行協(xié)商得到。它一般是動態(tài)地、僅在需要進(jìn)行會話數(shù)據(jù)加密時產(chǎn)生,并在使用完畢后立即進(jìn)行清除掉的(當(dāng)然也可以由用戶雙方進(jìn)行預(yù)先約定)。 會話密鑰可以使我們不必太頻繁地更改基本密鑰,而通過密鑰分配或密鑰協(xié)商的方法得到某次數(shù)據(jù)通信所使用的數(shù)據(jù)加密密鑰,這樣我們可以做到一報一密,從而大大提高通信的安全性,并方便密鑰的管理。 (3)密鑰加密密鑰(key encrypting key) 密鑰加密密鑰一般是用來對傳送的會話密鑰或文件秘密密鑰進(jìn)行加密時所采用的密鑰,也可以稱為二級密鑰。密鑰加密密鑰所保護(hù)的對象是實際用來保護(hù)通信或文件數(shù)據(jù)的會話密鑰或文件加密密鑰。在通信網(wǎng)中,一般在每個節(jié)點都分配有一個這類密鑰,同時,為了安全,各節(jié)點的密鑰加密密鑰應(yīng)互不相同。節(jié)點之間進(jìn)行密鑰協(xié)商時,應(yīng)使用各節(jié)點的密鑰加密密鑰進(jìn)行。 (4)主機主密鑰(host master key) 主機主密鑰對應(yīng)于層次化密鑰結(jié)構(gòu)中的最高層次,它是對密鑰加密密鑰進(jìn)行加密的密鑰。因此,主機主密鑰應(yīng)受到嚴(yán)格的保護(hù)。

74 密鑰生成 密鑰生成是密鑰管理的基本要件,對于一個密碼體制,如何產(chǎn)生好的密鑰是很關(guān)鍵的,密鑰選擇不當(dāng),即使算法再強,其安全性也是不敢恭維的。例如,以DES作為說明,如果我們只使用英文字母(包括大小寫)與數(shù)字作為密鑰,則可能的密鑰(即密鑰空間的大?。┲挥?.2×1014個。它僅僅是原來DES可能的密鑰空間的三百多分之一,這樣對于窮舉攻擊是很有利的。 那么,什么樣的密鑰才叫做安全?怎樣產(chǎn)生安全的密鑰?下面將逐一為你描述。

75 Ⅰ 安全密鑰產(chǎn)生的幾個特性 密鑰產(chǎn)生方式可由人工生成,也可由機器自動生成,不管怎樣,產(chǎn)生的密鑰必須滿足偽隨機特性的統(tǒng)計檢驗。一般我們把滿足下面幾個條件的密鑰稱為比較安全的密鑰: 真正隨機等概,如采取扔色子、擲硬幣等取法; 避免弱密碼的應(yīng)用(主要是單鑰系統(tǒng)); 雙鑰系統(tǒng)應(yīng)選擇數(shù)學(xué)關(guān)系巧、難的方法產(chǎn)生密鑰; 選用長度適中、安全易記且難猜中的密鑰; 適當(dāng)采用雜湊技術(shù),能將長密鑰變換成偽隨機數(shù)串(64bit)。

76 Ⅱ 密鑰長短安全性 密碼系統(tǒng)的安全性主要依賴于密鑰,而不僅僅依賴于算法的強壯度。選擇密鑰長度既不能太長也不能太短。原因很簡單,一旦選擇過長,必須為密鑰變長付出所需計算時間的代價。如果選擇太短,又?jǐn)巢贿^窮舉搜索等攻擊。表3.10給出了不同對象空間的密鑰數(shù)和對應(yīng)的窮舉搜索時間(假設(shè)每秒測試一百萬次)。 按照現(xiàn)在計算機發(fā)展的速度和計算能力分析,每2~3年左右,窮舉搜索能力也將要翻一番。因此在通行字之類密碼中,特別是口令密碼,應(yīng)盡量避免遭受字典式攻擊(dictionary attack),如本人名、首字母、帳戶名、數(shù)據(jù)庫縮寫名等作口令極易受攻擊。

77 Ⅲ 密鑰產(chǎn)生方式 主機主密鑰。屬控制其它加密密鑰的密鑰,對應(yīng)于層次化密鑰結(jié)構(gòu)中的最高層次,一般它的密鑰量很小,但作為整個密碼系統(tǒng)的核心,應(yīng)保證完全隨機性、不可重復(fù)性和不可預(yù)測性。故宜用擲硬幣、噪聲產(chǎn)生器等方法產(chǎn)生。 密鑰加密密鑰。可由機器自動產(chǎn)生或由操作員選定。一般可用安全算法、偽隨機數(shù)產(chǎn)生器、電子學(xué)噪聲源等產(chǎn)生。典型的有在主機主密鑰控制下,由X9.17安全算法(美國國家標(biāo)準(zhǔn)協(xié)會ANSI采用)生成。 會話密鑰、工作密鑰。在密鑰加密密鑰的控制下,通過某種安全算法動態(tài)產(chǎn)生。例如用初始密鑰控制非線性移位寄存器,或用密鑰加密密鑰控制DES算法產(chǎn)生。

78 密鑰分配 要使常規(guī)加密有效進(jìn)行,信息交互的雙方必須共享同一個密鑰,并且這個密鑰還要防止被其他人獲得。另外我們還希望密鑰經(jīng)常更換,以便在攻擊者知道密鑰的情況下使得泄露的數(shù)據(jù)量有個限制。因此,任何一個密碼編碼系統(tǒng)的強度都依賴于密鑰分配技術(shù)。 密鑰分配技術(shù)是在不讓其他人看到密鑰的情況下將一個密鑰傳遞給希望交換數(shù)據(jù)的雙方的方法。下面我們簡單介紹些關(guān)于密鑰分配的基本知識。

79 Ⅰ 密鑰分配基本方法 例如有兩個用戶A和B,想獲得共享密鑰的方法有以下幾種: 1、密鑰由A選取并通過物理手段發(fā)送給B。
Ⅰ 密鑰分配基本方法 例如有兩個用戶A和B,想獲得共享密鑰的方法有以下幾種: 1、密鑰由A選取并通過物理手段發(fā)送給B。 這是最簡單的一種密鑰分配方案。 2、密鑰由第三方選取并通過物理手段發(fā)送給A和B。 在通信網(wǎng)中,若只有個別用戶想進(jìn)行保密通信,密鑰的人工發(fā)送還是可行的。但假設(shè)在某機構(gòu)中有100個人,如果他們?nèi)我鈨扇酥g可以進(jìn)行秘密對話,那么總共需要多少=4950個密鑰,每個人需要知道99個密鑰;如果機構(gòu)的人數(shù)是1000、10000人或更多,這種辦法就顯然過于愚蠢了,管理密鑰將是一件可怕的事情。 3、如果A和B事先已有一密鑰,則其中一方選取新密鑰后,用已有的密鑰加密新密鑰并發(fā)送給另一方。 對于這種方法,攻擊者一旦獲得一個密鑰就可獲取以后的密鑰,而且用這種方法對所有用戶分配初始密鑰時,代價仍然很大。 4、如果A和B與第三方C分別有一保密通道,則C為A和B選取密鑰后,分別在兩個保密信道上發(fā)送給A和B。 這種方法比較常用,其中的第三方通常是一個負(fù)責(zé)為用戶分配密鑰的密鑰分配中心。這時每一用戶必須和密鑰分配中心有一個共享密鑰,稱為主密鑰。通過主密鑰分配給一對用戶的密鑰稱為會話密鑰,用于這一對用戶之間的保密通信。通信完成后,會話密鑰既被銷毀。如上所述,如果用戶數(shù)為n,則會話密鑰數(shù)為個,但主密鑰數(shù)卻只需n個,所以主密鑰可通過物理手段發(fā)送。

80 一種典型的分配方案如圖3.10所示:

81 假設(shè)用戶A希望與用戶B建立一個邏輯連接,并且需要一次性的會話密鑰來保護(hù)經(jīng)過這個連接傳輸?shù)臄?shù)據(jù)。A和B都與密鑰分配中心KDC(key distribution center)有一個共享的主密鑰KA和KB。密鑰分配步驟如下: 1、A向KDC發(fā)出請求,要求得到一個用來保護(hù)他與B之間邏輯連接的會話密鑰。這個報文包括A和B的標(biāo)識以及一個對于這次交互而言的唯一的標(biāo)識符N1,N1為一次性隨機數(shù),也叫作現(xiàn)時,它可以是一個時間戳、一個計數(shù)器或者一個隨機數(shù),對它的最低要求是它在每個請求中是不同的。另外,為了防止冒充,應(yīng)使敵手對N1難以預(yù)測,因此用隨機數(shù)最為合適。 2、KDC用一個經(jīng)過KA加密的報文作為響應(yīng)。因而,A是唯一可以成功收到這個報文的實體,而且A知道這個報文來自KDC。這個報文包含給A的兩項內(nèi)容: 用于會話的一次性密鑰KS。 原來的請求報文,包括一次性隨機數(shù)N1,以便使A將收到的應(yīng)答與發(fā)出的請求相比較,看是否匹配。 因而,A可以證實它原來的請求在KDC收到之前沒有被篡改,并且這不是一個以前請求的重放。 另外,這個報文還包括給B的兩項內(nèi)容: 用于會話的一次性密鑰Ks。 A的標(biāo)識符(例如他的網(wǎng)絡(luò)地址)IDa。 這兩項內(nèi)容是用KB進(jìn)行加密的,它們被發(fā)送到B來建立連接并證實A的身份。

82 3、A把會話密鑰存儲起來以便用于后續(xù)的會話,并將KDC發(fā)送給B的信息即EKB[KS||IDA]轉(zhuǎn)發(fā)給B。因為這個信息是用Kb加密的,它對竊聽有了防護(hù)。B現(xiàn)在知道了會話密鑰(Ks),知道了通信的另一方是A(從IDa得知),并且知道了信息是從KDC發(fā)出的(因為它是用Ekb加密的)。 這時一個會話密鑰就安全地傳送給了A和B,他們就可以開始受到保護(hù)的信息交互了。然而還有兩個步驟是必要的: 4、B使用為加密新造的會話密鑰發(fā)送一個一次性隨機數(shù)N2給A。 5、A也使用KS響應(yīng)一個f(N2),其中f是一個對N2進(jìn)行某種變換的函數(shù)(例如加1)。 這些步驟使得B確信它原來所收到(步驟3)的報文不是一個重放。 注意實際的密鑰分配過程只涉及步驟1到3,而步驟4和5結(jié)合3完成的是鑒別功能。

83 Ⅱ 公開密鑰分發(fā) 公開密鑰分發(fā),顧名思義,就是公鑰系統(tǒng)中的加密公開密鑰是公開的,它通過各種公開的手段和方式,或由公開權(quán)威機構(gòu)實現(xiàn)公開密鑰分發(fā)和傳送。 公開密鑰分發(fā)有下列幾種形式: 1、公開宣布 2、公布可以得到的目錄 3、公開密鑰機構(gòu)分發(fā) 4、公開密鑰證書分發(fā)

84 1、公開宣布 依據(jù)被廣泛接受的公開密鑰算法(如RSA),參與者可將其公開密鑰發(fā)送給他人,或通過廣播式在整個通信社區(qū)公布公開密鑰。比如郵件加密的PGP用戶可在消息后面附上公開密鑰信息,并將其送到公開論壇USENET新聞組上公布。 這個方法很方便,但是易受假冒用戶攻擊,必須對偽造密鑰進(jìn)行鑒別。

85 2、公布可以得到的目錄 由一個可信實體或組織負(fù)責(zé)一個公開密鑰的公開目錄的維護(hù)和分發(fā)。可信機構(gòu)與參與者之間建立一條{用戶名·公開密鑰}條目。參與者可通過正常或可信渠道到目錄權(quán)威機構(gòu)登記公開密鑰。允許參與者隨時更改一個已有的密鑰(如公鑰使用太長,或公鑰已泄密),目錄權(quán)威機構(gòu)可周期性地公布整個目錄,或?qū)δ夸涍M(jìn)行刷新,參與者也可以電子方式訪問這個目錄。為安全起見,參與者與權(quán)威機構(gòu)的通信安全受鑒別保護(hù)。 這個方法的安全性顯然強于公開宣布,但是也易受冒充權(quán)威機構(gòu)偽造公開密鑰的攻擊。

86 3、公開密鑰機構(gòu)分發(fā) 由專門機構(gòu)授權(quán),用來負(fù)責(zé)管理公開密鑰的公開目錄分發(fā)的一個中心權(quán)威機構(gòu)可信實體或組織,并負(fù)責(zé)維護(hù)一個所有參與者登記在冊的公開密鑰信息的公開動態(tài)目錄,使公開密鑰的分發(fā)達(dá)到更高的安全強度。當(dāng)然,每個參與者都有一種可信渠道知曉權(quán)威機構(gòu)的公開密鑰,而其對應(yīng)的私鑰只能由機構(gòu)本身秘密擁有。這種公開密鑰分發(fā)方案主要用于A和B雙方在進(jìn)行通信時,需要了解對方的公開密鑰信息。一方向公開密鑰機構(gòu)要求分發(fā)另一方的公開密鑰,用雙方的公開密鑰進(jìn)行信息加密傳送給對方。這時為安全起見,主要通過時戳等技術(shù)加以保護(hù)和判別。公開密鑰機構(gòu)分發(fā)方式同樣存在真實性和鑒別問題。

87 4、公開密鑰證書分發(fā) 公開密鑰證書方法是由Kohnfelder[KOHN78]首先提出的,目的是用戶使用證書交換公開密鑰,無需與權(quán)威機構(gòu)聯(lián)系,也能達(dá)到類似直接從權(quán)威目錄機構(gòu)獲取公開密鑰方法的安全性?;咀鞣ㄊ牵鹤C書由可信證書中心生成,內(nèi)容包含用戶公開密鑰、對應(yīng)的私有密鑰及相關(guān)信息。參與者通過將相應(yīng)證書傳送給另一個參與者而達(dá)到傳送公鑰信息的目的。其他參與者可以驗證此證書是否由權(quán)威機構(gòu)簽發(fā)。該方案的特點是: (1)每個參與者都可解析證書,以獲悉證書持有者名和公鑰信息; (2)每個參與者均可驗證一個證書是否由權(quán)威機構(gòu)簽發(fā)的真實性; (3)只有權(quán)威機構(gòu)能夠簽發(fā)和更新合法的證書; (4)每個參與者都能驗證證書的適時性。 其中(1)~(3)在Kohnfelder[KOHN78]中提到,(4)在Denning[DENN83]中提到。

88 Ⅲ 秘密密鑰分發(fā) 公開密鑰分發(fā)一方面易受搭線攻擊,另一方面加解密速度偏慢,因此,比較合理的做法是將公開密鑰加密當(dāng)作一個分配常規(guī)加密所用的秘密密鑰的工具。

89 1、簡單的秘密密鑰分配 一個極端簡單的方案如圖3.13所示: 如果A希望和B通信,就使用如下步驟:
(1)A產(chǎn)生一個私有/公開密鑰對{KUa,KRa}并給B傳輸一個報文,其中包含KUa和A 的一個標(biāo)識符IDA。 (2)B產(chǎn)生一個秘密密鑰KS,并將其用A的公開密鑰加密后傳輸給A。 (3)A計算DKRa[EKUa[KS]]來恢復(fù)這個秘密密鑰。因為只有A可以解密這個報文,所以只有A和B才會知道KS。 (4)A棄用KUa和KRa,B棄用KUa。 A和B現(xiàn)在就可以使用常規(guī)加密和會話密鑰KS進(jìn)行安全通信。信息交互完成以后,A和B都丟棄KS。盡管這個協(xié)議很簡單,但它卻是一個吸引人的協(xié)議。在通信之前不存在密鑰,而在通信完成以后也不存在密鑰,因而密鑰泄露的危險被減小到最低程度。同時,對于竊聽而言,通信是安全的。

90 但是這個協(xié)議容易受到主動攻擊。如果一個敵對方E控制了中間的通信信道,那么E就可以用下列方式破壞通信而不被發(fā)覺:
(1)A產(chǎn)生一個私有/公開密鑰對{KUa,KRa}并給B傳輸一個報文,其中包含KUa和A 的一個標(biāo)識符IDA。 (2)E截獲了這個報文,創(chuàng)建自己的私有/公開密鑰對{KUe,KRe},并將KUe||IDA傳輸給B。 (3)B產(chǎn)生一個秘密密鑰KS并傳輸EKUe[KS]。 (4)E截獲這個報文并通過計算DKRe[EKUe[KS]]得知KS。 (5)E傳輸EKUa[KS]給A。 結(jié)果是A和B都得到了KS,并且不知道KS也被E獲知。A和B現(xiàn)在可以使用KS進(jìn)行信息交互,E不再主動干預(yù)通信信道而只是簡單地竊聽。因為知道了KS,E可以解密所有的報文,而A和B都不知道有這個漏洞存在。因而這個簡單的協(xié)議僅僅在只存在竊聽的信道環(huán)境中可以使用。

91 2、具有保密和鑒別能力的秘密密鑰分配 圖3.14提供了對于被動和主動兩種攻擊的防護(hù)。
我們的出發(fā)點是假定A和B已經(jīng)交換了公開密鑰,接下來進(jìn)行的步驟是: (1)A使用B的公開密鑰加密一個發(fā)給B的報文,這個報文包含一個A的標(biāo)識符IDA和一個現(xiàn)時N1,這個現(xiàn)時用來唯一地標(biāo)識這次交互。 (2)B給A發(fā)送一個用KUa加密的報文,其中包含A的現(xiàn)時N1以及一個B產(chǎn)生的新現(xiàn)時N2。因為只有B才可能解密報文(1)、報文(2)中N1的存在使得A確信對方是B。 (3)A返回一個用B的公開密鑰加密的N2以便使B確信它的對方是A。 (4)A選擇一個秘密密鑰KS并發(fā)送M=EKUb[EKRa[KS]]給B。對這個報文用B的公開密鑰加密保證了只有B能夠解讀它;用A的私有密鑰進(jìn)行加密保證只有A才能發(fā)送它。 (5)B計算DKUa[DKRb[M]]恢復(fù)秘密密鑰。 這個方案在秘密密鑰的交互中保證了保密性和鑒別。

92 密鑰托管 任何東西都具有兩面性,加密技術(shù)也不例外:一方面可為用戶提供正常保密保護(hù);另一方面也為竊密分子提供犯罪掩護(hù),給監(jiān)管帶來了困難。那么如何控制加密技術(shù)的使用,使得一方面政府機構(gòu)在需要時,可通過適當(dāng)?shù)某绦颍绶ㄔ鹤C書,解密用戶的信息;另一方面,當(dāng)用戶的密鑰丟失或損壞,也可通過該技術(shù)恢復(fù)自己的密鑰呢? 這就要用到密鑰托管技術(shù),下面我們簡單介紹些關(guān)于它的基本知識。

93 Ⅰ 密鑰托管基本含義 1993年4月16日,美國政府為了滿足其電信安全、公眾安全和國家安全,提出了托管加密標(biāo)準(zhǔn)EES(escorowed encryption standard),又稱Clipper建議,解決了加密技術(shù)兩面性的需求:不僅提供強加密功能,也為政府機構(gòu)提供了實施法律授權(quán)下的監(jiān)聽功能。EES標(biāo)準(zhǔn)于1994年2月正式被美國政府公布采用。 所謂密鑰托管技術(shù),指為用戶提供更好的安全通信方式,同時允許授權(quán)者(包括用戶、企業(yè)專門人員、政府保密部門等)為了國家等安全利益,監(jiān)聽某些通信和解密有關(guān)密文。所以,密鑰托管也叫“密鑰恢復(fù)”,或者延伸為“受信任的第三方”、“數(shù)據(jù)恢復(fù)”、“特殊獲取”等含義。 密鑰托管技術(shù)的核心是一個稱為Clipper的防竄擾芯片,它是由美國國家安全局(NSA)主持開發(fā)的軟件實現(xiàn)密碼部件。內(nèi)部利用skipjack的私鑰密碼算法,芯片的單元密碼(UK)由兩個稱之為Escrow的機構(gòu)聯(lián)合提供。 美國政府的EES標(biāo)準(zhǔn)公布之后,在社會上引起了很大的爭議,但出于商業(yè)利益的動機,不少公司紛紛推出自己的密鑰托管系統(tǒng),常用的有幾十種不同功能的密鑰托管技術(shù)。

94 Ⅱ 密鑰托管系統(tǒng)的組成 密鑰托管加密體制主要由三部分組成:用戶安全分量、密鑰托管分量和數(shù)據(jù)恢復(fù)分量。三者緊密聯(lián)系,相互制約。圖3.15給出了密鑰托管加密系統(tǒng)示意圖。

95 1、用戶安全分量(User Security Component,簡稱USC)
用戶安全分量由硬件設(shè)備或軟件程序構(gòu)成,用于數(shù)據(jù)加密和解密,支持密鑰托管功能和數(shù)恢復(fù)作用。其中DRF可看作是通用密鑰分配機制的組成部分。 USC具有密鑰托管功能是指:法律允許的授權(quán)機構(gòu)可采用應(yīng)急解密措施介入通信,如搭線竊聽,數(shù)據(jù)擁有者也可以使用應(yīng)急解密措施恢復(fù)丟失或損壞的密鑰,以及解密有關(guān)數(shù)據(jù)文件。 2、密鑰托管分量(Key Escorw Component簡稱,KEC) 密鑰托管分量主要由密鑰托管代理、數(shù)據(jù)恢復(fù)密鑰、數(shù)據(jù)恢復(fù)業(yè)務(wù)和托管密鑰防護(hù)四部分組成。主要完成密鑰托管代理操作,數(shù)據(jù)恢復(fù)的密鑰存儲、披露和使用,以及其他部分業(yè)務(wù)服務(wù)。 (1)密鑰托管代理。有時也稱為可信賴方,負(fù)責(zé)KEC的操作。托管代理要在托管中心注冊,亦可為USC和DRC的聯(lián)合機構(gòu)。托管代理可為政府實體或私人組織的實體,各自履行代理職責(zé),包括保證識別出那些不支持?jǐn)?shù)據(jù)恢復(fù)或把密鑰批露給非授權(quán)方,以及非法批露密鑰的托管代理。托管代理的安全性就是要做到防止托管密鑰泄露、丟失以及授權(quán)的濫用能力等。

96 (2)數(shù)據(jù)恢復(fù)密鑰。作用是保證采用托管加密后,所有加密數(shù)據(jù)均能與數(shù)據(jù)恢復(fù)密鑰相連,以備必要時數(shù)據(jù)恢復(fù)使用。數(shù)據(jù)恢復(fù)密鑰種類可分為:A、數(shù)據(jù)加密密鑰(如會話密鑰、網(wǎng)絡(luò)密鑰、文件密鑰等,密鑰由KEC中心分發(fā))。B、用戶密鑰,用于建立數(shù)據(jù)加密密鑰,可由KEC分發(fā)。C、主密鑰,可由多個USC共享,直接與KEC相關(guān)。D、產(chǎn)品密鑰,屬于USC專有。所有數(shù)據(jù)恢復(fù)密鑰的托管時機可在產(chǎn)品制作或初始化階段,以及用戶注冊期間進(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、實現(xiàn)門限解密等內(nèi)容。這些業(yè)務(wù)可用人工后自動地將數(shù)據(jù)傳入或傳出后DRC。 (4)托管密鑰保護(hù)。用來防止密鑰泄露或丟失,集成各種技術(shù)保護(hù)、操作保護(hù)和法律保護(hù)等。 3、數(shù)據(jù)恢復(fù)分量(Date Recovery Component,簡稱DRC) DRC主要由專用算法、協(xié)議和必要的設(shè)備組成,能夠從密文和KEC所提供的,包含于DRC的信息中恢復(fù)出明文。DRC的功能主要由:適時解密,能實時解密截獲信息;后處理,可解密以前截獲和記錄的通信;透明性,非各方知識參與也可解密;獨立性,一旦獲得密鑰,利用自己的資源就能解密。但是,只有在執(zhí)行規(guī)定的合法數(shù)據(jù)恢復(fù)時才能使用DRC。

97 3.4 網(wǎng)絡(luò)加密技術(shù) 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)安全也就成為當(dāng)今網(wǎng)絡(luò)社會的焦點中的焦點,幾乎沒有人不在談?wù)摼W(wǎng)絡(luò)上的安全問題。病毒、黑客程序、郵件炸彈、遠(yuǎn)程偵聽等這一切都無不讓人膽戰(zhàn)心驚,病毒、黑客的猖獗使身處今日網(wǎng)絡(luò)社會的人們感覺到談網(wǎng)色變,無所適從。 那么,怎樣解決這一切一切的安全問題呢?或許加密是我們唯一的選擇。

98 網(wǎng)絡(luò)加密的重要性 網(wǎng)絡(luò)是由各網(wǎng)絡(luò)節(jié)點、它們之間的連接以及其上的網(wǎng)絡(luò)應(yīng)用服務(wù)等組成的,任何一個環(huán)節(jié)的疏漏都可能威脅到網(wǎng)絡(luò)的安全。如目前應(yīng)用得最廣泛的TCP/IP協(xié)議,其IP層協(xié)議就有許多安全缺陷:IP地址可以利用軟件進(jìn)行設(shè)置,這就造成了地址假冒和地址欺騙兩類安全隱患;IP協(xié)議支持源路由方式,即源點可以指定信息包傳送到目的節(jié)點的中間路由,這就提供了源路由攻擊的條件。 當(dāng)我們在互聯(lián)網(wǎng)上進(jìn)行文件傳輸、電子郵件商務(wù)往來時,黑客就利用網(wǎng)絡(luò)的漏洞和缺陷對我們的活動進(jìn)行有目的的攻擊。有的出于政治原因,為了獲取國家機密、軍事情報等;有的為了取得商業(yè)競爭的勝利,盜竊甚至破壞他人的客戶資料,獲取對方產(chǎn)品開發(fā)信息、公司銷售策略等;更多的還是出于金錢利益的誘惑,盜取他人網(wǎng)銀賬號密碼、網(wǎng)絡(luò)游戲虛擬裝備等。無論什么目的,都會我們帶來巨大的損失。因此為了能在安全的基礎(chǔ)上大開通向世界之門,我們只好選擇了網(wǎng)絡(luò)加密技術(shù)。 網(wǎng)絡(luò)加密技術(shù)的目的就是保護(hù)網(wǎng)內(nèi)的數(shù)據(jù)、文件、口令和控制信息,保護(hù)網(wǎng)上傳輸?shù)臄?shù)據(jù),防止有用或私有化信息在網(wǎng)絡(luò)上被攔截和竊取,或者即使被攻擊者獲得也是不可讀的。在某種意義上來說,加密也成為當(dāng)今網(wǎng)絡(luò)社會進(jìn)行文件或郵件安全傳輸?shù)臅r代象征。

99 網(wǎng)絡(luò)加密的形式 密碼技術(shù)是網(wǎng)絡(luò)安全最有效的技術(shù)之一。一個加密網(wǎng)絡(luò),不但可以防止非授權(quán)用戶的搭線竊聽和入網(wǎng),而且也是對付惡意軟件的有效方法之一。 一般的數(shù)據(jù)加密可以在通信的三個層次來實現(xiàn): Ⅰ 鏈路加密 Ⅱ 節(jié)點加密 Ⅲ 端到端加密

100 Ⅰ 鏈路加密 這是一種面向物理層的數(shù)據(jù)加密方式。對于在兩個網(wǎng)絡(luò)節(jié)點間的某一次通信鏈路,鏈路加密能為網(wǎng)上傳輸?shù)臄?shù)據(jù)提供安全保證。對于鏈路加密(又稱在線加密),所有消息在被傳輸之前進(jìn)行加密,在每一個節(jié)點對接收到的消息進(jìn)行解密,然后先使用下一個鏈路的密鑰對消息進(jìn)行加密,再進(jìn)行傳輸。在到達(dá)目的地之前,一條消息可能要經(jīng)過許多通信鏈路的傳輸。 由于在每一個中間傳輸節(jié)點消息均被解密后重新進(jìn)行加密,因此,包括路由信息在內(nèi)的鏈路上的所有數(shù)據(jù)均以密文形式出現(xiàn)。這樣,鏈路加密就掩蓋了被傳輸消息的源點與終點。由于填充技術(shù)的使用以及填充字符在不需要傳輸數(shù)據(jù)的情況下就可以進(jìn)行加密,這使得消息的頻率和長度特性得以掩蓋,從而可以防止對通信業(yè)務(wù)進(jìn)行分析。 盡管鏈路加密在計算機網(wǎng)絡(luò)環(huán)境中使用得相當(dāng)普遍,但它并非沒有問題。鏈路加密通常用在點對點的同步或異步線路上,它要求先對在鏈路兩端的加密設(shè)備進(jìn)行同步,然后使用一種鏈模式對鏈路上傳輸?shù)臄?shù)據(jù)進(jìn)行加密。這就給網(wǎng)絡(luò)的性能和可管理性帶來了副作用。

101 在線路/信號經(jīng)常不通的海外或衛(wèi)星網(wǎng)絡(luò)中,鏈路上的加密設(shè)備需要頻繁地進(jìn)行同步,帶來的后果是數(shù)據(jù)丟失或重傳。另一方面,即使僅一小部分?jǐn)?shù)據(jù)需要進(jìn)行加密,也會使得所有傳輸數(shù)據(jù)被加密。
在一個網(wǎng)絡(luò)節(jié)點,鏈路加密僅在通信鏈路上提供安全性,消息以明文形式存在,因此所有節(jié)點在物理上必須是安全的,否則就會泄漏明文內(nèi)容。然而保證每一個節(jié)點的安全性需要較高的費用,為每一個節(jié)點提供加密硬件設(shè)備和一個安全的物理環(huán)境所需要的費用由以下幾部分組成:保護(hù)節(jié)點物理安全的雇員開銷,為確保安全策略和程序的正確執(zhí)行而進(jìn)行審計時的費用,以及為防止安全性被破壞時帶來損失而參加保險的費用。 在傳統(tǒng)的加密算法中,用于解密消息的密鑰與用于加密的密鑰是相同的,該密鑰必須被秘密保存,并按一定規(guī)則進(jìn)行變化。這樣,密鑰分配在鏈路加密系統(tǒng)中就成了一個問題,因為每一個節(jié)點必須存儲與其相連接的所有鏈路的加密密鑰,這就需要對密鑰進(jìn)行物理傳送或者建立專用網(wǎng)絡(luò)設(shè)施。而網(wǎng)絡(luò)節(jié)點地理分布的廣闊性使得這一過程變得復(fù)雜,同時增加了密鑰連續(xù)分配時的費用。

102 Ⅱ 節(jié)點加密 節(jié)點加密在操作方式上與鏈路加密是類似的:兩者均在通信鏈路上為傳輸?shù)南⑻峁┌踩?;都在中間節(jié)點先對消息進(jìn)行解密,然后進(jìn)行加密。因為要對所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,所以加密過程對用戶是透明的。 然而,與鏈路加密不同,節(jié)點加密不允許消息在網(wǎng)絡(luò)節(jié)點以明文形式存在,它先把收到的消息進(jìn)行解密,然后采用另一個不同的密鑰進(jìn)行加密,這一過程是在節(jié)點上的一個安全模塊中進(jìn)行。因此節(jié)點加密能給網(wǎng)絡(luò)數(shù)據(jù)提供較高的安全性。 節(jié)點加密要求報頭和路由信息以明文形式傳輸,以便中間節(jié)點能得到如何處理消息的信息。因此這種方法對于防止攻擊者分析通信業(yè)務(wù)是脆弱的。

103 Ⅲ 端到端加密 端到端加密(又稱脫線加密或包加密),屬高層加密方式。源端在發(fā)送源消息之前將消息加密成密文,并以密文消息的形式經(jīng)通信網(wǎng)傳送到目的端。各端點采用相同的密碼算法和密鑰,對傳遞通路上的各個中間節(jié)點,其數(shù)據(jù)是保密的。也就是說,加密方式不依賴于中間節(jié)點,中間節(jié)點沒有義務(wù)對其他層的協(xié)議信息進(jìn)行解密,只有收端用戶正確解密才能恢復(fù)明文。 采用端到端加密,數(shù)據(jù)在從源點到終點的傳輸過程中始終以密文形式存在,在整個傳輸過程中均受到保護(hù),所以即使有節(jié)點被損壞也不會使消息泄露。端到端加密系統(tǒng)的價格便宜些,并且與鏈路加密和節(jié)點加密相比更可靠,更容易設(shè)計、實現(xiàn)和維護(hù)。端到端加密還避免了其它加密系統(tǒng)所固有的同步問題,因為每個報文包均是獨立被加密的,所以一個報文包所發(fā)生的傳輸錯誤不會影響后續(xù)的報文包。此外,從用戶對安全需求的直覺上講,端到端加密更自然些。單個用戶可能會選用這種加密方法,以便不影響網(wǎng)絡(luò)上的其他用戶,此方法只需要源和目的節(jié)點是保密的即可。 端到端加密系統(tǒng)通常不允許對消息的目的地址進(jìn)行加密,這是因為每一個消息所經(jīng)過的節(jié)點都要用此地址來確定如何傳輸消息。由于這種加密方法不能掩蓋被傳輸消息的源點與終點,因此它對于防止攻擊者分析通信業(yè)務(wù)是脆弱的。

104 要取得更大的安全程度,我們既需要鏈路加密也需要端到端加密,如圖3.16所示:
當(dāng)使用上圖的加密形式時,主機對分組的用戶數(shù)據(jù)部分用一個端到端加密密鑰進(jìn)行加密。整個分組然后用一個鏈路加密密鑰進(jìn)行加密。分組傳過網(wǎng)絡(luò)時每個交換機都用一個鏈路加密密鑰解密分組以便讀取首部,然后再加密整個分組以便在下一個鏈路上發(fā)送出去?,F(xiàn)在,除了分組在分組交換機內(nèi)存中那段時間外,整個分組是安全的。在那段時間分組首部是未加密的。

105 表3.11總結(jié)了鏈路加密與端端加密策略的關(guān)鍵特性。

106 知識歸納 信息加密技術(shù)是一門既古老又年輕的科學(xué)。當(dāng)代社會是信息化社會,如果說信息得不到應(yīng)有的保密,那么政府、公司和個人的開發(fā)活動都將陷入混亂,整個社會將變得不可收拾。因此,信息的安全與保密問題成了人人都關(guān)心的問題。 現(xiàn)代密碼學(xué)涉及數(shù)學(xué)(如數(shù)論、近世代數(shù)、復(fù)雜性理論、組合算法、概率算法及代數(shù)幾何等)、物理學(xué)(如量子力學(xué)、現(xiàn)代光學(xué)、混沌動力學(xué)等)、信息論、計算機科學(xué)等學(xué)科,內(nèi)容十分豐富。本章只簡單介紹了密碼學(xué)的基礎(chǔ)知識,目的是通過我的介紹,給真正對密碼技術(shù)感興趣的讀者一個引路而已。

107 習(xí)題與思考題 3.1 比較單鑰密碼體制與雙鑰,試述它們的本質(zhì)區(qū)別,以及各自的優(yōu)缺點。
3.1 比較單鑰密碼體制與雙鑰,試述它們的本質(zhì)區(qū)別,以及各自的優(yōu)缺點。 3.2 設(shè)愷撒密碼的密鑰k=6,設(shè)計出明文字母與密文字母的映射對照表,并加密明文m= Caesar cipher。 3.3 用維吉尼亞(vigenere)密碼算法加密m=system management bus,密鑰k=computer。 3.4 設(shè)明文m=“信息加密技術(shù)是利用數(shù)學(xué)或物理手段,對電子信息在傳輸過程中和存儲體內(nèi)進(jìn)行保護(hù),以防止泄漏的技術(shù)”,密鑰k=information,試用列易位算法法加密明文。 3.5 設(shè)明文m= ABCDEF,密鑰k= BBCDFF1,試用DES算法對其進(jìn)行加密。 3.6 假定明文m=encryption,考慮兩字母組合的最大值為2525,選取參數(shù)p=43,q=59,另選e=13,試用RSA算法對其進(jìn)行加密。 3.7 寫出密鑰的種類,并說明每種密鑰在加解密中的作用。 3.8 比較密鑰分配的幾種方法,并設(shè)想如果學(xué)院和每個學(xué)生寢室之間要通信,用哪種方式比較好? 3.9 分析幾種網(wǎng)絡(luò)加密方式的優(yōu)缺點。

108 實訓(xùn)指南 實訓(xùn)一 制作密碼卡片 實訓(xùn)二 密碼推斷 實訓(xùn)三 DES加、解密 實訓(xùn)四 RSA保密通信

109 實訓(xùn)一 制作密碼卡片 實訓(xùn)目的 通過制作簡單的6×6密碼卡片,使學(xué)生深刻理解易位密碼這種傳統(tǒng)技術(shù)。 實訓(xùn)環(huán)境
課堂上進(jìn)行即可,準(zhǔn)備空白方格紙兩張,剪刀一把。 實訓(xùn)內(nèi)容 制作密碼卡片 方法和步驟 1、按下圖繪制6×6方格,并把黑色方塊剪掉。 2、加密時,將密碼卡片置于同等大小的方格紙上,將明文按行從左到右書寫(寫在露出的方格),寫完后順時針(逆時針也可)旋轉(zhuǎn)90°,繼續(xù)寫入明文,連續(xù)四次,將方格紙寫滿后拿掉密碼卡片后剩下的即為密文。 3、解密時,用密碼卡片蓋住密文,按加密時的逆順序旋轉(zhuǎn)閱讀即可。 實訓(xùn)報告要求 1、說明本次實訓(xùn)體現(xiàn)了什么原理。 2、在理解原理的基礎(chǔ)上,寫出一個10×10方格密碼卡片的制作圖。

110 實訓(xùn)二 密碼推斷 實訓(xùn)目的 通過練習(xí),使學(xué)生深刻理解傳統(tǒng)密碼技術(shù),并能根據(jù)自己的需要選擇合適的算法 實訓(xùn)環(huán)境 課堂練習(xí)即可,準(zhǔn)備空白紙張若干
實訓(xùn)內(nèi)容 推斷密碼算法和密鑰 方法和步驟 1、教師先給出一段明文(無特殊要求,長度適當(dāng),重復(fù)字符不能太多)。 2、每個學(xué)生根據(jù)所學(xué)的代替和易位算法加密明文后相互交換。 3、根據(jù)明文和密文之間的對應(yīng)關(guān)系,推斷對方所用的加密算法和密鑰。 實訓(xùn)報告要求 1、寫出自己在實訓(xùn)中所用的密碼算法,并寫出從明文到密文的詳細(xì)步驟。 2、寫出根據(jù)對方的密文推斷出的加密算法和密鑰,寫出推斷思路。

111 實訓(xùn)三 DES加、解密 實訓(xùn)目的 通過對DES密碼算法的練習(xí),理解DES工作的原理 實訓(xùn)環(huán)境 課堂練習(xí)即可,準(zhǔn)備空白紙張若干 實訓(xùn)內(nèi)容
方法和步驟 1、教師先給出一段明文(無特殊要求,長度適當(dāng),重復(fù)字符不能太多)和密鑰。 2、學(xué)生按DES算法的步驟加密明文得到密文即可。 實訓(xùn)報告要求 1、寫出用DES算法加密明文的詳細(xì)步驟。 2、在理解DES算法的基礎(chǔ)上,分析該算法存在的漏洞。

112 實訓(xùn)四 RSA保密通信 實訓(xùn)目的 通過對RSA密碼算法的練習(xí),理解RSA工作的原理 實訓(xùn)環(huán)境 課堂練習(xí)即可,準(zhǔn)備空白紙張若干 實訓(xùn)內(nèi)容
方法和步驟 1、選擇兩個素數(shù)(為了計算方便,100以內(nèi)即可),根據(jù)所學(xué),算出公鑰和私鑰,并公布自己的公鑰。 2、學(xué)生用自己的私鑰和教師的公鑰加密明文(包含個人信息)后發(fā)給教師。 3、教師選擇其中一個密文,用自己的私鑰解密得到明文后,將答案用該生的公鑰加密并發(fā)給全班。 4、每個學(xué)生都用教師的公鑰和自己的私鑰解密該密文,只有正確的接受者才能解密該密文。 實訓(xùn)報告要求 1、寫出計算公鑰和私鑰的詳細(xì)步驟。 2、根據(jù)自己能否接收教師的信息,寫出原因。 3、結(jié)合自己運用RSA的情況,分析該密碼算法的優(yōu)缺點。

113 參考文獻(xiàn) 《密碼學(xué)與計算機網(wǎng)絡(luò)安全》 卿斯?jié)h 清華大學(xué)出版社 《對稱密碼學(xué)》 胡予濮等 機械工業(yè)出版社
《密碼學(xué)與計算機網(wǎng)絡(luò)安全》 卿斯?jié)h 清華大學(xué)出版社 《對稱密碼學(xué)》 胡予濮等 機械工業(yè)出版社 《密碼編碼學(xué)與網(wǎng)絡(luò)安全:原理與實踐》 [美]William Stallings 電子工業(yè)出版社 《密碼學(xué)原理與實踐》 [加]Douglas R. Stinson 電子工業(yè)出版社 《現(xiàn)代密碼學(xué)》 楊波 清華大學(xué)出版社 《計算機安全技術(shù)》 劉蔭銘等 清華大學(xué)出版社 《公開密鑰密碼算法及其快速實現(xiàn)》 周玉潔等 國防工業(yè)出版社 《密碼學(xué)》 宋震等 中國水利水電出版社 《網(wǎng)絡(luò)與信息安全教程》 林柏鋼 機械工業(yè)出版社 《計算機安全》 趙一鳴等 電子工業(yè)出版社 《信息社會學(xué)》 靖繼鵬、吳正荊 科學(xué)出版社 《信息安全管理手冊》卷Ⅰ、卷Ⅱ、卷Ⅲ [美]Harold F. Tipton Micki Krause 電子工業(yè)出版社

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多