專利名稱:一種公開(kāi)密鑰的可驗(yàn)證生成的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種公開(kāi)密鑰的可驗(yàn)證生成的方法和設(shè)備。
背景技術(shù):
當(dāng)在運(yùn)行在公共網(wǎng)絡(luò)的通信系統(tǒng)中進(jìn)行通信時(shí),為了確保通信的安全經(jīng)常使用密碼技術(shù)。密碼術(shù)分別通過(guò)加密和數(shù)字簽名的方式提供保密和/或認(rèn)證。在公開(kāi)密鑰密碼系統(tǒng)中,用戶的密鑰包括私有密鑰和算數(shù)相關(guān)的公開(kāi)密鑰。僅僅給定公開(kāi)密鑰來(lái)確定私有密鑰是不可行的。可以公布用于所有實(shí)體的公開(kāi)密鑰或在通信系統(tǒng)中把公開(kāi)密鑰傳送給其它的通信單元。
公開(kāi)密鑰的公認(rèn)的好的實(shí)例包括公開(kāi)密鑰確認(rèn)(PKV)和對(duì)相關(guān)私有密鑰進(jìn)行的所有權(quán)驗(yàn)證(POP)。這些實(shí)例都被認(rèn)為是非常有用的測(cè)試,可以阻止公開(kāi)密鑰的潛在的濫用。
公開(kāi)密鑰確認(rèn)包括為了與公共密鑰的類型一致而對(duì)假設(shè)的公開(kāi)密鑰進(jìn)行測(cè)試。這些測(cè)試可能需要或不需要相關(guān)的私有密鑰的所有者的參與。如果各種其它的安全措施到位的話,公開(kāi)密鑰確認(rèn)有助于保證假設(shè)的公開(kāi)密鑰的使用是安全的。
所有權(quán)驗(yàn)證包括一方向另一方證明它知道與給定公開(kāi)密鑰相關(guān)聯(lián)的私有密鑰。這經(jīng)常通過(guò)提供依賴于私有密鑰的數(shù)字簽名來(lái)完成。簽名的成功確認(rèn)證明知道私有密鑰。
公開(kāi)密鑰確認(rèn)和所有權(quán)驗(yàn)證均未排除(a)私有密鑰被盜或(b)私有密鑰可通過(guò)不充足的隨機(jī)性生成的可能性。當(dāng)密鑰被盜時(shí),可能會(huì)促成身份盜竊、公開(kāi)密鑰盜竊和類似的不期望的欺詐行為。在計(jì)算機(jī)中不充分的隨機(jī)性是一個(gè)普遍的問(wèn)題,尤其智能卡和其它受限設(shè)備。不充分的隨機(jī)性會(huì)導(dǎo)致私有密鑰可猜測(cè)或復(fù)制,這將非常嚴(yán)重地破壞安全性。
本發(fā)明的目的是排除或減輕上述的缺點(diǎn)。
發(fā)明內(nèi)容
發(fā)明者已經(jīng)開(kāi)發(fā)出一種執(zhí)行“可驗(yàn)證密鑰生成”的方法,使用該方法,第一方可以通過(guò)一種方式生成密鑰對(duì),該方式允許其它方確認(rèn)第一方實(shí)際生成了密鑰而不是盜用該密鑰。受信任的認(rèn)證也可以參與可驗(yàn)證密鑰生成過(guò)程以密鑰對(duì)的形式提供附加的隨機(jī)性。
發(fā)明者意識(shí)到可驗(yàn)證的密鑰生成有助于排除上述密鑰被盜的和隨機(jī)度不充足的可能性。
在本發(fā)明的一個(gè)方面中,提供了一種公開(kāi)密鑰可驗(yàn)證密鑰生成的方法。根據(jù)該方法,首先生成自簽簽名并且然后作為一對(duì)私有密鑰和公開(kāi)密鑰生成的輸入。簽名確認(rèn)證明密鑰是利用簽名從密鑰生成過(guò)程生成的。
公共密鑰確認(rèn)(PKV)、所有權(quán)驗(yàn)證(POP)和可驗(yàn)證密鑰生成典型地使用在公開(kāi)密鑰認(rèn)證的過(guò)程中。在認(rèn)證中,對(duì)象,即用戶或請(qǐng)求者,向發(fā)行者或認(rèn)證中心(CA)請(qǐng)求證書(shū)。該對(duì)象產(chǎn)生密鑰對(duì),可能在CA的幫助下以獲得充分的隨機(jī)性。對(duì)象還可以產(chǎn)生對(duì)于確認(rèn)公開(kāi)密鑰和對(duì)于驗(yàn)證密鑰的生成有用的附加信息。然后對(duì)象簽署公開(kāi)密鑰或簽名消息以形成所謂的認(rèn)證請(qǐng)求,并且將其與其它信息一起發(fā)送給CA。CA確認(rèn)對(duì)象的身份,驗(yàn)證在認(rèn)證請(qǐng)求中的簽名,確認(rèn)公開(kāi)密鑰和驗(yàn)證密鑰對(duì)的生成。一旦CA被滿足,則發(fā)行認(rèn)證。
可驗(yàn)證密鑰生成的一個(gè)實(shí)施例是建立在現(xiàn)有的數(shù)字簽名技術(shù)之上的。自簽簽名定義為被簽名的消息,并且消息本身包含簽名的拷貝。本發(fā)明包括一種同時(shí)產(chǎn)生自簽簽名和密鑰對(duì)的方法,通過(guò)自簽簽名的驗(yàn)證保證密鑰對(duì)是生成的(即不是盜得的)。
如果受信任的機(jī)構(gòu)在消息中加入一些隨機(jī)性,則保證了充分的隨機(jī)性。為了提高密鑰對(duì)所有者的安全性,簽名驗(yàn)證可以用salt和長(zhǎng)時(shí)間的計(jì)算來(lái)修改以幫助防止隨機(jī)性的密鑰對(duì)所有者對(duì)密鑰對(duì)的過(guò)度的搜尋。
在下面結(jié)合附圖進(jìn)行的詳細(xì)的描述中,本發(fā)明的優(yōu)先實(shí)施例的上述特點(diǎn)和其它特點(diǎn)會(huì)變得顯而易見(jiàn),其中圖1是通信系統(tǒng)的原理示意圖;圖2是在圖1所示的通信系統(tǒng)中執(zhí)行的密鑰生成過(guò)程的流程圖;圖3是在圖2所示的步驟變換的流程圖;圖4是在圖2所示的通信系統(tǒng)中執(zhí)行的密鑰生成方法的另一個(gè)實(shí)施例的流程圖;圖5是在圖2所示的通信系統(tǒng)中執(zhí)行的密鑰生成方法的又另一個(gè)實(shí)施例的流程圖;圖6是與由圖5所示的方法生成的密鑰一起使用的確認(rèn)方法的流程圖;圖7是由圖1所示的認(rèn)證中心執(zhí)行的方法的原理示意圖。
具體實(shí)施例方式
參考圖1,通常數(shù)字10表示通信系統(tǒng)。該通信系統(tǒng)包括一對(duì)通信單元12、14以及一個(gè)認(rèn)證中心16。每個(gè)通信單元12和14都有各自的用于執(zhí)行密碼操作的密碼單元18和20。通信單元12具有一個(gè)私有密鑰22和一個(gè)對(duì)應(yīng)的公開(kāi)密鑰24。認(rèn)證中心16發(fā)行證書(shū)26,證書(shū)26如下面進(jìn)一步描述的那樣證明公開(kāi)密鑰24。如下面將要描述的,為了向通信單元14提供公開(kāi)密鑰24和密碼保證,可以與通信單元14共享證書(shū)26。
圖1中的通信單元執(zhí)行大量的密碼協(xié)議以獲得不同的加密目的,尤其是生成私有密鑰22、公開(kāi)密鑰24和證書(shū)26。
“自簽簽名”和“可驗(yàn)證的密鑰生成”通信單元執(zhí)行下面的方法,該方法生成基于不同數(shù)字簽名算法,比如DSA和ECDSA算法,的“自簽簽名”。為了方便,根據(jù)ECDSA描述該方法。
參考圖2,通常數(shù)字50表示由通信單元12執(zhí)行的生成自簽簽名的方法。按照ECDSA程序,首先選擇位于定義在Zp之上的橢圓曲線上的序列n的點(diǎn)G。在此,n為一個(gè)大質(zhì)數(shù)。在步驟52,通信單元12在區(qū)間
內(nèi)隨機(jī)選擇一個(gè)整數(shù)k。然后通信單元在步驟54計(jì)算橢圓曲線點(diǎn)R=kG。在此,R稱為簽名短暫公開(kāi)密鑰,k稱為短暫私有密鑰。
簽名數(shù)據(jù)(r,s)包含兩個(gè)整數(shù),r和s。在步驟56把對(duì)應(yīng)于橢圓曲線點(diǎn)R的整數(shù)值賦給整數(shù)r。應(yīng)該理解,可以采用許多方法把橢圓曲線點(diǎn)R轉(zhuǎn)換成一個(gè)整數(shù),包括由ECDSA指定的方法。在步驟58通信單元在區(qū)間
內(nèi)優(yōu)選地隨機(jī)選擇一個(gè)整數(shù)s。
然后,在步驟60獲得預(yù)消息數(shù)據(jù)m0。預(yù)消息數(shù)據(jù)m0可為任意消息數(shù)據(jù)。預(yù)消息數(shù)據(jù)可為要被簽署的消息。預(yù)消息數(shù)據(jù)可以包括與可驗(yàn)證密鑰的所有者有關(guān)的信息。還可包括從外部資源接收到的信息,比如由認(rèn)證中心提供的以促成結(jié)果密鑰對(duì)的隨機(jī)性。然后在步驟62通信單元把預(yù)消息數(shù)據(jù)m0和簽名數(shù)據(jù)(r,s)合并到自簽簽名消息m中,例如通過(guò)連接的方式。
在步驟64通信單元計(jì)算信息摘要e=Hash(m),此處該函數(shù)Hash是一個(gè)加密散列函數(shù),其給出一個(gè)整數(shù)結(jié)果。在步驟66通信單元利用公式d=(sk-e)/r mod n由信息摘要e計(jì)算私有密鑰。在步驟68利用公式Q=dG由私有密鑰的值計(jì)算公開(kāi)密鑰。應(yīng)該注意,對(duì)于私有密鑰d還可以利用上面的公式把公開(kāi)密鑰表示成Q=(1/r mod n)(s R-e G)。
總之,上面所描述的方法包括以下步驟1.選擇某個(gè)整數(shù)k(例如從區(qū)間
隨機(jī)選取)。
2.計(jì)算橢圓曲線點(diǎn)R=kG,簽名短暫公開(kāi)密鑰。
3.把R轉(zhuǎn)換為整數(shù)r。
4.選擇某整數(shù)s(例如從區(qū)間
隨機(jī)選取)。
5.獲取某預(yù)消息數(shù)據(jù)m0(其可以包含來(lái)自外部資源的信息,例如隨機(jī)性)。
6.把預(yù)消息m0和簽名數(shù)據(jù)(r,s)合并到消息m(例如,通過(guò)連接的形式)。
7.以整數(shù)的形式計(jì)算信息摘要e=Hash(m)。
8.計(jì)算私有密鑰d=(s k-e)/r mod n.
9.計(jì)算公開(kāi)密鑰Q=dG。(可選擇地,Q=(1/r mod n)(s R-e G).)如果把ECDSA驗(yàn)證算法應(yīng)用到三元數(shù)組或三元組(m,(r,s),Q),驗(yàn)證算法的結(jié)果是三元組為一個(gè)有效的簽名。由于已被簽署的消息m包含簽名(r,s),簽名是“自簽簽名”。
給定另一方的一個(gè)已經(jīng)存在的公開(kāi)密鑰Q,得到一個(gè)新的自簽簽名等同于偽造簽名,這被認(rèn)為是不可行的。而且,甚至使用先前存在的私有密鑰d,設(shè)想對(duì)手欲竊取私有密鑰,得到一個(gè)新的自簽簽名是不可行的,因?yàn)樽院灪灻漠a(chǎn)生導(dǎo)致一個(gè)新私有密鑰,其幾乎肯定不會(huì)是舊私有密鑰。
因此,自簽簽名組成了“可驗(yàn)證的密鑰生成”。按照ECDSA驗(yàn)證算法,簽名驗(yàn)證證明使用上面的密鑰產(chǎn)生過(guò)程并且排除了私有密鑰為盜得的或從另外資源再生的可能性。
具有可驗(yàn)證的隨機(jī)性的密鑰產(chǎn)生在利用自簽簽名的可驗(yàn)證密鑰的產(chǎn)生中,消息m0影響密鑰對(duì)的值,并且通過(guò)提供部分消息,一個(gè)可被信任的機(jī)構(gòu),比如認(rèn)證中心,可以將密鑰對(duì)的隨機(jī)性補(bǔ)充到一個(gè)足夠滿足期望的安全水平所需要的程度。如果密鑰對(duì)的所有者在生成隨機(jī)性的能力上受限,這將會(huì)尤其有用。
可被信任的機(jī)構(gòu)生成數(shù)據(jù)t,密鑰對(duì)生成器將其包含進(jìn)m0內(nèi)。數(shù)值t根據(jù)所期望的安全水平包含充分的隨機(jī)性。
數(shù)值t應(yīng)該被安全地傳送給密鑰對(duì)生成器,因?yàn)槊荑€對(duì)的安全性在某種程度上取決于數(shù)值t。安全地傳送數(shù)值t也就是保密地和準(zhǔn)確地傳送數(shù)值t。
一種準(zhǔn)確地傳送數(shù)值t的方法是使數(shù)值t包含一個(gè)數(shù)字簽名。密鑰對(duì)生成器可以驗(yàn)證簽名以保證它來(lái)源于可被信任的機(jī)構(gòu)。(如果t來(lái)源于對(duì)手,安全性會(huì)被相當(dāng)大地削弱。)一般數(shù)字簽名也提供必要的隨機(jī)性,因?yàn)樗Q于被信任的機(jī)構(gòu)的私有密鑰。如果使用概率簽名算法,如ECDSA算法,則可以給出更多的隨機(jī)性。因此,對(duì)t值來(lái)說(shuō),整個(gè)地由數(shù)字簽名構(gòu)成是足夠的。為t值簽署的消息可以為來(lái)自權(quán)威和密鑰生成器的消息的組合。
可以通過(guò)不同的方式實(shí)現(xiàn)t數(shù)值的保密傳送。假如能建立一個(gè)安全信道,可以采用加密術(shù)。密鑰對(duì)生成器可以產(chǎn)生臨時(shí)會(huì)話密鑰并且利用權(quán)威的公開(kāi)密鑰把會(huì)話密鑰安全地傳送給可信任的機(jī)構(gòu)。從該密鑰可驗(yàn)證地生成的臨時(shí)公開(kāi)密鑰的獨(dú)立性是重要的。
代表性地,可信任的機(jī)構(gòu)還可以是CA,并且利用一些非加密的方法鑒別密鑰對(duì)生成器。
因此參考圖3,附圖標(biāo)記70通常表示提供預(yù)消息m0的方法。首先,在步驟72通信單元請(qǐng)求與來(lái)自認(rèn)證中心的密鑰生成有關(guān)的信息。響應(yīng)該請(qǐng)求,在步驟74認(rèn)證中心產(chǎn)生消息。如上面所提到的,消息可以由認(rèn)證中心單獨(dú)生成或可能是來(lái)自通信單元和認(rèn)證中心的消息組合。當(dāng)采用組合時(shí),在步驟72所做的請(qǐng)求包括來(lái)自通信單元包含在認(rèn)證中心消息中的消息。
然后在步驟76認(rèn)證中心用本身的密鑰簽署消息以獲得CA簽名。在步驟78把CA簽名通過(guò)安全信道發(fā)送給通信單元??梢酝ㄟ^(guò)如上面所描述的加密術(shù)獲得安全信道。然后,通信單元使用簽名作為預(yù)消息數(shù)據(jù)m0。然后通信單元利用在步驟60使用的簽名采用圖2所示的方法生成一個(gè)密鑰對(duì)和自簽簽名。
保護(hù)密鑰對(duì)生成器的弱保密性如果密鑰對(duì)生成器對(duì)于可驗(yàn)證的密鑰生成使用自簽簽名并且在圖2所示的方法中生成的密鑰值k是不充分隨機(jī)的,則產(chǎn)生了下面的安全問(wèn)題。如在下面將結(jié)合圖4詳細(xì)說(shuō)明的,通過(guò)對(duì)在自簽簽名中使用的ECDSA算法的稍微修改,可以減輕安全問(wèn)題。
安全問(wèn)題是,如果對(duì)方能猜到k并且如果對(duì)方是可信任的機(jī)構(gòu)或另一個(gè)希望驗(yàn)證密鑰的產(chǎn)生的用戶,具有r、s和m的拷貝,則對(duì)手可以使用與密鑰對(duì)生成器所使用的相同的公式恢復(fù)私有密鑰。
為了使對(duì)k做窮舉的猜想盡可能地困難,如圖4所示,對(duì)圖2所示的方法做了修改。圖4方法中的步驟與圖2中的步驟類似。
在步驟92中,通信單元12在區(qū)間
隨機(jī)地選擇一個(gè)整數(shù)k。然后通信單元計(jì)算橢圓曲線點(diǎn)R=kG,在步驟94中稱為簽名短暫公開(kāi)密鑰。
在步驟96中,通信單元計(jì)算r=Hash(A‖R‖A‖R‖...‖A‖R),其中,可以把重復(fù)的數(shù)量做到如期望和便利的那樣多,并且“‖”表示比特串的串連。重復(fù)的數(shù)量越多,所做的計(jì)算就越長(zhǎng)。K的每個(gè)猜想值需要r的一個(gè)計(jì)算值。因此,長(zhǎng)時(shí)間的計(jì)算逼迫企圖猜測(cè)k值的對(duì)手做更多的工作。因此,優(yōu)選的重復(fù)數(shù)量是通信單元和CA能夠承受的最大值。數(shù)值A(chǔ)為salt值,并且對(duì)密鑰對(duì)生成器是唯一的。Salt保證從k到r函數(shù)對(duì)密鑰對(duì)生成器是唯一的,這樣可以防止對(duì)手建立一個(gè)計(jì)算值詞典,該計(jì)算值詞典對(duì)不同的密鑰對(duì)生成器是可重復(fù)使用的。
在步驟98中通信單元在區(qū)間
隨機(jī)地選擇一個(gè)整數(shù)s。然后,在步驟100獲得預(yù)消息數(shù)據(jù)m0。預(yù)消息數(shù)據(jù)m0可以包含隨機(jī)性以促成結(jié)果密鑰對(duì)。然后,在步驟102中通信單元連接預(yù)消息數(shù)據(jù)m0和簽名數(shù)據(jù)(r,s)到消息m中。在步驟104中通信單元計(jì)算信息摘要e=Hash(m),此處Hash函數(shù)是加密散列函數(shù),其給出整數(shù)結(jié)果。在步驟106通信單元計(jì)算私有密鑰d=(sk-e)/r mod n,并且在步驟108計(jì)算公開(kāi)密鑰Q=d G。需要注意地是公開(kāi)密鑰還可以利用上面的求公開(kāi)密鑰d的公式表達(dá)為Q=(1/r mod n)(s R-e G)。
其它通信單元或認(rèn)證中心可以驗(yàn)證修改過(guò)的自簽簽名。首先,驗(yàn)證者計(jì)算橢圓曲線點(diǎn)R′=(1/s mod n)(e G+rQ),這是ECDSA驗(yàn)證流程的一部分。在此需要消息m的拷貝和公開(kāi)密鑰Q。驗(yàn)證者需要salt A和密鑰對(duì)生成器用于計(jì)算r的重復(fù)數(shù)量。然后驗(yàn)證者計(jì)算r′=Hash(A‖R′‖A‖R′‖...‖A‖R′)。如果r′=r,則驗(yàn)證者接收簽名,否則驗(yàn)證者拒絕簽名。
其他非常長(zhǎng)的計(jì)算也是必要的以阻止對(duì)手窮舉地猜測(cè)k。對(duì)手可以使用公式d=(s k-e)/r mod n來(lái)獲取私有密鑰,并且知道公共密鑰Q從而可以核查k的猜測(cè)值,因此可以獲得私有密鑰d。為了減緩這個(gè)猜測(cè)k值的方法,消息m可以選取為m=r‖s‖t‖r‖s‖t‖...‖r‖s‖t的形式。于是根據(jù)e=Hash(m)對(duì)e的計(jì)算需要花費(fèi)很長(zhǎng)的時(shí)間,而且必須對(duì)每個(gè)k值的猜測(cè)分別進(jìn)行計(jì)算。m消息的形式不需要對(duì)所使用的數(shù)字簽名算法做更進(jìn)一步的修改。
這兩種結(jié)合的方法有助于對(duì)產(chǎn)生t的受信任的機(jī)構(gòu)和任何其它獲得了m、r、s和Q的一方,比如想要驗(yàn)證獨(dú)立于被信任中心的Q的產(chǎn)生的其它方,保護(hù)密鑰對(duì)所有者的隱私。
一種可選的使用自簽簽名的方法在如圖5所示的另一個(gè)實(shí)施例中,通信單元執(zhí)行產(chǎn)生散列求冪三元組(m,R,Q)的方法,該散列求冪三元組由某些消息m、種子或短暫公開(kāi)密鑰R和公開(kāi)密鑰Q組成。此為使用ECDSA簽名的一種替換方法。為了便利,該方法被描述為橢圓曲線(EC)公開(kāi)密鑰法。通常以附圖標(biāo)記110表示該方法。
首先在步驟112中通信單元在區(qū)間
內(nèi)選擇整數(shù)k。然后,在步驟114中通信單元計(jì)算橢圓曲線點(diǎn)R=kG以被用作種子公開(kāi)密鑰。在步驟116,計(jì)算整數(shù)形式的信息摘要f=SHA-1(m,R)。然后,在步驟118計(jì)算私有密鑰d=kf并且在步驟120計(jì)算公開(kāi)密鑰Q=fR。
在接收到散列求冪三元組(m,R,Q)的基礎(chǔ)上,接收者可以使用圖6中附圖標(biāo)記130所示的方法驗(yàn)證三元組。首先,在步驟132驗(yàn)證者計(jì)算整數(shù)形式的信息摘要f=SHA-1(m,R)。然后,在步驟134驗(yàn)證者計(jì)算T=fR并且在步驟136核查Q=T。當(dāng)Q=T時(shí),驗(yàn)證者接收散列求冪三元組。否則,作為無(wú)效被拒絕。
可以意識(shí)到,散列求冪三元組具有與自簽簽名類似的特性并且可以以類似的方式起作用。
使用可驗(yàn)證密鑰生成進(jìn)行的通信在圖1所示的系統(tǒng)中的有代表性的通信會(huì)話中,系統(tǒng)的用戶或通信單元12首先發(fā)起與認(rèn)證中心14的通信以獲得證書(shū)26。這種情況下,通信單元12被稱為證書(shū)的“對(duì)象”。參考圖7,在步驟152認(rèn)證中心為對(duì)象提供一個(gè)輸入以提供隨機(jī)性。例如,由認(rèn)證中心提供的輸入可以是認(rèn)證中心的簽名。在步驟154對(duì)象生成一個(gè)密鑰對(duì)并且在步驟156形成一個(gè)證書(shū)請(qǐng)求。證書(shū)請(qǐng)求由對(duì)象使用對(duì)象的自簽簽名簽署。例如,證書(shū)請(qǐng)求可以是對(duì)象的已被簽名的公開(kāi)密鑰或簡(jiǎn)單地對(duì)象的自簽簽名。對(duì)象發(fā)送證書(shū)請(qǐng)求和公開(kāi)密鑰給認(rèn)證中心。對(duì)象還可以與證書(shū)請(qǐng)求和公開(kāi)密鑰一起發(fā)送一些其它的信息,比如對(duì)象名稱。在收到證書(shū)請(qǐng)求和公開(kāi)密鑰(并且可能會(huì)有其它信息)的基礎(chǔ)上,在步驟158認(rèn)證中心首先確認(rèn)對(duì)象的身份。然后在步驟160CA可能會(huì)確認(rèn)在證書(shū)請(qǐng)求中的簽名。在步驟162CA驗(yàn)證公開(kāi)密鑰,其包含一個(gè)測(cè)試集合以保證公開(kāi)密鑰是“有效的”。然后在步驟164中CA驗(yàn)證密鑰對(duì)的產(chǎn)生。上面詳細(xì)地描述了驗(yàn)證。如果公開(kāi)密鑰通過(guò)了執(zhí)行的每個(gè)測(cè)試,則在步驟166中CA發(fā)行一個(gè)證書(shū)。證書(shū)包括與信息有關(guān)的CA的數(shù)字簽名,其包含對(duì)象的身份和公開(kāi)密鑰。
如果發(fā)行證書(shū)的CA執(zhí)行了公開(kāi)密鑰確認(rèn)和密鑰生成驗(yàn)證,則證書(shū)有助于向證書(shū)的另一個(gè)用戶及其公開(kāi)密鑰保證,該公開(kāi)密鑰是有效的、不是盜得的,并且具有充分的隨機(jī)性。如果證書(shū)的其它用戶不充分地信任發(fā)行的CA,則用戶可以要求察看附加的信息,所述信息允許用戶直接執(zhí)行公開(kāi)密鑰確認(rèn)和密鑰生成驗(yàn)證。
現(xiàn)在已詳細(xì)地描述本發(fā)明的各種具體實(shí)施例。本領(lǐng)域技術(shù)人員應(yīng)該理解,不背離本發(fā)明的范圍可以對(duì)實(shí)施例做大量的修改、改寫(xiě)和變更。由于對(duì)上面所描述的最好的實(shí)施例的修改或添加不會(huì)背離本發(fā)明的原理、本質(zhì)和范圍,本發(fā)明不會(huì)局限于所述細(xì)節(jié)而是僅僅取決于所附的權(quán)利要求。
權(quán)利要求
1.一種生成私有密鑰和公開(kāi)密鑰對(duì)的方法,所述方法包括以下步驟生成簽名;利用數(shù)據(jù)消息和所述簽名形成自簽簽名消息;利用所述自簽簽名消息計(jì)算所述私有密鑰和公開(kāi)密鑰對(duì);其特征在于,所述公開(kāi)密鑰可利用所述簽名和所述自簽簽名消息進(jìn)行驗(yàn)證。
2.根據(jù)權(quán)利要求1所述的方法,其還包括步驟從認(rèn)證中心接收所述數(shù)據(jù)消息;其特征在于,所述數(shù)據(jù)消息包括隨機(jī)性。
3.根據(jù)權(quán)利要求2所述的方法,其還包括步驟向所述認(rèn)證中心發(fā)送請(qǐng)求消息;以及經(jīng)過(guò)安全通道從所述認(rèn)證中心接收所述數(shù)據(jù)消息;其特征在于,所述認(rèn)證中心利用所述請(qǐng)求消息生成所述數(shù)據(jù)消息并且所述數(shù)據(jù)消息被簽有所述認(rèn)證中心的私有密鑰。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在DSA簽名算法的基礎(chǔ)上產(chǎn)生所述簽名和所述密鑰對(duì)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在ECDSA簽名算法的基礎(chǔ)上產(chǎn)生所述簽名和所述密鑰對(duì)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述簽名包括一個(gè)整數(shù),并且產(chǎn)生所述簽名的步驟包括以下步驟生成短暫公開(kāi)密鑰;提供salt值;為預(yù)定次數(shù)的所述salt值和所述短暫公開(kāi)密鑰的聯(lián)結(jié)的重復(fù)計(jì)算hash值;以及為所述整數(shù)分配所述hash值的整數(shù)值。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述簽名包括一個(gè)整數(shù),并且生成簽名的步驟包括以下步驟選擇短暫私有密鑰,所述短暫私有密鑰是一個(gè)隨機(jī)選取的整數(shù);通過(guò)所述短暫私有密鑰計(jì)算簽名短暫公開(kāi)密鑰,所述簽名短暫公開(kāi)密鑰為所述短暫私有密鑰和橢圓曲線點(diǎn)的乘積;以及為所述整數(shù)分配一個(gè)與所述簽名短暫公開(kāi)密鑰對(duì)應(yīng)的整數(shù)值。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述簽名包括一個(gè)整數(shù),并且形成所述自簽簽名消息的步驟包括把所述數(shù)據(jù)消息和所述簽名連接成所述自簽簽名消息的步驟,并且所述的計(jì)算所述公開(kāi)密鑰和私有密鑰對(duì)的步驟包括通過(guò)所述自簽簽名消息的整數(shù)hash值計(jì)算信息摘要;通過(guò)所述簽名和所述信息摘要計(jì)算所述私有密鑰;以及通過(guò)所述私有密鑰計(jì)算所述公開(kāi)密鑰。
9.一種同時(shí)生成自簽簽名和私有密鑰d和公開(kāi)密鑰Q的密鑰對(duì)的方法,所述方法包括以下步驟選擇一個(gè)短暫私有密鑰k,所述短暫私有密鑰為比一個(gè)質(zhì)數(shù)n小的非負(fù)數(shù);通過(guò)所述短暫私有密鑰k計(jì)算簽名短暫公開(kāi)密鑰,所述簽名短暫公開(kāi)密鑰為所述短暫私有密鑰和橢圓曲線點(diǎn)G的乘積;為第一簽名整數(shù)r分配一個(gè)與所述簽名短暫公開(kāi)密鑰對(duì)應(yīng)的整數(shù)值;選擇一個(gè)第二簽名整數(shù)s,所述第二簽名整數(shù)為比所述質(zhì)數(shù)n小的非負(fù)整數(shù),所述第一簽名整數(shù)和所述第二簽名整數(shù)形成一個(gè)簽名;通過(guò)數(shù)據(jù)消息和所述簽名形成自簽簽名消息;通過(guò)所述自簽簽名消息的整數(shù)hash值計(jì)算信息摘要;使用公式d=(sk-e)/r mod n計(jì)算所述私有密鑰;以及使用公式Q=dG計(jì)算所述公開(kāi)密鑰Q。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,設(shè)置整數(shù)值的步驟包括以下步驟提供salt值;為預(yù)設(shè)次數(shù)的所述salt值和所述簽名暫時(shí)公開(kāi)密鑰的組合的重復(fù)計(jì)算hash值;以及為所述第一簽名整數(shù)r分配所述hash值的整數(shù)值。
11.一種用于存儲(chǔ)可在計(jì)算機(jī)上執(zhí)行的程序的計(jì)算機(jī)可讀介質(zhì),所述程序執(zhí)行如權(quán)利要求9所述的方法。
12.一種通過(guò)私有密鑰消息和三元數(shù)組消息產(chǎn)生短暫公開(kāi)密鑰和公開(kāi)密鑰的方法,所述方法包括以下步驟選擇一個(gè)短暫私有密鑰,所述短暫私有密鑰為整數(shù);通過(guò)所述短暫私有密鑰計(jì)算所述短暫公開(kāi)密鑰,所述短暫公開(kāi)密鑰為所述短暫私有密鑰和橢圓曲線點(diǎn)的乘積;通過(guò)所述消息的整數(shù)hash值和所述短暫公開(kāi)密鑰計(jì)算信息摘要;通過(guò)所述短暫私有密鑰和所述信息摘要計(jì)算所述私有密鑰;以及通過(guò)所述私有密鑰和所述短暫公開(kāi)密鑰計(jì)算所述公開(kāi)密鑰。
13.一種用于存儲(chǔ)可在計(jì)算機(jī)上執(zhí)行的程序的計(jì)算機(jī)可讀媒質(zhì),所述程序執(zhí)行一種同時(shí)生成自簽簽名和一對(duì)私有密鑰和公開(kāi)密鑰的方法,所述程序促使計(jì)算機(jī)生成簽名;通過(guò)數(shù)據(jù)消息和所述簽名形成自簽簽名消息;以及通過(guò)所述自簽簽名消息計(jì)算所述私有密鑰和公開(kāi)密鑰對(duì);其特征在于,所述公開(kāi)密鑰可通過(guò)所述簽名和所述自簽簽名消息進(jìn)行驗(yàn)證。
14.一種用于存儲(chǔ)可在計(jì)算機(jī)上執(zhí)行的程序的計(jì)算機(jī)可讀媒質(zhì),所述程序執(zhí)行一種通過(guò)私有密鑰消息和三元數(shù)組消息產(chǎn)生短暫公開(kāi)密鑰和公開(kāi)密鑰的方法,所述程序促使計(jì)算機(jī)選擇一個(gè)短暫私有密鑰,所述短暫私有密鑰是隨機(jī)選擇的整數(shù);通過(guò)所述短暫私有密鑰計(jì)算所述短暫公開(kāi)密鑰,所述短暫公開(kāi)密鑰為所述短暫私有密鑰和橢圓曲線點(diǎn)的乘積;通過(guò)所述消息的整數(shù)hash值和所述短暫公開(kāi)密鑰計(jì)算信息摘要;通過(guò)所述短暫私有密鑰和所述信息摘要計(jì)算所述私有密鑰;以及通過(guò)所述私有密鑰和所述短暫公開(kāi)密鑰計(jì)算所述公開(kāi)密鑰。
15.一種通過(guò)認(rèn)證中心驗(yàn)證公開(kāi)密鑰的方法,所述方法包括以下步驟接收一個(gè)確認(rèn)請(qǐng)求和來(lái)自請(qǐng)求者的所述公開(kāi)密鑰,所述確認(rèn)請(qǐng)求為請(qǐng)求者使用自簽簽名簽署的消息;基于所述自簽簽名驗(yàn)證所述公開(kāi)密鑰;以及在成功驗(yàn)證所述自簽簽名的基礎(chǔ)上發(fā)行所述公開(kāi)密鑰的證書(shū)。
16.根據(jù)權(quán)利要求15所述的方法,其還包括步驟驗(yàn)證包含在所述認(rèn)證請(qǐng)求中的所述自簽簽名,其特征在于,所述的證書(shū)的發(fā)行以所述自簽簽名的成功驗(yàn)證為條件。
17.根據(jù)權(quán)利要求15所述的方法,其還包括步驟通過(guò)使所述公開(kāi)密鑰經(jīng)受預(yù)設(shè)的測(cè)試集合來(lái)確定公開(kāi)密鑰,其特征在于,所述的證書(shū)的發(fā)行以所述公開(kāi)密鑰的成功驗(yàn)證為條件。
18.根據(jù)權(quán)利要求15所述的方法,其還包括步驟在接收所述認(rèn)證請(qǐng)求的步驟之前為所述請(qǐng)求者提供消息數(shù)據(jù)從而生成所述認(rèn)證請(qǐng)求,所述消息數(shù)據(jù)包括隨機(jī)性。
19.根據(jù)權(quán)利要求18所述的方法,其特征在于,通過(guò)安全通道把所述消息數(shù)據(jù)提供給所述請(qǐng)求者。
20.根據(jù)權(quán)利要求18所述的方法,其特征在于,提供消息數(shù)據(jù)的步驟還包括步驟如下步驟接收來(lái)自所述請(qǐng)求者的請(qǐng)求消息;使用所述認(rèn)證中心的私有密鑰簽署所述請(qǐng)求消息;以及通過(guò)已簽署的請(qǐng)求消息形成所述消息數(shù)據(jù)。
21.根據(jù)權(quán)利要求15所述的方法,其特征在于,所述的使用自簽簽名簽署的消息是所述公開(kāi)密鑰。
22.根據(jù)權(quán)利要求15所述的方法,其特征在于,所述的使用自簽簽名簽署的消息是所述自簽簽名。
全文摘要
本發(fā)明提供了一種公開(kāi)密鑰可驗(yàn)證生成的方法。根據(jù)本方法,首先生成自簽簽名并且然后把自簽簽名作為生成一對(duì)私有密鑰和公開(kāi)密鑰的輸入。簽名的驗(yàn)證證明了密鑰是利用簽名從密鑰生成過(guò)程生成的。認(rèn)證中心確認(rèn)和驗(yàn)證從可驗(yàn)證密鑰生成過(guò)程產(chǎn)生的公開(kāi)密鑰。
文檔編號(hào)H04L9/00GK1902853SQ200480039283
公開(kāi)日2007年1月24日 申請(qǐng)日期2004年10月28日 優(yōu)先權(quán)日2003年10月28日
發(fā)明者丹尼爾·R·布朗 申請(qǐng)人:塞爾蒂科梅公司