一个无证书部分盲签名方案的分析与改进

2015-08-09 01:10汤鹏志杨俊芳张庆兰
关键词:公共信息私钥公钥

汤鹏志,杨俊芳*,张庆兰

(华东交通大学 a.理学院; b.系统工程与密码学研究所,江西 南昌 330013)

0 引言

盲签名的概念是由Chaum[1]1982年首次提出,即签名者对自己所签信息的内容不仅无法获取,而也无法追踪自己的签名,该特性使得盲签名在电子现金和电子投票等需要匿名的场合中得到了广泛的应用.盲签名的这一特性也是其缺点,当签名者完成签名后由于无法追踪签名的使用,这给非法分子滥用签名提供了便利.1996年Abe等人[2]提出了部分盲签名概念.部分盲签名是允许签名人在签名过程中嵌入与用户事先协商好的公共信息,如签名时间与有效期等信息,并且这些公共信息是不能被删除或非法修改的,同时又保持了盲签名中的盲性.1984年,Shamir[3]提出了基于身份的公钥密码体制,用户把姓名、身份证号、电话号码等作为公钥,简化了复杂的证书管理,然而一个新的安全隐患出现了密钥托管问题.2003年,Ai-Riyami等人[4]提出了无证书公钥密码体制,解决了基于身份公钥密码体制中的密钥托管问题.由于无证书部分盲签名既继承了部分盲签名的特性又保持了无证书公钥密码学解决了密钥托管问题的优点,因此无证书部分盲签名就成了一个研究热点.2008年,荣维坚[5]首次提出了一个无证书部分盲签名方案;2009年,苏万力等人[6]提出了一个可证安全的无证书部分盲签名方案,然而都没有严格地证明不可伪造性.2009年,Zhang等人[7]利用自己定义的安全模型提出了一个可证安全的无证书部分盲签名方案.近年来,多种无证书部分盲签名方案[8-10]被提出,但大多数方案存在公共信息被篡改问题.最近,何俊杰等人[11]提出了一个无证书的部分盲签名方案,但是同样存在恶意用户可以非法篡改公共信息的缺陷,本文提出了一种改进方案,新方案可以有效地抵抗公共信息被篡改的问题,并给出了随机预言机模型下的安全性证明.

1 预备知识

1.1 双线性对

设G1和G2分别为q阶循环加法群和循环乘法群,称映射e:G1×G1→G2为双线性对,若映射满足下面3条性质,其中P是G1的生成元.

(2)非退化:存在A,B∈G1,使得e(A,B)≠1.

(3)可计算:对于所有的A,B∈G1,总存在一个有效的算法来计算e(A,B)的值.

1.2 困难问题的假设

2 对文献[11]方案安全性分析

限于篇幅,原文具体方案请参考文献[11].

2.1 对文献[11]方案的攻击

通过分析发现,文献[11]方案中的双方协商好的公共信息能够被恶意的用户篡改.假设恶意的用户将双方协商好的公共信息c修改为c1,且c≠c1,用户利用自己伪造的公共信息c1执行原来的签名协议,而签名者继续按原来的公共信息c执行原来的签名协议,具体操作如下:

(3)签名:签名者计算S′=(xH3(c)+h1)SKA,将S′发送给用户.

(4)脱盲:用户计算S1=H3(c1)H3(c)-1S′,S=αS1,并输出最终的部分盲签名σ=(S,r,m,c1).

验证过程:

计算h′=H2(m,c,r);

e(S,H1(IDA,PKA)XA+YA)=

xA(H1(IDA,PKA)+s)P)=

e(SKA,xA(H1(IDA,PKA)+s)P)α(xH3(c1)+h)=

e((xA(H1(IDA,PKA)+

s))-1P,xA(H1(IDA,PKA)+s)P)α(xH3(c1)+h)=

e(P,P)α(xH3(c1)+h)=gα(xH3(c1)+h)=

gαxH3(c1)gαh=rH3(c1)gh′

因此验证者可以验证签名的有效性和合法性,而恶意用户就在不被察觉的情况下,利用伪造的公共信息c1执行原有的签名协议.

3 本文提出的无证书部分盲签名方案

为了抵抗恶意用户对双方协商好的公共信息的篡改,本文提出了一个对文献[11]的改进方案.方案由7个算法构成,其中,系统初始化、用户密钥设置、公钥设置、部分私钥提取协议和私钥提取5个算法和文献[11]方案相同,本文只对签名协议和验证过程稍作修改:

(1)系统初始化

(2)用户密钥生成

(3)公钥生成

计算XA=xAP,YA=xAPpub,公钥PKA=(XA,YA),任何人可以通过e(XA,Ppub)=e(YA,P),验证签名者公钥的正确性与有效性.

(4)部分私钥生成

输入系统的主密钥s,签名者的身份IDA和公钥信息PKA,输出签名者的部分私钥,过程如下:

(5)私钥生成

签名协议:

假设待签名消息为m,签名者与请求签名的用户事先商量好的公共信息为c.它们之间的交互如下:

3)签名:签名者计算S′=(xH3(c)+z+h)SKA,将S′发送给用户.

4)脱盲:用户计算S=αS′,并输出最终的部分盲签名σ=(S,m,c,R1,R2).

5)验证过程:接收者收到部分盲签名σ=(S,m,c,R1,R2)后,计算h′=H2(m,c,R1,R2),验证等式e(S,H1(IDA,PKA)XA+YA)=R1H3(c)R2gh′是否成立.如果成立,则接收签名,否则拒绝.

4 安全性与性能分析

4.1 正确性的证明

定理1 本文所提出的无证书部分盲签名是可验证正确的.

证明由于

e(S,H1(IDA,PKA)XA+YA)=e(α(xH3(c)+

z+h)SKA,xA(H1(IDA,PKA)+s)P)=

e(SKA,xA(H1(IDA,PKA)+

s)P)α(xH3(c)+z+h)=e(P,P)α(xH3(c)+z+h)=

gαxH3(c)gαzgαh=R1H3(c)R2gh′,

其中h′=H2(m,c,R1,R2),这说明部分盲签名是有效的.证毕.

4.2 部分盲性的证明

定理2 本文提出的无证书部分盲签名是满足部分盲性的.

证明对于任意给定的一个有效的部分盲签名σ=(S,m,c,R1,R2),并且给出任一组有效的部分盲签名发布的过程中签名者所观察到的中间变量(S′,r1,h,c),接下来我们只要证明存在唯一的盲化因子对(α,β),使得σ=(S,m,c,R1,R2)映射到(S′,r1,h,c).考虑下列等式:

R1=r1αgβ,

(1)

h=α-1(h′+βH3(c)),

(2)

S=αS′,

(3)

由式(3)计算得唯一α=logS′S,从而由式(2)得唯一β=(αh-h′)H3(c)-1.下面证明由式(2)和(3)所确定的α,β也满足式(1).

r1αgβ=gαx+(αh-h′)H3(c)-1=

e(logS′S((logSKAS′-h-z)H3(c)-1+

(e((logPS)P,(logPSKA)-1P)R2-1g-h′)H3(c)-1=

(e(S,xAH1(IDA,PKA)+

s)P)R2-1g-h′)H3(c)-1=R1,

因此由式(2)和(3)所确定的α,β是满足式(1).故任意给定的一个有效的部分盲签名σ=(S,m,c,R1,R2)和任一组中间变量(S′,r1,h,c),存在唯一的盲化因子对(α,β),使得σ=(S,m,c,R1,R2)映射到(S′,r1,h,c),所以即使是存在无限计算能力的签名者也不能将用户获得的签名与签名者的签名过程联系起来,所以本签名方案是满足部分盲性的.证毕.

4.3 安全性证明

4.3.1 不可伪造性

文献[4]中无证书密码体制定义了两种类型的攻击者:

类型1(AI):AI可以将任意用户的公钥替换成AI自己所选的值,但是不能获得系统主密钥.

类型2(AII):AII可以获得系统主密钥(相当于恶意KGC),但是不能替换任何用户的公钥.

定理3 对类型1(AI)在随机预言机模型下,本文提出的部分盲签名方案对适应性选择消息和身份攻击是存在性不可伪造的.

证明假设存在概率多项式时间的攻击者算法AI,以一个不可忽略的概率ε成功伪造一个有效的部分盲签名,下面构造一个挑战者算法C解决k-CAA问题.

(2)H1询问:当C收到AI对H1(IDi,PKi)的询问时,若(IDi,PKi)已经存在L1表中,则直接返回相应的值h1i,否则:

(a) 若i=k,令h1i=t0;

(b) 若i≠k,令h1i=ti.

(5)公钥询问:当C收到关于身份IDi标识的公钥查询时:

(a) 若i≠k,C首先检索(IDi,Yi,Xi,xi)是否存在LPK中,若不存在,则随机选择xi,计算Yi=sxiP,Xi=xiP,并将(IDi,Yi,Xi,xi)添加到LPK,将(Yi,Xi)返回给AI.

(b) 若i=k,C直接将(Yk,Xk)返回给AI.

(6)部分私钥询问:当C收到AI关于身份IDi标识的部分私钥询问时(前提是已经执行过对H1的询问):

(a) 若i=k,算法终止.

(b) 若i≠k,C查询列表L1找到(IDi,PKi,h1i),并计算Di=(s+ti)-1P返回给AI.

(7)秘密值询问:当C收到AI关于身份IDi标识的私钥询问时:

(a) 若i≠k,C查询LPK列表,若找到相应的(IDi,Yi,Xi,xi),将xi返回给AI,否则随机选择xi,计算Yi=sxiP,Xi=xiP,并将(IDi,Yi,Xi,xi)添加到LPK,将xi返回给AI.

(b) 若i=k,算法立即终止.

(9)签名询问:当C收到AI关于(IDi,mi,ci)的签名询问时,C要通过维护列表Lsig来响应AI的签名询问.C首先查询L1表,得到h1i.查询L3表,得到h3i.查询LPK表,得到(Yi,Xi,xi).

C对AI的所有签名询问的回答是有效的,事实上,

e(Si,H1(IDi,PKi)Xi+Yi)=

e(γixi-1P,h1ixiP+xi(sP))=

定理4 对类型2(AII)在随机预言机模型下,本文提出的部分盲签名方案对适应性选择消息和身份攻击是存在性不可伪造的.

证明假设存在概率多项式时间的攻击者算法AII,以一个不可忽略的概率ε成功伪造一个有效的签名,下面构造一个挑战者算法C解决ICDH问题.

(5)公钥提取询问:当C收到关于身份IDi标识的公钥查询时:

(a) 若i≠k,C首先检索(IDi,Yi,Xi,xi)是否存在LPK中,若不存在,则随机选择xi,计算Yi=sxiP,Xi=xiP,并将(IDi,Yi,Xi,xi)添加到LPK,将(Yi,Xi)返回给AII.

(b) 若i=k,C直接将(Yk,Xk)返回给AII.

(6)秘密值询问:当C收到AII关于身份IDi标识的私钥询问时:

(a) 若i≠k,C查询LPK列表,若找到相应的(IDi,Yi,Xi,xi),将xi返回给AII,否则随机选择xi,计算Yi=sxiP,Xi=xiP,并将(IDi,Yi,Xi,xi)添加到LPK,将xi返回给AII.

(b) 若i=k,算法立即终止.

C对AII的所有签名询问的回答是有效的,事实上,

e(Si,H1(IDi,PKi)Xi+Yi)=

5 结语

本文对何俊杰等人[11]提出的无证书部分盲签名方案进行安全性分析,发现该方案中的公共信息容易被恶意用户篡改.在该方案的基础上提出了一种改进的方案,经过对其安全性分析,有效地抵抗了公共信息被篡改的风险.

猜你喜欢
公共信息私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
一种基于混沌的公钥加密方案
神奇的公钥密码
新时期物流公共信息平台的建设与发展
基于云计算的民航公共信息服务平台
一种基于虚拟私钥的OpenSSL与CSP交互方案
P2X7 receptor antagonism in amyotrophic lateral sclerosis
舟山江海联运公共信息平台与国家交通运输物流公共信息平台实现互联互通