一种新型的群盲签名方案.docx
《一种新型的群盲签名方案.docx》由会员分享,可在线阅读,更多相关《一种新型的群盲签名方案.docx(6页珍藏版)》请在冰豆网上搜索。
一种新型的群盲签名方案
一种新型的群盲签名方案
群签名是传统的多人签名概念的推广。
在群签名方案中,群体的成员可代表整个群体签名,每个成员的群签名均可用统一的群体公钥验证,而且对于给定的信息和签名,只有群体管理员才能确定签名者的身份。
群体数字签名最先由文献[1]提出。
其中最著名的群体签名方案是文献[2]中的方案,它满足群签名的所有安全需求,并且其群公钥尺寸与群体大小无关,是个常数,且群公钥在群体生命周期中保持不变。
盲签名首先由Chaum[3]提出。
在电子货币系统中,签名体制使得消费者的身份得以隐藏。
盲签名实际上是签名者与用户之间的一个双方交互式协议,它要求签名者在不知道文档的内容情况下对其签名,并且即便签名者知道了签名与文档对,他也无法将它们联系起来,虽然签名者能够验证该签名的确是他签的。
在电子货币系统中,文档相当于电子货币,签名者相当于银行。
消费者在使用货币时其身份是匿名的,因为他们使用的电子货币是银行盲发行的。
在文献[4~6]中,盲签名的概念、性质、安全性、应用等均得到了深入的研究。
如同文献[5],本文提出的群盲签名方案的安全性是在随机预言机模型[7]下论证的。
群盲签名的概念由A.Lysyanskaya等人[8]提出。
他们利用群盲签名构建了新的电子货币体制,即分布式电子银行。
不同于以往的电子货币体制,电子货币可由多个电子银行发布。
由于群盲签名概念的提出使得电子货币的应用更为广泛:
电子货币由单一的银行发布变为由多个银行发布。
ID群签名方案首先由S.Park等人[9]提出。
该方案的效率不高,群公钥和签名的长度与群的大小成正比,并且方案中的群公钥包含群成员的身份,因此该方案不能满足群签名的匿名性。
目前最好的ID群签名方案是由Chen等人[10](简称CZK)提出的,该方案的群公钥和签名长度与群的大小无关,保持不变,方案的安全性是建立在他们提出的基于ID的公钥加密方案之上,是可证明安全的ID群签名方案。
本文就是在CZK方案的基础上构建新的群盲签名方案,即ID群盲签名方案。
1预备知识
1.1双线性对
G1是阶数为素数q的加法循环群,由生成元P生成;G2是阶数为素数q的乘法循环群;a、b是Zq中的两个元素。
假定在群G1和G2中离散对数问题是难解问题。
双线性对是具有下列三个特性的映射e:
G1×G1→G2。
a)双线性。
e(aP,bQ)=e(P,Q)ab。
b)非退化性。
存在P,Q∈G1使得e(P,Q)≠1成立。
c)可计算性。
对于所有的P,Q∈G1,存在有效的算法计算e(P,Q)。
1.2GapDiffieHellman群
G1是阶数为素数q的加法循环群,由生成元P生成。
群G1中存在下列三个问题:
a)离散对数问题(DLP)。
给定两个元素P、Q,计算n∈Zq,使得Q=nP。
b)计算DiffieHellman问题(CDHP)。
给定P、aP、bP,a,b∈Zq,计算abP。
c)判定DiffieHellman问题(DDHP)。
给定P、aP、bP、cP,a,b,c∈Zq,判断c≡abmodq。
笔者称G1是GapDiffieHellman群,如果它满足在该群中存在算法在多项式时间内解决DDHP,但不存在概率多项式的算法以不可忽略的概率解决CDHP或DLP。
这样的群可在超奇异椭圆曲线中找到。
双线性对可由Weil或Tate对构建,请参阅文献[11,12]。
1.3利用双线性对构建基于ID的公钥加密方案
基于ID的公钥加密方案首先由Shamir[13]提出,它利用用户的姓名、住址或电子邮件地址,而不是任意的字符串作为用户公钥;用户的私钥由私钥生成器产生并通过秘密通道传给用户。
基于ID的公钥加密方案可通过以下方式构建:
G1是阶数为素数q的加法循环群,由生成元P生成;G2是阶数为素数q的乘法循环群。
双线性对映射为e:
G1×G1→G2。
定义两个理想的哈希函数H1:
{0,1}→Zq,H2:
{0,1}→G1。
1)系统参数的建立私钥生成器随机选取s∈Zq,令Ppub=sP。
私钥生成器公布参数:
params={G1,G2,e,q,P,Ppub,H1,H2},秘密保留s,将其作为其主密钥。
2)用户私钥的提取用户将他的身份ID(其公钥)传给私钥生成器,私钥生成器计算SID=sH2(ID)并将其传给用户。
1.4CZK的ID群签名方案
笔者简单地叙述CZK的ID群签名方案。
G1是阶数为素数q的GapDiffieHellman群;G2是阶数为素数q的乘法循环群。
双线性对映射为e:
G1×G1→G2。
定义两个理想的哈希函数H1:
{0,1}×G1→Zq,H2:
{0,1}×G1→G1。
群管理员随机选取s∈Zq,令Ppub=sP。
群管理员保留s作为他的主密钥,公布群公钥Y={G1,G2,e,q,P,Ppub,H1,H2}。
用户随机选取r∈Zq,用户将r作为他的长期密钥,计算rP,将其身份ID和rP传给群管理员。
群管理员计算SID=sH2(ID‖T,rP)并将其传给用户。
其中T是用户长期密钥r的生命周期。
用户的私钥对为〈r,SID〉,公钥为其身份ID。
需要注意的是,用户的私钥对〈r,SID〉与公钥ID用于CZK构建的基于ID的公钥加密方案,而CZK的ID群签名方案是建立在基于ID的公钥加密方案之上的。
请参阅CZK方案[10]。
CZK的ID群签名方案分为四个协议:
a)加入协议
(a)用户随机选取xi∈Zq(i=1,2,…,k),然后将rxiP、xiP、rP、ID、SID传给群管理员;
(b)如果SID=sH2(ID‖T,rP),e(rxiP,P)=e(rP,xiP),群管理员计算Si=sH2(T,rxiP)(i=1,2,…,k),并将其传给用户;
(c)用户的成员证书为(Si,rxiP),其私钥为rxi;
(d)群管理员将rxiP、xiP、rP、ID添加到成员列表中。
b)签名协议
签名者的签名密钥为rxi,成员证书为〈Si,rxiP〉。
签名者的签名过程如下:
(a)签名者随机选取a∈Zq,令U=aH2(T,rxiP);
(b)V=rxiH2(m,U);
(c)h=H1(m,U+V);
(d)W=(a+h)Si;
(U,V,W,T,rxiP)就是关于消息m的签名。
c)验证协议
验证者首先检验T是否合法,然后计算H2(T,rxiP),H2(m,U),h=H1(m,U+V)。
验证者承认签名是合法的,如果下面等式成立:
e(W,P)=e(U+hH2(T,rxiP),Ppub)
d)打开协议
给定一个合法的群签名,群管理员通过下面两个等式可以很容易地确定签名者的身份:
e(rxiP,P)=e(xiP,rP);
e(SID,P)=e(H2(ID‖T,rP),Ppub)
2ID群盲签名方案
该ID群盲签名方案首先将CZK的ID群签名方案中的非交互式签名协议转换为交互式签名协议;然后将交互式签名协议盲化而成。
下面为具体步骤:
用户第0轮:
用户需要信息m的盲签名,就向签名者发送一个签名请求;
签名者第1轮:
随机选取a∈Zq,计算U=aH2(T,rxiP)并将U传给用户;
用户第2轮:
随机选取b∈Zq,计算U′=U+bP和H2(m,U′),并将H2(m,U′)传给签名者;
签名者第3轮:
计算V=rxiH2(m,U′)并将V传给用户;
用户第4轮:
计算V′=V+bP,h′=H1(m,U′+V′)并将h′传给签名者;
签名者第5轮:
计算W=(a+h′)Si并将W传给用户;
用户第6轮:
计算W′=W+bPpub。
笔者称(U′,V′,W′,T,rxiP)为消息m的ID群盲签名。
下面,通过定理1和2分别说明本方案的正确性及其盲化性质。
定理1方案的正确性。
证明给定一个签名(U′,V′,W′,T,rxiP),验证者首先计算h′=H1(m,U′+V′)和H2(T,rxiP);然后验证e(W′,P)=e(U′+h′H2(T,rxiP),Ppub)是否成立。
具体过程如下:
e(W′,P)=e(W+bPpub,P)=e(W,P)e(bP,Ppub)=
e((a+h′)Si,P)e(bP,Ppub)=e(asH2(T,rxiP)+h′sH2(T,rxiP),P)
e(bP,Ppub)=
e(U+h′H2(T,rxiP)+bP,Ppub)=e(U′+h′H2(T,rxiP),Ppub)
证毕。
定理2本方案中签名者无法将其签名(U′,V′,W′,T,rxiP)同消息m联系起来。
证明通过用户第2轮,用户利用随机数b盲化了签名者的U,使其成为U′;同时,用户通过哈希函数H2的随机性盲化了消息m。
在签名者第3轮,由于哈希函数H2的随机性以及用户在第2轮中利用随机数b盲化了签名者的U,使得签名者在不知道消息m以及U的情况下对其进行了签名。
由用户第4轮可知,随机数b盲化了签名者的V,使其成为V′。
签名者第5轮在不知道其内容的情况下用证书Si对其签名。
在用户第6轮,利用随机数b盲化了签名者的W。
因此得证。
3方案的安全性分析
本章对ID群盲签名方案的安全性进行分析。
首先是签名方案的安全性。
引理1[10]ID群盲签名方案在随机预言机模型和CDHP假设下是抗选择消息攻击的。
引理2如果存在时间为t、概率为ε的攻击者A0可以伪造成员证书,那么就可以构造一个时间为t,概率为ε的攻击者A1解决GapDiffieHellman群G1中的CDHP。
证明考虑下面的游戏:
假定攻击者有选择地询问k次H2,在第i次的输入为(T,rxiP),他获得相应的证书Si。
最终,攻击者输出(rxP,S),如果rxP没有被询问,并且e(S,P)=e(H2(T,rxP),Ppub),就称攻击者赢得了游戏。
假定存在攻击者A0在时间t内以不可忽略的概率ε伪造成员证书,可以构造攻击者A1如下:
a)随机选取整数u∈{1,2,…,k},定义Cer(H2(T,rxiP))=Si;
b)对于i=1,…,k,攻击者A1代替A0回答关于H2和Cer的询问,当i=u时,A1用x替代xu;
c)A0输出(rxoutP,Sout);
d)如果xout=x,并且Sout是合法的证书,A1输出(rxP,S)。
由于整数u是随机选取的,对于攻击者A0来说,攻击者A1给的询问结果分布与真实环境下挑战者给的询问结果分布是无法区分的。
同时,由于H2是随机函数,如果A0的输出证书Sout是合法的,那么H2(T,rxP)一定询问了。
令H2(T,rxP)=aP,Ppub=bP,由e(S,P)=e(H2(T,rxP),Ppub)可知,本文解决了群G1中的CDHP。
引理3ID群盲签名方案中的交互式协议是关于签名者ID的成员证书和签名者的诚实验证者的零知识的知识证明。
证明本证明利用了文献[2]中的技巧,主要证明知识证明部分。
验证了知识提取器在得到两个合法的签名时恢复了与之相关的成员证书。
假定(U′,V′,W′,T,rxiP)和(U′,V″,W″,T,rxiP)是两个关于m的合法签名。
令h′=H1(m,U′+V′)。
因为e(W′,P)=e(U′+h′H2(T,rxiP),Ppub),由此可得
W′=s(U′+h′H2(T,rxiP))
(1)
令h″=H1(m,U′+V″),同样地可以得到e(W″,P)=e(U′+h″H2(T,rxiP),Ppub)。
由此可知
W″=s(U′+h″H2(T,rxiP))
(2)
由式
(1)和
(2)可得W′-W″=sh′H2(T,rxiP)-sh″H2(T,rxiP),因此可得Si=sH2(T,rxiP)=(h′-h″)-1(W′-W″)。
由此恢复出了成员证书。
证毕。
定理3利用双线性对构建的基于ID群盲签名方案在随机预言机模型和CDHP假设下可证明是安全的。
证明该方案满足群盲签名方案的所有特性:
a)正确性(定理1);
b)盲性(定理2);
c)不可伪造性(引理2);
d)匿名性:
由于xi是随机选取的,rxiP没有透露任何关于签名者身份的信息给用户,除了群管理员;
e)不可联结性:
给定rxiP和rxjP,在不知道xiP和xjP的情况下计算rP是困难的;
f)可追踪性:
群管理员可以打开合法的群盲签名,因为他能提供一个关于签名者签名的零知识证明;
g)不可陷害性:
由引理1可知,无论是群管理员还是群中的成员都不能伪造群中其他成员的签名;
h)抗联合攻击性,由引理2和3可知,群中的部分成员串通一起也不能伪造一个群管理员不能打开的合法签名。
4方案的效率分析
本方案中的群公钥和群盲签名的长度是固定的,方案中的签名通信量是一个定值。
群盲签名中所涉及的算法效率高。
与LR98方案相比,本方案盲化群签名时仅添加了模加运算,而LR98方案则添加了求双重离散对数、离散对数根以及随机置换运算。
从计算复杂度考虑,本方案的复杂度低于LR98方案的复杂度。
5结束语
本文在CZK方案的基础上构建了可证明安全的ID群盲签名方案,方案中的群公钥和群盲签名的长度是固定的。
本方案是可证明安全性的。
与LR98方案比较,本方案的效率更高。
对于不同的消息m,签名者需要一个新的私钥对对其进行签名是本方案的缺点所在。