郭青霄,張大偉,常亮,劉曉東,宋靖文
?
基于SM2的代理保護(hù)代理簽名的設(shè)計(jì)與實(shí)現(xiàn)
郭青霄1,張大偉1,常亮2,劉曉東3,宋靖文1
(1. 北京交通大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044;2. 桂林電子科技大學(xué)廣西可信軟件重點(diǎn)實(shí)驗(yàn)室,廣西桂林 541004;3. 山東大學(xué)網(wǎng)絡(luò)信息安全研究所,山東濟(jì)南 250000)
基于國產(chǎn)密碼算法SM2數(shù)字簽名標(biāo)準(zhǔn),設(shè)計(jì)了一種代理保護(hù)代理簽名方案。通過對(duì)代理授權(quán)機(jī)制的設(shè)計(jì),實(shí)現(xiàn)了對(duì)代理簽名者的保護(hù);通過對(duì)SM2數(shù)字簽名算法的改進(jìn),實(shí)現(xiàn)了代理者代表原始簽名者的代理簽名;安全分析表明,設(shè)計(jì)的算法具有可驗(yàn)證性、可識(shí)別性、可區(qū)分性、不可否認(rèn)性和強(qiáng)不可偽造性。最后,利用C語言及Polarssl庫對(duì)該方案進(jìn)行了實(shí)現(xiàn),并與SM2數(shù)字簽名進(jìn)行了性能比較。分析表明,該算法在性能上具有較好的可用性。
橢圓曲線;代理簽名;代理保護(hù)代理簽名;SM2數(shù)字簽名
1985年,N.Koblitz和V.Miller各自獨(dú)立地提出了橢圓曲線公鑰密碼(ECC, elliptic curve cryptography)[1]。該密碼體制的安全性主要基于橢圓曲線離散對(duì)數(shù)問題(ECDLP, elliptic curve discrete logarithm problem)的困難性。與傳統(tǒng)離散對(duì)數(shù)問題相比,ECDLP的求解難度要大得多,目前解決方法的計(jì)算復(fù)雜度都是指數(shù)級(jí)別的。文獻(xiàn)[2]指出在相同安全強(qiáng)度下,橢圓曲線密碼較其他公鑰密碼所需的密碼規(guī)模要小很多。ECC的優(yōu)勢(shì)使其成為最具發(fā)展?jié)摿蛻?yīng)用前景的公鑰密碼算法。在此背景下,我國開始組織和研究自主知識(shí)產(chǎn)權(quán)的ECC,于2004年研制完成了SM2算法,并于2016年8月成為中國國家密碼標(biāo)準(zhǔn)(標(biāo)準(zhǔn)號(hào)為GB/T 32918-2016)[3,4]。目前研究表明,256 bit的SM2算法與2 048 bit的RSA算法具有相同的安全等級(jí)。
1996年,Mambo、Usuda 和 Okamoto等[5]提出了代理簽名的概念?,F(xiàn)有的代理簽名方案大多是基于離散對(duì)數(shù)問題與大數(shù)因子分解問題的。2003年,白國強(qiáng)等[6]將代理簽名思想應(yīng)用于橢圓曲線密碼,提出了基于橢圓曲線的代理簽名方案,但該方案并沒有完全滿足對(duì)代理簽名者的保護(hù)等性質(zhì);2005年,張寧等[7]對(duì)白國強(qiáng)等[6]提出的方案進(jìn)行研究分析,在代理簽名的安全性方面做了改進(jìn),提出了代理保護(hù)代理簽名方案;2008年,Chang等[8]提出了基于ECDSA的代理保護(hù)代理簽名方案。2010年,胡蘭蘭等[9]提出了另一種改進(jìn)的安全代理簽名方案。
但截至目前,代理保護(hù)代理簽名方案主要是在ECDSA的基礎(chǔ)上進(jìn)行研究的。本文將代理簽名思想與國密算法SM2相結(jié)合,產(chǎn)生了一種新的代理簽名方案,即基于SM2的代理保護(hù)代理簽名方案,同時(shí)分析了這一方案的安全性與復(fù)雜性。該方案不僅滿足代理簽名的一般性質(zhì),還滿足了文獻(xiàn)[10]所提出的強(qiáng)不可偽造的性質(zhì),實(shí)現(xiàn)了對(duì)代理簽名者的保護(hù)。
1976年,Diffie和Hellman[11,12]利用公鑰密碼學(xué)的思想首次提出了數(shù)字簽名概念。但在實(shí)際應(yīng)用中,為滿足簽名權(quán)的安全傳遞等需求,需在數(shù)字簽名的基礎(chǔ)上進(jìn)行擴(kuò)展,從而產(chǎn)生了代理簽名。文獻(xiàn)[5]指出代理簽名是指原始簽名者可以授權(quán)代理者代表其行使簽名權(quán),驗(yàn)證者既能驗(yàn)證該簽名的有效性,也能驗(yàn)證該簽名是原始簽名者所認(rèn)可的[13]。
代理簽名的過程至少包含4部分,即代理授權(quán)、授權(quán)驗(yàn)證及代理密鑰的生成、代理簽名的生成、代理簽名的驗(yàn)證。其流程如圖1所示。
圖1 代理簽名的基本流程
Mambo等將代理簽名分成3種:完全代理簽名、部分代理簽名和具有證書的代理簽名[10]。這里僅對(duì)部分代理簽名進(jìn)行介紹。
部分代理簽名(partial delegation):原始簽名者利用自己的私鑰計(jì)算出一個(gè)新的代理私鑰(為了安全考慮,要求不能由推導(dǎo)出),并通過安全通道將交給代理簽名者,代理簽名者可利用生成代理簽名[14]。該方法有以下2種類型的實(shí)現(xiàn)方案。
代理非保護(hù)代理簽名(proxy-unprotected proxy signature):除了原始簽名者外,只有被授權(quán)的代理簽名者能夠產(chǎn)生代理簽名,其他第三方不能產(chǎn)生代理簽名。
代理保護(hù)代理簽名(proxy-protected proxy signature):除了被授權(quán)的代理簽名者能夠產(chǎn)生代理簽名之外,包括原始簽名者在內(nèi)的其他任何人均不能產(chǎn)生代理簽名。
根據(jù)代理簽名的定義,文獻(xiàn)[10]指出代理簽名體制應(yīng)具備以下性質(zhì)。
1) 可驗(yàn)證性:驗(yàn)證者能夠驗(yàn)證代理簽名是有效的。
2) 可區(qū)分性:代理簽名和原始簽名能夠被其他人所區(qū)分。
3) 不可偽造性:除了原始簽名者及其授權(quán)的代理簽名者之外,其他人不能產(chǎn)生有效的代理簽名。
4) 可識(shí)別性:代理簽名者的身份能夠被原始簽名者從有效的代理簽名中識(shí)別出來。
5) 不可否認(rèn)性:代理簽名者不能在原始簽名者面前否認(rèn)自己所產(chǎn)生的簽名。
文獻(xiàn)[14,15]對(duì)上述的某些性質(zhì)給出了更強(qiáng)的定義,以確保對(duì)原始簽名者和代理簽名者是公平的,舉例如下。
6) 強(qiáng)不可偽造性:原始簽名者以及任何沒有被授權(quán)的人均不能創(chuàng)建有效的代理簽名。
實(shí)際應(yīng)用中的代理簽名方案并不一定要滿足以上所有性質(zhì),對(duì)于不同的應(yīng)用場(chǎng)景可以提出不同的代理簽名方案。
SM2算法的主要內(nèi)容包括3部分:數(shù)字簽名算法、密鑰協(xié)商協(xié)議和公鑰加密算法。SM2的數(shù)字簽名部分適用于商用密碼中的數(shù)字簽名和驗(yàn)證。在GM/T 0003中規(guī)定了SM2橢圓曲線公鑰密碼算法的數(shù)字簽名算法。
():消息摘要函數(shù)。
文獻(xiàn)[16]分析指出,SM2數(shù)字簽名使用了用戶的參數(shù)及其系統(tǒng)參數(shù),提高了系統(tǒng)的安全性和認(rèn)證性;并且加入了較多的校驗(yàn)功能,提高了簽名驗(yàn)證系統(tǒng)的數(shù)據(jù)完整性和系統(tǒng)可靠性。
本節(jié)將上述SM2數(shù)字簽名體制與代理簽名思想相結(jié)合,設(shè)計(jì)了一種基于SM2的代理保護(hù)代理簽名算法。在該算法中,代理簽名人Bob將代表原始簽名人Alice簽名,驗(yàn)證者Carol對(duì)產(chǎn)生的代理簽名進(jìn)行驗(yàn)證。
本節(jié)使用的部分參數(shù)與3.1節(jié)中的參數(shù)一致,另外:
根據(jù)圖1代理簽名的基本流程,算法主要進(jìn)行了4部分,其中A、B、C分別代表Alice、Bob、Carol的操作。
4.2.1 代理授權(quán)
在代理授權(quán)過程,原始簽名者Alice與代理簽名者Bob要進(jìn)行信息交互,Alice根據(jù)交互信息生成授權(quán)信息,具體過程如下。
其次,Alice會(huì)進(jìn)行下面的運(yùn)算步驟。
A3:計(jì)算橢圓曲線上的另一個(gè)點(diǎn)G=(1,1)=[k]G。
4.2.2 授權(quán)驗(yàn)證及代理密鑰生成
當(dāng)Bob收到授權(quán)信息后,他首先要對(duì)授權(quán)信息進(jìn)行驗(yàn)證,確定授權(quán)信息確實(shí)來自原始簽名者Alice,具體過程如下。
B4:計(jì)算橢圓曲線上另一點(diǎn)
4.2.3 代理簽名的生成
B7~B9同3.2節(jié)中的A1~A3。
4.2.4 代理簽名的驗(yàn)證
C1~C5同3.3節(jié)中的B1~B5。
4.3 代理簽名方案的正確性和可驗(yàn)證性
1) 代理委托授權(quán)驗(yàn)證的正確性
又因?yàn)?/p>
2) 代理簽名的可驗(yàn)證性
定理2 該方案具有可驗(yàn)證性,即驗(yàn)證者可以驗(yàn)證代理簽名的有效性。
方程兩邊同時(shí)乘以G,則有
上述過程證明了該算法滿足代理簽名可驗(yàn)證的性質(zhì),并且驗(yàn)證者可以直接使用原始簽名者的公鑰進(jìn)行驗(yàn)證。
本節(jié)討論幾種針對(duì)擬議方案的安全性的可能攻擊,該方案的安全性是基于以下兩點(diǎn):1) 散列函數(shù)單向性;2) ECDLP的困難性。
攻擊場(chǎng)景1 原始簽名者偽造有效的代理簽名。
此處分析表明,原始簽名者不能偽造代理簽名,即滿足強(qiáng)不可偽造的性質(zhì),。
攻擊場(chǎng)景4 攻擊者假冒代理簽名者,在代理授權(quán)過程與原始簽名者交互產(chǎn)生代理密鑰以進(jìn)行中間人攻擊。
借助于權(quán)威機(jī)構(gòu)對(duì)原始簽名者和代理簽名者的公鑰生成的數(shù)字證書可以有效地防止該中間人攻擊。
1) 可驗(yàn)證性
在4.3節(jié)中的定理2證明了該性質(zhì)。
2) 可區(qū)分性
驗(yàn)證者可以利用原始簽名的驗(yàn)證公式以及代理簽名的驗(yàn)證公式對(duì)原始簽名和代理簽名進(jìn)行區(qū)分。
3) 強(qiáng)不可偽造性
通過對(duì)4.4節(jié)攻擊情景1的分析,可以確定該方案具有強(qiáng)不可偽造性。
4) 可識(shí)別性
5) 不可否認(rèn)性
由4.2.1節(jié)可得,由于進(jìn)行了身份綁定所以代理簽名者不能在原始簽名者面前否認(rèn)自己的簽名。
為了測(cè)試所提出的方案的正確性,本文使用Microsoft Visual Studio 2010工具以及C/C++編程語言,在64位Windows操作系統(tǒng)上采用Polarssl中的密碼算法,實(shí)現(xiàn)了基于SM2的代理保護(hù)代理簽名算法。
SM2使用的素?cái)?shù)域256位橢圓曲線的曲線參數(shù)如下。
=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
FFFFFFFF 00000000 FFFFFFFF FFFFFFFC
=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7
F39789F5 15AB8F92 DDBCBD41 4D940E93
=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
7203DF6B 21C052B 53BBF409 39D54123
x=32C4AE2C 1F198119 5F990446 6A39C994
8FE30BBF F2660BE1 715A4589 334C74C7
y=BC3736A2 F4F6779C 59BDCEE3 6B692153
D0A9877C C62A4740 02DF32E5 2139F0A0
其中,是橢圓曲線上的一個(gè)基點(diǎn)。
實(shí)驗(yàn)中對(duì)基于SM2代理保護(hù)代理簽名的參數(shù)的輸出如圖2所示。
代理授權(quán)階段的輸出如圖3所示。
授權(quán)驗(yàn)證及代理密鑰生成階段的輸出如圖4所示。
代理簽名階段的輸出如圖5所示。
代理簽名驗(yàn)證階段的輸出如圖6所示。
圖2 基于SM2代理保護(hù)代理簽名的參數(shù)
圖3 代理授權(quán)階段
圖4 授權(quán)驗(yàn)證及代理密鑰生成階段
圖5 代理簽名階段
實(shí)驗(yàn)中對(duì)標(biāo)準(zhǔn)SM2數(shù)字簽名與SM2代理保護(hù)代理簽名的簽名驗(yàn)簽速度進(jìn)行了多次測(cè)試,計(jì)算了兩者的平均時(shí)間如表2所示。
圖6 代理簽名驗(yàn)證階段
表1 該方案與標(biāo)準(zhǔn)SM2數(shù)字簽名計(jì)算復(fù)雜度比較
表2 該方案與標(biāo)準(zhǔn)SM2數(shù)字簽名簽名驗(yàn)簽速度比較
本文將代理簽名思想應(yīng)用于SM2數(shù)字簽名,提出了基于SM2的代理保護(hù)代理簽名方案,同時(shí)對(duì)該方案進(jìn)行了安全性和復(fù)雜性的分析。分析表明,該方案不僅滿足代理簽名的安全性,還實(shí)現(xiàn)了對(duì)代理簽名者的保護(hù)。實(shí)驗(yàn)結(jié)果表明,本方案的簽名驗(yàn)簽速度稍慢于SM2數(shù)字簽名,但仍具有較好的可用性。
[1] NEAL K. Elliptic curve cryptosystems[J]. Mathematics of Computation, 1987, 48(177): 203-209.
[2] 杜潔璇. 橢圓曲線密碼系統(tǒng)的研究與實(shí)現(xiàn)[D]. 北京: 北京郵電大學(xué), 2010. DU J X. Elliptic curve cryptography system research and implementation[D]. Beijing: Beijing University of Posts and Telecommunications, 2010.
[3] 李湛. 一種改進(jìn)的橢圓曲線密碼實(shí)現(xiàn)算法[J]. 電子科技, 2004(7): 31-33. LI Z. An improved algorithm for Elliptic curve cryptography [J]. Electronic Science and Technology, 2004 (7): 31-33.
[4] 汪朝暉, 張振峰. SM2橢圓曲線公鑰密碼算法綜述[J]. 信息安全研究. 2016, 2(11): 972-982. WANG ZH , ZHANG Z F. Overview of SM2 Elliptic curve public key cryptography [J]. Information Security Research, 2016, 2 (11): 972-982.
[5] MAMBO M, USUDA K, OKAMOTO E. Proxy signatures for delegating signing operation[C]. ACM Conference on Computer and Communications Security, 1996: 48-57.
[6] 白國強(qiáng), 黃諄, 陳弘毅, 等. 基于橢圓曲線的代理數(shù)字簽名[J]. 電子學(xué)報(bào), 2003, 31(11): 1659-1663. BAI G Q, HUANG Z, CHEN H Y, et al. Proxy digital signature based on elliptic curve [J]. Acta Electronic Journal. 2003, 31 (11): 1659-1663.
[7] 張寧, 傅曉彤, 肖國鎮(zhèn). 對(duì)基于橢圓曲線的代理簽名的研究與改進(jìn)[J]. 西安電子科技大學(xué)學(xué)報(bào), 2005, 32(2): 280-283. ZHANG N, FU X T, XIAO G Z. Study and improvement of agent signature based on Elliptic Curve[J]. Journal of Xidian University, 2005, 32 (2): 280-283.
[8] CHANG M H, CHEN I T, CHEN M T. Design of Proxy Signature in ECDSA[C]//Eighth International Conference on Intelligent Systems Design and Applications, 2008. 2008: 17-22.
[9] 胡蘭蘭, 鄭康鋒, 楊義先, 等. 一種改進(jìn)的橢圓曲線安全代理簽名方案倡[J]. 計(jì)算機(jī)應(yīng)用研究. 2010, 27(2). HU L L, ZHENG K F, YANG Y X, et al. An improved elliptic curve security proxy signature scheme [J]. Journal of Computer Applications,2010, 27 (2).
[10] 李繼國, 曹珍富, 李建中, 等. 代理簽名的現(xiàn)狀與進(jìn)展[J]. 通信學(xué)報(bào), 2003(10): 114-124. LI J G, CAO Z F, LI J Z, et al. Status and progress of proxy signature [J] . Journal of Communications, 2003 (10): 114-124.
[11] DIFFIE W, HELLMAN M. Multiuser cryptographic techniques[J]. Proceedings of AFIPS 1976 NCC, 1976: 109-112.
[12] DIFFIE W. The first ten years of public-key Cryptography[J]. IEEE, 1992: 135-175.
[13] 周亮. 代理簽名及擴(kuò)展的關(guān)鍵問題研究[D]. 北京:北京郵電大學(xué), 2008. ZHOU L. Proxy signature and expansion of the key issues[D]. Beijing: Beijing University of Posts and Telecommunications, 2008.
[14] LEE B, KIM H, KIM K. Strong proxy signature and its applications[J]. SCIS. 2001.
[15] VARADHARAJAN V, ALLEN P, BLACK S. An analysis of the proxy problem in distributed systems[C]// 1991 IEEE Computer Society Symposium on Research in Security and Privacy 1991: 255-275.
[16] 張煥國. SM2數(shù)字簽名算法[EB/OL]. 2015.https://wenku.baidu.com/view/9dbf8a3d04a1b0717ed5dd12.html.ZHANG H G. SM2 digital signature algorithm[EB/OL]. https:// wenku.baidu.com/view/9dbf8a3d04a1b0717ed5dd12.html.
Design and implementation of proxy-protected proxy signature based on SM2
GUO Qing-xiao1, ZHANG Da-wei1, CHANG Liang2, LIU Xiao-dong3, SONG Jing-wen1
(1. School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China;2. Guangxi Key Laboratory of Trusted Software, Guilin University of Electronic Technology,Guilin 541004, China;3. Institute of Network Information Security, Shandong University, Jinan 250000, China)
Based on the SM2 digital signature standard, a proxy-protected proxy signature scheme was designed. Through the design of the agent authorization mechanism, the protection of the proxy signer was realized. The proxy signature was realized by the proxy signer who represents the original signer through the improvement of the SM2 digital signature algorithm. The security analysis shows that the designed algorithm is verifiable, identifiable, distinguishable, non-repudiation, and strong unforgeability. Finally, the program was implemented using the C language and the Polarssl library, and the performance was compared with the SM2 digital signature. The analysis shows that the algorithm has good usability in performance.
elliptic curve, proxy signature, proxy-protected proxy signature, SM2 digital signature
TP391.1
A
10.11959/j.issn.2096-109x.2017.00192
2017-07-06;
2017-08-27。
張大偉,dwzhang@bjtu.edu.cn
國家自然科學(xué)基金資助項(xiàng)目(No.61672091);廣西可信軟件重點(diǎn)實(shí)驗(yàn)室研究課題基金資助項(xiàng)目(No.KX201531)
The National Natural Foundation of China (No.61672091), KeyLaboratory of Trusted Software (No.KX201531)
郭青霄(1992-),女,山東聊城人,北京交通大學(xué)碩士生,主要研究方向?yàn)橹Ц栋踩?、密碼學(xué)貨幣。
張大偉(1974-),男,遼寧朝陽人,博士,北京交通大學(xué)副教授,主要研究方向?yàn)橹悄芸ò踩?、支付安全和區(qū)塊鏈技術(shù)。
常亮(1980-),男,貴州赫章人,博士,桂林電子科技大學(xué)教授,主要研究方向?yàn)橹R(shí)表示與推理、可信計(jì)算。
劉曉東(1975-),男,山東濰坊人,博士,山東大學(xué)講師,主要研究方向?yàn)樾畔踩懊艽a學(xué)。
宋靖文(1995-),女,河北衡水人,北京交通大學(xué)碩士生,主要研究方向?yàn)橹Ц栋踩⒚艽a貨幣。