部分盲签名

2024-07-28

部分盲签名(通用7篇)

部分盲签名 篇1

0 引言

盲签名是数字签名中的一种,是由Chaum[1]在1982年首次提出的。所谓盲签名是指签名者在不知道消息的具体内容的情况下进行签名,并且当该签名公布后,签名者不能将自己的签名与消息对应,即满足不可追踪性。因此广泛应用与电子现金系统及匿名电子投票等,但是正是由于盲签名的这种完全匿名性,容易造成签名的滥用,这样会造成签名者的损失。1996年,Abe等[2]首次提出部分盲签名的概念,在部分盲签名中签名者和签名请求者事先商量好一个公共信息,成功解决了盲签名中签名的滥用问题。部分盲签名的这种优点得到学者的广泛关注,2001年,Chien等[3]基于RSA困难问题提出一个部分盲签名方案。

公钥密码系统包括基于证书、无证书及基于身份的密码体制,传统的基于证书密码体制中,由证书生成中心生成用户公钥证书来绑定用户身份,但是证书的颁发、存储、更新等占用很大花费。无证书密码体制由Al-Riyami和Paterson[4]在亚密会上首次提出的,该体制下不需要公钥证书,但是容易存在用户公钥被替换的风险。而Shamir[5]于1984年提出的基于身份密码体制将用户的身份等公共信息作为用户公钥,传统的基于身份密码体制需要一个可信中心生成用户私钥,这就存在密钥托管问题。2003年,Chen等[6]首次提出基于身份无可信私钥生成中心的密码学思想,并给出一个具体的签名方案。至此,基于各类密码体制学者们分别提出各种部分盲签名方案。2010年,李明祥等[7]提出一个高效的无证书部分盲签名方案,同年,冯涛等[8]给出一个安全的无可信PKG的部分盲签名方案。2012年,何俊杰等[9]提出一个高效的基于身份的部分盲签名方案。同年,周萍等[10]提出一个安全无可信私钥生成中心的部分盲签名方案。

本文,通过对文献[10]中部分盲签名方案的安全性分析,发现方案存在公共信息被篡改的危险,在此基础上提出改进方案。并证明了方案的安全性。

1 预备知识

1.1 双线性对映射

定义1设G1、G2分别为q阶加法循环群和乘法循环群。映射e:G1×G1→G2,满足下面三条性质则称为双线性对映射:

1)双线性性:对于任意的P,Q∈G1,a,b∈Zp*,都有e(a P,b P)=e(P,Q)ab;

2)非退化性:存在P,Q∈G1,使得e(P,Q)≠1;

3)可计算性:对于任意的P,Q∈G1,存在有效的多项式时间算法能计算出e(P,Q)。

1.2 离散对数问题(DLP)

定义2设G为椭圆曲线群,已知x P∈G,x∈Zq*,计算x的问题称为离散对数问题。

假设1(离散对数困难性假设)假设算法Ω不能在多项式时间内以一个不可忽略的概率解得离散对数问题,则称离散对数困难性假设成立。

1.3 安全模型[11]

一个安全的基于身份无可信中心的数字签名方案,必须满足正确性和不可伪造性。下面给出安全性和不可伪造性定义。

定义3(正确性)如果一个基于证书的数字签名方案是由签名人严格按照签名算法的步骤产生的,那么该签名能够通过验证等式,即该签名方案满足正确性。

下面定义基于证书数字签名的不可伪造性:

定义4(不可伪造性)如果不存在一个多项式时间(PPT)的攻击者F以不可忽略的概率借助挑战算法C伪造出的签名来赢得下面的游戏,则称此签名方案在适应性选择消息和身份下满足存在性不可伪造。

游戏(F和C参与游戏)

1)初始化:挑战算法C运行系统初始化算法,生成系统公开参数并发送给攻击者F;

2)询问:攻击者F可以在多项式时间内进行下列适应性询问:

①Hash询问:F可以向C进行任意的Hash询问;

②密钥询问:F可以向C进行除目标用户外的任意用户的密钥询问;

③签名询问:F可以向C进行任意消息对应的签名询问。

3)伪造:如果攻击者F通过上面的询问得到训练,且在询问过程中,F没有对目标用户的密钥和签名进行过询问,输出的一个伪造签名,并通过验证等式,则F赢得游戏。

2 文献[10]方案回顾

2.1 方案回顾

文献[10]给出一个无可信私钥生成中心的部分盲签名方案,该方案包括系统初始化、签名密钥生成、签名及验证四个算法组成,由签名者,请求者及验证者三个实体共同完成。具体方案描述如下:

1)系统初始化(Setup)

系统安全参数为1k,PKG随机选取大素数q≤2k,G1、G2分别为阶为q的加法循环群和乘法循环群。选取G1的一个生成元P∈G1,一个双线性映射为e:G1×G1→G2,预计算g=e(P,P)PKG随机选取s∈RZq*作为系统主密钥,计算Ppub=s P为系统主公钥。选择3个安全抗碰撞的哈希函数H1:{0,1}*→Zq*,H2:{0,1}*×G2→Zq*,H3:{0,1}*→G1。公开参数为params={q,e,g G1,G2,P,Ppub,H1,H2,H3},将params公开,s保密;

2)密钥生成(Key Gen)

(1)部分密钥生成:设签名者A的身份为IDA,PKG首先核实用户身份,确认身份后计算作为签名者A的部分私钥,并将SA通过安全信道发送给A。签名者A收到SA后,计算中间变量P1=Ppub+H1(IDA)P,然后验证等式e(SA,P1)=g是否成立,如果成立,则接受部分私钥SA,并计算PKA1=e(P,P1)作为部分公钥,否则,如果不成立,则要求PKG重新生成部分密钥并发送,直到满足验证等式为止;

(2)用户个人密钥生成:签名者A随机选取x∈RZq*作为用户个人密钥,计算PKA2=e(x P,P)作为用户个人公钥;

则用户公私钥对分别为(SA,x),(PKA1,PKA2);

3)签名(Sign)签名者A身份为IDA,请求者B身份为IDB,待签名消息为m∈{0,1}*,设签名者与请求者事先协商好的公共信息为c,计算gc=e(H3(c),P1)并作为公钥参数公开,签名者和请求者进行如下交互:

(1)承诺:签名者A随机选取k∈RZq*,计算K=gckx,并将K秘密发送给请求者B;

(2)盲化:B收到K后,随机选取α,β∈RZq*作为盲因子,计算,h=H2(m‖c,r),h'=(α-1h+β)modq,将h'发送给A;

(3)签名:A收到盲化消息后,进行签名,计算S'=kx H3(c)+xh'H1(IDA)SA,将S'发送给B;

(4)解盲:B收到盲签名后,进行解盲,计算S=αS'+βP+H1(IDA)H3(c),则消息m的部分盲签名为σ=(S,h,c)。

4)验证(Verity)验证者M收到消息m的签名σ后,验证等式

是否成立。如果成立,则接受签名,否则,拒绝。

2.2 对方案的攻击

通过对上述方案的安全性分析,发现上述方案存在篡改公共信息攻击。如果攻击者将公共信息篡改,那么就会存在签名被滥用的可能,这会对签名者造成很大的损失或者伤害。具体攻击过程如下:

假设不诚实的用户T想要非法篡改公共信息,将原本与签名者协商好的公共信息c替换成,而签名者A并不知情,A还是按照原本的公共信息c进行签名,但是在最终签名验证中,验证者M认定的公共信息为篡改之后的,因此验证者在验证时公钥参数变为,但是签名者A在签名协议中用到的公钥参数为gc=e(H3(c),P1)。设待签名消息为m,签名者A的身份为IDA。攻击者与签名者进行如下交互:

1)承诺:签名者A随机选取k∈RZq*,计算K=gckx,并将K秘密发送给用户T;

2)盲化:T收到K后,随机选取α,β∈RZq*作为盲因子,计算,将发送给A;

3)签名:A收到盲化消息后,进行签名,计算,将S'发送给T;

4)解盲:T收到盲签名后,进行解盲,计算,则消息m的部分盲签名为。

下面证明,如果被不诚实的用户T篡改过公共信息的签名能通过验证等式,则说明攻击者攻击成功,也即方案不能抵抗篡改公共信息攻击。

所以:

故:

,验证等式成立。

也就是说,攻击者T将公共信息c篡改成后,可以通过验证者的验证。即原方案不能抵抗篡改公共信息攻击。

3 方案改进

在上述方案中,由于在签名者的盲签名等式中,含有公共信息的H3(c)可以被完整地提取,因此,攻击者可以在解盲阶段将提取出的H3(c)替换成篡改后的。这样,不能抵抗篡改公共信息攻击。针对上述方案的问题,作出改进,使得攻击者在签名方程中无法完整提取出H3(c)来,具体改进方法如下:

其中系统初始化阶段与文献[10]方案相同,不再赘述。只在密钥生成、签名和验证部分进行修改。

密钥生成:

1)部分密钥生成:设签名者A的身份为IDA,PKG首先核实用户身份,确认身份后计算作为签名者A的部分私钥,并将SKA通过安全信道发送给A。签名者A收到SKA后,计算中间变量P1=Ppub+H1(IDA)P,然后验证等式e(SA,P1)=g是否成立,如果成立,则接受部分私钥SKA,并计算PKA1=e(P,P1)作为部分公钥,否则,如果不成立,则要求PKG重新生成部分密钥并发送,直到满足验证等式为止。

2)用户个人密钥生成:签名者A随机选取x∈RZq*作为用户个人密钥,计算PKA2=e(x P,P1)作为用户个人公钥。

则用户私钥对为(x,SKA),公钥对为(PKA1,PKA2)。

签名:在该算法中,需要签名者与请求者进行交互才能完成,设签名者为A,身份为IDA,请求者B,身份为IDB,消息m∈{0,1}*,签名者与请求者事先协商好的公共信息为c,交互过程如下:

1)承诺:签名者A随机选取k∈RZq*,计算K=gckx,并将K通过安全信道秘密发送给请求者B;

2)盲化:B收到K后,随机选取α,β∈RZq*作为盲因子,计算作为签名公开参数,h=H2(m,c,r),h'=α-1h+β,将h'发送给A;

3)签名:A收到h'后,进行签名,计算S'=kx H3(c)+h'H1(IDA)SKA+x P,将S'发送给B;

4)解盲:B收到盲签名S'后,解盲,计算S=αS',则关于m的消息签名对为σ=(S,m,h,r,c)。

验证:验证者收到签名对σ=(S,m,h,r,c)后,验证等式

是否成立。如果成立,说明签名有效;否则,签名无效。

4 新方案的安全性分析

4.1 正确性

定理1改进后的部分盲签名方案是正确的。

证明:只需证明签名可以通过验证等式即可。

因此,验证等式成立,即方案满足正确性。

4.2 部分盲性

定理2改进后的部分盲签名方案满足部分盲性。

证明:在签名过程中,由于请求者在盲化阶段随机选取盲化因子α、β将消息m盲化。因此,只需证明任意有效的消息签名对σ=(S,m,h,r,c)及对应的中间视图(k,K,h',S'),存在唯一的α,β∈RZ*q使得下列等式成立,也即说明了只有唯一确定的盲因子对才能使得签名与中间视图之间的关联性。

由式(1)可以唯一确定α=logS'S,又由式(2)唯一确定β=h'-α-1h,只要此唯一确定的α、β满足式(3)即可。

因为签名是有效的,因此满足验证等式,有:

即由式(1)、式(2)唯一确定的α、β可以使得式(3)成立,也就是说存在唯一的α、β使得某个有效签名与中间视图相对应。这样,签名者即使签了名,日后也无法将自己的签名与自己的签名过程联系起来,即满足了部分盲性。

4.3 公共信息不可篡改性

定理3改进后的部分盲签名方案可以抵抗篡改公共信息攻击。

证明:改进后的方案在签名等式中无法完整地提取出含有公共信息的H3(c)来,因此如果攻击者想在解盲阶段将公共信息替换,通过将原本的H3(c)消掉是不可行的,也就是说攻击者无法替换公共信息。因此,改进方案可以抵抗篡改公共信息攻击。

4.4 不可伪造性

定理4改进后的新的基于身份无可信中心的部分盲签名方案在随机预言机模型下,基于离散对数困难性假设,对于适应性选择消息及身份攻击满足存在不可伪造性。

证明:假设存在一个攻击者F,可以在多项式时间内成功伪造一个有效签名,那么只需证明存在一个概率多项式时间算法的挑战者C能够解决DL问题。这与离散对数困难性矛盾,因此方案满足存在不可伪造性。

DL问题实例为,已知(P,a P),求解a。在证明中,假设F模拟用户进行攻击,C模拟公钥生成中心回答对F一系列询问,包括任意的哈希询问,部分密钥询问,个人密钥询问及签名询问,C通过模拟回答F的询问维护相应的列表:L1(IDi,h1i),L2(mi,ci,ri,h2i),L3(ci,h3i),Lk(IDi,SKi,PKi1),Lk'(xi,PKi2),Ls(mi,hi,ri,ci,Si)。设目标用户的身份用ID*表示,C首先生成并公布系统公开参数params,置系统主私钥为a。下面由F进行如下询问:

H1询问F向C进行身份为IDi的H1询问,C首先查询列表L1,如果L1中存在(IDi,h1i)的项,直接返回h1i给F;否则,C随机选取h2i∈RZq*,将h1i返回给F并将(IDi,h1i)添加到列表L1中。

H2询问F向C进行消息为mi的H2询问,相应的公共信息为ci,签名公开参数为ri,C查询列表L2,若如果列表中存在(mi,ci,ri,hi)的项,直接hi给F;否则,C随机选取hi∈RZq*,将其返回给F并添加到列表L2中。

H3询问F向C进行公共信息为ci的H3询问,C查询列表L3,如果列表中有(ci,h3i)的项,直接返回h3i给F;否则,C随机选取m∈RZq**,计算h3i=m P,将h3i返回给F,并添加到列表L3中。

部分密钥询问F向C进行用户身份为IDi的部分密钥询问,C查询相应的列表Lk,如果列表中出现(IDi,SKi,PKi1)的项,直接返回(SKi,PKi1)给F;否则,假设已经之前已经进行过H1询问,不然可以先进行H1询问:

1)IDi≠ID*时,C随机选取si∈RZ*q,计算,PKi1=e(P,P1),其中P1=Ppub+h1iP,将(SKi,PKi1)返回给F。

2)IDi=ID*时,C拒绝回答部分私钥,计算PKi1=e(P,P1),其中P1=Ppub+h1iP,返回(-,PKi1)给F。

且无论上述1),2)中的哪种情况都将其返回值添加到列表Lk中。

个人密钥询问F向C询问身份为IDi的用户个人密钥,C首先查询列表Lk',如果列表中已经存在(xi,PKi2)的项,直接将其返回给F;否则:

1)IDi≠ID*时,C随机选取xi∈RZq*,计算PKi2=e(xiP,P1),并返回(xi,PKi2)给F。

2)IDi=ID*时,C拒绝回答个人私钥,返回(-,PKi2)给F。

无论上述1),2)中的哪种情况都将返回值添加到列表Lk'中。

签名询问F向C进行消息为mi的签名询问,C查询列表Ls,如果列表中已经存在Ls(mi,hi,ri,ci,Si)的项,直接返回Si给F;否则,假设在此之前已经进行过哈希询问,不然先进行上述询问:

1)IDi≠ID*时,C查询列表L1,L2,L3,分别得到h1i,hi,h3i的值,并随机选取Si,根据验证等式,计算。最后将消息签名对σi=(Si,mi,hi,ri,ci)返回给F。

2)IDi=ID*时,C拒绝回答,询问终止。

攻击者F通过向C进行的询问得到训练,输出一个有效的目标用户ID*的签名,又由分叉引理[12]可知,通过对哈希函数的重放,可以生成另一个有效的伪造签名,则两个签名分别为(S*,m*,h*,r*,c*)和,由于签名都是有效的,因此都能通过验证等式。

所以,有:

即:

因此:

解得:

也就是说挑战者C成功解决了离散对数问题。这与离散对数困难性假设矛盾,因此说明攻击者无法攻破该方案。即方案在适应性选择消息和身份攻击下对于超级攻击者F是存在性不可伪造的。

5 结语

将本文改进后的方案与文献[8-10]中发方案进行效率比较,已知双线性对运算的时间复杂度最大,其次是哈希运算,指数运算次之,标量乘运算的时间复杂度基本忽略。用P表示双线性对运算,H表示哈希运算,E表示指数运算,M表示标量乘运算。比较结果如表1所示。

由表1,本文提出的改进方案及文献[10]中的方案在整个过程中仅仅使用了一次双线性对运算,且改进后的方案比原方案使用了更少的哈希运算、指数运算及标量乘运算。因此,改进后的方案具有较高的效率。

摘要:一般的基于身份的签名方案,存在密钥托管问题。对周萍等[10]提出的方案进行研究,发现该方案对于篡改公共信息攻击并不安全。因此,在原方案的基础上进行改进,给出一个新的基于身份无可信中心部分盲签名方案。随后证明了新方案在随机预言机模型下对于适应性选择消息和身份攻击是存在性不可伪造的,并证明了新方案可抗篡改公共信息攻击及满足部分盲性。通过与已有部分盲签名方案进行效率比较,发现新方案具有较高的效率。

关键词:基于身份,无可信私钥生成中心,部分盲签名,随机预言机模型

代理盲签名研究综述 篇2

1 代理盲签名的安全特性

代理盲签名是代理签名和盲签名的结合,既具有代理签名的特性,又具有盲签名的特性。因而,一个好的代理盲签名方案应具有如下安全特性:

1)不可伪造性:只有指定的代理签名人能够产生有效代理盲签名,任何其他人包括原始签名人在内都不能产生有效的代理盲签名。

2)可验证性:签名接收者能够从代理盲签名中验证代理签名是否有效,并根据有效的代理签名相信原始签名人对所签消息的认同。

3)可鉴别性:任何人都可区分代理盲签名和正常的原始签名人的签名。

4)不可否认性:一旦代理签名人代替原始签名人产生了有效的代理盲签名,他就不能向任何人否认他的行为。

5)防止滥用:代理签名人的责任应当被具体确定,以确保代理密钥对只能用于创建代理盲签名。

6)盲性:所签消息对代理签名者来说是不可见的,并且签名公布后,代理人不能追踪签名。

2 代理盲签名的构造方法

代理盲签名是建立在代理签名理论和盲签名理论的基础上的,因此代理盲签名的构造一般要用到普通数字签名、代理签名或盲签名。代理盲签名的构造主要是以代理签名为基础,对代理签名体制进行盲化,构造出代理盲签名体制,或者以已经存在的盲签名为基础,增加代理授权机制构造出代理盲签名体制。

一个完整的代理盲签名方案,一般包括密钥生成算法、授权代理算法、代理盲签名算法和签名验证算法四个算法,可设为:BPS=(BPKg,BPGr,BPSig,BPVf)。一个普通的数字签名方案一般包括三个算法:密钥生成算法、签名算法和验证算法,可表示为DS=(Ks Sig,Vf)。下面以一个普通的数字签名算法为例说明代理盲签名方案构造的一般方法,并指出构造代理盲签名应注意的问题:

假设方案的参与者有原始签名人A、代理签名人B和消息拥有者R;Xu,Yu分别为用户U的私钥和公钥;消息的盲化算法为Bli()。

1)密钥生成过程(由算法BPKg实现)

密钥生成算法BPKg同普通数字签名的密钥生成算法Ks完全一样,方案的各个参与方(原始签名人、代理签名人和消息拥有者)都按照密钥生成算法生成自己的密钥对,私钥秘密保存,公钥在系统内公布。

2)授权代理过程(由算法BPGr实现)

(1)原始签名人A选择随机数r,利用其私钥XA和随机数r计算出SA,并对授权书Mw和SA执行签名,即S=Sig(Mw,SA),然后把签名结果S发送给代理签名人B。

(2)B收到签名消息S后,利用签名验证算法Vf验证签名的正确性,若正确,接受代理,否则,要求原始签名人重新授权或者拒绝代理。授权代理一旦成功,代理人B就通过S计算出自己的代理密钥SP并秘密保存,计算代理公钥YP并在系统内公开。

3)代理盲签名过程(由算法BPSig实现)

(1)消息拥有者R选择随机数r1,r2,…rn作为盲因子,并通过盲化算法对要签名的消息m进行盲化,即:m'=Bli(m,r1,r2,…rn,r),然后把m'发送给B。

(2)B收到m'后,利用其代理私钥SP产生盲消息m'的签名,即s=Sig(SP,m'),最后把s发送给R。

(3)消息拥有者R收到s后,利用s计算出盲签名s'。

(m,m',s')就是消息m的代理盲签名。

4)签名验证过程(由算法BPVf实现)

要证明消息m的代理盲签名的有效性,首先要验证代理是通过正确授权的,然后再通过签名验证算法BPVf验证签名的正确性。

利用普通的数字签名算法构造代理盲签名方案时要以代理签名和盲签名理论为基础,构造时要保证方案的严谨性,否则构造的代理盲签名就可能存在各种安全问题,没有实际应用的价值。因此,在设计一个代理盲签名方案时要注意以下几个问题:

(1)算法要力求简洁、高效、易实现。

(2)算法的设计要能避免各种可能的攻击,如原始签名人的攻击、签名接收者的攻击和一般性伪造攻击等。

(3)要满足签名的不可追踪性。

3 几种新型的代理盲签名方案及述评

代理盲签名是互联网上不可缺少的数字签名技术,目前很多国内外学者致力于新算法的研究,提出了很多新型的代理盲签名方案,以适应于特定领域内代理盲签名的需求。我们把现有的代理盲签名方案归纳为以下4类并分别予以述评。

3.1 具有消息恢复的代理盲签名方案

具有消息恢复的代理盲签名方案是指,原始签名人将原始消息通过加密隐藏在数字签名文件中,从而使代理签名人在不知道所签消息的前提下对消息进行签名,同时,消息接收者在取得签名同时,使用消息恢复密钥自动恢复消息。这种代理盲签名方案具有广阔的应用前景,能够解决实际生活中的很多问题。如某公司董事长想从总经理那要公司未来发展的策划书(知道策划书的人越少越好),如果此时总经理在外出差,他就委托副经理将策划书交给董事长,但是副经理又不可以知道策划书的具体内容,而董事长既要拿到策划书又要看到策划书的具体内容。为此就需要具有消息恢复的代理盲签名方案。

2008年,吴晓波等人[7]基于Schnorr算法,提出了一个具有消息恢复的代理盲签名方案,使得只有原始签名者和消息接收者能看到原始待签消息,代理签名者看不到消息明文。另外在方案中引入了时间戳和生存期,有效解决了原始签名者和代理签名者相互抵赖的问题。

2010年,何金妮等人[8]利用椭圆曲线上的双线性对的特性,提出具有消息恢复的代理盲签名方案,该方案不仅有代理签名和盲签名共同的优点,而且可以恢复出消息,并且计算速度较快。

3.2 可收回代理权的代理盲签名方案

代理盲签名体制除了满足基本特性外,能否及时有效地撤销代理签名权也极为重要。如果不能及时地撤销代理签名权,不诚实的代理签名人就可以滥用签名权,从而产生以下问题:不诚实的代理签名者代表原始签名者继续签名,将给原始签名者带来损失;代理签名者在不诚实行为之前所签署的文件如何鉴定。

2008年,刘文远等人[9]提出来一种可回收代理权的代理盲签名方案,该方案在签名阶段将时间戳嵌入到Abe-Okamot部分盲签名中,无需可信的第三方参与,原始签名人就可以根据自己的需要回收代理签名者的代理权,并且代理权的回收不影响以前产生的有效签名的验证,有效地避免了代理权滥用、原始签名人伪造攻击和公钥替换攻击等。

3.3 指定接收人的代理盲签名方案

在实际应用中,为了防止代理签名人滥用代理权而给原始签名人的权益造成危害,除了及时有效地撤销代理签名权外,原始签名人可能希望指定一个签名接收人,代理签名人只能对发给该接收人的信息进行代理签名,只有该接收人才能验证签名,而对除此人以外的其他接收代理签名人则不能代理原始签名人签名。这种代理盲签名方案称为指定签名接收人的代理盲签名方案。本方案除了满足代理盲签名基本的安全特性以外,还应该满足以下三个要求:只有指定的签名接收人才能验证代理签名的有效性;代理签名人不能冒充原始签名人伪造签名的接收人;原始签名人不能否认指定签名接收人的行为。

2008年,施荣华,汪秋国[10]基于two-party Schnorr签名方案,提出一种指定接收人的代理盲签名方案。该方案中,只有指定接收者才可以恢复消息、验证签名的合法性,指定接收人可以向第三方证实签名的有效性。该方案不但满足代理盲签名方案的安全要求,而且还间接地起到了对代理签名人的代理签名的监督作用,防止代理签名人滥用代理签名权。

3.4 无证书的代理盲签名方案

无证书代理盲签名方案的参与方包括:密钥生成中心KGC、原签名者、代理签名者和用户。在无证书代理盲签名方案中,原始签名人和代理签名者的密钥生成与基于证书的代理盲签名方案不同,KGC根据原始签名人的身份ID和代理签名者的身份ID,利用自己的主密钥生成他们对应的部分密钥,并通过安全信道分别发给他们。收到部分密钥后,原始签名人和代理签名者利用已经确定的秘密信息和部分密钥计算出各自的密钥。

无证书的代理盲签名方案不需要利用证书对公钥进行认证,消除了密钥托管,从而解决了证书撤销、存储、分发等诸多问题,并且其安全性能高,认证速度快。因此,它在低带宽和低处理能力的条件下具有广泛的使用环境,例如:移动设备、无线传感器网络等。

2009年,陈虎等人[11]提出了一个无证书代理盲签名方案,并且声称该方案是安全的。2011年,吴晨煌等人[12]发现方案[11]存在严重的安全缺陷,即不诚实的用户能够恢复出代理私钥,在此基础上提出一个改进的无证书代理盲签名方案,并证明了改进方案的安全性。

4 展望

1)如何设计一种安全高效的代理盲签名方案。现有代理盲签名方案不但存在各种安全缺陷,例如不能抵抗一般性伪造攻击、具有连接性等,而且计算复杂性高,执行效率低,这也是阻碍代理盲签名方案实际应用的重要原因。因此,设计一个执行效率高,能抵抗各种攻击的代理盲签名方案有待进一步研究。

2)代理盲签名和相关技术的结合及其应用的研究。代理盲签名与相关技术如密码学、门限签名、群签名等之间很容易产生出新的数字签名技术,特别是代理盲签名与相关技术结合的研究还很不够,因此各种签名技术及其相关技术的结合、渗透、交融是数字签名技术一个大有可为的研究方向。例如,代理多重盲签名、多重代理多重盲签名、基于无证书的代理盲签名等都处于起步阶段,但它们都有着良好的应用前景。

3)如何在电子商务等领域更广泛地应用代理盲签名。目前对代理盲签名的研究主要停留在理论上,代理盲签名在电子商务等领域的应用少之甚少。因此,设计出真正切合实际需要的代理盲签名方案,实现代理盲签名在电子商务等领域中的广泛应用是进一步研究需要解决的问题。

5 结论

代理盲签名是一种新的数字签名技术,在电子支付、电子选举、电子支票等要求代理签名且需要保护用户隐私的场合有着广泛的应用前景。因此,对代理盲签名的研究具有重要的意义。本文主要介绍了代理盲签名应具有的基本特性,总结出代理盲签名的构造方法,然后对几种新型的代理盲签名进行了综述,最后提出了几个与代理盲签名相关的值得重视的研究方向。

摘要:文章综述了代理盲签名的发展状况,总结出代理盲签名的安全特性及构造方法。概括了几种新型的代理盲签名方案,分析了几种新型的代理盲签名方案的优缺点。最后对代理盲签名的研究前景进行了展望。

关键词:数字签名,代理签名,盲签名,代理盲签名

参考文献

[1]LINW D,JAN JK.A security personal learning tools using a proxy blind signature scheme[C]//Proceedings of International Conferenceon Chinese Language Computing.Washington:IEEE Computer Society,2000:273-277.

[2]谭作文,刘卓军,唐春明.基于离散对数的代理盲签名[J].软件学报,2003,14(11):1931-1935.

[3]ZHUOWEN TAN,ZUOJUN LIU,CHUNMING TANG.Digital Proxy Blind Signature Schemes Based on DLP and ECDLP[J].MM Re-search Preprints,2002,21(7):212-217.

[4]农强,吴顺祥.一种基于身份的代理盲签名方案的分析与改进[J].计算机应用,2008,28(8):1940-1942.

[5]张学军,王育民.高效的基于身份的代理盲签名[J].计算机应用,2006,26(11):2587-2588.

[6]FANGGUO ZHANG,REIHANNEH SAFAVI-NAINI,LIN CY.New proxy signature,proxy blind signature and proxy ring signatureschemes form bilinear pairings[EB/OL].[2003-5-29].http://eprint.iacr.org/2003/104.

[7]吴晓波,李树栋,陆洪文,等.一个改进的带消息恢复的代理盲签名方案[J].海军航空工程学院学报,2008,23(6):717-719.

[8]何金妮,辛小龙.具有消息恢复的代理盲签名[J].计算机工程与应用,2010,46(35):112-114.

[9]刘文远,佟凤,王宝文等.一个新的可回收代理权的代理盲签名方案[J].电子与信息学报,2008,30(10):2468-22471.

[10]施荣华,汪秋国.一种指定接收人的代理盲签名方案[J].中南大学学报(自然科学版),2008,39(1):162-165.

[11]陈虎,宋如顺.无证书代理签名和代理盲签名方案[J].计算机工程与应用,2009,45(9):92-97.

一种新的盲代理重签名方案 篇3

在代理重签名中,一个拥有重签名密钥的半可信代理者可将受托者(delegatee)的签名转换为委托者(delegator)对同一消息的签名(也称重签名),但这个代理者不能单独生成受托者或委托者的任何签名[1]。根据转换的方向,代理重签名分为单向和双向两类。代理重签名在简化证书管理、管理群签名、提供遍历的路径证明、构造审查系统和数字版权管理系统等方面有广泛的应用前景[2]。

盲代理重签名结合了代理重签名和盲签名的特性,使得代理者在生成委托者的签名时并不知道所转换消息的具体内容。盲代理重签名的公开文献比较少;然而,已有的盲代理重签名方案几乎都是双向的[3]。单向盲代理重签名比双向盲代理重签名更具有优越性,因为后者可以用两个不同的前者来构成,而前者不能由后者构成。Canetti等人发现,一个在随机预言模型下可证安全的密码系统,当使用一个真正哈希函数实现时,却是完全不安全的。所以,研究标准模型下可证安全的单向盲代理重签名签名方案更具有实际意义。本文提出了一个单向盲代理重签名方案,并在标准模型下证明了新方案的安全性。

1 预备知识

1.1 双线性对

G1和G2是两个阶为素数p的循环群,gG1的生成元,定义两个群G1和G2上的双线性映射e:GG1→G2,且满足以下性质的双线性映射为双线性对:

(1) 双线性 对任意的a,bZp,有e(ga,gb)=e(g,g)ab

(2) 非退化性 对任意的g1,g2∈G,满足e(g1,g2)≠1G2,这里1G2是G2的单位元。

(3) 可计算性 对任意的g1,g2∈G1,存在一个有效的算法计算e(g1,g2)。

1.2 复杂性假设

离散对数(DL)问题[4]:设G1是阶为素数p的循环群,gG1的生成元,则群G1上的离散对数问题是:已知g,gaG1,计算aZp

定义1 离散对数假设 如果没有一个概率多项式时间算法在时间t内以至少ε的概率解决群G1上的离散对数问题,则称群G1上的(t,ε)-DL假设成立。

计算性Diffie-Hellman(CDH)问题[5]:设G1是阶为素数p的循环群,gG1的生成元,群G1上的CDH问题是:已知g,ga,gbG1,其中ab是从Zp中随机选取的,计算gab

定义2 计算性Diffie-Hellman假设 如果没有一个概率多项式时间算法在时间t内以至少ε的概率解决群G1上的CDH问题,则称群G1上的(t,ε)-CDH假设成立。

2 盲代理重签名的形式化定义

定义3 盲代理重签名 盲代理重签名有4个参与方:用户(签名申请者)、受托者、代理者和委托者。一个盲代理重签名方案BPRS=(Setup,KeyGen,ReKey,Sign,Blind,ReSign,Unblind,Verify)由以下八个算法组成:

Setup是系统参数生成算法 输入一个安全参数1k,输出系统的公开参数params

KeyGen是密钥生成算法 输入系统参数params,输出用户的公钥/私钥对(pk,sk)。

ReKey是重签名密钥生成算法 输入一个受托者和委托者的公私钥对(pkA,skA)和(pkB,skB),输出一个重签名密钥rkAB。代理者使用rkAB可将受托者的签名转换为委托者的签名。

Sign是签名生成算法 输入一个用户请求签名的消息m和一个私钥sk,输出一个消息m的签名σ,并发送给用户。可用对应的公钥pk来验证签名σ的合法性。

Blind是盲化算法 输入一个盲化因子λ,一个消息m,一个公钥pkA和一个签名σA,该算法首先验证σA的合法性,如果Verify(pkA,m,σA)=1,输出一个盲化后的消息m′和一个对应于公钥pkA的消息m′的盲化签名σA′,并发送给代理者;否则,输出⊥。

ReSign是重签名生成算法 输入一个重签名密钥rkAB,一个盲化消息m′,一个公钥pkA和一个签名σA′,该算法首先验证σA′的合法性,如果Verify(pkA,m′,σA)=1,输出一个对应于公钥pkB的消息m′的重签名σB′,并发送给用户;否则,输出⊥。

Unblind是脱盲算法 输入一个盲化消息m′,一个公钥pkB,一个签名σB′和Blind中的盲化因子λ,该算法首先验证σB′的合法性,如果Verify(pkB,m′,σB′)=1,输出脱盲后的签名σB;否则,输出⊥。这里σB是委托者对消息m的盲代理重签名。

Verify是签名验证算法 输入一个消息m,一个公钥pk和一个签名σ,如果σ是对应于公钥pk的消息m的合法签名,输出1;否则,输出0。

定义4 盲代理重签名的不可伪造性 在一个盲代理重签名方案BPRS=(Setup,KeyGen,ReKey,Sign,Blind,ReSign,Unblind,Verify)中,如果攻击者进行有限次数的选择消息询问后,最终不能产生一个新消息的有效签名,则称BPRS方案在适应性选择消息攻击下能抵抗存在性伪造。

3 单向盲代理重签名方案

新方案有4个参与方:用户(签名申请者)、受托者、代理者和委托者,具体描述如下:

Setup 输入一个安全参数1k,选择两个阶为素数p的循环群G1和G2,gG1的生成元,定义一个双线性映射e:GG1→G2。假定m是一个nm比特长的签名消息,可用一个抗碰撞的哈希函数H1:{0,1}*→{0,1}nm来实现。在G1中随机选取nm+2个元素(h,u,u1,…,unm)。公开系统参数params:=(G1,G2,p,e,g,h,u,u1,…,unm)。

KeyGen 输入系统参数params,选取随机数xZp*,输出用户的公钥/私钥对(pk, sk)=(gx,x)。

ReKey 输入一个受托者的公钥pkA=gα和一个委托者的私钥skB=β,输出一个重签名密钥rkAB=(pkA)1/skB=gα/β

Sign 输入一个受托者的私钥skA=α和一个用户申请签名的消息m=(m1,…,mnm)∈{0,1}nm,输出一个消息m的签名σA=(σA,1,σA,2)=(hαω¯r,gr),这里rRZpω¯=ui=1nm(ui)mi

● Blind 输入一个消息m,一个公钥pkA和一个受托者的签名σA=(σA,1,σA,2),用户首先验证σA的合法性,若Verify(pkA,m,σA)=1,然后选取一个盲因子λ∈Zp*,计算盲化消息ω¯=ω¯gλ和盲化签名σA′=(σA,1′,σA,2′)=(σA,1·σA,2λ,σA,2),将(ω′,σA′)发送给代理者;否则,输出⊥。

● ReSign 输入一个重签名密钥rkA→B,一个盲化消息ω′,一个公钥pkA和一个签名σA′=(σA,1′,σA,2′),该算法首先验证σA′的合法性:e(σA,1´,g)=e(pkA,g2)e(σA,2´,ω¯)。如果验证等式不成立,输出⊥;否则,选取r′,t∈Zp*,输出一个ω′的重签名σB´=(σB,1´,σB,2´,σB,3´,σB,4´)=((σA,1´)t(ω¯)r,(σA,2´)tgr,(pkA)t,(rkAB)t)=(htα(ω¯)rβ/α+r,grβ/α+r,gtα,gtα/β)

若令r˜=rβ/α+rt˜=tα/β,则σB´=(σB,1´,σB,2´,σB,3´,σB,4´)=(ht˜β(ω¯)r˜,gr˜,gt˜β,gt˜)

Unblind 输入一个盲化消息ω′,一个公钥pkB和一个重签名σB′=(σB,1′,σB,2′,σB,3′,σB,4′),用户首先验证σB′的合法性:e(σB,1´,g)=e(σB,3´,h)e(σB,2´,ω¯)e(σB,3′,g)=e(σB,4′,pkB);如果验证等式不成立,输出⊥;否则,输出委托者对消息m的盲代理重签名σB=(σB,1,σB,2,σB,3,σB,4)=(σB,1′·(σB,2′)-λ,σB,2′,σB,3′,σB,4′)。

Verify 输入一个nm比特长的消息m和一个公钥pk,如果一个待验证的签名σ=(σ1,σ2)且e(σ1,g)=e(pk,h)e(σ2,ω¯),输出1;如果签名σ=(σ1,σ2,σ3,σ4)且e(σ1,g)=e(σ3,h)e(σ2,ω¯)e(σ3,g)=e(σ4,pk),输出1;否则,输出0。

4 新方案的安全性分析

在新方案中,受托者不参与重签名密钥的生成过程,委托者不参与盲代理重签名的生成过程。因为重签名密钥rkAB=gα/β,所以新方案是单向的。代理者只需保存一个重签名子密钥rkAB,所以新方案满足密钥最优性。盲因子λ在盲代理重签名的生成中总是存在,代理者无法将获取的中间数据和脱盲后的签名联系起来。用户将签名消息m相关的值ω盲化处理后发给代理者,代理者想通过ω¯=ω¯gλ求得ω并由此辨认出原来的消息m,则面临求解离散对数问题。所以,新方案是无链接的,由盲签名的定义可知,新方案具有盲性。

定理1 在标准模型下,新方案在计算性Diffie-Helllman假设下是不可伪造的。

证明:下面证明新方案是有限代理安全、受托者安全、委托者安全和外部安全的。

有限代理安全 如果一个攻击者A1以一个不可忽略的概率ε攻破新方案,那么我们可构造另外一个攻击者B1以概率ε/(4qS(nm+1))解决在群G1上一个CDH问题实例(g,A=ga,B=gb),这里qS是A1询问签名生成预言机的次数,攻击者B1根据下面的过程来模拟新方案的安全游戏。

建立 攻击者B1首先设置lm=2(qS+qRS),并选择一个随机数km,满足0≤kmnmlm(nm+1)<p。任选nm+1个不大于lm的正整数x′,x1,…,xnm,在Zp*中选择nm+1个随机数y′,y1,…,ynm。设置参数h=B=gb,g1=A=ga,u=hx′-lmkmgy′,ui=hxigyi,i=1,…,nm。对任意消息m=(m1,…,mnm)∈{0,1}nm,定义F(m)=x-lmkm+i=1nmmixiJ(m)=y+i=1nmmiyi,这里ω¯=ui=1nm(ui)mi=hF(m)gJ(m)

查询 因为攻击者A1能独立进行盲代理重签名方案中的消息盲化和脱盲操作,所以A1可以自适应性地询问攻击者B1建立的如下预言机:

● OKeyGen是密钥生成预言机 攻击者B1选择一个随机数xiZp*,计算公钥pki=Axi=gaxi,如果攻击者A1询问的用户已被攻陷,B1返回(pki,ski)=(gaxi,xi)给A;否则,B返回pki给A。

● OSign是签名生成预言机 攻击者A1输入一个公钥pki和一个消息m,如果F(m)=0(modp),攻击者B1不能计算出签名σ,只能退出模拟宣告失败;否则,B1选择一个随机数rZp,计算签名σ=(σi,1,σi,2)=(g1-J(m)/F(m)ω¯r,g1-1/F(m)gr)。如果令r˜=r-a/F(m),那么OSign产生的签名与Sign算法生成的签名是一致的,这里σi,1=g1-J(m)/F(m)ω¯r=ha(hF(m)gJ(m))r-a/F(m)=gabω¯r˜σi.2=g1-1/F(m)gr=gr-a/F(m)=gr˜

● ORekey是重签名密钥生成预言机 攻击者A1输入两个不同的公钥pki和pkj,如果pki和pkj均已被攻陷或均未被攻陷,那么攻击者B1首先询问预言机OKeyGen获得(pki, pkj)对应的私钥(xi, xj),然后将rkij=gxi/xj=gaxi/axj=(gaxi)1/axj=(pki)1/skj返回给A1;否则,输出⊥。

伪造 如果攻击者B1在经过上面的一系列预言机的查询后都没有失败,那么攻击者A1将以至少ε的概率输出一个消息m*,公钥pk*和一个伪造签名σ*=(σ1*,σ2*)或σ*=(σ1*,σ2*,σ3*,σ4*)。若F(m*)≠0(modp),则攻击者B1退出,模拟宣告失败;否则,对于r*∈Zp,该伪造必须满足:

σ*=(gabω¯r*,gr*)=(gab(hF(m*)gJ(m*))r*,gr*)=(gab+J(m*)r*,gr*)=(σ1*,σ2*)

为了解决CDH实例(g,ga,gb),攻击者B1计算(σ1*)(σ2*)-J(m*)=gab

如果攻击者B1完成了整个模拟过程,那么作为签名预言机的输入消息mm*必须满足F(m)≠0(modp)和F(m*)=0(modp)。攻击者B1不退出模拟的概率分析与Smb方案[5]的安全性分析完全相同。即如果攻击者A1以至少ε的概率攻破新方案,那么攻击者B1以至少ε/(4qS(nm+1))的概率解决CDH问题实例。

受托者安全 与有限代理安全的分析基本相同,主要区别如下:

● OKeyGen 设目标用户0的公钥pk0=A=ga,h=B=gb。攻击者B2选择一个随机数xiZp*,计算公钥pki=gxi(1≤iN),B2返回(pki,ski)=(gxi,xi)给A2;即攻击者A2知道除用户0外的所有其它用户的私钥。

● OSign 攻击者A2能计算任意用户i≠0的所有签名,当A2询问目标用户0对消息m的签名时,攻击者B2对攻击者A2的模拟过程与攻击者B1对攻击者A1的模拟过程基本相同。

最后,A2成功输出一个签名伪造,B2也能与B1一样解决一个CDH问题实例。

委托者安全 如果一个攻击者A3以一个不可忽略的概率ε攻破新方案,那么我们可构造另外一个攻击者B3以概率ε/(4qS(nm+1))解决在群G1上一个mCDH问题实例,这里qS是A1询问签名生成预言机的次数。给定(g,A=ga,A′=g1/a,B=gb),攻击者B3的目标是计算gab。与受托者安全的分析基本相同,主要区别如下:

● ORekey 攻击者A3输入两个不同的公钥pkipkj,攻击者B3首先询问预言机OKeyGen获得(pki, pkj)的私钥(xi, xj),如果i≠0,j≠0,计算rkij=gxi/xj;如果i=0,j≠0,计算rk0→j=A1/xj=ga/xj;如果i≠0,j=0,计算rki→0=(A′)xi=gxi/a;然后B3将rkij返回给A3。

最后,A3成功输出一个消息m*的签名伪造σ*=(σ1*,σ2*)或σ*=(σ1*,σ2*,σ3*,σ4*)。如果F(m*)≠0(modp),B3宣布退出;否则,该伪造必须满足(σ1*,σ2*)=(gab+J(m*)r*,gr*),B3能计算出gab=(σ1*)(σ2*)-J(m*)。

外部安全 与有限代理安全的分析基本相同,主要区别如下:

● OKeyGen 设目标用户i*的公钥pki*=A=ga,h=B=gb。攻击者B4选择一个随机数xiZp*,计算公钥pki=gxi(ii*),B4返回(pki,ski)=(gxi,xi)给A4;即攻击者A4知道除用户i*外的所有其它用户的私钥。

● OSign 攻击者A4计算任意用户ii*的所有签名;当A4询问目标用户i*对消息m的签名时,B4对A4的模拟拟过程与B1对A1的操作完全相同。

● OResign是重签名生成预言机 攻击者A4输入两个不同的公钥pkipkj,一个盲化消息ω′和一个盲化签名σi′,如果Verify(pki,ω′,σi′)=0或i=i*时F(m*)=0,攻击者B4输出⊥;否则,B4返回给A4一个ω′的重签名σB′=ReSign(rkij,pki,ω′,σi′)。

最后,A4成功输出一个签名伪造,B4也能类似B1解决一个CDH问题实例。

5 结 语

本文将盲签名的特性与单向代理重签名的特性进行有效融合,提出了一个安全的单向盲代理重签名方案,并在标准模型和CDH假设下给出了其安全性证明。

参考文献

[1]Blaze M,Bleumer G,Strauss M.Divertible Protocols and Atomic ProxyCryptography[C]//Proceedings of EUROCRYPT 1998.LNCS,Vol.1403,1998:127-144.

[2]Ateniese S,Hohenlerger S.Proxy Re-signatures:New Definitions,Algo-rithms and Applications[C]//Proceedings of ACM Conference onComputer and Communications Security,2005:310-319.

[3]Deng Y Q,Du M H,You Z L,et al.A Blind Proxy Re-Signatures Scheme Based on Standard Model[J].Journal of Electronics&Infor-mation Technology,2010,37(05):1119-1223.

[4]Libert B,Vergnaud D.Multi-Use Unidirectional Proxy Re-Signatures[C]//Proceedings of ACM Conference on Computer and Communica-tions Security,2008:511-520.

一种可相互认证的盲签名方案 篇4

关键词:盲签名,双线性对,可相互认证

盲签名的概念是David Chaum在文献[1]中提出的,它是指签名者并不知道所签文件或消息的具体内容,而文件或消息的拥有者又可以得到签名人关于真实文件或消息的签名。除了要满足通常的签名方案的安全要求外,一个强盲签名方案还应满足2个条件[2]:

1)被签消息对签名者是盲的;

2)签名人事后不能追踪签名。

盲签名主要用于安全电子现金及电子投票等协议中,用以保护消费者及投票人的隐私。

近几年来,基于身份的密码体制成为密码学界的又一个研究热点。这种密码体制最初是由Shamir[3]于1984年提出,但直到2001年才由Boneh和Franklin[4]利用Weil Pairing和Tate Pairing给出了一个很好的实现方案。该体制目的是为了简化密钥管理。在基于身份的密码体制中,用户的公钥是直接从其身份信息(如姓名、身份证号、E-mail地址等)得到,而私钥则是由一个称为私钥生成中心(PKG)的可信方生成的。自2001年来,人们相继提出了许多实用的基于身份的密码方案。

Zhang和Kim[5]则于2002年首次引入了基于身份的盲签名。

本文利用双线性映射提出一个盲签名方案,该方案完全满足强盲签名的安全要求,而且可以实现签名者和用户之间的相互认证,可以有效的避免盲签名在应用中的一些潜在的不安全问题。

1 双线性映射

设G1,G2为两个阶均为大素数q的群。其中G1是一个加法循环群,G2是一个乘法循环群。设P是G1的任意一个生成元。假设离散对数问题(DLP)在G1和G2中都是困难的。密码学双线性映射是指一个满足下列性质的映射:e:G1×G2→G2:

双线性:对于∀P,Q,R∈G1,a,b∈Fq*,有

非退化性:存在P,Q∈G1,使e(P,Q)≠1,即双线性映射e不能将G1×G2中所有的元素映射到G2中的单位元;

可计算性:对于所有的P,Q∈G1,存在一个有效的多项式时间算法来计算e(P,Q)。

2 可相互认证的盲签名方案

2.1 参数说明

PKG(Private Key Generator)随机选取s∈Zq*作为系统的私钥(Master Key),再随机选取点P∈G1并计算Ppub=sP作为系统的公钥,然后选取H1,H2,H3,其中H1为一个映射,H2,H3为单向散列函数,三者满足H1:{0,1}*→G1、H2:{0,1}*→{0,1}l、H3:G1→{0,1}l,系统公开(P Ppub,H1,H2,H3)。

签名者和用户分别拥有并公开自己的身份IDs和IDu,该ID是一字符串,可以是姓名、身份证号、E-mail地址等,用于唯一标志该成员的身份,他们向PKG提交自己的身份,PKG计算Qs=H1(IDs)和Qu=H1(IDu)分别作为签名者和用户的公钥,Ss=sQs和Su=sQu作为签名者和用户的私钥,通过安全信道返还给他们。

设x(Q)和y(Q)分别表示点Q∈G1的x轴和y轴的坐标,A||B表示比特串A和B相联。

2.2 可相互认证的盲签名

2.2.1 盲签名产生过程

1)签名者S随机选择数r∈RZq*,计算共享密钥k=e(Ss,rQu)和参数R=rQs,将R发给用户U;

2)用户U收到R后,同样可计算出双方的共享密钥k'=e(rQs,Su)=k,然后随机选择消息m的盲因子t∈RZq*,计算v=t×(k+H2(m||x(kQs)||y(kQs))和c=H2(v||k),将v和c返还给签名者S;

3)签名者S收到v和c之后,验证是否有等式H2(v||k)=c成立,不成立则拒绝进行签名,否则计算z=v×Ss,将z发送给用户U,则(rQs,z)就是对消息m的盲签名。

4)用户U接收到签名者S对消息的盲签名(rQs,z)之后,计算z'=t-1×z、h'=H2(m||x(kQs)||y(kQs)),然后验证是否有等式e(P,z)=e(Ppub(k+h')Qs)成立,不成立则拒绝该签名,否则接受该签名。

2.2.2 盲签名验证过程

如果第三方希望检验签名者S对消息m的签名,则用户U只需出示(m,kQs,z'),第三方检验是否有e(P,z')=e(Ppub,kQs+H2(m||x(kQs)|y(kQs))Qs)成立即可,等式成立,则表明该签名有效,否则,该签名无效。

3 方案安全性分析

3.1 盲性分析

在整个签名的过程中,双方相互一共传递了(R,v,c,z)四个数据,因此,在签名过程中盲因子t∈RZq*始终存在,盲因子的随机性保证了签名的盲性。

3.2 不可跟踪性

签名者S在整个签名的过程中仅拥有被盲化的消息m的散列值,因此,单向散列函数的单向性和签名方案的盲性保证了签名者无法事后追踪签名。

3.3 不可伪造性

不可伪造信息:假设恶意用户L希望用消息m'伪造U的消息m来骗取签名,由于L没有U的私钥Su,故L无法计算出共享密钥k=e(rQs,Su),同样也无法计算出正确的v,进而无法伪造校验信息c=H2(v||k),在盲签名产生过程的第三步检验用户合法性时就会被签名者检验出来。

不可伪造签名:假设恶意用户L想伪造签名者S的签名,由于L没有S的私钥,故他无法伪造合法的盲签名z=vSs,因此在盲签名产生过程的第四步用户检验等式e(P,t-1×z)=e(Ppub,(k+h')Qs)是否成立时就会被用户检验出来。

如果合法用户U想伪造签名者S的签名,同意由于U没有S的私钥,因此U无法提供正确的z',则在第三方检测等式e(P,z')=e(Ppub,kQs+H2(m||x(kQs)||y(kQs))Qs)是否成立时即可被检测出来。

3.4 不可否认性

从方案的不可伪造性可知,在整个签名过程中,签名者和用户是相互认证的,任何一方都不能单独伪造签名;每次签名中所带有的双方各自独立选取的随机数也避免了重放以前签名数据的可能;如果没有签名者和用户选择的随机数和私钥,恶意用户也无法伪造签名。因此,只要用户U能出示消息及签名数据(m,kQs,z')使得等式e(P,z')=e(Ppub,kQs+H2(m||x(kQs)||y(kQs))Qs)成立,签名者就无法抵赖,同样,用户也无法否认他曾经发送过消息m。

3.5 相互验证性

不可冒充用户:由于用户私钥只有用户本人所有,因此,在盲签名产生过程的第二步,恶意用户无法伪造校验值c,也就无法通过第三步签名者验证等式H2(v||k)=c是否成立这一检验了。此外,由于k是利用签名者随机选取的数r计算的,k的随机性杜绝了恶意用户实施重放攻击的可能。

不可冒充签名者:由于签名者的私钥只有签名者本人拥有,因此,在盲签名产生过程的第三步,恶意用户无法计算出正确的z'=v×Ss,也就无法在盲签名产生过程的第四步通过用户对等式e(P,z')=e(Ppub,(k+h')Qs)是否成立的验证,同样,用户随机选取的盲因子t保证了恶意用户无法通过重放以前的数据来冒充签名者。

3.6 方案效率分析

该文的方案是在基于身份的密码体制之下的,基于身份的密码体制大大简化了对公钥的管理程序,减轻了管理公钥的负担。

该文方案里,整个签名过程仅使用了群中的标量乘、双线性映射以及散列运算,比以往的模幂运算要节省很多的计算开销和通信开销。

该文方案无需额外的权威认证机构对用户身份和签名者身份进行认证,直接将签名和认证过程糅合到一块,大大减小了软硬件的开销。

4 结束语

本文利用双线性映射的一些特性,提出了一种新的盲签名方案,该方案允许用户和签名者能相互认证对方的身份,满足强盲签名方案所需的安全要求,而且该方案用于基于身份的密码体制中,大大减轻了公钥的管理负担。

参考文献

[1]Chaum D.Blind Signature Systems[C]//Proceedings of the Crypto’83.New York:springer-Verlag,1998:153-156.

[2]Harn L.Cryptanalysis of the Blind Signature Based on the Discrete Logarithm Problem[J].Electronic Letters,1995,31(14):1136-1137.

[3]Shamir A.Identity-based cryptosystems and signature schemes[C]//Advances in CRYPTO’84,LNCS196.Berlin:Springer-Verlag,1984:47-53.

[4]Boneh D,Franklin M.Identity Based Encryption from the Weil Pairing[J].SIAM J.of Computing,2003,32(3):586-615.

[5]Zhang F,Kim K.ID-based Blind Signature and Ring Signature from Pairings[C].Advances in Asiacrypt,LNCS,2002:533-547.

部分盲签名 篇5

代理签名1996年由Mambo等人提出[1],它指当某个签名人(称为原始签名人)因某种原因不能签名时,将签名权委托给他人(称为代理签名人)替自己行使签名权,验证人能够验证并区分原签名人的签名和代理人的签名。盲签名[2]是因电子支付匿名性的要求而提出的,它与通常的数字签名不同之处在于,签名者并不知道他所签发文件的具体内容。正是这个特点,使得盲签名技术可广泛用于许多领域。

代理签名和盲签名有着各自不同的特点,然而在某些情况下需要同时应用它们,这就是代理盲签名。代理盲签名方案结合了代理签名和盲签名的特点,它能使用户得到代理签名者对消息的签名,而代理签名者对消息的内容却一无所知。例如在电子支付系统中,银行可以指定一个它所信赖的部门或其分支部门来代表银行发行电子现金,而银行只需对用户帐户进行管理。2000年文献[3]首次提出了代理盲签名方案,之后文献[4]在Schnorr盲签名的基础上提出了一个基于离散对数的代理盲签名,但是后来文献[5]证明文献[4]的方案是不安全的,它既受到了广泛伪造攻击,又是可链接的。

1984年,文献[6]提出了一个基于身份的加密和签名方案,解决了由CA颁发公钥证书所带来的存储和管理开销等问题。后来,人们发现利用双线性映射可以高效实现密码学上基于身份的加密、签名等应用。最近,利用双线性对构造的一些基于身份的代理盲签名方案被提出[7,8,9],具有一些较好的性质。容易发现在这些方案当中PKG掌握各用户的私钥,不诚实的PKG可以任意伪造签名,这个问题成为基于身份的公钥密码系统在实际中广泛应用的极大障碍。

基于对以上问题的研究,本文首次利用双线性对构造了一种基于身份无可信中心的代理盲签名方案,证明了其正确性并在安全性及性能等方面和已提出的基于身份的代理盲签名方案进行了比较分析,结果表明,新方案具有更高的安全性,签名效率也有明显的提高。

1 数学知识

设(G1,+)和(G2,×)为q阶循环群,q为一大素数,P为G1的生成元。设在群G1、G2中离散对数问题是困难的,可定义双线性映射为e:G1×G1→G2,其满足双线性性、非退化性和可计算性。对于这样定义的G1,我们可以定义离散对数问题(DLP)、可计算Diffie-Hellman问题(CDHP)、可判定Diffie-Hellman问题(DDHP)、Gap Diffe-Hellman(GDH)问题等难解问题,并称具有CDH问题难解而DDH问题易解特征的群为GDH群。有关详细内容可参看文献[10]。

2 本文的代理盲签名方案

2.1 系统初始化

输入安全参数1k,输出两个阶为q的循环群(G1,+)和(G2,×),q为大素数,P为G1的生成元。定义G1上的一个双线性映射e:G1×G1→G2,同时定义四个强无碰撞安全单向Hash函数H1:{0,1}*×G1→Zq*,H2:{0,1}*×G1→G1,H3:{0,1}*→G1,H4:G1→Zq*。最后PKG选择s∈RZq*,计算Ppub=s P,将s秘密保存,公开其系统参数:Params={G1,G2,e,q,P,Ppub,H1,H2,H3,H4}。

2.2 密钥提取

原始签名者Alice和代理签名者Bob分别秘密选取各自相应的随机数rA,rB∈RZq*,各自计算rAP、rBP并把rAP、rBP和rA、rB的使用期限TA、TB发送给PKG,再把它们的身份信息IDA、IDB各自提交给PKG,而后PKG计算QA=H2(IDA||TA,rAP),QB=H2(IDB||TB,rBP),把QA、QB作为Alice和Bob的公钥,把SA=s QA、SB=s QB作为Alice和Bob的部分私钥,通过安全通道分别送给Alice和Bob,Alice的私钥为(SA,rA),Bob的私钥为(SB,rB)。

2.3 生成代理密钥

Alice在开始代理授权之前先准备授权文件mW,其中包含代理人信息,如代理签名人公钥以及代理签名的文件类型、时间等。Alice首先计算一个短签名SW=H4(H3(mW))SA,然后将(SW,mW,TA,rAP)发送给Bob,Bob验证等式e(SW,P)=e(QA,Ppub)43WH(H(m))是否成立,如果成立,Bob计算代理密钥:SP=SW+H4(H3

2.4 签名

若用户U要求代理签名者Bob对消息m进行代理盲签名,则:

(1)U选择t1∈RZq*,计算m′=t1-1H1(m),然后将m′发送给Bob;

(2)Bob收到m′后,计算S′=(H4(H3(mW)rB(QA+QB))+SP)m′,然后将S′发送给U;

(3)U收到m′后,计算S=t1S′。

于是用户U得到Bob对消息m的代理盲签名σ(m)=(S,mW,rAP,rBP,TA,TB)。

2.5 验证

验证者首先计算QA=H2(IDA||TA,rAP),QB=H2(IDB||TB,rBP),再看等式e(S,P)=e(QA+QB,rBP+Ppub)1H(m)H4(H3(mW))是否成立。如果成立则接受签名,否则认为该签名无效。详细推导过程如下:

3 安全性分析

代理盲签名应该满足可验证性、可区分性、可识别性、不可伪造性、不可否认性、防止滥用性、盲性和不可链接性等安全性要求,其中可验证性在上节中已经得到证明。由于有效的代理签名σ(m)=(S,mW,rAP,rBP,TA,TB)中包含了授权证书mW,而且授权证书mW、原始签名者Alice和代理签名者Bob的公钥QA、QB都要在签名的验证算法中出现,易证本文的代理签名方案满足可区分性、可识别性、不可否认性、抗滥用性,下面主要证明其满足不可伪造性、盲性和不可链接性。

定理1本文提出的代理盲签名方案具有不可伪造性

证明由于攻击者(非PKG)不知道代理签名者Bob的代理密钥SP,因此攻击者不能利用代理密钥SP来进行签名。攻击者想要伪造的对消息m的代理签名通过验证,他们必须使(S,mW,rAP,rBP,TA,TB)满足验证式:e(S,P)=e(QA+QB,rBP+Ppub)1H(4m)H(3H(Wm)),然而e是一个安全的双线性对,找到一组数(S,mW,rAP,rBP,TA,TB)满足上式在计算上是不可行的,所以满足不可伪造性。

如果PKG想伪造签名,由于PKG知道SA、SB,所以他可以计算代理密钥SP,通过伪造的rAP、rBP进而伪造出能通过验证的“有效”的代理签名,然而代理签名者Bob可以提供证据证明PKG伪造了他的代理签名。他可以先把rBP、TB递交给一个中间人,就可以证明他知道SB。中间人选取一个随机数a∈RZq*,把a P通过一个安全通道送给Bob,Bob计算e(SB,a P),如果等式e(SB,a P)=e(QB,Ppub)a成立,那就说明Bob知道SB,且他的IDB在同一个时间期限内对应了rBP,rB′P,这时中间人就可判断PKG伪造了Bob的代理签名。因为只有PKG知道s,别人无法得到SB,当然无法伪造能通过验证的rB、rBP。

定理2本文提出的代理盲签名方案具有盲性

证明用户U使用盲因子t1对消息m进行盲化,代理签名者Bob只对消息m的变形m′进行签名并未看到m,因此m对代理签名者Bob是盲的。

定理3本文提出的代理盲签名方案具有不可链接性

证明盲签名σ(m)=(S,mW,rAP,rBP,TA,TB)是由消息持有者Bob进行脱盲变化后形成的,由于群G1上的离散对数问题是难解的,因此签名者Alice不能通过S=t1S′计算出盲因子t1。即使Alice保存了m′和S′,当盲签名(S,mW,rAP,rBP,TA,TB)公布后,他也不能确定盲签名(S,mW,rAP,rBP,TA,TB)是他的哪一次签名,所以本文方案具有不可链接性。

4 效率分析

下面将本文提出的代理盲签名方案和文献[7,8,9]中的方案从计算复杂性方面进行了比较,并将结果总结在表1中。表1中有关符号的定义如下:Pa表示双线性映射中的对操作,Pm表示G1上的标量乘,Ad表示G1上的点加操作,Mu表示Zq上的乘操作,MuG2表示G2上的乘操作,ExG2表示G2上的指数运算。这里我们忽略了所有的哈希运算,而且在考虑计算复杂性时已经对文献[7,8,9]方案中的相关双线性对进行了预计算。

从各种操作的计算来看,Pa计算最耗时,然后是Pm,其它运算相对计算双性对时间开销非常小。从表1可以看出,本文的代理盲签名方案的计算复杂度大约是2Pa+6Pm,而文献[7]方案的计算复杂度大约是7Pa+11Pm,文献[8]方案的计算复杂度大约是8Pa+3Pm,文献[9]方案的计算复杂度大约是3Pa+8Pm,因此本文方案具有更高的效率。

5 结束语

针对已提出的基于身份的代理盲签名方案不能有效抵抗伪造攻击和不具有不可链接性等缺陷,本文利用双线性对构造了一个高效的基于身份的代理盲签名方案,证明了其正确性并进行了安全性和性能分析。结果表明所提方案克服了已有方案的安全隐患,具有安全性高、计算复杂性低的优点。

参考文献

[1]Mambo M,Usuda K,Okamoto E.Proxy Signatures:Delegation of the Powerto Sign Messages[J].IEICE Trans.on Fundamentals,1996,E79-A(9):1338-1354.

[2]Chaum D.Blind signature for untraceable payments[C].Crypto’82,New York:Prenum Publishing Corporation,1982:199-204.

[3]Lin W D,Jan J K.A Security Personal Learning Tools Using a Proxy Blind Signature Scheme[C].Proceedings of International Conference on Chinese Language Computing,Illinois,USA:2000:273-277.

[4]谭作文,刘卓军,唐春明.基于离散对数的代理盲签名[J].软件学报,2003,14(11):1931-1935.

[5]王蜀洪,王贵林,鲍丰,等.对一个基于离散对数代理盲签名的密码分析[J].软件学报,2005,16(5):911-915.

[6]SHAMIR A.Identity-based cryptosystems and signature schemes[A].Crypto’84,LNCS196[C].Berlin,1984.47-53.

[7]ZHENG D,HUANG Z,CHEN KF.ID-based proxy blind signature[A].ANNA2004[C].IEEE Computer Society,2004,2:380-383.

[8]李素娟,张福泰.基于ID的代理盲签名[J].计算机工程,2006,32(17):203-204.

[9]LANG W M,TAN Y M,YANG Z K.A newefficient ID-based proxy blind signature scheme[A].ISCC 2004[C].IEEE Computer Society,2004,1:407-411.

部分盲签名 篇6

数字签名在现代电子数据处理过程中扮演着非常重要的角色, 而具有消息恢复特性的数字签名不需要发送原始数据, 因而比其他数字签名具有更为重要的作用。具有消息恢复特性的数字签名只有指定的验证者才能够在验证过程中恢复消息。文献[1]中提出基于一般离散对数问题的消息恢复签名方案, 在验证签名正确性的同时能够恢复出签名消息, 可以广泛应用于基于身份认证的公钥密码体制和密钥交换体制中。国内外许多学者对这一签名体制进行了大量的研究[1~5], IEEE的P1363中已将NR消息恢复签名列为一个标准。

文献[6]中提出了基于因子分解和离散对数困难性之上的《具有消息恢复的数字签名方案》。文献[7]中对基于离散对数的难解性提出了《具有消息恢复的数字签名方案及其安全性》。这些方案都是基于离散对数或因子分解之上, 实际上基于EC-DLP问题的签名方案与一般的离散对数问题相比具有如下优点:安全性能更高;计算量小, 处理速度快;存储空间占用小;带宽要求低。因此, 椭圆曲线密码体制是现代密码学, 特别是公钥密码学的一个热门话题。

本文提出了一种新的基于双线性对的具有消息恢复的指定验证者的代理盲签名方案。与其他类似方案相比, 该方案无需使用安全通道来分发代理签名密钥, 而且又能将数字签名与公钥密码算法很好地结合起来, 使得只有指定验证者才能恢复消息和验证签名。使用这种方法, 能够保证对消息的认证和数据的完整性。同时, 验证者的秘密也得到了较好的保护。

1 背景知识

首先, 我们回顾一下双线性对的基本概念, 符号同文献[8]。

令G1和G2分别是阶为素数q的加群和乘群, P为G1的生成元, 假设G1和G2这两个群中的离散对数都是困难问题。令e:G1×G1→G2为满足下列3条性质的双线性对:

(1) 双线性性e (a P, b Q) =e (P, Q) ab。对所有的P, Q∈G1和所有的a, b∈Z。

(2) 非退化性若e (P, Q) =1, Q∈G1, 则P=Θ。

(3) 可计算性存在有效算法可以计算e (P, Q) , 对P, Q∈G1。

把满足上述3条性质的双线性映射叫做可容忍的双线性映射, 可以用超椭圆曲线上的Weil对或经改造的Tate对来构造双线性对。

在这样的群G1上, 有以下几个密码学问题:

(1) 离散对数 (DL) 问题给定P, Q∈G1找出整数n, 使得P=n P', 如果这样的n存在。

(2) 计算Diffie-Hellman (CDH) 问题给定三元组 (P, a P, b P) ∈G13, a, b∈Zp*计算ab P。

(3) 判定Diffie-Hellman (DDH) 问题给定四元组 (P, a P, b P, ab P) ∈G14, 对所有a, b, c∈ZP*, 判断c≡ab (modq) 是否成立。

(4) Gap Diffie-Hellman问题这是一类CDH问题困难而DDH问题容易的问题。

(5) Gap Diffie-Hellman (GDH) 群这是一类CDH问题困难而DDH问题容易的群。

2 具有消息恢复的指定验证者的代理盲签名方案

2.1 系统初始化

设G1和G2分别是阶为素数q的加群和乘群 (q为大素数) , P为G1的生成元, 定义双线性对e:G1×G1→G2, 并给定这样的Hash函数, H1 (·) :{0, 1}*×G1→Zq*为强无碰撞安全单向Hash函数。A代表原始签名者;B代表代理签名者;C代表消息拥有者;D代表指定验证者。他们分别从Zq*中随机选取ki (i∈{A, B, C, D}) 作为私钥, 计算Pi=kiP (i∈{A, B, C, D}) 作为公钥, 并交由密钥认证中心CA认证。公开{G1, G2, q, p, H1 (·) , PA, PB, PC, PD}。

2.2 代理密钥产生协议

1) 原始签名人A产生授权书mw, 它描述了代理签名者B的代理权限, 包括A的相关信息, B的代理期限、代理签名次数以及签名消息范围等内容。

2) 原始签名者A随机选取k∈Zq*, 计算:

原始签名者A把 (rA, PAB, SA, mw) 通过公开信道发送给代理签名者B。

3) 代理签名者B收到 (rA, PAB, SA, mw) 后验证信息的合法性:

代理签名者B验证以下等式:SAP=e1PA+rA, PAB=SAP+PBe1。若等式成立, 则代理签名密钥为kAB=SA+kBe1。

2.3 代理签名生成算法

1) 消息拥有者C首先对消息m进行如下处理:然后随机选取a∈ (1, n) , m=a-1m PD最后发送m给代理签名者B。

2) 代理签名者B收到m后, 计算S'=kABm, 然后把S'发给消息拥有者C。

3) 消息拥有者C收到S'后, 验证:

若成立, 消息拥有者C计算:S=a S'+kCPD。 (mw, rA, m, S) 为签名结果。

2.4 代理盲签名的验证

指定验证者D收到 (mw, rA, m, S) 后,

验证:PAB=SAP+PBe1=e1 (PA+PB) +rA

若上式成立, 则签名有效。接下来恢复消息m, 验证m和签名的有效性。

恢复消息m:

判断恢复得到的消息m是否符合授权证书mw中的规定。若符合, 则进行以下步骤。

验证消息m和签名的有效性:

3 安全性分析

3.1 代理签名的不可否认性

代理签名者B生成代理签名密钥kAB。因为代理签名密钥kAB=SA+kBe1中有代理签名者B的私钥kB, 除代理签名者B外, 第三方即使是原始签名者A不知道kB, 从而无法得到kAB。此外在椭圆曲线上的离散对数难解性的假设下, 由PB=kBP得到kB不可能。因此代理签名者B不能否认自己生成的有效代理签名。

3.2 代理签名的不可伪造性

消息拥有者C和指定验证者D不能合谋来伪造代理签名。若他们伪造代理签名为在签名验证过程中, 要使得等式成立, 他将面临在椭圆曲线上计算离散对数的困难。因此, 本方案具有不可伪造性。

3.3 非指定验证者不可恢复消息

假设方案的攻击者在没有D合法密钥kD的情况下, 试图通过 (mw, rA, m, S) 来恢复消息m。通过解方程m=[m+ (kD PC) x][ (PB) x]-1的方法是获得正确消息的唯一途径。但是攻击者并不知道kD, 他只知道公开的信息 (m, PC, PB) , 所以他不能通过解方程m=[m+ (kDPC) x][ (PB) x]-1的方法来获得正确的消息。如果他想知道kD, 那么他唯有解方程PD=kDP。但因此, 他面临在椭圆曲线上解离散对数问题的困难。因此只有指定的验证者才可恢复出正确的消息。

4 性能

在所提的具有消息恢复的指定验证者的代理盲签名方案中, 各阶段所用双线性对的次数不多, 并且原始签名者和代理签名者之间、代理签名者和消息拥有者之间的交互次数以及需要传递的数据量也是很小的。由于所提方案是基于椭圆曲线或超奇异椭圆曲线, 所以具有密钥长度小、代理盲签名长度短的优点。这些优点使得方案更加具有应用价值, 保证了它在现实生活的可行性。

5 结束语

本文提出一种基于双线性对的具有消息恢复的指定验证者的代理盲签名方案, 并且利用双线性对中椭圆曲线上离散对数是困难性问题, 在这假设下分析了其安全性。由于指定验证者在签名验证过程中可以恢复消息并可通过消息验证代理签名的正确性, 在签名传输中不用传输消息本身, 而只需要传输消息摘要, 可降低通信基金项目成本。同时, 通过引入双线性对使得计算复杂性降低, 方案计算开销较少。

参考文献

[1]Nyberg K, Reuppel R A.Message Recovery for Signature SchemesBased on the Discrete Logarithm Problem[C].Advances in Cryptologyproceedings of Eurocrypt’94, Lecture Notes in Computer Science:Vol 950.Perugia Itlay:Springer-Veralg.1995:182-193.

[2]伊丽江, 蔡勉, 肖国镇.对一种消息恢复数字签名的注记[J].西安电子科技大学学报, 2000, 27 (2) :256-258.

[3]李子臣, 李中献, 杨义先.具有消息恢复签名方案的伪造攻击[J].通信学报, 2000, 21 (5) :84-86.

[4]黄振杰, 王育民, 陈克非.Nyberg-Reuppel消息恢复盲签名的一般化和改进[J].通信学报, 2005, 26 (12) :131-135.

[5]谢琪, 于秀源.指定接收者恢复消息的抗抵赖数字签名体制[J].浙江大学学报:理学版, 2005, 32 (4) :382-385.

[6]李子臣, 杨义先.具有消息恢复的数字签名方案[J].电子学报, 2000, 28 (1) :125-126.

[7]卢建朱, 陈火炎.具有消息恢复的数字签名方案及其安全性[J].电子学报, 2003, 24 (4) :695-697.

部分盲签名 篇7

关键词:盲签名,离散对数,二次剩余,前向安全,盲性

0引言

随着现代信息技术和计算机网络的广泛应用与普及,人们对信息的安全提出了越来越高的要求,其中数字签名就是一种实现网络信息安全的重要手段,它在保证传输信息的保密性、完整性和不可抵赖性,实现发送者的身份认证等方面都有着广泛的应用。

1982年,Chuam[1]首次提出盲签名的概念,实现了不可跟踪的支付系统,即电子现金。盲签名是一种特殊的数字签名技术,它可以使消息拥有者在不被签名者看到所签消息的具体内容的情况下获得合法签名。一种简单的实现方法是消息拥有者和签名者进行如下交互:消息拥有者先利用盲因子将消息盲化,签名者对盲化后的消息签名,消息拥有者施行脱盲变换,最终获得原始消息的签名。在盲签名产生过程中,签名者不知道所签消息的具体内容,也无法将自己保留的中间结果与最终公布的签名联系起来进而跟踪消息拥有者。这种特性称为盲性,它使得盲签名能有效地保护用户的隐私,被广泛应用到需要保护个人隐私的场合,例如电子现金、电子选举等领域。

一般来说,一个密码体制的安全性应该仅仅依赖于密钥的安全性,这就是著名的Kerckhoff原则。根据Kerckhoff原则,密钥的泄露会使整个密码体制立刻变得不再安全。1997年,Anderson[2]首次提出前向安全的概念,有效地减轻了密钥泄露所带来的安全隐患。1999年,Bellare和Miner首次给出了前向安全数字签名的正式定义[3]。随后,前向安全技术被大量运用到各种具有特殊性质的数字签名中。前向安全的基本思想是通过在公钥密码体制中引入密钥演化算法,使得私钥随着时段的推进而不断更新,而公钥保持不变。这样,即使对手拥有当前时段的密钥,也不能伪造之前各时段的数字签名,保证了之前各时段所产生的签名的合法性,减少了由密钥泄露所带来的损失。

将盲签名和前向安全特性相结合,就产生了前向安全盲签名。2003年,Duc等人[4]基于强RSA假设提出了第一个前向安全盲签名方案。2005年,Lai等人[5]基于Koyama主密钥方案[6]提出了一个新的前向安全盲签名方案,方案中,各个时段的密钥需要预先设置和存储,增加了存储开销和泄露风险。Chow等人[7] 运用树结构构造方法提出了一个基于双线性映射和GDH问题的前向安全盲签名方案,但结构设计过于复杂。

本文在基于离散对数和二次剩余计算难题提出了一个前向安全盲签名方案,并对新方案进行了安全和效率分析。分析表明,新方案满足不可伪造性、盲性和前向安全性,且具有较高的计算效率。

1预备知识

1.1前向安全盲签名

前向安全数字签名的基本思想是把签名的整个有效时间划分成若干个时段,在不同时段内使用不断更新的签名密钥生成签名,却保持验证公钥在整个有效时间内不变,同时要求由某一时段的密钥无法计算出之前各时段的密钥,也无法生成之前各时段的签名。在每个时段的最后一个签名产生以后,以一个单向模式产生下一时段的签名密钥,即从时段j-1的密钥SKj-1生成时段j的密钥SKj,并且删除SKj-1。

一个前向安全盲签名方案包括以下四个算法[4]:

(1) 密钥生成算法 是一个概率多项式时间算法。输入安全参数k和时间周期数T等,输出系统参数params、公钥PK和初始私钥SK0。

(2) 密钥更新算法 是一个确定性或概率算法。输入前一时段的密钥SKj-1,输出当前时段的私钥SKj

(3) 盲签名发布协议 是一个用户与签名者之间通过交互方式产生盲签名的协议。签名者是一个概率图灵机,使用当前时段的密钥SKj与用户进行交互,为用户提供消息M的盲签名。用户也是一个概率图灵机,输入消息M和公钥PK,并与签名者进行交互。在签名完成后,输出时段j、 消息M及签名sig(M)。(j,sig(M))即为最终盲签名。

(4) 签名验证算法 是一个确定性算法,输入公钥PK,消息M和签名(j,sig(M)),输出验证通过与否的0/1判断。用A4纸,页边距上下左右已经设置好,请不要改动。

1.2相关数学难题

(1) 离散对数难题

p是一个大素数,gZp*的生成元。给定yZp*,求解x(1<x<p-1),使y=gxmodp成立是困难的。

(2) 二次剩余计算难题

在不知道n的具体分解的情况下,求满足y=x2modnx是困难的。二次剩余计算难题等价于大数分解问题。

2方案描述

2.1密钥生成

系统选取大素数p(p≥2512);gZp*Zp*的生成元。选择安全的哈希函数H:{0,1}*→Zp*

将签名的整个有效时间划分为T 个时段:1,2,…,T,只有在T个时段内,签名者对消息的签名才是有效的。

随机选取初始私钥s0(1<s0<p-1),计算公钥Y = gs2T0,公开(H,p,g,T,Y)。

2.2密钥更新

签名者根据前一时段的密钥更新得到当前时段的密钥。设当前时段为j,签名者按以下步骤更新密钥:

1) 若j>T,则sj设为空串,算法终止;

2) 若1≤jT,则计算j周期的密钥sj=sj-12mod(p-1),并删除sj-1。

2.3盲签名发布

j时段,签名者和用户进行如下交互产生消息m的盲签名:

(1) 承诺(Promise)

签名者选择随机数k(1<k<p-1),计算R′=gkmodp,并将(R′,j)发送给用户;

(2) 盲化(Blind)

用户收到(R′,j)后,随机选择盲化因子α,β,γ (1<α,β,γ<p-1),计算:

R=RαgβYγmodp

e=H(Rmj)

e′=α-1(e-j-1γ)mod(p-1)

并发送e′给签名者。

(3) 签名(Sign)

签名者收到e′后,计算:

s′=k-jesj2Τ-jmod(p-1)

s′发送给用户。

(4) 去盲(Umblind)

用户收到s′后,计算:

s=αs′+βmod(p-1)

则消息m的签名为sig(m)=(j,R,s)。

2.4 签名验证

接收者收到盲签名(m,j,(R,s))后,首先判断盲签名是否在签名者的签名有效期内生成,即j是否小于等于T。若j>T则签名无效;若1≤jT,验证:

R=Yjegsmodp

其中e=H(Rmj),如果等式成立,签名sig(m)=(j,e,s)有效,否则,签名无效。

3安全性分析

3.1有效性

由于:

Yjegsmodp=Yjegαs′+βmodp=Yjegα(k-jes2T-jj)+βmod

p=Yje(gk)α(gsj2Τ-j)-αjegβmodp=YjeRαgβY-αjα-1(e-j-1γ)modp=YjeRαgβYγ-jemodp=RαgβYγmodp=Rmodp

说明盲签名(m,j,(R,s))是一个有效的签名。

3.2不可伪造性

定理1 在随机预言模型和离散对数问题困难的假设下,所提前向安全盲签名方案对自适应选择消息攻击是存在性不可伪造的。

证明 假设存在一个攻击者A以不可忽略的概率成功伪造部分盲签名,下面构造一个算法B解决离散对数问题。

对于给定的Zp*的生成元g和数yZp*,为了能够计算x(1<x<p-1)满足y=gxmodp,算法B模拟挑战者与攻击者A进行交互,回答攻击者AHZ随机预言询问和签名询问。具体交互过程如下:

系统设置:算法B生成系统公共参数params=(H,p,g,T,Y)发送给攻击者A,其中验证公钥设置为Y=y,即用x模拟s02Τ

H询问:A至多可以做qHH询问,B通过维护列表H-list响应AH询问。A关于(Ri,mi,ji)(1≤iqH)的每一次询问,B首先检查列表H-list:

1) 如果在列表H-list中已经存在项(Ri,mi,ji,ei),Bei返回给A作为(Ri,mi,ji)的H哈希值。

2) 否则,也就是A从来没做过(Ri,mi,ji)的H询问。这时,B随机选取eiRZq*,将(Ri,mi,ji,ei)添加到列表H-list,并将H(Ri,mi,ji)=ei返回给A

签名询问:A至多可以做qS次签名询问。关于A对消息m在时间段j的签名询问,B随机选取e,s(1<e,s<p-1),令R=Yjegsmodp,将(R,m,j,e)加到列表H-listBsig(m)=(j,R,s)返回给A

输出:如果算法B没有终止,则A在没有做过(m*,j*)的签名询问的条件下,以一个不可忽略的概率对输入消息(m*,j*)Z输出一个有效签名sig(m*)=(j*,R,s)。根据Forking引理[12],通过对A哈希重放,B可以获得对消息(m*,j*)Z的两个有效签名(m*,j*,k,R,e1,s1)和(m*,j*,k,R,e2,s2),其中e1≠e2。因为有效签名满足R=Yjegsmodp,其中e=H(Rmj),所以:

R=Yj*e1gs1modp,R=Yj*e2gs2modp

于是:

Yj*e1gs1=Yj*e2gs2modp

Y = gs0 2T带入,得:

gs0 2Tj*e1 + s1 = gs0 2Tj*e2 + s2 modp

s0 2Tj*e1 + s1 = s0 2Tj*e2 + s2 mod(p-1)

所以

s0 2T = (j*)-1(e1 -e2 )-1(s2 -s1 )mod(p-1)

最终,B可以输出x=s02ΤZ作为离散对数问题的解。

所以,在离散对数问题困难的假设下,所提前向安全盲签名方案对自适应选择消息攻击是存在性不可伪造的。

3.3盲性

首先,签名者在盲签名发布协议的执行过程中无法获得所签消息的任何相关信息。签名者在整个签名过程中只能获得数据(k,R′,e′,s′),其中R′,j由自己随机生成,s′是对e′的签名,而e′是用户经过盲化变换和哈希函数变换对原始消息m作用后的数据。在不知道盲化因子α,β,γ和哈希函数求逆困难的情况下,签名者得不到消息m的任何相关信息。

其次,在同一时段内,签名者无法将公布的签名与自己保留的中间结果建立联系,即签名者无法追踪消息的拥有者。事实上,给定一个有效签名(m,j,(e,s))和任一组第j时段的盲签名发布过程中签名者保留下来的中间变量(k,R′,e′,s′),签名者无法通过:

计算出3个随机数α,β,γ。因此,签名者无法确定公布的盲签名(m,j,(e,s))是由自己保留的哪一组中间结果(j,k,R′,e′,s′)生成的签名。

但是,前向安全盲签名方案的盲性也是有局限的。由于盲签名(m,j,(e,s))中含有时段编号j,如果恶意的签名者在每一时段只对一个消息签名,并记录下用户信息,则签名者就可以根据j追踪到消息的拥有者。

3.4前向安全性

在二次剩余求解困难的假设下,所提方案具有前向安全性。

假设攻击者获取了第j时段的密钥sj,试图通过等式sj=sj-12mod(p-1)获得前一时段的密钥sj-1不可行,因为在不知道p-1的分解的情况下求解二次剩余是困难的。由方案的不可伪造性,攻击者在不知道密钥sj-1的情况下试图直接伪造第j-1时段的盲签名也是不可行的。

4性能分析

TETITM分别表示一次模幂、模逆和模乘运算所需的时间。将新方案与Duc等人[4]方案、刘亚丽等人[8]方案和张席等人[9]方案在计算效率上进行比较,如表1所示,其中三个方案在密钥更新阶段计算量相同,都为TM,没有列出。可以看出本文方案比另三个方案减少模幂运算,计算效率更高。

5结语

基于离散对数和二次剩余计算难题设计了一个高效的前向安全盲签名方案,证明了其正确性并进行了安全和性能分析。新方案在随机预言机模型下是自适应选择消息攻击下存在不可伪造的,其安全性能够归约于离散对数困难假定;其前向安全性依赖于计算二次剩余的困难性。与目前已有的基于离散对数的前向安全盲签名方案相比,所提方案效率较高。

参考文献

[1]Chaum D.Blind signatures for untraceable payments[C]//Advancesin Cryptology-Crypto'82.New York:Plenum Press,1983:199-203.

[2]Anderson R.Two remarks on public-key cryptology[C]//Proceedingsof 4th ACM computer and Communications Security.New York:ACMPress,1997:151-160.

[3]Bellare M,Miner S.A Forward-Secure Digital Signature Scheme[C]//Advances in Cryptology-CRYPTO'99.LNCS 1666,Berlin:Springer-Verlag,1999:431-448.

[4]Duc D N,Cheon J H,Kim K.A Forward-secure Blind SignatureScheme Based on the Strong RSA assumption[C]//Proceedings of 5thInter-national Conference on Information and Communications Securi-ty.LNCS 2836,New York:Springer-Verlag,2003:11-21.

[5]Lai Y P,Chang C C.A Simple Forward Secure Blind SignatureScheme Based on Master Keys and Blind Signatures[C]//Proceedingsof 19th International Conference on Advanced Information Networkingand Applications(AINA'05).Washington DC:IEEE CS,2005:139-144.

[6]Koyama K.A Master Key for the RSA Public Key Cryptosys-tem[J].IEICE Transactions on Information and Systems,1982,J65-D(2):163-170.

[7]Chow S S M,Hui L C K,Yiu S M,et al.Forward-secure multisigna-ture and blind signature schemes[J].Applied Mathematics and Com-puta-tion,2005,168(2):895-908.

[8]刘亚丽,殷新春,孟纯煜.一种基于EIGamal体制的前向安全强盲签名方案[J].微电子学与计算机,2007,24(10):95-98.

【部分盲签名】推荐阅读:

基本部分07-19

部分控制05-10

“探索”部分06-08

电气部分06-12

地上部分06-17

土建部分06-30

部分高校07-07

部分大学07-23

配置部分08-08

部分替代09-02

上一篇:数据中心互联下一篇:温度模块