摘 要: "針對(duì)現(xiàn)有無證書盲簽名方案計(jì)算復(fù)雜度過高的問題,基于國密算法SM2,提出了一種高效無證書盲簽名方案,該方案不需要雙線性對(duì)操作?;跈E圓曲線離散對(duì)數(shù)問題(ECDLP)的困難性,在隨機(jī)預(yù)言模型下對(duì)該方案進(jìn)行了形式化分析,能夠?qū)vpe-Ⅰ和Tvpe-Ⅱ攻擊均具有可證明的安全性。與現(xiàn)有無證書盲簽名方案進(jìn)行性能對(duì)比,分析結(jié)果表明,該方案計(jì)算開銷遠(yuǎn)低于其他幾種同類型的方案。
關(guān)鍵詞: "SM2; 無證書密碼技術(shù); 盲簽名; 隨機(jī)預(yù)言模型
中圖分類號(hào): "TP391 """文獻(xiàn)標(biāo)志碼: A
文章編號(hào): "1001-3695(2022)02-036-0001-00
doi:10.19734/j.issn.1001-3695.2021.07.0276
Certificateless blind signature scheme based on SM2
Tang Weizhong1,2, Zhang Dawei1,3, Tong Hui2
(1.School of Computer amp; Information Technology, Beijing Jiaotong University, Beijing 100044, China; 2.Dept.of Cyber Security, Beijing Police College, Beijing 102202, China; 3.Beijing Key Laboratory of Security and Privacy in Intelligent Transportation, Beijing 100044, China)
Abstract: "In view of the high computational cost of the existing certificateless blind signature schemes,this paper proposed an efficient certificateless blind signature scheme based on SM2,which does not require bilinear pairing operation.Based on the difficulty of the elliptic curve discrete logarithm problem(ECDLP) ,it was analyzed formally and found to be provably secure against both the Type-Ⅰ and Type-Ⅱ attacks.Compared with the existing certificateless blind signature schemes,the performance analysis show that the computing cost of the proposed certificateless blind signature scheme is far less than other similar schemes.
Key words: "SM2 signature; certificateless cryptography; blind signature; random oracle model
0 引言
盲簽名是由Chaum[1]在1982年首次提出的,用戶可從簽名者那里得到簽名者對(duì)消息的簽名,卻沒有對(duì)簽名者泄露關(guān)于所簽名消息的內(nèi)容,而且即使以后簽名者又見到了這個(gè)消息簽名時(shí),也無法把簽名過程與最終的簽名對(duì)應(yīng)起來。盲簽名的這種特性使得其被廣泛應(yīng)用于電子現(xiàn)金、電子投票等領(lǐng)域。無證書公鑰密碼體制是2003年被Riyami等人[2]提出的,解決了公鑰基礎(chǔ)設(shè)施中證書管理問題和基于身份的公鑰密碼體制[3]中密鑰托管問題。之后,學(xué)者們陸續(xù)設(shè)計(jì)了很多種無證書簽名方案。2008年,Zhang等人[4]把無證書簽名方案和盲簽名技術(shù)相結(jié)合,基于雙線性對(duì)提出了第一個(gè)無證書盲簽名方案,并進(jìn)行了安全性證明。Zhang等人[5]設(shè)計(jì)了一個(gè)可證安全的無證書盲簽名,安全性是基于CDHP和雙線性對(duì)逆難解問題,還有文獻(xiàn)[6~11]中設(shè)計(jì)的無證書盲簽名方案都包含雙線性對(duì)運(yùn)算,從而使計(jì)算開銷增加,性能降低。除了文獻(xiàn)[11],上述文獻(xiàn)都對(duì)其設(shè)計(jì)的方案進(jìn)行了安全性證明。為了提高性能,減少計(jì)算開銷,無雙線性對(duì)無證書盲簽名方案開始被越來越多的學(xué)者關(guān)注。文獻(xiàn)[12~14]先后提出了基于橢圓曲線DLP問題的無證書盲簽名方案。何俊杰等人[15]提出新的無證書盲簽名方案,安全性依賴于群 G 中的DLP的難解性。在文獻(xiàn)[12~15]提出的無證書簽名方案中,沒有使用雙線性對(duì)運(yùn)算,使計(jì)算效率得到較大提升。
基于國密算法SM2,本文提出了一種新的無證書盲簽名方案,安全性依賴于ECDLP問題的難解性,不含雙線性對(duì),在計(jì)算效率上有明顯的優(yōu)勢。并在隨機(jī)預(yù)言模型下證明了該方案滿足盲性和不可偽造性。
1 相關(guān)預(yù)備知識(shí)
1.1 ECDLP困難問題及其假設(shè)
橢圓曲線離散對(duì)數(shù)問題(ECDLP):階為 n 的點(diǎn) P,Q∈E(F q)及Q∈〈P〉(其中Q是P 的倍數(shù)點(diǎn)),如果存在正整數(shù) l∈[0,n-1] ,使得 Q=lP 成立,那么由 P,Q求l 的值即為橢圓曲線離散對(duì)數(shù)問題。
ECDLP假設(shè):在概率多項(xiàng)式時(shí)間內(nèi)算法 A 解決橢圓曲線離散對(duì)數(shù)問題的優(yōu)勢 AdvDL(A)= Pr [A(P,Q)=l|Q=lP,l∈Zn*] 。
1.2 ECDLP困難問題及其假設(shè)
SM2數(shù)字簽名算法詳見國密標(biāo)準(zhǔn)GM/T003[16],在此列舉本文提出的無證書盲簽名方案中需要用到的部分參數(shù):
A、B:使用公鑰密碼系統(tǒng)的兩個(gè)用戶。
d A :用戶A的私鑰。
E(F q):F q 上橢圓曲線 E 的所有有理點(diǎn)(包括無窮遠(yuǎn)點(diǎn)O)組成的集合。
e :密碼雜湊函數(shù)作用于消息 M 的輸出值。
e′ :密碼雜湊函數(shù)作用于消息 M′ 的輸出值。
F q :包含 q 個(gè)元素的有限域。
G :橢圓曲線的一個(gè)基點(diǎn),其階為素?cái)?shù)。
H() :密碼雜湊函數(shù)。
ID A :用戶A的可辨別標(biāo)志。
M :待簽名的消息; M′ :待驗(yàn)證消息。
mod "n :模 n 運(yùn)算。
n :基點(diǎn) G 的階( n 是 #E(F q) 的素因子)。
x∥y : x 與的拼接,其中 x、y 可以是比特串或字節(jié)串。
Z A :關(guān)于用戶A的可辨別標(biāo)志、部分橢圓曲線系統(tǒng)參數(shù)和用戶A公鑰的雜湊值。
(r,s) :發(fā)送的簽名。
(r′,s′) :收到的簽名。
2 無證書盲簽名的定義與安全模型
2.1 無證書盲簽名的定義
無證書盲簽名由系統(tǒng)建立、部分私鑰生成、秘密值生成、私鑰生成、公鑰生成、盲簽名和驗(yàn)證七個(gè)算法構(gòu)成,其中盲簽名包含承諾、消息盲化、簽名和脫盲四個(gè)子算法。
系統(tǒng)建立算法:此算法由可信第三方密鑰生成中心KGC運(yùn)行。輸入安全參數(shù) k ,KGC生成主密鑰 x 和輸出系統(tǒng)參數(shù) params ,其中主密鑰 x 由KGC秘密保管,系統(tǒng)參數(shù) params 開。
部分私鑰生成算法:此算法由KGC運(yùn)行。輸入系統(tǒng)參數(shù) params 、主密鑰 x 和簽名者身份 ID ,KGC輸出簽名者部分私鑰 u ID 。
秘密值生成算法:此算法由簽名者運(yùn)行。輸入系統(tǒng)參數(shù) params 和簽名者身份 ID ,輸出簽名者秘密值 v ID 。
私鑰生成算法:此算法由簽名者運(yùn)行。輸入簽名者的秘密值 v ID 和部分私鑰 u ID ,輸出簽名者的完整私鑰 d ID 。
公鑰生算法:此算法由簽名者運(yùn)行。輸入系統(tǒng)參數(shù) params 、簽名者身份 ID ,簽名者秘密值 v ID 和部分私鑰 u ID ,輸出簽名者的公鑰 PK ID 。
盲簽名算法:此算法由簽名者和用戶交互式協(xié)議。輸入系統(tǒng)參數(shù) params 、簽名者私鑰 d ID 和消息 M 簽名者和用戶交互完成,包含承諾、消息盲化、簽名和脫盲四個(gè)子算法,最后生成消息簽名。
驗(yàn)證算法:此算法由驗(yàn)證者運(yùn)行。輸入系統(tǒng)參數(shù) params 、簽名者公鑰 PK ID 、消息 M 和簽名,驗(yàn)證簽名的有效性,如果有效則接受,否則拒絕。
2.2 無證書盲簽名安全模型
無證書盲簽名的盲性是指簽名者不能把最終的簽名結(jié)果與簽名過程中所簽的消息對(duì)應(yīng)起來。盲性的形式化定義可以由挑戰(zhàn)者和攻擊者??之間的游戲來模擬盲簽名中的盲性,具體定義如下:
系統(tǒng)初始化:挑戰(zhàn)者輸入安全參數(shù) k ,執(zhí)行系統(tǒng)建立算法,輸出系統(tǒng)參數(shù),并把系統(tǒng)參數(shù)發(fā)送給攻擊者"Euclid Math OneAAp
。
挑戰(zhàn):攻擊者"Euclid Math OneAAp
選擇兩個(gè)嚴(yán)格區(qū)分的消息 M 0 和 M 1 ,并發(fā)送給挑戰(zhàn)者。 U 0 和 U 1 是兩個(gè)執(zhí)行盲簽名協(xié)議的誠實(shí)用戶,挑戰(zhàn)者秘密并隨機(jī)地選擇比特 b∈{0,1} ,將 M b 和 M 1-b 分別發(fā)送給 U 0 和 U 1 。攻擊者??與用戶 U 0 和 U 1 交互并對(duì) M b 和 M 1-b 進(jìn)行盲簽名,得到簽名 δ b 和 δ 1-b ,然后把 (M b,δ b) 和 (M 1-b,δ 1-b) 發(fā)送給"Euclid Math OneAAp
。
猜測:攻擊者"Euclid Math OneAAp
輸出對(duì) b 的猜測 b′∈{0,1} 。如果 b=b′ ,則攻擊者"Euclid Math OneAAp
贏得游戲。
攻擊者"Euclid Math OneAAp
贏得游戲的優(yōu)勢定義為: Adv( ?? )=|2 Pr [b′=b]-1| 。
定義1 "如果不存在攻擊者??在概率多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢贏得上述游戲,則盲簽名方案滿足盲性。
無證書簽名方案安全性是通過對(duì)兩類攻擊者的存在性不可偽造[2],這兩類攻擊者描述如下:類型Ⅰ攻擊者"Euclid Math OneAAp
1不能訪問系統(tǒng)的主密鑰,但可以替換用戶的公鑰;類型Ⅱ攻擊者"Euclid Math OneAAp
2可以訪問系統(tǒng)主密鑰,但不能替換公鑰。無證書盲簽名方案可以用挑戰(zhàn)者和攻擊者"Euclid Math OneAAp
1、"Euclid Math OneAAp
2之間的游戲來模擬盲簽名的不可偽造性,從而證明無證書盲簽名是安全的。
游戲1描述挑戰(zhàn)者與類型Ⅰ攻擊者"Euclid Math OneAAp
1之間的交互,過程如下:
系統(tǒng)建立:挑戰(zhàn)者輸入安全參數(shù) k ,執(zhí)行系統(tǒng)建立算法,輸出系統(tǒng)參數(shù),并把系統(tǒng)參數(shù)發(fā)送給攻擊者"Euclid Math OneAAp
1。
攻擊者"Euclid Math OneAAp
1適應(yīng)性地向挑戰(zhàn)者進(jìn)行多項(xiàng)式有界次的查詢:
Hash查詢:"Euclid Math OneAAp
1可以請(qǐng)求任意消息 M 的哈希值 H(M) 。
部分私鑰查詢:"Euclid Math OneAAp
1輸入用戶身份 ID i 進(jìn)行部分私鑰查詢,挑戰(zhàn)者把該身份對(duì)應(yīng)的部分私鑰值 u i 返回給"Euclid Math OneAAp
1。
秘密值查詢:"Euclid Math OneAAp
1輸入用戶身份 ID i 進(jìn)行秘密值查詢,挑戰(zhàn)者運(yùn)行秘密值算法輸出秘密值 v i ,返回給"Euclid Math OneAAp
1。
公鑰查詢:"Euclid Math OneAAp
1輸入用戶身份 ID i 進(jìn)行公鑰查詢,挑戰(zhàn)者運(yùn)行公鑰算法輸出"Euclid Math OneAAp
1公鑰值 PK i ,并返回給"Euclid Math OneAAp
1。
公鑰替換查詢:"Euclid Math OneAAp
1可以選擇一個(gè)新的隨機(jī)的公鑰值 PK′ i 替換用戶 ID i 最近使用的公鑰值 PK i 。
簽名查詢:"Euclid Math OneAAp
1輸入用戶身份 ID i 和消息 M 進(jìn)行簽名查詢,挑戰(zhàn)者用當(dāng)前公鑰值對(duì)應(yīng)的私鑰計(jì)算簽名 δ ,如果當(dāng)前公鑰已被"Euclid Math OneAAp
1替換,"Euclid Math OneAAp
1需提供替換公鑰的對(duì)應(yīng)私鑰給挑戰(zhàn)者。簽名需經(jīng)過驗(yàn)證是有效的,并把簽名結(jié)果返回給"Euclid Math OneAAp
1。
輸出:"Euclid Math OneAAp
1輸出 (ID*,M*,δ*) , ID* 為目標(biāo)用戶的身份, δ* 為 M* 的簽名,如果滿足以下連個(gè)條件,"Euclid Math OneAAp
1贏得游戲,偽造成功。
a)"Euclid Math OneAAp
1沒有進(jìn)行過部分私鑰查詢和簽名查詢;
b)對(duì)簽名結(jié)果進(jìn)行驗(yàn)證,結(jié)果正確。
游戲2描述挑戰(zhàn)者與類型Ⅱ攻擊者"Euclid Math OneAAp
2之間的交互,過程如下:
系統(tǒng)建立:挑戰(zhàn)者輸入安全參數(shù) k ,執(zhí)行系統(tǒng)建立算法,輸出系統(tǒng)參數(shù)和主密鑰 x ,并把系統(tǒng)參數(shù)和主密鑰 x 發(fā)送給攻擊者"Euclid Math OneAAp
2。
Hash查詢:"Euclid Math OneAAp
2可以請(qǐng)求任意消息 M 的哈希值 H(M) 。
部分私鑰查詢:"Euclid Math OneAAp
2輸入用戶身份 ID* 進(jìn)行部分私鑰查詢,挑戰(zhàn)者把該身份對(duì)應(yīng)的部分私鑰值 u i 返回給"Euclid Math OneAAp
2。
秘密值查詢:"Euclid Math OneAAp
2輸入用戶身份 ID i 進(jìn)行秘密值查詢,挑戰(zhàn)者運(yùn)行秘密值算法輸出秘密值 v i ,返回給"Euclid Math OneAAp
2。
公鑰查詢:"Euclid Math OneAAp
2輸入用戶身份 ID i 進(jìn)行公鑰查詢,挑戰(zhàn)者運(yùn)行公鑰算法輸出"Euclid Math OneAAp
2公鑰值 PK i ,并返回給"Euclid Math OneAAp
2。
簽名查詢:"Euclid Math OneAAp
2輸入用戶身份 ID i 和消息 M 進(jìn)行簽名查詢,挑戰(zhàn)者計(jì)算簽名 δ ,并把簽名結(jié)果返回給"Euclid Math OneAAp
2。
輸出:"Euclid Math OneAAp
2輸出 (ID*,M*,δ*) , ID* 為目標(biāo)用戶的身份, δ* 為 M* 的簽名,如果滿足以下連個(gè)條件,"Euclid Math OneAAp
2贏得游戲,偽造成功。
a)"Euclid Math OneAAp
2沒有進(jìn)行過秘密值查詢和簽名查詢;
b)對(duì)簽名結(jié)果進(jìn)行驗(yàn)證,結(jié)果正確。
定義2 "如果不存在攻擊者"Euclid Math OneAAp
1和"Euclid Math OneAAp
2能夠在概率多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢贏得上述游戲,則稱該無證書盲簽名方案在適應(yīng)性選擇消息攻擊下具有不可偽造性。
3 基于SM2的無證書盲簽名方案
3.1 方案構(gòu)造
a)系統(tǒng)建立。輸入系統(tǒng)安全參數(shù) k ,KGC生成素?cái)?shù) q 和定義在有限域 F q 上的橢圓曲線 E(F q) 。 G 是由 E(F q) 上的點(diǎn)組成的階為 q 的加法群。KGC選擇 x∈Z* n為系統(tǒng)主密鑰,計(jì)算主公鑰P pub=xG,x 由KGC秘密保存;選取安全抗碰撞哈希函數(shù) H 1:{0,1}*×G q→Z* nG q→Z* n,H 2:{0,1}*→{0,1}k公開系統(tǒng)參數(shù)params={F q,E(F q),n,G,P pub,H 1,H 2}。
b)部分私鑰生成。簽名者A向KGC提交其身份 ID A 。KGC隨機(jī)選擇 y A∈Z * n,計(jì)算,Y A=y AG,q A=H 1(ID A,Y A),u A=y A+xq A,通過安全認(rèn)證通道將(u A,Y A)發(fā)送給 A。簽名者A驗(yàn)證 u AG=Y A+q AP pub 是否成立,若成立則接受 u A 。
c)秘密值生成。簽名者A隨機(jī)選取秘密值 v A∈Z * n 。
d)私鑰生成。簽名者A將部分私鑰 u A 和秘密值 v A 結(jié)合,得到簽名者的私鑰 d A=(u A,v A) 。
e)公鑰生成。簽名者計(jì)算 X A=u AG , T A=v AG 簽名者A將 X A 和 T A 結(jié)合在一起作為公鑰 PK A=(X A,T A) 。
f)盲簽名。盲簽名包含四個(gè)部分,分別為承諾、消息盲化、簽名和脫盲。
(a)承諾。簽名者A隨機(jī)選擇 k∈[1,n-1] ,計(jì)算 Q=kG ,將 Q 、 PK A 和 Z A 發(fā)送給用戶B。
(b)消息盲化。
B1:用戶B計(jì)算 "=Z A‖M,e=H 2( ) ;
B2:用戶B隨機(jī)生成盲化因子, α,β,γ∈[1,n-1] ,計(jì)算橢圓曲線點(diǎn) L=(x,y)=(β+γ)PK+αQ+βG ;
B3:用戶B計(jì)算 r=L x "mod "n=(e+x 1) mod "n ,若 r=0 則返回B2;
B4:用戶B計(jì)算 r′=α-1(r-γ) 。若 r′=0 則返回B2, M 為原始消息, r 是盲化后的消息。將 r′ 發(fā)送給A。
(c)簽名。 d A=(u A+v A) mod "n 。簽名者A收到 r′ 后計(jì)算 s′=(1+d a)-1(k-r′d A) mod n 。若 s′=0 ,則返回B1,重新生成 s′ 。然后,簽名者A把 s′ 發(fā)送給B。
(d)脫盲。
B5:用戶B收到 s′ 后,計(jì)算 s=as′+β。(r,s) 即為 M 的盲簽名。
(e)驗(yàn)證。
任何驗(yàn)證者可以通過 R=e+((r+s)PK A+sG) x "mod "n 對(duì)盲簽名進(jìn)行驗(yàn)證。
為了檢驗(yàn)收到的消息 M′ 和盲簽名 (r″,s″) ,驗(yàn)證者進(jìn)行以下運(yùn)算步驟:
C1:檢驗(yàn) r″∈[1,n-1] 是否成立,若不成立則驗(yàn)證不通過;
C2:檢驗(yàn) s″∈[1,n-1] 是否成立,若不成立則驗(yàn)證不通過;
C3:計(jì)算 "′=Z A||M′,e′=H 2( ′) ;將 e′ 數(shù)據(jù)類型轉(zhuǎn)換為整數(shù);
C4:將 s″ , r″ 的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù),計(jì)算 t=(s″+r″) mod n ;若 t=0 ,則驗(yàn)證不通過;
C5:計(jì)算橢圓曲線點(diǎn) (x′ 1,y′ 1)=[s″]G+[t]PK A=[s″]G+[t](X A+T A) ;
C6:計(jì)算 R=(e′+x′ 1) mod n ,將 R 的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù),檢驗(yàn) R=r″ 是否成立,若成立,則驗(yàn)證通過;否則驗(yàn)證不通過。
3.2 算法的正確性
正文表述正確性驗(yàn)證如下: tPK A+sG=(r+s)PK A+sG=rPK A+(1+d)sG=
(αr′+γ)PK A+(1+d)(αs′+β)G=αr′PK A+γPK A+αkG-αr′d AG+βG+βPK A=(β+γ)PK A+αQ+βG=(x 1,y 1) ,因此可以證明 R=r″ ,本方案正確。
4 方案安全性證明
4.1 盲性證明
定理1 本方案滿足盲性。
證明 簽名者與用戶 U 0和U 1 進(jìn)行交互得到 (M b,δ b=(r b,s b),M 1-b,δ 1-b=(r 1-b,s 1-b)) 其中 b∈{0,1} 對(duì)于發(fā)布的任意一個(gè)有效盲簽名 δ=(r,s) 和簽名者私下保存的簽名過程中任意一組中間變量 (r i,s i,Q,PK A) 之間存在三個(gè)隨機(jī)因子 α,β,γ ,滿足以下等式:
r i=α-1(r-γ) ""(1)
s=αs i+β ""(2)
(r+s)PK A+sG=(β+γ)PK A+αQ+βG ""(3)
簽名者無法得知三個(gè)隨機(jī)值 α,β,γ。因?yàn)槊せ蜃应?,β,γ的存在,無法得知(r,s)與(r i,s i) 之間的聯(lián)系。所以在定義1游戲中,簽名者只能以1/2的概率判定 b 的值,攻擊者贏得游戲的優(yōu)勢可以忽略,所以本文提出的盲簽名滿足盲性。
4.2 安全性分析
定理2 "在隨機(jī)預(yù)言模型下,該方案能夠抵抗第一類攻擊者"Euclid Math OneAAp
1適應(yīng)性選擇消息攻擊下的存在性偽造。
證明 "假設(shè)存在攻擊者"Euclid Math OneAAp
1能夠以不可忽略的概率 ε 偽造出合法的盲簽名,構(gòu)造一個(gè)模擬器"Euclid Math OneBAp
可以解決ECDLP問題,給定ECDLP問題實(shí)例 (P,P 0) ,"Euclid Math OneBAp
計(jì)算 a∈Z* n ,使得 P 0=aP ,其中 P 為 G 。"Euclid Math OneBAp
控制隨機(jī)預(yù)言機(jī)。在多項(xiàng)式時(shí)間內(nèi),假設(shè)"Euclid Math OneAAp
1能夠進(jìn)行 q H 1 次 H 1 查詢, q ppk 次部分私鑰查詢。"Euclid Math OneBAp
隨機(jī)選擇挑戰(zhàn)身份 ID I , I∈[1,q H 1] 。攻擊者"Euclid Math OneAAp
1與"Euclid Math OneBAp
交互過程如下:
初始化:"Euclid Math OneBAp
生成系統(tǒng)參數(shù) params={F q,E(F q),n,G,P pub,H 1,H 2} ,并將 params 發(fā)送給"Euclid Math OneAAp
1,其中 P pub=P 0 。
H 1 查詢:"Euclid Math OneBAp
管理格式為 (ID i,Y i,q i) 的列表 L 1 。"Euclid Math OneAAp
1每次向"Euclid Math OneBAp
發(fā)起 (ID i,Y i) , i∈[1,q H 1] 查詢,"Euclid Math OneBAp
收到后首先查詢 (ID i,Y i,q i) 是否在列表 L 1 中,如果在,將 q i 返回給"Euclid Math OneAAp
1。否則,"Euclid Math OneBAp
選擇隨機(jī)數(shù) q i∈Z* n ,把 (ID i,Y i,q i) 插入 L 1 中并返回 q i 給"Euclid Math OneAAp
1。
H 2 查詢:"Euclid Math OneBAp
管理格式為 ( "i,e i) 的列表 L 2 。"Euclid Math OneBAp
收到"Euclid Math OneAAp
1關(guān)于 ""i 查詢,查詢 ( "i,e i) 是否在 L 2 中,如果存在,"Euclid Math OneBAp
返回 e i 給"Euclid Math OneAAp
1。否則,"Euclid Math OneBAp
隨機(jī)選擇 e i∈Z* n ,將 ( "i,e i) 添加到 L 2 中。
部分私鑰查詢:"Euclid Math OneBAp
管理格式為 (ID i,u i,Y i) 的列表 L par 。對(duì)于"Euclid Math OneAAp
1向"Euclid Math OneBAp
發(fā)起關(guān)于 ID i(i∈[1,q ppk]) 的部分私鑰查詢,如果 ID i=ID I ,則"Euclid Math OneBAp
中止模擬(事件E1)。否則"Euclid Math OneBAp
查詢 (ID i,u i,Y i) 的是否在列表 L par 中,如果存在,"Euclid Math OneBAp
返回 u i 給"Euclid Math OneAAp
1; 如果 L par 中不存在,則"Euclid Math OneBAp
生成隨機(jī)數(shù) u i , q i ,計(jì)算 Y i=u iG-q iP 0 ,將 (ID i,u i,Y i) 的添加到列表 L par ,"Euclid Math OneBAp
返回 u i 和 Y i 給"Euclid Math OneAAp
1。
秘密值查詢:"Euclid Math OneBAp
管理格式為 (ID i,v i) 的列表 L pri 。當(dāng)"Euclid Math OneAAp
1提交關(guān)于 ID i 的秘密值查詢時(shí),"Euclid Math OneBAp
查詢 (ID i,v i) 是否在列表 L pri 中。若存在,"Euclid Math OneBAp
把 v i 返回給"Euclid Math OneAAp
1。否則,"Euclid Math OneBAp
進(jìn)行部分私鑰查詢得到 u i ,生成隨機(jī)數(shù) v i∈Z* n ,然后把 (ID i,v i) 加入到列表 L pri ,返回 v i 給"Euclid Math OneAAp
1。
公鑰查詢:"Euclid Math OneBAp
管理格式為 (ID i,X i,T i) 的列表 L pub 。"Euclid Math OneBAp
收到"Euclid Math OneAAp
1關(guān)于 ID i 的公鑰查詢后,在 L pub 表中查詢是否存在,若存在,則"Euclid Math OneBAp
返回 PK i=(X i,T i) 。否則,"Euclid Math OneBAp
查詢 L par 和 L pri ,計(jì)算 X i=u iG , T i=v iG ,把 (ID i,u i,Y i) 添加到列表 L pub 并返回 PK i=(X i,T i) 。若 L par 和 L pri 不存在 u i 和 v i 的記錄,且 ID i≠ID I ,"Euclid Math OneBAp
執(zhí)行部分私鑰查詢和秘密值查詢獲得相應(yīng)的值,計(jì)算 X i=u iG , T i=v iG ,把 (ID i,u i,Y i) 添加到列表 L pub 并返回 PK i=(X i,T i) ;否則 ID i=ID I ,"Euclid Math OneBAp
生成3個(gè)隨機(jī)數(shù) y i,q i,v i∈Z* n ,計(jì)算 X i=y iG+q iP 0 , T i=v iG , Y i=y iG ,把 (ID i,v i) 、 (ID i,⊥,Y i) 、 (ID i,u i,Y i) 和 (ID i,Y i,q i) 分別加入到列表 L pri 、 L par 、 L pub 和 L 1 中,并返回 PK i=(X i,T i) 。
公鑰替換查詢:當(dāng)"Euclid Math OneAAp
1提交關(guān)于 (ID i,X′ i,T′ i) 的查詢后,"Euclid Math OneBAp
首先查詢表 L pub 是否含有,若不存在,"Euclid Math OneBAp
首先執(zhí)行公鑰查詢,然后"Euclid Math OneBAp
利用 X′ i 和 T′ i 分別替換 X i 和 T i 。
簽名查詢:當(dāng)"Euclid Math OneBAp
收到"Euclid Math OneAAp
1對(duì)消息 (ID i,M′) 的查詢后,產(chǎn)生隨機(jī)數(shù) r,s∈Z* n ,計(jì)算 L x=(x 1,y 1) x=[s]G+[r+s](X i+T i) ,生成盲簽名 (r,s) 并輸出。
輸出:經(jīng)過多項(xiàng)式有界次查詢之后,"Euclid Math OneAAp
1以不可忽略的概率 ε 偽造一個(gè)對(duì)消息 (ID*,M)的簽名(r 1,s 1) 。如果 ID*≠ID i≠ID I ,則"Euclid Math OneBAp
挑戰(zhàn)失敗并停止(事件E2);否則,偽造成功,根據(jù)分叉定理[14],采用不同的哈希值重復(fù)上述查詢,可以再生成另外兩個(gè)個(gè)簽名對(duì) (r 2,s 2) 和 (r 3,s 3) 。則可以得到(其中 j=1,2,3 ):
L x=[s j]G+[r j+s j](X I+T I) ""(4)
設(shè) L x=tG ,因?yàn)?X I=u IG=y IG+q IP 0=y IG+q IaG , T I=v IG ,所以有式(4)和上述等式可得:
t=[s j]+[r j+s j](y IG+q Ia+v I) ""(5)
式(5)中有三個(gè)未知數(shù) t,a,v 1 ,且互相線性獨(dú)立,聯(lián)立三個(gè)方程即可求出 a 的值。"Euclid Math OneBAp
利用"Euclid Math OneAAp
1的能力成功解出一個(gè)ECDLP實(shí)例。要成功的偽造一對(duì)簽名,需要滿足以下三個(gè)條件[15]:
事件 θ 1 "表示沒有對(duì)其進(jìn)行過部分私鑰查詢,即事件E1不發(fā)生,Pr [θ 1]≥(1-1/q H 1)q ppk 。
事件 θ 2 "表示偽造的簽名是有效的,Pr [θ 2|θ 1]≥ε 。
事件 θ 3 "偽造的簽名需滿足 ID 一致,即事件E2不發(fā)生,Pr [θ 3|θ 1∧θ 2]≥1/q H 1 。
因此,"Euclid Math OneBAp
利用"Euclid Math OneAAp
1的能力在多項(xiàng)式時(shí)間內(nèi)以不可忽略概率 ε′= Pr [θ 1∧θ 2∧θ 3]= Pr [θ 1]· Pr [θ 2|θ 1]· Pr [θ 3∧θ 2∧θ 1]≥(1-1/q H 1)q ppk·ε·1/q H 1 成功解決一個(gè)ECDLP實(shí)例,這與ECDLP的困難性矛盾,所以方案能夠抵抗攻擊者"Euclid Math OneAAp
1適應(yīng)性選擇消息攻擊下的存在性偽造。
定理3 "在隨機(jī)預(yù)言模型下,該方案能夠抵抗第二類攻擊者"Euclid Math OneAAp
2適應(yīng)性選擇消息攻擊下的存在性偽造。
證明 "假設(shè)存在攻擊者"Euclid Math OneAAp
2能夠以不可忽略的概率 ε 偽造出合法的盲簽名,構(gòu)造一個(gè)模擬器"Euclid Math OneBAp
可以解決ECDLP問題,給定ECDLP問題實(shí)例 (P,P 0),計(jì)算a∈Z* n,使得P 0=aP,其中P為G 。
假設(shè)"Euclid Math OneAAp
2能夠進(jìn)行 q H 1次H 1查詢,q ppk次部分私鑰查詢,q sv次秘密值查詢,q s次簽名查詢。"Euclid Math OneBAp
隨機(jī)選擇挑戰(zhàn)身份ID I(I∈[1,q H 1])。攻擊者"Euclid Math OneAAp
2與"Euclid Math OneBAp
交互過程如下:其中H 1查詢、H 2 查詢和簽名查詢按照定理1中的方式進(jìn)行回答。
初始化:"Euclid Math OneBAp
選擇隨機(jī)數(shù) x∈Z* n作為系統(tǒng)主密鑰,生成系統(tǒng)參數(shù)params={F q,E(F q),n,G,P pub,H 1,H 2},其中P pub=xG,并將params和x 發(fā)送給"Euclid Math OneAAp
2。
部分私鑰查詢:"Euclid Math OneBAp
管理格式為 (ID i,u i,Y i) 的列表 L par 。對(duì)于"Euclid Math OneAAp
2向"Euclid Math OneBAp
發(fā)起關(guān)于 ID i ( i∈[1,q ppk] )的部分私鑰查詢,"Euclid Math OneBAp
查詢 (ID i,u i,Y i) 的是否在列表 L par 中,如果存在,"Euclid Math OneBAp
返回 u i 給"Euclid Math OneAAp
2;如果 L par 中不存在,則"Euclid Math OneBAp
生成隨機(jī)數(shù) u i,q i ,,計(jì)算 Y i=u iG-q iP 0 ,將 (ID i,u i,Y i) 添加到列表 L par ,"Euclid Math OneBAp
返回 u i 和 Y i 給"Euclid Math OneAAp
2。
秘密值查詢:"Euclid Math OneBAp
管理格式為 (ID i,v i) 的列表 L sv 。當(dāng)"Euclid Math OneAAp
2提交關(guān)于 ID i 的秘密值查詢時(shí),如果 ID i≠ID I ,則挑戰(zhàn)者"Euclid Math OneBAp
挑戰(zhàn)失敗并停止(事件E1),否則"Euclid Math OneBAp
查詢 (ID i,v i) 是否在列表 L sv 中。若存在,"Euclid Math OneBAp
把 v i 返回給"Euclid Math OneAAp
2。否則,"Euclid Math OneBAp
生成隨機(jī)數(shù) v i∈Z* n ,然后把 (ID i,v i) 加入到列表 L sv ,返回 v i 給"Euclid Math OneAAp
2。
公鑰查詢:"Euclid Math OneBAp
管理格式為 (ID i,X i,T i) 的列表 L pub 。"Euclid Math OneBAp
收到"Euclid Math OneAAp
2關(guān)于 ID i 的公鑰查詢后,在 L pub 表中查詢是否存在,若存在,則"Euclid Math OneBAp
返回 PK i=(X i,T i) 。否則,"Euclid Math OneBAp
查詢 L par 和 L pri ,計(jì)算 X i=u iG , T i=v iG ,把 (ID i,X i,T i) 添加到列表 L pub 并返回 PK i=(X i,T i) 。若 L par 和 L pri 不存在 u i 和 v i 的記錄,且 ID i≠ID I ,"Euclid Math OneBAp
執(zhí)行部分密鑰提取查詢和秘密值查詢獲得相應(yīng)的值,計(jì)算 X i=u iG , T i=v iG ,把 (ID i,X i,T i) 添加到列表 L pub 并返回 PK i=(X i,T i) ;否則 ID i=ID I ,令 v i=v I=⊥ , T i=T I=aG , a∈Z* n ,用未知數(shù) a 模擬用戶的秘密值。
簽名查詢:當(dāng)"Euclid Math OneBAp
收到"Euclid Math OneAAp
2對(duì)消息 (ID i,M) 的查詢后,如果 ID i=ID I ,則"Euclid Math OneBAp
模擬終止(事件E2)。否則,"Euclid Math OneBAp
模擬盲簽名算法生成盲簽名 (r,s) 并發(fā)送給"Euclid Math OneAAp
2。
輸出:經(jīng)過多項(xiàng)式有界次查詢之后,"Euclid Math OneAAp
2以不可忽略的概率 ε 偽造一個(gè)對(duì)消息 (ID*,M) 的簽名 (r 1,s 1) 。根據(jù)分叉定理[15],采用不同的哈希值重復(fù)上述查詢,可以再生成另外一個(gè)簽名對(duì) (r 2,s 2) 。則可以得到:
L x=[s j]G+[r j+s j](X I+T I) ""(6)
設(shè) L x=tG,因?yàn)閄 I=u IG=y IG+q IP pub=y IG+q IaG,T I=aG 所以有式6)和上述等式可得(其中 j=1,2,3 ):
t=[s j]+[r j+s j](y I+q Ix+a) ""(7)
式(6)中有2個(gè)未知數(shù) t,a ,且互相線性獨(dú)立,聯(lián)立2個(gè)方程即可求出 a 的值。"Euclid Math OneBAp
利用"Euclid Math OneAAp
2的能力成功解出一個(gè)ECDLP實(shí)例。要成功的偽造一對(duì)簽名,需要滿足以下三個(gè)條件:行 q H 1 次 H 1 查詢, q ppk 次部分私鑰查詢, q pv 次秘密值查詢, q s 次簽名查詢。
事件 θ 1 "表示"Euclid Math OneBAp
模擬過程中沒有被終止,即沒有對(duì)其進(jìn)行過秘密值查詢和簽名查詢,即事件 E1和E2 不發(fā)生,Pr [E1]=(1-1/q H 1)q sv ,Pr [E2]=(1-1/q H 1)q s Pr [θ 1]≥ Pr [E1]· Pr [E2]=(1-1/q H 1)q sv+q s 。
事件 θ 2 "表示偽造的簽名是有效的,Pr [θ 2|θ 1]≥ε 。
事件 θ 3 "偽造的簽名需滿足 ID 一致,即事件E3不發(fā)生,Pr [θ 3|θ 1∧θ 2]≥1/q H 1 。
因此,"Euclid Math OneBAp
利用"Euclid Math OneAAp
2的能力在多項(xiàng)式時(shí)間內(nèi)以不可忽略概率 ε′= Pr [θ 1∧θ 2∧θ 3]= Pr [θ 1]· Pr [θ 2|θ 1]· Pr [θ 3∧θ 2∧θ 1]≥(1-1/q H 1)q sv+q s·ε·1/q H 1 成功解決一個(gè)ECDLP實(shí)例,這與ECDLP的困難性矛盾,所以方案能夠抵抗攻擊者"Euclid Math OneAAp
2適應(yīng)性選擇消息攻擊下的存在性偽造。
5 性能分析
本方案與其他文獻(xiàn)中提出的盲簽名方案進(jìn)行效率比較,其中P表示雙線性對(duì)運(yùn)算,S表示中或者橢圓曲線上的標(biāo)量乘運(yùn)算,A表示兩個(gè)橢圓曲線點(diǎn)的加法運(yùn)算,H表示Map-To-Point散列運(yùn)算,E表示冪乘運(yùn)算,I表示 Z* n 中的求逆運(yùn)算,執(zhí)行點(diǎn)乘運(yùn)算為M。如表1所示,以上運(yùn)算的計(jì)算開銷比對(duì)數(shù)據(jù)參考文獻(xiàn)[16]。
表2顯示了本方案與其他CLBS方案的詳細(xì)性能比較,其中所涉及符號(hào)表1中定義。通過比較各方案,本方案總耗時(shí)約為方案[12]的68%,約為方案[13]的94%,約為方案[15]的82%,約為方案[14]的90%,本文提出的無證書盲簽名方案性能優(yōu)于其他方案。
圖1是對(duì)不同CLBS方案的簽名生成和驗(yàn)證兩個(gè)階段耗時(shí)進(jìn)行比對(duì),由圖可知,本方案具有更高的計(jì)算效率。結(jié)合表2,可以明顯看出,本文CLBS方案能夠以最小的計(jì)算開銷同時(shí)實(shí)現(xiàn)抵抗第Ⅰ類攻擊者和第Ⅱ攻擊者的攻擊。
6 結(jié)束語
本文結(jié)合國密算法SM2提出一種無證書盲簽名方案,使得簽名方案既有無證書密碼的特點(diǎn),又有盲簽名的特性。同時(shí)在隨機(jī)預(yù)言模型下證明該方案是安全的,滿足盲性和適應(yīng)性選擇消息下的存在不可偽造性。與其他現(xiàn)有方案進(jìn)行對(duì)比,本方案在性能上具有優(yōu)勢和更好的安全特性,因此,本方案在許多情況下,特別是在通信帶寬和存儲(chǔ)空間有限的情況下,都是適用的。
參考文獻(xiàn):
[1] "Chaum D.Blind Signatures for untraceable payments[C]//Advances in Cryptology-Crypto.New York:SpringerVerlag.1982:199-203.
[2] Riyami A S,Paterson K.Certificateless public key cryptography[C]//Advances in Cryptology-Asiacrypt.Berlin:Springer-Verlag,2003:452-473.
[3] Shamir A.Identity-based cryptosystems and signature schemes[C]//Advances in Cryptology-Crypto.Berlin:Springer-Verlag.1984:47-53.
[4] Zhang Lei,Zhang Futai.Certificateless signature and blind signature[J]. Journal of Electronics ,2008, 25 (5):629-635.
[5] Zhang Jianhong,Gao Shengnan.Efficient provable certificateless blind signature scheme[C]//Proc of International Conference on Networking.Piscataway,NJ:IEEE Press,2010:292-297.
[6] 蘇萬力,張躍宇,張曉紅,等.無證書盲簽名方案[J].電子科技大學(xué)學(xué)報(bào),2009, 38 (4):533-536. (Su Wanli,Zhang Yueyu,Zhang Xiaohong, et al. "Certificateless blind signature scheme[J]. Journal of University of Electronic Science and Technology of China ,2009, 38 (4):533-536.)
[7] 黃茹芬,農(nóng)強(qiáng),黃振杰.一個(gè)高效的無證書盲簽名方案[J].計(jì)算機(jī)工程,2013, 39 (2):130-136. (Hang Rufen,Nong qiang,Huang Zhenjie.An efficient certificateless blind signature scheme[J]. Computer Engineering ,2013, 39 (2):130-136.)
[8] 何俊杰,張帆,祁傳達(dá).新的無可信私鑰生成中心的盲簽名方案[J].計(jì)算機(jī)應(yīng)用,2013, 33 (4):1061-1064,1095. (He Junjie,Zhang Fan,Qi Chuanda.New blind signature scheme without trusted private key generator[J]. Journal of Computer Applications ,2013, 33 (4):1061-1064,1095.)
[9] 劉二根,王霞,周華靜.一種無證書盲簽名方案的分析與改進(jìn)[J].計(jì)算機(jī)應(yīng)用與軟件,2017,34(2):308-312. (Liu Ergen,Wang Xia,Zhou Huajing.Analysis and improvement of a certificateless blind signature scheme[J]. Computer Applications and Software ,2017, 34 (2):308-312.)
[10] 曾麗,李旭東.基于橢圓曲線的強(qiáng)無證書盲簽名方案[J].網(wǎng)絡(luò)空間安全,2018,9(5):41-44. (Zeng Li,Li Xudong.A strong certificate free blind signature scheme based on elliptic curve[J]. Cyberspace Security ,2018, 9 (5):41-44.)
[11] 廖小平.基于無證書的盲參數(shù)簽名方案[J].現(xiàn)代信息科技,2019, 3 (3):158-159. (Liao Xiaoping.Certificate-free blind parameter signature scheme[J]. Modern Information Technology ,2019, 3 (3):158-159.)
[12] Dong Guofang,Gao Fei,Shi Wenbo, et al. An efficient certificateless blind signature scheme without bilinear pairing[J]. Anais da Academia Brasileira de Ciencias ,2014,86(2):1003-1011.
[13] 龔國昌,石志寒.具有強(qiáng)盲性的高效無證書盲簽名方案[J].計(jì)算機(jī)應(yīng)用,2014,34(7):1890-1892,1901. (Gong Guochang,Shi Zhihan.Strongly blind and efficient certificateless blind signature scheme[J]. Journal of Computer Applications ,2014, 34 (7):1890-1892,1901.)
[14] Sanjeet K N,Sujata M,Banshidhar M.CLB-ECC:certificateless blind signature using ECC[J]. Journal of Information Processing Systems ,2017, 4 (13):970-986.
[15] 何俊杰,張雪峰,祁傳達(dá).一種不含雙線性對(duì)的無證書盲簽名方案[J].計(jì)算機(jī)工程,2015, 41 (7):171-176. (He Junjie,Zhang Xuefeng,Qi Chuanda.A certificateless blind signature scheme without bilinear pairing[J]. Computer Engineering ,2015, 41 (7):171-176.)
[16] 國家密碼管理局.GM/T 0003—2012.SM2橢圓曲線公鑰密碼算法[S].北京:中國標(biāo)準(zhǔn)出版社,2012. (China Encryption Administration.GM / T 0003-2012.SM2 elliptic curve public key cryptography algorithm[S].Beijing:China Standards Press,2012).
[17] Pointcheval D,Stern J.Security arguments for digital signatures and blind signatures[J]. Journal of Cryptology ,2000, 13 (3):361-396.
[18] Karati A,Islam S K H,Biswas G P.A pairing-free and provably secure certificateless signature scheme[J]. Information Sciences ,2018, 450 :378-391.
[19] Islam S K H,Biswas G P.A pairing-free identity-based authenticated group key agreement protocol for imbalanced mobile networks[J]. Annals of Telecommunications Annales Des Télécommunications ,2012, 67 (11/12):547-558.