呂堯,侯金鵬,聶沖,蘇铓,王彬,蔣鴻玲
基于SM9算法的部分盲簽名方案
呂堯1,侯金鵬2,聶沖2,蘇铓2,王彬3,蔣鴻玲3
(1. 中國電子信息產(chǎn)業(yè)發(fā)展研究院,北京 100048;2. 南京理工大學(xué)計算機科學(xué)與工程學(xué)院,江蘇 南京 210094;3. 北京信息科技大學(xué)信息管理學(xué)院,北京 100192)
普通的數(shù)字簽名在有效保護用戶隱私方面存在諸多不足,如對簽名的抵賴和跟蹤時有發(fā)生。針對上述問題,提出一種基于SM9算法的部分盲簽名方案,部分是指簽名消息包含用戶的消息和其他有關(guān)信息,能夠有效抵抗簽名抵賴和跟蹤,同時引入可信第三方來防止惡意用戶對信息的篡改。通過實驗結(jié)果和理論分析,證明了所提算法的安全性和高效性。
SM9算法;盲簽名;部分盲簽名;數(shù)字簽名
在信息化時代,消息得以快速傳播,特別是隨著5G時代的到來,物聯(lián)網(wǎng)應(yīng)用的發(fā)展越來越迅速。這便利了人們的生活,但也帶來了許多潛在的安全威脅:數(shù)據(jù)在開放的網(wǎng)絡(luò)環(huán)境下傳輸,難免會遭到不法分子的惡意攻擊,使隱私數(shù)據(jù)非法泄露或被篡改。物聯(lián)網(wǎng)、5G通信應(yīng)用快速發(fā)展的同時,用戶隱私數(shù)據(jù)被攻擊、截獲甚至破解的安全風(fēng)險逐漸增加。這些安全風(fēng)險不僅可能造成個人或企業(yè)的經(jīng)濟損失,甚至可能威脅到國家的安全。SM9算法和部分盲簽名在此背景下顯示出極大的發(fā)展?jié)摿Α?/p>
Koblitz[1]、Miller[2]分別于1984年、1986年提出了基于橢圓曲線的公鑰密碼算法,在安全性相同的條件下,可以使用比其他公鑰密碼算法更短的密鑰。1984年,Shamir[3]提出標識密碼(IBE)的概念,簡化了密鑰管理環(huán)節(jié)。2000年,Sakai[4]提出基于橢圓曲線和雙線性對的密碼系統(tǒng)。2001年,Boneh和Franklin[5]提出使用Weil對構(gòu)造標識公鑰加密算法。2016年,國家密碼管理局發(fā)布了SM9密碼算法標準[6]。SM9算法簡化了密鑰管理環(huán)節(jié),可以大大減少申請和驗證過程,特別適合海量用戶的安全交互通信。
Chuam[7]于1983年首次提出盲簽名概念,通過對簽名消息的盲化來達到隱私保護的效果。盲簽名比普通的數(shù)字簽名更能保護用戶的隱私。但簽名消息對簽名者的完全匿名性也帶來了安全隱患,簽名會被非法分子濫用。為了使簽名者在不知道所簽消息的同時能在必要時對該簽名可控,Brands[8]提出一種受限盲簽名方案,但該方案在驗證時需要與消息提供者交互。為了克服該問題,1996年,Abe等[9]提出一個部分盲簽名的簡單模型,部分盲簽名通過在簽名中嵌入用戶與簽名者協(xié)商的公共信息,避免了完全匿名留下的安全隱患。但部分盲簽名的方案易存在公共信息被替代的漏洞[10]。如2013年,湯志鵬等[11]發(fā)現(xiàn)余丹等[12]的方案存在公共信息可以被非法篡改的漏洞;何俊杰等[13]分析了文獻[11]的方案,也存在惡意用戶可以非法篡改公共信息的缺陷;楊俊芳[14]分析文獻[13]方案發(fā)現(xiàn),同樣存在公共信息被篡改的可能。
現(xiàn)有的基于SM9算法的盲簽名僅有兩個方案:一是張雪峰和彭華提出的一種基于SM9算法的盲簽名方案研究[15],二是何德彪等提出的一種基于SM9數(shù)字簽名的盲簽名生成方法與系統(tǒng)[16]。
文獻[15]提出的基于SM9算法的盲簽名方案分為消息盲化、簽名生成和簽名驗證3個步驟。通過對消息進行盲化,將盲化后的消息傳給簽名者進行簽名,實現(xiàn)了消息的隱私保護。該方案存在的問題:簽名時使用雜湊函數(shù)對盲化后的消息′進行單向壓縮運算,因此實際得到的是盲化消息′的簽名而非待簽消息的簽名。
文獻[16]提出一種基于SM9數(shù)字簽名的盲簽名方案,可以在簽名者不知道真實消息的情況下生成正確的SM9盲簽名。簽名的過程由簽名者和用戶共同執(zhí)行,生成SM9盲簽名的過程不會向簽名者泄露被簽名的消息,既能保證簽名的正確性,又能保證簽名消息的隱私性,是一種實用的盲簽名算法。
本文在文獻[16]的基礎(chǔ)上設(shè)計一種基于SM9數(shù)字簽名算法的部分盲簽名方案,在簽名中植入關(guān)于時間的公共信息,在保證用戶消息隱私的情況下,使簽名具有可控性,同時,算法中的公共信息無法被非法篡改。本文算法可以應(yīng)用的范圍比盲簽名更廣,如電子現(xiàn)金、電子拍賣、電子投票等領(lǐng)域。
本節(jié)介紹盲簽名和部分盲簽名的概念,同時介紹一些相關(guān)的數(shù)學(xué)理論。
盲簽名即簽名者不知道所簽消息的內(nèi)容,簽名后不能對自己的簽名抵賴和進行跟蹤的一種特殊的數(shù)字簽名。相比普通的數(shù)字簽名,盲簽名能夠更好地保護用戶的隱私?;谶@一優(yōu)點,盲簽名被廣泛應(yīng)用于電子投票等需要保護自身隱私的場合。
但是,盲簽名的完全盲化帶來了不可控性,這使它更容易被非法分子濫用。為了解決這個額外風(fēng)險,產(chǎn)生了部分盲簽名。在部分盲簽名方案中,簽名者在簽名時可以加入與用戶協(xié)商的消息或者自己的信息。消息提供者不能篡改簽名者加入的信息,從而阻止簽名申請者提供非法信息或篡改信息而濫用簽名,這樣既有效地保護了用戶的隱私又讓簽名者對所簽署的內(nèi)容部分可控。
本文提出的基于SM9數(shù)字簽名算法的部分盲簽名方案,在保證消息盲化的同時可以確定最后生成的簽名是對于消息的部分盲簽名。對于其他學(xué)者提出的部分盲簽名方案中出現(xiàn)的公共信息被篡改漏洞,本文設(shè)計的部分盲簽名方案通過引入可信任第三方對公共信息是否被篡改進行驗證,能在一定限度上防止公共消息被篡改。
SM9算法的主要參數(shù)及參數(shù)說明如表1 所示。
由密鑰生成中心KGC產(chǎn)生主密鑰對(,pub)及用戶的簽名私鑰dsa,具體步驟與SM9算法主密鑰對和用戶私鑰的產(chǎn)生一致。
(1)簽名準備
簽名前,向可信任第三方申請一個關(guān)于簽名有效期的公共信息(timeh, endt),詳細描述如下。
表1 系統(tǒng)參數(shù)
簽名開始前向可信第三方發(fā)出申請,第三方收到申請后:
a. 獲取當前時間戳,并將其與預(yù)先設(shè)置有效期相加獲得有效期時間戳endt;
d. 將endt與timeh的數(shù)據(jù)類型轉(zhuǎn)換為字節(jié)串,簽名中的公共消息為(timeh, endt)。
(2)公共參數(shù)計算
(3)盲化
(4)簽名
(5)解盲
部分盲簽名的驗證算法根據(jù)被驗證對象的不同分為兩部分:一是時間戳的驗證,包括第三方對公共信息是否被篡改的驗證和驗證方對簽名是否在有效期內(nèi)的驗證;二是部分盲簽名正確性的驗證。
(1)時間戳的驗證
b. 驗證者從第三方獲得公共信息是否被篡改的結(jié)果,如果被告知公共信息被篡改,則簽名驗證不通過,否則進行部分盲簽名的正確性驗證。若簽名驗證正確,進行簽名有效期驗證:驗證者獲取當前時間戳,與endt進行時間戳大小比較,若當前時間戳大于endt,則驗證不通過,否則驗證通過。
2. 盲簽名正確性的驗證
為了檢驗收到的消息的正確性與完整性,需要驗證部分盲簽名(,, timeh, endt)的正確性,作為驗證者的用戶應(yīng)實現(xiàn)以下運算步驟:
本文提出的基于SM9算法的部分盲簽方案是可驗證正確的。證明如下。
盲簽名過程中
本節(jié)從安全性、正確性和效率3方面分析所提部分盲簽名算法。
部分盲簽名算法的安全性包括不可偽造性和盲性,不可偽造性是指簽名結(jié)果不能被任意攻擊方偽造,盲性是指簽名的消息不被除消息擁有者外的任何人知道。本節(jié)分別給出二者的定義和證明。
本文實現(xiàn)的算法中SM9的參數(shù)使用《GMT 0044-2016 SM9標識密碼算法》。
本節(jié)測試算法的主密鑰對和用戶私鑰的生成功能、簽名驗簽功能,其中盲簽名的驗證測試分為正確性測試和時間戳驗證測試。以下測試是在程序中定義了一個宏#define SELF_CHECK 1的情況下進行的,即在本次測試中除結(jié)束時間戳,其他隨機數(shù)均采用預(yù)設(shè)的值。
主私鑰為文獻[10]中數(shù)字簽名算法示例所規(guī)定的值,為0130e7 8459d785 45cb54c5 87e02cf4 80ce0b66 340f319f 348a1d5b 1f2dc5f4。
輸入主公鑰與用戶私鑰,測試消息為Chinese IBS standard。測試結(jié)果如圖1所示。
圖1 盲簽名結(jié)果
Figure 1 Blind signature result
對算法驗證環(huán)節(jié)中的各種異常情況進行測試的結(jié)果如表2所示,可以看出,本文的算法可以將惡意篡改錯誤信息的敵手與正常用戶區(qū)分出來。
表2 正確性測試
在Intel(R) Core(TM) i5-10210U CPU @ 1.60 GHz 2.11 GHz的處理器上運行本文算法(下文簡稱PBS)和參考文獻[12]算法,測試結(jié)果如表3所示。
表3 效率測試
從表3可以看出,本文算法在不計算與可信第三方通信時間的情況下,與文獻[12]算法在運行時間上處于相同數(shù)量級。
本文提出了一種基于SM9數(shù)字簽名算法的部分盲簽名方案。在保證用戶消息隱私的情況下,必要時可以通過公共信息追蹤用戶身份,與何德彪等提出的盲簽名方案[12]相比,避免了完全盲性。本文主要論述了方案中的盲簽名生成與驗證算法以及相關(guān)密鑰生成算法,并從盲簽名、時間戳兩個方面進行了正確性驗證和分析,通過編程測試驗證了該方案的主密鑰對、用戶私鑰、部分盲簽名生成算法以及驗簽算法。本文方案可以為電子現(xiàn)金、電子投票、電子拍賣等系統(tǒng)中的盲簽名[22-23]額外提供時效性與可控性,是一個很有應(yīng)用前景的方案。
[1] KOBLITZ N I. Introduction to elliptic curves and modular forms[M]. Springer Science & Business Media, 2012.
[2] MILLER V S. Use of elliptic curves in cryptography[C]// Conference on the Theory and Application of Cryptographic Techniques. Springer, Berlin, Heidelberg, 198: 417-426.
[3] SHAMIR A. Identity-based cryptography and signature schemes[C]// Proceedings of CRYPTO'84. 1984.
[4] SAKAI R. Cryptosystems based on pairing[C]//SCIS2000. 2000.
[5] BONEH D, FRANKLIN M. Identity-based encryption from the Weil pairing[C]//Annual International Cryptology Conference. 2001: 213-229.
[6] 袁峰, 程朝輝. SM9 標識密碼算法綜述[J]. 信息安全研究, 2016, 2(11): 1008-1027.
YUAN F, CHENG C H. A survey of SM9 identity cryptography algorithms[J]. Research on Information Security, 2016, 2(11): 1008-1027.
[7] CHAUM D. Blind signatures for untraceable payments[J]. Advances in Cryptology, 1983: 199-203.
[8] BRANDS S. Restrictive binding of secret-key certificates[C]//International Conference on the Theory and Applications of Cryptographic Techniques. 1995: 231-247.
[9] ABE M, FUJISAKI E. How to date blind signatures[C]//International Conference on the Theory and Application of Cryptology and Information Security. 1996:244-251.
[10] GMT 0044-2016 SM9標識密碼算法:第5部分參數(shù)定義[R].
GMT 0044-2016 SM9 identity cipher algorithm: part 5 Parameter Definitions[R].
[11] 湯志鵬, 李曉雄, 左黎明, 等. 高效安全無證書部分盲簽名[J]. 計算機工程與設(shè)計, 2013, 34(02): 339-446.
TANG Z P, LI X X, ZUO L M, et al. Efficient, secure, certificateless partial blind signature[J]. Computer Engineering and Design, 2013, 34(02): 339-446.
[12] 余丹, 楊曉元, 黃大威. 新的無證書部分盲簽名方案[J]. 計算機應(yīng)用研究, 2010, 27(11): 4319-4321.
YU D, YANG X Y, HUANG D W. A new certificateless partial blind signature scheme[J]. Computer Application Research, 2010, 27(11): 4319-4321.
[13] 何俊杰, 張帆, 紹輝. 對一個無證書部分盲簽名方案的分析與改進[J]. 信陽師范學(xué)院學(xué)報: 自然科學(xué)版, 2014, 27(2): 170-175.
HE J J, ZHANG F, SHAO H. Analysis and improvement of a certificateless partial blind signature scheme[J]. Journal of Xinyang Normal University: Natural Science Edition, 2014, 27(2): 170-175.
[14] 楊俊芳. 部分盲簽名研究及其應(yīng)用[D]. 南昌: 華東交通大學(xué), 2016.
YANG J F. Research and Application of partial Blind signature[D]. Nanchang: East China Jiaotong University, 2016.
[15] 張雪鋒, 彭華. 一種基于 SM9 算法的盲簽名方案研究[J]. 信息網(wǎng)絡(luò)安全, 2019, 19(8): 61-67.
ZHANG X F, PENG H. Research on a Blind signature scheme based on SM9 algorithm[J]. Information Network Security, 2019, 19(8): 61-67.
[16] 何德彪, 張語荻, 張宇波, 等. 一種基于SM9數(shù)字簽名的盲簽名生成方法及系統(tǒng):中國, CN201810333911.4[P]. 2018-04-13.
HE D B, ZHANG Y D, ZHANG Y B, et al. A blind signature generation method and system based on SM9 digital signature: China, CN201810333911.4[P]. 2018-04-13.
[17] 蘇志圖. 雙線性對的快速計算研究[D]. 西安: 西安電子科技大學(xué), 2012.
SU Z T. Study on the fast calculation of bilinear pairs[D]. Xi'an: Xi'an University of Electronic Science and Technology. 2012.
[18] 趙昌安. 雙線性對的有效計算[D]. 廣州:中山大學(xué), 2008.
ZHAO C A. Efficient calculation of bilinear pairs[D]. Guangzhou: Sun Yat-sen University. 2008.
[19] 趙昌安, 張方國. 雙線性對有效計算研究進展[J]. 軟件學(xué)報, 2009, 20(11): 3001-3009.
ZHAO C A, ZHANG F G. Research progress of bilinear pair effective computation[J]. Journal of Software, 2009, 20(11): 3001-3009.
[20] 李彬, 王新梅. 高效的R-ate對的參數(shù)構(gòu)造方法[J]. 通信學(xué)報, 2010, 31(1): 118-121.
LI B, WANG X M. An efficient parameter construction method for R-ate pairs [J]. Journal on Communication, 2010, 31(1): 118-121.
[21] 甘植旺, 廖方圓. 國密SM9中R-ate雙線性對快速計算[J]. 計算機工程, 2019, 45(6): 171-174.
GAN Z W, LIAO F Y. Fast calculation of R-ate bilinear pairs in national secret SM9[J]. Computer Engineering. 2019, 45(6): 171-174.
[22] 張驍, 周清雷, 李斌. 基于HRCA的可重構(gòu)SM4密碼算法研究與實現(xiàn)[J]. 網(wǎng)絡(luò)與信息安全學(xué)報, 2020, 6(5): 101-109.
ZHANG X, ZHOU Q L, LI B. Research and implementation of Reconfigurable SM4 cryptographic algorithm based on HRCA[J]. Journal of Network and Information Security, 2020, 6(5): 101-109.
[23] 吳邱涵, 胡衛(wèi). 基于SM2算法和區(qū)塊鏈的移動端身份認證協(xié)議設(shè)計[J]. 網(wǎng)絡(luò)與信息安全學(xué)報, 2018, 4(9): 60-65.
WU Q H, HU W. Design of mobile authentication protocol based on SM2 algorithm and block chain[J]. Journal of Network and Information Security, 2018, 4(9): 60-65.
Partial blind signature scheme based on SM9 algorithm
LYU Yao1, HOU Jinpeng2, NIE Chong2, SU Mang2, WANG Bin3, JIANG Hongling3
1. China Center for Information Industry Development, Beijing 100048, China 2. School of Computer Science and Engineering, Nanjing University of Science and Technology, Nanjing 210094, China 3. School of Information Management, Beijing Information Science & Technology University, Beijing 100192, China
Ordinary digital signatures have many deficiencies in effectively protecting users' privacy, and signature repudiation and tracking occur from time to time. In order to solve the above problems, a partial blind signature scheme based on the SM9 algorithm was proposed. Partially means that the signature message contains the user's message and other related information, so it can effectively resist signature repudiation and tracking, and introduce a trusted third party to prevent malicious users from tampering with information. Through experimental results and theoretical analysis, the security and efficiency of the proposed algorithm are proved.
SM9 algorithm, blind signature, partial blind signature,digital signature
TP393.08
A
10.11959/j.issn.2096?109x.2021037
2020?09?29;
2020?12?31
蘇铓,sumang@njust.edu.cn
國家自然科學(xué)基金(61702266)
The National Natural Science Foundation of China (61702266)
呂堯, 侯金鵬, 聶沖, 等. 基于SM9算法的部分盲簽名方案[J]. 網(wǎng)絡(luò)與信息安全學(xué)報, 2021, 7(4): 147-153.
LYU Y, HOU J P, NIE C, et al. Partial blind signature algorithm based on SM9[J]. Chinese Journal of Network and Information Security, 2021, 7(4): 147-153.
呂堯(1984?),男,陜西寶雞人,中國電子信息產(chǎn)業(yè)發(fā)展研究院助理研究員,主要研究方向為信息安全、電子認證領(lǐng)、密碼、數(shù)據(jù)安全和個人信息保護。
侯金鵬(1997?),男,黑龍江寶清人,南京理工大學(xué)碩士生,主要研究方向為密碼學(xué)、聯(lián)邦學(xué)習(xí)隱私保護、安全計算。
聶沖(1998?),男,河南信陽人,南京理工大學(xué)碩士生,主要研究方向為網(wǎng)絡(luò)空間安全。
蘇铓(1987?),女,內(nèi)蒙古赤峰人,南京理工大學(xué)副教授,主要研究方向為云計算安全、訪問控制、代理重加密。
王彬(1998? ),男,北京人,主要研究方向為大數(shù)據(jù)分析、等級測評。
蔣鴻玲(1986? ),女,天津人,博士,北京信息科技大學(xué)講師,主要研究方向為網(wǎng)絡(luò)安全、大數(shù)據(jù)分析。