專利名稱:基于隱式公鑰證書的雙方認證密鑰協(xié)商方法及系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及一種基于隱式公鑰證書的雙方認證密鑰協(xié)商方法及系統(tǒng),可應用于大型分布式網(wǎng)絡環(huán)境(如國際互聯(lián)網(wǎng)Internet)下的安全通信,屬于網(wǎng)絡通信技術(shù)領域。
背景技術(shù):
隨著網(wǎng)絡信息技術(shù)應用的日漸普及,網(wǎng)絡信息安全越來越成為一個倍受關注的課題。一方面,網(wǎng)絡信息技術(shù)使世界范圍的信息交流日益方便快捷,同時給人們帶來了更多的商業(yè)和科學研究的機會。而在另一方面,一旦網(wǎng)絡上傳遞的重要信息(如國家機密、商業(yè)機密或個人隱私等)被截獲或篡改,國家、企業(yè)或個人將蒙受巨大損失。另外,以非法入侵和非法獲利為目的的信息犯罪日益增多,也對網(wǎng)絡的安全運行和進一步發(fā)展提出了挑戰(zhàn)。人們對信息安全的要求越來越強烈,這一迫在眉睫的現(xiàn)實需求成為推動信息安全理論與技術(shù)研究的能動力。
在解決網(wǎng)絡信息安全問題的所有機制與方案當中,用戶身份認證(Authentication)通常是最基本的一步。通過身份認證,系統(tǒng)可以由此決定是否提供服務或者開放什么樣的權(quán)限。進一步,還可以由此來為特定的用戶進行訪問控制、實時計費等管理。而在身份驗證通過之后,接下來的問題是如何保護通信雙方所互相傳送的數(shù)據(jù)。目前解決這一問題最有效的方式就是為通信的雙方分配一個共享的會話密鑰(Session key),然后他們以此會話密鑰來加密傳送的數(shù)據(jù)以防止竊聽,并產(chǎn)生消息認證碼以防止數(shù)據(jù)被篡改。所以,一個能同時提供用戶身份認證和密鑰生成的安全協(xié)議,才能滿足上述安全需求,這一類安全協(xié)議通常被稱為認證密鑰生成協(xié)議(Authenticated key establishmentprotocol),它將認證和密鑰生成緊密結(jié)合在一起,是網(wǎng)絡通信中應用最普遍的安全協(xié)議之一。認證密鑰生成協(xié)議一般可分為認證密鑰傳輸(Key transport)協(xié)議與認證密鑰協(xié)商(Key agreement)協(xié)議兩大類。在認證密鑰協(xié)商協(xié)議中,最終會話密鑰的生成,需要用到通信各方貢獻的信息。
通過認證密鑰協(xié)商協(xié)議,通信雙方可以在公開的網(wǎng)絡環(huán)境里建立共享的會話密鑰,從而保證了后續(xù)通信會話中消息的機密性和完整性。盡管認證密鑰協(xié)商協(xié)議是幾乎所有上層應用協(xié)議(如電子商務協(xié)議、安全文件傳輸協(xié)議等)的必要條件,但安全認證密鑰協(xié)商協(xié)議的設計仍然是一個十分困難的問題。
一、認證密鑰協(xié)商協(xié)議密鑰協(xié)商協(xié)議與加密、數(shù)字簽名是最基本的3個密碼原語(Cryptographicprimitive)。密鑰協(xié)商協(xié)議允許兩個或者兩個以上的用戶在由敵手完全控制的開放式網(wǎng)絡環(huán)境下通過交換信息,協(xié)商完成一個共享的密鑰。這一密鑰將用于這些用戶之間的后續(xù)安全通信。因此,安全密鑰協(xié)商協(xié)議是更加復雜的高層協(xié)議(如電子商務協(xié)議、電子選舉協(xié)議等)的最基本模塊。
設計在通信和計算負荷方面擁有高效率,并且安全的密鑰協(xié)商協(xié)議,一直受到了密碼學界的廣泛重視。第一個開創(chuàng)性的密鑰協(xié)商協(xié)議由Diffie和Hellman于1976年在他們的標志著公鑰密碼學誕生的經(jīng)典文獻(見W.Diffie and M.Hellman.New directions incryptography.IEEE Trans.Inform.Theory 22(1976),pp.472-492)中提出,它被稱作指數(shù)密鑰交換協(xié)議。然而,經(jīng)典Diffie-Hellman密鑰協(xié)商協(xié)議不提供認證機制,因此在開放式網(wǎng)絡環(huán)境中使用時,它不能抵抗中間人(Man-in-the-middle)攻擊。
如果一個密鑰協(xié)商協(xié)議能夠允許一組用戶在開放式網(wǎng)絡環(huán)境下協(xié)商達成一個共享密鑰,并確保只有指定的用戶有可能獲得這一共享密鑰。這樣的性質(zhì)叫做隱式密鑰認證(Implicit key authentication),進一步,這樣的密鑰協(xié)商協(xié)議叫做認證密鑰協(xié)商協(xié)議。另外,如果該協(xié)議還能夠確保指定的用戶確實計算、擁有了某個共享密鑰,這樣的屬性叫做顯式密鑰認證,提供顯式密鑰認證的密鑰協(xié)商協(xié)議叫做帶密鑰確認(Keyconfirmation)的認證密鑰協(xié)商協(xié)議。近20年以來,多種多樣的安全屬性被發(fā)現(xiàn)是一個安全的密鑰協(xié)商協(xié)議所必需達到的。人們開發(fā)了不同的方法來研究如何獲得這些安全屬性。密鑰抽取函數(shù)、消息認證碼(MAC)、數(shù)字簽名方案等等,是認證密鑰協(xié)商協(xié)議的基本工具。
基于公鑰密碼技術(shù)的雙方密鑰協(xié)商協(xié)議是最基本的一類密鑰協(xié)商協(xié)議。它大體上可被分為兩大類傳統(tǒng)顯式證書基協(xié)議與隱式證書基協(xié)議。在傳統(tǒng)顯式證書基密鑰協(xié)商協(xié)議中,協(xié)議通信的雙方需要首先獲得對方的長期公鑰,而這樣的公鑰是經(jīng)過公鑰證書中心CA認證過的,因此這種顯式證書基公鑰在使用的過程中,不可避免的牽涉到CA數(shù)字簽名的驗證,這大大增加了用戶的計算負荷,降低了協(xié)議的運行效率。而在隱式認證公鑰框架下,例如身份基密鑰協(xié)商協(xié)議中,用戶的公鑰是一些例如姓名、家庭住址或者電子郵件等身份信息,這樣的公鑰在使用時,不需要驗證它的真實性。
二、認證密鑰協(xié)商協(xié)議的安全目標一個安全的密鑰協(xié)商協(xié)議需要能夠抵抗各種被動或者主動攻擊。下面列舉了一些密鑰協(xié)商協(xié)議被期望達到的安全屬性1.已知會話密鑰安全(Known Session Key Security)如果一個敵手已經(jīng)獲取了一些先前的會話密鑰,仍然不能取得當前會話的密鑰,那么這個協(xié)議是已知會話密鑰安全的。
2.前向安全性(Forward Secrecy)如果一個或多個通信實體的長期私鑰(或秘密)被暴露,先前生成的會話密鑰的安全性仍然不受影響。
3.抗密鑰泄漏偽裝攻擊(Key-compromise Impersonation Resistance)假設實體A的長期私鑰(或秘密)被暴露了。顯然,獲得該密鑰(或秘密)的敵手因為知道了這個私鑰值就可以向任何其他實體冒充A參與一些協(xié)議。這里,要求敵手除了冒充A之外,不可以去冒充其它人。并且,最重要的,要求敵手不能向A(長期密鑰被暴露者)成功冒充為其他通信實體。
4.未知密鑰共享(Unknown Key-share Resistance)在沒有被實體A知曉的情況下,它不可以被敵手強制地與另外一個實體B共享一個會話密鑰。
5.密鑰不可控制(No Key Control)對于通信的任何一方,包括敵手,不可以將會話密鑰強制設置為一個預先選擇的值。
三、公鑰證書(Public-key Certificates)公鑰證書是所有用戶公鑰的載體,它可以在不安全的介質(zhì)上存儲、分發(fā)或者傳遞,而不必擔心被惡意篡改。公鑰證書的目的是使得用戶的公鑰在被使用的時候,可以驗證其真實性。
公鑰證書分為兩大類顯式公鑰證書(Explicit public-key certificates)和隱式公鑰證書(Implicit public-key certificates)。公鑰證書的不同生成、使用方式與方法,確定了公鑰密碼系統(tǒng)的不同使用模式(Model of use for public-keycryptography).
顯式公鑰證書是基于傳統(tǒng)公鑰基礎設施PKI的公鑰證書,包含兩個部分數(shù)據(jù)部分與簽名部分。數(shù)據(jù)部分至少包含某個用戶的身份信息以及該用戶的公鑰;簽名部分包含證書權(quán)威中心(CA)對數(shù)據(jù)部分的簽名。CA在對該用戶的身份進行過認證之后,通過這樣的一個簽名,來將該用戶與其公鑰進行綁定。這樣,當?shù)谌接脩粼谑褂迷撚脩舻墓€之前,通過驗證其公鑰證書中的CA的簽名,即可以判斷公鑰的真實性與有效性。
隱式公鑰證書的一個最基本的屬性是,系統(tǒng)內(nèi)某一用戶的公鑰在被其他用戶使用之前,后者不需要通過驗證證書中心CA的簽名來檢驗長期公鑰的真實有效性。由隱式公鑰證書“隱式認證”的公鑰包括身份基公鑰、自認證公鑰、Gentry隱式證書公鑰,以及所謂的無證書公鑰。注意,這里我們將身份基密碼當中由私鑰生成中心(PKG,privatekey generator)為每個生成的私鑰也看作公鑰證書(并且是一種隱式公鑰證書)。這樣做的理由是,正是PKG在行使了如同傳統(tǒng)PKI中CA的使命——檢驗用戶的公鑰——之后,再為它發(fā)布某種格式的“證書”,用以認證該用戶的公鑰。
四、現(xiàn)有的兩種典型的密鑰協(xié)商協(xié)議1.基于顯式公鑰證書的密鑰協(xié)商協(xié)議--MIT協(xié)議MTI協(xié)議族是一組Diffie-Hellman密鑰協(xié)商協(xié)議的變體的總稱,他們由三位日本著名密碼學學者于1986年提出,詳見T.Matsumoto,Y.Takashima,and H.Imai.Onseeking smart public-key distribution systems.The Transactions of the IECE ofJapan,E6999-106,1986。這些協(xié)議能夠通過兩次消息傳遞(不需要簽名),為通信的雙方產(chǎn)生能夠抵抗被動敵手攻擊的雙向(隱式)認證的會話密鑰。這里僅給出MTI/A0協(xié)議,做舉例說明。
MTI/A0協(xié)議簡介概要說明兩次消息傳遞的Diffie-Hellman密鑰協(xié)商,其安全性能夠抵抗被動敵手攻擊。
運行結(jié)果A和B都能夠計算共享密鑰K。
a)系統(tǒng)設置。選擇并公布一個合適的大素數(shù)p以及Zp*上的生成元g,2≤g≤p-2。A隨機選擇一個整數(shù)a,2≤a≤p-2,作為長期私鑰,并計算相應的長期公鑰A=gamod p(B生成類似的長期密鑰b和B)。A和B分別獲得對方真實的長期公鑰的副本(通過公鑰證書)。
b)協(xié)議消息。同經(jīng)典Diffie-Hellman密鑰協(xié)商協(xié)議。
c)協(xié)議執(zhí)行步驟1A選擇一個隨機數(shù)x,2≤x≤p-2,被給B發(fā)送X=gx;步驟2B選擇一個隨機數(shù)y,2≤y≤p-2,被給B發(fā)送Y=gy;步驟3A計算共享密鑰K=KAB=Y(jié)aBx=gay+bx;步驟4B計算共享密鑰K=KBA=XbAy=gbx+ay。
表1總結(jié)了MTI/A0協(xié)議以及其它三個相關協(xié)議。所有這四個MTI協(xié)議都提供雙向的隱式密鑰認證,且滿足角色對稱的性質(zhì)協(xié)議的每一參與方都執(zhí)行完全類似的操作,通信與計算負荷完全相同。并且,這些協(xié)議中的消息都是相互獨立的,即雙方在發(fā)送自已的消息(臨時公鑰)之前都不需要接收對方的消息。MTI/A0協(xié)議甚者不需要預先得到對方的長期公鑰,長期公鑰可以與消息的同時被發(fā)送,因此,在MTI/A0協(xié)議中,發(fā)送的消息也獨立于預定的消息接收方(協(xié)議的另一參與方),這使得MTI/A0協(xié)議比其它三個協(xié)議具有更大的靈活性。
表1MTI協(xié)議族
說明表中X和Y表示雙方分別向?qū)Ψ桨l(fā)送的消息(臨時公鑰)MTI協(xié)議的缺點首先來分析MTI/A0協(xié)議。雖然協(xié)議的雙方A和B在向?qū)Ψ桨l(fā)送協(xié)議消息(X和Y)之前,不需要預先獲得對方的長期公鑰。但是,當雙方需要計算共享會話密鑰的時候,就需要獲得并檢驗對方的長期公鑰了。比如,A在計算共享密鑰KAB前,需要首先檢驗B的長期公鑰B的真實性及有效性A首先從B的公鑰證書(顯式證書)中提取出長期公鑰B,然后利用證書中心CA的公鑰(系統(tǒng)內(nèi)公開參數(shù)之一),檢驗公鑰證書中CA對長期公鑰B的簽名。
完全類似的,B在計算共享會話密鑰KBA之前,需要檢驗A的長期公鑰A的真實性與有效性。
而對于MTI/B0、MTI/C0及MTI/C1協(xié)議,協(xié)議的雙方在計算協(xié)議消息(X和Y)之前,就需要驗證相應公鑰證書中的CA的簽名,以檢驗對方長期公鑰的真實性和有效性。
2.身份基雙方密鑰協(xié)商協(xié)議-Smart協(xié)議Smart提出了第一個使用雙線性配對的身份基雙方密鑰協(xié)商協(xié)議-Smart協(xié)議,詳見N.P.Smart.An identity based authenticated key agreement protocol based onthe Weil pairing.Electronics Letters,volume 38(13)630-632,June 2002。這一協(xié)議要求協(xié)議的參與方同處于一個域,即雙方都是同一個私鑰生成中心(PKG)的客戶。
為說明方便,這里先簡要介紹雙線性配對的一些基本概念。
令G1是一個階為素數(shù)q的加法群,G2是乘法群,階也為q。假定這兩個群上的離散對數(shù)問題都是困難的。一個雙線性配對e:G1×G1→G2是滿足下面3條性質(zhì)的映射1)雙線性如果P,Q∈G1且a,b∈Zq*,]]>則e(aP,bQ)=e(P,Q)ab;2)非退化性存在一個P∈G1,使得e(P,P)≠1;3)可計算性對于P,Q∈G1,存在有效算法計算e(P,Q)。
滿足上述條件的群G1叫做雙線性群。有限域上的奇異或者超奇異橢圓曲線上的點組成的某類群可作為雙線性群的例子,而這些群上的Weil配對或者Tate配對,可很容易的被轉(zhuǎn)化來構(gòu)造雙線性配對。
Smart協(xié)議簡介系統(tǒng)建立假設e是群G1和G2上的雙線性配對,PKG選擇一個密鑰s∈Zq*,]]>并計算PPub=sP。哈希函數(shù)H1將任意長的比特串映射到群G1上。系統(tǒng)公開參數(shù)為e、G1、G2、P以及PPub。
私鑰抽取對于任意身份ID,PKG計算QID=H1(ID)∈G1,進而計算其相應私鑰dID=sQID。最后,PKG通過安全信道將用戶私鑰傳送給特定用戶。
密鑰協(xié)商假設用戶A與B欲生成共享會話密鑰。二者執(zhí)行以下步驟步驟1.A選擇一個臨時私鑰x∈RZq*,]]>計算臨時公鑰TA=xP并將TA發(fā)送給B;步驟2.B選擇一個臨時私鑰y∈RZq*,]]>計算臨時公鑰TB=y(tǒng)P并將TB發(fā)送給A;步驟3.A計算共享密鑰K=KAB=e(xQB,PPub)·e(dA,TB);步驟4.B計算共享密鑰K=KBA=e(yQA,PPub)·e(dB,TA)。
Smart協(xié)議所需通信帶寬為群G1的兩個成員。在計算方面,每個用戶需計算1個群G1上的標量乘法,2個配對計算,G2上的一個乘法以及一個“映射到點”操作。
Smart通過非形式化的方法分析了該協(xié)議的安全性它滿足的安全屬性包括雙向隱式密鑰認證、己知密鑰安全、半前向安全、抗密鑰泄露偽裝攻擊以及抗未知密鑰共享攻擊等。Smart并給出了一個3次消息傳遞的帶密鑰確認的協(xié)議版本。
雖然Smart協(xié)議采用身份基公鑰,具有身份基密碼方案的所有優(yōu)點,然而它天然的繼承了身份基密碼帶來的密鑰托管屬性。如前所述,這一性質(zhì)在許多情況下,卻只能被看作一種缺點。Smart協(xié)議中,協(xié)議雙方A和B得到的共享密鑰K=e(dB,TA)·e(dA,TB)。因為A和B的私鑰dA、dB是由他們的PKG生成,所以PKG在獲得公開信道上的TA和TB后,即可計算出共享密鑰K。
進一步,由于擁有系統(tǒng)主密鑰的PKG能夠輕而易舉的計算出運行Smart協(xié)議的任何雙方之間的共享密鑰,所以若PKG的主密鑰在某一時刻被泄漏,則之前整個系統(tǒng)內(nèi)的產(chǎn)生的所有會話密鑰將被暴露。也就是說,Smart協(xié)議不提供PKG前向安全。
最后,若協(xié)議的雙方A和B由于操作不當,導致他們的長期私鑰dA、dB在某一時刻泄漏,則由共享密鑰K=e(dB,TA)·e(dA,TB)知,在長期密鑰泄漏之前產(chǎn)生的共享密鑰K的安全性將完全失去。因此,Smart協(xié)議達不到完全前向安全(Full Forward Secrecy)。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決現(xiàn)有技術(shù)中存在的密鑰托管問題,并減輕用戶端的計算負擔,本發(fā)明提供了一種基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,包括以下步驟步驟A可信機構(gòu)利用隨機生成的系統(tǒng)主密鑰生成并公布系統(tǒng)參數(shù);用戶端A和B根據(jù)各自隨機生成的部分私鑰得到相應的部分公鑰,并分別向可信機構(gòu)提交身份信息及相應部分公鑰;步驟B所述可信機構(gòu)核實用戶端A和B的真實身份后,根據(jù)用戶端A和B的身份信息及其各自部分公鑰得到隱式公鑰證書,并相應地分發(fā)給用戶端A和B;步驟C用戶端A和B分別利用隨機生成的臨時私鑰得到相應的臨時公鑰,并分別根據(jù)對方的臨時公鑰、雙方的部分公鑰及系統(tǒng)參數(shù),并利用各自的部分私鑰、臨時私鑰及隱式公鑰證書,獲得共享密鑰。
所述步驟B中的得到隱式公鑰證書具體包括根據(jù)用戶端A和B的身份信息及其各自部分公鑰,分別為用戶端A和B計算一個哈希值QID,并利用系統(tǒng)主密鑰對哈希值QID進行簽名得到隱式公鑰證書。
所述用戶端A和B通過公開目錄分別將他們的部分公鑰公布出去。
所述可信機構(gòu)通過檢查身份信息核實用戶端A和B的真實身份。
所述方法還包括利用密鑰抽取函數(shù)kdf對共享密鑰進行處理,獲取共享會話密鑰的步驟。
所述方法還包括利用密鑰抽取函數(shù)kdf對共享密鑰進行處理,并將用戶端A和B的身份信息作為密鑰抽取函數(shù)kdf輸入值,獲取共享會話密鑰的步驟。
通過公開信道分別將隱式公鑰證書分別發(fā)送給用戶A和用戶B。
本發(fā)明還提供了一種基于隱式公鑰證書的雙方認證密鑰協(xié)商方法的系統(tǒng),所述系統(tǒng)包括需要進行認證密鑰協(xié)商的雙方用戶端,及為雙方生成隱式公鑰證書的可信機構(gòu),
所述可信機構(gòu)包括系統(tǒng)參數(shù)生成模塊,用于隨機生成系統(tǒng)主密鑰,生成并公布系統(tǒng)參數(shù);身份核實模塊,用于核實用戶端身份;隱式公鑰證書生成模塊,用于利用主密鑰進行簽名得到隱式公鑰證書,并將隱式公鑰證書發(fā)給用戶端;所述用戶端均包括部分公鑰/私鑰對生成模塊,用于根據(jù)隨機生成的用戶端部分私鑰得到相應的部分公鑰,并將相應部分公鑰及用戶端身份信息發(fā)送給所述可信機構(gòu);臨時公鑰/私鑰對生成模塊,用于根據(jù)隨機生成臨時私鑰,得到相應的臨時公鑰,并將該臨時公鑰發(fā)送給另一用戶端;共享密鑰生成模塊,用于根據(jù)所述臨時公鑰/私鑰對生成模塊發(fā)來的臨時公鑰進行計算,得到共享密鑰。
本發(fā)明同Smart身份基協(xié)議相比,都采用了橢圓曲線上的雙線性配對,因此下文將主要通過與Smart協(xié)議的比較,來分析本發(fā)明的優(yōu)點。
1.協(xié)議的安全性由Gentry的安全加密方案可知,KAB的計算式中的第一個雙線性配對值,只能由用戶端B利用其部分私鑰sB計算出來。而KBA計算式中的第一個雙線性配對值,也只能由用戶端A利用其部分私鑰sA計算出來。因此,KAB與KBA的值不可能被任何第三方獲得。這也就表明了協(xié)議的安全性。
2.運行性能首先,從計算負荷上來看,本發(fā)明滿足“角色對稱”性質(zhì),即用戶端A和B在協(xié)議的運行過程中,計算負荷完全相同。同Smart協(xié)議,本發(fā)明的每一方也只需要計算兩個雙線性配對,也就是說本發(fā)明在計算上同Smart協(xié)議一樣高效。
其次,在通信帶寬方面,第一,本發(fā)明滿足“消息獨立”性質(zhì),即用戶端A和B所發(fā)送的協(xié)議消息,不依賴于他們所接收到的協(xié)議消息。第二,在發(fā)送的數(shù)據(jù)量上,本發(fā)明完全等同于Smart協(xié)議,即協(xié)議的總共通信數(shù)據(jù)量為群G1上的兩個群元素(即TA和TB)。
綜上所述,本發(fā)明所述方法的主要有益技術(shù)效果有以下3點第一,采用Gentry隱式公鑰證書,避免了協(xié)議的雙方在使用對方的公鑰時,對TA簽名的驗證,大大提高了用戶端的計算效率。
第二,消除了身份基密鑰協(xié)商協(xié)議中的會話密鑰托管問題。由于TA無法得到用戶端的部分私鑰,所以它不能計算出系統(tǒng)內(nèi)任何兩個用戶端之間的共享會話密鑰。
第三,隱式公鑰證書的分發(fā)相對于身份基協(xié)議來說,除去了對安全信道的需求,大大降低了分發(fā)難度,提高了系統(tǒng)整體效率。
圖1為本發(fā)明所述的第一階段系統(tǒng)初始化及用戶端注冊的流程圖;圖2為本發(fā)明所述的第二階段隱式公鑰證書生成及分發(fā)的流程圖;圖3為本發(fā)明所述的第三階段認證密鑰協(xié)商的流程圖;圖4為本發(fā)明所述系統(tǒng)的方框圖。
具體實施例方式
下面結(jié)合附圖來進一步說明本發(fā)明。
基于傳統(tǒng)公鑰基礎設施PKI的公鑰,用戶端在使用前,例如向某個用戶端發(fā)送加密消息或者驗證其簽名之前,要對該用戶端的公鑰進行驗證。而這樣的驗證過程,必將包括對證書授權(quán)中心CA簽名的驗證。但簽名的驗證一般是一個計算量較大的計算過程。
本發(fā)明所述方法在密鑰協(xié)商協(xié)議的過程中,采用隱式認證公鑰,使得用戶端在使用公鑰之前,不需要進行顯示的公鑰認證(即CA簽名的驗證),這大大減輕了用戶端的計算負擔,提高了用戶端在進行密鑰協(xié)商時的計算效率。本發(fā)明采用的隱式認證公鑰在被使用的過程,其真實性及有效性同時得以驗證。
在基于身份的密碼體制中,無論對私鑰生成中心(Private key generator)采用層次式或者分散式的管理模式,都不可能完全消除密鑰托管這一難題。在某些應用場合,比如一個集中管理下的公司或者部門,密鑰托管是一個很好的屬性。但是,對于另外的一些應用場合,例如電子郵件系統(tǒng)、安全文件傳輸系統(tǒng),密鑰托管卻變得讓人無法接受。
本發(fā)明采用Gentry在2003年歐洲密碼學會議上首次提出的一種全新隱式認證公鑰,構(gòu)造了一個全新的密鑰協(xié)商協(xié)議,既解決了密鑰托管問題,又使得用戶端避免了對公鑰進行驗證,減輕了用戶端的計算負擔。Gentry的新型隱式公鑰證書的具體細節(jié)可參見文獻(C.Gentry.Certificate-based encryption and the certificate revocationproblem,Proc.of Eurocrypt’03,LNCS 2656,Springer-Verlag,pp.272-293,2003)。
本發(fā)明所述的基于Gentry隱式公鑰證書的雙方認證密鑰協(xié)商方法,包括三方用戶端A和B以及一個可信機構(gòu)(Trusted Authority,TA)。其中用戶端A和B可以是能夠執(zhí)行相應軟件程序的普通計算機或具有類似信息處理功能的裝置,如筆記本電腦、PDA等,可信機構(gòu)TA一般由執(zhí)行相應服務程序的服務器來實現(xiàn),它為協(xié)議雙方生成隱式公鑰證書。
具體說來,本發(fā)明所述方法可分為以下三個階段第一階段,系統(tǒng)初始化及用戶端注冊令e是群G1和G2上的雙線性配對,q是一個素數(shù),為兩個群的階。
可信機構(gòu)TA執(zhí)行以下步驟,參見圖111)隨機選擇群G1的一個生成元P,一個主密鑰s,s∈Zq*,]]>并計算系統(tǒng)公鑰PPub=sP;12)選擇一個密碼哈希函數(shù)H1滿足H1:{0,1}*→G1;13)最后,TA公布系統(tǒng)參數(shù)params,params=<G1,G2,e,P,PPub,H1>。
設用戶端A和B的身份信息分別為IDA和IDB。A和B執(zhí)行以下步驟14)分別隨機生成自己的部分私鑰sA,sB∈Zq*,]]>并計算相應的部分公鑰PA=sAP,PB=sBP;15)分別將他們的部分公鑰公布出去,例如通過公開目錄公布出去;16)分別向可信機構(gòu)TA提交身份信息IDA和IDB及相應部分公鑰PA,PB,以申請隱式公鑰證書。
第二階段,隱式公鑰證書生成及分發(fā)可信機構(gòu)TA執(zhí)行下列步驟,為用戶端A和B生成并分發(fā)隱式公鑰證書,參見圖221)核實用戶端A和B的真實身份(可通過檢查身份信息,例如身份證件實現(xiàn)),若核實過程通過,可信機構(gòu)TA計算哈希值QID=H1(ID,PID)∈G1,其中ID∈{IDA,IDB};22)利用主密鑰s對哈希值QID進行簽名,得到隱式公鑰證書CertID(CertID=sQID);23)通過公開信道,分別將CertID相應的發(fā)送給用戶端A和B。
由此,用戶端A和B的隱式公鑰證書分別為CertA、CertB。注意,這里的證書發(fā)送過程,同傳統(tǒng)PKI中的顯式公鑰證書的發(fā)送一樣,不需要安全信道。而在身份基密碼體制中,隱式公鑰證書(也即用戶端的私鑰)在發(fā)送過程中,需要用到用戶端與PKG之間的安全信道。而安全信道的建立,是一件不容易的事情。
第三階段,認證密鑰協(xié)商在進行密鑰協(xié)商之前,用戶端A和B也分別計算哈希值QID=H1(ID,PID)∈G1,其中ID∈{IDA,IDB}。接著,他們分別利用自己的部分私鑰sA和sB計算sAQA和sBQB。為了生成一個共享的會話密鑰,用戶端A和B首先分別隨機生成一個臨時私鑰a和b(a,b∈Zq*),]]>并計算相應的臨時公鑰TA與TB,其中TA=aP,TB=bP。用戶端A和B執(zhí)行以下步驟,參見圖331)用戶端A將TA通過公丌信道發(fā)送給用戶端B;32)用戶端B將TB通過公丌信道發(fā)送給用戶端A;33)在收到TB之后,用戶端A計算共享密鑰KAB如下KAB=e(aQB,PPub+PB)·e(TB,CertA+sAQA);34)完全類似地,用戶端B在收到用戶端A發(fā)來的TA之后,計算共享密鑰KBA如下KBA=e(bQA,PPub+PA)·e(TA,CertB+sBQB)。
容易驗證,e(aQB,PPub+PB)=e(aQB,sP+sBP)=e(QB,(s+sB)aP)=e(aP,(s+sB)QB)=e(TA,CertB+sBQB)。
即,KAB中的第一個雙線性配對值等于KBA中的第二個雙線性配對值。完全類似地,可驗證KAB中的第二個配對值等于KBA中的第一個配對值。所以,可以得出結(jié)論KAB=KBA,也就是說,在通過執(zhí)行一次上述協(xié)商過程之后,用戶端A和B確實協(xié)商獲得了一個共享密鑰。
在實際應用過程當中,為了消除共享密鑰KAB、KBA中可能存在的一些弱比特位,可以利用一個密鑰抽取函數(shù)(Key Derivation Function,kdf)對共享密鑰KAB和KBA進行處理,由公式sk=kdf(KAB)=kdf(KBA)計算出最終的共享會話密鑰sk。
另外,為了防止某些可能的攻擊(如未知密鑰共享攻擊),還可以將用戶端A和B的身份信息作為密鑰抽取函數(shù)kdf輸入值。這樣,最終的共享會話密鑰sk由下式計算得出sk=kdf(IDA,IDB,KAB)=kdf(IDA,IDB,KBA)。
另外,基于在本發(fā)明所述的雙方認證密鑰協(xié)商方法,利用目前文獻中比較通用的辦法,采用一個報文認證函數(shù)(MAC,message authentication code)(一般由一個帶密鑰的密碼哈希函數(shù)來構(gòu)造),本發(fā)明所述方法還可以容易被轉(zhuǎn)化為一個帶消息確認(KeyConfirmation)的三次消息傳遞方法,這里就不再贅述。
另外,本發(fā)明還提供了一種基于隱式公鑰證書的雙方認證密鑰協(xié)商方法的系統(tǒng),如圖4所示,所述系統(tǒng)包括需要進行認證密鑰協(xié)商的用戶端A和用戶端B,以及為雙方生成隱式公鑰證書的可信機構(gòu)。
所述可信機構(gòu)包括系統(tǒng)參數(shù)生成模塊,用于首先隨機生成系統(tǒng)主密鑰,然后生成并公布系統(tǒng)參數(shù);身份核實模塊,用于核實用戶端A和用戶端B的身份;隱式公鑰證書生成模塊,用于利用主密鑰進行簽名得到隱式公鑰證書,并通過公開信道分別將隱式公鑰證書發(fā)給用戶端A和用戶端B。所述的系統(tǒng)公鑰生成模塊、身份核實模塊和隱式公鑰證書生成模塊。
所述用戶端A包括部分公鑰/私鑰對生成模塊,用于首先隨機生成用戶端A的自選部分私鑰,然后根據(jù)這一部分私鑰計算相應的部分公鑰,并將相應部分公鑰及用戶端A的身份信息發(fā)送給所述可信機構(gòu);臨時公鑰/私鑰對生成模塊,用于首先隨機生成臨時私鑰,然后根據(jù)這一臨時私鑰計算相應的臨時公鑰,并將它通過公開信道發(fā)送給用戶端B;共享密鑰生成模塊,用于根據(jù)用戶端B發(fā)來的臨時公鑰進行計算,得到共享密鑰。
所述用戶端B也包括部分公鑰/私鑰對生成模塊,用于首先隨機生成用戶端B的自選部分私鑰,然后根據(jù)這一部分私鑰計算相應的部分公鑰,并將相應部分公鑰及用戶端B的身份信息發(fā)送給所述可信機構(gòu);臨時公鑰/私鑰對生成模塊,用于首先隨機生成臨時私鑰,然后根據(jù)這一臨時私鑰計算相應的臨時公鑰,并將它通過公開信道發(fā)送給用戶端A;共享密鑰生成模塊,用于根據(jù)用戶端A發(fā)來的臨時公鑰進行計算,得到共享密鑰。
對本技術(shù)領域的普通技術(shù)人員來說,根據(jù)上述典型實施例可以很容易地聯(lián)想到其他的優(yōu)點和變形。因此,本發(fā)明并不局限于上述實施例,該實施例僅是對本發(fā)明的一種形態(tài)進行詳細、示范性的說明。在不背離本發(fā)明宗旨的范圍內(nèi),本領域普通技術(shù)人員可以通過各種等同替換得到類似的技術(shù)方案,但是這些技術(shù)方案均應該包含在本發(fā)明的權(quán)利要求的范圍及其等同的范圍之內(nèi)。
權(quán)利要求
1.基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,其特征在于,包括以下步驟步驟A可信機構(gòu)利用隨機生成的系統(tǒng)主密鑰生成并公布系統(tǒng)參數(shù);用戶端A和B根據(jù)各自隨機生成的部分私鑰得到相應的部分公鑰,并分別向可信機構(gòu)提交身份信息及相應部分公鑰;步驟B所述可信機構(gòu)核實用戶端A和B的真實身份后,根據(jù)用戶端A和B的身份信息及其各自部分公鑰得到隱式公鑰證書,并相應地分發(fā)給用戶端A和B;步驟C用戶端A和B分別利用隨機生成的臨時私鑰得到相應的臨時公鑰,并分別根據(jù)對方的臨時公鑰、雙方的部分公鑰及系統(tǒng)參數(shù),并利用各自的部分私鑰、臨時私鑰及隱式公鑰證書,獲得共享密鑰。
2.根據(jù)權(quán)利要求1所述的基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,其特征在于所述步驟B中的得到隱式公鑰證書具體包括根據(jù)用戶端A和B的身份信息及其各自部分公鑰,分別為用戶端A和B計算一個哈希值QID,并利用系統(tǒng)主密鑰對哈希值QID進行簽名得到隱式公鑰證書。
3.根據(jù)權(quán)利要求1所述的基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,其特征在于所述用戶端A和B通過公開目錄分別將他們的部分公鑰公布出去。
4.根據(jù)權(quán)利要求1所述的基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,其特征在于所述可信機構(gòu)通過檢查身份信息核實用戶端A和B的真實身份。
5.根據(jù)權(quán)利要求1所述的基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,其特征在于所述方法還包括利用密鑰抽取函數(shù)kdf對共享密鑰進行處理,獲取共享會話密鑰的步驟。
6.根據(jù)權(quán)利要求1所述的基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,其特征在于所述方法還包括利用密鑰抽取函數(shù)kdf對共享密鑰進行處理,并將用戶端A和B的身份信息作為密鑰抽取函數(shù)kdf輸入值,獲取共享會話密鑰的步驟。
7.根據(jù)權(quán)利要求1所述的基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,其特征在于,通過公開信道分別將隱式公鑰證書分別發(fā)送給用戶A和用戶B。
8.基于隱式公鑰證書的雙方認證密鑰協(xié)商方法的系統(tǒng),其特征在于,所述系統(tǒng)包括需要進行認證密鑰協(xié)商的雙方用戶端,及為雙方生成隱式公鑰證書的可信機構(gòu),所述可信機構(gòu)包括系統(tǒng)參數(shù)生成模塊,用于隨機生成系統(tǒng)主密鑰,生成并公布系統(tǒng)參數(shù);身份核實模塊,用于核實用戶端身份;隱式公鑰證書生成模塊,用于利用主密鑰進行簽名得到隱式公鑰證書,并將隱式公鑰證書發(fā)給用戶端;所述用戶端均包括部分公鑰/私鑰對生成模塊,用于根據(jù)隨機生成的用戶端部分私鑰得到相應的部分公鑰,并將相應部分公鑰及用戶端身份信息發(fā)送給所述可信機構(gòu);臨時公鑰/私鑰對生成模塊,用于根據(jù)隨機生成臨時私鑰,得到相應的臨時公鑰,并將該臨時公鑰發(fā)送給另一用戶端;共享密鑰生成模塊,用于根據(jù)所述臨時公鑰/私鑰對生成模塊發(fā)來的臨時公鑰進行計算,得到共享密鑰。
全文摘要
基于隱式公鑰證書的雙方認證密鑰協(xié)商方法及系統(tǒng),屬于網(wǎng)絡通信技術(shù)領域。為了解決現(xiàn)有技術(shù)中的公鑰驗證問題和密鑰托管問題,本發(fā)明公開了一種基于隱式公鑰證書的雙方認證密鑰協(xié)商方法,該方法通過系統(tǒng)初始化及用戶端注冊,隱式公鑰證書生成及分發(fā),認證密鑰協(xié)商三個階段,綜合利用傳統(tǒng)PKI和身份基的密碼方案,一方面消除不必要的密鑰托管性質(zhì),另一方面又能保持部分身份基密碼的優(yōu)點。另外,本發(fā)明還公開了一種實現(xiàn)基于隱式公鑰證書的雙方認證密鑰協(xié)商方法的系統(tǒng)。
文檔編號H04L9/30GK1889433SQ200610103340
公開日2007年1月3日 申請日期2006年7月20日 優(yōu)先權(quán)日2006年7月20日
發(fā)明者曹珍富, 董曉蕾, 王圣寶, 鄭志彬, 位繼偉 申請人:上海交通大學, 華為技術(shù)有限公司