專利名稱:詢問-應(yīng)答簽名和安全迪菲-海爾曼協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的各方面總體涉及對(duì)于信息交換的發(fā)送和接收方可證明是安全
的簽名。更具體而言,詢問-應(yīng)答(challenge-response)簽名方案擁有檢驗(yàn) 者和簽名者均可以計(jì)算出相同或相關(guān)的簽名的特性,前者通過知道詢問以 及后者通過知道秘密簽名密鑰(private signature key)來計(jì)算,從而在示 例性實(shí)施例中準(zhǔn)許可證明是安全的、常規(guī)密鑰交換協(xié)議的變體,包括^^p 的MQV協(xié)議的變體。
背景技術(shù):
如最初所建議的,圖1中所示的Diffie-Hellman (迪菲-海爾曼,DH) 密鑰交換協(xié)議100 ^L認(rèn)為對(duì)于防御僅竊聽(eavesdropping-only)的攻擊者 是安全的。對(duì)抵抗有效的、中間人攻擊(man-in-他e-middle attacks )的"認(rèn) 證Diffie-Hellman (authenticated Dtffie-Hellman)"協(xié)議的搜尋已經(jīng)導(dǎo)致 了無數(shù)的ad-hoc (特定的)提議,它們中的很多已經(jīng)損壞或者顯示有缺點(diǎn)。 隨著近幾年用于密鑰交換的嚴(yán)密安全模型(rigorous security model)的發(fā) 展,本領(lǐng)域的技術(shù)人員現(xiàn)在處于好得多的形勢來判斷這些協(xié)議的安全性, 以及開發(fā)可證明抵抗現(xiàn)實(shí)有效攻擊的設(shè)計(jì)。
如所期望的,添加防御有效攻擊的防護(hù)措施導(dǎo)致復(fù)雜性增加,無論是 在附加的通信方面還是在附加的計(jì)算方面。后者在利用公鑰技術(shù)認(rèn)證的協(xié) 議中尤為重要,其通常要求附加的昂貴的群求冪(group exponentiation)。 除了需要可靠的安全性之外,對(duì)密鑰交換的很多實(shí)際應(yīng)用已經(jīng)促使設(shè)計(jì)者 改進(jìn)與認(rèn)#制關(guān)聯(lián)的性能代價(jià),尤其是基于公鑰的那些。
由Matsumoto、 Takashima和Imai在1986年; t^的一條調(diào)查線(one line ofinvestigation )是對(duì)將向協(xié)議增加最小的復(fù)雜性的公鑰(PK)認(rèn)證 DH協(xié)議的搜索。理論上,直至認(rèn)證公鑰的交換,協(xié)議的通信被期望完全 看作是基本DH交換。在該技術(shù)中,必須通過密鑰導(dǎo)出過程獲得協(xié)議的認(rèn)
證各方會(huì)對(duì)將gx、 gy與各方的公鑰/私鑰相結(jié)合的密鑰達(dá)成一致,而不是
對(duì)基本Diffie-HeUman密鑰g"達(dá)成一致。
一部分由于這樣的協(xié)議將提供的實(shí)際優(yōu)點(diǎn),以及一部分由于在這樣的 設(shè)計(jì)之后的數(shù)學(xué)詢問,在該方法下已經(jīng)開發(fā)了4艮多協(xié)議,常被稱為"可隱 ^iUit的Diffie-Hellman協(xié)議"。該方法不僅可以生成作為非常有效的通 信方式(communication-wise)的協(xié)議,而且與密鑰導(dǎo)出過程相結(jié)合的認(rèn) 證可以潛在地導(dǎo)致顯著的計(jì)算節(jié)約。由于這些原因,這些"可隱含認(rèn)證的" 協(xié)議中的幾個(gè)協(xié)議已經(jīng)被主要的國家和國際安全標(biāo)準(zhǔn)進(jìn)行了標(biāo)準(zhǔn)化.
在這些協(xié)議中,MQV協(xié)議似乎已經(jīng)被廣泛標(biāo)準(zhǔn)化。很多組織已經(jīng)將 該協(xié)議標(biāo)準(zhǔn)化,并且最近美國國家安全局(NSA)已經(jīng)宣布該協(xié)議是作為 "保護(hù)美國il^信息的下一代密碼術(shù)"的基礎(chǔ)的密鑰交換機(jī)制,其包括"密 級(jí)(classified)或緊^^吏命(mission critical)國家安全信息"的保護(hù).
另夕卜,MQV似乎已經(jīng)被設(shè)計(jì)以滿足一批安全目標(biāo)。例如,在Vanstone 等人的第5,761,305號(hào)美國專利中解釋了 MQV協(xié)議的^版本。
然而,盡管其具有吸引力并且獲得了成功,但是在密鑰交換的良好定 義的模型中MQV迄今為止回避任何形式上的分析。本發(fā)明的動(dòng)機(jī)便在于 希望提供這樣的分析。在進(jìn)行研究時(shí),發(fā)明AJ5l察到實(shí)質(zhì)上沒有一個(gè)所陳 述的MQV目標(biāo)是可以被顯示成立的,如在Canetti和Krawczyk的計(jì)算密 鑰交換模型中所實(shí)現(xiàn)的,以及如在以上標(biāo)識(shí)的臨時(shí)申請(qǐng)中所描述的.
該結(jié)果使得本發(fā)明人關(guān)注于這一常規(guī)協(xié)議的安全性,因此,基于常規(guī) 的MQV協(xié)議不可證明是安全的這一分析,在優(yōu)選地保持其現(xiàn)有性能和通 用性的同時(shí),存在對(duì)MQV增加安全性的需要。
發(fā)明內(nèi)容
鑒于常規(guī)系統(tǒng)的前述以及其它的示例性問題、缺點(diǎn)以及劣勢,本發(fā)明 的示例性特征在于提供一種用于MQV的新變體(在文中稱為HMQV)的
方法和結(jié)構(gòu),其以可證明的方式實(shí)現(xiàn)了所述MQV協(xié)議的安全目標(biāo)。
本發(fā)明的另一示例性特征在于iHi—種新的數(shù)字簽名方案,在文中稱 為"詢問-應(yīng)M名"。
本發(fā)明的另 一示例性特征在于將該詢問-應(yīng)答簽名方案論證為包括從 Schnorr識(shí)別方案導(dǎo)出的、在文中稱為"指數(shù)詢問-應(yīng)答"(exponential challenge-response, XCR)簽名方案的版本,論證為提供了一種具有詢問 者和簽名者均可以計(jì)算出相同或相關(guān)簽名的特性的協(xié)議機(jī)制,前者通過已 經(jīng)選擇詢問來計(jì)算以及后者通過知道秘密簽名密鑰來計(jì)算。
因此,本發(fā)明的示例性目的在于提供一種用于為認(rèn)證Diffie-Hellman 協(xié)議改進(jìn)安全性的結(jié)構(gòu)和方法,其中可以通過在其中實(shí)現(xiàn)XCR簽名方案 的概念來論證安全性是可證明的,
在本發(fā)明的第一示例性方面,為了實(shí)現(xiàn)以上特征和目的,文中描述了 一種在通過設(shè)備或網(wǎng)絡(luò)互連的雙方之間交換的方法,其包括接受方(檢驗(yàn) 者)選擇用于計(jì)算值X-F/(;c)的秘密值jc,其中包括具有至少一個(gè)自變 量的第一預(yù)定函數(shù),所述值jc是n的所述至少一個(gè)自變量之一。簽名方 (簽名者)選擇用于計(jì)算值PKF200的秘密值》其中"包括具有至少一 個(gè)自變量的第二預(yù)定函數(shù),所述值J是"的所述至少一個(gè)自變量之一。 所述簽名者獲得所述值A(chǔ)T,所述簽名者還具有私鑰A和公鑰丑。所述簽名 者計(jì)算值FF3(y,辦,A),其中K 包括具有至少三個(gè)自變量的笫三預(yù)定函數(shù), 所述值j、所述私鑰6以及所述值X是W的所述至少三個(gè)自變量中的三個(gè) 自變量。存在第四預(yù)定函數(shù)/^(jc,r,丑)以計(jì)算值s', /^具有至少三個(gè)自變 量,所述值jc、所述值r以及所述公鑰5是的所述至少三個(gè)自變量中 的三個(gè)自變量,但是所述值s不是的自變量。在所述檢驗(yàn)者和所述簽名 者之間不存在用作所述函數(shù)F7、 F么和的任何一個(gè)中的任何自變 量的基礎(chǔ)的、共享的秘密。如果確定值s'以預(yù)定方式與值s相關(guān),則所述 檢驗(yàn)者可以將所述值s和s'考慮為有效認(rèn)證符。
在本發(fā)明的第二和第三示例性方面,文中還描述了一種實(shí)現(xiàn)在前面段 落中所描述的方法的裝置,以及有形地體現(xiàn)可由數(shù)字處理裝置執(zhí)行以實(shí)現(xiàn)所述方法的機(jī)器可讀指令的程序的信號(hào)承載介質(zhì)。
在本發(fā)明的第四示例性方面,文中還描述了 一種用于在通過設(shè)備或網(wǎng)
絡(luò)互連的雙方之間建立i人證密鑰的方法。第一方具有私鑰fl和^^鑰^,所 述私鑰fl是使得0S"^9-l的整數(shù),《是正整數(shù),g是《階有限群的生成元 (generator),并且^是由所述值g生成的群中的元素且計(jì)算為^=g"。 第二方具有私鑰6和公鑰5=^,所述私鑰6是使得0S6S《-l的整數(shù)。所 述第一方選擇用于計(jì)算值》f的秘密值a:, jc是使得0S;^《-1的整數(shù),并 且所述值A(chǔ):被傳達(dá)至所述第二方。所述第二方選擇用于計(jì)算值的秘密 值》j;是使得OSj^g-l的整數(shù),并且所述值r被傳達(dá)至所述第一方.所 述第一方計(jì)算值"/i(r,5,m)""'。'""",其中w、附'包括所述方之間已知或交 換的消息,并且所述第二方計(jì)算值^ = /3(義乂附'"°/'6'"°}。所述函數(shù)/2和/4 中的至少一個(gè)包括具有至少一個(gè)自變量的函數(shù)H, 一個(gè)這樣的自變量是所 述消息w和/w'中的至少一個(gè),其中H包括是單向函數(shù)之一的密碼函數(shù)、 加密函數(shù)以及密碼散列函數(shù)。所述第一和第二方分別從值s和s'導(dǎo)出共享 密鑰,
根據(jù)下面參照附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例的詳細(xì)描述,可以更好地理 解前述以及其它的目的、方面和優(yōu)點(diǎn),其中
圖1示出了基本(未認(rèn)證)Diffie-Hellman協(xié)議100;
圖2示出了通過使用數(shù)字簽名認(rèn)證的兩消息Diffie-Hellman協(xié)議200;
圖3示出了常規(guī)MQV協(xié)議中的會(huì)話密鑰K的計(jì)算相對(duì)于本發(fā)明的 HMQV協(xié)議的會(huì)話密鑰的計(jì)算的比較300,在一個(gè)示例性實(shí)施例中論汪了 HMQV如何利用附加于MQV中所使用的散列的散列;
圖4示出了與圖3中所示出的HMQV協(xié)i5C不同的圖示400;
圖5示例性地示出了 XCR的計(jì)算500;
圖6示出了非交互式XCR簽名的計(jì)算600的例子;
圖7示出了雙方的雙重XCR簽名的計(jì)算700;
圖8示出了如在三消息密鑰確認(rèn)(HMQV-C )協(xié)議800中示例性體現(xiàn) 的HMQV;
圖9示出了如在單向(one-pass )密鑰交換卯0中示例性體現(xiàn)的HMQV; 圖10說明了用于在其中并入本發(fā)明的示例性硬件/信息處理系統(tǒng) 1000;以及
圖11說明了用于存儲(chǔ)根據(jù)本發(fā)明的方法的程序的步驟的信號(hào)承載介 質(zhì)IIOO (例如,存儲(chǔ)介質(zhì))。
具體實(shí)施例方式
現(xiàn)參照附圖,并且更具體地參照?qǐng)D1-11,其中示出了根據(jù)本發(fā)明的方
法和結(jié)構(gòu)的示例性實(shí)施例。
作為對(duì)群和記號(hào)的初步注記,文中所討論的所有協(xié)議和操作均假設(shè)由
生成元《所生成的、《(通常是素?cái)?shù))階的循環(huán)群( ?!兜谋忍亻L度由w (例
如|《|= fto敘n ,意思是底為2的《的對(duì)數(shù),上舍入為最接近的整數(shù))表示, 并且該量用作隱含安全^lt。為簡單起見,如實(shí)際中常見的,假設(shè)M( 、 g和g是固定的并且各方預(yù)先已知??蛇x地,可以將這些值包括在證書等 中。
文中使用群操作的乘法表示,但是該處理同樣可應(yīng)用于加法群,例如 橢圓曲線或任何其它的代數(shù)群或特定群、有限域、復(fù)合模,等等。在協(xié)議 中,用大寫字母(例如,A、 B)表示的么嘲是群C7中的元素,以及用相 應(yīng)的小寫字母(例如,a、 6)表示的私鑰是4中的元素,其中Z《表示整 數(shù)0,1,…,《-1的集合。
例如,公鑰^-^對(duì)應(yīng)于私鑰fl。將^作為其公鑰的一方將用^來表示, 按慣例被認(rèn)為是"Alice"(第二方》按慣例被認(rèn)為是"Bob")。通常,
"補(bǔ)注記號(hào)(hat notation)"用于表示協(xié)議中各方的邏輯或"區(qū)別"身份, 例如姓名、電子郵件地址、角色等。在一些情況下,可以為這些身份增補(bǔ) 數(shù)字證書。對(duì)于在臨時(shí)申請(qǐng)中所提供的較為完整的數(shù)學(xué)分析,這里不再重 復(fù),考慮通過概率多項(xiàng)式時(shí)間機(jī)來實(shí)現(xiàn)協(xié)議中包括攻擊者在內(nèi)的各方。攻
擊者還由Af表示,其中M可以代表"惡意的(malicious)"。
因而,如圖1中所示,對(duì)用于基本的未認(rèn)證Diffie-Hellman協(xié)議100 的會(huì)活密鑰的計(jì)算包括在雙方^、 i之間的交換,其中i方首先向》方發(fā)送 其密鑰A^Z,并且S方然后通過將其密鑰F^傳輸回i方來應(yīng)答,并且其 中jc和y是分別由i和》從集合&隨機(jī)選擇的秘密,并且其中將共享M 密鑰計(jì)算為g氣
注意到在文中的描述中,符號(hào)^有時(shí)用于表示隨機(jī)選擇。例如,義^Zg 意味著從整數(shù)集Z《隨機(jī)選擇值;c,通常通過使用隨機(jī)或偽隨機(jī)數(shù)字發(fā)生器。
MQV協(xié)議
除了身份i、》可以包拾渚如公鑰證書這樣的附加信息,或者可以將 這些身份一起省^W之外,MQV協(xié)議中的通信與圖1中所描繪的基本的 未認(rèn)證DH協(xié)議100相同。
在設(shè)計(jì)兩消息認(rèn)證密鑰交換協(xié)議中的第 一詢問是要基于第 一協(xié)議消息 的重放來防止成功的攻擊。由于第一消息不能夠包括由應(yīng)答者所貢獻(xiàn)的任 何形式的、會(huì)話專用(session-specific)的"新鮮度保證(freshness guarantee)"(例如,像nonce或新鮮的DH值),因此這是有問題的。 該問題的一個(gè)解決方案是通過計(jì)算會(huì)話密鑰來提供新鮮度。
舉例來說,如ISO (國際標(biāo)準(zhǔn)組織)9793協(xié)議所采用的,圖2中所示 出的兩消息Diffie-Hellman協(xié)議200是使用數(shù)字簽名認(rèn)證的。雖然在》的 簽名下包括/提供了認(rèn)證的新鮮度,但是在^的消息中并不存在該保護(hù)措 施。而會(huì)活密鑰f是保證新鮮的(并且與其它會(huì)話密鑰無關(guān)),因?yàn)槠溆?新鮮的j;隨機(jī)化。然而,如果攻擊者能夠找到^在與》的會(huì)話中所4吏用的 單個(gè)(A Z)對(duì),則打破了協(xié)議的安全性,在這種情況下攻擊者還獲知 SIG"gx,S).這允許攻擊者使用相同的消息及其對(duì)jc的知識(shí)不定地向》假 冒^,并且不需要曾必須獲知j的長期秘密簽名密鑰。
這是嚴(yán)重的弱點(diǎn),其違犯了這樣的基本原理,即對(duì)短暫的(ephemeral) 會(huì)話專用信息(例如,(x,f)對(duì))的公開不應(yīng)當(dāng)泄漏其它的會(huì)話.考慮到很
多應(yīng)用將脫機(jī)計(jì)算該(;c,,)對(duì)并且將它們保留在較之比方說長期私鑰來說
保護(hù)得更少的存儲(chǔ)器中,這就尤為嚴(yán)重。
所以如何能夠設(shè)計(jì)一種即使在泄漏了短暫信息的時(shí)候仍可抗重放攻擊 (replay attack)的兩消息協(xié)議?通常的回答是將長期私鑰包括到會(huì)話密 鑰的計(jì)算中。這是Matsumoto、 Takashima和Ima在1986年的工作已提 出的方法,其激發(fā)了很多所謂的、Diffie-Hellman的"可隱含認(rèn)證的"變 體,包括MQV。在該方法中,每一方均具有長期DH公鑰及其相應(yīng)的秘 密成分,并且通過將會(huì)話專用的短暫DH值與各方的公鑰和私鑰相結(jié)合而 生成會(huì)活。因而,這樣的協(xié)議的安全性完全取決于密鑰的這一結(jié)合的準(zhǔn)確 細(xì)節(jié)。顯著地,在具有若干缺點(diǎn)的所有先前的協(xié)議的情況下,這一表面上 簡單的想法是難以安全實(shí)現(xiàn)的。
現(xiàn)在考慮以下對(duì)在會(huì)話密鑰計(jì)算中結(jié)合短暫和長期密鑰的問題的通常 的解決方案,當(dāng)i和》想要交換密鑰時(shí),他們進(jìn)行基本Diffie-Hellman協(xié) 議并且計(jì)算會(huì)話密鑰為《-g"+。^+W-(yg廣。-(X4)"6。在這種情況下,如果 攻擊者獲知JC而不知道fl,則其不能夠計(jì)算iL
然而,該協(xié)議仍然是不安全的,如由下面的簡單攻擊所論證的M選
擇值^^A,計(jì)算j^-g勺x,并且向》發(fā)送:\:*作為對(duì)來自2的初始消息 的假冒.》發(fā)送r-,并且計(jì)算會(huì)話密鑰《-(z")一。遺憾的是,M還可 以計(jì)算jr為(丑r) .因而,該協(xié)議是不安全的。
此外,即使JT的計(jì)算變成對(duì)于常數(shù)rf、 e的A=g(xfrfa)0>+,,那么攻擊也
仍然是可能的。另一方面,如果允許常數(shù)d、 e以攻擊者不能夠分別控制e
和r的方式而隨AT和r變化,則以上的簡單攻擊可能不起作用。該想法將 我們帶回到對(duì)MQV的設(shè)計(jì),其中d-f并且e-F。
圖3中示出了 MQV中的會(huì)活密鑰K的計(jì)算301、 302,其中j方擁有 長期私鑰aeZg以及相應(yīng)的公鑰/4=/。類似地,B的私鑰/公鑰對(duì)是(6, 丑=/),并且短暫的DH值是X-^、 y=/,其中分別由A和B選擇x、 y。 會(huì)話密鑰的計(jì)算還使用值d-f和e-F,其中對(duì)于/叫^/2,X-2'+(Xmod2') 以及F-2'+(ymod2"。
注意到i對(duì)會(huì)話密鑰的計(jì)算涉及用于計(jì)算X=f的一個(gè)脫機(jī)求冪、用于
計(jì)算^的一個(gè)在線求冪,以及用于CF5yw"的附加在線求冪。然而,還注 意到第二求冪使用長度為l《l/2的指數(shù)e,并且因而其計(jì)數(shù)為"半求冪(half exponentiation)"(例如,相對(duì)于g的正常求冪的模數(shù)乘法的一半數(shù)目)。 操作的相同計(jì)數(shù)對(duì)于5成立。
總之,MQV的性能是真正讓人印象深刻的與基本的未認(rèn)證DH協(xié) 議相同的通信(除了對(duì)作為各方身份的一部分的證書的可能傳輸之外)以 及只比基本協(xié)議多一半的求冪,其僅僅在計(jì)算上增加了 25%以獲得認(rèn)證交 換。這極大地好于依賴于用于認(rèn)證的數(shù)字簽名或公鑰加密的、已證明的DH 協(xié)議中的任何一個(gè),這些協(xié)議涉及更昂貴的操作以及增加的帶寬。它還是 最有效率的可隱^S人證的DH協(xié)議、最接近于要求三個(gè)完整求冪但提供相 當(dāng)少的安全特征的"統(tǒng)一模型(Unified Model)"協(xié)議.
當(dāng)選擇認(rèn)證的DH協(xié)議時(shí),這一非凡性能以及對(duì)安全性的承諾使得 MQV成為有吸引力的候選者。由于這些原因,該協(xié)議已經(jīng)被采用于很多 標(biāo)準(zhǔn)并且在文獻(xiàn)中得到廣泛討論。然而,由于還未在密鑰交換安全的M 形式模型中成功地進(jìn)行對(duì)MQV協(xié)議的任何形式上的分析,因此迄今為止 仍未回答的一個(gè)問題是MQV協(xié)議真正地有多么安全。
另一方面,MQV設(shè)計(jì)者已經(jīng)明確了在設(shè)計(jì)后面的安全目標(biāo)。這些包 括防御假冒和已知密鑰攻擊(包括抗"未知密鑰共享(UKS)"攻擊)的 M安全性,以及諸如完全正向保密(PFS)和抗KCI (密鑰泄漏假冒) 攻擊的更具體的特征??挂阎荑€攻擊表示這樣的原理,即對(duì)短暫的M 專用秘密信息的4S開不應(yīng)當(dāng)泄漏其它會(huì)話的安全性。
PFS和KCI特性涉及在一方的私鑰泄漏給攻擊者M(jìn)的情況下對(duì)安全 損害的P艮制。更具體而言,PFS意味著在兩個(gè)^it破壞方之間建立的任何 會(huì)活密鑰即使在會(huì)活密鑰被從雙方的存儲(chǔ)器中清除之后雙方遭破壞的情況 下也不能夠被M獲知??筀CI攻擊要求獲知2方的長期密鑰并且因此可 以明顯地向其它方假冒^的攻擊者不能夠向^假冒其它的;^it破壞方。
遺憾地是,如以上引用的臨時(shí)申請(qǐng)中所進(jìn)一步描述的,本發(fā)明人的分
析結(jié)果表明當(dāng)在形式上進(jìn)行研究時(shí),MQV協(xié)議并不滿足這些特性中的任 何一個(gè)。特別地,在Canetti和Krawczyk的安全模型中論證到,該協(xié)議對(duì) 一系列攻擊開放,這與聲稱將由MQV滿足的上述安全特性相矛盾。
HMQV協(xié)議
HMQV協(xié)議(可以認(rèn)為"H"狄示"散列(Hash)")是MQV的 簡單但有效力的變體,在多個(gè)示例性實(shí)施例中,除了在步驟302中所示的 用于比較的常規(guī)MQV協(xié)議之外,其還可以包拾睹如圖3中的步驟303所 示的散列(hashing)。然而,還注意到,作為初始方式,這些示例性實(shí)施 例的散列步驟并不是本發(fā)明的先決條件,這是因?yàn)闊o需散列以及使用不同 于散列的技術(shù)的可選實(shí)施例在文中得到了討論,并且還被包括在本發(fā)明的 概念中。本發(fā)明^&本的概念涉及詢問-應(yīng)^^名方案,由此引申出多個(gè)應(yīng) 用和實(shí)施例,包括MQV協(xié)議的示例性散列版本。
本領(lǐng)域所^H^的散列法涉及使用散列函數(shù)將字符串轉(zhuǎn)化成數(shù)字、固定 長度的串(例如,散列或消息摘要(digest))等作為輸出。密碼學(xué)中散列 函數(shù)的基本功能性是具備"單向"或"不可逆"變換,意味著其對(duì)于檢索 原始數(shù)據(jù)應(yīng)當(dāng)是不可行的,并且對(duì)于構(gòu)建匹配于給定散列值的數(shù)據(jù)塊也是 不可行的。散列函數(shù)的范圍可以從簡單的"混合"功能到類似純粹隨機(jī)置 亂(scrambling)的變換。后者被稱為"強(qiáng)密碼散列函數(shù)"并且經(jīng)常由理 想隨機(jī)函數(shù)(或"隨機(jī)諭示(oracles)")在密碼分析中建模。
幾個(gè)散列函數(shù)被廣泛用于強(qiáng)密碼散列。例如,MD5將任意大小的數(shù)據(jù) 塊作為輸入,并且基于處理64字節(jié)的塊中的數(shù)據(jù)的正弦函數(shù),通過使用逐 位操作、加法以及值的表格來產(chǎn)生128比特(16字節(jié))的散列。另一主要 的散列函^Sbl提供160比特散列的NIST (國家標(biāo)準(zhǔn)技木研究所)安^Ht列 算法(SHA)。
通常,散列函數(shù)不直接用于加密,但是加密函數(shù)卻提供單向變換,并 且因此可應(yīng)用于一些散列用途,包括本發(fā)明的一些示例性實(shí)施例。散列函 數(shù)還很適于數(shù)據(jù)認(rèn)證,并且用于結(jié)合床密密鑰這樣的目的(在這些i殳置中,
他們常被稱為消息認(rèn)證代碼MAC或偽隨機(jī)函數(shù)PRF)或簽名方案(其中 散列值用于"消息摘要")。
本發(fā)明的各種示例性實(shí)施例使用至少一個(gè)散列函數(shù)H,該散列函數(shù)作 為在以上所引用的臨時(shí)申請(qǐng)中較為詳細(xì)描述的安全分析中的理想隨機(jī)諭示 而祐^提取。在這些示例性實(shí)施例中為其使用函數(shù)好的兩個(gè)任務(wù)如下第一, 計(jì)算指數(shù)么e;以及第二,導(dǎo)出M密鑰本身。
第一任務(wù)示例性地對(duì)好使用兩個(gè)自變量并且輸出長度為|《|/2的串,而 第二任務(wù)將仔應(yīng)用于單個(gè)自變量并且輸出指定長度(例如,128比特)的 密鑰。為了簡化記號(hào),相同的符號(hào)丑用于表示散列函數(shù)的兩種應(yīng)用。實(shí)際 上,可以使用單個(gè)好,比方說,SHA-1,其可以處理可變長度的輸入,并 且可以調(diào)整其輸出大小以適應(yīng)以上兩個(gè)任務(wù),在產(chǎn)生散列結(jié)果時(shí)可能使用 截?cái)?擴(kuò)充(truncation/expansion)的某種組合,
然而,還注意到,如果如在第一任務(wù)中那樣使用散列,將不必將其限 制于兩個(gè)自變量,因?yàn)橹T如時(shí)間戳、nonce等的附加自變量可以作為輸入 被包括到散列函數(shù)中,而不是僅散列消息或一方的身份。
當(dāng)使用散列的時(shí)候,用于生成指數(shù)d、 e的散列函數(shù)(通常具有/=|《|/2 比特的輸出)經(jīng)常用A4^示,并且應(yīng)用于具有/t比特輸出的c7值的散列 函數(shù)用好表示。實(shí)際上,相同的散列函數(shù)可以在不同輸出長度的情況下使 用,并且因此有時(shí)使用符號(hào)好代替A.作為記憶符號(hào),a中的橫桿指示將 函數(shù)的輸出用作指數(shù).
如在MQV中,HMQV協(xié)議的通信與較早在圖1中所示出的基本DH 交換相同,具有可能附加的證書。如圖3中舉例說明的,在值rf和e的計(jì) 算中,會(huì)話密鑰K的計(jì)算不同于MQV的計(jì)算,其涉及對(duì)一方自己的DH 值以及對(duì)等體身份的散列。該散列的典型輸出是/叫《|/2比特。另外,在一 個(gè)示例性實(shí)施例中,HMQV將值^-^的散列指定到*比特的密鑰,其 中A是所期望的會(huì)話密鑰的長度.在可選的實(shí)施例中,沒有散列一個(gè)或兩 個(gè)cj函數(shù).
根據(jù)本說明書,可以看出HMQV保持了 MQV在通信和計(jì)算兩方面
的顯著性能。與此同時(shí),在兩消息協(xié)議中HMQV以最大可能的程度克服 了以上引用的臨時(shí)專利申請(qǐng)中所討論的MQV的所有安全性缺點(diǎn),如文中 進(jìn)一步討論和證明的。稍后在本申請(qǐng)中將給出對(duì)HMQV的安全特性和優(yōu) 點(diǎn)及其變體的更為完整的說明。
詢問-應(yīng)^"名
盡管現(xiàn)在應(yīng)當(dāng)清楚HMQV協(xié)議如何不同于MQV協(xié)議,然而本發(fā)明 還有另一方面,其在某種意義上甚至更為重要作為HMQV后面的核心 設(shè)計(jì)和分析元素的主要技術(shù)工具是一種新形式的交互式簽名,被稱為"詢 問-應(yīng)^^名",其是使用Fiat-Shamir方法基于Schnorr的識(shí)別方案的新 變體來實(shí)現(xiàn)的。因此,獲得了本發(fā)明的"指數(shù)詢問-應(yīng)答"(XCR)簽名。 下面討論Schnorr和Fiat-Shamir方法與XCR簽名之間的關(guān)系。
這些XCR簽名在隨機(jī)諭示模型中(在計(jì)算性Diffie-Hellman或CDH 假設(shè)下一參見以下內(nèi)容)是安全的,并且示例性地具有檢驗(yàn)者和簽名者均 可以計(jì)算出相同簽名的特性.前者通過知道詢問來實(shí)現(xiàn)計(jì)算,以及后者可 以通過知道秘密簽名密鑰來實(shí)現(xiàn)計(jì)算。計(jì)算同樣的簽名的變體包括簽名者
和檢驗(yàn)者的不同^目關(guān)的簽名的計(jì)算。
例如,由一人計(jì)算的簽名值可能是由另一人計(jì)算的簽名的散列變體,
或者它們可以通過某種特定的代數(shù)特性等而相關(guān)。本發(fā)明的各種HMQV 協(xié)議是使用這些XCR簽名的一種示例性機(jī)制,其中它們提供(對(duì)DH值 和對(duì)等身份的)認(rèn)證以及會(huì)話密鑰計(jì)算。
因而,將要簡要討論的XCR簽名及其"雙重版本"(例如,DCR) 提供了從技術(shù)和概念上對(duì)以HMQV設(shè)計(jì)和分析為基礎(chǔ)的思想的自然解釋。
另外,注意到還可以在HMQV協(xié)議之外的應(yīng)用中使用XCR簽名。在 XCR簽名的基本形式中,由于其是交互式、詢問專用以及不可轉(zhuǎn)移的,因 此XCR簽名并沒有提供數(shù)字簽名的典型功能性。也就是說,不可以將其 用于不可抵賴(non-repudiation)的目的。
另一方面,XCR簽名提供了對(duì)于某些應(yīng)用(包括密鑰交換)來說重要
的特性一 "可否iU人證(deniable authentication ),,,由此,XCR簽名的 接受者可以確信消息或密鑰的起源和完整性,但是不能夠向任何第三方證 明該起源。特別地,這些簽名以及合成密鑰交換協(xié)議理論上適于"不宜報(bào) 道的(off-the-record)"通信以及隱私保護(hù)。另夕卜,如以下所討論的,XCR 的非交互式版本是存在的,并且在一些情況下,它們提供了可選方案來建 立簽名方案,例如公知的數(shù)字簽名算法(DSA)。
如在常規(guī)數(shù)字簽名方案中那樣,在詢問-應(yīng)^"名方案中,簽名者具有 分別用于簽名的生成和抬,驗(yàn)的一對(duì)私鑰和zi^鑰,并且^f^設(shè)檢驗(yàn)者獲得簽名 者的可信公鑰。特別地,并不假設(shè)各方在啟動(dòng)簽名協(xié)議之前共享秘密,也 不在簽名的計(jì)算中涉及這樣的共享秘密。然而,相比于常規(guī)簽名,在其基 本形式下,詢問-應(yīng)M名是交互式的,并且需要簽名的接受者(例如,檢 驗(yàn)者)在簽名者可以在給定消息上生成簽名之前向該簽名者發(fā)布詢問。安 全的詢問-應(yīng)M名方案需^:證除了合法的簽名者之外任何人都不能夠 生成^^兌服詢問者將簽名接受為有效的簽名.特別地,簽名不僅是消息專 用的而且還是詢問專用的。
另一方面,確保詢問者對(duì)簽名的可檢驗(yàn)性也是所關(guān)心的,并且因而沒 有假設(shè)或要求關(guān)于第三方對(duì)簽名的可轉(zhuǎn)移性或可^r驗(yàn)性.此外,下面所描 述的具體方案具有這樣的特性,即選擇詢問的一方總是可以在任何消息上 生成簽名,該簽名關(guān)于該特定詢問有效。對(duì)本申請(qǐng)甚至更重要并且使本方 案區(qū)別于其它交互式簽名的是這樣的事實(shí),即檢驗(yàn)者可以使用詢問來計(jì)算 與簽名者相同(或相關(guān))的簽名串。
如前所述,《是《階(通常是素?cái)?shù))的群(7的生成元。此外,i/是輸 出|《|/2比特(l3l= )的散列函數(shù),但是再次使用"素?cái)?shù)階"以及jy
的特定輸出長度僅僅是示例性實(shí)施例的示例性設(shè)計(jì)細(xì)節(jié),而并不是本發(fā)明 所必需的。
XCR簽名方案的定義
圖4中所說明的指數(shù)詢問-應(yīng)答(XCR )簽名方案500定義如下XCR
方案中由i表示的簽名者擁有私鑰6^z^以及7^必=/。由^表示的檢驗(yàn) 者(或詢問者)提供i計(jì)算為(x^ z》的初始詢問a:,其中由i選擇jc 并保密。使用詢問a:將給定消息挑上S的簽名定義為cr,;r+^'一)對(duì),其
中!^/且由》選擇少^Zg,并且以《為模減小指數(shù)y + ^(y,m)6。當(dāng)且僅當(dāng) (ra離',"=cr成立時(shí),檢驗(yàn)者^接受簽名對(duì)(r, a)為有效(對(duì)于消息/ 和詢
問xf)。
我們4吏用下面的記號(hào)對(duì)于給定消息附、詢問at以及值r,我們定義 a57c^(n附,y)-義"吋'"06,即zs/g》表示XCR簽名對(duì)中的第二元素。作為 一般的附注,值得觀察以上對(duì)詞語"消息"的使用表示可以由比特流表示 的、任何形式的數(shù)據(jù)或信息,包括傳輸數(shù)據(jù)、文件、介質(zhì)等,并且其自身 可以是較長消息的散列版本??梢詫⒃撓⑤斎氲礁鞣剑鐖D5中所示, 或者可以將其從一方傳輸?shù)搅硪环?,或者其可以由第三?外源)提供, 等等.
如本申請(qǐng)中所述,XCR簽名的優(yōu)點(diǎn)包括分析健全性(可證明性)、 檢驗(yàn)者和證明者均可計(jì)算性、二元性(單個(gè)計(jì)算代表雙方或多方簽名的結(jié) 合)、"可散列性"(即,作用于散列簽名并且檢JMt列簽名的能力)、 密鑰或公共值的導(dǎo)出、不可轉(zhuǎn)移性和可否認(rèn)性、(從可否認(rèn)簽名到常規(guī)的 不可抵賴簽名的)可轉(zhuǎn)換性、提供了比DSS更穩(wěn)健的可選方案(尤其是在 交互式環(huán)境中),以及非交互式變體的存在。
通過與從其導(dǎo)出XCR簽名的Schnorr的識(shí)別方案的關(guān)系,可以說明 設(shè)計(jì)XCR方案的動(dòng)機(jī)。Schnorr的(交互式)識(shí)別方案包括在給定輸入 5-^時(shí)對(duì)離"fW數(shù)6的知識(shí)的證明。令》表示該方案中的證明者(其擁有 A)并且i表示檢驗(yàn)者(其被給予輸入5)?;镜腟chnorr的識(shí)別包括三 個(gè)消息
(i) 》選擇^^Z"并且將^=^發(fā)送至^;
(ii) ^利用隨機(jī)值e^Zg進(jìn)行應(yīng)答;以及
(iii) 》向^發(fā)送值5=^+&。當(dāng)且僅當(dāng)/= ^成立時(shí),^接受。 該協(xié)議對(duì)于誠實(shí)的檢驗(yàn)者j (例如,隨機(jī)統(tǒng)一選擇e的人)是對(duì)(6
的)知識(shí)的public-coin零知識(shí)證明。因此,通過^^知的Fiat-Shamir方法 可以將其變換成簽名方案,即57<^0) = (1^,;/ + //(7,附)6),其在隨機(jī)諭示模 型中可證明是安全的。
現(xiàn)在,考慮下面的Schnorr協(xié)議的四消息變體,其中添加了從^到》的 第一消息。在該第一消息中,i向5發(fā)送值;^^。然后,緊接著是來自 Schnorr的方案的三個(gè)消息,除了在消息(iii)中,即在修改的協(xié)議中的第 四消息中,》發(fā)送5=^*,而不是向i發(fā)送5^H-e6。當(dāng)且僅當(dāng)S-(I^)"時(shí)i 接受??梢燥@示出該協(xié)議是對(duì)》在任何值ZeG的情況下計(jì)算 Diffie-Hellman值CDH(5, A)的"能力"的證明。此外,該協(xié)議對(duì)于隨機(jī) 選擇e的檢驗(yàn)者^是零知識(shí)的,而X是可以被任意選擇的。
通過將Fiat-Shamir變換應(yīng)用于該協(xié)議,可以獲得本發(fā)明的詢問-應(yīng)答 簽名XCR。這也解釋了為什么在命名XCR方案時(shí)使用術(shù)語"指數(shù)"其 涉及用協(xié)議的最后的消息中的替換Schnorr方案中的s=>H^。
在上述臨時(shí)申請(qǐng)中進(jìn)一步討論了在CDH假設(shè)下XCR簽名方案的安全 性的其它方面。
在解釋以上一些術(shù)語時(shí),對(duì)于G中的兩個(gè)元素t/=g"、 K=gv,我們用 CD好(r, F)來表示應(yīng)用Diffie-Hellman計(jì)算1/和K得到的結(jié)果(例如, CMT(fZ, D=g"v)。如果算法采用G中的元素對(duì)(r, F)作為輸入并且輸出 Diffie-Hellman結(jié)果CDH(C7, ^),則將該算法稱為"G的CDH解算器 (solver)".在所述臨時(shí)申請(qǐng)中進(jìn)一步提供的分析中所使用的主要的難處 理假設(shè)是計(jì)算性Diffie-Hellman( CDH M^設(shè).如果對(duì)G的所有有效的CDH 解算器來說,對(duì)于f/,K ^ G ,解算器在(1/, K)對(duì)上計(jì)算正確值CZ)好(i7, ^ 的概率可忽略(在解算器的隨機(jī)硬幣(random coin)以及在G中對(duì)l/、 K 的獨(dú)立隨M擇上取得的概率),那么我們說CDH假設(shè)在群(7中成立。 A(7,m)中的比特?cái)?shù)
令/是豆(y,/w)的輸出中的比特?cái)?shù)。清楚地,較小的/意味著簽名方案 具有較高的效率。另一方面,太小的/意味著差的安全界限,因?yàn)橐坏┲?數(shù)^(y,w)可預(yù)測,簽名方案就不安全。但是對(duì)于安全目的而言需要多大的
/呢?
可以看出(參見以上引用的臨時(shí)申請(qǐng)中的討論),設(shè)置/=1/2|《|提供了
良好的安全性能權(quán)衡,并且因此在XCR簽名的示例性說明中使用該值(并 且用于其對(duì)本發(fā)明的HMQV協(xié)議的示例性應(yīng)用)。
改變與B交互的次序
在XCR簽名的一些應(yīng)用中,特別是如應(yīng)用于HMQV協(xié)議的分析,可 以改變?cè)儐栒遡與簽名者》之間交互的次序。
在上面對(duì)XCR方案的定義中,i在向S提供詢問AT的同時(shí)向》呈現(xiàn)消
息附,從而允許》立即利用簽名對(duì)(r,^s/c^(:r,w,義))進(jìn)行應(yīng)答。在現(xiàn)在考慮
的修改版本中,具有下面的交互次序
(i) ^向》呈現(xiàn)消息w,并且》輸出y,然后,在某個(gè)稍后的時(shí)刻,
(ii) ^向5提供(y,附,A),并且》輸出^S7C^(r,w,義)。
現(xiàn)在,假設(shè)一方F向》查詢以取得該修改后的次序。特別地,F(xiàn)可以 交錯(cuò)與》的不同交互,即F可以在運(yùn)行相應(yīng)的步驟(ii)之前運(yùn)行步驟(i) 的幾個(gè)實(shí)例。這要求》在步驟(i)之后保持具有值F, y和w的狀態(tài)。當(dāng) F稍后在步驟(ii)中呈現(xiàn)(y,m,A)的時(shí)候,》核查在其狀態(tài)中其具有(Rim) 對(duì),并且如果有的話,則利用A57G^(y,w,JO進(jìn)行應(yīng)答并且從其狀態(tài)清除(y,
附)(如果》在其狀態(tài)中不具有(r,附)對(duì),那么其不發(fā)布簽名)。
注意到對(duì)》的動(dòng)作的該說明確保》對(duì)兩個(gè)不同的簽名決不會(huì)使用相同 的F值??梢砸子跈z驗(yàn),對(duì)XCR簽名的安全性的證明對(duì)于該修改后的次
序仍然有效,僅僅是因?yàn)樗M的由》選擇r并不要求A:的知識(shí),而僅要 求確定S(r,附)所需要的附值。
散列XCR變體(HCR):
有可能用(r,i/(a》對(duì)來替換XCR簽名對(duì)(r,(J),其中H是散列函數(shù), 并且這樣的"散列XCR"簽名縮寫為"HCR"。注意到,因?yàn)檫@樣的XCR 特性,即通過該XCR特性^r驗(yàn)者對(duì)于給定的Y能夠重新計(jì)算cr ,然后其 還可以計(jì)算d),并且因此能夠檢驗(yàn)經(jīng)修改的HCR簽名。
HCR簽名具有在某些設(shè)置中重要的一系列特性。例如,其可以比正常 的XCR簽名短、其可以產(chǎn)生隨機(jī)或偽隨機(jī)值、其可以預(yù)防攻擊者獲知(7 中的任何代數(shù)結(jié)構(gòu),等等。
特別地,在交互式和檢驗(yàn)者專用認(rèn)證環(huán)境中(例如在密鑰交換協(xié)議中), HCR簽名提供了比DSA簽名更安全的可選方案。實(shí)際上,雖然在DSA中, 單個(gè)短暫指數(shù)(例如,DSA簽名的成分F/中的/0的公開通過泄,密 簽名密鑰而造成簽名方案徹底不安全,但是即使將短暫指數(shù);;泄露給攻擊 者(倘若在這種情況下,簽名者測試詢問X的階次或使用輔助因子求冪迫 使該值具有至少g階),HCR簽名仍然是不可偽造的。
非交互式XCR變體
XCR (以及HCR)簽名可以通過使X-v4而成為非交互式的,但卻是 檢驗(yàn)者專用的,其中j是檢驗(yàn)者的公鑰,如圖6所示。這提供了非常有效 的非交互式檢驗(yàn)者專用可否認(rèn)認(rèn)^制。在變體中,不是使用i方的唯一 公鑰J,后者可以/JS布(例如,張貼在網(wǎng)站上)簽名者所使用的一個(gè)或多 個(gè)詢問,從而使得這些詢問即^^:在簽名時(shí)、在^本身不可用的情況下也 仍然可用。
可轉(zhuǎn)換的XCR簽名
XCR簽名的突出特性(特別地,該特性4吏得XCR簽名區(qū)別于其它的 "可否認(rèn)"詢問應(yīng)答機(jī)制,包括基于共享秘密和公鑰加密的那些)是將這 些簽名"轉(zhuǎn)換"成常規(guī)的、不可抵賴的簽名的能力,可轉(zhuǎn)換簽名擁有可否 認(rèn)i人證的特性,即,它們僅可以由預(yù)期的接收者檢驗(yàn),并且還允許簽名者 在不泄露其秘密簽名密鑰的情況下最終證明他或她是給定簽名的作者。
舉例來說,對(duì)于在多年后必須被轉(zhuǎn)換成可檢驗(yàn)的公開記錄的官方不宜 報(bào)道的通信來說,可能需要這一從秘密簽名到公開簽名的可轉(zhuǎn)換性。在 XCR簽名的情況下,在詢問X下,消息w上的簽名(y,fJ)可以通過揭露值 y + ^(y,m)6而由合法簽名者將其轉(zhuǎn)換成常規(guī)的不可抵賴的簽名。
雖然在文獻(xiàn)中已經(jīng)出現(xiàn)了其它(接受者專用)的可轉(zhuǎn)換簽名,但是所 有這些都不允許預(yù)期的接受者(或詢問者)自己重新計(jì)算簽名,并且因此
不享有該重新計(jì)算特性提供給XCR簽名的很多優(yōu)點(diǎn),如以下雙重XCR簽 名所示例^沈明的。
雙重XCR簽名(DCR):
XCR簽名的重要特性在于已經(jīng)選擇了詢問的詢問者可以自己計(jì)算簽 名。這里示出了如何利用這一特性,以便導(dǎo)出具有這樣的特性的相關(guān)詢問-應(yīng)M名方案(文中稱為"雙重XCR方案",或簡稱為DCR),即該特 性在于,任何雙方i、纟均可以利用詢問者和簽名者的雙重角色彼此交互, 并且各自產(chǎn)生任何第三方均不能夠偽造的簽名。此外,所得到的2和B的 簽名具有相同的值,而這也使得該方案對(duì)于HMQV協(xié)議意義重大。更準(zhǔn) 確地說,它們?cè)赬CR簽名對(duì)中具有相同的ASJG成分。
定義雙重(指數(shù))詢問-應(yīng)答(DCR)簽名方案,令i、》是分別具 有公鑰爿-g"、 5=^的雙方。令/in、附2是兩個(gè)消息。i和》分別在消息im、 w2上的雙重XCR簽名(簡稱DCR)被定義為三元組值A(chǔ)T、 y和 DS/G^—p附2,X,r)Bg"+必)0^),其中x-^以及r-^是分別由i、》選擇 的詢問,并且符號(hào)i/和e分別表示^(X,m》和A(r,m2)。(參見圖7。)
如此,DCR簽名的基本特性在于在交換值A(chǔ)T和r (隨分別由^和》 選擇的;c和y)之后,j和》均可以計(jì)算(以及檢驗(yàn))相同的簽名 DS/G^(/w,,/^,X,r)。這可以從下面的等效中看出
D57G^》(wp附2,;r,;r) = g("血)("")=(^r廣血=(X4rfy+e6
其中,以《為模減少x+(/"和jH-d
此外,如以上引用的臨時(shí)申請(qǐng)中的討論所論汪的,攻擊者不能夠可行 地計(jì)算出該簽名。
概略地說,雙重簽名是在詢問!^下^在消息i^上的XCR簽名,并 且與此同時(shí),是在詢問X^下》在消息附2上的XCR簽名。更準(zhǔn)確地說, 由于值d和e是在簽名過程期間確定的(通過對(duì)消息,、附2的可能對(duì)抗的
選擇),那么可以論證S的DCR簽名就攻擊者沒有選擇的任何值爿=^來
說都是安全的。
基本HMQV協(xié)議在形式上的描述
在其基本的兩消息交換中,HMQV協(xié)議包括作為詢問的 Diffie-Hellman值A(chǔ)"-^和y-^在i方和》方之間的交換,雙方通過該詢問 計(jì)算雙重XCR簽名Z)57G^("i","》",m-g"+血)c。然后通過散列該值導(dǎo) 出會(huì)活密鑰。以這樣的方式,不需M輸簽名本身正是簽名的唯一性確 保了會(huì)話密鑰的公共導(dǎo)出值,并且正是計(jì)算密鑰(等效于簽名)的獨(dú)特能 力提供了對(duì)假定的^方和》方所進(jìn)行的交換的證明.
"上,由于在其上計(jì)算簽名的消息im、附2是對(duì)等體的身份(即,i、 5),因此雙方均可保證其所計(jì)算的密鑰唯一地必然是正確的身份.在簽 名下(特別地,在值i/和e的計(jì)算中)包括各方的身份(不僅僅是短暫的 Diffie-Hellman值),其本質(zhì)上是為了避免諸如UKS攻擊的一些認(rèn)證失敗。
因此,在^和i雙方之間的HMQV協(xié)議的M包括具有被計(jì)算為好(7T) 的會(huì)話密鑰的DH值X-^和的基本Diffie-Hellman交換(圖1),其
中;r-Z)57Gh(附「泉附2-^^r,:n。也就是說,丌是作為i和》在彼此身份上 的雙重簽名來計(jì)算的。以上簽名由簡寫;r(A氛X,:n表示,即
其中,d = ^(Z,》)、e-^(yj),并且j=gfl、 J5=Z分別是i方和》方的公 鑰。注意到此刻;r(^,》,X,]r)-;r(》,凡;r,Z)。在變體中,好(丌)可以由丌的不 同函數(shù)替換,特別地,散列可以包括諸如各方身份等的附加信息,
HMQV協(xié)議通常在多方網(wǎng)絡(luò)中運(yùn)行,其中可以調(diào)用任何一方來運(yùn)行該 協(xié)議。在一方對(duì)協(xié)議的每次調(diào)用都創(chuàng)建會(huì)活(含有與協(xié)議的該特定實(shí)例相
關(guān)的信息的本地狀態(tài)),其可以產(chǎn)生輸出消息以;Mt完成時(shí)輸出^密鑰。
在會(huì)話期間,可以利用三種類型的激活來如下激活一方(在下面的描述中, i表示被激活方的身份,并且i表示會(huì)活所期望的對(duì)等體的身份)
1.啟動(dòng)(凡》)i生成值X-f, c^Z。,創(chuàng)建HMQV協(xié)議的本地會(huì)話,
她將其標(biāo)識(shí)為(未完成)^(凡反義),并且輸出值X作為其輸出消息。
該激活的意思是指^已經(jīng)作為與5的會(huì)話的發(fā)起方^皮激活了 ,并且X 是作為該會(huì)話的一部分希望被傳遞給對(duì)等體》的消息。i方將被稱為M 的"持有者"(或"所有者"),》將是會(huì)話的"對(duì)等體",并且X是輸 出(DH)值。
2. 應(yīng)答(i,氛;r): ^檢查1^0。如果是的話,則其生成值X-^, c^4,
輸出x,并且完成具有標(biāo)識(shí)符(么》,m和會(huì)話密鑰^(冗(凡反uo)的會(huì)話。 這里,i被激活作為在與對(duì)等體》的會(huì)話中以及輸入值y的應(yīng)答者。在這 種情況下,j立即完成其會(huì)活(沒有進(jìn)一步的輸入消息)。注意到,如果 輸入值r是零,則j忽略該激活。
3. 完成(凡泉m: i檢查i^o并且其有著具有標(biāo)識(shí)符(凡》,;n的開放 會(huì)話。如果這些條件中有任何一個(gè)不滿足,則i忽略該激活,否則,其完
成具有會(huì)話標(biāo)識(shí)符(么泉y,r)和會(huì)話密鑰尺=H(;r(i,i,Z,:n)的會(huì)話.這表 示具有輸入值F的協(xié)議中第二消息的傳遞,(判定的)來自對(duì)等體》的應(yīng) 答。
三消息HMQV-C協(xié)i義
圖8中描繪了三消息HMQV-C (其中C代表"密鑰確認(rèn)")協(xié)議。 該協(xié)議享有HMQV的所有安全特性以及本質(zhì)上相同的計(jì)算成本。然而, 其向協(xié)議添加了第三消息并且稍微增加了協(xié)議消息的長度。
作為回報(bào),HMQV-C提供了^HMQV協(xié)議中缺少的一些特性,包 括密鑰確認(rèn)、PFS以及通用可組合性。
密鑰確認(rèn)
HMQV協(xié)議向^方提供了完成與對(duì)等體》的會(huì)話以及會(huì)活密鑰IT的基 本保證如果力沒有遭到破壞,那么僅僅S有可能會(huì)知道X。該協(xié)議沒有 提供的是向i方作出》完成4^或計(jì)算出4^密鑰的任何保證.此外, 在執(zhí)行會(huì)話期間,》可能還未"有效(alive)"。
這不僅僅是HMQV的缺點(diǎn),因?yàn)閷?duì)于基于公鑰的任何兩消息協(xié)議來
說,情況是相同的(假設(shè),如在典型的乂iS鑰的情形下,在^與》之間較早
的通信處沒有創(chuàng)建任何在先共享狀態(tài))。另外,如Shoup所指出的,并不 能夠通過任何密鑰交換協(xié)議來實(shí)現(xiàn)這看似自然的目標(biāo),即雙方均已保證在 各方開始使用密鑰之前對(duì)等體完成了會(huì)話。實(shí)際上,攻擊者總是可以通過 停止最后的協(xié)議消息來阻止這一相互保證達(dá)到其目的。
然而,對(duì)于每一方來說這樣的較弱保證是可實(shí)現(xiàn)的并且在文獻(xiàn)中被稱 為密鑰確認(rèn)特性,即對(duì)等體能夠計(jì)算密鑰(但其不一定向調(diào)用應(yīng)用輸出密 鑰)。雖然對(duì)于密鑰交換的基本安全性不是至關(guān)重要的(例如,缺少密鑰 確認(rèn)并不威脅利用密鑰而保護(hù)的通信的保密性或可信性),但是該特性可 以為一些應(yīng)用提供有用的"操作穩(wěn)健檢查(operationalsanity check)"。
在這種情況下,協(xié)議HMQV-C比HMQV更加合適,因?yàn)樵黾拥腗AC 值提供了密鑰確認(rèn)。此外,MAC發(fā)汪確認(rèn)了所標(biāo)識(shí)的對(duì)等體對(duì)于會(huì)話的 有效涉及以及該對(duì)等體擁有匹配會(huì)話的事實(shí)(即,具有相同的對(duì)等體以及 相同的會(huì)話密鑰)。注意到為了實(shí)現(xiàn)這些特性,HMQV-C中的MAC不需 要應(yīng)用于任何特定的會(huì)話信息,而僅僅應(yīng)用于用來指示消息的"方向"并 防止反射的單個(gè)比特。還值得注意的是,僅由HMQV-C中的最初兩個(gè)消 息構(gòu)成的協(xié)議已經(jīng)向JL^fr提供了密鑰確認(rèn)(其可以向HMQV添加有用 的特征,而不增加協(xié)議消息的數(shù)目),
在密鑰交換的4艮多應(yīng)用中,缺少密鑰確認(rèn)可能導(dǎo)致一種形式的"拒絕 服務(wù)"(DoS)攻擊,其中J方使用密鑰來開始,比方說向》發(fā)送受保護(hù)的 信息,而》不能夠處理該信息,因?yàn)槠溥€未建立密鑰.如所述,這種情形 不能夠完全避免,因?yàn)椴豢蓪?shí)現(xiàn)相互的"會(huì)話完成"確認(rèn)。
此外,存在針對(duì)基于/i^操作的協(xié)議的DoS攻擊的更為嚴(yán)重的形式, 其中, 一方被iML發(fā)現(xiàn)對(duì)等體無效之前花費(fèi)相當(dāng)大的計(jì)算周期(并且創(chuàng)建 會(huì)話狀態(tài))。對(duì)DoS攻擊的一些有用但范圍有限的對(duì)抗措施 (counter-measure)是存在的,在增加協(xié)議消息的代價(jià)下,其可以應(yīng)用于 任何的密鑰交換協(xié)議(包括HMQV)。
完全正向保密(PFS):
完全正向保密是密鑰交換協(xié)議非常需要的特性,由此,對(duì)長期私鑰的 泄漏并不危及舊的會(huì)話密鑰的安全性。更正式地,如果未遭破壞的^方建 立了與未遭破壞的對(duì)等體S的密鑰交換會(huì)話,那么即使當(dāng)攻擊者在K于^ 處過期之后破壞了^,或者其在^于》處過期之后破壞了S,會(huì)話密鑰^
仍保持安全。任何具有隱a證的兩消息協(xié)議,包括HMQV,均不能夠針 對(duì)有效攻擊者提供完整的完全正向保密。相反,我們可以希望的最好的是 由HMQV所提供的弱形式的PFS。如在臨時(shí)申請(qǐng)中進(jìn)一步解釋的,相對(duì) 于基本的兩消息HMQV來說,HMQV-C的主要優(yōu)點(diǎn)在于其解除了 HMQV 的這一固有限制并且4^供了完整的PFS。
通用可組合安全性
用于密鑰交換的Canetti/Krawczyk的模型(其是用于分析臨時(shí)申請(qǐng)中 的MQV和HMQV的基礎(chǔ))已經(jīng)被擴(kuò);IUU1具挑戰(zhàn)性的模型,其旨在確 保當(dāng)與其它應(yīng)用并發(fā)地運(yùn)行時(shí)(如在真實(shí)世界環(huán)境下的情況)密鑰交換協(xié) 議的安全性。該模型被稱為密鑰交換的通用可組合(UC)模型。
對(duì)于HMQV-C來說,可以示出,當(dāng)完成會(huì)話的第一方輸出其會(huì)話密 鑰時(shí),對(duì)等體的狀態(tài)然后僅含有可以從協(xié)議和會(huì)活密鑰中的公共信息"模 擬"的信息。Canetti/Krawczyk示出,該特性連同在臨時(shí)申請(qǐng)中所示出的 HMQV的其它安全特性一:feA以保證HMQV協(xié)i義的通用可組合性.
單向(One-Pass) HMQV:
圖9中所示出的單向密鑰交換協(xié)議包括M送者^發(fā)送至接受者5的 單個(gè)消息,由此,只要雙方以及^"沒有如以下所定義的遭到破壞,雙方 使用其私鑰和公鑰就導(dǎo)出僅j和》有可能會(huì)知道的唯一密鑰。
來自所建立的密鑰的要求與常規(guī)密鑰交換協(xié)議中的相同,除了有可能 由》所接收的消息是對(duì)來自^的較舊的消息的重放之外。該重放在單向協(xié) 議中是不可避免的,盡管其可能是諸如同步時(shí)間或共享狀態(tài)的其它手段可 檢測的。
另外,這樣的協(xié)議不能夠提供PFS,因?yàn)榫腿鄙賮碜許的會(huì)話專用輸
入來說,利用》的私鑰的單獨(dú)知識(shí)應(yīng)當(dāng)可計(jì)算密鑰。
在本發(fā)明的一個(gè)實(shí)施例中,在分別具有公鑰J-g"、 5=/的^方與》方
之間的單向HMQV協(xié)議包括從i傳輸至S的單個(gè)值其中由i選擇 xewZg。由a如下計(jì)算會(huì)話密鑰f:
(i) 令(凡》)表示包括兩個(gè)身份2和》的消息,并且將d設(shè)為 ^ = #(%,(凡》))的結(jié)果;
(ii) 計(jì)算0";=^5/(^(%,(凡》),5) = ^+氣
(iii )設(shè)置《==//(o^),其中好輸出等于所要求的密鑰的長度的比特?cái)?shù)。 在檢查Z-0之后,由》計(jì)算相同的密鑰《為-好((X4")"。在變體中,
換句話說,在單向HMQV的該實(shí)施例中的密鑰是將》的公鑰用作詢問 而從非交互式XCR簽名導(dǎo)出的。
還要指出,可以將單向協(xié)議用作認(rèn)證選擇密文安全(CCA)加密方案。 也就是說,^可以向(由i )加密(針對(duì)選擇密文攻擊)及認(rèn)證的》傳輸 消息附。在一個(gè)實(shí)施例中,^可以發(fā)送三元組(AT,c,0,其中X-^, c是作 為在密鑰&下對(duì)消息w的對(duì)稱選擇明文安全(CPA)加密而獲得的密文, 并且/是在密鑰X2下在c上計(jì)算的MAC值。如在單向HMQV協(xié)議中那 樣,密鑰A和A2是根據(jù)從AT計(jì)算的密鑰J5:而導(dǎo)出的。
該過程的4^P代價(jià)是對(duì)于^兩次求冪(一個(gè)^機(jī)的)并且對(duì)于》1.5 次求冪.相比于諸如DHIES (Diffie-Hellman集成加密方案)這樣的可選 CCA加密方案,這僅僅是對(duì)于》多了 1/2次求冪,但是,作為回報(bào),其提 供了來自^的認(rèn)證(利用DHIES,該認(rèn)證將從^返回完整的附加簽名). 這一高效的認(rèn)證CCA加密對(duì)于諸如通用的"頗好隱私(Pretty-Good Privacy, PGP)"應(yīng)用這樣的"存儲(chǔ)轉(zhuǎn)發(fā)"應(yīng)用4艮有吸引力,并且比常用 的簽名-加密范例便宜得多,這里僅有的告誡在于需要清楚地傳輸身份i (以及有可能其證書),如在解密操作中所需要的那樣。
然而以上協(xié)議還值得注意的另 一特性在于,可以將其僅僅用作i在消 息附上的檢驗(yàn)者專用簽名,而不必增加加密部分。然而,該簽名^1接受者
專用的,并且因此其不具備不可抵賴性。相反,其具備在諸如PGP的很多 應(yīng)用中m^"價(jià)值的特征可否認(rèn)性。
注意到已經(jīng)采用MQV的很多標(biāo)準(zhǔn)也已經(jīng)采用了其單向變體。對(duì)采用 各種形式(一個(gè)、兩個(gè)和三個(gè)消息)的HMQV感興趣的標(biāo)準(zhǔn)來"^兌,定義 在單向協(xié)議中的密鑰導(dǎo)出(類似于在HMQV的其它變體中的導(dǎo)出)會(huì)是 有意義的。
具體地,通過在定義了 HMQV協(xié)議的雙重簽名中用丑替換F,我們 獲得用于單向密鑰的以下值i和》分別計(jì)算 =(朋7+<^和 =(X4d:T6, 并且設(shè)置密鑰I至這些(相等的)值的散列。注意到在這種情況下,指數(shù) e并不向協(xié)議添加任何值,除了使其可與其它變體兼容t外。其實(shí)際稍微 有損于協(xié)議效率。
然而,附加的差異保留在HMQV的單向版本中的值d = S(Z,(^左))與 兩消息版本中的d = A(X,》)之間。在三種模式之間提供兼容性的方式將是 使它們中都有^ = #(%,》)、e = #(lU),其中在單向的情況下r-丑,并且向 ^"密鑰導(dǎo)出函數(shù)添加身份^、》即,尺=//(0%么》)(在使用某種固定 的準(zhǔn)則所定義的^和》的階次的情況下)。這替代了對(duì)于在的計(jì)算中添 加^的需求。其還具有在泄漏預(yù)先計(jì)算的DH值的情況下加強(qiáng)HMQV并且 避免可能的未知密鑰共享攻擊的優(yōu)點(diǎn)。
HMQV的安全方面的總結(jié)
相比于常規(guī)的MQV協(xié)議,HMQV協(xié)議提供了多個(gè)性能優(yōu)點(diǎn),包括以 下內(nèi)容。HMQV可證明省卻了在協(xié)議中所傳輸?shù)腄H值上高代價(jià)的素?cái)?shù)階 測試的需要。如在臨時(shí)申請(qǐng)中所論證的,攻擊者可以從選擇欺詐DH值獲 益的唯一方式是通過將其選擇零,并且因而,在HMQV中所要求的全在 于簡單的非零險(xiǎn)查。因此,不需要素?cái)?shù)階測試或者在MQV協(xié)議中并發(fā)使 用的輔助因子A。
下面是HMQV協(xié)議以數(shù)學(xué)可證明方式實(shí)現(xiàn)的一系列特性 (1) HMQV在Canetti和Krawczyk的強(qiáng)形式化(strong formal)密
鑰交換模型中是安全的;
(2) HMQV抵御不具有對(duì)各方私鑰的訪問的攻擊者的假冒;
(3) HMQV在密鑰與各方的身份之間建立到交換的唯一綁定(通過 將XCR簽名應(yīng)用于這些身份),從而避免UKS和其它的認(rèn)證攻擊;
(4) HMQV在出現(xiàn)部分泄漏會(huì)話密鑰以及其它會(huì)話信息的情況下也 是安全的;換句話說,HMQV抵抗所謂的"已知密鑰"攻擊。特別地,保 證不同的會(huì)話密鑰彼此"在計(jì)算上獨(dú)立";
(5) 該協(xié)議提供了附加的保護(hù)級(jí),稱為抗"密鑰泄漏假冒(KCI)" 攻擊,即其預(yù)防獲知A方私鑰的攻擊者能夠向A假冒其它方;
(6) 具有密鑰確認(rèn)的三消息HMQV協(xié)議提供了可證明的完全正向保 密(PFS),也就是說,即使雙方的長期私鑰最終被公開,在泄露之前由 這雙方所創(chuàng)建的會(huì)話密鑰仍保持安全;
(7) 具有密鑰確認(rèn)的三消息協(xié)議享有所謂的"通用可組合"密鑰交換 協(xié)議的附加安全優(yōu)點(diǎn),即,可以將其與其它協(xié)議安全地進(jìn)行組合;
(8) HMQV的安全性既不取決于靜態(tài)公鑰在形式和結(jié)構(gòu)上的專門測 試,也不要求所謂的對(duì)相應(yīng)私鑰的"擁有證明"。HMQV較之類似協(xié)議(包 括MQV)的這些優(yōu)點(diǎn)使得iUit^構(gòu)(CA)免于對(duì)注冊(cè)/iH^進(jìn)行這些專門 檢查的負(fù)擔(dān),從而提供更實(shí)際和實(shí)用的安4^證,特別是由于很多^fcCA 并不能夠或未被配置進(jìn)行這些檢查。此外,值得注意的是,由CA特別執(zhí) 行的這樣的測試(例如,證明擁有)使該協(xié)議公開了另外的安全弱點(diǎn);
(9) 兩消息和三消息HMQV協(xié)議不需要測試短暫公鑰的階次(即, 值X和Y),從而避免在某些情況下可能高成本的測試。然而,如果該協(xié) 議的安全性將要抵御可能獲知各方的短暫保密密鑰的攻擊者,則需要這些 測試。對(duì)于單向HMQV協(xié)議的安全性來說也需要該測試。如在MQV的 情況下,可以用協(xié)議中a值的"輔助因子求冪"來替換這些測試??梢愿?據(jù)M代數(shù)群要求在群元素(例如預(yù)定群中的成員)上的附加測試。
本發(fā)明的HMQV協(xié)議的一個(gè)突出優(yōu)點(diǎn)在于其是現(xiàn)有可論證的最高效 的認(rèn)證Diffie-Hellman密鑰交換協(xié)議,具有可以以形式數(shù)學(xué)方式證明成立
的廣范圍的安全特性。實(shí)際上,該形式上的可證明性是HMQV與其前身 MQV之間的一個(gè)主要區(qū)別。
MQV不僅不具有安全性的證據(jù),而且隨時(shí)間出現(xiàn)明顯的協(xié)議弱點(diǎn)(例 如,Kaliski的工作以及Rogaway等人的報(bào)告),包括在以上引用的臨時(shí) 申請(qǐng)中首次描述的一些弱點(diǎn)。這些弱點(diǎn)或攻擊使得由其發(fā)明人作出的對(duì) MQV的一些安全主張無效,并且特別地,它們顯示MQV不能夠被證明 是安全的。
XCR簽名與MQV的"隱含簽名(Implicit Signatures)"的比較 作為一種比較方式,值得注意的是,如在專利中以及在學(xué)術(shù)論文中所 描述的,MQV在協(xié)議的設(shè)計(jì)和描述中也使用簽名的概念。這些在MQV 的情況下被稱為"隱含簽名",并且它們符合數(shù)字簽名的更常規(guī)的概念, 即其中簽名值僅可以由秘密簽名密鑰的所有者來產(chǎn)生(具體地,MQV涉 及由秘密簽名密鑰以及短暫保密密鑰和公鑰的線性組合所形成的類 ElGamal簽名)。然而,該協(xié)議不善于完4H吏用這些簽名的特性。特別地, MQV協(xié)議并不將簽名作為明確認(rèn)ii^t協(xié)議的各方身份的方式來使用,這 導(dǎo)致嚴(yán)重的i人證失敗,例如由Kaliski所發(fā)現(xiàn)的著名的"未知密鑰共享 (UKS)"攻擊。
相比之下,HMQV在其設(shè)計(jì)中引入了兩個(gè)重要元素。 一個(gè)是使用 XCR,其是EIGamal簽名的指WL本。更具體而言,其是Schnorr的簽 名的指liU&本,其又是EIGamal簽名的特定例示.另一個(gè)是對(duì)等體的身份 的顯式簽名,其確保會(huì)活密鑰到會(huì)活的對(duì)等體的安全綁定,并且特別地, 預(yù)防諸如UKS的認(rèn)證失敗。
XCR簽名的關(guān)鍵新穎性在于這樣的特性,即簽名者和檢驗(yàn)者(或詢問 者)均可以計(jì)算出相同的簽名。該特性通常存在于基于共享密鑰密碼的認(rèn) 證機(jī)制中(即,在簽名者和檢驗(yàn)者均具有先驗(yàn)共享密鑰的情況下),M 基于公鑰的簽名中卻是新的。XCR簽名不僅非常適于導(dǎo)出共享密鑰,如在 HMQV中,而且其提供了作為認(rèn)證工具的各種優(yōu)點(diǎn),其中一些優(yōu)點(diǎn)在上面 進(jìn)行了描迷。
本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)清楚本發(fā)明涵蓋各種實(shí)施例。
因而,在一個(gè)示例性實(shí)施例中,存在雙方,檢驗(yàn)者K和簽名者S。簽 名者<S具有私鑰6和公鑰5,并且假設(shè)檢驗(yàn)者K擁有或獲得了 S的可信公 鑰J (例如,通過發(fā)送自S的數(shù)字證書)。對(duì)于給定消息附該認(rèn)證協(xié)議包 括
(1) F選,密值JC并且計(jì)算值X-^(JC),其中尸7是給定函數(shù),并
且向S發(fā)送AT。
(2) &選##密值3;并且計(jì)算值^= F2 00,其中&是給定函數(shù),并 且向K傳輸F。
(3) S計(jì)算值F/^0,6,AT,w),其中A是給定函數(shù),并且向F傳輸
(4) K計(jì)算值& (jc, y, 5, w),并錄于值s'及其與所接收的值s 的關(guān)系判定/fi的可信性。
該實(shí)施例的一些示例性變體包括
(a)&、 R是單向函數(shù)。在XCR中這些單向函ltAX-^和y-^.
(b )在xcr簽名中,函數(shù)"巧(>^,%,—=;^+維,并且
j'=《(:c,;K, A附)=(K5(^4y 。
(c)當(dāng)且僅當(dāng)s'=s時(shí),接受附為認(rèn)證。這一最后的變體利用了典型 的xcr簽名的特性,由此,檢驗(yàn)者可以根據(jù)知道在詢問x之后的秘密來 重新計(jì)算簽名。
U)計(jì)算"^o^,x,附)-;^+^',并且測試好("-s,等等。
在將XCR應(yīng)用于HMQV的至少一個(gè)實(shí)施例中,在步驟(3)中由S 計(jì)算的值s從不被發(fā)送至K。相反,F(xiàn)計(jì)算值s',其將等于s(除非S是冒 名頂替者),并且使用s (在HMQV中其是(J )來從中導(dǎo)出^f密鑰。特 別地,F(xiàn)從不實(shí)現(xiàn)顯式;j^驗(yàn)。在該實(shí)施例中,不是用于抬r驗(yàn)消息ffi的可信 性的方法,而會(huì)是這樣一種方法,即通過該方法,雙方計(jì)算公共"認(rèn)證值" (即,有且只有雙方可以計(jì)算的值),并且通過該方法,將該值唯一地綁 定到相應(yīng)的身份(在HMQV中通過雙重XCR簽名,由各方身份的簽名所
獲得的、在典型的密鑰交換協(xié)議中的基本條件)。 在上文中及權(quán)利要求中描述了附加的變體。
示例性》更件實(shí)現(xiàn)
圖10說明了依照本發(fā)明的信息處理/計(jì)算機(jī)系統(tǒng)的典型硬件配置,并 且其優(yōu)選地具有至少一個(gè)處理器或中央處理器(CPU) 1011。
CPU 1011通過系統(tǒng)總線1012互連于隨機(jī)訪問存儲(chǔ)器(RAM) 1014、 只讀存儲(chǔ)器(ROM) 1016、輸AJ輸出(I/O)適配器1018 (用于將諸如磁 盤單元1021和磁帶驅(qū)動(dòng)器1040的外圍設(shè)備連接至總線1012)、用戶接口 適配器1022 (用于將鍵盤1024、鼠標(biāo)1026、揚(yáng)聲器1028、擴(kuò)音器1032 和/或其它用戶接口設(shè)備連接至總線1012)、用于將信息處理系統(tǒng)連接至數(shù) 據(jù)處理網(wǎng)絡(luò)、因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、個(gè)人區(qū)域網(wǎng)(PAN)等的通信適配器1034, 以及用于將總線1012連接至顯示設(shè)備1038和/或打印機(jī)1039 (例如,數(shù)字 打印機(jī)等)的顯示器適配器1036。
除了上述硬件/軟件環(huán)境之外,本發(fā)明的不同方面包括用于實(shí)現(xiàn)以上方 法的計(jì)算機(jī)實(shí)現(xiàn)的方法.舉例來i兌,該方法可以在以上所討論的特定環(huán)境 中實(shí)現(xiàn)。
舉例來說,這樣的方法可以通過操作計(jì)算機(jī)(如由數(shù)字?jǐn)?shù)據(jù)處理裝置 體現(xiàn))來實(shí)現(xiàn),以便執(zhí)行機(jī)器可讀指令序列。這些指令可以駐留于各種類 型的信號(hào)承栽介質(zhì)中。
因而,本發(fā)明的這一方面針對(duì)的是一種編程產(chǎn)品,其包括信號(hào)承栽介 質(zhì),該信號(hào)承栽介質(zhì)有形地體現(xiàn)可由合并了 CPU 1011和以上硬件的數(shù)字 數(shù)據(jù)處理器執(zhí)行的機(jī)器可讀指令的程序,以便實(shí)現(xiàn)本發(fā)明的方法。
該信號(hào)承載介質(zhì)可以包括,例如,含于CPU 1011內(nèi)的RAM,如由例 如快速訪問存儲(chǔ)器所表示的??蛇x地,指令可以含于CPU 1011可直接或 間接訪問的另一信號(hào)承栽介質(zhì)(例如磁數(shù)據(jù)存儲(chǔ)磁盤1100 (圖11))中。
無論是否含于磁盤1100、計(jì)算機(jī)/CPU1011或其它地方,指令均可以 存儲(chǔ)在各種機(jī)器可讀數(shù)據(jù)存儲(chǔ)介質(zhì)中,諸如DASD存儲(chǔ)器(例如,常規(guī)的
"硬盤驅(qū)動(dòng)器,,或RAID陣列)、磁帶、電子只讀存儲(chǔ)器(例如,ROM、 EPROM或EEPROM)、光存^i殳備(例如,CD-ROM、 WORM、 DVD、 數(shù)字光帶,等等)、紙質(zhì)"穿孔"卡片或其它合適的信號(hào)承栽介質(zhì),包括 諸如數(shù)字和模擬及通信鏈路和無線的傳輸介質(zhì)。在本發(fā)明的說明性實(shí)施例 中,機(jī)器可讀指令可以包括軟件對(duì)象碼。
權(quán)利要求
1.一種在通過設(shè)備或網(wǎng)絡(luò)互連的雙方之間交換的方法,所述方法包括接受方(檢驗(yàn)者)選擇用于計(jì)算值X=F1(x)的秘密值x,其中F1包括具有至少一個(gè)自變量的第一預(yù)定函數(shù),所述值x是F1的所述至少一個(gè)自變量之一;簽名方(簽名者)選擇用于計(jì)算值Y=F2(y)的秘密值y,其中F2包括具有至少一個(gè)自變量的第二預(yù)定函數(shù),所述值y是F2的所述至少一個(gè)自變量之一;所述簽名者獲得所述值x,所述簽名者具有私鑰b和公鑰B;以及所述簽名者計(jì)算值s=F3(y,b,X),其中F3包括具有至少三個(gè)自變量的第三預(yù)定函數(shù),所述值y、所述私鑰b以及所述值x是F3的所述至少三個(gè)自變量中的三個(gè)自變量,其中存在第四預(yù)定函數(shù)F4(x,Y,B)以計(jì)算值s′,F(xiàn)4具有至少三個(gè)自變量,所述值x、所述值Y以及所述公鑰B是F4的所述至少三個(gè)自變量中的三個(gè)自變量,但所述值s不是F4的自變量,在所述檢驗(yàn)者與所述簽名者之間不存在用作所述F1、F2、F3和F4的任何一個(gè)中的任何自變量的基礎(chǔ)的共享秘密,以及如果確定值s′以預(yù)定方式與值s相關(guān),則所述檢驗(yàn)者可以將所述值s和s′考慮為有效認(rèn)證符。
2. 根據(jù)權(quán)利要求l的方法,其中F7和F2中的至少一個(gè)包括單向函數(shù)。
3. 根據(jù)權(quán)利要求l的方法,其中如果fs',則確定所述值s和s'是有
4. 根據(jù)權(quán)利要求1的方法,其中,由除了所述檢驗(yàn)者和所述簽名者之 外的一方執(zhí)行以下中的至少一個(gè)計(jì)算,以及確定是否將所述值s和s'確 定為相關(guān)。
5. ^L據(jù)權(quán)利要求1的方法,其中所述值s和所述值s'用于導(dǎo)出雙方之 間共享的秘密。
6. 根據(jù)權(quán)利要求1的方法,其進(jìn)一步包括所述檢驗(yàn)者獲得所述值y,并且使用相同的值來計(jì)算所述值s'用于確 定s和s '是否以所述預(yù)定方式相關(guān)。
7. 根據(jù)權(quán)利要求1的方法,其中消息附將要被認(rèn)證并且包括"的自 變量以及的自變量,從而允許所述值s和所述值s'包括所述消息w中 的信息;以及如果確定所述值s和s '以所述預(yù)定方式相關(guān),則i人證所述消息。
8. 才艮據(jù)權(quán)利要求7的方法,其中所述值s和所述值s'用于導(dǎo)出雙方之 間共享的秘密。
9. 根據(jù)權(quán)利要求8的方法,其中所述消息m包括至少在所述交換中所 述方之一的身份。
10. 根據(jù)權(quán)利要求7的方法,其進(jìn)一步包括 所述簽名者向所述^r驗(yàn)者發(fā)送所述值s。
11. 根據(jù)權(quán)利要求7的方法,其中如果所述fs',則認(rèn)證所述消息。
12. 根據(jù)權(quán)利要求l的方法,其中所述>!^ =/,容是《階有P辦的生成元,所述私鑰6是使得0《6 S《-1 的整數(shù);所述值^=/, jc是使得0《;^《-l的整數(shù),并且所述值F=^, j;是使得 0S"《-1的整數(shù)J以及所述簽名者計(jì)算所述值s-y;(x)力一"氣yi包括第一數(shù)學(xué)函數(shù),以及/2 包括第二數(shù)學(xué)函數(shù),并且自變量附包括消息。
13. 根據(jù)權(quán)利要求12的方法,其中《是素?cái)?shù)。
14. 根據(jù)權(quán)利要求12的方法,其中如果確定所述值s與所述值s'以所 述預(yù)定方式相關(guān),則視為認(rèn)證所述消息w。
15. 根據(jù)權(quán)利要求14的方法,其中如果確定所述值s等于所述值s',則視為認(rèn)證所述消息 m。
16. 根據(jù)權(quán)利要求12的方法,其中/i包括恒等函數(shù)。
17. 根據(jù)權(quán)利要求12的方法,其中/2包旨列函數(shù),以便散列/2的 所述自變量中的至少一個(gè)。
18. 根據(jù)權(quán)利要求17的方法,其中所述散列自變量之一是非空消息附。
19. 根據(jù)權(quán)利要求12的方法,其中所述消息附包括在計(jì)算機(jī)或系統(tǒng) 或網(wǎng)絡(luò)中的一方的身份。
20. 根據(jù)權(quán)利要求17的方法,其中/2(w,;r,_y,6) = >; + //(r,m)6mod《, 其中好包括是單向函數(shù)之一的密碼函數(shù)、加密函數(shù)以及密碼散列函數(shù).
21. 根據(jù)權(quán)利要求20的方法,其中所述值s'-(yB,4)力w,其中/3(jc) 包括具有至少一個(gè)自變量的數(shù)學(xué)函數(shù),所述值jc是/3(jc)的所述至少一個(gè)自變量中的一個(gè)自變量。
22. 根據(jù)權(quán)利要求21的方法,其中/3(;c"a:。
23. 根據(jù)權(quán)利要求21的方法,其進(jìn)一步包括 當(dāng)且僅當(dāng)fs'時(shí),認(rèn)證所述消息w。
24. 根據(jù)權(quán)利要求21的方法,其中所述檢驗(yàn)者具有私鑰"、公鑰J=gfl 以及消息m',所述值s包括所述檢驗(yàn)者在/ '上的簽名,與此同時(shí)所述值 s'包括所述簽名者在w上的簽名。
25. 根據(jù)權(quán)利要求24的方法,其中所述函數(shù)/3(" = ;(: + //(%,附')"1110<1《。
26. 根據(jù)權(quán)利要求l的方法,其中由所,驗(yàn)者隨M擇jc,并且由 所述簽名者隨機(jī)選擇》
27. 根據(jù)權(quán)利要求l的方法,其中所述第一值X-^包括由所述檢驗(yàn) 者公布以便可由所述簽名者檢索的值,從而準(zhǔn)許所述認(rèn)證的非交互式版本。
28. 根據(jù)權(quán)利要求21的方法,其中進(jìn)一步散列所述值s和s'。
29. —種信號(hào)承載介質(zhì),其有形地體現(xiàn)可由數(shù)字處理裝置執(zhí)行以便實(shí) 現(xiàn)權(quán)利要求1中所述方法的步驟中的至少一個(gè)的機(jī)器可讀指令的程序。
30. —種裝置,其包括計(jì)算器,以^更為所述簽名者計(jì)算權(quán)利要求1中所述的函數(shù)和F丄
31. —種用于在通過設(shè)備或網(wǎng)絡(luò)互連的雙方之間建立認(rèn)證密鑰的方 法,所述方法包括給定具有私鑰fl和公鑰^的第一方,所述私鑰"是使得0Sa《g-l的 整數(shù),仔是正整數(shù),g是g階有卩l(xiāng)^的生成元,并且爿是由所述值g所生 成的群中的元素且計(jì)算為^=gfl,以及給定具有私鑰6和公鑰5=g6的第二方,所述私鑰6是使得O《6《g-1的整數(shù),所述第 一方選擇用于計(jì)算值X=f的秘密值jc, jc是使得o " ^ -1的整 數(shù),并且所述值A(chǔ)T被傳達(dá)給所述第二方;所述第二方選擇用于計(jì)算值的秘密值》,是使得os少s《-1的整數(shù),并且所述值r被傳達(dá)給所述第一方;所述第一方計(jì)算值"yi(y,B,附)(力"'。'"",其中附、附'包括所述方之間已 知或交換的消息,并且所述第二方計(jì)算值,=/3(%乂附'){/4("'"°};所述函數(shù)/2和/4中的至少一個(gè)包括具有至少一個(gè)自變量的函數(shù)好,一 個(gè)這樣的自變量是所述消息附和附?jīng)_的至少一個(gè),其中好包括是單向函數(shù)之一的密碼函數(shù)、加密函數(shù)以及密碼散列函數(shù); 所述第 一和第二方分別從值s和W導(dǎo)出共享密鑰。
32. 根據(jù)權(quán)利要求31的方法,其中以下中的至少一個(gè)(i) 所述值jc和AT的計(jì)算包括所述第一方的私鑰以及所述方中一個(gè) 或多個(gè)的么"統(tǒng);以及(ii) 所述值y和y的計(jì)算包括所述第二方的私鑰以及所述方中一個(gè) 或多個(gè)的公鑰。
33. 根據(jù)權(quán)利要求31的方法,其中所^s和s'導(dǎo)出共享密鑰包括是 單向函數(shù)之一的密碼函數(shù)、加密函數(shù)以及密碼散列函數(shù)。
34. 根據(jù)權(quán)利要求31的方法,其中所述消息附和附?jīng)_的至少一個(gè)包 括所述第一和第二方之一的身份。
35. 根據(jù)權(quán)利要求31的方法,其中<formula>formula see original document page 6</formula>以及好是具有至少兩個(gè)自變量的函數(shù),其包括是單向函數(shù)之一的密碼函數(shù)、 加密函數(shù)以及密碼散列函數(shù)。
36. 根據(jù)權(quán)利要求35的方法,其中所述消息附和附'中的至少一個(gè)包 括所述第一和第二方中至少一個(gè)的身份。
37. 根據(jù)權(quán)利要求36的方法,其中以下中的至少一個(gè)(i) 所述值jc和AT的計(jì)算包括所述第一方的私鑰以及所述方中一個(gè) 或多個(gè)的么嘲;以及(ii) 所述值y和y的計(jì)算包括所述第二方的私鑰以及所述方中一個(gè) 或多個(gè)的公鑰。
38. 根據(jù)權(quán)利要求36的方法,其中所ii^s和s'導(dǎo)出共享密鑰包括是 單向函數(shù)之一的密碼函數(shù)、加密函數(shù)以及密碼散列函數(shù).
全文摘要
本申請(qǐng)給出了HMQV,其是MQV認(rèn)證Diffie-Hellman協(xié)議的變體。其提供了與原始協(xié)議相同的性能和功能性,但可以在形式上證明其安全目的成立?;谛碌摹霸儐?應(yīng)答簽名”方案設(shè)計(jì)了HMQV-MQV的“散列變體”。
文檔編號(hào)H04L9/08GK101116281SQ200680004479
公開日2008年1月30日 申請(qǐng)日期2006年2月10日 優(yōu)先權(quán)日2005年2月10日
發(fā)明者H·克拉夫奇克 申請(qǐng)人:國際商業(yè)機(jī)器公司