密碼學(xué)第7,8章_第1頁
密碼學(xué)第7,8章_第2頁
密碼學(xué)第7,8章_第3頁
密碼學(xué)第7,8章_第4頁
密碼學(xué)第7,8章_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、7 公鑰密碼算法公鑰密碼算法n7.0概述n7.1國際標(biāo)準(zhǔn)RSA算法(基于大數(shù)分解)n7.2ElGamal算法(基于離散對數(shù))n7.3美國標(biāo)準(zhǔn)DSS/DSA算法n7.4橢圓曲線密碼(ECC)算法n7.5其它公鑰密碼算法 7.0 公鑰密碼算法概述公鑰密碼算法概述n公鑰密碼算法(非對稱算法)用公開密鑰(簡稱公鑰)加密,用私人密鑰(簡稱私鑰)解密。當(dāng)消息用私人密鑰加密(簽名)而用公開密鑰解密(驗(yàn)證)時,稱為數(shù)字簽名。 n在公鑰密碼與數(shù)字簽名算法領(lǐng)域,DSA(數(shù)字簽名算法)是NIST專門制定的數(shù)字簽名標(biāo)準(zhǔn)(DSS)算法,只能用于簽名驗(yàn)證,不能用于保密或密鑰分配,安全強(qiáng)度較低,速度很慢。RSA算法即可用于

2、保密,又可用于簽名驗(yàn)證,安全性比DSA算法高,速度也比DSA算法快多了,是第一個較完善的、最容易理解和實(shí)現(xiàn)的公鑰算法,被很多國家和組織作為標(biāo)準(zhǔn),包括國際數(shù)字簽名標(biāo)準(zhǔn)ISO 9796。不過,RSA算法速度也較慢。我國密碼學(xué)家陶仁驥等在20世紀(jì)80年代就提出了一種基于有限自動機(jī)的公鑰算法(FAPKC),性能不錯,既可用于簽名驗(yàn)證,又可用于保密或密鑰交換。雖然有些科研人員指出該算法存在缺陷,但只要其思想可取,就是有價值的。密碼算法本來就是隨著時間和實(shí)踐逐步完善的。陶仁驥等已提出了新的改進(jìn)算法。FAPKC算法可能是我國20世紀(jì)所公布的唯一有完全自主知識產(chǎn)權(quán)的密碼算法。7.0 公鑰密碼算法概述公鑰密碼算

3、法概述(續(xù))(續(xù))n現(xiàn)在,有一種稱為ECC(橢圓曲線密碼)的公鑰算法,性能優(yōu)越,安全性比RSA算法高多了,速度也比RSA算法快多了,帶寬要求低,曲線資源豐富,易于軟硬件和智能卡實(shí)現(xiàn),已成為新的公鑰密碼和數(shù)字簽名國際標(biāo)準(zhǔn),并被我國采納。加拿大和日本向NESSIE提交的幾個公鑰密碼和數(shù)字簽名算法就是基于ECC的。我國科研人員陳建華教授在ECC領(lǐng)域做出了較大貢獻(xiàn)。n非對稱算法(公鑰密碼算法)的基本設(shè)計思想是計算復(fù)雜性和陷門單向函數(shù)。7.0 公鑰密碼算法概述公鑰密碼算法概述與對稱算法結(jié)合與對稱算法結(jié)合n在實(shí)際應(yīng)用中,公鑰密碼算法不會取代對稱算法。公鑰密碼算法一般不用來加密消息,而用作身份認(rèn)證和加密會話

4、密鑰。因?yàn)椋海ㄋ惴ㄊ枪_且好的算法有限,所以需要加密密鑰和解密密鑰)n1. 對稱算法一般比公鑰算法快一千倍。n2. 公鑰密碼系統(tǒng)對選擇明文攻擊是脆弱的。如果C=E(P),當(dāng)P是N個可能明文集中的一個明文,那么密碼分析者只需要加密所有N個可能的明文,并能與C比較結(jié)果(加密密鑰是公開的)。用這種方法,他不可能恢復(fù)解密密鑰,但他能夠確定P。n在大多數(shù)實(shí)際應(yīng)用中,公鑰密碼用作身份認(rèn)證和加密會話密鑰。這些會話密鑰用在對稱算法中,對通信消息進(jìn)行保密。有時稱這種系統(tǒng)為混合密碼系統(tǒng)混合密碼系統(tǒng)。n把公鑰密碼用于密鑰分配解決了很重要的密鑰管理問題。7.0 公鑰密碼算法概述公鑰密碼算法概述與與Hash函數(shù)結(jié)合函數(shù)

5、結(jié)合n在實(shí)際的實(shí)現(xiàn)過程中,采用公鑰密碼算法對長文件簽名效率太低。為了節(jié)約時間,數(shù)字簽名協(xié)議經(jīng)常和單向Hash函數(shù)一起使用。并不對整個文件簽名,只對文件的Hash值簽名。n由于公鑰密碼算法用于保密和用于簽名的原理是一樣的,此處只介紹數(shù)字簽名算法。 7.1 RSA算法算法(基于大數(shù)分解基于大數(shù)分解)nRSA是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。算法的名字以發(fā)明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。RSA的安全性一直未能得到理論上的證明。它經(jīng)歷了各種攻擊,至今未被完全攻破。nRSA算法過程:算法過程:n首先, 選取三個數(shù), p, q,

6、 e, 其中 p, q是兩個相異的大質(zhì)數(shù), e是與(p-1)(q-1)互質(zhì)的數(shù),計算 n = p*q,e, n便是公鑰;接著, 用歐幾里德擴(kuò)展法計算d, 使得de1 mod (p-1)(q-1),p, q, d便是私鑰。假設(shè)被簽消息為M,則n簽名過程為S = M d mod n n驗(yàn)證過程為M = S e mod n 7.1 RSA算法算法性能性能n由于進(jìn)行的都是大數(shù)計算,使得RSA最快的情況也比DES慢上100倍,無論是軟件還是硬件實(shí)現(xiàn)。速度一直是RSA的缺陷。一般來說只用于少量數(shù)據(jù)加密和簽名。n總之,RSA是被研究最廣泛的公鑰算法,從提出到現(xiàn)在已經(jīng)二十年,經(jīng)歷了各種攻擊的考驗(yàn),普遍認(rèn)為是當(dāng)

7、時最優(yōu)秀的公鑰方案之一。RSA的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯RSA的難度與大數(shù)分解難度等價,即RSA的重大缺陷是無法從理論上把握它的保密性能如何。RSA的缺點(diǎn)主要有:A)產(chǎn)生密鑰很麻煩,受到素數(shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密。B)分組長度太大,為保證安全性,n至少也要600 b以上,使運(yùn)算代價很高,尤其是速度較慢,較對稱密碼算法慢幾個數(shù)量級;且隨著大數(shù)分解技術(shù)的發(fā)展,這個長度還在增加,不利于數(shù)據(jù)格式的標(biāo)準(zhǔn)化。目前,SET(安全電子商務(wù))協(xié)議中要求CA采用2048 b長的密鑰,其他實(shí)體使用1024 b的密鑰。IEEE已批準(zhǔn)RSA成為802.11標(biāo)準(zhǔn)的補(bǔ)充標(biāo)準(zhǔn)。7.2

8、 ElGamal算法算法(基于離散對數(shù)基于離散對數(shù))nElGamal算法既能用于數(shù)據(jù)加密也能用于數(shù)字簽名。n密鑰對產(chǎn)生辦法為:首先選擇一個素數(shù)p,兩個隨機(jī)數(shù)g和x,g, x p, 計算 y = g x mod p,則其公鑰為y, g和p。私鑰是x。g和p可由一組用戶共享。ElGamal數(shù)字簽名過程為:n假設(shè)被簽消息為M,首先選擇一個隨機(jī)數(shù)k, k與 p-1互質(zhì),計算a = g k mod p。再用擴(kuò)展 Euclide算法對下面方程求解b:nM = x a + kb mod (p-1)。簽名就是(a, b)。隨機(jī)數(shù)k須丟棄。n驗(yàn)證時要驗(yàn)證下式:( y a a b ) mod p = g M mo

9、d p。同時一定要檢驗(yàn)是否滿足1a p。否則簽名容易偽造。ElGamal簽名的安全性依賴于乘法群上的離散對數(shù)計算難題。n素數(shù)p必須足夠大,且p-1至少包含一個大素數(shù)因子以抵抗Pohlig & Hellman算法的攻擊。M一般都應(yīng)采用消息的散列值(如SHA算法序列)。ElGamal的安全性主要依賴于p和g,若選取不當(dāng)則簽名容易偽造,應(yīng)保證g對于p-1的大素數(shù)因子不可約。ElGamal的一個不足之處是它的密文成倍擴(kuò)張。7.3 美國標(biāo)準(zhǔn)美國標(biāo)準(zhǔn)DSS/DSA算法算法nDSA (數(shù)字簽名算法)是Schnorr和ElGamal簽名算法的變種,是美國NIST專門制定的數(shù)字簽名標(biāo)準(zhǔn)(DSS)算法,只

10、能用于簽名驗(yàn)證,不能用于保密或密鑰分配。 nDSA算法的安全性依賴于整數(shù)有限域上的離散對數(shù)問題,安全強(qiáng)度和速度均低于RSA算法。7.4 橢圓曲線密碼橢圓曲線密碼(ECC)算法算法n(基于基于橢圓曲線上的離散對數(shù)離散對數(shù))nECC(橢圓曲線密碼)算法性能優(yōu)越,安全性比RSA算法高多了,速度也比RSA算法快多了,帶寬要求低,曲線資源豐富,易于軟硬件和智能卡實(shí)現(xiàn),已成為新的公鑰密碼和數(shù)字簽名國際標(biāo)準(zhǔn),并被我國采納。加拿大和日本向NESSIE提交的幾個公鑰密碼和數(shù)字簽名算法就是基于ECC的。我國科研人員陳建華教授在ECC領(lǐng)域做出了較大貢獻(xiàn)。ECC已被IEEE公鑰密碼標(biāo)準(zhǔn)P1363采用。7.5 其它其它

11、公鑰密碼公鑰密碼算法算法n公鑰密碼算法還有Rabin算法、Schnorr算法、俄羅斯數(shù)字簽名標(biāo)準(zhǔn)GOST算法和日本的ESIGN算法等。nRabin算法的安全性低于RSA算法;Schnorr算法的安全性低于ElGamal算法。nGOST算法安全性很高,但速度比DSA算法慢,公鑰參數(shù)的生成和存儲也比DSA算法復(fù)雜。nESIGN算法的安全性不低于RSA和DSA,但速度快多了。 8 常用認(rèn)證與密鑰交換算法常用認(rèn)證與密鑰交換算法n認(rèn)證與密鑰交換協(xié)議比較多,可分為兩類:1)對稱認(rèn)證(與密鑰交換),即常用的口令認(rèn)證,例如EAP-MD5和移動通信系統(tǒng)中的AKG(認(rèn)證與密鑰產(chǎn)生)等。2)非對稱認(rèn)證(與密鑰交換)

12、,基于公鑰密碼算法。著名的非對稱認(rèn)證協(xié)議是ITU-T X.509協(xié)議;著名的密鑰交換協(xié)議是IKE(互聯(lián)網(wǎng)密鑰交換)中采用的Diffie-Hellman協(xié)議。歐洲的非對稱認(rèn)證新標(biāo)準(zhǔn)是法國人Ecole Normale Suprieure設(shè)計的GPS算法。 8 常用認(rèn)證與密鑰交換算法常用認(rèn)證與密鑰交換算法8.1 Diffie-Hellman算法算法nIKE(互聯(lián)網(wǎng)密鑰交換)中采用的Diffie-Hellman密鑰交換協(xié)議是第一個公鑰密碼算法,早在1976年就提出了,其安全性源于有限域上計算離散對數(shù)比計算指數(shù)更為困難。首先,A和B協(xié)商一個大素數(shù)n和g,g是模n的本原元;這兩個整數(shù)不必保密;要求(n-1

13、)/2也是素數(shù)。則Diffie-Hellman算法過程如下:n(1)A選取一個大隨機(jī)整數(shù)x并把X = g x mod n發(fā)送給B;n(2)B選取一個大隨機(jī)整數(shù)y并把Y = g y mod n發(fā)送給A;n(3)A計算K = Y x mod n;n(4)B計算K* = X y mod n。nK = K* = g y x mod n,密鑰交換成功。 8 常用認(rèn)證與密鑰交換算法常用認(rèn)證與密鑰交換算法8.2 GPS算法算法nGPS算法是NESSIE收到的唯一的非對稱認(rèn)證方案,被采納為歐洲標(biāo)準(zhǔn)。這是一個交互式零知識證明協(xié)議,其特點(diǎn)為:基于一般任意模數(shù)離散對數(shù)問題(這等價于整數(shù)分解問題和計算素數(shù)模的離散對數(shù)

14、問題)的可證明安全性,身份密鑰短,信息傳輸量非常小,在線計算量最小化。nGPS算法是Schnorr的改進(jìn)方案。8.3 對稱密碼體制中的密鑰管理對稱密碼體制中的密鑰管理(1)對稱密碼體制中密鑰分配的基本方法對稱密碼體制中密鑰分配的基本方法兩個用戶A和B獲得共享密鑰的方法有以下幾種: 密鑰由A選取并通過物理手段發(fā)送給B。 密鑰由第三方KDC選取并通過物理手段發(fā)送給A和B。 如果A、B事先已有一密鑰,則其中一方選取新密鑰后,用已有的密鑰加密新密鑰并發(fā)送給另一方。 如果A和B與第三方KDC分別有一保密信道,則C為A、B選取密鑰后,分別在兩個保密信道上發(fā)送給A、B。第4種方法比較常用,其中的第三方通常是

15、一個負(fù)責(zé)為用戶分配密鑰的密鑰分配中心。這時每一用戶必須和密鑰分配中心有一個共享密鑰,稱為主密鑰。通過主密鑰分配給一對用戶的密鑰稱為會話密鑰,用于這一對用戶之間的保密通信。通信完成后,會話密鑰即被銷毀。如上所述,如果用戶數(shù)為n,則會話密鑰數(shù)為n(n-1)/2。但主密鑰數(shù)卻只需n個,所以主密鑰可通過物理手段發(fā)送。8.3 對稱密碼體制中的密鑰管理對稱密碼體制中的密鑰管理(2)密鑰的分層管理密鑰的分層管理n網(wǎng)絡(luò)中如果用戶數(shù)目非常多而且分布的地域非常廣,一個KDC就無法承擔(dān)為用戶分配密鑰的重任。問題的解決方法是使用多個KDC的分層結(jié)構(gòu)。例如,在每個小范圍(如一個LAN或一個建筑物)內(nèi),都建立一個本地KD

16、C。同一范圍的用戶在進(jìn)行保密通信時,由本地KDC為他們分配密鑰。如果兩個不同范圍的用戶想獲得共享密鑰,則可通過各自的本地KDC,而兩個本地KDC的溝通又需經(jīng)過一個全局KDC。這樣就建立了兩層KDC。類似地,根據(jù)網(wǎng)絡(luò)中用戶的數(shù)目及分布的地域,可建立3層或多層KDC。分層結(jié)構(gòu)可減少主密鑰的分布,因?yàn)榇蠖鄶?shù)主密鑰是在本地KDC和本地用戶之間共享。再者,分層結(jié)構(gòu)還可將虛假KDC的危害限制到一個局部區(qū)域。8.3 對稱密碼體制中的密鑰管理對稱密碼體制中的密鑰管理(3)會話密鑰的有效期會話密鑰的有效期n會話密鑰更換得越頻繁,系統(tǒng)的安全性就越高。因?yàn)閿呈旨词公@得一個會話密鑰,也只能獲得很少的密文。但另一方面,

17、會話密鑰更換得太頻繁,又將延遲用戶之間的交換,同時還造成網(wǎng)絡(luò)負(fù)擔(dān)。所以在決定會話密鑰的有效期時,應(yīng)權(quán)衡矛盾的兩個方面。n對面向連接的協(xié)議,在連接未建立前或斷開時,會話密鑰的有效期可以很長。而每次建立連接時,都應(yīng)使用新的會話密鑰。如果邏輯連接的時間很長,則應(yīng)定期更換會話密鑰。n無連接協(xié)議(如面向業(yè)務(wù)的協(xié)議),無法明確地決定更換密鑰的頻率。為安全起見,用戶每進(jìn)行一次交換,都用新的會話密鑰。然而這又失去了無連接協(xié)議主要的優(yōu)勢,即對每個業(yè)務(wù)都有最少的費(fèi)用和最短的延遲。比較好的方案是在某一固定周期內(nèi)或?qū)σ欢〝?shù)目的業(yè)務(wù)使用同一會話密鑰。8.3 對稱密碼體制中的密鑰管理對稱密碼體制中的密鑰管理(4)無中心的

18、密鑰協(xié)商無中心的密鑰協(xié)商 A向B發(fā)出建立會話密鑰的請求和一個一次性隨機(jī)數(shù)N1。 B用與A共享的主密鑰MKm對應(yīng)答的消息加密,并發(fā)送給A。應(yīng)答的消息中有B選取的會話密鑰、B的身份、f(N1)和另一個一次性隨機(jī)數(shù)N2。 A使用新建立的會話密鑰KS對f(N2)加密后返回給B。8.3 對稱密碼體制中的密鑰管理對稱密碼體制中的密鑰管理(5)密鑰的控制使用密鑰的控制使用密鑰可根據(jù)其不同用途分為會話密鑰和主密鑰兩種類型,會話密鑰又稱為數(shù)據(jù)加密密鑰,主密鑰又稱為密鑰加密密鑰。由于密鑰的用途不同,因此對密鑰的使用方式也希望加以某種控制。如果主密鑰泄露了,則相應(yīng)的會話密鑰也將泄露,因此主密鑰的安全性應(yīng)高于會話密鑰

19、的安全性。一般在密鑰分配中心以及終端系統(tǒng)中主密鑰都是物理上安全的。8.4 公鑰密碼體制中的密鑰管理公鑰密碼體制中的密鑰管理(一一)公鑰的分配方法公鑰的分配方法1. 公開發(fā)布公開發(fā)布指用戶將自己的公鑰發(fā)給每一其他用戶,或向某一團(tuán)體廣播。例如PGP(pretty good privacy)中采用了RSA算法,它的很多用戶都是將自己的公鑰附加到消息上,然后發(fā)送到公開(公共)區(qū)域,如因特網(wǎng)郵件列表。這種方法雖然簡單,但有一個非常大的缺點(diǎn),即任何人都可偽造這種公開發(fā)布。如果某個用戶假裝是用戶A并以A的名義向另一用戶發(fā)送或廣播自己的公開鑰,則在A發(fā)現(xiàn)假冒者以前,這一假冒者可解讀所有意欲發(fā)向A的加密消息,而

20、且假冒者還能用偽造的密鑰獲得認(rèn)證。8.4 公鑰密碼體制中的密鑰管理公鑰密碼體制中的密鑰管理(一一)公鑰的分配方法公鑰的分配方法(續(xù))(續(xù))2. 公用目錄表公用目錄表指一個公用的公鑰動態(tài)目錄表,公用目錄表的建立、維護(hù)以及公鑰的分布由某個可信的實(shí)體或組織承擔(dān),稱這個實(shí)體或組織為公用目錄的管理員。與第1種分配方法相比,這種方法的安全性更高。該方案有以下一些組成部分: 管理員為每個用戶都在目錄表中建立一個目錄,目錄中有兩個數(shù)據(jù)項(xiàng): 一是用戶名,二是用戶的公開鑰。 每一用戶都親自或以某種安全的認(rèn)證通信在管理者那里為自己的公開鑰注冊。(一一)公鑰的分配方法公鑰的分配方法 2. 公用目錄表公用目錄表(續(xù))(

21、續(xù)) 用戶如果由于自己的公開鑰用過的次數(shù)太多或由于與公開鑰相關(guān)的秘密鑰已被泄露,則可隨時用新密鑰替換現(xiàn)有的密鑰。 管理員定期公布或定期更新目錄表。例如,像電話號碼本一樣公布目錄表或在發(fā)行量很大的報紙上公布目錄表的更新。 用戶可通過電子手段訪問目錄表,這時從管理員到用戶必須有安全的認(rèn)證通信。本方案的安全性雖然高于公開發(fā)布的安全性,但仍易受攻擊。如果敵手成功地獲取管理員的秘密鑰,就可偽造一個公鑰目錄表,以后既可假冒任一用戶又能監(jiān)聽發(fā)往任一用戶的消息。而且公用目錄表還易受到敵手的竄擾。8.4 公鑰密碼體制中的密鑰管理公鑰密碼體制中的密鑰管理(一一)公鑰的分配方法公鑰的分配方法(續(xù))(續(xù))3. 公鑰管

22、理機(jī)構(gòu)如果在公鑰目錄表中對公鑰的分配施加更嚴(yán)密的控制,安全性將會更強(qiáng)。與公用目錄表類似,這里假定有一個公鑰管理機(jī)構(gòu)來為各用戶建立、維護(hù)動態(tài)的公鑰目錄,但同時對系統(tǒng)提出以下要求,即:每個用戶都可靠地知道管理機(jī)構(gòu)的公開鑰,而只有管理機(jī)構(gòu)自己知道相應(yīng)的秘密鑰。公開鑰的分配步驟如下(如圖): 用戶A向公鑰管理機(jī)構(gòu)發(fā)送一個帶時戳的消息,消息中有獲取用戶B的當(dāng)前公鑰的請求。 管理機(jī)構(gòu)對A的請求作出應(yīng)答,應(yīng)答由一個消息表示,該消息由管理機(jī)構(gòu)用自己的秘密鑰SKAU加密,因此A能用管理機(jī)構(gòu)的公開鑰解密,并使A相信這個消息的確是來源于管理機(jī)構(gòu)。(一一)公鑰的分配方法公鑰的分配方法 3. 公鑰管理機(jī)構(gòu)公鑰管理機(jī)構(gòu)(

23、續(xù))(續(xù))應(yīng)答的消息中有以下幾項(xiàng):n B的公鑰PKB,A可用之對將發(fā)往B的消息加密;n A的請求,用于A驗(yàn)證收到的應(yīng)答的確是對相應(yīng)請求的應(yīng)答,且還能驗(yàn)證自己最初發(fā)出的請求在被管理機(jī)構(gòu)收到以前是否被篡改;n 最初的時戳,以使A相信管理機(jī)構(gòu)發(fā)來的消息不是一個舊消息,因此消息中的公開鑰的確是B當(dāng)前的公鑰。 A用B的公開鑰對一個消息加密后發(fā)往B,這個消息有兩個數(shù)據(jù)項(xiàng): 一是A的身份IDA,二是一個一次性隨機(jī)數(shù)N1,用于惟一地標(biāo)識這次業(yè)務(wù)。(一一)公鑰的分配方法公鑰的分配方法 3. 公鑰管理機(jī)構(gòu)公鑰管理機(jī)構(gòu)(續(xù))(續(xù)) B以相同方式從管理機(jī)構(gòu)獲取A的公開鑰(與步驟、類似)。這時,A和B都已安全地得到了對

24、方的公鑰,所以可進(jìn)行保密通信。然而,他們也許還希望有以下兩步,以認(rèn)證對方。(一一)公鑰的分配方法公鑰的分配方法 3. 公鑰管理機(jī)構(gòu)公鑰管理機(jī)構(gòu)(續(xù))(續(xù)) B用PKA對一個消息加密后發(fā)往A,該消息的數(shù)據(jù)項(xiàng)有A的一次性隨機(jī)數(shù)N1和B產(chǎn)生的一個一次性隨機(jī)數(shù)N2。因?yàn)橹挥蠦能解密的消息,所以A收到的消息中的N1可使其相信通信的另一方的確是B。 A用B的公開鑰對N2加密后返回給B,可使B相信通信的另一方的確是A。以上過程共發(fā)送了7個消息,其中前4個消息用于獲取對方的公開鑰。用戶得到對方的公開鑰后保存起來可供以后使用,這樣就不必再發(fā)送前4個消息了,然而還必須定期地通過密鑰管理中心獲取通信對方的公開鑰,以

25、免對方的公開鑰更新后無法保證當(dāng)前的通信。8.4 公鑰密碼體制中的密鑰管理公鑰密碼體制中的密鑰管理(一一)公鑰的分配方法公鑰的分配方法(續(xù))(續(xù))4. 公鑰證書上述公鑰管理機(jī)構(gòu)分配公開鑰時也有缺點(diǎn),由于每一用戶要想和他人聯(lián)系都需求助于管理機(jī)構(gòu),所以管理機(jī)構(gòu)有可能成為系統(tǒng)的瓶頸,而且由管理機(jī)構(gòu)維護(hù)的公鑰目錄表也易被敵手竄擾。(一一)公鑰的分配方法公鑰的分配方法 4. 公鑰證書公鑰證書(續(xù))(續(xù))n分配公鑰的另一方法是公鑰證書,用戶通過公鑰證書來互相交換自己的公鑰而無須與公鑰管理機(jī)構(gòu)聯(lián)系。公鑰證書由證書管理機(jī)構(gòu)CA(certificate authority)為用戶建立,其中的數(shù)據(jù)項(xiàng)有與該用戶的秘密

26、鑰相匹配的公開鑰及用戶的身份和時戳等,所有的數(shù)據(jù)項(xiàng)經(jīng)CA用自己的秘密鑰簽字后就形成證書,即證書的形式為CA=ESKCAT,IDA,PKA,其中IDA是用戶A的身份,PKA是A的公鑰,T是當(dāng)前時戳,SKCA是CA的秘密鑰,CA即是為用戶A產(chǎn)生的證書。產(chǎn)生過程如圖5.5所示。用戶可將自己的公開鑰通過公鑰證書發(fā)給另一用戶,接收方可用CA的公鑰PKCA對證書加以驗(yàn)證,即DPKCACA=DPKCAESKCAT,IDA,PKA=(T,IDA,PKA)n因?yàn)橹挥杏肅A的公鑰才能解讀證書,接收方從而驗(yàn)證了證書的確是由CA發(fā)放的,且也獲得了發(fā)送方的身份IDA和公開鑰PKA。時戳T為接收方保證了收到的證書的新鮮性

27、,用以防止發(fā)送方或敵方重放一舊證書。因此時戳可被當(dāng)作截止日期,證書如果過舊,則被吊銷。8.4 公鑰密碼體制中的密鑰管理公鑰密碼體制中的密鑰管理(二二)用公鑰加密來分配對稱密鑰用公鑰加密來分配對稱密鑰1. 簡單分配如果A希望與B通信,可通過以下幾步建立會話密鑰: A產(chǎn)生自己的一對密鑰PKA,SKA,并向B發(fā)送PKA|IDA,其中IDA表示A的身份。 B產(chǎn)生會話密鑰KS,并用A的公開鑰PKA對KS加密后發(fā)往A。 A由DSKAEPKAKS恢復(fù)會話密鑰。因?yàn)橹挥蠥能解讀KS,所以僅A、B知道這一共享密鑰。 A銷毀PKA,SKA,B銷毀PKA。8.4 公鑰密碼體制中的密鑰管理公鑰密碼體制中的密鑰管理(二

28、二)用公鑰加密來分配對稱密鑰用公鑰加密來分配對稱密鑰(續(xù)續(xù))n2. 具有保密性和真實(shí)性的密鑰分配假定A、B雙方已完成公鑰交換,可按以下步驟建立共享會話密鑰: A用B的公開鑰加密A的身份IDA和一個一次性隨機(jī)數(shù)N1后發(fā)往B,其中N1用于惟一地標(biāo)識這一業(yè)務(wù)。(二二)用公鑰加密來分配對稱密鑰用公鑰加密來分配對稱密鑰2.具有保密性和真實(shí)性的密鑰分配具有保密性和真實(shí)性的密鑰分配(續(xù)續(xù)) B用A的公開鑰PKA加密A的一次性隨機(jī)數(shù)N1和B新產(chǎn)生的一次性隨機(jī)數(shù)N2后發(fā)往A。因?yàn)橹挥蠦能解讀中的加密,所以B發(fā)來的消息中N1的存在可使A相信對方的確是B。 A用B的公鑰PKB對N2加密后返回給B,以使B相信對方的確

29、是A。 A選一會話密鑰KS,然后將M=EPKBESKAKS發(fā)給B,其中用B的公開鑰加密是為保證只有B能解讀加密結(jié)果,用A的秘密鑰加密是保證該加密結(jié)果只有A能發(fā)送。 B以DPKADSKBM恢復(fù)會話密鑰。8.4 公鑰密碼體制中的密鑰管理公鑰密碼體制中的密鑰管理(三三)Diffie-Hellman密鑰交換密鑰交換nDiffie-Hellman密鑰交換協(xié)議易受中間人攻擊。8.5 密鑰管理系統(tǒng)密鑰管理系統(tǒng)8.5 密鑰管理系統(tǒng)密鑰管理系統(tǒng)(續(xù))(續(xù))密鑰管理覆蓋了密鑰的整個生命周期,包括:(1)用戶注冊用戶注冊。在此階段,一個實(shí)體成為一個安全域中的授權(quán)成員。這包括通過一個安全的、一次性技術(shù)實(shí)現(xiàn)初始密鑰材料

30、(如共享的口令或PIN)的獲取、創(chuàng)建或交換。(2)系統(tǒng)和用戶初始化系統(tǒng)和用戶初始化。系統(tǒng)初始化包括建立、配置一個用于安全操作的系統(tǒng)。用戶初始化由一個實(shí)體初始化他的加密應(yīng)用(如軟件,硬件的安裝和初始化),它包括用戶或用戶登記期間所獲得的初始密鑰材料的安裝。(3)密鑰裝入密鑰裝入。密鑰材料(指用于生產(chǎn)密鑰的一些系統(tǒng)要素)安裝的安全性是整個系統(tǒng)的關(guān)鍵。在本階段,密鑰材料在一個實(shí)體的軟件、硬件中安裝以便使用。安裝時可使用的技術(shù)包括:手工輸入口令或PIN,磁盤交換,ROM設(shè)備,芯片卡或別的硬件設(shè)備。初始密鑰材料可用于建立安全的在線會話實(shí)現(xiàn)工作密鑰的建立。當(dāng)上述項(xiàng)目第一次建立時,新的密鑰材料要加入到現(xiàn)有的

31、密鑰材料中或現(xiàn)有密鑰材料需要被取代時,需要進(jìn)行密鑰材料的安裝。 8.5 密鑰管理系統(tǒng)密鑰管理系統(tǒng)(續(xù))(續(xù))(4)密鑰生成密鑰生成。密鑰的生成應(yīng)包括一定的措施以確保用于目標(biāo)應(yīng)用或算法的必要屬性,也包括可預(yù)見概率的隨機(jī)性。一個實(shí)體可以生成自己的密鑰,也可以從可信的系統(tǒng)處獲取。(5)密鑰注冊密鑰注冊。在密鑰登記期間,密鑰材料被登記下來,并與一定實(shí)體的信息和屬性綁定在一起。信息典型的包括與密鑰材料相關(guān)的實(shí)體的身份,但也可以包括認(rèn)證信息或指定信任級別。如認(rèn)證生成公鑰證書,并通過一個公開目錄或其他方式使之對別人可用。(6)密鑰使用密鑰使用。密鑰管理生命周期的目的就是要方便密鑰材料的使用。通常情況下,密鑰

32、在有效期之內(nèi)都可以使用。這里還可以細(xì)分,如一個公鑰對中,某種情況下公鑰可能不再能用于加密,但對應(yīng)的私鑰可以保留用于解密。(7)密鑰備份密鑰備份。在獨(dú)立的安全存儲媒體中的密鑰材料的副本為密鑰的恢復(fù)提供了數(shù)據(jù)源。備份是指在操作使用期間的短期存儲。8.5 密鑰管理系統(tǒng)密鑰管理系統(tǒng)(續(xù))(續(xù))(8)密鑰存檔密鑰存檔。當(dāng)密鑰材料不再正常使用時,需要對其進(jìn)行存檔,以便在某種情況下特別需要時能夠?qū)ζ溥M(jìn)行檢索。存檔指的是對過了有效期的密鑰進(jìn)行長期的離線保存。(9)密鑰更新密鑰更新。在密鑰有效期快要結(jié)束時,如果有繼續(xù)對該密鑰加密的內(nèi)容進(jìn)行保護(hù)的需要,該密鑰需要由一個新的密鑰來取代,這就是密鑰的更新。密鑰更新可以

33、通過再生密鑰取代原有密鑰的方式來實(shí)現(xiàn)。(10)密鑰恢復(fù)密鑰恢復(fù)。從備份或檔案中檢索密鑰材料的過程稱為密鑰恢復(fù)。如果密鑰材料因?yàn)槟撤N原因丟失,同時又沒有安全威脅的風(fēng)險,則可以從原有的安全備份中恢復(fù)密鑰。(11)密鑰注銷與銷毀密鑰注銷與銷毀。當(dāng)不再需要保留密鑰材料或不再需要維護(hù)它與某個實(shí)體的聯(lián)系時,該密鑰應(yīng)該被取消登記,即所有的密鑰材料及其相關(guān)的記錄應(yīng)從所有現(xiàn)有密鑰的正式記錄中清除,所有的密鑰備份應(yīng)被銷毀。任何存儲過密鑰材料的媒體應(yīng)該被安全刪除以消除密鑰材料的所有信息,使得它不可以被物理的或電子的方式恢復(fù)。 8.5 密鑰管理系統(tǒng)密鑰管理系統(tǒng)(續(xù))(續(xù))(12)密鑰撤銷密鑰撤銷。在密鑰的正常的生命周

34、期結(jié)束之前,將密鑰撤銷有時是必要的,如密鑰的安全受到威脅,實(shí)體發(fā)生組織關(guān)系的變動等。這通過通知所有可能使用該密鑰材料的實(shí)體來實(shí)現(xiàn),通知應(yīng)包括密鑰材料的完整ID、撤銷的日期時間、撤銷的原因等。對于基于證書分發(fā)的公鑰,密鑰的撤銷則包括撤銷相應(yīng)的證書。基于所提供的撤銷信息,別的實(shí)體能夠決定該如何處理受到撤銷密鑰保護(hù)的信息。密鑰管理階段可分為不同的狀態(tài),這與可用性密切相關(guān)。 (1)使用前(預(yù)運(yùn)行)狀態(tài):密鑰還不能用于正常的密碼操作。(2)使用(運(yùn)行)狀態(tài):密鑰是可用的,并處于正常使用中。(3)使用后(后運(yùn)行)狀態(tài):此狀態(tài)的密鑰不再正常使用,但為了某種目的對其進(jìn)行離線訪問是可行的。(4)過期(報廢)狀態(tài)

35、:此狀態(tài)的密鑰不再可用,所有的密鑰記錄已被刪除。 8.6 認(rèn)證與授權(quán)認(rèn)證與授權(quán)8.6.1對稱認(rèn)證對稱認(rèn)證n2G/2.5G移動通信系統(tǒng): Res = A3 ( Ki, Rand )nEAP-MD5認(rèn)證:Res = MD5( ID | Ki | Rand ) 用戶密碼Ki 響應(yīng)值Res ID 隨機(jī)數(shù)Rand 身份 認(rèn)證 算法 8.6.2非非對稱認(rèn)證對稱認(rèn)證(一一)數(shù)字簽名數(shù)字簽名8.6.2非非對稱認(rèn)證對稱認(rèn)證(二二) ITU-T X.509協(xié)議協(xié)議n其中,Ta和Tb為時戳,Na和Nb是一次性的隨機(jī)數(shù),Xa、Ya、Xb和Yb為用戶數(shù)據(jù),Ka和Kb為加密用的公鑰, Ka-1和Kb-1為簽名用的私鑰。協(xié)議的目的是保證Xa、Xb的完整性和Ya、Yb的保密性。n已有很多文獻(xiàn)指出該協(xié)議存在缺陷。密碼協(xié)議的成熟模型一般為先認(rèn)證(簽名)再加密,而原X.509協(xié)議為先加密再簽名認(rèn)證。一般建議在對Ya和Yb加密前進(jìn)行簽名;不過,除Ya和Yb之外,其他信息都是明文傳輸?shù)模@樣可能還是

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論