李 村, 李志华, 辛 平
(江南大学 物联网工程学院 计算机科学系,江苏 无锡 214122)
在实际应用中,经常会遇到转交签名权的情况,代理签名[1]的概念应运而生。在当授权人因故无法签名时,可以将签名权转交指定代理人,验证人可以验证并区分授权人签名和代理人签名。Zhang K[2]将秘密分享技术应用到了代理签名中,提出了门限代理签名,将原始签名人的签名密钥分成多份子密钥,分发给多个代理签名人,每个代理签名人使用自己的子密钥产生部分代理签名,当部分代理签名的数目大于门限值时,即可生成有效的门限代理签名[3]。
随着研究的深入,门限代理签名也得到了快速的发展,出现了一些门限代理签名方案[4~8]。但大都存在签名易被伪造的弊端。文献[9]提出了基于身份的门限代理签名方案,无法有效抵抗合谋攻击,代理签名人在进行一次代理签名后,当恶意代理成员数目大于等于门限值时,可以获得足够的信息,从而伪造其他代理签名人签名;文献[10~12]分别提出了一种基于身份的门限代理签名方案,但并不具有前向安全性,因为一旦签名密钥泄漏,则会严重影响到签名的有效性;文献[13]提出了另外一种基于身份的前向安全的代理签名方案,但方案易遭受线性攻击且不具有后向安全性。另外,以上方案均需要可信中心的支持,而在某些实际应用场景下,可信中心并不存在。
针对上述问题,本文提出了一种前向安全的门限代理签名方案,无需可信中心,且可以抵抗合谋攻击,并具有前向安全性的特点。
设G1,G2分别为具有素数q阶的循环加法群和循环乘
法群。且G1,G2中的离散对数是难解的。e:G1×G1→G2是一个双线性映射,符合以下特性[14]
e(P+Q,R)=e(P,R)e(Q,R)
e(P,Q+R)=e(P,Q)e(P,R)
e(aP,bQ)=e(abP,Q)=e(P,abQ)=e(P,Q)ab
2)非退化性:存在P∈G1,使e(P,P)≠1;
3)可计算性:设P,Q∈G1,则一定存在算法计算e(P,Q)结果。
假设G1为一个阶数为素数q的加法群。有基于G1的困难问题:
对于群G1,如果DDHP问题易解,而CDHP问题难解,则将G1称为GDH群。
本文提出的前向安全的门限代理签名(forward secure threshold proxy signature,FSTPS)方案包括以下部分:
1)系统初始化:输出系统参数params。
2)生成用户密钥:输入用户的身份IDi、系统参数params,xi,输出IDi的公钥PIDi、私钥SIDi。
3)生成委托证书:分成产生代理权和验证代理权两个环节。产生代理权,输入委托证书mw、系统参数params,输出对mw的签名σw=(mw,δ,V,U)。验证代理权,输入原始签名人公钥Q0和系统参数params验证签名σw,验证通过,输出1;否则,输出0。
4)生成代理签名密钥:分为生成门限密钥和更新代理签名密钥两个环节。生成门限密钥,输入系统参数params、原始签名人产生的ki、mw的签名σw、用户的身份IDi输出代理私钥Xi和代理公钥Yi。更新代理签名密钥,输入原始签名人在第L时段生成的随机数rL、系统参数params、mw,输出代理签名密钥(βL,Xi)。
5)生成代理签名:分为生成部分签名、验证部分签名、合并部分签名3个环节。生成部分签名,由t个门限代理签名人分别执行。输入门限代理签名人身份IDi、代理密钥Xi、消息m,输出部分签名gi。验证部分签名,由任意门限代理签名人执行,输入部分签名gi、代理公钥Yi、系统参数params,验证通过,输出1;否则,输出0。合并部分签名,由任意门限代理签名人执行。输入部分签名gi、消息m,mw的签名σw、代理公钥Yi、时段L、参数T。输出对m的签名σm=(m,mw,U,y,k,g,L,T)。
6)验证代理签名:可由任何人执行。输入原始签名人公钥Q0、系统参数params输入、对m的签名σm。验证通过,输出1;否则,输出0。
设群G1为循环加法群,G2为循环乘法群,G1,G2的阶均为素数q。e为一个双线性映射,如式 (1)。定义H1,H2,H3为3个安全的哈希函数,分别如式(2)~式(4)。公开参数params如式(5)
e:G1×G1→G2
(1)
H1:{0,1}*→G1
(2)
(3)
H3:{0,1}*×G1→G1
(4)
params={G1,G2,e,q,P,H1,H2,H3}
(5)
Qi=xiH1(IDi)
(6)
U=rwH1(ID0)
(7)
W=H3(mw,U,ID0)
(8)
Hw=H1(W)
(9)
V=x0W
(10)
δ=rwHw+V
(11)
产生mw的签名为σw=(mw,δ,V,U)。将σw发送给每个代理签名人。
2)验证代理权。每个代理签名人Pi收到原始签名人的签名σw后,验证等式是否成立
e(V,H1(ID0))=e(H3(mw,U,ID0),Q0)
(12)
e(δ,H1(ID0))=e(H3(mw,U,ID0),Q0)+
e(H1(H3(mw,U,ID0)),U)
(13)
若等式成立,接受签名;反之,要求重发委托证书签名。
1)生成门限密钥
Ki=kiP
(14)
(15)
ai,0=xiδ+kiH3(mw,U,ID0)
(16)
fi(x)=ai,0+ai,1x+ai,2x2+…+ai,t-1xt-1
(17)
Pi通过式(18)计算并广播Ai,j,然后将fi(IDj)秘密发送给Pj,j=1,2,…,j≠i
Ai,j=ai,jP,j=1,2,…,t-1
(18)
Pi接收到fj(IDi)后,验证等式(19)是否成立。如果Pi全部通过验证,Pi通过式(20)、式(21)分别计算出代理私钥Xi和代理公钥Yi,并广播Yi
(19)
(20)
Yi=XiP
(21)
2)更新代理签名
β0=x0H1(r0P)+r0H1(mw)
(22)
当进入L时段,P0利用第L-1时段的βL-1计算βL:
(23)
(24)
(25)
将(βL,mw,T)发送给所有代理签名人后立刻删除rL和βL-1。
代理签名人收到(βL,mw,T)后,验证式(26)
e(βL,P)=e(H1(mw),T)e(H1(T),Q0)
(26)
如果成立,则得到代理签名密钥为(βL,Xi)。
m为需要签名的消息,P1,P2,…,Pt为t个对消息m签名的代理签名人。签名步骤如下:
1)生成部分签名:每个代理签名人Pi(i=1,2,…,t)通过式(27)计算di,再通过式(28)使用代理签名密钥产生消息m的部分代理签名gi。随机选择一名代理签名人作为门限签名合成者。向门限密钥合成者发送(gi,IDi),其中IDi用于确定代理签名者的身份
(27)
gi=XidiH1(m)H2(m)+kiHw
(28)
2)验证部分签名:门限签名合成者验证式(29)是否成立,如果成立,则输出1;否则,输出0
e(P,gi)=e(Yi,H1(m))diH2(m)e(Ki,Hw)
(29)
3)合并部分签名:当所有的部分签名有效时,通过式(30)、式(31)计算y,g,则(m,mw,U,y,k,g,L,T)是对消息m的门限代理签名
(30)
(31)
验证人在获得对m的签名(m,mw,U,y,k,g,L,T)后,验证等式(32),如果等式成立,则该签名合法
(32)
为方便分析方案的效率,假设代理人共n个,门限值为t,配对运算记为Ep,乘法运算记为Mu,加法运算记为Ad,Hash函数运算记为Ha,更新代理签名密钥的时段编号为L,方案对比如表1。
表1 方案的性能对比
可以看出,本文方案在生成用户密钥、生成代理签名、验证代理签名阶段性能优异,均高于对比方案;在生成代理签名密钥阶段,当更新代理签名密钥的时段数较少时,由更新代理签名带来的运算次数较少,此时该阶段的计算复杂度与他方案相近。
硬件加密相对于软件加密具有加密性能好、加密强度高的特性[15]。在数据加密技术的应用中,逐渐成为关注的焦点。FSTPS方案具有前向安全的特性,并且无需可信中心,因此,方案可以很好的应用于密码卡的场景。
密码卡的硬件结构如图1所示,包括:FPGA芯片、SM1芯片、SM3芯片、SM9芯片、ARM处理器模块、CPLD模块、SDRAM、FLASH存储器、物理噪音发生器等。密码卡通过PCI-E接口与主机连接,FPGA芯片通过有限状态机控制SM1,SM9等算法芯片。FPGA和ARM模块直接通过CPLD隔离数据总线连接。
图1 PCI-E密码卡结构特征
在密码卡的设计方案中,Pi是一组USBkey,其中P0被标注为Rootkey,具有原始签名人权限。USBkey中存放的PID信息可以作为身份信息,并在应用中对USBkey与用户进行绑定。
生成代理签名阶段描述如下:
2)Pi通过式(18)计算并广播Ai,j,将fi(IDj)秘密发送给Pj,j=1,2,…,j≠i。
3)Pi接收到fj(IDi)后,验证等式(19)是否成立。如果Pi全部通过验证,Pi计算出其代理私钥Xi和代理公钥Y≠i,并公布Yi。
4)Rootkey用户计算出代理密钥更新初始值β0。当进入L时段,利用第L-1时段的βL-1计算βL。随后将(βL,m,T)发送给每个代理签名人,并立刻删除上时段代理密钥更新信息。代理签名人在验证信息有效性后,获得代理签名密钥(βL,Xi),将(βL,Xi)写入USBkey中。
每个代理签名人使用代理签名密钥产生消息m的部分签名gi。如果每个gi均验证通过,则合并部分签名,产生对消息m的门限代理签名(m,mw,U,y,k,g,L,T)。
验证人首先向代理签名人Pi索要(PIDi,xiQi),并验证各代理签名人身份,随后通过验证式(32)是否成立,如果成立,则签名合法;否则,签名无效。
方案中的密钥均由密码卡的安全芯片生成,经加密后导入USBkey,有效防止了人为的泄漏,有效保障了密钥的安全。另外,由于密码卡中的敏感信息断电即消失,可以有效杜绝密钥被窃取。Rootkey持有者将签名的权限分担给多名管理员,只有不少于t名管理员同时签名才能生成有效的代理签名。由于代理密钥更新算法的应用,使方案具有了前向安全性与后向安全性的特性,从而保障了签名的有效性。由于方案不需要可信中心支持,降低了系统的实现代价和复杂度。
提出了一种前向安全的门限代理签名方案。具有不需要可信中心支持,前向安全性、后向安全性、门限性的特性,并在一定程度上有效防止了合谋攻击。通过对方案进行正确性和安全性分析,验证了方案的可实用性。给出了本方案在PCI-E密码卡方面的应用实例,说明具有良好的应用前景。
[1] Mambo M,Usuda K,Okamoto E.Proxy signatures for delegating signing operation[C]∥Proceedings of the 3rd ACM Conference on Computer and Communications Security,New York:ACM,1996:48-57.
[2] Zhang K.Threshold proxy signature schemes[C]∥Information Security Workshop,Japan,1997:91-197.
[3] 石 光.网络安全技术综述[J].传感器与微系统,2007,26(9):1-3.
[4] Hsu C,Wu T.New nonrepudiable threshold proxy signature scheme with known signers[J].Journal of Systems and Software,2004,73(3):507-514.
[5] Hu J H,Zhang J Z.Cryptanalysis and improvement of a threshold proxy signature scheme[J].Computer Standards & Interfaces,2009,31(1):169-173.
[6] 张学军,张 岳.基于身份前向安全的代理签名方案[J].计算机工程与应用,2012,48(19):66-68.
[7] Sun Y,Xu C,Yu Y,et al.Improvement of a proxy multisignature scheme without random oracles[J].Computer Communications,2011,34(3):257-263.
[8] 于义科,郑雪峰.标准模型下基于身份的高效动态门限代理签名方案[J].通信学报,2011,32(8):55-63.
[9] 黄梅娟.基于RSA密码体制的门限代理签名方案[J].计算机工程,2012,38(4):105-107.
[10] 张建中,薛荣红.基于身份的门限代理签名方案[J].计算机工程,2011,37(7):171-173.
[11] 高欢欢,张建中.一种基于身份的门限代理签名方案[J].计算机工程,2012,38(1):132-134.
[12] 田志刚,鲍皖苏.基于身份的门限代理签名方案[J].计算机工程与应用,2009,45(9):117-119.
[13] Liu J,Huang S.Identity-based threshold proxy signature from bilinear pairings[J].Informatica,Inst Math & Science,2010,21(1):41-56.
[14] 吴开兴,张荣华.身份密码在WSNs安全定位中的应用[J].传感器与微系统,2012,31(7):143-145.
[15] 张永政,张 申,韩培培,等.基于无线传感器网络的矿震监测系统设计[J].传感器与微系统,2009,28(1):80-82.