摘 要:在研究有代理的多重簽名和橢圓曲線數字簽名的基礎上,提出了一種基于橢圓曲線的有代理的多重簽名方案。其安全性基于求橢圓曲線離散對數的困難,比起已有的方案更加安全、高效,并給出了兩種基于橢圓曲線的有代理的多重簽名方案,即廣播的有代理的多重簽名方案和有序的有代理的多重簽名方案;最后討論了其正確性和安全性。
關鍵詞:橢圓曲線; 代理簽名; 多重數字簽名; 有代理的多重簽名
中圖法分類號:TP309.08 文獻標識碼:A 文章編號:1001-3695(2006)10-0113-03
Multisignature with Some of Proxy Signer Based on Elliptic Curve
YU Chengzun, WANG Caifen, LIU Junlong, JIA Aiku
(College of Mathematics Information Science, Northwest Normal University, Lanzhou Gansu 730073, China)
Abstract:After studying existing multisignature with some of proxy signer, based on elliptic curve, broadcast multisignature with some of proxy signer and ordinal multisignature with some of proxy signer are proposed. Their security rely on the problem of discrete logarithm on elliptic curve, comparing with the existing schemes they are more secure and efficient. At the same time, validity and security of the schemes are discussed.
Key words:Elliptic Curve; Proxy Signature; Multisignature; Multisignature with Proxy Signer
代理簽名作為一種特殊的簽名機制,自1996年Mambo等人[1]提出這一概念后,由于其在許多領域中有著重要的應用而備受人們關注。2000年,伊麗江等人[2]提出了代理多重簽名方案,使代理簽名有了更加廣泛的應用。近年來,王英龍等人[3]提出一種新的簽名方案——有代理的多重簽名方案。在這個多重簽名方案中,允許部分或全部簽名人(原始簽名人)由于某種原因不能簽名時,將簽名委托給他人(代理簽名人)替自己行使簽名權,這樣,對一個消息的多重簽名就可以由一些簽名的代理人和其他的原始簽名人一起完成。顯然,普通的多重簽名和代理多重簽名是有代理的多重簽名的一種特殊形式。所以,有代理的多重簽名方案在實際中有著更加廣泛的應用。
基于橢圓曲線離散對數問題的密碼體制同基于有限域上的離散對數問題(DLP)的密碼系統相比,具有更高的安全性,還具有密鑰短小、運算速度快等優點,并且橢圓曲線系統的參數規模要小得多,GF(2160)上的橢圓曲線系統相當于1 024bits的RSA系統[4]。因此,本文基于橢圓曲線的離散對數問題,提出了一種有代理的多重簽名方案,此方案具有更好的安全性和更高的實用性。與其他簽名體制類似,本文所提出的方案滿足以下基本性質:基本的不可偽造性、有代理的多重簽名的不可偽造性、不可抵賴性、密鑰依賴性和可注銷性。
1 橢圓曲線數字簽名算法(ECDSA)
ECDSA(Elliptic Curve Digital Signature Algorithm)是目前IEEE P1363(Standard Specifications for Public Key Cryptography)的執行標準。
系統參數:GF(q),E,G,n,h。其中GF(q)是有限域,q是有限域中元素的個數,E是GF(q)上的橢圓曲線,G是E上的一個有理點,稱為基點,G的階為n(n為素數),h為一個Hash函數。
簽名過程:系統用戶A的私鑰為xA∈{1,2,…,n-1},其公鑰yA=xAG。
(1)A:隨機選取一個整數k∈{1,2,…,n-1},計算kG=(x,y),令r=x mod n;
(2)A:計算s=k-1(h(m)+rxA)mod n;消息m的簽名為(s,r)。
驗證過程:驗證者V對消息m的簽名進行驗證。
(1)V:計算v=s-1r mod n,u=s-1h(m)mod n;
(2)V:計算(x,y)=uG+vyA,令r=x mod n。
判斷r=r是否成立,如果成立則接受簽名,否則拒絕。
2 基于橢圓曲線的廣播的有代理的多重簽名方案
消息發送者Ui,簽名者Ai,其代理人Bi,簽名收集者Uc和簽名驗證者Uv。Ui將消息m同時發送到Ai或是Ai的代理人Bi進行簽名,Ai或其代理人將簽名消息發送給簽名收集者Uc,Uc收到簽名消息后驗證簽名的有效性,如果有效,對簽名進行整理并產生多重簽名,然后將多重簽名發送到Uv進行驗證。Ui不參加數字簽名。
2.1 系統初始化
系統參數:GF(q),E,G,n,h(定義同ECDSA)。
每一個簽名者Ai的私鑰為di∈{1,2,…,n-1},其公鑰為ei=di G mod n。簽名者的代理簽名人Bi,對應的私鑰αi∈{1,2,…,n-1},公鑰βi=αi G mod n。
2.2 代理委托過程
如果Ai需要代理,那么Ai與Bi做以下步驟:
(1)Ai:隨機選取ki∈{1,2,…,n-1},計算Ki=ki G mod n,σi′=di+kiKi mod n;
(2)Ai→Bi∶(Ki,σi′);
(3)Bi:驗證σi′G?=ei+KiKi mod n;如果成立,(Ki,σi′)就是一個有效的代理密鑰,否則他拒絕接受這個密鑰而要求Ai重新發送一個有效的代理密鑰,或者終止協議。
(4)Bi:計算自己的簽名密鑰σi=σi′+αiβi mod n。
2.3 簽名生成過程
設Ui(i=1,…,t)對消息m進行多重數字簽名時,假設其中w個用戶是委托其代理人進行的。進一步假設這些代理簽名人為這t個簽名人的前w個,即Ui的組成為(B1,…,Bw,Aw+1,…,At),其中0≤w≤t。
消息的發送者Ui將m發送給每個簽名者Ui,Ui進行如下操作:
(1)Ui:隨機選取ui∈{1,2,…,n-1},計算Ri=uiG mod n=(xi,yi),ri=xi mod n;
(2)Ui:將Ri發送給其他簽名者;
(3)Ui:計算R=∑ti=1Ri mod n=(x,y),取R=x mod n;如果Ui是代理簽名者,計算si=uih(m)+R σi mod n;否則計算si=uih(m)+R di mod n;
(4)Ui:將(m,(si,Ri))發送給簽名收集者Uc。
2.4 單用戶簽名驗證過程
Uc收到(m,(si,Ri))進行以下操作:
(1)Uc:計算R=∑ti=1Ri modn=(x,y),取R=x mod n;
(2)Uc:計算Ri=(xi,yi),取ri=xi mod n;
(3)Uc:驗證消息簽名(m,(si,Ri))的有效性,如果是代理簽名,Uc計算vi=ei+KiKi+βiβi mod n,否則vi=ei;然后計算Hi=h(m)-1(si G-R vi)mod n=(Xi,Yi),如果Hi=0,拒絕,否則判斷ri?=Xi mod n,如果等式成立,簽名有效,繼續產生多重簽名,否則簽名無效,終止簽名。
引理1 如果簽名人Ui(i=1,2,…,t)以及簽名收集者Uc都遵守協議,則簽名收集者Uc將總接受Ui(i=1,2,…,t)的單用戶簽名。
證明:如果Ui是代理簽名人
vi=ei+KiKi+βiβi=(di+kiKi+αiβi)G=σi G mod n;
si=uih(m)+R σi
Hi=(Xi,Yi)=h(m)-1(siG-R vi)mod n=h(m)-1(uih(m)
G+R σiG-R σiG)=ui G mod n=(xi,yi)=Ri
如果Ui是原始簽名人
vi=ei=di G mod n; si=uih(m)+R di
Hi=(Xi,Yi)=h(m)-1(siG-R vi)mod n=h(m)-1(uih(m)
G+R di G-R di G)=ui G mod n=(xi,yi)=Ri
由于ri=xi mod n,所以有ri=Xi mod n成立,Ui(i=1,2,…,t)對消息的單用戶簽名將被簽名收集者Uc接受。
2.5 多重簽名產生過程
Uc:計算S=s1+s2+…+st=∑ti=1si mod n,(m,(R,S))即為消息的多重簽名;
Uc:將(m,(R,S))發送給簽名驗證者Uv。
2.6 多重簽名驗證過程
Uv:計算V=∑ti=1ei+∑wi=1(KiKi+βiβi)mod n;
H=h(m)-1(S×G-R×V)mod n=(X,Y);
如果H=0,則拒絕這個簽名,否則,判斷R?=X mod n,如果成立則接受這個簽名。
定理1 如果簽名收集者Uc和簽名驗證者Uv都遵守協議,則簽名驗證者Uv總接受此多重簽名。
證明:V=(∑wi=1(di+kiKi+αiβi)+∑ti=w+1di)G=(∑wi=1σi+∑ti=w+1di)G
S=∑ti=1si=∑wi=1(uih(m)+R σi)+∑ti=w+1(uih(m)+R di)
H=(X,Y)=h(m)-1(S×G-R×V)=h(m)-1(∑wi=1(uih(m)+R σi)+∑ti=w+1(uih(m)+R di)-(∑wi=1σi+∑ti=w+1di)R)
G=∑ti=1uiG=∑ti=1Ri=R=(x,y)
由于R=x mod n,因此R=X mod n成立,簽名收集者Uc的多重簽名將被驗證者接受。
2.7 安全性分析
(1)基本的不可偽造性。在這個有代理的多重簽名方案中,Bi雖然得到了σi′和Ki,但他不能從中推斷出di。這是因為Ki=ki G mod n,從Ki中獲得ki相當于解橢圓曲線上的對數問題,同時σi′=di+kiKi mod n,不知道Ki也就不能獲得di。因而Bi不能偽造Ai的普通簽名,由此也說明了任何其他攻擊者也都難以偽造原始者Ai的簽名。
(2)有代理的多重簽名的不可偽造性。由于Bi知道ui和σi,所以只有Bi能生成代理簽名,甚至Ai也不能偽造該代理簽名。
(3)不可抵賴性。由于任何人都不能偽造原始者Ai的簽名,所以Ai不能否認他的一個有效的簽名。由于除了Bi外,任何人(包括Ai)都不能偽造Bi的代理簽名,所以Bi不能否認他的一個有效的代理簽名。
(4)密鑰依賴性。在這個簽名體制中,對簽名人是原始簽名者的情況,si是Ai的私鑰di的函數,即它依賴于di;對簽名人是代理簽名者的情況,si是Ai的私鑰di和Bi的私鑰αi的函數,即它依賴于di和αi。
(5)可注銷性。Ai如果想注銷Bi擁有的代理簽名密鑰σi,那么就可以向大家廣播一條消息,宣布Ki不再有效,從而Bi生成的代理簽名隨之失效。
3 基于橢圓曲線的有序的有代理的多重簽名方案
3.1 系統初始化
參數同上述基于廣播的有代理的多重簽名方案一致,消息發送者Ui預先設計一種簽名順序(U1,U2,…,Ut),并將這種簽名順序發送給每一位簽名者Ui和簽名驗證者Uv。
3.2 委托過程
與上述基于廣播的有代理的多重簽名方案的委托過程相同。
3.3 簽名的產生過程
Ui將消息m發送給第一位簽名人U1,設s0=0。U1,U2,…,Ut按照消息發送者Ui預先設計的簽名順序(U1,U2,…,Ut)依次簽名。那么,當Ui收到(m,(si-1,ri-1)和Rj(j=1,2,…,i-1)之后,首先要對前i-1個簽名人進行驗證:
(1)Ui:如果前面的簽名人Uj(j=1,2,…,i-1)是代理簽名人,則令vj=ej+KjKj+βjβj mod n;
若是前面的簽名人Uj(j=1,2,…,i-1)是原始簽名人,則令vj=ej mod n。
(2)Ui:計算R=∑i-1j=1Rj mod n=(x,y),取R=x mod n;
計算Hi=h(m)-1(si-1G-∑i-1j=1rjvj)=(Xi,Yj),如果Hi=0,認為簽名無效,否則繼續驗證。驗證R?=Xi mod n,如果等式成立,Ui認為前i-1簽名人對消息m的簽名有效,Ui繼續簽名;否則認為簽名無效,拒絕繼續對消息簽名。
(3)Ui:隨機選取ui∈{1,2,…,n-1},計算Ri=uiG mod
n=(xi,yi),ri=xi mod n。
(4)Ui:如果Ui是代理簽名者,他計算si=si-1+uih(m)+riσi mod n;
否則若Ui是原始簽名者,Ui計算si=si-1+uih(m)+
ridi mod n。
(5)Ui:將(m,(si,Ri))送給下一個簽名人,將Ri分別發送到以后的簽名者及簽名驗證者。
引理2 如果U1,U2,…,Ui-1以及Ui都遵守協議,則Ui將接受前i-1個簽名人的多重簽名,并繼續對消息進行簽名。
證明:如果Uj(j=1,2,…,i-1)是代理簽名人
vj=ej+KjKj+βjβj mod n=(dj+kjKj+αjβj)G=σj G mod n
siG=(si-1+uih(m)+riσi)G=∑ij=1(ujh(m)G+rjvj)mod n;
如果Uj(j=1,2,…,i-1)是原始簽名人
vj=ej=dj G mod n;si G=(si-1+uih(m)+ridi)G=∑ij=1(ujh(m)
G+rjvj);
于是,對任意的Uj(j=1,2,…,i-1)有
Hi=(Xi,Yi)=h(m)-1(si-1G-∑i-1j=1rjvj)=h(m)-1∑i-1j=1(ujh(m)G+rjvj-rjvj)=∑i-1j=1ujG=∑i-1j=1Rj=R=(x,y);
因為有R=x mod n,所以R=Xi mod n成立,前i-1個簽名人的多重簽名將被簽名者Ui接受。
3.4 簽名驗證過程
第i個簽名者Ui要對前i-1個簽名人進行驗證,Uv要對所有的簽名者的簽名進行驗證。那么,驗證者進行如下的操作。
(1)Uv:如果前面的簽名人Ui(i=1,2,…,t)是代理簽名人,則令vi=ei+KiKi+βiβi mod n;
若前面的簽名人Ui(i=1,2,…,t)是原始簽名人,則令
vi=ei mod n。
(2)Uv:計算R=∑ti=1Ri mod n=(x,y),取R=x mod n;
計算H=h(m)-1(siG-∑ti=1rivi)mod n=(X,Y),若H=0,認為簽名無效,否則繼續驗證。驗證R?=X mod n,如果等式成立,Uv認為對消息m的多重簽名有效;否則認為簽名無效。
定理2 如果U1,U2,…,Ut以及簽名驗證者Uv都遵守協議,則Uv將接受這個多重簽名。
證明:同引理2證明相似,不論Ui(i=1,2,…,t)是原始簽名人,還是代理簽名人,一定有下式成立:H=(X,Y)=h(m)-1(siG-∑ti=1rivi)mod n=∑ti=1Ui G=∑ti=1Ri=R=(x,y)。
由于R=x mod n,因此有R=X mod n成立,此多重簽名將被簽名驗證者Uv接受,即這個有序的有代理的多重簽名方案是正確的。
3.5 安全性分析
該方案的安全性分析與廣播的有代理的多重簽名方案類似,這里不再重復分析。
4 結束語
本文將橢圓曲線簽名體制應用于有代理的多重簽名之中,提出了基于橢圓曲線的有代理的多重簽名方案。此方案不僅具有橢圓曲線簽名體制密鑰短小、運算速度快的特點,更滿足了有代理的多重簽名的安全需求,從而使有代理的多重簽名方案具有更強的抗攻擊性和更高的實用性。
參考文獻:
[1]Mambo M, et al. Proxy Signature for Delegating Signing Operation[C]. Proc.of the 3rd ACM Conference on Computer and Computer and Communications Security, New York: ACM Press, 1996.48-57.
[2]Yi Lijiang, et al. Proxy Multisignature Scheme:A New Type of Proxy Signature Scheme[J]. Electronic Letters, 2000,36(6):527-528.
[3]王英龍,王連海.一種新的簽名——有代理的多重簽名研究[J]. 計算機工程與應用,2005,41(10):77-79.
[4]Koblitz N. Elliptic Curve Cryptosystems[J]. Mathematics of Computation, 1987,48:203-209.
[5]王連海,徐秋亮.基于橢圓曲線密碼體制的代理簽名方案研究[J].計算機應用研究,2004,21(4):122123.
[6]Li Jiguo, Cao Zhenfu, Zhang Yichen, et al. Cryptographic Analysis and Modification of Proxy Multisignature Scheme[J]. High Technology Communication, 2003,13(4):1-5.
作者簡介:
于成尊(1982-),男,河南南陽人,碩士研究生,主要研究方向為信息安全、網絡安全;王彩芬(1963-),女,教授,博士,主要研究方向為信息安全、電子商務中協議的安全以及協議的形式化分析;劉軍龍(1981-),男,甘肅平涼人,碩士研究生,主要研究方向為信息安全、網絡安全;賈愛庫(1970-),男,甘肅慶陽人,碩士研究生,主要研究方向為信息安全、網絡安全。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文