基于身份部分盲签名方案的分析与改进*

2018-02-26 10:13曹素珍戴文洁王彩芬王秀娅左为平
计算机工程与科学 2018年12期
关键词:公共信息私钥公钥

曹素珍,戴文洁,王彩芬,王秀娅,孙 晗,左为平

(1.西北师范大学计算机科学与工程学院,甘肃 兰州730070;2.天水师范学院数学与统计学院,甘肃天水741001)

1 引言

在1984年Shamir[1]提出的基于身份密码体制中,以用户的姓名、地址等作为公钥,任意两个用户在通信时,不需要交换公钥证书,也不需要保存公钥证书列表,由可信的密钥产生中心KGC(Key Generation Center)统一生成私钥,并通过安全信道发送给用户,解决了传统公钥密码体制的缺陷。

随着计算机及网络技术的日益发展,电子现金系统[2]、电子选举系统[3]等应用在生活中扮演着越来越重要的角色,但由此带来的安全问题也无处不在。为了更好地保护用户的隐私,确保客户端提交的信息不被第三方窃取,盲签名的概念被提出[4],同时各种盲签名方案也应运而生[5,6],并被广泛应用于具有匿名性要求的领域。在盲签名中,签名者并不知道所签消息的具体内容,但是完全的匿名性会留下安全隐患。例如,在电子投票中,完全的匿名性可能会使得投票人多次反复投票或者更改他们的选票。为了解决匿名性和可控性之间的矛盾,Brands[7]提出一种受限盲签名方案,但是该方案在验证时需要与消息提供者交互。为了克服该问题,部分盲签名的概念被提出[8]。部分盲签名通过在签名中嵌入签名者和用户协商的公共信息的方式,避免完全匿名性留下的安全隐患。2005年,Chow等[9]首次提出一个基于身份的部分盲签名方案,结合基于身份公钥密码体制和部分盲签名思想的优点,大量基于身份部分盲签名方案[10-12]被提出,但这些方案中都存在公共信息被替换的漏洞。针对这一问题,本文在刘二根的方案[13]的基础上,结合何俊杰等[14]的方案,提出一个改进的基于身份的部分盲签名方案。在随机预言模型下,基于离散对数困难问题,证明了方案在具有部分盲性的同时,能有效抵抗适应性选择消息下的存在性伪造攻击,新方案没有使用双线性对,降低了计算开销。

2 预备知识

2.1 双线性对

G1是由g生成的阶为q的循环加法群,G2是阶为q的循环乘法群,q是一个大素数;a,b∈,

e:G1×G1→G2是双线性对,有下列性质:

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

(2)非退化性:存在g∈G1,使得e(g,g)≠1。

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

2.2 困难性假设

(1)判定Diffle-Hellman问题DDHP(Decisional Diffie-Hellman Problem):已知 P,aP,bP,cP ,其中a,b,c∈,判定等式c≡ab mod q是否成立。

(2)计算Diffle-Hellman问题CDHP(Computational Diffie-Hellman Problem):已知 P,aP,bP ,其中 a,b∈,计算abP。

如果在群G上,DDHP容易但CDHP困难,则G称为间隙Diffle-Hellman群(GDH群(Gap Diffie-Hellman))。

(3)离散对数问题 DLP(Discrete Logarithm Problem):设循环群G的阶为p,g∈G是一个生成元,给定(g,ga),在群G上计算 a∈是困难的。

如果不存在概率多项式时间算法C以不可忽略的优势解决DLP问题,则称DLP问题是困难的。

3 对刘二根方案的安全性分析

3.1 方案的回顾

(3)签名协议:该算法需要由签名者A和用户B进行交互完成。已知系统公开参数为params,A的身份和私钥分别为 IDA和 SA,消息 m∈ {0,1}*,c为B和A事先商量好的公共信息。预计算g=e(P,Q),下面给出A和B的交互过程:

③签名:A收到h后,计算V1=(xH3(c)+y+h)P+SA并将V1发给B。

④去盲:B收到V1后,计算V=αV1,消息m的签名为 σ =(m,c,R,V) 。

(4)验证:验证者收到签名对σ =(m,c,R,V),验 证 等 式 e(V,H1(IDA)Q + QP) =如果等式成立,则签名有效,否则,签名无效。

3.2 方案的攻击

通过分析发现刘二根方案[13]不安全,不诚实用户可以在签名者和验证者无法察觉的情况下将公共信息c篡改成^c。下面给出签名者A和用户B交互中的攻击过程:

签名通过验证等式,不诚实用户成功地用^c替换了c。

4 本文方案

系统建立:给定一个安全参数ε,循环群G的阶和生成元为p,KGC随机选择s∈作为系统主密钥并计算为系统公钥;选择安全的Hash函数:,系统公开参数为

用户密钥生成:签名者的身份是 ID∈ {0,1}*,KGC计算QID=H1(ID)∈G1,签名者的私钥SID=sQID,并将私钥通过安全信道发送给签名者。签名者收到SID后,若等式gSID=PpubQID成立,则接受公私钥对(QID,SID),否则要求重新生成公私钥对。

签名协议:该算法需要由签名者A和用户B进行交互完成,消息m∈{0,1}*,c为B与A协商的公共信息。下面给出A与B的交互过程:

(2)盲化:B收到〈r1,r2〉后,随机选择盲因子α,β ∈,计算 r'=(r1r2)αgβ,h= α-1H2(m,c,r')后将h发送给A。

(3)签名:A收到 h后,计算 V1=(x+y)H3(c)+hSID后将V1发给B。

(4)去盲:B收到 V1后,计算 V=αV1+βH3(c)。消息m 的部分盲签名为 σ =(ID,m,c,r',V) 。

验证:验证者收到 σ =(ID,m,c,r',V) 后,先计算 H1(ID),H3(c) 和 H2(m,c,r'),再验证等式是否成立,若成立,则签名有效,否则,签名无效。

5 安全性分析

5.1 正确性

5.2 方案满足部分盲性

方案的部分盲性验证如下:对于 ( I D,m,c) 相对应的一个有效签名以及签名者在与用户交互过程中保留下来的参数 (r1,r2,h,V1),有下列等式:

由于 (ID,m,c,r',V) 是一个有效签名,从而有另一方面有 V1=(x+y)H3(c)+hSID,所以:

因此 gαV'+βH3(c)=gV,即 V= αV1+ βH3(c) 。

由上述过程可知,盲因子α,β总是存在任意一组中间结果中。因此,即使签名者计算能力无限,也无法确定签名者与用户交互过程中签名视图与签名之间的对应关系,因此本文方案满足部分盲性。

5.3 不可伪造性证明

定理1 在随机预言模型下,基于离散对数困难问题,方案在适应性选择消息攻击和身份攻击下是满足存在性不可伪造的。

引理1假设敌手A在多项式有界的时间t内经过一系列的询问后(次哈希询问,qE次私钥提取询问,qV次签名询问),以不可忽略的优势ε赢得以下游戏,则挑战者C以不低的优势解决离散对数问题。

证明假设ID*是目标用户,下面给出C与A的交互过程:

(1)系统建立阶段:C运行系统建立算法,并返回系统参数 params={G,H1,H2,H3,p,g,Ppub}给A,令Ppub=ga。

(2)H1询问:C 维护列表 L1=(IDi,wi),其初始值为空,当收到H1询问时,如果QIDi已经在列表L1中,则返回QIDi。否则,C随机选取wi∈,将wi返回给A,更新表L1。

(3)H2询问:C 维护列表 L2=(mi,ci,r'i,hi),其初始值为空,当收到H2询问时,如果L2的哈希值 li已经在列表 L2中,则返回(mi,ci,r'i)的哈希值li,否则C随机选择li∈,更新表L2。

(4)H3询问:C 维护列表 L3=(ci,珘hi) ,其初始值为空,当收到H3询问时,如果珘hi已经在列表L3中,则返回 珘hi,否则 C 随机选择 珘hi∈,更新表L3。

(5)密钥提取询问:C维护列表L1,当收到密钥提取询问时,如果IDi=ID*,则C失败退出。否则,C查找表L1,计算SIDi=awi,将SIDi返回给A,更新列表L1。

(6)签名询问:若收到这样的询问(假设已经做过相关的Hash询问和密钥提取询问),C查找表L1得到用户IDi的私钥,然后结合签名算法和表L1~表L3计算出V返回给A。

(7)伪造:挑战者C与敌手A经过qHi(i=1,2,3)次随机预言机询问,每次询问时间为tHi(i=1,2,3);qE次密钥提取询问,每次询问时间为tE;qV次签名询问,每次询问时间为tV,如果算法C没有终止,A在没有对 ID*进行密钥提取询问和对(ID*,m*,C*)进行签名询问的条件下,在时间t'<t+(tH1qH1+tH2qH2+tH3qH3+tEqE+tVqV)内以不可忽略的优势ε成功伪造消息(m*,c*)的签名(ID*,r',V)的概率为根据 Forking引理[15],通过对 A的哈希重放,C可以获得关于(m*,c*)的两个有效签名(ID*,m*,c*,r',l1,w1,珘h1,V1)和(ID*,m*,c*,r',l2,w2,珘h2,V2),令 k∈表示r'的离散对数值,即gk=r',根据5.1节的签名正确性验证等式,可以得到:

在上面方程组中,只有k、a是未知量,通过解方程组可以求得ppub=ga的离散对数值a,从而C的优势成功求解离散对数问题。实际上,离散对数问题在群G上是困难的,因此,本文方案是安全的。 □

5.4 性能分析

表1对本文方案以及文献[10,12,13]的方案进行效率比较,定义双线性对运算为P,群G1,G2,GT和G中标量乘运算为M,幂乘运算为E,其中最耗时的运算是双线性对运算。

Table 1 Comparison of calculation overhead表1 计算开销比较

从表1可以看出,忽略其他计算代价较小的运算,本文所提的改进方案总计算量为0P+5M+6E,其中幂乘运算为6E,与文献[10,12]的方案相比,保持着最低的幂乘运算计算开销,与文献[13]的方案相比,在标量乘运算相同的情况下,大大减少了幂乘运算次数,提高了计算效率。更为重要的是,本文方案没有使用计算开销最大的双线性对运算,且克服了公共信息被篡改的缺陷,在效率和安全方面均优于以上几种方案。

6 结束语

本文通过对刘二根方案[13]的安全性分析,发现其方案存在公共信息被替换的问题,针对这一问题,本文结合何俊杰的方案[12],提出一个新的基于身份的部分盲签名方案,并证明了方案的正确性、部分盲性和不可伪造性。新方案没有使用计算开销最大的双线性对运算,且能有效抵抗篡改公共信息攻击,并对适应性选择消息攻击和身份攻击是存在性不可伪造的。与现有方案相比,新方案在效率和安全方面都有显著提高,并适用于电子投票和电子选举等领域。

猜你喜欢
公共信息私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
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
舟山江海联运公共信息平台与国家交通运输物流公共信息平台实现互联互通