第5章-消息認(rèn)證、數(shù)字簽名和密鑰管理-改_第1頁(yè)
第5章-消息認(rèn)證、數(shù)字簽名和密鑰管理-改_第2頁(yè)
第5章-消息認(rèn)證、數(shù)字簽名和密鑰管理-改_第3頁(yè)
第5章-消息認(rèn)證、數(shù)字簽名和密鑰管理-改_第4頁(yè)
第5章-消息認(rèn)證、數(shù)字簽名和密鑰管理-改_第5頁(yè)
已閱讀5頁(yè),還剩76頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第五章消息認(rèn)證、數(shù)字簽名和密鑰管理 v 一一. 基本要求與基本知識(shí)點(diǎn)基本要求與基本知識(shí)點(diǎn) (1)掌握認(rèn)證基本概念及方法;)掌握認(rèn)證基本概念及方法; (2)掌握數(shù)字簽名過(guò)程及算法;)掌握數(shù)字簽名過(guò)程及算法; (3)掌握密鑰分配方法。)掌握密鑰分配方法。v 二二. 教學(xué)重點(diǎn)與難點(diǎn)教學(xué)重點(diǎn)與難點(diǎn) (1)認(rèn)證;)認(rèn)證; (2)消息認(rèn)證碼;)消息認(rèn)證碼; (3)Hash函數(shù);函數(shù); (4)MD5算法;算法; (5)數(shù)字簽名及)數(shù)字簽名及DSA算法;算法; (6)對(duì)稱密鑰和公鑰分配方法。)對(duì)稱密鑰和公鑰分配方法。25.1消息認(rèn)證消息認(rèn)證5.1.1認(rèn)證認(rèn)證v加密是為了保證消息的保密性,而認(rèn)證則是防止主加密

2、是為了保證消息的保密性,而認(rèn)證則是防止主動(dòng)攻擊的重要技術(shù),是用于保證消息的完整性。動(dòng)攻擊的重要技術(shù),是用于保證消息的完整性。v常見(jiàn)的常見(jiàn)的認(rèn)證技術(shù)認(rèn)證技術(shù)包括消息認(rèn)證碼(包括消息認(rèn)證碼(MAC)和安全散)和安全散列函數(shù)(列函數(shù)(Hash函數(shù))。函數(shù))。v認(rèn)證的認(rèn)證的目的目的主要有:主要有:第一,驗(yàn)證消息的發(fā)送者是合法的,不是冒充的,第一,驗(yàn)證消息的發(fā)送者是合法的,不是冒充的,這稱為這稱為實(shí)體認(rèn)證實(shí)體認(rèn)證,包括對(duì)信源、信宿等的認(rèn)證和,包括對(duì)信源、信宿等的認(rèn)證和識(shí)別;識(shí)別;第二,驗(yàn)證信息本身的完整性,這稱為第二,驗(yàn)證信息本身的完整性,這稱為消息認(rèn)證消息認(rèn)證,驗(yàn)證數(shù)據(jù)在傳送或存儲(chǔ)過(guò)程中沒(méi)有被篡改、重

3、放驗(yàn)證數(shù)據(jù)在傳送或存儲(chǔ)過(guò)程中沒(méi)有被篡改、重放或延遲等。或延遲等。3v一個(gè)基本的認(rèn)證系統(tǒng)一個(gè)基本的認(rèn)證系統(tǒng)模型模型如圖如圖5-1所示:所示:發(fā)送者通過(guò)一個(gè)公開(kāi)信道將信息傳給接收者;發(fā)送者通過(guò)一個(gè)公開(kāi)信道將信息傳給接收者;接收者在收到消息的同時(shí),還收到認(rèn)證碼,用于接收者在收到消息的同時(shí),還收到認(rèn)證碼,用于驗(yàn)證消息是否來(lái)自合法的發(fā)送者以及消息是否被驗(yàn)證消息是否來(lái)自合法的發(fā)送者以及消息是否被篡改。篡改。圖 5-1 基本的認(rèn)證系統(tǒng)模型4v認(rèn)證碼認(rèn)證碼是具有認(rèn)證功能的數(shù)值,常用的產(chǎn)生認(rèn)證是具有認(rèn)證功能的數(shù)值,常用的產(chǎn)生認(rèn)證碼的函數(shù)有兩類:碼的函數(shù)有兩類:消息認(rèn)證碼消息認(rèn)證碼MAC(Message Auth

4、entication Code):它是消息和密鑰的函數(shù),產(chǎn)生定長(zhǎng)的):它是消息和密鑰的函數(shù),產(chǎn)生定長(zhǎng)的值,該值作為消息的認(rèn)證碼。值,該值作為消息的認(rèn)證碼。散列函數(shù)散列函數(shù)(Hash函數(shù)):它是將任意長(zhǎng)度的消函數(shù)):它是將任意長(zhǎng)度的消息映射為定長(zhǎng)的息映射為定長(zhǎng)的Hash值的函數(shù),以該值的函數(shù),以該Hash值值作為認(rèn)證碼。作為認(rèn)證碼。55.1.2 消息認(rèn)證碼消息認(rèn)證碼 v消息認(rèn)證碼消息認(rèn)證碼,簡(jiǎn)稱,簡(jiǎn)稱MAC (Message Authentication Code),是一種使用密鑰的認(rèn)證技術(shù),它利用密鑰,是一種使用密鑰的認(rèn)證技術(shù),它利用密鑰來(lái)生成一個(gè)固定長(zhǎng)度的短數(shù)據(jù)塊,并將該數(shù)據(jù)塊附來(lái)生成一個(gè)固

5、定長(zhǎng)度的短數(shù)據(jù)塊,并將該數(shù)據(jù)塊附加在消息之后,也稱為加在消息之后,也稱為密碼校驗(yàn)和密碼校驗(yàn)和。v假定通信雙方假定通信雙方A和和B共享密鑰共享密鑰K。若。若A向向B發(fā)送消息發(fā)送消息M時(shí),則時(shí),則A使用消息使用消息M和密鑰和密鑰K,計(jì)算:,計(jì)算:MACC(K,M)其中,其中,M是輸入的消息,可變長(zhǎng);是輸入的消息,可變長(zhǎng); K是共享密鑰;是共享密鑰; C是消息認(rèn)證碼函數(shù);是消息認(rèn)證碼函數(shù);MAC是消息認(rèn)證碼。是消息認(rèn)證碼。v只有擁有密鑰的消息發(fā)送方和接收方可以通過(guò)只有擁有密鑰的消息發(fā)送方和接收方可以通過(guò)生成生成消息認(rèn)證碼來(lái)消息認(rèn)證碼來(lái)驗(yàn)證驗(yàn)證消息的完整性。消息的完整性。v如圖如圖5-2所示,為消息認(rèn)

6、證碼的使用。所示,為消息認(rèn)證碼的使用。6圖5-2 認(rèn)證性 7v(1)發(fā)送方將消息)發(fā)送方將消息M和和MAC一起發(fā)送給接收方。一起發(fā)送給接收方。v(2)接收方受到消息后,假設(shè)為)接收方受到消息后,假設(shè)為M,使用相同的,使用相同的密鑰密鑰K,計(jì)算新的,計(jì)算新的MAC= C(K,M),比較,比較MAC和和所收到的所收到的MAC。如果計(jì)算得出的。如果計(jì)算得出的MAC和收到的和收到的MAC是相同的,則可認(rèn)為:是相同的,則可認(rèn)為:接收方可以相信接收方可以相信消息未被修改消息未被修改。因?yàn)槿艄粽?。因?yàn)槿艄粽叽鄹牧讼?,他必須同時(shí)相應(yīng)地修改篡改了消息,他必須同時(shí)相應(yīng)地修改MAC值,值,但攻擊者不知道密鑰,

7、因此他不能在篡改消息但攻擊者不知道密鑰,因此他不能在篡改消息后相應(yīng)地篡改后相應(yīng)地篡改MAC,而如果僅篡改消息,則接,而如果僅篡改消息,則接收方計(jì)算的新收方計(jì)算的新MAC將與收到的不同。將與收到的不同。接收方可以相信接收方可以相信消息來(lái)自與真正的發(fā)送方消息來(lái)自與真正的發(fā)送方。因。因?yàn)槠渌鞣骄恢烂荑€,他們不能產(chǎn)生具有為其他各方均不知道密鑰,他們不能產(chǎn)生具有正確正確MAC的消息。的消息。8v圖圖5-2 給出的消息認(rèn)證碼的使用只是對(duì)傳送消息提給出的消息認(rèn)證碼的使用只是對(duì)傳送消息提供單純的供單純的認(rèn)證性認(rèn)證性,它還可以和加密函數(shù)一起同時(shí)提,它還可以和加密函數(shù)一起同時(shí)提供供消息認(rèn)證和保密性消息認(rèn)證和

8、保密性,如圖如圖5-3所示所示。v(1)發(fā)送方先計(jì)算消息)發(fā)送方先計(jì)算消息M的認(rèn)證碼,然后使用加的認(rèn)證碼,然后使用加密秘鑰將消息和認(rèn)證碼一并加密;密秘鑰將消息和認(rèn)證碼一并加密;v(2)接收方收到后,先解密得到的消息及其認(rèn)證)接收方收到后,先解密得到的消息及其認(rèn)證碼,再計(jì)算解密所得消息的新認(rèn)證碼,驗(yàn)證新認(rèn)證碼,再計(jì)算解密所得消息的新認(rèn)證碼,驗(yàn)證新認(rèn)證碼和收到的認(rèn)證碼是否匹配,如果匹配則表示消息碼和收到的認(rèn)證碼是否匹配,如果匹配則表示消息在傳輸過(guò)程中沒(méi)有被改動(dòng)。在傳輸過(guò)程中沒(méi)有被改動(dòng)。vMAC函數(shù)和加密函數(shù)類似,不同之處是函數(shù)和加密函數(shù)類似,不同之處是MAC函數(shù)函數(shù)不必是可逆不必是可逆的,而加密函

9、數(shù)的,而加密函數(shù)必須是可逆的必須是可逆的,因此與,因此與加密函數(shù)相比更不易被攻破。加密函數(shù)相比更不易被攻破。9圖5-3 認(rèn)證性和保密性 返回返回105.1.3 Hash函數(shù)函數(shù)vHash函數(shù)函數(shù)(也稱散列函數(shù)或雜湊函數(shù)也稱散列函數(shù)或雜湊函數(shù))是將任意長(zhǎng)是將任意長(zhǎng)的輸入消息作為輸入,生成一個(gè)固定長(zhǎng)的輸出串的輸入消息作為輸入,生成一個(gè)固定長(zhǎng)的輸出串的函數(shù),即的函數(shù),即h=H(m)。這個(gè)輸出串。這個(gè)輸出串h稱為該消息的稱為該消息的散列值散列值(或消息摘要,或雜湊值)。(或消息摘要,或雜湊值)。 vHash函數(shù)函數(shù)的值只是的值只是輸入消息輸入消息的函數(shù),的函數(shù),無(wú)需輸入密無(wú)需輸入密碼碼,只要輸入消息有

10、任何變化,就會(huì)導(dǎo)致不同的,只要輸入消息有任何變化,就會(huì)導(dǎo)致不同的散列值輸出,因此將散列值輸出,因此將Hash函數(shù)的值作為認(rèn)證碼,函數(shù)的值作為認(rèn)證碼,用于實(shí)現(xiàn)用于實(shí)現(xiàn)消息認(rèn)證消息認(rèn)證。11v安全的安全的Hash函數(shù)的要求:函數(shù)的要求:H可以應(yīng)用于任意長(zhǎng)度的數(shù)據(jù)塊,產(chǎn)生固定長(zhǎng)度可以應(yīng)用于任意長(zhǎng)度的數(shù)據(jù)塊,產(chǎn)生固定長(zhǎng)度的散列值;的散列值;對(duì)每一個(gè)給定的輸入對(duì)每一個(gè)給定的輸入m,計(jì)算,計(jì)算H(m)是很容易的;是很容易的;給定給定Hash函數(shù)的描述,對(duì)于給定的散列值函數(shù)的描述,對(duì)于給定的散列值h,找,找到滿足到滿足H(m) = h的的m在計(jì)算上是不可行的(單向在計(jì)算上是不可行的(單向性,保證攻擊者無(wú)法通

11、過(guò)散列值性,保證攻擊者無(wú)法通過(guò)散列值h獲得消息獲得消息m););給定給定Hash函數(shù)的描述,對(duì)于給定的消息函數(shù)的描述,對(duì)于給定的消息m1,找,找到滿足到滿足m2 m1且且H(m2)=H(m1)的的m2,在計(jì)算上是,在計(jì)算上是不可行的(不可行的(弱抗碰撞性弱抗碰撞性,保證攻擊者無(wú)法實(shí)現(xiàn)在,保證攻擊者無(wú)法實(shí)現(xiàn)在不修改散列值的情況下替換消息。);不修改散列值的情況下替換消息。);給定給定Hash函數(shù)的描述,找到任何滿足函數(shù)的描述,找到任何滿足H(m1)=H(m2)且且m1 m2的消息對(duì)的消息對(duì)(m1,m2),在,在計(jì)算上是不可行的(計(jì)算上是不可行的(強(qiáng)抗碰撞性強(qiáng)抗碰撞性)12vHash函數(shù)函數(shù)沒(méi)有密

12、鑰,在沒(méi)有密鑰,在Hash函數(shù)函數(shù)公開(kāi)的情況下,公開(kāi)的情況下,任何人都可以根據(jù)輸入的消息計(jì)算其散列值任何人都可以根據(jù)輸入的消息計(jì)算其散列值h。故。故在安全通信中,常常需要將密鑰或秘密信息與在安全通信中,常常需要將密鑰或秘密信息與Hash函數(shù)函數(shù)結(jié)合結(jié)合起來(lái)對(duì)消息認(rèn)證。起來(lái)對(duì)消息認(rèn)證。v在安全通信中,在安全通信中,Hash函數(shù)函數(shù)和和對(duì)稱密碼對(duì)稱密碼、非對(duì)稱密非對(duì)稱密碼碼結(jié)合使用提供認(rèn)證性。如圖結(jié)合使用提供認(rèn)證性。如圖5-4是幾種是幾種Hash函數(shù)函數(shù)用于認(rèn)證的基本應(yīng)用。用于認(rèn)證的基本應(yīng)用。13圖5-4 Hash函數(shù)用于認(rèn)證的基本應(yīng)用 v圖圖5-4(a),是采用對(duì)稱密碼,是采用對(duì)稱密碼先先使用使

13、用Hash函數(shù)計(jì)算函數(shù)計(jì)算消息消息M的散列值,的散列值,再再使用密鑰使用密鑰K對(duì)消息的散列值進(jìn)對(duì)消息的散列值進(jìn)行加密。行加密。該認(rèn)證方式類似于該認(rèn)證方式類似于MAC。v圖圖5-4(b),提供了保密性和認(rèn)證性提供了保密性和認(rèn)證性。145.1.4 MD5 1、MD5算法算法vMD5的輸入可以是任意長(zhǎng)度的消息,其輸出是的輸入可以是任意長(zhǎng)度的消息,其輸出是128位的消息散列值。位的消息散列值。vMD5的所有基本運(yùn)算都是針對(duì)的所有基本運(yùn)算都是針對(duì)32位運(yùn)算單元的。位運(yùn)算單元的。算法主要過(guò)程如圖算法主要過(guò)程如圖5-5所示。所示。15圖5-5 MD5算法主要過(guò)程 16v(1)添加填充位添加填充位:任意長(zhǎng)度:

14、任意長(zhǎng)度L的消息首先需要進(jìn)的消息首先需要進(jìn)行填充處理,使得填充后的消息總長(zhǎng)度與行填充處理,使得填充后的消息總長(zhǎng)度與448模模512具有相同余數(shù)(即填充后的消息長(zhǎng)度具有相同余數(shù)(即填充后的消息長(zhǎng)度 448 (mod 512)。)。填充的方法是在消息后面添加一位填充的方法是在消息后面添加一位“1”,后續(xù),后續(xù)都是都是“0”。(如果消息長(zhǎng)度正好為。(如果消息長(zhǎng)度正好為448位,則位,則仍需要填充仍需要填充512位,填充后的消息長(zhǎng)度為位,填充后的消息長(zhǎng)度為448+512=960位。)位。)v(2)添加原始消息長(zhǎng)度添加原始消息長(zhǎng)度:在填充后的消息后面再:在填充后的消息后面再添加一個(gè)添加一個(gè)64位的二進(jìn)制

15、整數(shù),表示填充前原始消位的二進(jìn)制整數(shù),表示填充前原始消息的長(zhǎng)度息的長(zhǎng)度L。這時(shí)經(jīng)過(guò)處理后的消息長(zhǎng)度正好是。這時(shí)經(jīng)過(guò)處理后的消息長(zhǎng)度正好是512位的倍數(shù)。位的倍數(shù)。17圖5-5 MD5算法主要過(guò)程 18v(3)初始值(初始值(IV)的初始化)的初始化:MD5中有四個(gè)中有四個(gè)32位位緩沖區(qū),用(緩沖區(qū),用(A, B, C, D)表示,用來(lái)存儲(chǔ)散列計(jì))表示,用來(lái)存儲(chǔ)散列計(jì)算的中間結(jié)果和最終結(jié)果,緩沖區(qū)中的值被稱為鏈算的中間結(jié)果和最終結(jié)果,緩沖區(qū)中的值被稱為鏈接變量。接變量。首先將其分別初始化為:首先將其分別初始化為:A=0 x01234567,B=0 x89abcdef,C=0 xfedcba98,

16、D=0 x76543210。19v(4)以)以512位的分組為單位對(duì)消息進(jìn)行位的分組為單位對(duì)消息進(jìn)行循環(huán)散列循環(huán)散列計(jì)算計(jì)算:經(jīng)過(guò)處理的消息,以:經(jīng)過(guò)處理的消息,以512位為單位,分成位為單位,分成N個(gè)分組:個(gè)分組:Y0,Y1,YN-1。MD5對(duì)每個(gè)分組進(jìn)行散列處理,即對(duì)每個(gè)分組進(jìn)行散列處理,即 HMD5:0,1128+5120,1128每一輪的處理會(huì)對(duì)(每一輪的處理會(huì)對(duì)(A,B,C,D)進(jìn)行更新。)進(jìn)行更新。v第第4步中的循環(huán)散列計(jì)算步中的循環(huán)散列計(jì)算HMD5又稱又稱MD5的的壓縮函壓縮函數(shù)數(shù),是,是MD5算法的核心,每輪處理都相似。算法的核心,每輪處理都相似。v每輪都以當(dāng)前處理的每輪都以當(dāng)

17、前處理的512bit分組分組Yi和和128bit緩沖區(qū)緩沖區(qū)(A, B, C, D)CVi作為作為輸入輸入,直接在緩沖區(qū)(,直接在緩沖區(qū)(A, B, C, D)內(nèi)進(jìn)行)內(nèi)進(jìn)行運(yùn)算運(yùn)算,輸出輸出128bit 的的CVi+1仍存放仍存放在緩沖區(qū)(在緩沖區(qū)(A, B, C, D)中,作為下一輪處理的輸)中,作為下一輪處理的輸入。入。20圖5-5 MD5算法主要過(guò)程 21v(5)輸出散列值輸出散列值:所有的:所有的N個(gè)分組消息都處理完個(gè)分組消息都處理完后,最后一輪得到的四個(gè)緩沖區(qū)的值即為整個(gè)消后,最后一輪得到的四個(gè)緩沖區(qū)的值即為整個(gè)消息的息的128位散列值。位散列值。 22 2、MD5安全性安全性v2

18、004年年8月,在美國(guó)召開(kāi)的國(guó)際密碼學(xué)會(huì)議月,在美國(guó)召開(kāi)的國(guó)際密碼學(xué)會(huì)議(Crypto2004)上,王小云教授給出破解)上,王小云教授給出破解MD5算算法的報(bào)告,提出了一個(gè)非常高效的尋找碰撞的方法,法的報(bào)告,提出了一個(gè)非常高效的尋找碰撞的方法,可以在數(shù)個(gè)小時(shí)內(nèi)找到可以在數(shù)個(gè)小時(shí)內(nèi)找到MD5的碰撞。的碰撞。MD5算法的算法的抗密碼分析能力弱,不應(yīng)當(dāng)再使用??姑艽a分析能力弱,不應(yīng)當(dāng)再使用。(對(duì)一個(gè)(對(duì)一個(gè)512分組,分組,MD5的函數(shù)的函數(shù)HMD5對(duì)緩沖區(qū)對(duì)緩沖區(qū)ABCD的不同值產(chǎn)生相同的輸出,這種情況稱為碰的不同值產(chǎn)生相同的輸出,這種情況稱為碰撞。由于碰撞的存在,使撞。由于碰撞的存在,使攻擊者可

19、以在不修改散列攻擊者可以在不修改散列值的情況下成功替換了消息。)值的情況下成功替換了消息。)235.2 數(shù)字簽名數(shù)字簽名v消息認(rèn)證的作用是保護(hù)通信雙方保護(hù)消息不被第消息認(rèn)證的作用是保護(hù)通信雙方保護(hù)消息不被第三方篡改擊,然而卻不能防范通信雙方相互欺騙三方篡改擊,然而卻不能防范通信雙方相互欺騙或偽造。因此在收發(fā)雙方未建立起完全信任關(guān)系或偽造。因此在收發(fā)雙方未建立起完全信任關(guān)系的情況下,單純的消息認(rèn)證是不夠的,數(shù)字簽名的情況下,單純的消息認(rèn)證是不夠的,數(shù)字簽名可有效解決這一問(wèn)題??捎行Ы鉀Q這一問(wèn)題。v本節(jié)主要介紹數(shù)字簽名特點(diǎn)和數(shù)字簽名算法本節(jié)主要介紹數(shù)字簽名特點(diǎn)和數(shù)字簽名算法DSA。245.2.1

20、數(shù)字簽名特點(diǎn)v簽名是用于證明當(dāng)事人的簽名是用于證明當(dāng)事人的身份身份和和消息消息真實(shí)性的一真實(shí)性的一種信息。種信息。v數(shù)字簽名的目的是提供一種手段,使得一個(gè)實(shí)體數(shù)字簽名的目的是提供一種手段,使得一個(gè)實(shí)體把自己的身份與某信息捆綁在一起。把自己的身份與某信息捆綁在一起。v數(shù)字簽名也是一種認(rèn)證機(jī)制,數(shù)字簽名技術(shù)是網(wǎng)數(shù)字簽名也是一種認(rèn)證機(jī)制,數(shù)字簽名技術(shù)是網(wǎng)絡(luò)環(huán)境中確認(rèn)身份、提供消息完整性和保證信息絡(luò)環(huán)境中確認(rèn)身份、提供消息完整性和保證信息來(lái)源的重要技術(shù),可以提供和現(xiàn)實(shí)中的來(lái)源的重要技術(shù),可以提供和現(xiàn)實(shí)中的“親筆簽親筆簽名名”相似的效果,在技術(shù)上和法律上都有保證。相似的效果,在技術(shù)上和法律上都有保證。2

21、5v數(shù)字簽名需要滿足以下條件:數(shù)字簽名需要滿足以下條件:(1)任何人不能偽造簽名人的簽名;)任何人不能偽造簽名人的簽名;(2)任何人都可以證實(shí)簽名人對(duì)信息的簽名;)任何人都可以證實(shí)簽名人對(duì)信息的簽名;(3)簽名人不能否認(rèn)自己的簽名。當(dāng)通信雙)簽名人不能否認(rèn)自己的簽名。當(dāng)通信雙方為此發(fā)生爭(zhēng)執(zhí)時(shí),可由第三方仲裁解決。方為此發(fā)生爭(zhēng)執(zhí)時(shí),可由第三方仲裁解決。v數(shù)字簽名是公鑰密碼學(xué)發(fā)展過(guò)程中的一個(gè)重要組數(shù)字簽名是公鑰密碼學(xué)發(fā)展過(guò)程中的一個(gè)重要組成部分,是公鑰密碼算法的典型應(yīng)用。成部分,是公鑰密碼算法的典型應(yīng)用。v公鑰密碼體制可以滿足數(shù)字簽名的條件,采用公公鑰密碼體制可以滿足數(shù)字簽名的條件,采用公鑰密碼體

22、制的數(shù)字簽名過(guò)程描述如下:鑰密碼體制的數(shù)字簽名過(guò)程描述如下:26v設(shè)設(shè)sender向向receiver發(fā)送消息發(fā)送消息message,(1)sender計(jì)算:計(jì)算:c=D(message)對(duì)對(duì)message簽名。簽名。D是是解密變換解密變換,所使用密鑰為,所使用密鑰為sender私有,任何其他人都不知道私有,任何其他人都不知道sender的的私鑰私鑰,因此不能偽造,因此不能偽造sender的簽名;的簽名;(2)receiver通過(guò)檢查通過(guò)檢查E(c)是否恢復(fù)可為是否恢復(fù)可為message來(lái)驗(yàn)證來(lái)驗(yàn)證sender的簽名。的簽名。E是是加密變換加密變換,是是D的逆變換,使用的是的逆變換,使用的是s

23、ender的的公鑰公鑰,因此,因此任何人都可以證實(shí)任何人都可以證實(shí)sender對(duì)對(duì)message的簽名。的簽名。(3)如果)如果sender和和receiver之間發(fā)生爭(zhēng)執(zhí),之間發(fā)生爭(zhēng)執(zhí),仲裁者可以使用(仲裁者可以使用(2)的方法鑒定)的方法鑒定sender的簽的簽名。名。Sender無(wú)法抵賴否認(rèn)自己的簽名。無(wú)法抵賴否認(rèn)自己的簽名。27例如:數(shù)字簽名用于認(rèn)證的基本應(yīng)用例如:數(shù)字簽名用于認(rèn)證的基本應(yīng)用 v(1)使用)使用Hash函數(shù)計(jì)算消息函數(shù)計(jì)算消息M的散列值;的散列值;v(2)使用發(fā)送方的私鑰)使用發(fā)送方的私鑰PRa對(duì)消息的散列值進(jìn)行對(duì)消息的散列值進(jìn)行數(shù)字簽名。數(shù)字簽名。v既提供消息的認(rèn)證性

24、,又保證效率既提供消息的認(rèn)證性,又保證效率(不是對(duì)(不是對(duì)M數(shù)數(shù)字簽名,而是對(duì)字簽名,而是對(duì)M的散列值數(shù)字簽名)。的散列值數(shù)字簽名)。28對(duì)比 v 公鑰加密:發(fā)送方公鑰加密:發(fā)送方A用接收方的用接收方的公鑰公鑰PUB對(duì)明對(duì)明文做文做加密變換加密變換E,將產(chǎn)生的密文,將產(chǎn)生的密文C發(fā)給接收方發(fā)給接收方B。接收方接收方B用自己的用自己的PRB私鑰私鑰對(duì)密文做對(duì)密文做解密變換解密變換D。由于只有接收方擁有該私鑰,因此只有接收方才由于只有接收方擁有該私鑰,因此只有接收方才能解密密文,得到明文;能解密密文,得到明文;v 數(shù)字簽名:發(fā)送方數(shù)字簽名:發(fā)送方A用自己的用自己的私鑰私鑰PRA對(duì)消息對(duì)消息做做解密

25、變換解密變換D,將產(chǎn)生的簽名,將產(chǎn)生的簽名C發(fā)給接收方。接收發(fā)給接收方。接收方用發(fā)送方的方用發(fā)送方的公鑰公鑰PUA對(duì)簽名進(jìn)行對(duì)簽名進(jìn)行加密變換加密變換E,以,以確定簽名是否有效。確定簽名是否有效。 只有擁有私鑰的發(fā)送方才能對(duì)消息產(chǎn)生有效簽名,只有擁有私鑰的發(fā)送方才能對(duì)消息產(chǎn)生有效簽名,任何其它人無(wú)法偽造發(fā)送方的簽名,但都可以用任何其它人無(wú)法偽造發(fā)送方的簽名,但都可以用簽名人的公鑰,證實(shí)簽名的有效性。簽名人的公鑰,證實(shí)簽名的有效性。295.2.2 數(shù)字簽名算法DSAv1991年美國(guó)國(guó)家標(biāo)準(zhǔn)局發(fā)布了數(shù)字簽名標(biāo)準(zhǔn)年美國(guó)國(guó)家標(biāo)準(zhǔn)局發(fā)布了數(shù)字簽名標(biāo)準(zhǔn)DSS (Digital Signature Stan

26、dard),1994年美年美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(NIST ,National Institute of Standards Technology)公布了一公布了一個(gè)數(shù)字簽名算法個(gè)數(shù)字簽名算法DSA (Digital Signature Algorithm)。30v數(shù)字簽名算法數(shù)字簽名算法DSA具體描述如下:具體描述如下:(1)DSA的主要參數(shù)選擇的主要參數(shù)選擇p:是:是L比特長(zhǎng)的素?cái)?shù),比特長(zhǎng)的素?cái)?shù),2L-1p1x:用戶的私鑰,:用戶的私鑰,0 xqy:用戶的公鑰,:用戶的公鑰,y gx (mod p) 其中其中p、q、g作為系統(tǒng)發(fā)布的公共參數(shù)公開(kāi),公鑰作為系統(tǒng)發(fā)布的公共參

27、數(shù)公開(kāi),公鑰y公開(kāi),私鑰公開(kāi),私鑰x保密。保密。31(2)數(shù)字簽名)數(shù)字簽名設(shè)要簽名的消息為設(shè)要簽名的消息為M,0Mp。簽名者隨機(jī)選擇一整數(shù)簽名者隨機(jī)選擇一整數(shù)k,且,且0kq,計(jì)算:計(jì)算:r (gk mod p) (mod q) s k-1 (H(M) + xr) (mod q)其中其中H(M)為散列函數(shù)。為散列函數(shù)。簽名者將簽名者將(r,s)作為對(duì)作為對(duì)M的數(shù)字簽名,與的數(shù)字簽名,與M一起發(fā)送一起發(fā)送給接收方。給接收方。 簽名函數(shù)依賴于發(fā)送者的私鑰簽名函數(shù)依賴于發(fā)送者的私鑰x和一組參數(shù)和一組參數(shù)p、q、g。這些參數(shù)為通信雙方所共用,稱其為全局公鑰這些參數(shù)為通信雙方所共用,稱其為全局公鑰PU

28、G。32圖5-8 (a)DSA簽名v如圖如圖5-8(a)所示,)所示,DSA用用Hash函數(shù)產(chǎn)生消息的函數(shù)產(chǎn)生消息的散列值散列值,和隨機(jī)生成的,和隨機(jī)生成的k作為簽名函數(shù)的作為簽名函數(shù)的輸入輸入,簽,簽名函數(shù)的名函數(shù)的輸出輸出為為r和和s。v數(shù)字簽名包括兩部分:數(shù)字簽名包括兩部分:r和和s。(1) r (gk mod p) (mod q) r=f2(k,p,q,g) (2) s k-1 (H(M) + xr) (mod q) s=f1 H(M),k,x,r,q33(3)驗(yàn)證簽名)驗(yàn)證簽名接收方獲得接收方獲得M和和(r,s),需要驗(yàn)證,需要驗(yàn)證(r,s)是否是對(duì)是否是對(duì)M的簽名。的簽名。首先檢查

29、首先檢查r和和s是否屬于是否屬于0, q,若不是,則,若不是,則(r,s)不是簽名值;否則,不是簽名值;否則,計(jì)算:計(jì)算: w s-1 (mod q) u1(H(M)w) (mod q) u2 rw (mod q) v (gu1yu2 ) mod p) (mod q)如果如果v = r,則所獲得的,則所獲得的(r,s)是是M的合法簽名。的合法簽名。34v如圖如圖5-8 (b)所示,)所示,接收方對(duì)收到的消息計(jì)算接收方對(duì)收到的消息計(jì)算散列散列值值,和收到的,和收到的數(shù)字簽名數(shù)字簽名(r,s)一起作為簽名驗(yàn)證)一起作為簽名驗(yàn)證函數(shù)的函數(shù)的輸入輸入。v驗(yàn)證函數(shù)依賴于驗(yàn)證函數(shù)依賴于全局公鑰全局公鑰和發(fā)

30、送方的和發(fā)送方的公鑰公鑰y。若驗(yàn)證。若驗(yàn)證函數(shù)的輸出等于簽名中的函數(shù)的輸出等于簽名中的r,則簽名合法。,則簽名合法。(1) w s-1 (mod q) w=f3(s,q) (2)v (g(H(M)w) (mod q) y rw (mod q) ) mod p) (mod q) v=f4(y,q,g,H(M),w,r)圖5-8(b) DSA驗(yàn)證35 【以下給出以下給出v=r的證明的證明】v (gu1yu2 ) mod p) (mod q) (gu1gxu2 ) mod p) (mod q) (g(H(m)w) (mod q)gx rw (mod q) ) mod p) (mod q) (g w

31、(H(m)+ x r) (mod q) ) mod p) (mod q) (g (ws)k) mod p) (mod q) (g k (mod q) mod p) (mod q)因?yàn)橐驗(yàn)?kq,所以,所以k (mod q)=k,則有,則有v (g k) mod p) (mod q)故故 v = r #365.3 密鑰管理v 加密系統(tǒng)中,密鑰的分配和管理極其重要和復(fù)雜,加密系統(tǒng)中,密鑰的分配和管理極其重要和復(fù)雜,特別是網(wǎng)絡(luò)的密鑰管理和分配更是一項(xiàng)十分困難特別是網(wǎng)絡(luò)的密鑰管理和分配更是一項(xiàng)十分困難的工作。的工作。375.3.1 密鑰管理簡(jiǎn)介v密鑰管理密鑰管理包括確保產(chǎn)生的密鑰具有必要的特性,包括確

32、保產(chǎn)生的密鑰具有必要的特性,通信雙方事先約定密鑰產(chǎn)生的方法以及密鑰的通信雙方事先約定密鑰產(chǎn)生的方法以及密鑰的保護(hù)等。密鑰管理方法實(shí)質(zhì)上因所使用的密碼保護(hù)等。密鑰管理方法實(shí)質(zhì)上因所使用的密碼體制而異。體制而異。v所有密鑰都有生存期,原因如下:所有密鑰都有生存期,原因如下:一個(gè)密鑰使用太久會(huì)給攻擊者增大收集密鑰一個(gè)密鑰使用太久會(huì)給攻擊者增大收集密鑰的機(jī)會(huì);的機(jī)會(huì);如果一個(gè)密鑰受到危及,那么限定密鑰的使如果一個(gè)密鑰受到危及,那么限定密鑰的使用期限就相當(dāng)于限制危險(xiǎn)的發(fā)生。用期限就相當(dāng)于限制危險(xiǎn)的發(fā)生。38v一個(gè)密鑰主要經(jīng)歷以下幾個(gè)階段:一個(gè)密鑰主要經(jīng)歷以下幾個(gè)階段: 密鑰的產(chǎn)生密鑰的產(chǎn)生 密鑰的分配密

33、鑰的分配 啟用密鑰啟用密鑰/停用密鑰停用密鑰 替換替換/更新密鑰更新密鑰 撤銷密鑰撤銷密鑰 銷毀密鑰銷毀密鑰v一般地,密鑰從產(chǎn)生到終結(jié)的整個(gè)生存期中,都一般地,密鑰從產(chǎn)生到終結(jié)的整個(gè)生存期中,都需要加強(qiáng)保護(hù)。需要保證密鑰的需要加強(qiáng)保護(hù)。需要保證密鑰的完整性完整性和和保密性保密性。v本章介紹幾種常用的密鑰管理方法。本章介紹幾種常用的密鑰管理方法。395.3.2基于對(duì)稱密碼體制分配對(duì)稱密鑰-3.11v對(duì)稱密碼體制要求雙方共享一個(gè)共同的密鑰,如對(duì)稱密碼體制要求雙方共享一個(gè)共同的密鑰,如何安全分發(fā)這個(gè)密鑰,即何安全分發(fā)這個(gè)密鑰,即密鑰分配密鑰分配(Key Distribution)問(wèn)題,成為安全系統(tǒng)的

34、核心問(wèn)題。)問(wèn)題,成為安全系統(tǒng)的核心問(wèn)題。常用的方法有兩種。常用的方法有兩種。1、密鑰中心分配密鑰、密鑰中心分配密鑰第三方是一個(gè)負(fù)責(zé)為用戶分配密鑰的密鑰分配第三方是一個(gè)負(fù)責(zé)為用戶分配密鑰的密鑰分配中心(中心(Key Distribution Center,KDC)。)。每一個(gè)用戶必須與每一個(gè)用戶必須與KDC有一個(gè)共享密鑰,稱為有一個(gè)共享密鑰,稱為主密鑰主密鑰(Master Key)。)。一對(duì)用戶之間的保密通信使用的是一對(duì)用戶之間的保密通信使用的是會(huì)話鑰會(huì)話鑰,KDC通過(guò)主密鑰為用戶分配會(huì)話鑰。通過(guò)主密鑰為用戶分配會(huì)話鑰。通信完成后,會(huì)話鑰即被銷毀。通信完成后,會(huì)話鑰即被銷毀。v圖圖5-9是一個(gè)

35、典型密鑰分配過(guò)程,由是一個(gè)典型密鑰分配過(guò)程,由KDC產(chǎn)生產(chǎn)生會(huì)話會(huì)話鑰,然后鑰,然后分發(fā)分發(fā)給給A和和B。40圖5-9 KDC密鑰分配過(guò)程 密鑰分配中心KDC響應(yīng)者B發(fā)起者A(1)IDA|IDB|N1(5)EKsf(N2)(4)EKsN2(3)EKbKs|IDA(2)EKaKs|IDA|IDB|N1|EKb(Ks|IDA)41v圖中符號(hào)含義:圖中符號(hào)含義:vKa和和Kb是是A和和B分別與分別與KDC共享的主密鑰;共享的主密鑰;vKs是分配給是分配給A和和B的一次性會(huì)話鑰;的一次性會(huì)話鑰;vN1和和N2是臨時(shí)的交互號(hào),可以使時(shí)間戳、計(jì)數(shù)器是臨時(shí)的交互號(hào),可以使時(shí)間戳、計(jì)數(shù)器或隨機(jī)數(shù),用于防止重放

36、攻擊;或隨機(jī)數(shù),用于防止重放攻擊;vIDA和和IDB分別表示分別表示A和和B的身份標(biāo)識(shí)(如的身份標(biāo)識(shí)(如A和和B的的網(wǎng)絡(luò)地址);網(wǎng)絡(luò)地址);vf是對(duì)是對(duì)N2的某種變換(如將的某種變換(如將N2加加1)函數(shù),目的是)函數(shù),目的是認(rèn)證;認(rèn)證;v|表示連接符(如表示連接符(如IDA|IDB|N1,表示同時(shí)傳送,表示同時(shí)傳送IDA、IDB和和N1。42圖5-9 KDC密鑰分配過(guò)程 密鑰分配中心KDC響應(yīng)者B發(fā)起者A(1)IDA|IDB|N1(5)EKsf(N2)(4)EKsN2(3)EKbKs|IDA(2)EKaKs|IDA|IDB|N1|EKb(Ks|IDA)43 A和和B之間的會(huì)話鑰分配是通過(guò)以下

37、過(guò)程完成的。之間的會(huì)話鑰分配是通過(guò)以下過(guò)程完成的。v(1)A向向KDC發(fā)出會(huì)話請(qǐng)求。發(fā)出會(huì)話請(qǐng)求。A為了與為了與B通信,向通信,向KDC申請(qǐng)一個(gè)與申請(qǐng)一個(gè)與B通信的會(huì)話通信的會(huì)話鑰。會(huì)話申請(qǐng)包括兩個(gè)數(shù)據(jù)項(xiàng)組:鑰。會(huì)話申請(qǐng)包括兩個(gè)數(shù)據(jù)項(xiàng)組:A和和B的身份的身份IDA、IDB;本次請(qǐng)求的臨時(shí)交互號(hào)本次請(qǐng)求的臨時(shí)交互號(hào)N1。44圖5-9 KDC密鑰分配過(guò)程 密鑰分配中心KDC響應(yīng)者B發(fā)起者A(1)IDA|IDB|N1(5)EKsf(N2)(4)EKsN2(3)EKbKs|IDA(2)EKaKs|IDA|IDB|N1|EKb(Ks|IDA)45v(2)KDC為為A的請(qǐng)求發(fā)出應(yīng)答。的請(qǐng)求發(fā)出應(yīng)答。應(yīng)答是

38、用應(yīng)答是用A和和KDC共享的主密鑰共享的主密鑰Ka加密的消息,加密的消息,因此只有因此只有A能夠解密該加密的消息,并且能夠解密該加密的消息,并且A相信這相信這一消息的確是由一消息的確是由KDC發(fā)出的。應(yīng)答消息包括:發(fā)出的。應(yīng)答消息包括:給給A的兩項(xiàng)內(nèi)容:的兩項(xiàng)內(nèi)容:一次性會(huì)話鑰一次性會(huì)話鑰Ks;A在(在(1)中發(fā)出的請(qǐng)求。包括一次性隨機(jī)數(shù))中發(fā)出的請(qǐng)求。包括一次性隨機(jī)數(shù)N1,以便于,以便于A能確認(rèn)該應(yīng)答是否是自己發(fā)出能確認(rèn)該應(yīng)答是否是自己發(fā)出請(qǐng)求的響應(yīng),并驗(yàn)證該應(yīng)答在傳輸中是否被請(qǐng)求的響應(yīng),并驗(yàn)證該應(yīng)答在傳輸中是否被篡改。篡改。還有給還有給B的兩項(xiàng)內(nèi)容:包括一次性會(huì)話鑰的兩項(xiàng)內(nèi)容:包括一次性會(huì)

39、話鑰Ks和和A的身份的身份IDA,由,由B和和KDC共享的主密鑰共享的主密鑰Kb加加密,即密,即EkbKs|IDA,將由,將由A轉(zhuǎn)發(fā)給轉(zhuǎn)發(fā)給B。46圖5-9 KDC密鑰分配過(guò)程 密鑰分配中心KDC響應(yīng)者B發(fā)起者A(1)IDA|IDB|N1(5)EKsf(N2)(4)EKsN2(3)EKbKs|IDA(2)EKaKs|IDA|IDB|N1|EKb(Ks|IDA)47v(3)A存儲(chǔ)會(huì)話鑰備用,并向存儲(chǔ)會(huì)話鑰備用,并向B轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)EkbKs|IDA。B收到后,使用收到后,使用Kb解密得到解密得到Ks,并知道通信的另,并知道通信的另一方是一方是A,還通過(guò),還通過(guò)Kb知道知道Ks的確來(lái)自的確來(lái)自KDC。至

40、此,會(huì)話鑰就安全地分配給了至此,會(huì)話鑰就安全地分配給了A和和B。接下來(lái),。接下來(lái),還需要還需要A和和B之間進(jìn)行認(rèn)證。之間進(jìn)行認(rèn)證。v(4)B用會(huì)話鑰用會(huì)話鑰Ks加密另一個(gè)臨時(shí)交互號(hào)加密另一個(gè)臨時(shí)交互號(hào)N2,并,并將加密結(jié)果發(fā)給將加密結(jié)果發(fā)給A。 v(5)A以以f(N2)作為對(duì)作為對(duì)B的應(yīng)答,其中的應(yīng)答,其中f是對(duì)是對(duì)N2進(jìn)行進(jìn)行某種變換(如將某種變換(如將N2加加1)的函數(shù),并將應(yīng)答用會(huì)話)的函數(shù),并將應(yīng)答用會(huì)話鑰加密后發(fā)給鑰加密后發(fā)給B。之所以不直接將。之所以不直接將N2作為應(yīng)答,作為應(yīng)答,而是要對(duì)而是要對(duì)N2進(jìn)行變換,目的是防止重放攻擊。進(jìn)行變換,目的是防止重放攻擊。48圖5-9 KDC密

41、鑰分配過(guò)程 密鑰分配中心KDC響應(yīng)者B發(fā)起者A(1)IDA|IDB|N1(5)EKsf(N2)(4)EKsN2(3)EKbKs|IDA(2)EKaKs|IDA|IDB|N1|EKb(Ks|IDA)49v第(第(4)和()和(5)步是典型的)步是典型的挑戰(zhàn)挑戰(zhàn)/應(yīng)答應(yīng)答(Challenge/Response)認(rèn)證方式。)認(rèn)證方式。v假設(shè)假設(shè)B期望從期望從A獲得一個(gè)新消息,首先發(fā)給獲得一個(gè)新消息,首先發(fā)給A一個(gè)一個(gè)臨時(shí)值(臨時(shí)值(Challenge)N2,并要求后續(xù)從,并要求后續(xù)從A收到的收到的應(yīng)答(應(yīng)答(Response)f(N2)中包含這一臨時(shí)值。中包含這一臨時(shí)值。50 2、無(wú)中心的密鑰分配、

42、無(wú)中心的密鑰分配v無(wú)中心的密鑰分配無(wú)中心的密鑰分配,是指在密鑰的分配過(guò)程中,是指在密鑰的分配過(guò)程中,沒(méi)有沒(méi)有KDC的參與。每個(gè)用戶事先和其他用戶之間的參與。每個(gè)用戶事先和其他用戶之間存在一個(gè)主密鑰,然后使用這些主密鑰存在一個(gè)主密鑰,然后使用這些主密鑰產(chǎn)生產(chǎn)生和和分分配配會(huì)話鑰。會(huì)話鑰。v圖圖5-10是一個(gè)無(wú)中心的密鑰分配過(guò)程。是一個(gè)無(wú)中心的密鑰分配過(guò)程。51圖5-10 無(wú)中心的密鑰分配過(guò)程 響應(yīng)者B發(fā)起者A(1)IDA|IDB|N1(3)EKsf(N2)(2)EMKmKs|IDA|IDB|f(N1)|N252兩個(gè)用戶兩個(gè)用戶A和和B分配會(huì)話鑰的過(guò)程如下。分配會(huì)話鑰的過(guò)程如下。v(1)A向向B發(fā)

43、出建立會(huì)話的請(qǐng)求,包括發(fā)出建立會(huì)話的請(qǐng)求,包括A、B的的身份身份IDA、IDB,以及本次的臨時(shí)交互號(hào),以及本次的臨時(shí)交互號(hào)N1。v(2)B用與用與A共享的主密鑰共享的主密鑰MKm對(duì)應(yīng)答的消息對(duì)應(yīng)答的消息加密,并發(fā)送給加密,并發(fā)送給A。應(yīng)答的消息中包括選取的會(huì)話鑰應(yīng)答的消息中包括選取的會(huì)話鑰Ks、B的身份的身份IDB、f(N1)和另一個(gè)臨時(shí)交互號(hào)和另一個(gè)臨時(shí)交互號(hào)N2。v(3)A使用新的會(huì)話鑰使用新的會(huì)話鑰Ks對(duì)對(duì)f(N2)加密后返回給加密后返回給B。53v以上過(guò)程完成了兩項(xiàng)任務(wù):以上過(guò)程完成了兩項(xiàng)任務(wù):一是一是A和和B之間之間分配分配了會(huì)話鑰;了會(huì)話鑰;二是二是A和和B之間進(jìn)行了之間進(jìn)行了相互

44、認(rèn)證相互認(rèn)證。v在(在(1)和()和(2)中,挑戰(zhàn)()中,挑戰(zhàn)(Challenge)是臨時(shí))是臨時(shí)交互號(hào)交互號(hào)N1,應(yīng)答(,應(yīng)答(Response)是)是f(N1),完成了,完成了A對(duì)對(duì)B的認(rèn)證的認(rèn)證。v在(在(2)和()和(3)中,挑戰(zhàn)()中,挑戰(zhàn)(Challenge)是臨時(shí))是臨時(shí)交互號(hào)交互號(hào)N2,應(yīng)答(,應(yīng)答(Response)是)是f(N2),完成了,完成了B對(duì)對(duì)A的的認(rèn)證。認(rèn)證。 54圖5-10 無(wú)中心的密鑰分配過(guò)程 響應(yīng)者B發(fā)起者A(1)IDA|IDB|N1(3)EKsf(N2)(2)EMKmKs|IDA|IDB|f(N1)|N2555.3.3基于公鑰密碼體制分配對(duì)稱密鑰 -4.7

45、v由于公鑰密碼加解密速度很慢,在通信中一般由于公鑰密碼加解密速度很慢,在通信中一般不使用公鑰密碼加解密消息,而是使用對(duì)稱密不使用公鑰密碼加解密消息,而是使用對(duì)稱密碼,碼,用會(huì)話鑰對(duì)消息進(jìn)行加解密,用公鑰密碼用會(huì)話鑰對(duì)消息進(jìn)行加解密,用公鑰密碼體制來(lái)實(shí)現(xiàn)會(huì)話鑰的分配體制來(lái)實(shí)現(xiàn)會(huì)話鑰的分配。56v假設(shè)假設(shè)A和和B之間需要一個(gè)會(huì)話鑰進(jìn)行秘密通信,會(huì)之間需要一個(gè)會(huì)話鑰進(jìn)行秘密通信,會(huì)話鑰分配方法如下:話鑰分配方法如下:(1)A產(chǎn)生一對(duì)公、私鑰產(chǎn)生一對(duì)公、私鑰PUa和和PRa,將公鑰,將公鑰PUa和自己的身份標(biāo)識(shí)和自己的身份標(biāo)識(shí)IDA傳給傳給B;(2)B產(chǎn)生一個(gè)會(huì)話鑰產(chǎn)生一個(gè)會(huì)話鑰Ks,用,用A的公鑰的

46、公鑰PUa加加密后密后EPUa(Ks)傳給傳給A;(3)只有)只有A有私鑰有私鑰PRa,所以,所以A能夠解密得到能夠解密得到會(huì)話鑰會(huì)話鑰DPRaEPUa(Ks)=Ks。(4)隨后雙方用會(huì)話鑰)隨后雙方用會(huì)話鑰Ks加解密雙方需要傳加解密雙方需要傳輸?shù)南?。輸?shù)南ⅰ?v基于公鑰密碼的密鑰分配方法的通信過(guò)程如表基于公鑰密碼的密鑰分配方法的通信過(guò)程如表5-1和圖和圖5-11所示。所示。57表表5-1使用基于公鑰密碼的密鑰分配方法的加密通信過(guò)程使用基于公鑰密碼的密鑰分配方法的加密通信過(guò)程58圖5-11 基于公鑰密碼的密鑰分配過(guò)程 隨機(jī)數(shù)生成器會(huì)話鑰Ks會(huì)話鑰Ks解密會(huì)話鑰加密會(huì)話鑰數(shù)據(jù)解密數(shù)據(jù)加密私鑰

47、PRa公鑰PUa明文明文數(shù)據(jù)密文會(huì)話鑰密文A方B方595.3.4 Diffie-Hellman密鑰交換 -4.8 v該方法又稱該方法又稱DH方法,是方法,是1976年年Diffie和和Hellman提出的密鑰交換方法,已在很多商業(yè)提出的密鑰交換方法,已在很多商業(yè)產(chǎn)品中得以應(yīng)用。產(chǎn)品中得以應(yīng)用。vDH算法本身不能用于加、解密,惟一目的是使算法本身不能用于加、解密,惟一目的是使得兩個(gè)用戶能夠安全地交換密鑰。該算法的安得兩個(gè)用戶能夠安全地交換密鑰。該算法的安全性基于求離散對(duì)數(shù)的困難性全性基于求離散對(duì)數(shù)的困難性 。60v選擇大素?cái)?shù)選擇大素?cái)?shù)p和和1 p ,且,且是是0、1、2、 p -1中與中與p互素

48、的數(shù)(互素的數(shù)( 即即為為p的本原根),將的本原根),將p和和公開(kāi)。公開(kāi)。v通信雙方為通信雙方為A和和B,DH方法的思想如下:方法的思想如下:(1)A和和B分別選擇任意的數(shù)分別選擇任意的數(shù)xA和和xB作為各自作為各自的秘密信息,其中的秘密信息,其中0 xAp-2,0 xBp-2。然后計(jì)算各自的公開(kāi)信息。然后計(jì)算各自的公開(kāi)信息。 A計(jì)算計(jì)算yA: yAXA (mod p) B計(jì)算計(jì)算yB: yBXB (mod p)61(2)A和和B相互向?qū)Ψ桨l(fā)送自己的公開(kāi)信息相互向?qū)Ψ桨l(fā)送自己的公開(kāi)信息yA、yB,以便計(jì)算共有密鑰。,以便計(jì)算共有密鑰。 A計(jì)算計(jì)算Kab:KabyBXA (mod p) XAXB

49、 (mod p) B計(jì)算計(jì)算Kba:KbayAXB (mod p) XAXB (mod p) 顯然顯然A和和B計(jì)算的計(jì)算的Kab= Kba,即為雙方共有密鑰。,即為雙方共有密鑰。v采用采用DH密鑰交換方法,密鑰交換方法,A(或(或B)根據(jù)各自的私有)根據(jù)各自的私有信息信息xA(或(或xB),計(jì)算自己的公開(kāi)信息),計(jì)算自己的公開(kāi)信息yA(或(或yB)。)。之后把自己的公開(kāi)信息之后把自己的公開(kāi)信息yA(或(或yB)傳送給對(duì)方,再)傳送給對(duì)方,再計(jì)算共有密鑰計(jì)算共有密鑰Kab(或(或Kba)。這一過(guò)程需要在密文)。這一過(guò)程需要在密文數(shù)據(jù)傳輸之前進(jìn)行。數(shù)據(jù)傳輸之前進(jìn)行。v采用采用DH密鑰交換方法的通信

50、過(guò)程如表密鑰交換方法的通信過(guò)程如表5-2和圖和圖5-12所示。所示。62表5-2使用DH密鑰交換方法的加密通信過(guò)程 63圖5-12 采用DH密鑰交換方法的通信過(guò)程隨機(jī)數(shù)生成器會(huì)話鑰會(huì)話鑰會(huì)話鑰被加密會(huì)話鑰被解密數(shù)據(jù)加密數(shù)據(jù)解密共有鑰Kab=yBxA mod p明文明文密文會(huì)話鑰密文共有鑰Kba=yAxB mod p秘密信息xA公開(kāi)信息yA公開(kāi)信息yB秘密信息xB64【例例】假設(shè)在用戶假設(shè)在用戶Alice和和Bob之間交換密鑰。選擇素?cái)?shù)之間交換密鑰。選擇素?cái)?shù)p=353以及本原根以及本原根=3。v(1)Alice和和Bob分別隨機(jī)選擇私有信息分別隨機(jī)選擇私有信息xA=97和和xB=233,然后計(jì)算

51、各自的公開(kāi)信息,然后計(jì)算各自的公開(kāi)信息yA和和yB。 Alice計(jì)算計(jì)算yA: yA397 (mod 353) 40 (mod 353) Bob計(jì)算計(jì)算yB: yB3233 (mod 353) 248(mod 353)v(2)Alice和和Bob相互向?qū)Ψ桨l(fā)送自己的公開(kāi)信息相互向?qū)Ψ桨l(fā)送自己的公開(kāi)信息yA、yB,以便雙方計(jì)算共有密鑰。,以便雙方計(jì)算共有密鑰。 Alice計(jì)算計(jì)算Kab: Kab24897(mod 353) 160 (mod 353) Bob計(jì)算計(jì)算Kba: Kba40233 (mod 353) 160 (mod 353)v顯然顯然A和和B計(jì)算的計(jì)算的Kab= Kba,即為雙方共

52、有密鑰,將,即為雙方共有密鑰,將用于對(duì)雙方保密通信的會(huì)話鑰進(jìn)行分配。用于對(duì)雙方保密通信的會(huì)話鑰進(jìn)行分配。655.3.5 公鑰分配(4.6)v公鑰密碼體制的密鑰分配與對(duì)稱密碼體制的密鑰分公鑰密碼體制的密鑰分配與對(duì)稱密碼體制的密鑰分配有著本質(zhì)的差別。由于對(duì)稱密碼體制只有一個(gè)密配有著本質(zhì)的差別。由于對(duì)稱密碼體制只有一個(gè)密鑰,因此在密鑰分配中必須同時(shí)確保密鑰的秘密性、鑰,因此在密鑰分配中必須同時(shí)確保密鑰的秘密性、真實(shí)性和完整性。真實(shí)性和完整性。v而公開(kāi)密鑰密碼體制中有兩個(gè)密鑰,私鑰由自己保而公開(kāi)密鑰密碼體制中有兩個(gè)密鑰,私鑰由自己保管,不需要進(jìn)行分配。但公鑰是公開(kāi)的,如果不加管,不需要進(jìn)行分配。但公鑰

53、是公開(kāi)的,如果不加以保護(hù),任何人都可以偽造。因此公鑰密碼體制不以保護(hù),任何人都可以偽造。因此公鑰密碼體制不需要保證公鑰的秘密性,只需確保公鑰的真實(shí)性和需要保證公鑰的秘密性,只需確保公鑰的真實(shí)性和完整性,以確保公鑰不被攻擊者替換或篡改。完整性,以確保公鑰不被攻擊者替換或篡改。v公鑰的分配方法可歸納為四種:公開(kāi)發(fā)布、公用目公鑰的分配方法可歸納為四種:公開(kāi)發(fā)布、公用目錄表、公鑰授權(quán)和公鑰證書(shū)。錄表、公鑰授權(quán)和公鑰證書(shū)。66 1、公開(kāi)發(fā)布、公開(kāi)發(fā)布 v公開(kāi)發(fā)布指用戶將自己的公鑰發(fā)給其他用戶,或廣公開(kāi)發(fā)布指用戶將自己的公鑰發(fā)給其他用戶,或廣播給某一團(tuán)體。播給某一團(tuán)體。v這種方法雖然簡(jiǎn)單,但有一個(gè)較大的缺

54、點(diǎn),即任何這種方法雖然簡(jiǎn)單,但有一個(gè)較大的缺點(diǎn),即任何人都可偽造這個(gè)公開(kāi)發(fā)布的公鑰。如果某個(gè)用戶假人都可偽造這個(gè)公開(kāi)發(fā)布的公鑰。如果某個(gè)用戶假裝是用戶裝是用戶A,并以,并以A的名義向另一用戶發(fā)送或廣播的名義向另一用戶發(fā)送或廣播自己的公鑰,則這一假冒者可解密所有受騙發(fā)向自己的公鑰,則這一假冒者可解密所有受騙發(fā)向A的加密消息,而且假冒者還能用偽造的密鑰獲得認(rèn)的加密消息,而且假冒者還能用偽造的密鑰獲得認(rèn)證。證。2、公用目錄表、公用目錄表 v公用目錄表指一個(gè)公用的公鑰動(dòng)態(tài)目錄表,公用目公用目錄表指一個(gè)公用的公鑰動(dòng)態(tài)目錄表,公用目錄表的建立、維護(hù)以及公鑰的分布由某個(gè)可信的實(shí)錄表的建立、維護(hù)以及公鑰的分布

55、由某個(gè)可信的實(shí)體或組織承擔(dān),稱這個(gè)實(shí)體或組織為公用目錄的管體或組織承擔(dān),稱這個(gè)實(shí)體或組織為公用目錄的管理員。該方法有以下組成部分:理員。該方法有以下組成部分:67v(1)管理員為每個(gè)用戶在目錄表中建立一個(gè)目錄,)管理員為每個(gè)用戶在目錄表中建立一個(gè)目錄,目錄中有兩個(gè)數(shù)據(jù)項(xiàng):一是用戶名,二是用戶的公目錄中有兩個(gè)數(shù)據(jù)項(xiàng):一是用戶名,二是用戶的公鑰。鑰。v(2)每一用戶都親自或以某種安全的認(rèn)證通信在管)每一用戶都親自或以某種安全的認(rèn)證通信在管理者那里為自己的公鑰注冊(cè)。理者那里為自己的公鑰注冊(cè)。 v(3)用戶可以隨時(shí)用新密鑰替換現(xiàn)有的密鑰。這可)用戶可以隨時(shí)用新密鑰替換現(xiàn)有的密鑰。這可能由于自己的公鑰用

56、過(guò)的次數(shù)太多或由于與公鑰相能由于自己的公鑰用過(guò)的次數(shù)太多或由于與公鑰相關(guān)的私鑰已泄漏。關(guān)的私鑰已泄漏。 v(4)管理員定期公布或定期更新目錄表。例如,像)管理員定期公布或定期更新目錄表。例如,像電話號(hào)碼本一樣公布目錄表或在發(fā)行量很大的報(bào)紙電話號(hào)碼本一樣公布目錄表或在發(fā)行量很大的報(bào)紙上公布目錄表的更新。上公布目錄表的更新。 v(5)用戶可通過(guò)電子手段訪問(wèn)目錄表。此時(shí),從管)用戶可通過(guò)電子手段訪問(wèn)目錄表。此時(shí),從管理員到用戶必須有安全的認(rèn)證通信。理員到用戶必須有安全的認(rèn)證通信。 v這種方案的安全性明顯高于公開(kāi)發(fā)布方法的安全性,這種方案的安全性明顯高于公開(kāi)發(fā)布方法的安全性,但仍易受到攻擊。如果攻擊者

57、成功地獲得管理員的但仍易受到攻擊。如果攻擊者成功地獲得管理員的私人密鑰,就可偽造一個(gè)公鑰目錄表,以后既可以私人密鑰,就可偽造一個(gè)公鑰目錄表,以后既可以假冒任一用戶又可以監(jiān)聽(tīng)發(fā)往任一用戶的消息。假冒任一用戶又可以監(jiān)聽(tīng)發(fā)往任一用戶的消息。68 3、公鑰授權(quán)、公鑰授權(quán) v與公用目錄表類似,假定有一個(gè)公鑰管理機(jī)構(gòu)來(lái)與公用目錄表類似,假定有一個(gè)公鑰管理機(jī)構(gòu)來(lái)為用戶建立、維護(hù)動(dòng)態(tài)的公鑰目錄,但同時(shí)每個(gè)為用戶建立、維護(hù)動(dòng)態(tài)的公鑰目錄,但同時(shí)每個(gè)用戶都可靠地知道管理機(jī)構(gòu)的公鑰,而只有管理用戶都可靠地知道管理機(jī)構(gòu)的公鑰,而只有管理機(jī)構(gòu)自己知道相應(yīng)的私鑰。機(jī)構(gòu)自己知道相應(yīng)的私鑰。v圖圖5-13是典型的公鑰分配方案

58、。是典型的公鑰分配方案。v在這個(gè)分配方案中完成了兩個(gè)功能:在這個(gè)分配方案中完成了兩個(gè)功能:一是獲得需要的公鑰;一是獲得需要的公鑰;二是雙方相互認(rèn)證。二是雙方相互認(rèn)證。69圖5-13公鑰授權(quán)分配方案70v公鑰分配過(guò)程如下:公鑰分配過(guò)程如下:v(1)A向公鑰管理機(jī)構(gòu)發(fā)送一個(gè)帶時(shí)間戳的消息。向公鑰管理機(jī)構(gòu)發(fā)送一個(gè)帶時(shí)間戳的消息。消息中有獲取消息中有獲取B當(dāng)前公鑰的請(qǐng)求。當(dāng)前公鑰的請(qǐng)求。v(2)公鑰管理機(jī)構(gòu)對(duì))公鑰管理機(jī)構(gòu)對(duì)A的請(qǐng)求作出應(yīng)答。應(yīng)答用一的請(qǐng)求作出應(yīng)答。應(yīng)答用一個(gè)消息來(lái)表示,該消息由管理機(jī)構(gòu)用自己的私鑰個(gè)消息來(lái)表示,該消息由管理機(jī)構(gòu)用自己的私鑰Prauth簽名。因此簽名。因此A能用公鑰管理

59、機(jī)構(gòu)的公鑰驗(yàn)證,能用公鑰管理機(jī)構(gòu)的公鑰驗(yàn)證,并且使并且使A相信這個(gè)消息的確來(lái)源于公鑰管理機(jī)構(gòu)。相信這個(gè)消息的確來(lái)源于公鑰管理機(jī)構(gòu)。該消息包括以下內(nèi)容:該消息包括以下內(nèi)容:B的公鑰的公鑰PUb,A可用它對(duì)將發(fā)往可用它對(duì)將發(fā)往B的消息加密。的消息加密。A的請(qǐng)求,用于的請(qǐng)求,用于A驗(yàn)證收到的應(yīng)答的確是對(duì)相應(yīng)驗(yàn)證收到的應(yīng)答的確是對(duì)相應(yīng)請(qǐng)求的應(yīng)答,且還能驗(yàn)證自己最初發(fā)出的請(qǐng)求在請(qǐng)求的應(yīng)答,且還能驗(yàn)證自己最初發(fā)出的請(qǐng)求在被公鑰管理機(jī)構(gòu)收到之前是否被篡改。被公鑰管理機(jī)構(gòu)收到之前是否被篡改。原始的時(shí)間戳原始的時(shí)間戳Time1,以使,以使A相信公鑰管理機(jī)構(gòu)相信公鑰管理機(jī)構(gòu)發(fā)來(lái)的消息不是舊消息,因此消息中的公鑰的

60、確發(fā)來(lái)的消息不是舊消息,因此消息中的公鑰的確是是B當(dāng)前的公鑰。當(dāng)前的公鑰。71圖5-13公鑰授權(quán)分配方案72v(3)A用用B的公鑰的公鑰PUb對(duì)一個(gè)消息加密后發(fā)往對(duì)一個(gè)消息加密后發(fā)往B,這個(gè)消息有兩個(gè)數(shù)據(jù)項(xiàng):一是這個(gè)消息有兩個(gè)數(shù)據(jù)項(xiàng):一是A的身份的身份IDA,二是,二是一個(gè)臨時(shí)交互號(hào)一個(gè)臨時(shí)交互號(hào)N1,用于唯一標(biāo)識(shí)這一過(guò)程。,用于唯一標(biāo)識(shí)這一過(guò)程。v(4)、()、(5)B以相同的方式從公鑰管理機(jī)構(gòu)獲取以相同的方式從公鑰管理機(jī)構(gòu)獲取A的公鑰(與步驟(的公鑰(與步驟(1)、()、(2)類似)。此時(shí),)類似)。此時(shí),A和和B都已安全地得到對(duì)方的公鑰,可以進(jìn)行相互之都已安全地得到對(duì)方的公鑰,可以進(jìn)行相

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論