專利名稱:利用雙線性映射的簽名方案的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及密碼技術(shù)以及通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)或通過(guò)其他類型 的系統(tǒng)與設(shè)備進(jìn)行的保密通信,并尤其涉及在使用公共密鑰加密技術(shù) 的系統(tǒng)中用來(lái)產(chǎn)生及驗(yàn)證通信簽名的方案。
背景技術(shù):
一般而言,在使用公共密鑰加密術(shù)的系統(tǒng)中,每一方都與一個(gè)私 有密鑰以及一個(gè)公共密鑰相關(guān)聯(lián)。公共密鑰是公開(kāi)已知的,或是可以 通過(guò)認(rèn)證授權(quán)而獲取的。要簽署一條消息,簽署人就會(huì)使用它的私有 密鑰。由于簽署人的私有密鑰與公共密鑰是相關(guān)的,校驗(yàn)器就可以利 用簽署人的公共密鑰來(lái)驗(yàn)證簽名。由于簽署人的私有密鑰僅為簽署人 所知(也可能為私有密鑰生成器或PKG所知),因此第三方就不能 偽造簽署人的簽名。
本發(fā)明的各種實(shí)施方式都與基于身份的簽名方案相兼容。粗略地 說(shuō)來(lái),基于身份的簽名方案是公共密鑰方案,在這類方案中, 一個(gè)實(shí) 體的公共密鑰是從與該實(shí)體的身份有關(guān)的信息中得到的。例如,身份 信息可以是個(gè)人信息(即姓名、地址、電子郵件地址等等)或是計(jì)算 機(jī)信息(即IP地址等)。另外,身份信息不僅包括與實(shí)體身份嚴(yán)格相關(guān)的信息,還包括廣泛的可用信息,如時(shí)間或日期。也就是說(shuō),身份 信息概念的重要性不在于它與實(shí)體身份的嚴(yán)格關(guān)系,而在于任何希望 向?qū)嶓w發(fā)送加密消息的人都能輕易獲得該信息。
在使用公共密鑰加密術(shù)的基于身份的系統(tǒng)中, 一個(gè)實(shí)體的私有密 鑰由 一個(gè)受委托方或邏輯進(jìn)程產(chǎn)生并分配,所述的受委托方或邏輯進(jìn)
程通常被稱為私有密鑰生成器("PKG") 。 PKG利用一個(gè)主密文信息 來(lái)產(chǎn)生私有密鑰。由于一個(gè)實(shí)體的公共密鑰可根據(jù)其身份推知,當(dāng)Bob 想要驗(yàn)證來(lái)自Alice的簽名時(shí),他就不必從數(shù)據(jù)庫(kù)中取回Alice的公共 密鑰。Bob只需根據(jù)Alice的識(shí)別信息直接推知密鑰。公共密鑰數(shù)據(jù) 庫(kù)就成為多余,認(rèn)證授權(quán)("CAs,,)也是不必要的了。無(wú)需將Alice 的身份綁定到他的公共密鑰上,因?yàn)樗纳矸菁词撬墓裁荑€。
基于身份的系統(tǒng)的概念并不新鮮。它在A. Shamir的 "Identity-Based Cryptosystems and Signatures Schemes (基于身份的 加密系統(tǒng)與簽名方案),,中就已被提出,該文發(fā)表于ADVANCES IN CRYPTOGRAPHY - CRYPTO "84 , Lecture Notes in Computer Science 196 ( 1984 ) , Springer, 47-53。然而,可實(shí)際應(yīng)用的基于身 份的簽名方案至今仍未被找到。
公共密鑰與基于身份的系統(tǒng)通過(guò)引入分級(jí)結(jié)構(gòu)而得到了進(jìn)一步 的擴(kuò)展。例如,基于身份的方案中包括一個(gè)邏輯或?qū)嶋H的PKGs層次。 一個(gè)根PKG可以向其他PKGs發(fā)放私有密鑰,而后者又可以向特定 域內(nèi)的用戶發(fā)放私有密鑰。這樣就使得校驗(yàn)器能夠驗(yàn)證來(lái)自 一名簽署 人的簽名,而無(wú)需在線查找該簽署人的公共密鑰或較低級(jí)別的公共參 數(shù),即使校驗(yàn)器根本不在系統(tǒng)中,只要該校驗(yàn)器獲得了根PKG的公 共參數(shù)即可。分級(jí)的基于身份的簽名方案的另 一個(gè)優(yōu)點(diǎn)是損壞控制。 例如, 一個(gè)域PKG的密文的泄漏并不會(huì)危及更高層次PKGs的密文, 也不會(huì)危及任何其他不是該被損害的域PKG的直接下級(jí)的PKGs的 密文。
盡管已知的公共密鑰與基于身份的系統(tǒng)已經(jīng)提供了用來(lái)產(chǎn)生及 驗(yàn)證數(shù)字簽名的方案,但是這些已知的簽名方案都有著顯著的缺點(diǎn)。例如,多簽名方案并不能讓多個(gè)簽署人簽署多個(gè)文檔。能夠讓多個(gè)簽 署人簽署多個(gè)文檔的多簽名方案能進(jìn)一步提高簽名的效率。例如,這 樣一種多簽名可被用來(lái)壓縮證書(shū)鏈。因此,需要一種允許多個(gè)簽署人 一起簽署多個(gè)文檔的簽名方案。
對(duì)于使用公共密鑰加密術(shù)的基于身份的系統(tǒng)來(lái)說(shuō),還需要一種團(tuán)
體簽名(ring signature )方案。團(tuán)體簽名于最近在R. Rivest, A. Shamir, Y. Tauman撰寫的"How to Leak a Secret (如何泄漏機(jī)密),,一文中,皮 提出,該文發(fā)表于ADVANCES IN CRYPTOLOGY - ASIACRYPT 2001, Lecture Notes in Compter Science 2248 ( 2001 ) , Spring, 552。 團(tuán)體簽名允許一個(gè)組(不必先行建立)的一個(gè)成員簽署一條消息,且 使得第三方能夠證實(shí)該組的某位成員創(chuàng)建了簽名,但卻不能確定是哪 一名成員。然而,還沒(méi)有可供基于身份的加密方案使用的有效的團(tuán)體 簽名方案。因此就需要一種基于身份的團(tuán)體簽名方案。
在使用公共密鑰加密術(shù)的基于身份的分級(jí)系統(tǒng)中,還需要代理簽 名、代理解密、代理授權(quán),以及電子投票。這些特性在P.Horster,H. Peterson的"Self-Certified Keys—Concepts and Applications (自保證 密鑰-概念與應(yīng)用),,一文中被提出用于非分級(jí)系統(tǒng),該文發(fā)表于Proc. 3 OF CONF. ON COMMUNICATIONS AND MULTIMEDIA SECURITY 1997。然而,這些特性尚不能用于分級(jí)系統(tǒng)。因此就需要 允許進(jìn)行代理簽名、代理解密、代理授權(quán)以及電子投票的基于身份的 分級(jí)簽名方案。
還需要能夠離線產(chǎn)生一部分簽名的更為高效的基于身份的分級(jí) 簽名方案。對(duì)于許多應(yīng)用來(lái)說(shuō),在線簽署時(shí)間比總簽署時(shí)間更為重要。 在這類情況下,通過(guò)允許離線完成更多的簽名及驗(yàn)證算法,就能提高 簽名方案的效率。在線/離線簽名方案在A. Shamir, Y. Tauman的 "Improved Online/Offliiie Signature Schemes (改進(jìn)的在線/離線簽名 方案)"一文中被提出,該文發(fā)表于ADVANCES IN CRYPTOLOGY - CRYPTO 2001, Lecture Notes in Compter Science 2139 ( 2001 ), Springer, 355-367。然而,在線/離線簽名方案還不能用于基于身份
9的分級(jí)系統(tǒng)。因此就需要高效率的基于身份的在線/離線分級(jí)簽名方 案。
因此,本發(fā)明的一個(gè)目的就是要提供一種多簽名方案,該方案允 許多個(gè)簽署人簽署多個(gè)文檔。本發(fā)明的另 一個(gè)目的是提供一種基于身 份的團(tuán)體簽名方案。本發(fā)明的再一個(gè)目的是提供一種基于身份的分級(jí) 簽名方案,該方案允許進(jìn)行代理簽名、代理檢測(cè)、代理授權(quán)以及電子 投票。本發(fā)明還有一個(gè)目的,就是提供一種高效率的基于身份的在線/ 離線分級(jí)簽名方案。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,它提供了用來(lái)實(shí)現(xiàn)安全可靠、實(shí)用且高效的簽名方 案的方法。
根據(jù)本發(fā)明的一方面內(nèi)容,它提供了用來(lái)產(chǎn)生及驗(yàn)證數(shù)字消息的 數(shù)字簽名的方法與系統(tǒng),所述的數(shù)字消息在簽署人與校驗(yàn)器之間傳遞。 根據(jù)這些方法與方案,每一名簽署人簽署所述消息的一個(gè)子集,而且 由至少 一名簽署人簽署的子集與由至少 一名其他簽署人簽署的子集不 同。為每一名簽署人選取一個(gè)私有密鑰,并利用一個(gè)預(yù)定的函數(shù)為每 條消息產(chǎn)生 一 個(gè)消息函數(shù)值。為每名簽署人產(chǎn)生 一 個(gè)或多個(gè)簽名要素, 產(chǎn)生的過(guò)程至少要用到與每名簽署人相關(guān)的私有密鑰以及與要被簽署 的消息有關(guān)的消息函數(shù)值。利用各個(gè)簽名要素產(chǎn)生一個(gè)數(shù)字簽名。然 后至少利用消息函數(shù)值來(lái)驗(yàn)證數(shù)字簽名。
根據(jù)本發(fā)明的另 一方面內(nèi)容,它提供了用來(lái)產(chǎn)生及驗(yàn)證數(shù)字消息 的數(shù)字簽名的方法與系統(tǒng),所述的數(shù)字消息在簽署人與校驗(yàn)器之間傳 遞,其中所述的簽署人是一組多個(gè)成員中的一名。簽署人與一個(gè)身份 信息相關(guān)聯(lián),并且該組其他成員也都與身份信息相關(guān)聯(lián)。生成第一與 第二元素循環(huán)群,并選出一個(gè)雙線性非退化的配對(duì),使得能夠由第一 循環(huán)群的兩個(gè)元素產(chǎn)生第二循環(huán)群的一個(gè)元素。選出第一循環(huán)群的第 一與第二生成器,即能夠由一串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群的一個(gè)元素 的函數(shù)。為組內(nèi)的每名成員產(chǎn)生公共要點(diǎn),并為簽署人產(chǎn)生一個(gè)私有
10要點(diǎn)。通過(guò)產(chǎn)生數(shù)字簽名來(lái)簽署數(shù)字消息,數(shù)字簽名的產(chǎn)生中至少要 用到簽署人的私有要點(diǎn)以及組內(nèi)每名成員的公共要點(diǎn)。至少使用組內(nèi) 每名成員的公共要點(diǎn),該簽名就會(huì)被證實(shí)為組內(nèi) 一名成員創(chuàng)建的。
根據(jù)本發(fā)明的另 一方面內(nèi)容,它提供了用來(lái)產(chǎn)生及驗(yàn)證數(shù)字消息 的代理簽名的方法與系統(tǒng),所述的數(shù)字消息在代理簽署人與校驗(yàn)器之 間傳遞,其中所述的消息由代理簽署人代表原始簽署人簽署。與原始 簽署人相關(guān)聯(lián)的 一個(gè)原始簽署人私有密鑰和一個(gè)原始簽署人公共密鑰 都被選用。與代理簽署人相關(guān)聯(lián)的一個(gè)代理簽署人私有密鑰和一個(gè)代 理簽署人公共密鑰也都被選用。然后就利用原始簽署人私有密鑰和代 理簽署人公共密鑰來(lái)產(chǎn)生一個(gè)代理私有密鑰。利用一個(gè)預(yù)定的函數(shù)產(chǎn) 生一個(gè)消息函數(shù)值,并至少利用消息函數(shù)值、代理私有密鑰以及代理 簽署人公共密鑰來(lái)產(chǎn)生代理簽名。代理簽名至少要使用原始簽署人公 共密鑰、代理簽署人公共密鑰以及消息函數(shù)值來(lái)驗(yàn)證。
根據(jù)本發(fā)明的另 一 方面內(nèi)容,它提供了用來(lái)產(chǎn)生及驗(yàn)證數(shù)字消息 的簽名的方法與系統(tǒng),所述的數(shù)字消息在簽署人與校驗(yàn)器之間傳遞。
在一個(gè)分級(jí)系統(tǒng)中,簽署人比根PKG低t個(gè)級(jí)別。簽署人與一個(gè)包含 身份信息的ID元組相關(guān)聯(lián),所述的身份信息與簽署人相關(guān),還與根 PKG和簽署人之間的層級(jí)中的t-l個(gè)較低級(jí)別PKGs的每一個(gè)相關(guān)聯(lián)。 為較低級(jí)別的PKGs的每一個(gè)產(chǎn)生一個(gè)較低級(jí)別的公共密鑰。產(chǎn)生一 個(gè)與簽署人相關(guān)的簽署人私有密鑰。在一種離線模式中,選用一個(gè)隨 機(jī)簽署人暗門密碼、 一條隨機(jī)消息以及一個(gè)隨機(jī)數(shù)。然后利用所述的 隨機(jī)消息、隨機(jī)數(shù)、暗門密碼、簽署人私有密鑰以及與t-l個(gè)較低級(jí) 別的PKGs相關(guān)的低級(jí)公共密鑰來(lái)產(chǎn)生一個(gè)離線簽名。在線模式中, 要確定一個(gè)匹配隨機(jī)數(shù),該匹配隨機(jī)數(shù)將要被簽署的消息與離線簽名 相匹配。然后就可以利用該匹配隨機(jī)數(shù)來(lái)驗(yàn)證離線簽名。
下文中對(duì)本發(fā)明優(yōu)選實(shí)施方式的說(shuō)明參考了附圖,其中
圖l示出了一張流程圖,該圖根據(jù)本發(fā)明的一種實(shí)施方式展示了一種產(chǎn)生及驗(yàn)證一條數(shù)字消息m的一個(gè)多簽名的方法;
圖2示出了一張流程圖,該圖根據(jù)本發(fā)明的另一種實(shí)施方式展示 了 一種產(chǎn)生及驗(yàn)證一條數(shù)字消息m的一個(gè)團(tuán)體簽名&g的方法,所述的 數(shù)字消息m在簽署人與校驗(yàn)器之間傳遞;
圖3示出了一張流程圖,該圖根據(jù)本發(fā)明的另一種實(shí)施方式展示 了 一種產(chǎn)生及驗(yàn)證一條數(shù)字消息m的一個(gè)團(tuán)體簽名的方法,所述的 數(shù)字消息m在一個(gè)分級(jí)結(jié)構(gòu)中的簽署人與校驗(yàn)器之間傳遞;
圖4示出了一張流程圖,該圖根據(jù)本發(fā)明的另一種實(shí)施方式展示 了 一種產(chǎn)生及驗(yàn)證一條數(shù)字消息m的 一個(gè)代理簽名s/g的方法;
圖5示出了一張流程圖,該圖根據(jù)本發(fā)明的另一種實(shí)施方式展示 了 一種產(chǎn)生及驗(yàn)證一條數(shù)字消息m的簽名&的方法,其中所述的簽名 及校驗(yàn)算法可以部分離線完成;以及
圖6示出了一張框圖,該圖根據(jù)本發(fā)明的另一種實(shí)施方式描述了 一種用來(lái)實(shí)現(xiàn)簽名方案的系統(tǒng)。
具體實(shí)施例方式
本發(fā)明當(dāng)前的優(yōu)選方法提供了安全可靠、實(shí)用且高效的公共密 鑰、基于身份且分級(jí)的簽名方案。
本發(fā)明提供了公共密鑰簽名方案。這些方案中包括基于身份的方 案與非基于身份的方案。它們還包括分級(jí)的和非分級(jí)的方案。
本發(fā)明每一種基于身份的分級(jí)簽名方案都需要一種PKGs的分 級(jí)結(jié)構(gòu),該結(jié)構(gòu)中至少包括一個(gè)根PKG和多個(gè)低級(jí)PKGs。分級(jí)結(jié)構(gòu) 與低級(jí)PKGs可以是邏輯的或?qū)嶋H的。例如,單個(gè)實(shí)體就能產(chǎn)生一個(gè) 根密鑰生成密文和低級(jí)密鑰生成密文,低級(jí)用戶的加密或簽名密鑰都 是由所述的低級(jí)密鑰生成密文產(chǎn)生的。在該例中,低級(jí)PKGs都不是 獨(dú)立的實(shí)體,它們只是被安排在邏輯分級(jí)結(jié)構(gòu)中的進(jìn)程或信息,并被 用來(lái)為分級(jí)結(jié)構(gòu)中的下級(jí)PKGs與用戶生成密鑰?;蛘?,每個(gè)低級(jí)PKG 也可以是獨(dú)立的實(shí)體。另一種備選方案包括實(shí)際和邏輯低級(jí)PKGs的 混合模式。為了公開(kāi)說(shuō)明本發(fā)明的目的,將用"低級(jí)PKG"—詞來(lái)一般性地指代這些備選方案中的任何一種。
在本文所公開(kāi)的基于身份的分級(jí)系統(tǒng)的范圍內(nèi),基于身份的公共 密鑰可以是基于時(shí)間周期的。例如, 一名特定用戶的身份會(huì)隨各個(gè)接 連的時(shí)間周期而變化。或者,簽署人也可以將時(shí)間周期安排為它自己 在分級(jí)結(jié)構(gòu)中的后代或下級(jí),并且校驗(yàn)器會(huì)在驗(yàn)證簽名時(shí)使用正確時(shí) 間周期的身份。不論采用何種方式,每個(gè)密鑰都僅在相關(guān)的時(shí)間周期 內(nèi)可以有效的用來(lái)簽署消息。
本發(fā)明中基于身份的分級(jí)方案通常包括5個(gè)算法根設(shè)置(Root Setup)、低級(jí)設(shè)置(Lower陽(yáng)level Setup)、提取(Extraction)、簽署(Signing) 以及驗(yàn)證(Verification)。這些算法中的三個(gè)依賴于分級(jí)結(jié)構(gòu)中相關(guān)實(shí) 體的身份。每名用戶最好都在分級(jí)結(jié)構(gòu)中擁有一個(gè)位置,該分級(jí)結(jié)構(gòu) 可由它的ID元組(/A,…,/Z),)定義。用戶在分級(jí)結(jié)構(gòu)中的前輩是才艮PKG 以及ID元組為K叫,…,/Z),):l《/^(卜i"的用戶或PKGs。為了計(jì)算的目的, ID元組最好用二進(jìn)制字串表示。
在根設(shè)置算法中,根PKG使用一個(gè)保密參數(shù)6來(lái)產(chǎn)生公共系統(tǒng) 參數(shù)/m/wiw以及一個(gè)根密鑰生成密文。系統(tǒng)參數(shù)包括對(duì)消息空間M 和簽名空間S的描述。系統(tǒng)參數(shù)是公開(kāi)使用的,但只有根PKG知道 根密鑰生成密文。
在低級(jí)設(shè)置算法中,為了提取的目的,每個(gè)低級(jí)PKG最好產(chǎn)生 它自己的低級(jí)密鑰生成密文。或者,低級(jí)PKG可以為每次提取產(chǎn)生 隨機(jī)的一次性密文。
在提取算法中, 一個(gè)PKG (根PKG或一個(gè)低級(jí)PKG)為它的 任意一個(gè)后代產(chǎn)生一個(gè)私有密鑰。該私有密鑰是利用系統(tǒng)參數(shù)、生成 方PKG的私有密鑰以及任何其他的優(yōu)選密文信息產(chǎn)生的。
在簽署算法中,數(shù)字消息的簽署人利用/;"m附s和簽署人的私有 密鑰^簽署消息MeM以產(chǎn)生一個(gè)簽名S/geS。在驗(yàn)證算法中,被簽署 消息的校驗(yàn)器利用/mm/iw以及簽署人的ID元組來(lái)驗(yàn)證簽名& 。驗(yàn)證 算法最好輸出"有效"或"無(wú)效"。簽署與驗(yàn)證最好還能滿足一致性限制 條件
VM eM: Vertification (p歸附s, ID元組,S/g)="有效,,
13其中Signing (/;am脂,d, M) 配對(duì)
本發(fā)明當(dāng)前的優(yōu)選簽名方案是基于配對(duì)的,比如與橢圓曲線或阿 貝爾蔟(abelian varieties )相關(guān)的Weil或Tate配對(duì)。所述的簽名方 案還可以是基于Diffie-Hellman問(wèn)題或雙線性Diffie-Hellman問(wèn)題的。 在上述兩種情況下,所述的方案都要使用兩個(gè)循環(huán)群Gi和G2,兩個(gè) 群最好具有同樣大的素?cái)?shù)階g ( prime order q )。第一個(gè)群"最好是 一組位于橢圓曲線或阿貝爾簇上的點(diǎn),并且的Gi上的群律(group law )可以被寫為加性的。第二個(gè)群G2最好是一個(gè)有限域的乘性子群, 并且G2上的群律可以被寫為乘性的。但是,其他類型的群也可被當(dāng)作 符合本發(fā)明的Gi和Gj吏用。
本方法還使用第一個(gè)群Gi的一個(gè)生成器P。。另外, 一種配對(duì)或
函數(shù)S: G1X Gi — G2也被提供用來(lái)將第一群Gi的兩個(gè)元素映射成第二 個(gè)群G2的一個(gè)元素。函數(shù)e最好滿足三個(gè)條件。首先,函數(shù)e最好是 雙線性的,從而當(dāng)g和i 在Gi中且fl和6為整數(shù)時(shí),有<"2,^ ) = <2^)。*。 第二,函數(shù)e最好是非退化的,從而映射不會(huì)將GpGi中的所有配對(duì) 變?yōu)镚2中的身份。第三,函數(shù)e最好是能夠高效計(jì)算的。滿足這三個(gè) 條件的函數(shù)e可以被考慮采用。
函數(shù)e最好還是對(duì)稱的,從而使得e(2^)^(i ,0對(duì)所有的2,及e^ 都成立。但是,對(duì)稱可直接由雙線性以及Gi是一個(gè)循環(huán)群這個(gè)事實(shí)得 出的。可以根據(jù)現(xiàn)有技術(shù)中已知的方法修改與超奇異橢圓曲線或阿貝
爾簇相關(guān)的Wdl和Tate配對(duì),以便產(chǎn)生這類雙線性映射。但是,即 使將第一循環(huán)群Gi中的元素稱為"點(diǎn)"可能暗示函數(shù)e是一個(gè)經(jīng)過(guò)改進(jìn) 的Wdl或Tate配對(duì),但是應(yīng)該注意,任何合理的函數(shù)e都能行得通。 本發(fā)明簽名方案的安全性主要基于Diffie-Hellman問(wèn)題或雙線性 Diffie-Hellman問(wèn)題的難度。Diffie-Hellman問(wèn)題是在給定一個(gè)隨機(jī)選 取的Pe 且給定"P和M (對(duì)于未知的隨機(jī)選取的 a,6,c e Z Z )的條 件下,求出w尸。雙線性Diffie-Hellman問(wèn)題是在給定一個(gè)隨機(jī)選取的尸eGp且給定a戶,6P及c戶(對(duì)于未知的隨機(jī)選取的 a,6,c e Z/《Z )的條 件下,求出S(P,戶產(chǎn)。在G!中解決Diffie-Hellman問(wèn)題也就解決了雙線 性Diffie-Hellman問(wèn)題,因?yàn)閑(P,P)abc=e(abP,cP)。相似地,解決G2 中的Diffie-Hellman問(wèn)題也就解決了雙線性Diffie-Hellman問(wèn)題,這
是因?yàn)閒t口果g-e(尸,P),另卩么gaAc=(ga6)c ,其中纊* 二e(oP,6尸)且gC-"Z5,^)。 為了使雙線性Diffie-Hellman問(wèn)題變得困難,就應(yīng)對(duì)G!和G2進(jìn)行選 擇,從而使得不存在能夠有效地解決Gt或Gz中的Diffie-Hellman問(wèn) 題的已知的算法。如果雙線性Diffie-Hellman問(wèn)題對(duì)于一種配對(duì)S是困 難的,那么可以推知S是非退化的。
如果一個(gè)隨機(jī)化算法IG采用 一個(gè)保密參數(shù)h o 、運(yùn)行時(shí)間為A的 多項(xiàng)式、且輸出兩個(gè)群Gi和G2的描述以及一個(gè)可行配對(duì)"G^Gi —G2 的描述,其中所述的兩個(gè)群最好具有相同的素?cái)?shù)階《,那么隨機(jī)化的 算法IG就是一個(gè)雙線性Diffie-Hellman生成器。如果IG是一個(gè)雙線 性Diffie-Hellman參數(shù)生成器,那么一個(gè)算法B在解決雙線性 Diffie-Hellman問(wèn)題中的優(yōu)勢(shì)JrfvzG(B)就被定義為當(dāng)算法的輸入為 Gp G2、 e、 P、"尸、M和c尸時(shí),算法B輸出e(尸,iT"的概率,其中(Gh G2, O是IG對(duì)于足夠大的保密參數(shù)A的輸出,P是Gi的一個(gè)隨機(jī)生成 器,"、6、 c則是Z Z的隨機(jī)元素。雙線性Diffie-Hellman問(wèn)題下潛 在的假設(shè)是/^/vui(B)對(duì)于所有的有效算法B都是可以忽略的。類似的 假設(shè)也存在于Diffie-Hellman問(wèn)題中。 多簽名
如上所述,多簽名方案是任意一種允許若干個(gè)簽署人以某種方式 簽署一個(gè)文件(或多個(gè)文件)的方案,所述的簽署方式比他們(簽署 人)中的每一個(gè)分別簽署文檔的情況效率更高。通常,這種提高的效 率體現(xiàn)在簽名長(zhǎng)度中——即n個(gè)簽署人的組合多簽名比n個(gè)單獨(dú)的簽 名短。這對(duì)于各交易方的一方需要獲得多個(gè)來(lái)源的預(yù)先批準(zhǔn)且必須在 交易前提交該多個(gè)預(yù)批準(zhǔn)的交易來(lái)說(shuō)是很方便的。如上所述,至今仍 然沒(méi)有一種能夠允許多個(gè)簽署人有效簽署多個(gè)文檔的多簽名方案。例 如,在現(xiàn)有的多簽名方案中,多簽名的長(zhǎng)度至少取決于簽署人的數(shù)量
15或被簽署的文檔數(shù)量。本發(fā)明提供了更高效的多簽名簽名方案,該方 案允許多個(gè)簽署人簽署多個(gè)文檔以產(chǎn)生 一個(gè)多簽名,該多簽名的長(zhǎng)度 與簽署人數(shù)量以及文檔數(shù)量都無(wú)關(guān)。
現(xiàn)在參見(jiàn)附圖,圖1所示的流程圖根據(jù)本發(fā)明的一種當(dāng)前優(yōu)選實(shí) 施例展示了一種產(chǎn)生及驗(yàn)證一個(gè)多簽名的方法。利用雙線性映射,如
Weil或Tate配對(duì),該實(shí)施例允許多個(gè)簽署人簽署多個(gè)文檔。無(wú)論不 同簽署人的數(shù)量或是被簽署的不同文檔的數(shù)量是多少,結(jié)果得到的簽 名都可以被表示為一個(gè)群中的單個(gè)元素,比如一條橢圓曲線上的單點(diǎn)。 參照?qǐng)D1說(shuō)明的多簽名方案允許n個(gè)簽署人簽署m個(gè)數(shù)字消息 并產(chǎn)生單個(gè)的多簽名。每個(gè)簽署人簽署m條消息的一個(gè)子集。與原有 的簽名方案不同,本方案允許不同簽署人簽署不同的消息集合而又不 需犧牲效率。該方法從模塊102開(kāi)始,產(chǎn)生元素的第一與第二循環(huán)群 Gi和G2。在模塊104中,選取一個(gè)函數(shù)"使得該函數(shù)e能夠由第一 循環(huán)群G!的兩個(gè)元素產(chǎn)生第二循環(huán)群G2的一個(gè)元素。函數(shù)e最好是 一種可行的配對(duì),如上所述。在模塊106中選取第一循環(huán)群Gt的一個(gè) 生成器P。在模塊108中,選取一個(gè)函數(shù)//,使得該函數(shù)f/能夠由第一 串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群Gi的一個(gè)元素。例如,函數(shù)/z可以是一種 散列函數(shù)。
在模塊110中,為n個(gè)簽署人中的每一位選取一個(gè)私有密鑰s,。 在模塊112中利用函數(shù)/z為m條消息中的每一條產(chǎn)生消息函數(shù)值 。
在模塊114中對(duì)所有的(/,/)eC—也就是第i個(gè)簽署人簽署第j條消 息的所有(/J)配對(duì)——使用方程&^4,來(lái)產(chǎn)生簽名要素&。這些簽 名要素&被組合在一起以產(chǎn)生數(shù)字簽名他=》 & ,如模塊116中所
示。該簽名方案的高效率源于數(shù)字簽名&g包括第一循環(huán)群&的單個(gè) 元素這樣一個(gè)事實(shí)。在模塊118中通過(guò)確認(rèn)e(/^'g)-n(,^e(^P,^)來(lái)驗(yàn)
證該簽名。
在上述的方案中,每名簽署人簽署每條消息,盡管該方案是一種 有用的多簽名(方案),但還存在其他的變型。例如,并非所有的消 息都需要被所有的簽署人簽署。另外,交易方所獲得的各種簽名及授權(quán)可以在今后的交易中以不同的組合形式匹配。如果幾名簽署人簽署 同 一條消息或是一名簽署人簽署多條消息,那么多簽名的驗(yàn)證效率就 能得到改善,因?yàn)橹恍柽M(jìn)行較少的配對(duì)計(jì)算。根據(jù)現(xiàn)有技術(shù)中已知的
方法,如果只發(fā)送簽名&g的x坐標(biāo),校驗(yàn)器可以根據(jù)x坐標(biāo)恢復(fù)y坐 標(biāo),就能進(jìn)一步提高該方案的帶寬效率。
額外的保密措施可被用來(lái)防止對(duì)參照?qǐng)D1所述的多簽名方案的特 定類型攻擊。在這種攻擊中,攻擊者根據(jù)某些其他方的公共密鑰修改 它自己的公共密鑰/私有密鑰對(duì),從而該攻擊者無(wú)需它方參與即可偽造 出以它自己及其他方為假造簽署人的單消息多簽名。這類攻擊可以通 過(guò)多種方式預(yù)防。例如, 一個(gè)單獨(dú)的團(tuán)體可以收集來(lái)自每個(gè)簽署人的 簽名要素,以組成多簽名。在這樣做的過(guò)程中,該團(tuán)體可以通過(guò)確認(rèn) e(尸A)-^,戶,^)來(lái)獨(dú)立地驗(yàn)證每位簽署人的簽名要素^。但是,多簽
名的最終校驗(yàn)器可能并不放心該方法,因?yàn)樵撔r?yàn)器仍然必須確信收 集了簽名要素的團(tuán)體正確地驗(yàn)證了那些簽名要素。
或者,也可以通過(guò)要求每名簽署人個(gè)別簽署某些對(duì)于該簽署人來(lái) 說(shuō)獨(dú)特的消息來(lái)阻止攻擊,比如含有簽署人身份信息或公共密鑰的消
息,或是為每名簽署人隨機(jī)選取的消息。例如,、可被設(shè)為H(^P,M,)。
或者,CA也可以要求簽署人在它(CA)向簽署人發(fā)放證書(shū)之前簽署 某些由CA選擇的"質(zhì)詢"消息。(實(shí)際上,CA通常已經(jīng)要求這一點(diǎn) 了。)在兩種情況下,校驗(yàn)器都能夠獨(dú)立地驗(yàn)證多簽名,而無(wú)需來(lái)自 收集了簽名要素的團(tuán)體的保證。那些精通本技術(shù)的人應(yīng)該明白,還可 以使用其他方法來(lái)阻止攻擊。 基于身份的團(tuán)體簽名
團(tuán)體簽名允許一個(gè)組(不必先行建立)的一個(gè)成員簽署一條消息, 且使得第三方能夠證實(shí)該組的某位成員創(chuàng)建了簽名,但卻不能確定是 哪一名成員。例如,設(shè)想有一名想要向新聞界泄漏機(jī)密但又想保留有 限匿名性的內(nèi)閣成員——即他想讓新聞界知道他是一名內(nèi)閣成員,但 卻不清楚是哪一名成員。團(tuán)體簽名允許簽署人選擇任意包含該簽署人 的集合并證明該簽署人是那個(gè)集合的一名成員,而又不會(huì)暴露是哪一名成員。這樣, 一名內(nèi)閣成員就可以利用他的私有密鑰,結(jié)合其他內(nèi) 閣成員的公共密鑰來(lái)為內(nèi)閣創(chuàng)建一個(gè)團(tuán)體簽名。由于內(nèi)閣專用的團(tuán)體 簽名只能由內(nèi)閣成員創(chuàng)建,因此新聞界就能利用該簽名來(lái)證實(shí)其匿名 來(lái)源的真實(shí)性。
團(tuán)體簽名也可用在合同談判中。當(dāng)A方向B方發(fā)送一個(gè)合同草 案時(shí),A方可能希望提供證明而非認(rèn)可——即它(A方)可能想要向 B方證明該合同草案來(lái)自A方,但又不希望給予B方向第三方(即法 庭)證明A方簽署了該草案的能力。在這種情況下,A方可以為集合 {A, B)創(chuàng)建一個(gè)團(tuán)體簽名。B方會(huì)知道A方創(chuàng)建了該簽名,因?yàn)锽方 自己沒(méi)有創(chuàng)建該簽名。另一方面,B方又不能使第三方確信A方創(chuàng)建 了該簽名,因?yàn)閺牡谌降挠^點(diǎn)看來(lái),B方同樣可能創(chuàng)建了該簽名。
現(xiàn)在將參照?qǐng)D2來(lái)說(shuō)明一種基于身份的團(tuán)體簽名方案,圖2所示 的流程圖根據(jù)本發(fā)明的另一種當(dāng)前優(yōu)選實(shí)施例展示了一種產(chǎn)生及驗(yàn)證 消息M的數(shù)字簽名&的方法,所述的消息在簽署人與校驗(yàn)器之間傳 遞。該例中的簽署人是一個(gè)集合的f名成員之一。為了進(jìn)行下面的說(shuō)明, 將該簽署人與身份叫聯(lián)系起來(lái),并將集合中的其他成員與身份 /A(2&^)聯(lián)系起來(lái)。但是需要注意,如果匿名簽署人總是與第一個(gè)列 出的身份相關(guān)聯(lián),那么簽名實(shí)際上就不會(huì)是匿名的。
該方法從模塊202開(kāi)始,產(chǎn)生多個(gè)元素的第一與第二循環(huán)群& 和Gz。在模塊204中,選取一個(gè)函數(shù)e,使得該函數(shù)e能夠由第一循環(huán) 群Gi的兩個(gè)元素產(chǎn)生第二循環(huán)群Gz的一個(gè)元素。函數(shù)e最好是一種 可行的配對(duì),如上所述。在模塊206中選取第一群Gi的第一與笫二生 成器P和P'。在模塊208中,選取第一與第二保密數(shù)字s和y。也可以 為每個(gè)新的簽名選擇一個(gè)新的人在模塊210中選取一個(gè)函數(shù)/f,使 得該函數(shù)/z能夠由第一串二進(jìn)制數(shù)產(chǎn)生笫一循環(huán)群Gi的一個(gè)元素。在 模塊212中,為集合中f名成員的每一個(gè)生成一個(gè)公共要點(diǎn)S-巧(/Z)》。
在模塊214中為簽署人產(chǎn)生一個(gè)私有要點(diǎn)^W^。
在模塊216中通過(guò)產(chǎn)生數(shù)字簽名&g來(lái)簽署數(shù)字消息M,產(chǎn)生數(shù) 字簽名時(shí)至少要用到簽署人的私有要點(diǎn)(Ww'S)以及集合中^名成員各自的公共要點(diǎn)《。例如,可以通過(guò)下列方式產(chǎn)生數(shù)字簽名。選取隨機(jī) 數(shù) 和^,其中"""并產(chǎn)生一個(gè)消息函數(shù)值^-A(M)。然后利用 ^4[^,…K,^]來(lái)產(chǎn)生數(shù)字簽名本身,其中
= +^+6尸2+ w+仏,f^'p + ^,km=~p, 并且
在模塊218中,至少利用集合中^名成員各自的公共要點(diǎn)《來(lái)驗(yàn)證
數(shù)字簽名腳是由集合中的一名成員創(chuàng)建的。例如,可以通過(guò)確認(rèn)
e(t/,尸)=e(p',, )n:=1 eW, K)來(lái)驗(yàn)證簽名。
以下是一種用于兩個(gè)實(shí)體的基于身份的團(tuán)體簽名實(shí)例,所述的兩
個(gè)實(shí)體擁有身份H^和ID2,該實(shí)例符合上述的方法。由PKG為第一 實(shí)體提供的私有密鑰可被表示為(W+。iV",而由PKG為第二實(shí)體提
供的私有密鑰則可被表示為(W+^P2,r2JP)。每個(gè)私有密鑰中第 一個(gè)要點(diǎn)
的第一部分都是w,它將各個(gè)實(shí)體與PKG聯(lián)系起來(lái)。每個(gè)私有密鑰
中的這一部分必須保持不變。但是每個(gè)私有密鑰的其余部分可以被改
變。例如,可供第一實(shí)體使用的同樣有效的私有要點(diǎn)是(W+r^,Vi5),。'
是任取的。這種靈活性可被充分利用以便能夠創(chuàng)建一個(gè)團(tuán)體簽名。用 于這兩個(gè)實(shí)體的團(tuán)體簽名對(duì)某些v和具有
Op'+V^ + va+^Pa^'p,^'p,^p)的形式。這兩個(gè)實(shí)體的身份通過(guò)使用他們
的公共要點(diǎn)《和a而被嵌入在這個(gè)團(tuán)體簽名中。此外,每個(gè)客戶端都 能產(chǎn)生這樣的團(tuán)體簽名。
例如,第一實(shí)體可以如下為兩個(gè)實(shí)體產(chǎn)生一個(gè)團(tuán)體簽名。為方便 起見(jiàn),將第一個(gè)實(shí)體的私有密鑰表示為(&,a)。第一實(shí)體選取隨機(jī)數(shù)6 和Y,并計(jì)算出團(tuán)體簽名(51+6尸1+^尸2+/^^,《+6/^2'尸,^ ),其中對(duì)某個(gè) 隨機(jī)數(shù)6有v^+6。這是對(duì)第一和第二實(shí)體有效的團(tuán)體簽名。注意,
如果第一實(shí)體總是選取"o,那么就很明顯是第一實(shí)體創(chuàng)建了每個(gè)簽
名。而使用一個(gè)隨機(jī)的6就使得不可能確定兩個(gè)實(shí)體中的哪一個(gè)創(chuàng)建
了團(tuán)體簽名。類似地,第二實(shí)體會(huì)選取隨機(jī)數(shù)6和v,并計(jì)算出團(tuán)體簽
名(S2 + v《+ 6尸2 + ~4^'尸^2 。
然而,擁有身份ID3的第三實(shí)體不能為前兩個(gè)實(shí)體創(chuàng)建有效的團(tuán)體簽名。由PKG向笫三實(shí)體提供的私有密鑰可被表示為(Ww^^P)。 由于第三實(shí)體不能從它的私有密鑰中刪除它的公共要點(diǎn)P3 ,因此第三 實(shí)體的私有密鑰就會(huì)被它的身份"污染"。這種污染是不能被去除的, 因此第三方就不能偽造出用于前兩個(gè)實(shí)體的有效團(tuán)體簽名。只有前兩 個(gè)實(shí)體可以創(chuàng)建這樣的團(tuán)體簽名,主要是通過(guò)向簽署實(shí)體的私有密鑰 中加入另一方實(shí)體的身份來(lái)實(shí)現(xiàn)的。
上述的團(tuán)體簽名方案還可以被改進(jìn)來(lái)創(chuàng)建一種分級(jí)的團(tuán)體簽名 方案?,F(xiàn)在將參照?qǐng)D3來(lái)說(shuō)明一種基于身份的分級(jí)團(tuán)體簽名方案,圖 3所示的流程圖根據(jù)本發(fā)明的另 一種實(shí)施例展示了 一種產(chǎn)生及驗(yàn)證消 息M的團(tuán)體簽名化的方法,所述的消息M在一個(gè)分級(jí)結(jié)構(gòu)中的 一個(gè)簽 署人與一個(gè)校驗(yàn)器之間傳遞。該方法允許一個(gè)來(lái)自分級(jí)結(jié)構(gòu)中具有,名
團(tuán)體成員的團(tuán)體的簽署人為所述的,名團(tuán)體成員產(chǎn)生一個(gè)團(tuán)體簽名。f 個(gè)實(shí)體各與一個(gè)ID元組相關(guān)聯(lián),比如(/1),1,...,/1),/),其中/,代表各個(gè)實(shí)
體在分級(jí)結(jié)構(gòu)中的級(jí)別。該方法從模塊302開(kāi)始,產(chǎn)生諸元素的第一 與第二循環(huán)群Gi和G2。在模塊304中,選取一個(gè)函數(shù)e,使得該函數(shù) e能夠由第一循環(huán)群Gi的兩個(gè)元素產(chǎn)生第二循環(huán)群G2的一個(gè)元素。 函數(shù)e最好是一種可行的配對(duì),如上所述。在模塊306中選取第一循 環(huán)群Gi的一個(gè)根生成器P。。在模塊308中選取一個(gè)隨機(jī)根密鑰生成密 文 ,該密文 只和根PKG有關(guān)且只為根PKG所知。 最好是循環(huán) 群Z/《Z的一個(gè)元素。在模塊310中產(chǎn)生一個(gè)根密鑰生成參數(shù)2C。。 e。 最好是第一循環(huán)群Gi的一個(gè)元素。在模塊312中,選取一個(gè)第一函數(shù) 使得/^能夠由第一串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群Gi的一個(gè)元素。在 模塊314中選取一個(gè)第二函數(shù)//2,使得//2也能夠由第一串二進(jìn)制數(shù)產(chǎn) 生第一循環(huán)群Gi的一個(gè)元素。模塊302至314的功能是上述根設(shè)置算 法的一部分,并且最好在大致相同的時(shí)間完成。作為示例,在 Boneh-Franklin中被公開(kāi)的那些函數(shù)可被當(dāng)作巧和//2使用。
接下來(lái)的一系列模塊(模塊316至324)示出了作為低級(jí)設(shè)置算 法的一部分而執(zhí)行的功能。在模塊316中,為與^個(gè)團(tuán)體成員中的每一 個(gè)成員有關(guān)的/; -l個(gè)前輩低級(jí)PKGs各生成一個(gè)公共元素& 。每個(gè)公共元素A = //(/A,.../",,)最好都是第一循環(huán)群Gi的一個(gè)元素,其中b",且 ^"(/,-l)。盡管是以單個(gè)模塊表示,但是所有公共元素^的產(chǎn)生可能
需要額外的時(shí)間,而非一次完成。
為與f個(gè)團(tuán)體成員中的每一個(gè)成員有關(guān)的A-i個(gè)前輩低級(jí)PKGs 各選取一個(gè)低級(jí)密鑰生成密文A,(模塊318),其中l(wèi)&^且 1)。所述的低級(jí)密鑰生成密文&最好是循環(huán)群Z Z的元素,并 且每個(gè)低級(jí)密鑰生成密文&最好只對(duì)它相關(guān)的低級(jí)PKG已知。同樣, 盡管是以單個(gè)模塊表示,但是低級(jí)密鑰生成密文&的選取可能需要額
外的時(shí)間來(lái)進(jìn)行,而非一次完成。
為與,個(gè)團(tuán)體成員中的每一個(gè)成員有關(guān)的/,一個(gè)前輩低級(jí)PKGs
各產(chǎn)生一個(gè)低級(jí)機(jī)密要點(diǎn)S,,(模塊320 )。每個(gè)低級(jí)機(jī)密元素, ^^,(M)+^^,最好都是笫一循環(huán)群Gi的一個(gè)元素,其中l(wèi)^",且 ^/s(/, -1)。盡管與公共元素&以及密文 一樣都是以單個(gè)模塊表示, 但是機(jī)密元素《,的產(chǎn)生可能需要額外的時(shí)間來(lái)進(jìn)行,而非一次完成。 為了這些迭代密鑰生成過(guò)程,可將S。定義為Gi的身份元素。
還要為與/個(gè)團(tuán)體成員中的每一個(gè)成員有關(guān)的/,-l個(gè)前輩低級(jí) PKGs各產(chǎn)生一個(gè)低級(jí)密鑰生成參數(shù)e,,(模塊322)。每個(gè)密鑰生成參 數(shù),a=vPQ,最好都是第一循環(huán)群Gi的一個(gè)元素,其中iag且 ^"(/,-1)。同樣,盡管是以單個(gè)模塊表示,但是低級(jí)密鑰生成參數(shù)a, 的產(chǎn)生可能需要額外的時(shí)間來(lái)進(jìn)行,而非一次完成。
隨后兩個(gè)模塊(模塊324和326)的功能是作為上述提取算法的 一部分而執(zhí)行的。在模塊324中生成與,個(gè)團(tuán)體成員中的每一個(gè)成員有 關(guān)的團(tuán)體成員公共要點(diǎn)^。每個(gè)團(tuán)體成員公共要點(diǎn),& =//1(叫,...//),/,),
最好都是第一循環(huán)群Gi的一個(gè)元素,其中l(wèi)《/a。然后在模塊326中 生成與r個(gè)團(tuán)體成員中的每一個(gè)成員有關(guān)的團(tuán)體成員機(jī)密要點(diǎn)S,。每個(gè)
團(tuán)體成員機(jī)密要點(diǎn),=^-d =ZL%-1)《,也最好都是第一 循環(huán)群&的一個(gè)元素,其中l(wèi)《",。
為方便起見(jiàn),第一函數(shù)^可被選為一種迭代函數(shù),從而可以按照
例如A(iVD,W,)而非巧(/i),p…/A,)來(lái)計(jì)算公共要點(diǎn)A 。
21圖3中所示的最后兩個(gè)模塊(模塊328和330)代表了上述的簽 名與驗(yàn)證算法。在模塊328中,由一名擁有ID元組(/zv…,/Z^)的簽署
人簽署消息m,以產(chǎn)生一個(gè)團(tuán)體簽名&。簽名算法最好至少用到簽署 人的私有要點(diǎn)&,以及,個(gè)團(tuán)體成員各自的ID元組(/z),1,...,/",.,,)。然后在
模塊330中驗(yàn)證團(tuán)體簽名S/g,以確認(rèn)它是由^個(gè)團(tuán)體成員之一簽署的。 驗(yàn)證過(guò)程最好至少用到f個(gè)團(tuán)體成員各自的ID元組(/Dn,...,/",,,)。這些 ID元組對(duì)應(yīng)于7>共要點(diǎn)元組&
例如,簽名算法可以從消除r個(gè)團(tuán)體成員的公共要點(diǎn)元組^之間 的冗余而開(kāi)始。如果任何團(tuán)體成員共享公共的前輩PKGs,那么這些 點(diǎn)元組之間就會(huì)存在冗余。來(lái)自f個(gè)公共要點(diǎn)元組的公共要點(diǎn)的非冗余 集合可被表示為一個(gè)點(diǎn)集/ = {^,—&}。然后簽署人就以[t/,K,…,1/,,^]
的形式產(chǎn)生團(tuán)體簽名,其中":^尸'+^ ,+…+ ^^+Q4 , ^=^尸,其中 1w",并且^=^ 。為了保持它在團(tuán)體成員中的匿名性,簽署人會(huì)
為不在其ID元組中的要點(diǎn)A隨機(jī)選擇^,并且它還會(huì)利用上述的方法 "掩蓋"位于它ID元組中的要點(diǎn)&的標(biāo)量。通過(guò)確認(rèn)
<", )=6(,,^)£(/^,^)17:=1<^),該簽名將被校驗(yàn)來(lái)確認(rèn)該簽署人是,
個(gè)團(tuán)體成員之一。
基于身份的分級(jí)代理簽名
代理簽名允許一個(gè)被指定的人或一組人代表原始簽署人簽名,這
些人被稱為代理簽署人。 一個(gè)代理簽名方案應(yīng)該具有下列性質(zhì)
強(qiáng)有力的不可偽造性:代理簽署人能夠替原始簽署人創(chuàng)建有效的 代理簽名。任何其他第三方,包括原始簽署人,都不能偽造出一個(gè)代 理簽名。
強(qiáng)有力的可識(shí)別性:任何人都可以根據(jù)一個(gè)代理簽名識(shí)別出代理 簽署人。
強(qiáng)有力的不可否認(rèn)性:代理簽署人不能否認(rèn)創(chuàng)建了有效的簽名。 本發(fā)明提供了基于身份的分級(jí)代理簽名方案。圖4所示的流程圖 根據(jù)本發(fā)明的另 一種實(shí)施例展示了 一種產(chǎn)生及驗(yàn)證一條數(shù)字消息m的 數(shù)字代理簽名雄的方法。簽名s/g由代理簽署人代表原始簽署人簽署。
22該方法從模塊402開(kāi)始,產(chǎn)生諸元素的第一與第二循環(huán)群&和G2。 在模塊404中,選取一個(gè)函數(shù)"使得該函數(shù)e能夠由第一循環(huán)群G
的兩個(gè)元素產(chǎn)生第二循環(huán)群G2的一個(gè)元素。函數(shù)e最好是一種可行的
配對(duì),如上所述。在模塊406中選取第一循環(huán)群Gi的一個(gè)生成器P。 在模塊408中,選取一個(gè)函數(shù)//,使得該函數(shù)7/能夠由一串二進(jìn)制數(shù) 產(chǎn)生第一循環(huán)群Gi的一個(gè)元素。在模塊410中,為原始簽署人選取一 個(gè)私有密鑰^。在模塊412中為原始簽署人生成一個(gè)公共密鑰^P。類 似地,在模塊414中為代理簽署人選取一個(gè)私有密鑰v ,并在模塊416 中為代理簽署人生成一個(gè)公共密鑰VP。在模塊418中,原始簽署人 給予代理簽署人一個(gè)代理私有密鑰^/V,其中^為了代表原
始簽署人簽署一條消息,在模塊420中代理簽署人首先生成一個(gè)消息 函數(shù)值4=//(7^)?;蛘?,除了消息M以外的其他信息也可以被用來(lái)產(chǎn) 生消息函數(shù)值P^。正如在現(xiàn)有技術(shù)中可以被理解的那樣,函數(shù)i/的輸 入以及函數(shù)本身都可以按不同的方式調(diào)整。例如,原始簽署人可以通 過(guò)在函數(shù)中加入一個(gè)"條約,,c來(lái)限制代理簽署人的權(quán)力,比如
;=h(v ,c)。接著,在模塊422中,代理簽署人通過(guò)生成數(shù)字簽名 &g = + 4來(lái)簽署數(shù)字消息M 。為了驗(yàn)證代理簽名代表了原始簽署 人的簽名,在步驟424中,校驗(yàn)器確認(rèn)e(S/g,PX^,^P)e(i^,vP)。
基于身份的分級(jí)在線/離線簽名
對(duì)于許多應(yīng)用來(lái)說(shuō),簽署一條消息所需的總時(shí)間不如在線簽署時(shí) 間重要。在線簽署時(shí)間 一般被認(rèn)為是簽署人在獲得消息之后產(chǎn)生 一個(gè) 簽名所需的時(shí)間。在線/離線簽名方案被提出,是為了減少在線簽名所 需的時(shí)間。例如, 一種這樣的方案使用了"暗門散列函數(shù)"a和"散列簽 名開(kāi)關(guān)"的范例。但是,在線/離線簽名方案還不能用于基于身份的分 級(jí)簽名系統(tǒng)。
本發(fā)明提供了基于身份的在線/離線分級(jí)簽名方案。圖5所示的 流程圖^L據(jù)本發(fā)明的另 一種實(shí)施例展示了 一種產(chǎn)生及驗(yàn)證一條數(shù)字消 息M的數(shù)字簽名S/g的方法。在基于身份的分級(jí)系統(tǒng)環(huán)境中,該方法包 括一個(gè)兩階段的簽名過(guò)程。簽名過(guò)程的第一階段可以離線完成。這樣就只剩下簽名過(guò)程的第二階段要在線完成,從而縮短了在線簽名時(shí)間。
該分級(jí)方案中的簽署人少比分級(jí)結(jié)構(gòu)中的根PKG低,個(gè)級(jí)別,并 且與ID元組(/z^,…,/z^)相關(guān)聯(lián)。該簽署人的ID元組中包括與簽署人 有關(guān)的身份信息/1^,,以及與它在分級(jí)結(jié)構(gòu)中的,-l個(gè)前輩低級(jí)PKG 各自相關(guān)的身份信息/^,。該方法從模塊502開(kāi)始,產(chǎn)生元素的第一與 第二循環(huán)群Gt和G2。在模塊504中,選取一個(gè)函數(shù)e,使得該函數(shù)e能 夠由第一循環(huán)群Gi的兩個(gè)元素產(chǎn)生第二循環(huán)群G2的一個(gè)元素。函數(shù)e 最好是一種可行的配對(duì),如上所述。在模塊506中選取第一循環(huán)群Gi 的一個(gè)根生成器P。。在模塊508中,選取一個(gè)隨機(jī)根密鑰生成密文 , 該密文&只和根PKG相關(guān)且只為根PKG所知。 最好是循環(huán)群Z Z的
一個(gè)元素。在模塊510中產(chǎn)生一個(gè)根密鑰生成參數(shù)a^。戶。。O)最好是 第一循環(huán)群Gi的一個(gè)元素。在模塊512中,選取第一函數(shù)巧,使得巧 能夠由第一串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群G,的一個(gè)元素。在模塊514 中選取第二函數(shù)//2,使得//2也能夠由第一串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群 G丄的一個(gè)元素。作為示例,在Boneh-Franklin中被公開(kāi)的那些函數(shù) 可被當(dāng)作//,和//2使用。實(shí)際上,函數(shù)^和i/2可以是完全相同的函數(shù)。 但是有潛在的隱患。 一名攻擊者可能嘗試讓簽署人簽署M = /A ,其中叫 代表了一個(gè)實(shí)際身份。在這種情況下,簽署人的簽名實(shí)際上會(huì)是一個(gè) 私有密鑰,此后該密鑰可被用來(lái)解密消息及偽造簽名。但是,通過(guò)采 用某些能夠區(qū)分簽名與私有密鑰提取的手段一比如一個(gè)比特前綴或 為仏采用不同的函數(shù),該隱患是可以避免的。模塊502至514的功能 是上述根設(shè)置算法的一部分,這些功能最好在大致相同的時(shí)間執(zhí)行。 接下來(lái)的一系列模塊(模塊516至524)示出了作為低級(jí)設(shè)置算
法的一部分而執(zhí)行的功能。在模塊516中,為簽署人的,-l個(gè)前輩低級(jí) PKGs各生成一個(gè)^^共元素Py,。每個(gè)〃>共元素,=/^(//^,...,//^)最好都
是第一循環(huán)群Gi的一個(gè)元素,其中iya-l。盡管是以單個(gè)模塊表示, 但是所有公共元素;的產(chǎn)生可能需要額外的時(shí)間,而非一次完成。
為簽署人的,-l個(gè)前輩低級(jí)PKGs各選取一個(gè)低級(jí)密鑰生成密文 (模塊518 )。所述的低級(jí)密鑰生成密文 最好是循環(huán)群Z^Z的元素,其中b/^-l,并且每個(gè)低級(jí)密鑰生成密文 ,最好只對(duì)它相關(guān)的低級(jí)
PKG已知。同樣,盡管是以單個(gè)模塊表示,但是低級(jí)密鑰生成密文
的選取可能需要額外的時(shí)間來(lái)進(jìn)行,而非一次完成。
為簽署人的m個(gè)前輩低級(jí)PKG各產(chǎn)生一個(gè)低級(jí)機(jī)密元素^ (模
塊520)。每個(gè)低級(jí)機(jī)密元素, =sy(m),最好都是第一循環(huán) 群Gi的一個(gè)元素,1。盡管與公共元素;以及密文 一樣 都是以單個(gè)模塊表示,但是機(jī)密元素的產(chǎn)生可能需要額外的時(shí)間來(lái) 進(jìn)行,而非一次完成。為了這些迭代的密鑰生成過(guò)程,最好將s。定義 為G^的身份元素。
還要為簽署人的,-l個(gè)前輩低級(jí)PKGs各產(chǎn)生一個(gè)低級(jí)密鑰生成 參數(shù)",(模塊522 )。每個(gè)密鑰生成參數(shù),&,= A,最好都是第一循
環(huán)群Gi的一個(gè)元素,其中l(wèi)&、,-i。同樣,盡管是以單個(gè)模塊表示, 但是低級(jí)密鑰生成參數(shù)&,的產(chǎn)生可能需要額外的時(shí)間來(lái)進(jìn)行,而非一
次完成。
隨后兩個(gè)模塊(模塊524和526 )的功能是作為上述提取算法的 一部分而執(zhí)行的。在模塊524中生成與簽署人^有關(guān)的簽署人公共元 素/>該簽署人公共元素,p,^/^(/iV..最好是第一循環(huán)群Gi
的一個(gè)元素。然后在模塊526中生成與簽署人y有關(guān)的簽署人機(jī)密元
素&。該簽署人機(jī)密元素,&=&M)+ M);=z:=i^M)i;.,最好也是第
一循環(huán)群Gi的一個(gè)元素。
為方便起見(jiàn),第一函數(shù)/^可被選為一種迭代函數(shù),從而可以按照
例如a(/^d,/^,)而非a(/a,…/z^,)來(lái)計(jì)算公共要點(diǎn)s 。
圖5中所示的最后兩個(gè)模塊(模塊528和530)代表了上述的簽
名與驗(yàn)證算法。兩階段簽名算法涉及暗門散列函數(shù)a的運(yùn)用,根據(jù)現(xiàn)
有技術(shù)中已知的方法,該函數(shù)最好是一個(gè)離散的基于對(duì)數(shù)的暗門散列
函數(shù),并且經(jīng)過(guò)修改以便用于橢圓曲線。因此,在模塊528中,要選 取一個(gè)隨機(jī)暗門密文、ez"z。在簽名過(guò)程中,簽署人可以向校驗(yàn)器提
供C^尸。作為其公共散列密鑰。例如,簽署人可以選擇令^等于 , 后者是簽署人的低級(jí)機(jī)密元素。在任何情況下,都最好為每個(gè)簽名重新產(chǎn)生厶,。
簽名算法在模塊530中繼續(xù)進(jìn)行,其中簽署人選取了一個(gè)隨機(jī)消 息M'和一個(gè)隨機(jī)數(shù),。然后在模塊532中,簽署人簽署隨機(jī)消息M'以
產(chǎn)生簽名[t/,&,…,&,ev],其中c^(51a(,—A,)+v^,",= 尸。,其中
laa,并且4,-仏((M'付Vy,)/>。)。簽名算法的這部分可以離線完成。
當(dāng)簽署人識(shí)別出要被簽署的消息M之后,就可以完成簽名算法的 在線部分了。在模塊534中,簽署人確定一個(gè)數(shù)r,要使得
M + "、 = M'+, ^ ^ r = )-1 M) + ,,其中要將s、的倒數(shù)對(duì)g取才莫。 然后簽署人將r連通消息M以及簽名& 一起發(fā)送給校驗(yàn)器。
在步驟536中,校驗(yàn)器接著完成驗(yàn)證算法,并通過(guò)確認(rèn)
e(",尸。)"fo,,/0rLefe(,-",尸r,)來(lái)驗(yàn)證簽名,其中
4=//2(71^+^、,)=7^。驗(yàn)證算法也可以被分解成在線與離線階段,這 取決于校驗(yàn)器掌握了哪些信息。例如,簽署人可以在得知消息m之前 向校驗(yàn)器提供各種信息。這樣,校驗(yàn)器就能得知下列信息中的任意一
種或全部(1)簽署人的仏值;(2) 4,,簽署人的暗門散列函數(shù)//2最 近的輸出;(3)",簽署人在散列函數(shù)輸出上的部分簽名;(4) m,要 被簽署的消息;以及/或(5)簽署人的完整簽名,包括r值。利用這些 信息,即使在消息M被得知或簽署之前,校驗(yàn)器也能開(kāi)始驗(yàn)證部分簽 名。例如,如果校驗(yàn)器已經(jīng)接收到了來(lái)自簽署人的上一個(gè)簽名,校驗(yàn) 器就會(huì)得知簽署人的&值。這使得校驗(yàn)器能夠預(yù)先計(jì)算出驗(yàn)證簽署人 的簽名所必須的除了兩個(gè)配對(duì)以外的所有配對(duì),而無(wú)需考慮簽署人在 分級(jí)結(jié)構(gòu)中處在多深的位置。校驗(yàn)器可以在它接收到i^,和c/之后完成 最后兩個(gè)配對(duì)的計(jì)算,其中[/是簽署人iv上的簽名。簽署人的完整簽
名可以利用點(diǎn)加來(lái)驗(yàn)證——校驗(yàn)器計(jì)算i>M =仏(MP。 +)并檢驗(yàn)該值
是否等于&,。這是唯一必須在線完成的驗(yàn)證步驟,因?yàn)樗俏ㄒ灰蕾?br>
于消息M的步驟。不必計(jì)算配對(duì)。因此,驗(yàn)證的在線部分是相當(dāng)高效 的。
使用簽名方案的系統(tǒng)
本文已經(jīng)說(shuō)明了符合本發(fā)明的各種涉及雙線性映射的簽名方案?,F(xiàn)在將參照?qǐng)D6來(lái)說(shuō)明一種能夠根據(jù)本發(fā)明的另 一個(gè)實(shí)施例實(shí)現(xiàn)這些 方案的系統(tǒng)。該系統(tǒng)包括多個(gè)終端602、 604、 606、 608,它們中的每 一個(gè)都與一個(gè)實(shí)體相關(guān)聯(lián),所述的實(shí)體能夠根據(jù)上述的簽名方案產(chǎn)生
或驗(yàn)證簽名。該系統(tǒng)還包括一個(gè)或多個(gè)私有密鑰生成器(PKG) 630, 它產(chǎn)生并向各個(gè)終端602、 604、 606和608分發(fā)私有密鑰。
每個(gè)終端都包含一個(gè)可與存儲(chǔ)器612雙向通信的處理器610。處 理器610執(zhí)行適當(dāng)?shù)某绦虼a來(lái)完成上述的步驟以產(chǎn)生或驗(yàn)證一個(gè)數(shù) 字簽名。處理器610還執(zhí)行適當(dāng)?shù)某绦虼a來(lái)產(chǎn)生要發(fā)送給其他終端 的信息。適當(dāng)?shù)某绦虼a可根據(jù)現(xiàn)有技術(shù)中已知的方法創(chuàng)建。存儲(chǔ)器 612儲(chǔ)存該程序代碼,以及在數(shù)字簽名的生成及驗(yàn)證過(guò)程中用到的中 間結(jié)果和其他信息。
提供了一個(gè)通信網(wǎng)絡(luò)620,實(shí)體602、 604、 606和608以及PKG 630可在該網(wǎng)絡(luò)上進(jìn)行通信。通信網(wǎng)絡(luò)620可以是各種普通形式的網(wǎng) 絡(luò),包括例如LAN計(jì)算機(jī)網(wǎng)絡(luò)、WAN計(jì)算機(jī)網(wǎng)絡(luò),以及/或提供合適 的通信網(wǎng)絡(luò)的移動(dòng)電話網(wǎng)絡(luò)。
工業(yè)應(yīng)用性
具體參照優(yōu)選實(shí)施例以及圖示實(shí)例詳細(xì)說(shuō)明了本發(fā)明,但是應(yīng)該 理解,在本發(fā)明的思想與范圍內(nèi)可以實(shí)現(xiàn)各種變化與修改。
上述的方法與系統(tǒng)主要可以應(yīng)用于密碼技術(shù)以及通過(guò)計(jì)算機(jī)網(wǎng) 絡(luò)或通過(guò)其他類型的系統(tǒng)與設(shè)備進(jìn)行的保密通信。所述的方法與系統(tǒng) 特別適合于在使用公共密鑰加密術(shù)的系統(tǒng)中作為產(chǎn)生及驗(yàn)證通信簽名 的方案。
因此,根據(jù)本發(fā)明公開(kāi)了能夠充分提供上述優(yōu)點(diǎn)的方法與系統(tǒng)。 盡管本發(fā)明是參照特定的范例實(shí)施例進(jìn)行說(shuō)明和展示的,但是并非要 讓本發(fā)明局限于那些范例實(shí)施例。本領(lǐng)域技術(shù)人員會(huì)意識(shí)到,可以作 出各種變化與修改,而不會(huì)偏離本發(fā)明的思想。因此希望將那些落入 附加權(quán)利要求以及等同范圍內(nèi)的所有這類變化與修改都納入到本發(fā)明 當(dāng)中。
2權(quán)利要求
1. 一種產(chǎn)生及校驗(yàn)一條數(shù)字消息的一個(gè)簽名的方法,所述的數(shù)字消息在一個(gè)簽署人與一個(gè)校驗(yàn)器之間傳遞,其中所述簽署人在一個(gè)分級(jí)結(jié)構(gòu)中比一個(gè)根PKG低t個(gè)級(jí)別,并且其中所述簽署人與一個(gè)簽署人ID元組(IDy1,...,IDyt)相關(guān)聯(lián),該ID元組包括與所述簽署人有關(guān)的身份信息IDyt,以及與所述分級(jí)結(jié)構(gòu)中所述根PKG和所述簽署人之間的(t-1)個(gè)低級(jí)PKGs中的每一個(gè)相關(guān)的身份信息IDyi,該方法包括為所述(t-1)個(gè)低級(jí)PKGs中的每一個(gè)產(chǎn)生一個(gè)低級(jí)公共密鑰;產(chǎn)生一個(gè)與所述簽署人相關(guān)的簽署人私有密鑰;選取一個(gè)隨機(jī)簽署人暗門密文;利用所述的隨機(jī)簽署人暗門密文產(chǎn)生一個(gè)公共散列密鑰;選取一條隨機(jī)消息和一個(gè)隨機(jī)數(shù);利用所述的隨機(jī)消息、隨機(jī)數(shù)、簽署人私有密鑰以及暗門密文產(chǎn)生一個(gè)離線簽名;識(shí)別出一個(gè)將所述離線簽名與所述數(shù)字消息相匹配的匹配隨機(jī)數(shù);以及至少利用所述的匹配隨機(jī)數(shù)和公共散列密鑰來(lái)確認(rèn)所述簽名與所述數(shù)字消息相匹配,從而驗(yàn)證所述的離線簽名。
2. —種產(chǎn)生及校驗(yàn)一條數(shù)字消息m的一個(gè)簽名s/g的方法,所述的數(shù)字消息m在一個(gè)簽署人與 一個(gè)校驗(yàn)器之間傳遞,其中所述簽署人在一個(gè)分級(jí)結(jié)構(gòu)中比一個(gè)根PKGs低,個(gè)級(jí)別,并且其中所述簽署人與一 個(gè)簽署人ID元組..,》相關(guān)聯(lián),該ID元組包括與所述簽署人有關(guān)的身份信息,以及與所述分級(jí)結(jié)構(gòu)中所述根PKG和所述簽署人之間的(卜l)個(gè)低級(jí)PKGs中的每一個(gè)相關(guān)的身份信息/ ,該方法包括產(chǎn)生諸元素的第一循環(huán)群Gi和諸元素的第二循環(huán)群G2; 選取一個(gè)雙線性、非退化的配對(duì)e,它能夠由所述第一循環(huán)群" 的兩個(gè)元素生成所述第二循環(huán)群G2的一個(gè)元素;選取所述第一循環(huán)群&的一個(gè)根生成器i>Q;選取一個(gè)隨機(jī)根密鑰生成密文&,該密文 ■y。只和所述才艮PICG相關(guān) 且只為所述才艮PKG所知;產(chǎn)生一個(gè)根密鑰生成參數(shù)a=VP。;選取一個(gè)第一函數(shù)//,,它能夠由第一串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群 Gi的一個(gè)元素;為所述,個(gè)低級(jí)PKGs中的每一個(gè)生成一個(gè)公共元素;,其中尸少,-A(/i^,.…為所述"個(gè)低級(jí)PKGs中的每一個(gè)選取一個(gè)低級(jí)密鑰生成密文 、,,其中每個(gè)低級(jí)密鑰生成密文 只為它相關(guān)的低級(jí)PKG所知;為所述m個(gè)低級(jí)PKGs中的每一個(gè)產(chǎn)生一個(gè)低級(jí)機(jī)密元素&,,其為所述m個(gè)低級(jí)PKGs中的每一個(gè)產(chǎn)生一個(gè)低級(jí)密鑰生成參數(shù)e 其中2,, = ~尸。,生成一個(gè)與所述簽署人有關(guān)的簽署人公共元素 尸,w"盧…, );生成一個(gè)與所述簽署人有關(guān)的簽署人機(jī)密元素選取一個(gè)隨機(jī)簽署人暗門密文、,e z"z;生成一個(gè)公共散列密鑰2、,=、尸。; 選取一個(gè)隨機(jī)消息m'和一個(gè)隨機(jī)數(shù),;簽署所述隨機(jī)消息m'以產(chǎn)生一個(gè)數(shù)字簽名w = ,其中iv-"((M'+厶v)戶。);通過(guò)確認(rèn))=, pM )nL efc(M,"來(lái)驗(yàn)證所述數(shù)字簽名&g,其中PM =A(MP。
3. 根據(jù)權(quán)利要求2所述的產(chǎn)生及驗(yàn)證一個(gè)簽名s/g的方法,其中 所述第一群^與所述第二群G2具有相同的素?cái)?shù)階《。
4. 根據(jù)權(quán)利要求2所述的產(chǎn)生及驗(yàn)證一個(gè)簽名的方法,其中所述第一循環(huán)群Gi是一個(gè)超奇異橢圓曲線或阿貝爾簇上的點(diǎn)的加性群,所述第二循環(huán)群G2則是一個(gè)有限域的乘性子群。
5. 根據(jù)權(quán)利要求2所述的產(chǎn)生及驗(yàn)證一個(gè)簽名s/g的方法,其中所述函數(shù)e是一種可行的配對(duì)。
6. —種用來(lái)生成一條數(shù)字消息的一個(gè)簽名的系統(tǒng),所述的數(shù)字消 息在一個(gè)簽署人與 一個(gè)校驗(yàn)器之間傳遞,其中所述簽署人在一個(gè)分級(jí) 結(jié)構(gòu)中比一個(gè)根PKG低,個(gè)級(jí)別,并且其中所述簽署人與 一個(gè)簽署人 ID元組(/i^,..., /"j相關(guān)聯(lián),該ID元組包括與所述簽署人有關(guān)的身份信息/Z),,,以及與所述分級(jí)結(jié)構(gòu)中所述根PKG和所述簽署人之間的 i)個(gè)低級(jí)PKGs中的每一個(gè)自相關(guān)的身份信息/ ,該系統(tǒng)包括 一個(gè)存儲(chǔ)器,該存儲(chǔ)器至少能夠儲(chǔ)存與(卜l)個(gè)低級(jí)PKGs中的每一個(gè)相關(guān)的 一個(gè)低級(jí)公共密鑰,以及與所述簽署人相關(guān)的 一個(gè)簽署人 私有密鑰;以及一個(gè)與所述存儲(chǔ)器通信的處理器,其中所述的處理器在離線狀態(tài) 下能夠選取一個(gè)隨機(jī)暗門密文、選取一條隨機(jī)消息和一個(gè)隨機(jī)數(shù)、并 利用所述的隨機(jī)消息、隨機(jī)數(shù)、簽署人私有密鑰和暗門密文來(lái)生成一 個(gè)離線簽名,并且其中所述的處理器在在線狀態(tài)下能夠識(shí)別出一個(gè)將 所述離線簽名與所述數(shù)字消息相匹配的匹配隨機(jī)數(shù)。
7. —種為數(shù)字消息產(chǎn)生一個(gè)簽名的方法,該方法包括 產(chǎn)生一個(gè)與基于身份的分級(jí)系統(tǒng)中的一個(gè)簽署人相關(guān)的簽署人私有密鑰,其中所述的簽署人私有密鑰與和所述簽署人相關(guān)聯(lián)的身份信息有關(guān);選取一個(gè)隨機(jī)簽署人暗門密文; 選取一條隨機(jī)消息和一個(gè)隨機(jī)數(shù);利用所述的隨機(jī)消息、隨機(jī)數(shù)、簽署人私有密鑰以及暗門密文產(chǎn) 生一個(gè)離線簽名;識(shí)別出 一個(gè)與數(shù)字消息的離線簽名相匹配的匹配隨機(jī)數(shù), 其中只有所述的識(shí)別步驟需要在線完成。
8. —種計(jì)算機(jī)實(shí)現(xiàn)的方法,用于在基于身份的分級(jí)系統(tǒng)中由簽署人在消息M上產(chǎn)生數(shù)字簽名,所述方法包括簽署人執(zhí)行以下操作(1) 在第一群A中,獲取所述簽署人的機(jī)密密鑰,所述機(jī)密密 鑰等于以下二者之和(a)與所述簽署人的直系父輩相關(guān)的值,和(b) 機(jī)密整數(shù)乘以與所述簽署人的身份相關(guān)的值;(2) 產(chǎn)生機(jī)密整數(shù)st, s,t;(3) 對(duì)群G!的預(yù)定元素Pe,產(chǎn)生值StP。和S,tP。,其中所述值 Po, StP。和s,tP。可被所述數(shù)字簽名的校驗(yàn)器獲得;(4) 產(chǎn)生消息M,和第一整數(shù)參數(shù)r,;(5) 產(chǎn)生值PM,作為整數(shù)系數(shù)與所述元素P。的乘積的函數(shù)h, 所述整數(shù)系數(shù)為至少所述消息M,和所述第一整數(shù)參數(shù)r,的線性組合, 其中從所述值st,獲取所述線性組合中的至少 一個(gè)系數(shù);(6) 在所述消息M,上產(chǎn)生簽名要素Sig,作為所述簽署人的機(jī) 密密鑰和值StPM,的線性組合;(7) 接收所述消息M;(8 )從所述消息M確定第二參數(shù)值r,使得在所述消息M和所 述第二參數(shù)值r上的函數(shù)h的值Pm等于Pm,,其中所述第二參數(shù)值r 是所述消息M上數(shù)字簽名的一部分。
9. 根據(jù)權(quán)利要求8所述的方法,其中Gi是循環(huán)群。
10. 根據(jù)權(quán)利要求9所述的方法,其中P。是所述第一群Gi的生成器。
11. 根據(jù)權(quán)利要求10所述的方法,其中所述第一群具有素?cái)?shù)階。
12. 根據(jù)權(quán)利要求8所述的方法,其中所述簽署人的機(jī)密密鑰等 于簽署人和所述分級(jí)系統(tǒng)中除了根級(jí)以外的所述簽署人之上全部級(jí)別 i的值SwPi之和,其中每個(gè)Sw是來(lái)自所述校驗(yàn)器的保密整數(shù)并且每個(gè) Pi與所述簽署人或所述簽署人在級(jí)別i的父輩的身份相關(guān)聯(lián)。
13. 根據(jù)權(quán)利要求8所述的方法,其中所述(5)的整數(shù)系數(shù)等 于M,+r,s,t。
14. 根據(jù)權(quán)利要求8所述的方法,其中Sig是所述簽署人的機(jī)密密鑰和所述值StPM,之和。
15. 根據(jù)權(quán)利要求8所述的方法,其中在(6)之后執(zhí)行所述操 作(7)和(8)。
16. —種計(jì)算機(jī)實(shí)現(xiàn)的方法,用于在分級(jí)的基于身份的系統(tǒng)中校 驗(yàn)簽署人的消息M上的數(shù)字簽名,所述方法包括校驗(yàn)器執(zhí)行以下操 作(1) 為所述分級(jí)的基于身份的系統(tǒng)中位于或高于所述簽署人級(jí) 別的每個(gè)級(jí)別i,獲取(a)群Gi的元素Qi,每個(gè)元素Qi是具有未 提供給所述校驗(yàn)器的機(jī)密整數(shù)系數(shù)的群Gi的預(yù)定元素P。的整數(shù)倍, 和(b)與所述簽署人或所述簽署人的級(jí)別i的父輩的身份相關(guān)聯(lián)的值Pi;(2) 獲取簽名要素U、 PM,,其為第一群Gi的元素;(3) 對(duì)于GiXGi到第二群G2的預(yù)定的雙線性非退化映射卜確 定e,,。等于值鄉(xiāng),,iV)與除了根級(jí)以外的全部級(jí)別i的值S(e,—,,戶,)的 乘積,其中級(jí)別i-l是相對(duì)于級(jí)別i的緊鄰在前的更高級(jí);(4) 接收所述消息M和整數(shù)參數(shù)r,并且確認(rèn)PM,等于預(yù)定函 數(shù)h在具有從消息M獲得的整數(shù)系數(shù)的所述第一群Gi的預(yù)定元素和 和參數(shù)r的線性組合上的值。
17. 根據(jù)權(quán)利要求16所述的方法,其中(4)中所述線性組合等 于MPd+rQ,t,其中Q,t獨(dú)立于所述消息M。
18. 根據(jù)權(quán)利要求16所述的方法,其中(3)后執(zhí)行所述操作(4)。
19. 根據(jù)權(quán)利要求16所述的方法,其中所述Gi為循環(huán)群。
20. 根據(jù)權(quán)利要求16所述的方法,其中P。為所述第一群Gi的生成器。
21. 根據(jù)權(quán)利要求16所述的方法,其中所述第一群Gi具有素?cái)?shù)階。
22. 根據(jù)權(quán)利要求16所述的方法,其中所述第二群G2為循環(huán)群。
23. —種系統(tǒng),包括一個(gè)或多個(gè)計(jì)算機(jī)處理器和存儲(chǔ)器,所述存 儲(chǔ)器存儲(chǔ)由所述一個(gè)或多個(gè)計(jì)算機(jī)處理器來(lái)執(zhí)行的程序代碼,所述程 序代碼用于執(zhí)行權(quán)利要求1-22之一所述的方法。
全文摘要
提供了用于產(chǎn)生并驗(yàn)證數(shù)字消息的簽名的方法和系統(tǒng),所述數(shù)字消息在簽署者和驗(yàn)證器之間通信。使用雙線性映射,諸如Weil或Tate配對(duì)(104),這些方法和系統(tǒng)能夠產(chǎn)生并驗(yàn)證高效的多簽名、基于身份的團(tuán)體簽名、分級(jí)代理簽名以及分級(jí)在線/離線簽名。
文檔編號(hào)G09C1/00GK101453332SQ20081018473
公開(kāi)日2009年6月10日 申請(qǐng)日期2003年4月15日 優(yōu)先權(quán)日2002年4月15日
發(fā)明者克雷格·B·金特里 申請(qǐng)人:株式會(huì)社Ntt都科摩