專利名稱:基于橢圓曲線的自認(rèn)證簽名方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼領(lǐng)域的數(shù)字簽名技術(shù),自認(rèn)證技術(shù),通過(guò)結(jié)合橢圓曲線密 碼技術(shù),并且利用計(jì)算機(jī)和其他類型的通訊設(shè)備,通過(guò)網(wǎng)絡(luò)或其他途徑實(shí)現(xiàn)自 認(rèn)證簽名系統(tǒng)的設(shè)計(jì),從而可以作為構(gòu)造安全,公平電子商務(wù)、電子政務(wù)等的 模塊。
背景技術(shù):
數(shù)字簽名方案中的私鑰通常情況下,是由實(shí)體自己選取,并且秘密保管, 所產(chǎn)生的相應(yīng)公鑰需要由一個(gè)認(rèn)證權(quán)威機(jī)構(gòu)產(chǎn)生一個(gè)證書來(lái)認(rèn)證。在簽名過(guò)程. 中,簽名實(shí)體利用其私鑰可以對(duì)任何消息進(jìn)行簽名,當(dāng)一個(gè)驗(yàn)證者驗(yàn)證一個(gè)簽 名的有效性時(shí),首先驗(yàn)證簽名者公鑰證書的有效性,再利用簽名者的公鑰來(lái)驗(yàn)
證消息簽名的有效性。在這種傳統(tǒng)的PKI公鑰體制下,認(rèn)證權(quán)威機(jī)構(gòu)需要對(duì) 用戶公鑰證書的產(chǎn)生、更新、撤銷和分發(fā)等復(fù)雜操作進(jìn)行管理,從而給認(rèn)證權(quán) 威機(jī)構(gòu)帶來(lái)了沉重的負(fù)擔(dān),也增大了驗(yàn)證者驗(yàn)證的計(jì)算量。而基于身份的公鑰 體制,采用用戶的身份,如IP地址或email地址等作為用戶的公鑰,刪除 了傳統(tǒng)PKI公鑰體制中公鑰證書的復(fù)雜管理,然而,用戶的私鑰需要一個(gè)私 鑰產(chǎn)生中心(PKG)來(lái)產(chǎn)生,用戶必須完全信任該P(yáng)KG,因而,基于身份的 公鑰體制存在著密鑰托管問(wèn)題。在現(xiàn)實(shí)社會(huì)中,這種信任無(wú)法完全保證。
為了刪除傳統(tǒng)PKI體制中認(rèn)證權(quán)威機(jī)構(gòu)對(duì)公鑰證書的復(fù)雜管理,以及基
于身份公鑰體制中的密鑰托管問(wèn),我們提出一種自認(rèn)證簽名系統(tǒng)。在該系統(tǒng)中,
用戶私鑰的產(chǎn)生是由用戶和權(quán)威認(rèn)證機(jī)構(gòu)共同完成。
本發(fā)明提出的基于橢圓曲線的自認(rèn)證的簽名方案,區(qū)別于傳統(tǒng)公鑰密碼體
制下數(shù)字簽名方案,也不同于基于身份公鑰體制下簽名方案,它刪除了這兩種公鑰體制的弊端并繼承了它們的優(yōu)勢(shì)。在這種方案中,簽名實(shí)體的私鑰由兩部
分組成, 一部分是由簽名實(shí)體在Zp中隨機(jī)一個(gè)元素來(lái)產(chǎn)生,另一部分是由認(rèn)證
授權(quán)機(jī)構(gòu)通過(guò)自己的公/私鑰對(duì)、簽名實(shí)體的身份和公鑰及其系統(tǒng)參數(shù)來(lái)產(chǎn)生, 這樣不僅可以使得簽名實(shí)體的公鑰被隱式的驗(yàn)證,而且可以有效的解決密鑰的 托管問(wèn)題,同時(shí),也刪除了對(duì)權(quán)威認(rèn)證機(jī)構(gòu)對(duì)公鑰證書的復(fù)雜管理。有效的 限制了權(quán)威認(rèn)證機(jī)構(gòu)的權(quán)利的濫用,杜絕了惡意的權(quán)威認(rèn)證機(jī)構(gòu)以簽名實(shí)體的 名義來(lái)偽造消息簽名。簽名實(shí)體只有在權(quán)威認(rèn)證機(jī)構(gòu)的幫助下,才能獲得有效 的簽名私鑰。因此,不了解密碼知識(shí)的實(shí)體也可以從這種簽名方案中受益。
橢圓曲線是代數(shù)幾何中最重要的一類研究對(duì)象,其中橢圓曲線中的雙線
性對(duì)即代數(shù)曲線的Wdl和Tate對(duì)是代數(shù)幾何研究的重要工具。橢圓曲線上的 離散對(duì)數(shù)問(wèn)題遠(yuǎn)難于離散對(duì)數(shù)問(wèn)題,在橢圓曲線密碼系統(tǒng)中單位比特強(qiáng)度要遠(yuǎn) 高于傳統(tǒng)的離散對(duì)數(shù)系統(tǒng)。因此在使用較短的密鑰的情況下,ECC可以達(dá)到于 DL系統(tǒng)相同的安全性。這帶來(lái)的好處就是計(jì)算參數(shù)更小,密鑰更短,運(yùn)算速 度更快,簽名也更加短小。因此橢圓曲線密碼尤其適用于處理器速度、帶寬及 功耗受限的場(chǎng)合。目前,許多基于橢圓曲線的數(shù)字簽名方案被提出,尤其是許 多基于身份ID的數(shù)字簽名。隨著數(shù)字簽名的發(fā)展,為了能夠滿足不同的實(shí)際 情況的要求,出現(xiàn)了適應(yīng)不同情況的數(shù)字簽名方案。但關(guān)于簽名密鑰的產(chǎn)生, 密鑰的托管卻一直是研究的難點(diǎn)和重點(diǎn)。
1985年Neal Koblitz和Victor Miller分別提出將橢圓曲線用于公鑰密碼系 統(tǒng),并用橢圓曲線實(shí)現(xiàn)了已存在的公鑰密碼算法?;跈E圓曲線離散對(duì)數(shù)問(wèn)題 難解性的密碼算法被稱為橢圓曲線密碼算法(Elliptic Curve Cryptography簡(jiǎn)稱 ECC),成為國(guó)際密碼界所廣泛接受的公鑰密碼算法。
US4200770給出了 一個(gè)可以在公開(kāi)信道中交換密鑰的方法和設(shè)備,這個(gè)方 法稱為公開(kāi)密鑰交換或稱為Diffie-Hellman密鑰交換方法。該專利使得通信雙 方使用一個(gè)模函數(shù)協(xié)商和傳遞他們的秘密信息,解決了設(shè)計(jì)安全密碼系統(tǒng)的一些密鑰管理方面的麻煩。公鑰密碼系統(tǒng)中,每個(gè)實(shí)體擁有自己的私鑰和公鑰, 私鑰只有實(shí)體自己知道,公鑰則由系統(tǒng)管理,不需要阻止公鑰的公開(kāi),由于它 的秘密在安全通信和數(shù)字簽名中是不必要的。但是,公鑰密碼體制面臨著熟悉 的認(rèn)證問(wèn)題,例如, 一個(gè)實(shí)體提供給簽名實(shí)體有效的,但是錯(cuò)誤的公鑰,簽名 實(shí)體利用該公鑰將秘密信息編碼,編碼將有可能被簽名實(shí)體以外的實(shí)體解碼, 或者騙取簽名實(shí)體接受含有無(wú)效簽名的信息。最熟悉的認(rèn)證公鑰的方法是利用
明確的證書,像X.509。當(dāng)某個(gè)實(shí)體要使用其他實(shí)體的公鑰時(shí),前者必須要事 先驗(yàn)證該公鑰的真實(shí)性。攻擊者要想獲得傳遞的秘密信息,必須解決離散對(duì)數(shù) 問(wèn)題,如果使用的參數(shù)足夠大,解離散對(duì)數(shù)問(wèn)題是個(gè)難解的問(wèn)題。
在傳統(tǒng)公鑰PKI框架下,用戶的公鑰是一串沒(méi)有意義的字符串v并且有 一個(gè)公鑰證書與之相關(guān)聯(lián)。為了簡(jiǎn)化證書的管理,在1984年Shamir提出了基 于身份的公鑰密碼系統(tǒng)。在基于身份的公鑰是由簽名實(shí)體的身份產(chǎn)生,相應(yīng)的 私鑰由一個(gè)值得信賴的認(rèn)證授權(quán)機(jī)構(gòu)產(chǎn)生。顯然,這種體制存在著一個(gè)致命問(wèn) 題密鑰托管問(wèn)題。認(rèn)證授權(quán)機(jī)構(gòu)了解所有簽名實(shí)體的私鑰,對(duì)于一個(gè)不誠(chéng)實(shí) 的認(rèn)證授權(quán)機(jī)構(gòu),它可以任何偽造簽名實(shí)體的簽名。在1991年,Girault提出 的自認(rèn)證的公鑰體制,作為除了基于身份的密碼系統(tǒng)和傳統(tǒng)的公鑰密碼體系以 外的一種可選公鑰體制。該公鑰體制不僅刪除了傳統(tǒng)公鑰體制下的復(fù)雜的證書 管理,也克服了基于身份密碼系統(tǒng)中的密鑰托管問(wèn)題。簽名實(shí)體的私鑰由認(rèn)證 授權(quán)機(jī)構(gòu)和簽名實(shí)體本身聯(lián)合產(chǎn)生,有效的杜絕了不誠(chéng)實(shí)認(rèn)證授權(quán)機(jī)構(gòu)的非法 操作;在應(yīng)用中,簽名實(shí)體的公鑰證書是以隱式方式被驗(yàn)證。在1997年P(guān)etersen 和Hoster將自認(rèn)證的公鑰擴(kuò)展到基于離散對(duì)數(shù)的密碼系統(tǒng)中,隨之也出現(xiàn)了很 多基于離散對(duì)數(shù)的自認(rèn)證的簽名方案,但是由于離散對(duì)數(shù)的運(yùn)算量比較大,計(jì) 算比較復(fù)雜,對(duì)于密鑰的選取比較麻煩,所以這類簽名方案不是十分有效,自 認(rèn)證公鑰體制的優(yōu)勢(shì)沒(méi)有體現(xiàn)出來(lái)。相對(duì)于離散對(duì)數(shù),橢圓曲線的計(jì)算量小, 運(yùn)算速度快,但遺憾的是利用橢圓曲線構(gòu)造自認(rèn)證的簽名方案還沒(méi)有正式的給出盧格定義,因此需要定義基于橢圓曲線的自認(rèn)證的簽名方案。
一種有效的安全假設(shè),該安全假設(shè)是構(gòu)造基于橢圓曲線的自認(rèn)證的簽名方
案的安全基礎(chǔ)。對(duì)于構(gòu)造安全的簽名方案,通常利用的是強(qiáng)的Diffie-Hellman 假設(shè)(strong Diffie-Hellman(SDH) assumption)和計(jì)算性Diffie-Hellman假設(shè) (Computational Diffie-Hellman(CDH) assumption),為了構(gòu)造一種安全有效的 基于橢圓曲線的自認(rèn)證簽名方案,本發(fā)明給出了一種新的,可證明安全的假設(shè), 我們稱它為強(qiáng)的Diffie-Hellman假設(shè)+可計(jì)算的Diffie-Hellman假設(shè),該假設(shè)將 兩則安全假設(shè)相結(jié)合,利用可計(jì)算的Diffie-Hellman假設(shè)的困難性,說(shuō)明與所 構(gòu)造假設(shè)的困難性介于熟悉的兩假設(shè)之間,是構(gòu)造安全有效的基于橢圓曲線的 自認(rèn)證的簽名方案的有效工具。
一種有效的基于橢圓曲線的自認(rèn)證密鑰產(chǎn)生方法。通常情況下,簽名實(shí)體 的私鑰只有自己知道,并且由私鑰所產(chǎn)生的公鑰是一個(gè)隨機(jī)的字符串,不便于 記憶,并且該公鑰需要一個(gè)權(quán)威認(rèn)證機(jī)構(gòu)來(lái)進(jìn)行認(rèn)證。隨著電子商務(wù)與Internet 技術(shù)的發(fā)展,計(jì)算能力小、帶寬與內(nèi)存有限的移動(dòng)設(shè)備和便攜設(shè)備日益得到普 及,如何設(shè)計(jì)有效的簽名技術(shù)和簡(jiǎn)化復(fù)雜的管理越來(lái)越迫切.1991年Girault的 文章"Self-certified public keys(自認(rèn)證公鑰)"被發(fā)表在Pro. of the Eurocrypt,94, 491-497,提出了自認(rèn)證公鑰的構(gòu)造及產(chǎn)生,但對(duì)于私鑰的產(chǎn)生及如何構(gòu)造基于 橢圓曲線的自認(rèn)證私鑰,沒(méi)有給出具體的描述。自認(rèn)證簽名系統(tǒng),不僅可以簡(jiǎn) 化對(duì)公鑰證書的管理和刪除密鑰托管問(wèn)題,而且也可以減少驗(yàn)證者對(duì)簽名驗(yàn)證 的計(jì)算量。而橢圓曲線密碼具有在同等安全強(qiáng)度下,簽名長(zhǎng)度短特點(diǎn);因此, 我們需要構(gòu)造一種安全有效的基于橢圓曲線的自認(rèn)證密鑰的方法。
一種有效的自認(rèn)證簽名系統(tǒng),即一個(gè)簽名實(shí)體利用私鑰對(duì)消息M產(chǎn)生簽 名,而驗(yàn)證者可以利用用戶的身份ID和權(quán)威認(rèn)證中心的公鑰Pea來(lái)對(duì)這個(gè)消 息簽名進(jìn)行驗(yàn)證。1997年P(guān)etersen和Hoster將自認(rèn)證的公鑰擴(kuò)展到基于離散對(duì) 數(shù)的密碼系統(tǒng)中,文章 "Self-certified keys-concept and application(自認(rèn)證的密鑰-概念和應(yīng)用)"發(fā)表在Pro. of the Communication and Multimedia Security'97, 102-116。但與橢圓曲線相比,離散對(duì)數(shù)的計(jì)算量,運(yùn)算速度都不理想,該簽名 方法可以使簽名實(shí)體在認(rèn)證授權(quán)機(jī)構(gòu)的幫助下,獲得有效的簽名密鑰,并實(shí)現(xiàn) 對(duì)消息完的簽名。但是,還未出現(xiàn)基于橢圓曲線的自認(rèn)證的簽名方案的形式化 定義,因此,需要一種基于橢圓曲線的自認(rèn)證的簽名方法。
一種有效的聚合簽名方法,即簽名實(shí)體對(duì)多條消息簽名,驗(yàn)證者可以對(duì)這 些消息簽名進(jìn)行同時(shí)驗(yàn)證而不是分別驗(yàn)證。目前存在著許多簽名方案,但這些 方案都不同程度的存在缺陷,比如,驗(yàn)證者對(duì)對(duì)多個(gè)消息簽名驗(yàn)證時(shí),簽名的 長(zhǎng)度會(huì)隨著消息簽名的增加而變大,計(jì)算量,運(yùn)算負(fù)擔(dān)也相應(yīng)變大等。需要一 種能夠滿足驗(yàn)證者能夠?qū)Χ鄺l消息簽名驗(yàn)證的簽名方法。因此,需要一種有效 的基于橢圓曲線的自認(rèn)證的聚合簽名方法。
一種基于橢圓曲線的在線/離線自認(rèn)證簽名方法,能夠在線/離線狀態(tài)下, 為簽名實(shí)體產(chǎn)生消息簽名的簽名方案。在實(shí)際應(yīng)用中,在線時(shí)間比簽名時(shí)間重 要,并不是所有簽名過(guò)程都是在線狀態(tài)下完成的,如果能夠在離線狀態(tài)下,仍 能完成簽名,則可以極大的提高簽名效率,節(jié)省不必要的浪費(fèi)。2001年A. Shamir, Y. Tauman的文章"Improved online/offline signature schemes(改進(jìn)的在線/離線 簽名方案)"發(fā)表在Advances in crypt,2001, 355-367。然而,基于橢圓曲線的, 能夠在/離線狀態(tài)下同時(shí)完成自認(rèn)證簽名的方法卻沒(méi)有出現(xiàn)。因此,需要一種基 于橢圓曲線的在線/離線自認(rèn)證的簽名方法,在/離線狀態(tài)下都可以對(duì)消息進(jìn)行 處理,產(chǎn)生自認(rèn)證簽名的簽名方法。
因此,本發(fā)明的目的之一是提供一種有效的SDH+CDH假設(shè)。本發(fā)明的 目的之二是提供一種有效的基于橢圓曲線的自認(rèn)證簽名方法。本發(fā)明的目的之 三是提供一種有效的,基于橢圓曲線的自認(rèn)證的聚合簽名方法。本發(fā)明的目的 之四是提供一種基于橢圓曲線的在/離線自認(rèn)證簽名方法。 一種困難性低于 Computational Diffie-Hellman(CDH) Assumption而高于q-Strong Diffie-HellmanAssumption的新的假設(shè)q-SDH+CDH Assumption,該假設(shè)具體內(nèi)容包括 選取定義的第一個(gè)循環(huán)群Gi;
選取第一個(gè)循環(huán)群G'中的一個(gè)q元數(shù)組化(…,g^和一個(gè)數(shù)組^,g「、; 利用q-SDH Assumption和CDH Assumption假設(shè)來(lái)選取^^ z;,使得在
多項(xiàng)式時(shí)間內(nèi)以不可忽略的概率找到^^,。是不可能的。
.一種基于橢圓曲線的,產(chǎn)生關(guān)于消息M的自認(rèn)證簽名Sig的方法以及驗(yàn) 證, 一個(gè)簽名實(shí)體對(duì)消息M產(chǎn)生簽名^,最后, 一個(gè)驗(yàn)證者利用驗(yàn)證算法對(duì)該 簽名^進(jìn)行驗(yàn)證,具體內(nèi)容包括
在系統(tǒng)初始化階段,選取第一循環(huán)群G'和第二循環(huán)群A (階數(shù)均為大素?cái)?shù)
P);
選取一個(gè)非退化的雙線性對(duì)映射e,滿足能夠由G'中的兩個(gè)元素映射到《 中的一個(gè)元素;
選取第一循環(huán)群G,的生成元g;
隨機(jī)選取模p的剩余類Zp中的一個(gè)元素"作為CA的私鑰,并且產(chǎn)生^ 作為CA公鑰;
用戶隨機(jī)選取模p的剩余類Zp中的一個(gè)元素^"^,…,"M乍為"的部分私 鑰,并且產(chǎn)生C^ = g" ,& = g('〉作為簽名實(shí)體R的部分公鑰;
選取第一哈希函數(shù)"',能由第一串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群Gi中的一個(gè)元
素;
選取第二哈希函數(shù)A,.能由第二串二進(jìn)制數(shù)產(chǎn)生剩余類^中的一個(gè)元素; 選取第三哈希函數(shù)H,能由第三串二進(jìn)制數(shù)產(chǎn)生剩余類&中的一個(gè)元素;
權(quán)烕授權(quán)中心CA和用戶"進(jìn)行交互操作來(lái)產(chǎn)生用戶"'來(lái)產(chǎn)生用戶的私 鑰。當(dāng)CA接收到用戶"'發(fā)送來(lái)的信息(IDi,Pi), CA禾擁它的公鑰和(IDi,Pi) 作為第一哈希函數(shù)值的輸入來(lái)計(jì)算^=//1(^,^,。,然后再利用它的私鑰來(lái)產(chǎn)生用戶的部分私鑰《=(W/aW')并返回給用戶"-。
當(dāng)用戶"'接收到部分私鑰《以后,禾u用w,^,w)通過(guò)下面的等式來(lái)驗(yàn)
證"'的部分私鑰《的有效性 e(仏g,.叫),,g)。
最后,簽名實(shí)體"'的私鑰為",化其中(1=1,2,"',11);
在簽名階段,為了產(chǎn)生對(duì)消息M的簽名,用戶"'通過(guò)自認(rèn)證簽名算法來(lái)
產(chǎn)生一個(gè)簽名。具體如下
1. 隨機(jī)選取模p的剩余類Zp中的一個(gè)元素S;
3.產(chǎn)生消息M的自認(rèn)證的簽名sig-^,W
在簽名驗(yàn)證階段,把sig-W,^和消息M作為驗(yàn)證裝置的一個(gè)輸入,該驗(yàn)證
裝置工作如下
1、驗(yàn)證用戶公鑰"的真實(shí)性,步驟為通過(guò)確認(rèn)《,U—^,=,,力來(lái) 驗(yàn)證公鑰的真實(shí)性;
2、 通過(guò)確認(rèn)《,,",W = ,A岸2^f"'。:n來(lái)驗(yàn)證自認(rèn)證簽名Sig=W ,W 的有效性。
一種基于橢圓曲線的,產(chǎn)生關(guān)于消息的自認(rèn)證聚合簽名Sig的方法以及驗(yàn) 證,簽名實(shí)體可以對(duì)不同的消息進(jìn)行簽名,最后把這些消息簽名聚合生成最終 簽名,在驗(yàn)證時(shí),驗(yàn)證者只要驗(yàn)證聚合所得到的簽名,就意味著所有的消息簽 名是正確的,通過(guò)該方法可以使簽名驗(yàn)證的計(jì)算量和速度比較所有單個(gè)消息簽 名的驗(yàn)證有很大提高,且聚合后的簽名長(zhǎng)度比所有單個(gè)簽名的長(zhǎng)度明顯縮短, 該系統(tǒng)包括
一個(gè)認(rèn)證授權(quán)機(jī)構(gòu)和簽名實(shí)體進(jìn)行一個(gè)交互操作來(lái)簽名實(shí)體的簽名密鑰; 簽名實(shí)體利用所產(chǎn)生的簽名密鑰按照上面的自認(rèn)證加密簽名方法來(lái)對(duì)不同消息產(chǎn)生簽名。最后,簽名實(shí)體把對(duì)不同消息產(chǎn)生的簽名聚合成一個(gè)最終的簽名。 當(dāng)一個(gè)驗(yàn)證者驗(yàn)證幾個(gè)不同消息的聚合簽名時(shí),他利用預(yù)先選定的雙線性 對(duì)映射和選定的哈希函數(shù)來(lái)驗(yàn)證聚合簽名的有效性,如果該聚合簽名滿足驗(yàn)證 等式,這就意味著這幾個(gè)不同消息的簽名是有效的。
一個(gè)可以由一個(gè)簽名實(shí)體,對(duì)一個(gè)消息M產(chǎn)生簽名的offline/online系統(tǒng), 該系統(tǒng)分為在線和離線兩個(gè)階段。該簽名實(shí)體在離線(offline)狀態(tài)下,完成 簽名的主要運(yùn)算過(guò)程;在在線狀態(tài)下,簽名實(shí)體基于離線狀態(tài)下的計(jì)算結(jié)果, 使用較少的計(jì)算量來(lái)產(chǎn)生消息M簽名。該系統(tǒng)包括
一個(gè)認(rèn)證授權(quán)構(gòu)和簽名實(shí)體進(jìn)行交互操作,產(chǎn)生簽名實(shí)體的簽名密鑰,每 個(gè)簽名實(shí)體對(duì)應(yīng)各自的不同簽名密鑰,簽名實(shí)體與認(rèn)證授權(quán)機(jī)構(gòu)共同產(chǎn)生簽名 實(shí)體的簽名私鑰;
一個(gè)與認(rèn)證授權(quán)機(jī)構(gòu),簽名實(shí)體相互傳遞的處理器,該處理器能夠利用預(yù) 先選定的哈希函數(shù),認(rèn)證機(jī)構(gòu)或者簽名實(shí)體的輸入生成一個(gè)函數(shù)值,并且利用 該函數(shù)值和簽名實(shí)體的私鑰,相關(guān)公鑰生成簽名實(shí)體的自認(rèn)證簽名;而且,該 處理器能夠在離線狀態(tài)下,隨機(jī)的選擇秘密信息和一個(gè)隨機(jī)數(shù),利用預(yù)先選定 的函數(shù),簽名實(shí)體的私鑰,生成一個(gè)離線簽名,在在線簽名階段,該處理器能 夠使用在離線狀態(tài)下所生成的離線簽名與待簽消息M,共同生成一個(gè)在線自認(rèn) 證簽名;
一個(gè)與簽名驗(yàn)證者相互傳遞的處理器,該處理器能夠利用預(yù)先選定的雙線 性對(duì)映射,選定的哈希函數(shù),上面處理器生成的在線自認(rèn)證簽名進(jìn)行驗(yàn)證,如 果通過(guò)驗(yàn)證,確定該簽名的真實(shí)性。
發(fā)明內(nèi)容
本發(fā)明給出了可靠的理論基礎(chǔ),提出了安全,有效且快速的密鑰,簽名產(chǎn) 生方法。本發(fā)明的目的在于提出一種新的有效橢圓曲線自認(rèn)證簽名方法。該簽名方 法基于橢圓曲線離散對(duì)數(shù)問(wèn)題,該問(wèn)題具有高復(fù)雜性,因而具有單位安全強(qiáng)度 更高的特定,可大大縮短具有相同安全強(qiáng)度的數(shù)字簽名長(zhǎng)度,加快簽名速度。
本發(fā)明的內(nèi)容之一 ,提出了有效的SDH+CDH假設(shè)。利用解決強(qiáng)SDH和CDH 假設(shè)的困難性,將兩者的困難性相結(jié)合,構(gòu)造了有效的SDH+CDH假設(shè)。在多 項(xiàng)式時(shí)間內(nèi)解決SDH假設(shè)的概率是可以忽略的,在多項(xiàng)式時(shí)間內(nèi)解決CDH假設(shè) 的概率也是可以忽略的,由于提出假設(shè)的困難性低于解決CDH假設(shè),而高于解 決SDH假設(shè),得知在多項(xiàng)式時(shí)間內(nèi)解決SDH+CDH假設(shè)的概率也是可以忽略的。 利用SDH+CDH假設(shè),可以產(chǎn)生有效的基于橢圓曲線的自認(rèn)證簽名方案,構(gòu)造 方案的安全模型和安全性證明。
本發(fā)明的內(nèi)容之二,提出了一種有效的基于橢圓曲線的自認(rèn)證密鑰產(chǎn)生方 法。傳統(tǒng)的公鑰系統(tǒng)中,用戶的私鑰可以自己產(chǎn)生或由一個(gè)認(rèn)證機(jī)構(gòu)產(chǎn)生,然 后,生成相應(yīng)的公鑰,這個(gè)公鑰是一個(gè)隨機(jī)的字符串, 一般不容易記憶;同時(shí) 相應(yīng)的公鑰需要一個(gè)認(rèn)證機(jī)構(gòu)來(lái)認(rèn)證該公鑰的有效性。因此,帶來(lái)的問(wèn)題是 當(dāng)驗(yàn)證簽名時(shí),驗(yàn)證者首先需要公鑰的有效性,然后,再利用該公鑰來(lái)驗(yàn)證簽 名的有效性。顯然,不適合目前流行的低計(jì)算、低計(jì)算的移動(dòng)設(shè)備。本發(fā)明中
簽名實(shí)體的私鑰只能在認(rèn)證授權(quán)機(jī)構(gòu)的幫助下才能完成。具體如下產(chǎn)生第一
循環(huán)群和第二循環(huán)群,選出一個(gè)非退化的雙線性映射,使得由第一循環(huán)群中的 兩個(gè)元素能夠得到第二循環(huán)群中的一個(gè)元素。選出第一循環(huán)群的生成元,并產(chǎn)
生第二循環(huán)群的生成元。隨機(jī)選取剩余類Zq中一個(gè)的元素,生成認(rèn)證授權(quán)機(jī)構(gòu) 的密鑰。簽名實(shí)體在剩余類Zq中隨機(jī)選擇一個(gè)數(shù)作為部分私鑰,并產(chǎn)生相應(yīng)的 部分公鑰,認(rèn)證授權(quán)機(jī)構(gòu)利用它的私鑰、簽名實(shí)體的身份和第一,第二哈希函 數(shù),生成簽名實(shí)體的另外的部分私鑰,最后,簽名實(shí)體可以將兩部分密鑰合在 一起,產(chǎn)生簽名密鑰。本發(fā)明的內(nèi)容之三,提出了一種有效的基于橢圓曲線的自認(rèn)證簽名的方 法。具體如下產(chǎn)生第一循環(huán)群和第二循環(huán)群,選出一個(gè)非退化的雙線性映射, 使得由第一循環(huán)群中的兩個(gè)元素能夠得到第二循環(huán)群中的一個(gè)元素。選出第一 循環(huán)群的生成元,并產(chǎn)生第二循環(huán)群的生成元。隨機(jī)選取剩余類Zq中一個(gè)的元 素,生成認(rèn)證授權(quán)機(jī)構(gòu)的密鑰。簽名實(shí)體選取的部分私鑰,產(chǎn)生相應(yīng)的部分公 鑰,認(rèn)證授權(quán)機(jī)構(gòu)利用它的私鑰、用戶的身份和第一,第二哈希函數(shù),生成簽 名實(shí)體的另外的部分私鑰。簽名實(shí)體利用簽名私鑰,選擇隨機(jī)數(shù)、利用哈希函 數(shù)和自己的身份與認(rèn)證授權(quán)機(jī)構(gòu)的公鑰來(lái)對(duì)消息進(jìn)行簽名。自認(rèn)證簽名可以通 過(guò)非退化的雙線性映射,認(rèn)證授權(quán)機(jī)構(gòu)的公鑰和簽名實(shí)體的身份,以及哈希函 數(shù)來(lái)完成簽名的驗(yàn)證。
本發(fā)明的內(nèi)容之四,提出了一種有效的基于橢圓曲線的,聚合的自認(rèn)證簽 名方法。簽名實(shí)體利用簽名密鑰對(duì)不用的消息進(jìn)行簽名,然后,把這些不同的 消息簽名聚合起來(lái),生成一個(gè)聚合簽名。然后,該聚合簽名可以通過(guò)非退化的 雙線性映射,認(rèn)證授權(quán)機(jī)構(gòu)的公鑰和簽名實(shí)體的身份,及選定的哈希函數(shù)來(lái)完 成簽名的驗(yàn)證。
本發(fā)明的內(nèi)容之五,提出了一種基于橢圓曲線的在/離線自認(rèn)證的簽名方 法,能夠在/離線狀態(tài)下,為簽名實(shí)體產(chǎn)生消息簽名。利用預(yù)先選定的函數(shù),認(rèn) 證機(jī)構(gòu)或者簽名實(shí)體的輸入生成消息函數(shù)值,并且利用消息函數(shù)值和簽名實(shí)體 的私鑰,認(rèn)證授權(quán)機(jī)構(gòu)的公鑰生成簽名實(shí)體的自認(rèn)證簽名;在線時(shí)間通常比簽 名時(shí)間更重要,離線狀態(tài)下,隨機(jī)的選擇秘密信息和一個(gè)隨機(jī)數(shù),隨機(jī)選擇一 條消息,利用預(yù)先選定的函數(shù),簽名實(shí)體的私鑰生成一個(gè)離線簽名,在以后的 處理中,該處理器能夠在在線狀態(tài)下,能夠利用識(shí)別出與所給消息相匹配的簽 名中所包含的隨機(jī)數(shù)來(lái)認(rèn)證。因此,需要一種基于橢圓曲線的在/離線自認(rèn)證的 簽名方法,來(lái)完成對(duì)消息簽名的簽名方法。
圖l是一張流程圖,該圖介紹了本發(fā)明的內(nèi)容之二的操作過(guò)程,描述了如
何產(chǎn)生一種有效的基于橢圓曲線的自認(rèn)證密鑰的方法;
圖2是一張流程圖,該圖介紹了本發(fā)明的內(nèi)容之三的操作過(guò)程,描述了如
何產(chǎn)生一種有效的基于橢圓曲線的, 一個(gè)簽名實(shí)體對(duì)一條消息進(jìn)行自認(rèn)證簽名
的方法;
圖3是一張流程圖,該圖介紹了本發(fā)明的內(nèi)容之四的操作過(guò)程,描述了如 何產(chǎn)生一種有效的基于橢圓曲線的,自認(rèn)證的聚合簽名方法;
圖4是一張流程圖,該圖介紹了本發(fā)明的內(nèi)容之五的操作過(guò)程,描述了如 何產(chǎn)生一種基于橢圓曲線的在/離線自認(rèn)證的簽名方法;
圖5是本發(fā)明的簽名裝置的方框圖。
具體實(shí)施例方式
本發(fā)明所提出的基于橢圓曲線的自認(rèn)證的簽名方法,能夠提供安全,快速, 簡(jiǎn)潔而且有效的簽名方法,通過(guò)對(duì)簽名實(shí)體的簽名密鑰設(shè)置,防止了簽名權(quán)利 的外延。本發(fā)明提出的基于橢圓曲線的自認(rèn)證的簽名方法,根據(jù)不同的簽名實(shí) 體,簽名消息,可以擴(kuò)展到滿足一對(duì)多的聚合簽名,即一個(gè)簽名實(shí)體對(duì)不同消 息進(jìn)行自認(rèn)證簽名,然后,把這些消息簽名聚合成一個(gè)簽名的方法;為了提高 在線簽名的速度,給出了一種在/離線自認(rèn)證消息簽名方法。
本發(fā)明的基于橢圓曲線的自認(rèn)證的簽名方法,在用戶的部分私鑰產(chǎn)生中需 要一個(gè)認(rèn)證授權(quán)機(jī)構(gòu)CA。簽名實(shí)體在產(chǎn)生簽名密鑰的過(guò)程中,與該認(rèn)證授權(quán)機(jī) 構(gòu)交互傳遞,簽名實(shí)體選擇一個(gè)剩余類Zp中的隨機(jī)數(shù)作為自己的部分簽名私 鑰,認(rèn)證授權(quán)機(jī)構(gòu)利用簽名實(shí)體的身份,部分公鑰等特殊信息,產(chǎn)生簽名實(shí)體 的另外部分簽名私鑰,簽名實(shí)體將兩部分私鑰結(jié)合,得到有效的簽名私鑰。本 發(fā)明中的認(rèn)證授權(quán)機(jī)構(gòu)不在是一個(gè)完全信任機(jī)構(gòu),簽名實(shí)體的私鑰不再有它完 全產(chǎn)生,它也不能偽造簽名實(shí)體的簽名。本發(fā)明提出的基于橢圓曲線的自認(rèn)證的簽名方法包括4個(gè)步驟建立模型, 密鑰產(chǎn)生,簽名,以及驗(yàn)證。離線狀態(tài)下的簽名步驟則還需要選取隨機(jī)信息和 識(shí)別匹配數(shù)兩個(gè)步驟。
在建立模型中,該算法輸入安全參數(shù)ik,認(rèn)證授權(quán)機(jī)構(gòu)CA選取秘密參數(shù)作 為私鑰,并用來(lái)產(chǎn)生公共參數(shù)params,包括第一循環(huán)群生成器,哈希函數(shù),雙 線性映射函數(shù)和公鑰。私鑰的產(chǎn)生只有認(rèn)證機(jī)構(gòu)CA知道,參數(shù)params是公開(kāi)的。
在密鑰產(chǎn)生中,簽名實(shí)體選取自己的部分私鑰,并生成相應(yīng)的部分公鑰。 簽名實(shí)體將身份信息,部分公鑰傳遞給認(rèn)證授權(quán)機(jī)構(gòu),認(rèn)證授權(quán)機(jī)構(gòu)利用哈希 函數(shù),經(jīng)過(guò)處理,得到簽名實(shí)體的另一部分私鑰,傳遞給簽名實(shí)體,通過(guò)驗(yàn)證, 簽名實(shí)體確定私鑰的真實(shí)性,產(chǎn)生簽名私鑰。
在簽名過(guò)程中,簽名實(shí)體選取一秘密參數(shù),利用第一循環(huán)群生成器,自己 的身份信息,公共參數(shù),哈希函數(shù)產(chǎn)生部分簽名,利用該部分簽名和消息得到 消息函數(shù),再簽名私鑰對(duì)消息函數(shù)簽名得到另一部分簽名,將兩部分簽名合產(chǎn) 生簽名消息的自認(rèn)證簽名。
在驗(yàn)證過(guò)程中,利用哈希函數(shù)值,對(duì)公共參數(shù)params和消息進(jìn)行處理,得 到消息函數(shù)值。驗(yàn)證生成參數(shù),消息函數(shù)值,自認(rèn)證簽名等是否滿足驗(yàn)證等式, 得到結(jié)論"接受"(簽名有效)或者"拒絕"(簽名無(wú)效)。
橢圓曲線
本發(fā)明的高效性是基于橢圓曲線上的運(yùn)算簡(jiǎn)潔性。本發(fā)明提出的簽名方法 是基于橢圓曲線的,利用橢圓曲線上的對(duì),比如Tate對(duì)和Weil對(duì),來(lái)進(jìn)行運(yùn)算。 本發(fā)明利用兩個(gè)階為大素?cái)?shù)q的循環(huán)群, 一個(gè)是橢圓曲線或阿貝爾族上點(diǎn)的加 法群G"它的生成器是g;另一個(gè)是有限域上的乘法群G"兩個(gè)循環(huán)群之間存 在一種雙線性映射函數(shù)"GixGi—《,將加法群Gi中的兩個(gè)元素映射到乘法群《
中的一個(gè)元素。要求該函數(shù)滿足首先,雙線性的,對(duì)于G'中的元素U, V,整 數(shù)a, b,滿足《力^(",v";其次,非退化的,即對(duì)于G,中的元素g,滿足々,力";再次,可計(jì)算的,對(duì)于G'中的元素U, V,存在有效的算法計(jì)算""'"。除了上面 的三個(gè)要求,該函數(shù)還應(yīng)該是對(duì)稱的,即"","^""、橢圓曲線上點(diǎn)的運(yùn)算, 橫縱坐標(biāo)互相交換的兩點(diǎn),滿足對(duì)稱性,在橢圓曲線上得到的映射點(diǎn)是相同的。
強(qiáng)的Diffie-Hellman +可計(jì)算的Diffie-Hellman假設(shè)。
本發(fā)明的安全性基于強(qiáng)的Diffie-Hellman假設(shè)-strong Diffie-Hellman(SDH) assumption和可計(jì)算的Diffie-Hellman假設(shè)-Computational Diffie曙Hellman(CDH) assumption,其中,前者定義在W,GJ中,& , &分別是^和《的生成器,給出
一個(gè)q+2元數(shù)組化,&,《…,gO,對(duì)于未知整數(shù)c,求出^^,。;后者定義在G'上, g'是^的生成器,給出g" g。對(duì)于未知整數(shù)x, y,求出^。對(duì)于上面的兩種 假設(shè),本發(fā)明提出了 一種新的假設(shè)強(qiáng)的Diffie-Hellman假設(shè)+可計(jì)算的 Diffie-Hellman假設(shè)。該假設(shè)在困難性上,介于強(qiáng)的Diffie-Hellman假設(shè)和可計(jì)算 的Diffie-Hellman假設(shè)之間。該假設(shè)同樣定義在G'上,&是《的生成器,給出一
個(gè)q元數(shù)組^,g'"…,^—、和2元數(shù)組^,g。,對(duì)于整數(shù)c, r,求出((《^,。。如果強(qiáng) 的Diffie-Hellman +可計(jì)算的^伍6-1^1111^11假設(shè)可以在多項(xiàng)式時(shí)間內(nèi)解決,令 q-2,則該假設(shè)轉(zhuǎn)化為可計(jì)算的Diffie-Hdlman假設(shè),說(shuō)明可以在多項(xiàng)式時(shí)間內(nèi) 解決可計(jì)算的Diffie-HeUman假設(shè)。實(shí)際上可計(jì)算的Diffie-Hellman假設(shè)等價(jià)于求 逆運(yùn)算,在多項(xiàng)式時(shí)間內(nèi)是不能解決的。因此,提出的強(qiáng)的Diffie-Hdlman+可 計(jì)算的Diffie-Hellman假設(shè)也同樣不能在多項(xiàng)式時(shí)間內(nèi),以不可忽略的概率解 決。
如上所述,提出的強(qiáng)的Diffie-Hellman+可計(jì)算的Diffie-Hellman假設(shè),定義
在循環(huán)加群Gi上,gi是Gi的生成器,輸入一個(gè)q元數(shù)組^,g'"…,gf、和2元數(shù)組
W,g。,對(duì)于整數(shù)c, r,輸出((&'^,。。輸出結(jié)果的概率,決定于g', c, r選取 的任意性,以及概率算法A。如果一個(gè)概率算A法能夠在多項(xiàng)式時(shí)間輸出所要 的值,則該算法能以不可忽略的概率解決強(qiáng)的Diffie-Hellman +可計(jì)算的Diffie-Hellman假設(shè)。但提出的假設(shè),本質(zhì)上等價(jià)于可計(jì)算的Diffie-Hellman假設(shè), 而可計(jì)算的Diffie-Hellman假設(shè)的困難性基于離散對(duì)數(shù)的求逆問(wèn)題。離散對(duì)數(shù)的
求逆問(wèn)題,定義在循環(huán)加群Gi上,g'是G,的生成器,輸入gi',對(duì)于未知整數(shù)x, 輸出x。在任意的多項(xiàng)式時(shí)間內(nèi),不能以不可忽略的概率解決離散對(duì)數(shù)的求逆 問(wèn)題,能夠得出,不能以不可忽略的概率在多項(xiàng)式時(shí)間內(nèi)解決可計(jì)算的 Diffie-Hellman假設(shè),因此不能以不可忽略的概率在多項(xiàng)式時(shí)間內(nèi)解決強(qiáng)的 Diffie-Hellman +可計(jì)算的01卩66- ^11!^11假設(shè)。該假設(shè)是構(gòu)造基于橢圓曲線的自 認(rèn)證簽名方案的理論基礎(chǔ)。由于該假設(shè)的困難性,本發(fā)明提出的基于橢圓曲線的 自認(rèn)證簽名方案是安全的。
基于橢圓曲線的自認(rèn)證密鑰產(chǎn)生方法
在傳統(tǒng)的PKI框架下,簽名私鑰的選取,通常情況下,是簽名實(shí)體秘密選 取,然后生成相應(yīng)的公鑰,并由一個(gè)認(rèn)證機(jī)構(gòu)對(duì)該公鑰進(jìn)行認(rèn)證,或者,由某 個(gè)認(rèn)證授權(quán)機(jī)構(gòu)產(chǎn)生一對(duì)公/私鑰,把私鑰返回給用戶,并對(duì)公鑰進(jìn)行認(rèn)證。這 種私鑰產(chǎn)生方法給公鑰管理以及簽名的驗(yàn)證帶來(lái)一系列的麻煩。在基于身份的 體制下,用戶的私鑰是由一個(gè)可信機(jī)構(gòu)來(lái)產(chǎn)生,因而,存在著密鑰托管問(wèn)題。 為了解決傳統(tǒng)公鑰體制和基于身份公鑰體制下,密鑰產(chǎn)生所帶來(lái)的問(wèn)題,我們 研究自認(rèn)證的密鑰產(chǎn)生方法,簽名實(shí)體只能產(chǎn)生部分私鑰,而另一部分,由認(rèn) 證授權(quán)機(jī)構(gòu)對(duì)用戶的身份和部分公鑰產(chǎn)生一個(gè)BBS簽名作為部分私鑰,最后, 將兩部分私鑰結(jié)合在一起,構(gòu)成簽名私鑰。簽名實(shí)體無(wú)法單獨(dú)產(chǎn)生有效的簽名 私鑰,認(rèn)證授權(quán)機(jī)構(gòu)的引入,將使得用戶的公鑰在簽名驗(yàn)證時(shí)以隱式形式進(jìn)行 研究。
下面結(jié)合圖l來(lái)說(shuō)明基于橢圓曲線的自認(rèn)證簽名密鑰的具體產(chǎn)生方法。圖l 給出的是一張流程圖,描述了包括簽名密鑰產(chǎn)生及驗(yàn)證等各個(gè)步驟。簽名實(shí) 體的信息,作為哈希函數(shù)的輸入,傳遞給認(rèn)證授權(quán)機(jī)構(gòu),產(chǎn)生部分簽名私鑰。 本方法的核心是步驟106和步驟110:步驟106中,簽名實(shí)體任意選取部分私鑰;步驟110中,認(rèn)證授權(quán)機(jī)構(gòu)生成簽名實(shí)體的另一部分私鑰,兩部分結(jié)合產(chǎn)生簽 名私鑰。
步驟101中,產(chǎn)生兩個(gè)階數(shù)同為大素?cái)?shù)q的,第一循環(huán)加群G'和第二循環(huán)乘
群G"
步驟102中,選取G'的生成元為g;
步驟103中,選取一個(gè)非退化的雙線性映射函數(shù)e,可以將Gi中的兩個(gè)元素 映射到《的元素;
步驟104中,認(rèn)證授權(quán)機(jī)構(gòu)選取秘密整數(shù)"作為其私鑰;步驟105中,認(rèn)證
授權(quán)機(jī)構(gòu)產(chǎn)生其公鑰^=^;
步驟106中,簽名實(shí)體R任意選取整數(shù)^"A…,,i-l,2,)作為其部分私鑰, 不同的簽名實(shí)體選取的整數(shù)各不相同,不同的簽名過(guò)程,同一簽名實(shí)體選取的 整數(shù)也不同;
步驟107中,簽名實(shí)體產(chǎn)生部分公鑰^C^^^g力,部分簽名私鑰的不同, 使得部分公鑰也不相同;
步驟108中,選取第一,第二哈希函數(shù),第一哈希函數(shù)能夠由一串二進(jìn)制 數(shù)產(chǎn)生第一循環(huán)群中的元素,第二哈希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生一整數(shù);
步驟109中,第一哈希函數(shù)巧由認(rèn)證授權(quán)機(jī)構(gòu)的公鑰^,簽名實(shí)體的身份 /D',部分公鑰e組成的一串二進(jìn)制數(shù)產(chǎn)生G'中的元素^。-A(^^,^'^);
步驟110中,利用步驟109中得到的元素,認(rèn)證授權(quán)機(jī)構(gòu)的私鑰",第二哈
希函數(shù)仏產(chǎn)生簽名實(shí)體的另一部分私鑰<formula>formula see original document page 20</formula>認(rèn)證授權(quán)機(jī)構(gòu)將該私鑰 傳給簽名實(shí)體,后者將兩部分私鑰結(jié)合生成簽名私鑰",W ;
步驟111中,利用雙線性對(duì)映射e,驗(yàn)證等式<formula>formula see original document page 20</formula>滿足 驗(yàn)證等式的私鑰對(duì),簽名實(shí)體認(rèn)為是有效的,接受,否則,拒絕。 基于橢圓曲線的自認(rèn)證簽名的方法基于橢圓曲線的自認(rèn)證簽名,就是一個(gè)簽名實(shí)體對(duì)消息簽名。本發(fā)明提出 的方法,能夠結(jié)合橢圓曲線的運(yùn)算的高效性,簡(jiǎn)單的認(rèn)證,解決了密鑰托管問(wèn) 題和公鑰復(fù)雜管理問(wèn)題,同時(shí),本方法的安全性和可行性是基于強(qiáng)的
Diffie-Hellman +可計(jì)算的01(56-1^111^11假設(shè)的困難性。
下面結(jié)合圖2來(lái)說(shuō)明基于橢圓曲線的自認(rèn)證簽名的生成方法。圖2給出的是 一張流程圖,描述了自認(rèn)證簽名產(chǎn)生的具體步驟。本方法的核心是步驟210和 步驟213:步驟210,簽名實(shí)體將選擇的部分私鑰和由認(rèn)證授權(quán)機(jī)構(gòu)產(chǎn)生的另一 部分私鑰結(jié)合,產(chǎn)生簽名私鑰;步驟213,簽名實(shí)體利用簽名私鑰,消息的第 三哈希函數(shù)值,產(chǎn)生自認(rèn)證的簽名。
步驟201,產(chǎn)生兩個(gè)的循環(huán)群,第一個(gè)為加群G',第二個(gè)為乘群《,階數(shù) 都是大素?cái)?shù)q;
步驟202,選取Gi的生成元g,然后再隨機(jī)選擇群G'中的兩個(gè)元素^,^e^作 為公開(kāi)參數(shù);
步驟203,選取一個(gè)非退化的雙線性映射e,可以將G'中的兩個(gè)元素映射到G2
中;
步驟204,認(rèn)證授權(quán)機(jī)構(gòu)選取秘密整數(shù)"作為其私鑰。
步驟205,認(rèn)證授權(quán)機(jī)構(gòu)利用其私鑰產(chǎn)生其公鑰^ =gn;
步驟206,簽名實(shí)體"'任意選取整數(shù)W-"…,,i^,2,)作為其部分私鑰,不 同的簽名實(shí)體選取的整數(shù)各不相同,不同的簽名過(guò)程,同一簽名實(shí)體選取的私 鑰也不同;
步驟207,簽名實(shí)體產(chǎn)生部分公鑰^Cg"^^g^,部分簽名私鑰的不同, 使得部分公鑰也不相同;
步驟208,選取三個(gè)哈希函數(shù),第一哈希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生第 一循環(huán)群中的元素,第二哈希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生一整數(shù),第三個(gè)哈 希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生一整數(shù);步驟209中,第一哈希函數(shù)w'由認(rèn)證授權(quán)機(jī)構(gòu)的公鑰&,簽名實(shí)體的身份 /Z)-,部分公鑰《組成的一串二進(jìn)制數(shù)產(chǎn)生^中的元素 =//1(尸 //),^);
步驟210,利用步驟209得到的元素,認(rèn)證授權(quán)機(jī)構(gòu)的私鑰",第二哈希函
數(shù)^產(chǎn)生簽名實(shí)體的另一部分私鑰"'=W^("^'),認(rèn)證授權(quán)機(jī)構(gòu)將該私鑰傳給 簽名實(shí)體,后者將兩部分私鑰結(jié)合生成簽名私鑰","入-
步驟211,利用雙線性對(duì)映射e,驗(yàn)證等式e(《,^gW"'")X^g)是否成立, 如果等式成立,簽名實(shí)體認(rèn)為是有效的,接受,否則,拒絕;
步驟212和213,簽名實(shí)體分三層來(lái)進(jìn)行簽名。第一層,簽名實(shí)體隨機(jī)選取 一整數(shù)s,簽名實(shí)體利用認(rèn)證授權(quán)機(jī)構(gòu)公鑰&,第二哈希函數(shù)A,簽名實(shí)體身
份信息氣簽名實(shí)體的部分公鑰《,生成前簽名^^y";第二層,簽名 實(shí)體,利用前簽名、簽名消息M,簽名實(shí)體的部分公鑰、生成消息的哈希 值^聯(lián)',A/,/^;第三層,簽名實(shí)體利用消息哈希值m,利用簽名私鑰"力,第
一和第二哈希函數(shù)A, A,簽名實(shí)體身份信息化,簽名實(shí)體的部分公鑰《,生 成前簽名《《'"^(^')r,將前簽名和后簽名合在一起,生成消息M的簽名
步驟214,任意的驗(yàn)證實(shí)體,可以通過(guò)簽名實(shí)體的公鑰、身份信息嗎, 簽名消息M,來(lái)驗(yàn)證簽名5的真實(shí)性。首先,計(jì)算^柳,力和^-巧^,嗎^);
其次,驗(yàn)證等式^y'),《)-^,。瓶,(w,)是否成立,成立,則認(rèn)
為自認(rèn)證簽名有效,接受,否則,拒絕。 基于橢圓曲線的自認(rèn)證聚合簽名的方法
基于橢圓曲線的自認(rèn)證聚合簽名,就是簽名實(shí)體對(duì)不同消息的簽名,然后 將這些不同的消息簽名聚合成一個(gè)簽名的方法。在簽名的過(guò)程,類似于上面的 自認(rèn)證簽名方法,簽名實(shí)體首先利用自己的簽名密鑰對(duì)不同的消息進(jìn)行簽名, 然后,通過(guò)聚合方法把這些不同消息的簽名聚合成一個(gè)長(zhǎng)度相對(duì)短的簽名;在驗(yàn)證時(shí),驗(yàn)證者只要對(duì)聚合后的簽名有效進(jìn)行驗(yàn)證,如果成立就意味著這些不 同的簽名是有效的。從而,在簽名的長(zhǎng)度和驗(yàn)證的計(jì)算量上有較大的縮減。
下面結(jié)合圖3來(lái)說(shuō)明基于橢圓曲線的自認(rèn)證聚合簽名的生成方法。圖3給出 的是一張流圖,描述了簽名實(shí)體對(duì)消息的自認(rèn)證聚合簽名產(chǎn)生的具體步驟。本 方法的核心是步驟314,利用簽名實(shí)體對(duì)不同的消息生成自認(rèn)i疋的簽名,將這 些消息簽名結(jié)合產(chǎn)成一個(gè)自認(rèn)證聚合簽名。
步驟301,產(chǎn)生兩個(gè)的循環(huán)群,第一個(gè)為加群G',第二個(gè)為乘群《,階數(shù) 都是大素?cái)?shù)q;
步驟302,選取G'的生成元g,然后再隨機(jī)選擇群G'中的兩個(gè)元素^^eG"乍 為公開(kāi)參數(shù)
步驟303,選取一個(gè)非退化的雙線性函數(shù)e,可以將G'中的兩個(gè)元素映射到《
中;
步驟304,認(rèn)證授權(quán)機(jī)構(gòu)選取秘密整數(shù)"作為其私鑰,在不同的簽名過(guò)程中, 選取的秘密數(shù)不同;
步驟305 ,認(rèn)證授權(quán)機(jī)構(gòu)產(chǎn)生其公鑰& =,;
步驟306,簽名實(shí)體任意選取整數(shù)W"^,…,"M乍為其部分私鑰,不同的簽名 實(shí)體選取的整數(shù)各不相同,不同的簽名過(guò)程,同一簽名實(shí)體選取的私鑰也不同;
步驟307,簽名實(shí)體產(chǎn)生部分公鑰^W^^,^-s^,部分簽名私鑰的不同, 使得部分公鑰也不相同;
步驟308,選取三個(gè)哈希函數(shù),第一哈希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生第 一循環(huán)群中的元素,第二哈希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生一整數(shù),第三個(gè)哈 希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生一整數(shù);
步驟309,第一哈希函數(shù)巧由認(rèn)證授權(quán)機(jī)構(gòu)的公鑰^,簽名實(shí)體的身份嗎,
部分公鑰S組成的一串二進(jìn)制數(shù)產(chǎn)生G'中的元素^。-A(P",m'^);步驟310,利用步驟309中得到的元素,認(rèn)證授權(quán)機(jī)構(gòu)的私鑰",第二哈希
函數(shù)^產(chǎn)生簽名實(shí)體的另一部分私鑰《,認(rèn)證授權(quán)機(jī)構(gòu)將該私鑰傳 給簽名實(shí)體,后者將兩部分私鑰結(jié)合生成簽名私鑰",W ;
步驟3U,利用函數(shù)e,驗(yàn)證等式e",^g—W2(/^')) = e(^^,如果等式驗(yàn)證成 立,簽名實(shí)體認(rèn)為是有效的,接受,否則,拒絕;
步驟312和313,聚合簽名的過(guò)程分為三層。第一層,簽名實(shí)體任意選取一 整數(shù)、簽名實(shí)體利用認(rèn)證授權(quán)機(jī)構(gòu)公鑰的&,第二哈希函數(shù)A,簽名實(shí)體身 份信息化,簽名實(shí)體的部分公鑰、生成前簽名^-(P"^"'^";第二層,簽 名實(shí)體利用前簽名&,簽名消息M。
簽名實(shí)體的部分公鑰《,生成消息的哈希值^-W(《),M',《);第三層,簽 名實(shí)體利用消息哈希值"',利用簽名私鑰",W,第一和第二哈希函數(shù)w', A,
簽名實(shí)體身份信息氣簽名實(shí)體的部分公鑰、生成后簽名^^^2^(^'))""',
將前簽名和后簽名合在一起,生成消息^'的簽名《=(《',《2);
步驟314,對(duì)于n個(gè)消息的簽名WA,…A),其中滿足《=^,。。簽名實(shí)體
的聚合過(guò)程如下首先,計(jì)算S^'1,接著,對(duì)于 1,2,…, 簽名實(shí)體計(jì)
一 TT 5附'
算m,/Z(^M'^);最后,計(jì)算'2 。那么,所產(chǎn)生的聚合簽名就是WA)。
由此,我們可以看出,我們的聚合簽名長(zhǎng)度僅僅是n個(gè)簽名長(zhǎng)度的l/n。當(dāng)驗(yàn)證 者需要驗(yàn)證該聚合簽名的有效性時(shí),只需要驗(yàn)證等式
e(PC(^'),^"^。"械,W"))是否成立。如果成立就意味這該聚合簽名
是有效的。從聚合簽名的驗(yàn)證我們知道,該聚合簽名的驗(yàn)證僅僅需要3個(gè)對(duì) (pairing)計(jì)算和l個(gè)指數(shù)運(yùn)算。驗(yàn)證的計(jì)算量基本上與單個(gè)簽名的驗(yàn)證相等。注 對(duì)計(jì)算是橢圓曲線中最耗時(shí)的計(jì)算。步驟315,任意的驗(yàn)證實(shí)體,可以通過(guò)簽名實(shí)體的公鑰^,身份信息^,和 系統(tǒng)參數(shù)AA,來(lái)驗(yàn)證簽名W,《)的真實(shí)性。具體驗(yàn)證等式 e(PcZ(,,w"(;^)"^,W叫)是否成立,如果成立,則認(rèn)為自認(rèn)證聚合
簽名有效,接受,否則,拒絕。
基于橢圓曲線的在/離線自認(rèn)證簽名方法
技術(shù)領(lǐng)域:
本發(fā)明的內(nèi)容之五,提出了 一種基于橢圓曲線的在/離線自認(rèn)證的簽名方法。 一般來(lái)說(shuō),簽名過(guò)程中,在線簽名要比離線簽名代價(jià)更大,帶寬的限制,計(jì)算 能力的限制,都對(duì)在線操作提出了更高的要求.,本方法能夠利用離線狀態(tài)完成 簽名的主要操作,在在線狀態(tài)下進(jìn)行簡(jiǎn)單的操作來(lái)完成消息的簽名,節(jié)省了在 線時(shí)間,提高了在線簽名的效率,并通過(guò)對(duì)所選取的與簽名消息匹配隨機(jī)數(shù)的 識(shí)別,驗(yàn)證簽名的真實(shí)性。
下面結(jié)合圖4來(lái)說(shuō)明基于橢圓曲線的在/離線自認(rèn)證簽名的生成方法。圖4給 出的是一張流程圖,描述了在/離線狀態(tài)下產(chǎn)生自認(rèn)證簽名的過(guò)程。本方法的核 心是步驟412和步驟和步驟414。
步驟412中,認(rèn)證授權(quán)機(jī)構(gòu)隨機(jī)的選擇秘密信息和一隨機(jī)數(shù),利用預(yù)先選定 的函數(shù),簽名實(shí)體的私鑰,生成一個(gè)離線簽名;步驟414中,在在線狀態(tài)下, 利用離線簽名,識(shí)別出與所給消息相匹配的簽名中所包含的隨機(jī)數(shù),驗(yàn)證簽名 的真實(shí)性。
步驟401,產(chǎn)生兩個(gè)的循環(huán)群,第一個(gè)為加群G"第二個(gè)為乘群《,階數(shù)都 是大素?cái)?shù)q;
步驟402,選取^的生成元g,然后再隨機(jī)選擇群G'中的兩個(gè)元素、&e"作 為公開(kāi)參數(shù)
步驟403,選取一個(gè)非退化的雙線性函數(shù)e,可以將G!中的兩個(gè)元素映射到G2
中;
步驟404,認(rèn)證授權(quán)機(jī)構(gòu)選取秘密整數(shù)"作為其私鑰;步驟405,認(rèn)證授權(quán)機(jī)構(gòu)產(chǎn)生其公鑰^=^;
步驟406,簽名實(shí)體任意選取整數(shù)W'、^,…,"M乍為其部分私鑰,不同的簽名
實(shí)體選取的整數(shù)各不相同,不同的簽名過(guò)程,同一簽名實(shí)體選取的私鑰也不同;
步驟407,簽名實(shí)體產(chǎn)生部分公鑰爪&=^,^=^、部分簽名私鑰的不同, 使得部分公鑰也不相同;
步驟408,選取三個(gè)哈希函數(shù),第一哈希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生第一 循環(huán)群中的元素,第二哈希函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生一整數(shù),第三個(gè)哈希 函數(shù)能夠由一串二進(jìn)制數(shù)產(chǎn)生一整數(shù);
步驟409中,第一哈希函數(shù)巧由認(rèn)證授權(quán)機(jī)構(gòu)的公鑰&,簽名實(shí)體的身份^,
部分公鑰S組成的一串二進(jìn)制數(shù)產(chǎn)生G中的元素^-A^"7A^);
步驟410中,利用步驟409中得到的元素,認(rèn)證授權(quán)機(jī)構(gòu)的私鑰",第二哈
1
希函數(shù)&產(chǎn)生簽名實(shí)體的另一部分私鑰"'- W^2^"),認(rèn)證授權(quán)機(jī)構(gòu)將該私鑰 傳給簽名實(shí)體,后者將兩部分私鑰結(jié)合生成簽名私鑰",";
步驟4U,利用函數(shù)e,驗(yàn)證等式"《,&g—""WXA),g;)是否成立,如果等 式成立,簽名實(shí)體認(rèn)為是有效的,接受,否則,拒絕;
步驟412,選取n和n',并令簽名信息w'和M分別為M', M = g",簽名私 鑰",",以及隨機(jī)數(shù)。其中的信息m'不同于M;
步驟413,利用選取簽名私鑰進(jìn)行離線簽名,分別生成前簽名《—^,(^,, 消息函數(shù)m =,',M'gv'。,以及后簽名《=(W(W)廣;
步驟414,簽名實(shí)體需要找出一隨機(jī)數(shù)r,要使得^g'、嶺 即s"""g,,
可以在在線狀態(tài)下的求出""7,將得到的隨機(jī)數(shù)r,消息M,簽名一起傳遞 給簽名驗(yàn)證實(shí)體。步驟415中,首先,計(jì)算附'=/^1 ^)和/^//,0^,/0,";其次,驗(yàn)證等式
《,,"),w-^,o啦,W)r是否成立,成立,則認(rèn)為自認(rèn)證簽名有
效,接受,否則,拒絕。其中的步驟414,僅僅需要簡(jiǎn)單加法與乘法,所以計(jì) 算效率非常高。
圖5表示了本發(fā)明的簽名和驗(yàn)證簽名裝置。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局 限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易 想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù) 范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種基于橢圓曲線的自認(rèn)證私鑰產(chǎn)生及驗(yàn)證方法,一個(gè)公認(rèn)的認(rèn)證機(jī)構(gòu)CA,和一個(gè)簽名實(shí)體之間進(jìn)行的,其中的簽名實(shí)體Ui(i=1,2,…,n)是一個(gè)集合,簽名實(shí)體對(duì)應(yīng)的身份信息集合為IDi(i=1,2,…,n),其特征在于該方案具體內(nèi)容如下在橢圓曲線上,選取第一循環(huán)群G1和第二循環(huán)群G2(階數(shù)均為大素?cái)?shù)p);選取一個(gè)非退化的雙線性對(duì)映射e,滿足能夠由G1中的兩個(gè)元素映射得到G2中的元素;選取第一循環(huán)群G1的生成元g;隨機(jī)選取模p的剩余類Zp中的一個(gè)元素α作為CA的私鑰,并且產(chǎn)生PCA=gα作為CA公鑰;隨機(jī)選取模p的剩余類Zp中的一個(gè)元素xi(i=1,2,…,n)作為Ui的部分私鑰,并且產(chǎn)生作為簽名實(shí)體Ui的部分公鑰;選取第一哈希函數(shù)H1,能由第一串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群G1中的一個(gè)元素;選取第二哈希函數(shù)H2,能由第二串二進(jìn)制數(shù)產(chǎn)生剩余類Zp中的一個(gè)元素;產(chǎn)生一個(gè)第一哈希函數(shù)值h0=H1(PCA,IDi,Pi),并利用它產(chǎn)生生成的簽名實(shí)體Ui的私鑰為(xi,di,其中(i=1,2,...,n);驗(yàn)證私鑰的真實(shí)性,是否接受決定于下面的驗(yàn)證過(guò)程,步驟為確認(rèn)
2、 根據(jù)權(quán)利要求l所述的方法,其特征在于所述第一循環(huán)群^是超奇異橢圓曲線或阿貝爾族上的點(diǎn)的加法群,所述第二循環(huán)群《則是有限域上的乘法群;所述映射e是一種可行的雙線性對(duì)映射。
3、 根據(jù)權(quán)利要求l-2任一項(xiàng)所述的方法,其特征在于, 秘密選取認(rèn)證機(jī)構(gòu)0八的私鑰"和簽名實(shí)體"'的私鑰^,(1=1,2,...,11),產(chǎn)生& =,和= Z' A = f)作為各自的公鑰和部分公鑰;函數(shù)值^是利用^,化力的輸入,由第一哈希函數(shù)巧產(chǎn)生的; 簽名實(shí)體的部分私鑰《是利用"A,d〃^的輸入產(chǎn)生的,并且,簽名實(shí)體"的私鑰還包括確認(rèn)eW,尸c^^"'叫)=e(心力。
4、 一種基于橢圓曲線的,產(chǎn)生關(guān)于消息M的自認(rèn)證簽名Sig的方法以及驗(yàn)證 方法,該消息M是由一個(gè)簽名實(shí)體來(lái)完成簽名,最后,任何人可以對(duì)該簽名Sig 進(jìn)行驗(yàn)證,其特征在于,具體內(nèi)容包括選取第一循環(huán)群Gi和第二循環(huán)群G2 (階數(shù)均為大素?cái)?shù)p);選取一個(gè)非退化的雙線性對(duì)映射e,滿足能夠由Gi中的兩個(gè)元素運(yùn)算得到《 中的元素;選取第一循環(huán)群G'的生成元g和兩個(gè)隨機(jī)元素&,、隨機(jī)選取模p的剩余類zp中的一個(gè)元素"作為CA的私鑰,并且產(chǎn)生& = 作為CA公鑰;隨機(jī)選取模p的剩余類Zp中的一個(gè)元素W"W,…,"M乍為"'的部分私鑰,并且產(chǎn)生爪A = Z' A = g"—'〕作為簽名實(shí)體"'的部分公鑰;選取第一哈希函數(shù)《,.能由第一串二進(jìn)制數(shù)產(chǎn)生第一循環(huán)群G,中的一個(gè)元素;選取第二哈希函數(shù)仏,能由第二串二進(jìn)制數(shù)產(chǎn)生剩余類Zp中的一個(gè)元素; 選取第三哈希函數(shù)H,能由第三串二進(jìn)制數(shù)產(chǎn)生剩余類Zp中的一個(gè)元素;產(chǎn)生一個(gè)第一哈希函數(shù)值、-A(^,嗎,。,并利用它產(chǎn)生《=/^ ;生成簽名實(shí)體"'的私鑰為",化其中^l,2,…,n);為了對(duì)消息M進(jìn)行簽名,簽名實(shí)體隨機(jī)選取模p的剩余類;中的一個(gè)元素s,并通過(guò)下面算法來(lái)計(jì)算消息M的簽名;KAV"r, ipy'",其中最后,生成消息M的自認(rèn)證的簽名為Sig-W,W;為了驗(yàn)證消息M的有效性,任何人可以通過(guò)檢査簽名sig=(《,W是否滿足下面等式通過(guò)確認(rèn)^^,',^ = 一。,。 ^2(^'))、驗(yàn)證自認(rèn)證簽名 Sig 2)。
5、根據(jù)權(quán)利要求4所述的方法,其特征在于 所述第一循環(huán)群G'是超奇異橢圓曲線或阿貝爾族上的點(diǎn)的加法群,所述第 二循環(huán)群G2則是有限域上的乘法群;映射e是一種可行的單向雙線性對(duì)映射。
6、 根據(jù)權(quán)利要求4二5任一項(xiàng)所述的方法,其特征在于秘密選取認(rèn)證機(jī)構(gòu)0八的私鑰《和簽名實(shí)體"的私鑰《(1=1,2,,..,11),產(chǎn)生&=和《"==,')分別作為各自的公鑰和部分公鑰。
7、 根據(jù)權(quán)利要求4-6任一項(xiàng)所述的方法,其中 函數(shù)值^是利用^,嗎力的輸入,w'產(chǎn)生的; 簽名實(shí)體的部分私鑰《是利用^,",^"的輸入產(chǎn)生的,并且,簽名實(shí)體"'私鑰(^)還包括確認(rèn)《,^g"2,')) = #。,g);一部分簽名^是利用秘密選取的簽名實(shí)體"'的私有信息s,第二哈希函數(shù)A,以及認(rèn)證機(jī)構(gòu)的公鑰&作為輸入,由運(yùn)算^^,(,y得到的;函數(shù)值m是利用消息M,簽名實(shí)體的部分公鑰《,部分簽名《,以及第三哈 希函數(shù)作為輸入,運(yùn)算^^辨《'風(fēng)。產(chǎn)生的;另一部分簽名《是利用秘密選取的簽名實(shí)體"'的私有信息s,私鑰",《),第二哈希函數(shù)A,函數(shù)值m,以及函數(shù)值^作為輸入,《^(v^('^r產(chǎn)生的,.消息M的自認(rèn)證簽名是S^W,W ;通過(guò)確認(rèn)e(尸C""") a) = 一。,/x《a《2(""):t來(lái)驗(yàn)證簽名Sig 2)。
8、 一種采用權(quán)利要求l-7中任一項(xiàng)方法的裝置,包括密鑰生成器,簽名器,和簽名驗(yàn)證器,用戶使用所述密鑰生成器生成公鑰Pu,私鑰du及Xu,公布 其公鑰和系統(tǒng)參數(shù),使用所述簽名器利用私鑰對(duì)消息M進(jìn)行簽名。
全文摘要
本發(fā)明公開(kāi)了一種基于橢圓曲線的自認(rèn)證簽名方法及其拓展的簽名方法,以及簽名的驗(yàn)證過(guò)程。認(rèn)證授權(quán)機(jī)構(gòu)產(chǎn)生簽名實(shí)體的部分簽名私鑰,簽名實(shí)體利用自己選取的部分私鑰,結(jié)合接收的認(rèn)證授權(quán)機(jī)構(gòu)的私鑰,生成簽名私鑰。利用橢圓曲線,提高運(yùn)算效率,并且提出了基于橢圓曲線的1-1自認(rèn)證簽名方法,自認(rèn)證聚合簽名方法,以及離線的狀態(tài)下生成自認(rèn)證簽名的方法,這幾種方法的安全性基于提出的SDH+CDH假設(shè)。提出的若干方法不僅能夠滿足簽名協(xié)議的安全要求,而且在一定程度上能夠提高簽名效率,滿足某些特殊情況要求。
文檔編號(hào)H04L9/08GK101547099SQ20091008318
公開(kāi)日2009年9月30日 申請(qǐng)日期2009年5月7日 優(yōu)先權(quán)日2009年5月7日
發(fā)明者張鍵紅 申請(qǐng)人:張鍵紅