






摘 要: "針對現有無證書盲簽名方案計算復雜度過高的問題,基于國密算法SM2,提出了一種高效無證書盲簽名方案,該方案不需要雙線性對操作。基于橢圓曲線離散對數問題(ECDLP)的困難性,在隨機預言模型下對該方案進行了形式化分析,能夠對Tvpe-Ⅰ和Tvpe-Ⅱ攻擊均具有可證明的安全性。與現有無證書盲簽名方案進行性能對比,分析結果表明,該方案計算開銷遠低于其他幾種同類型的方案。
關鍵詞: "SM2; 無證書密碼技術; 盲簽名; 隨機預言模型
中圖分類號: "TP391 """文獻標志碼: A
文章編號: "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年首次提出的,用戶可從簽名者那里得到簽名者對消息的簽名,卻沒有對簽名者泄露關于所簽名消息的內容,而且即使以后簽名者又見到了這個消息簽名時,也無法把簽名過程與最終的簽名對應起來。盲簽名的這種特性使得其被廣泛應用于電子現金、電子投票等領域。無證書公鑰密碼體制是2003年被Riyami等人[2]提出的,解決了公鑰基礎設施中證書管理問題和基于身份的公鑰密碼體制[3]中密鑰托管問題。之后,學者們陸續設計了很多種無證書簽名方案。2008年,Zhang等人[4]把無證書簽名方案和盲簽名技術相結合,基于雙線性對提出了第一個無證書盲簽名方案,并進行了安全性證明。Zhang等人[5]設計了一個可證安全的無證書盲簽名,安全性是基于CDHP和雙線性對逆難解問題,還有文獻[6~11]中設計的無證書盲簽名方案都包含雙線性對運算,從而使計算開銷增加,性能降低。除了文獻[11],上述文獻都對其設計的方案進行了安全性證明。為了提高性能,減少計算開銷,無雙線性對無證書盲簽名方案開始被越來越多的學者關注。文獻[12~14]先后提出了基于橢圓曲線DLP問題的無證書盲簽名方案。何俊杰等人[15]提出新的無證書盲簽名方案,安全性依賴于群 G 中的DLP的難解性。在文獻[12~15]提出的無證書簽名方案中,沒有使用雙線性對運算,使計算效率得到較大提升。
基于國密算法SM2,本文提出了一種新的無證書盲簽名方案,安全性依賴于ECDLP問題的難解性,不含雙線性對,在計算效率上有明顯的優勢。并在隨機預言模型下證明了該方案滿足盲性和不可偽造性。
1 相關預備知識
1.1 ECDLP困難問題及其假設
橢圓曲線離散對數問題(ECDLP):階為 n 的點 P,Q∈E(F q)及Q∈〈P〉(其中Q是P 的倍數點),如果存在正整數 l∈[0,n-1] ,使得 Q=lP 成立,那么由 P,Q求l 的值即為橢圓曲線離散對數問題。
ECDLP假設:在概率多項式時間內算法 A 解決橢圓曲線離散對數問題的優勢 AdvDL(A)= Pr [A(P,Q)=l|Q=lP,l∈Zn*] 。
1.2 ECDLP困難問題及其假設
SM2數字簽名算法詳見國密標準GM/T003[16],在此列舉本文提出的無證書盲簽名方案中需要用到的部分參數:
A、B:使用公鑰密碼系統的兩個用戶。
d A :用戶A的私鑰。
E(F q):F q 上橢圓曲線 E 的所有有理點(包括無窮遠點O)組成的集合。
e :密碼雜湊函數作用于消息 M 的輸出值。
e′ :密碼雜湊函數作用于消息 M′ 的輸出值。
F q :包含 q 個元素的有限域。
G :橢圓曲線的一個基點,其階為素數。
H() :密碼雜湊函數。
ID A :用戶A的可辨別標志。
M :待簽名的消息; M′ :待驗證消息。
mod "n :模 n 運算。
n :基點 G 的階( n 是 #E(F q) 的素因子)。
x∥y : x 與的拼接,其中 x、y 可以是比特串或字節串。
Z A :關于用戶A的可辨別標志、部分橢圓曲線系統參數和用戶A公鑰的雜湊值。
(r,s) :發送的簽名。
(r′,s′) :收到的簽名。
2 無證書盲簽名的定義與安全模型
2.1 無證書盲簽名的定義
無證書盲簽名由系統建立、部分私鑰生成、秘密值生成、私鑰生成、公鑰生成、盲簽名和驗證七個算法構成,其中盲簽名包含承諾、消息盲化、簽名和脫盲四個子算法。
系統建立算法:此算法由可信第三方密鑰生成中心KGC運行。輸入安全參數 k ,KGC生成主密鑰 x 和輸出系統參數 params ,其中主密鑰 x 由KGC秘密保管,系統參數 params 開。
部分私鑰生成算法:此算法由KGC運行。輸入系統參數 params 、主密鑰 x 和簽名者身份 ID ,KGC輸出簽名者部分私鑰 u ID 。
秘密值生成算法:此算法由簽名者運行。輸入系統參數 params 和簽名者身份 ID ,輸出簽名者秘密值 v ID 。
私鑰生成算法:此算法由簽名者運行。輸入簽名者的秘密值 v ID 和部分私鑰 u ID ,輸出簽名者的完整私鑰 d ID 。
公鑰生算法:此算法由簽名者運行。輸入系統參數 params 、簽名者身份 ID ,簽名者秘密值 v ID 和部分私鑰 u ID ,輸出簽名者的公鑰 PK ID 。
盲簽名算法:此算法由簽名者和用戶交互式協議。輸入系統參數 params 、簽名者私鑰 d ID 和消息 M 簽名者和用戶交互完成,包含承諾、消息盲化、簽名和脫盲四個子算法,最后生成消息簽名。
驗證算法:此算法由驗證者運行。輸入系統參數 params 、簽名者公鑰 PK ID 、消息 M 和簽名,驗證簽名的有效性,如果有效則接受,否則拒絕。
2.2 無證書盲簽名安全模型
無證書盲簽名的盲性是指簽名者不能把最終的簽名結果與簽名過程中所簽的消息對應起來。盲性的形式化定義可以由挑戰者和攻擊者??之間的游戲來模擬盲簽名中的盲性,具體定義如下:
系統初始化:挑戰者輸入安全參數 k ,執行系統建立算法,輸出系統參數,并把系統參數發送給攻擊者"Euclid Math OneAAp
。
挑戰:攻擊者"Euclid Math OneAAp
選擇兩個嚴格區分的消息 M 0 和 M 1 ,并發送給挑戰者。 U 0 和 U 1 是兩個執行盲簽名協議的誠實用戶,挑戰者秘密并隨機地選擇比特 b∈{0,1} ,將 M b 和 M 1-b 分別發送給 U 0 和 U 1 。攻擊者??與用戶 U 0 和 U 1 交互并對 M b 和 M 1-b 進行盲簽名,得到簽名 δ b 和 δ 1-b ,然后把 (M b,δ b) 和 (M 1-b,δ 1-b) 發送給"Euclid Math OneAAp
。
猜測:攻擊者"Euclid Math OneAAp
輸出對 b 的猜測 b′∈{0,1} 。如果 b=b′ ,則攻擊者"Euclid Math OneAAp
贏得游戲。
攻擊者"Euclid Math OneAAp
贏得游戲的優勢定義為: Adv( ?? )=|2 Pr [b′=b]-1| 。
定義1 "如果不存在攻擊者??在概率多項式時間內以不可忽略的優勢贏得上述游戲,則盲簽名方案滿足盲性。
無證書簽名方案安全性是通過對兩類攻擊者的存在性不可偽造[2],這兩類攻擊者描述如下:類型Ⅰ攻擊者"Euclid Math OneAAp
1不能訪問系統的主密鑰,但可以替換用戶的公鑰;類型Ⅱ攻擊者"Euclid Math OneAAp
2可以訪問系統主密鑰,但不能替換公鑰。無證書盲簽名方案可以用挑戰者和攻擊者"Euclid Math OneAAp
1、"Euclid Math OneAAp
2之間的游戲來模擬盲簽名的不可偽造性,從而證明無證書盲簽名是安全的。
游戲1描述挑戰者與類型Ⅰ攻擊者"Euclid Math OneAAp
1之間的交互,過程如下:
系統建立:挑戰者輸入安全參數 k ,執行系統建立算法,輸出系統參數,并把系統參數發送給攻擊者"Euclid Math OneAAp
1。
攻擊者"Euclid Math OneAAp
1適應性地向挑戰者進行多項式有界次的查詢:
Hash查詢:"Euclid Math OneAAp
1可以請求任意消息 M 的哈希值 H(M) 。
部分私鑰查詢:"Euclid Math OneAAp
1輸入用戶身份 ID i 進行部分私鑰查詢,挑戰者把該身份對應的部分私鑰值 u i 返回給"Euclid Math OneAAp
1。
秘密值查詢:"Euclid Math OneAAp
1輸入用戶身份 ID i 進行秘密值查詢,挑戰者運行秘密值算法輸出秘密值 v i ,返回給"Euclid Math OneAAp
1。
公鑰查詢:"Euclid Math OneAAp
1輸入用戶身份 ID i 進行公鑰查詢,挑戰者運行公鑰算法輸出"Euclid Math OneAAp
1公鑰值 PK i ,并返回給"Euclid Math OneAAp
1。
公鑰替換查詢:"Euclid Math OneAAp
1可以選擇一個新的隨機的公鑰值 PK′ i 替換用戶 ID i 最近使用的公鑰值 PK i 。
簽名查詢:"Euclid Math OneAAp
1輸入用戶身份 ID i 和消息 M 進行簽名查詢,挑戰者用當前公鑰值對應的私鑰計算簽名 δ ,如果當前公鑰已被"Euclid Math OneAAp
1替換,"Euclid Math OneAAp
1需提供替換公鑰的對應私鑰給挑戰者。簽名需經過驗證是有效的,并把簽名結果返回給"Euclid Math OneAAp
1。
輸出:"Euclid Math OneAAp
1輸出 (ID*,M*,δ*) , ID* 為目標用戶的身份, δ* 為 M* 的簽名,如果滿足以下連個條件,"Euclid Math OneAAp
1贏得游戲,偽造成功。
a)"Euclid Math OneAAp
1沒有進行過部分私鑰查詢和簽名查詢;
b)對簽名結果進行驗證,結果正確。
游戲2描述挑戰者與類型Ⅱ攻擊者"Euclid Math OneAAp
2之間的交互,過程如下:
系統建立:挑戰者輸入安全參數 k ,執行系統建立算法,輸出系統參數和主密鑰 x ,并把系統參數和主密鑰 x 發送給攻擊者"Euclid Math OneAAp
2。
Hash查詢:"Euclid Math OneAAp
2可以請求任意消息 M 的哈希值 H(M) 。
部分私鑰查詢:"Euclid Math OneAAp
2輸入用戶身份 ID* 進行部分私鑰查詢,挑戰者把該身份對應的部分私鑰值 u i 返回給"Euclid Math OneAAp
2。
秘密值查詢:"Euclid Math OneAAp
2輸入用戶身份 ID i 進行秘密值查詢,挑戰者運行秘密值算法輸出秘密值 v i ,返回給"Euclid Math OneAAp
2。
公鑰查詢:"Euclid Math OneAAp
2輸入用戶身份 ID i 進行公鑰查詢,挑戰者運行公鑰算法輸出"Euclid Math OneAAp
2公鑰值 PK i ,并返回給"Euclid Math OneAAp
2。
簽名查詢:"Euclid Math OneAAp
2輸入用戶身份 ID i 和消息 M 進行簽名查詢,挑戰者計算簽名 δ ,并把簽名結果返回給"Euclid Math OneAAp
2。
輸出:"Euclid Math OneAAp
2輸出 (ID*,M*,δ*) , ID* 為目標用戶的身份, δ* 為 M* 的簽名,如果滿足以下連個條件,"Euclid Math OneAAp
2贏得游戲,偽造成功。
a)"Euclid Math OneAAp
2沒有進行過秘密值查詢和簽名查詢;
b)對簽名結果進行驗證,結果正確。
定義2 "如果不存在攻擊者"Euclid Math OneAAp
1和"Euclid Math OneAAp
2能夠在概率多項式時間內以不可忽略的優勢贏得上述游戲,則稱該無證書盲簽名方案在適應性選擇消息攻擊下具有不可偽造性。
3 基于SM2的無證書盲簽名方案
3.1 方案構造
a)系統建立。輸入系統安全參數 k ,KGC生成素數 q 和定義在有限域 F q 上的橢圓曲線 E(F q) 。 G 是由 E(F q) 上的點組成的階為 q 的加法群。KGC選擇 x∈Z* n為系統主密鑰,計算主公鑰P pub=xG,x 由KGC秘密保存;選取安全抗碰撞哈希函數 H 1:{0,1}*×G q→Z* nG q→Z* n,H 2:{0,1}*→{0,1}k公開系統參數params={F q,E(F q),n,G,P pub,H 1,H 2}。
b)部分私鑰生成。簽名者A向KGC提交其身份 ID A 。KGC隨機選擇 y A∈Z * n,計算,Y A=y AG,q A=H 1(ID A,Y A),u A=y A+xq A,通過安全認證通道將(u A,Y A)發送給 A。簽名者A驗證 u AG=Y A+q AP pub 是否成立,若成立則接受 u A 。
c)秘密值生成。簽名者A隨機選取秘密值 v A∈Z * n 。
d)私鑰生成。簽名者A將部分私鑰 u A 和秘密值 v A 結合,得到簽名者的私鑰 d A=(u A,v A) 。
e)公鑰生成。簽名者計算 X A=u AG , T A=v AG 簽名者A將 X A 和 T A 結合在一起作為公鑰 PK A=(X A,T A) 。
f)盲簽名。盲簽名包含四個部分,分別為承諾、消息盲化、簽名和脫盲。
(a)承諾。簽名者A隨機選擇 k∈[1,n-1] ,計算 Q=kG ,將 Q 、 PK A 和 Z A 發送給用戶B。
(b)消息盲化。
B1:用戶B計算 "=Z A‖M,e=H 2( ) ;
B2:用戶B隨機生成盲化因子, α,β,γ∈[1,n-1] ,計算橢圓曲線點 L=(x,y)=(β+γ)PK+αQ+βG ;
B3:用戶B計算 r=L x "mod "n=(e+x 1) mod "n ,若 r=0 則返回B2;
B4:用戶B計算 r′=α-1(r-γ) 。若 r′=0 則返回B2, M 為原始消息, r 是盲化后的消息。將 r′ 發送給A。
(c)簽名。 d A=(u A+v A) mod "n 。簽名者A收到 r′ 后計算 s′=(1+d a)-1(k-r′d A) mod n 。若 s′=0 ,則返回B1,重新生成 s′ 。然后,簽名者A把 s′ 發送給B。
(d)脫盲。
B5:用戶B收到 s′ 后,計算 s=as′+β。(r,s) 即為 M 的盲簽名。
(e)驗證。
任何驗證者可以通過 R=e+((r+s)PK A+sG) x "mod "n 對盲簽名進行驗證。
為了檢驗收到的消息 M′ 和盲簽名 (r″,s″) ,驗證者進行以下運算步驟:
C1:檢驗 r″∈[1,n-1] 是否成立,若不成立則驗證不通過;
C2:檢驗 s″∈[1,n-1] 是否成立,若不成立則驗證不通過;
C3:計算 "′=Z A||M′,e′=H 2( ′) ;將 e′ 數據類型轉換為整數;
C4:將 s″ , r″ 的數據類型轉換為整數,計算 t=(s″+r″) mod n ;若 t=0 ,則驗證不通過;
C5:計算橢圓曲線點 (x′ 1,y′ 1)=[s″]G+[t]PK A=[s″]G+[t](X A+T A) ;
C6:計算 R=(e′+x′ 1) mod n ,將 R 的數據類型轉換為整數,檢驗 R=r″ 是否成立,若成立,則驗證通過;否則驗證不通過。
3.2 算法的正確性
正文表述正確性驗證如下: 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 進行交互得到 (M b,δ b=(r b,s b),M 1-b,δ 1-b=(r 1-b,s 1-b)) 其中 b∈{0,1} 對于發布的任意一個有效盲簽名 δ=(r,s) 和簽名者私下保存的簽名過程中任意一組中間變量 (r i,s i,Q,PK A) 之間存在三個隨機因子 α,β,γ ,滿足以下等式:
r i=α-1(r-γ) ""(1)
s=αs i+β ""(2)
(r+s)PK A+sG=(β+γ)PK A+αQ+βG ""(3)
簽名者無法得知三個隨機值 α,β,γ。因為盲化因子α,β,γ的存在,無法得知(r,s)與(r i,s i) 之間的聯系。所以在定義1游戲中,簽名者只能以1/2的概率判定 b 的值,攻擊者贏得游戲的優勢可以忽略,所以本文提出的盲簽名滿足盲性。
4.2 安全性分析
定理2 "在隨機預言模型下,該方案能夠抵抗第一類攻擊者"Euclid Math OneAAp
1適應性選擇消息攻擊下的存在性偽造。
證明 "假設存在攻擊者"Euclid Math OneAAp
1能夠以不可忽略的概率 ε 偽造出合法的盲簽名,構造一個模擬器"Euclid Math OneBAp
可以解決ECDLP問題,給定ECDLP問題實例 (P,P 0) ,"Euclid Math OneBAp
計算 a∈Z* n ,使得 P 0=aP ,其中 P 為 G 。"Euclid Math OneBAp
控制隨機預言機。在多項式時間內,假設"Euclid Math OneAAp
1能夠進行 q H 1 次 H 1 查詢, q ppk 次部分私鑰查詢。"Euclid Math OneBAp
隨機選擇挑戰身份 ID I , I∈[1,q H 1] 。攻擊者"Euclid Math OneAAp
1與"Euclid Math OneBAp
交互過程如下:
初始化:"Euclid Math OneBAp
生成系統參數 params={F q,E(F q),n,G,P pub,H 1,H 2} ,并將 params 發送給"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
發起 (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
選擇隨機數 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關于 ""i 查詢,查詢 ( "i,e i) 是否在 L 2 中,如果存在,"Euclid Math OneBAp
返回 e i 給"Euclid Math OneAAp
1。否則,"Euclid Math OneBAp
隨機選擇 e i∈Z* n ,將 ( "i,e i) 添加到 L 2 中。
部分私鑰查詢:"Euclid Math OneBAp
管理格式為 (ID i,u i,Y i) 的列表 L par 。對于"Euclid Math OneAAp
1向"Euclid Math OneBAp
發起關于 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
生成隨機數 u i , q i ,計算 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 。當"Euclid Math OneAAp
1提交關于 ID i 的秘密值查詢時,"Euclid Math OneBAp
查詢 (ID i,v i) 是否在列表 L pri 中。若存在,"Euclid Math OneBAp
把 v i 返回給"Euclid Math OneAAp
1。否則,"Euclid Math OneBAp
進行部分私鑰查詢得到 u i ,生成隨機數 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關于 ID i 的公鑰查詢后,在 L pub 表中查詢是否存在,若存在,則"Euclid Math OneBAp
返回 PK i=(X i,T i) 。否則,"Euclid Math OneBAp
查詢 L par 和 L pri ,計算 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
執行部分私鑰查詢和秘密值查詢獲得相應的值,計算 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個隨機數 y i,q i,v i∈Z* n ,計算 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) 。
公鑰替換查詢:當"Euclid Math OneAAp
1提交關于 (ID i,X′ i,T′ i) 的查詢后,"Euclid Math OneBAp
首先查詢表 L pub 是否含有,若不存在,"Euclid Math OneBAp
首先執行公鑰查詢,然后"Euclid Math OneBAp
利用 X′ i 和 T′ i 分別替換 X i 和 T i 。
簽名查詢:當"Euclid Math OneBAp
收到"Euclid Math OneAAp
1對消息 (ID i,M′) 的查詢后,產生隨機數 r,s∈Z* n ,計算 L x=(x 1,y 1) x=[s]G+[r+s](X i+T i) ,生成盲簽名 (r,s) 并輸出。
輸出:經過多項式有界次查詢之后,"Euclid Math OneAAp
1以不可忽略的概率 ε 偽造一個對消息 (ID*,M)的簽名(r 1,s 1) 。如果 ID*≠ID i≠ID I ,則"Euclid Math OneBAp
挑戰失敗并停止(事件E2);否則,偽造成功,根據分叉定理[14],采用不同的哈希值重復上述查詢,可以再生成另外兩個個簽名對 (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)
設 L x=tG ,因為 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)中有三個未知數 t,a,v 1 ,且互相線性獨立,聯立三個方程即可求出 a 的值。"Euclid Math OneBAp
利用"Euclid Math OneAAp
1的能力成功解出一個ECDLP實例。要成功的偽造一對簽名,需要滿足以下三個條件[15]:
事件 θ 1 "表示沒有對其進行過部分私鑰查詢,即事件E1不發生,Pr [θ 1]≥(1-1/q H 1)q ppk 。
事件 θ 2 "表示偽造的簽名是有效的,Pr [θ 2|θ 1]≥ε 。
事件 θ 3 "偽造的簽名需滿足 ID 一致,即事件E2不發生,Pr [θ 3|θ 1∧θ 2]≥1/q H 1 。
因此,"Euclid Math OneBAp
利用"Euclid Math OneAAp
1的能力在多項式時間內以不可忽略概率 ε′= Pr [θ 1∧θ 2∧θ 3]= Pr [θ 1]· Pr [θ 2|θ 1]· Pr [θ 3∧θ 2∧θ 1]≥(1-1/q H 1)q ppk·ε·1/q H 1 成功解決一個ECDLP實例,這與ECDLP的困難性矛盾,所以方案能夠抵抗攻擊者"Euclid Math OneAAp
1適應性選擇消息攻擊下的存在性偽造。
定理3 "在隨機預言模型下,該方案能夠抵抗第二類攻擊者"Euclid Math OneAAp
2適應性選擇消息攻擊下的存在性偽造。
證明 "假設存在攻擊者"Euclid Math OneAAp
2能夠以不可忽略的概率 ε 偽造出合法的盲簽名,構造一個模擬器"Euclid Math OneBAp
可以解決ECDLP問題,給定ECDLP問題實例 (P,P 0),計算a∈Z* n,使得P 0=aP,其中P為G 。
假設"Euclid Math OneAAp
2能夠進行 q H 1次H 1查詢,q ppk次部分私鑰查詢,q sv次秘密值查詢,q s次簽名查詢。"Euclid Math OneBAp
隨機選擇挑戰身份ID I(I∈[1,q H 1])。攻擊者"Euclid Math OneAAp
2與"Euclid Math OneBAp
交互過程如下:其中H 1查詢、H 2 查詢和簽名查詢按照定理1中的方式進行回答。
初始化:"Euclid Math OneBAp
選擇隨機數 x∈Z* n作為系統主密鑰,生成系統參數params={F q,E(F q),n,G,P pub,H 1,H 2},其中P pub=xG,并將params和x 發送給"Euclid Math OneAAp
2。
部分私鑰查詢:"Euclid Math OneBAp
管理格式為 (ID i,u i,Y i) 的列表 L par 。對于"Euclid Math OneAAp
2向"Euclid Math OneBAp
發起關于 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
生成隨機數 u i,q i ,,計算 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 。當"Euclid Math OneAAp
2提交關于 ID i 的秘密值查詢時,如果 ID i≠ID I ,則挑戰者"Euclid Math OneBAp
挑戰失敗并停止(事件E1),否則"Euclid Math OneBAp
查詢 (ID i,v i) 是否在列表 L sv 中。若存在,"Euclid Math OneBAp
把 v i 返回給"Euclid Math OneAAp
2。否則,"Euclid Math OneBAp
生成隨機數 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關于 ID i 的公鑰查詢后,在 L pub 表中查詢是否存在,若存在,則"Euclid Math OneBAp
返回 PK i=(X i,T i) 。否則,"Euclid Math OneBAp
查詢 L par 和 L pri ,計算 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
執行部分密鑰提取查詢和秘密值查詢獲得相應的值,計算 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 ,用未知數 a 模擬用戶的秘密值。
簽名查詢:當"Euclid Math OneBAp
收到"Euclid Math OneAAp
2對消息 (ID i,M) 的查詢后,如果 ID i=ID I ,則"Euclid Math OneBAp
模擬終止(事件E2)。否則,"Euclid Math OneBAp
模擬盲簽名算法生成盲簽名 (r,s) 并發送給"Euclid Math OneAAp
2。
輸出:經過多項式有界次查詢之后,"Euclid Math OneAAp
2以不可忽略的概率 ε 偽造一個對消息 (ID*,M) 的簽名 (r 1,s 1) 。根據分叉定理[15],采用不同的哈希值重復上述查詢,可以再生成另外一個簽名對 (r 2,s 2) 。則可以得到:
L x=[s j]G+[r j+s j](X I+T I) ""(6)
設 L x=tG,因為X 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個未知數 t,a ,且互相線性獨立,聯立2個方程即可求出 a 的值。"Euclid Math OneBAp
利用"Euclid Math OneAAp
2的能力成功解出一個ECDLP實例。要成功的偽造一對簽名,需要滿足以下三個條件:行 q H 1 次 H 1 查詢, q ppk 次部分私鑰查詢, q pv 次秘密值查詢, q s 次簽名查詢。
事件 θ 1 "表示"Euclid Math OneBAp
模擬過程中沒有被終止,即沒有對其進行過秘密值查詢和簽名查詢,即事件 E1和E2 不發生,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不發生,Pr [θ 3|θ 1∧θ 2]≥1/q H 1 。
因此,"Euclid Math OneBAp
利用"Euclid Math OneAAp
2的能力在多項式時間內以不可忽略概率 ε′= 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 成功解決一個ECDLP實例,這與ECDLP的困難性矛盾,所以方案能夠抵抗攻擊者"Euclid Math OneAAp
2適應性選擇消息攻擊下的存在性偽造。
5 性能分析
本方案與其他文獻中提出的盲簽名方案進行效率比較,其中P表示雙線性對運算,S表示中或者橢圓曲線上的標量乘運算,A表示兩個橢圓曲線點的加法運算,H表示Map-To-Point散列運算,E表示冪乘運算,I表示 Z* n 中的求逆運算,執行點乘運算為M。如表1所示,以上運算的計算開銷比對數據參考文獻[16]。
表2顯示了本方案與其他CLBS方案的詳細性能比較,其中所涉及符號表1中定義。通過比較各方案,本方案總耗時約為方案[12]的68%,約為方案[13]的94%,約為方案[15]的82%,約為方案[14]的90%,本文提出的無證書盲簽名方案性能優于其他方案。
圖1是對不同CLBS方案的簽名生成和驗證兩個階段耗時進行比對,由圖可知,本方案具有更高的計算效率。結合表2,可以明顯看出,本文CLBS方案能夠以最小的計算開銷同時實現抵抗第Ⅰ類攻擊者和第Ⅱ攻擊者的攻擊。
6 結束語
本文結合國密算法SM2提出一種無證書盲簽名方案,使得簽名方案既有無證書密碼的特點,又有盲簽名的特性。同時在隨機預言模型下證明該方案是安全的,滿足盲性和適應性選擇消息下的存在不可偽造性。與其他現有方案進行對比,本方案在性能上具有優勢和更好的安全特性,因此,本方案在許多情況下,特別是在通信帶寬和存儲空間有限的情況下,都是適用的。
參考文獻:
[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].電子科技大學學報,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] 黃茹芬,農強,黃振杰.一個高效的無證書盲簽名方案[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] 何俊杰,張帆,祁傳達.新的無可信私鑰生成中心的盲簽名方案[J].計算機應用,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].計算機應用與軟件,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] 曾麗,李旭東.基于橢圓曲線的強無證書盲簽名方案[J].網絡空間安全,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] 廖小平.基于無證書的盲參數簽名方案[J].現代信息科技,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] 龔國昌,石志寒.具有強盲性的高效無證書盲簽名方案[J].計算機應用,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] 何俊杰,張雪峰,祁傳達.一種不含雙線性對的無證書盲簽名方案[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].北京:中國標準出版社,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.