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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、 e, 其中 p, q是兩個(gè)相異的大質(zhì)數(shù), e是與(p-1)(q-1)互質(zhì)的數(shù),計(jì)算 n = p*q,e, n便是公鑰;接著, 用歐幾里德擴(kuò)展法計(jì)算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ù)計(jì)算,使得RSA最快的情況也比DES慢上100倍,無(wú)論是軟件還是硬件實(shí)現(xiàn)。速度一直是RSA的缺陷。一般來(lái)說只用于少量數(shù)據(jù)加密和簽名。n總之,RSA是被研究最廣泛的公鑰算法,從提出到現(xiàn)在已經(jīng)二十年,經(jīng)歷了各種攻擊的考驗(yàn),普遍認(rèn)為是當(dāng)

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

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

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

10、能用于簽名驗(yàn)證,不能用于保密或密鑰分配。 nDSA算法的安全性依賴于整數(shù)有限域上的離散對(duì)數(shù)問題,安全強(qiáng)度和速度均低于RSA算法。7.4 橢圓曲線密碼橢圓曲線密碼(ECC)算法算法n(基于基于橢圓曲線上的離散對(duì)數(shù)離散對(duì)數(shù))nECC(橢圓曲線密碼)算法性能優(yōu)越,安全性比RSA算法高多了,速度也比RSA算法快多了,帶寬要求低,曲線資源豐富,易于軟硬件和智能卡實(shí)現(xiàn),已成為新的公鑰密碼和數(shù)字簽名國(guó)際標(biāo)準(zhǔn),并被我國(guó)采納。加拿大和日本向NESSIE提交的幾個(gè)公鑰密碼和數(shù)字簽名算法就是基于ECC的。我國(guó)科研人員陳建華教授在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ù)的生成和存儲(chǔ)也比DSA算法復(fù)雜。nESIGN算法的安全性不低于RSA和DSA,但速度快多了。 8 常用認(rèn)證與密鑰交換算法常用認(rèn)證與密鑰交換算法n認(rèn)證與密鑰交換協(xié)議比較多,可分為兩類:1)對(duì)稱認(rèn)證(與密鑰交換),即常用的口令認(rèn)證,例如EAP-MD5和移動(dòng)通信系統(tǒng)中的AKG(認(rèn)證與密鑰產(chǎn)生)等。2)非對(duì)稱認(rèn)證(與密鑰交換)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

34、期結(jié)束之前,將密鑰撤銷有時(shí)是必要的,如密鑰的安全受到威脅,實(shí)體發(fā)生組織關(guān)系的變動(dòng)等。這通過通知所有可能使用該密鑰材料的實(shí)體來(lái)實(shí)現(xiàn),通知應(yīng)包括密鑰材料的完整ID、撤銷的日期時(shí)間、撤銷的原因等。對(duì)于基于證書分發(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)的密鑰不再正常使用,但為了某種目的對(duì)其進(jìn)行離線訪問是可行的。(4)過期(報(bào)廢)狀態(tài)

35、:此狀態(tài)的密鑰不再可用,所有的密鑰記錄已被刪除。 8.6 認(rèn)證與授權(quán)認(rèn)證與授權(quán)8.6.1對(duì)稱認(rèn)證對(duì)稱認(rèn)證n2G/2.5G移動(dòng)通信系統(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非非對(duì)稱認(rèn)證對(duì)稱認(rèn)證(一一)數(shù)字簽名數(shù)字簽名8.6.2非非對(duì)稱認(rèn)證對(duì)稱認(rèn)證(二二) ITU-T X.509協(xié)議協(xié)議n其中,Ta和Tb為時(shí)戳,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)證。一般建議在對(duì)Ya和Yb加密前進(jìn)行簽名;不過,除Ya和Yb之外,其他信息都是明文傳輸?shù)?,這樣可能還是

溫馨提示

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

評(píng)論

0/150

提交評(píng)論