无证书签名

2024-08-03

无证书签名(精选8篇)

无证书签名 篇1

0 引 言

为了解决传统PKI中存在的证书管理问题[1],1984年Shamir首次提出了基于身份的公钥密码体制[2]。在该体制中,用户的公钥能够直接从他的身份中提取而不是从可信任权威机构(CA)发布的证书中获得,而私钥则是由可信任的私钥生成中心(PKG)利用一主密钥产生的。从用户的私钥产生方式可以看出,用户的私钥是由PKG一方产生的,所以在签名方案中,用户就可以否认自己的签名,因为PKG知道用户的私钥。因此,基于身份的密码体制具有内在的密钥托管性,并不能提供真正意义上的不可否认性。为了解决密钥托管的问题,2003年Al-Riyami和Paterson提出了无证书公钥密码学(CL-PKC)的概念[3],在这个系统中,用户的私钥由两部分组成,一部分由密钥生成中心KGC生成,另一部分由用户自己选取,因此完整的私钥只有用户自己知道;用户的公钥由用户生成,且无需公钥证书。这样既消除了基于身份密码学中密钥托管的问题,同时也克服了基于PKI技术公钥密码学中的证书存在问题,大大减轻了系统的复杂性和开销。

2007年,K. Y. Choi等人提出了一种使用双线性对[4]将无证书体制和短签名[5]简洁直观地结合在一起的方法。基于这种方法,本文提出了一个新的无证书短签名方案,与已有方案相比,本文方案需要更少的计算代价,签名的生成无需进行对运算,长度更短,效率较高,在随机预言机模型下可以抵抗无证书密码体制中两种类型的攻击,是存在性不可伪造的。

1 相关的数学知识

1.1 双线性对[6]

G1是由P生成的加法循环群,阶为素数qG2是一个乘法循环群,阶也是q

双线性映像:e:GG1→G2的性质如下:

(1) 双线性:对∀P,QG1,∀a,bZ*q,有e(aP,bQ)=e(P,Q)ab

(2) 非退化性:存在P,QG1,使得e(P,Q)≠1。即:映射不能将GG1中所有的对都映像为G2中的单位元。

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

1.2 困难性假设[7]

离散对数问题(DLP):已知QG,计算aZ*q,使得Q=aP

逆计算Diffie-Hellman问题(Inv-CDHP):对于一个未知数aZ*q,给定P,aP,计算1aΡ

判定性Diffie-Hellman问题(DDHP):已知P,aP,bP,cP,其中a,b,cZ*q,判定c=abmod q是否成立。

计算性Diffie-Hellman问题(CDHP):已知P,aP,bP,其中a,bZ*q,计算abP

如果在群G中可以求解DDHP,而CDHP是困难问题(即不存在可以解决该问题的多项式时间算法),就称群G是一个Gap Diffe-Hellman(GDH)群。

1.3 攻击模型

这里,引用文献[3]中给出的针对无证书签名机制的安全模型。该模型把攻击者分成两类。

第一类攻击者AⅠ:这类攻击者不能拥有系统主密钥,但可以替换任何用户的公钥,这是一类普通的攻击者。

第二类攻击者AⅡ:这类攻击者拥有系统主密钥,可以自己产生部分私钥,但是他们不能替换任何用户的公钥,这属于恶意的PKG攻击。

2 一个新的无证书短签名方案

k为系统安全参数,签名方和验证方的身份标识分别表示为IDA和IDB。假设G1是一个GDH群,阶为素数q,以加法表示其运算,G2是一个阶为素数q的循环群,以乘法表示其运算。其中q≥2k。令PG1的生成元,双线性对e:GG1→G2是如上所述的双线性映射。本文的方案由以下算法构成:

(1) 系统参数建立算法。PKG在Z*q中随机选择一个主密钥sZ*q,计算P0=sPG1。PKG选择两个密码学Hash函数:H1:{0,1}*×G*1→G*1,H2:{0,1}*→Z*q,公开系统参数为Params=<G1,G2,e,q,P,P0,H1,H2>,其中P0为系统公钥。

(2) 设置秘密值算法。用户随机选择一个数xID∈Z*q,把xID作为自己的秘密值。

(3) 设置公钥算法。用户计算PKID=xIDPG1,把PKID作为自己的公钥。

(4) 部分私钥提取算法。用户提交身份ID∈{0,1}*,PKG对用户身份ID认证后,计算用户的部分私钥DID=sQID=sH1(ID,PKID),然后通过安全通道发送DID给用户。

(5) 设置私钥算法。输入用户的部分私钥DID和秘密值xID,输出用户的私钥SKID=(DID,xID)。

(6) 签名算法。输入消息m∈{0,1}*,签名者A利用私钥SKA=(DA,xA)计算签名S=DA/(xA+H2(m||IDA))。输出消息m的签名:(m,S)。

(7) 验证算法。收到签名(m,S),验证者B计算QA=H1(IDA,PKA)和h=H2(m||IDA),然后验证等式e(S,PKA+hP)=e(QA,P0)是否成立。若等式成立则接受签名,否则拒绝。

3 安全性分析

3.1 正确性

若签名是合法签名,则一定可以通过验证等式,因为:

e(S,ΡΚA+hΡ)=e(DAxA+Η2(m||ΙDA),xAΡ+hΡ)=e(DA,Ρ)=e(QA,Ρ0)

3.2 不可伪造性

定理1 基于CDHP和DLP困难性假设,本文方案可以抵抗敌手AⅠ在适应性选择消息攻击下的存在性伪造。

证明 敌手AⅠ能够替换用户的公钥,但是不知道系统的主密钥s,所以无法获得用户A的部分私钥DA。敌手AⅠ由截取到的用户A的签名S=DA/(xA+h)和用户A的原始公钥PKA+hP=(xA+h)P,计算DA相当于求解CDHP问题。现假设敌手AⅠ将用户A公钥中隐藏的秘密值xA替换为他自己选择的秘密值xA′,进而将用户A的公钥PKA替换为PKA′=xAP。为了伪造一个签名S′,敌手AⅠ只能自己伪造一个系统主私钥s′,进而伪造出用户部分私钥DA′,伪造出签名S′。但在B验证签名(m′,S′)时,由于伪造签名S′所用到的部分私钥DA′中的系统主私钥s′与系统主公钥P0中的s不匹配,故而验证等式e(S′,PKA′+hP)=e(QA,P0)不成立。因此本文方案,在CDHP和DLP困难性假设的前提下,不可被敌手AⅠ伪造。

定理2 基于Inv-CDHP和DLP困难性假设,本文方案可以抵抗敌手AⅡ在适应性选择消息攻击下的存在性伪造 。

证明 敌手AⅡ拥有系统的主私钥s,但是没有替换用户公钥的能力。由于敌手拥有系统的主私钥s,所以他可以很容易地计算用户A的部分私钥DA。但要伪造签名,敌手AⅡ还需要获得用户A的秘密值xA。敌手AⅡ从用户A的公钥PKA=xAP或者签名S=DA/(xA+H2(m||IDA))中能求解xA相当于在G1中求解DLP困难性问题。而由DA和PKA+hP=(xA+h)P伪造签名S=DA/(xA+h)的过程相当于求解Inv-CDHP困难性问题。因此本文方案能抵抗敌手AⅡ的攻击。

综上所述,本文方案能够抵抗1.3中定义的两类敌手的攻击,因此本文方案具有不可伪造性。

3.3 效率分析

将本文方案与已有的一些无证书数字签名方案在效率上进行比较,如表1所示。

注:e:对运算;Mul:群G1上的乘法运算;Exp:群G2上的指数运算。

双线性对是已知最复杂的密码操作,运行一次双线性对所需的时间至少是椭圆曲线上点乘操作的20倍以上。因此,很多方案都将减少对运算作为提高效率的途径。从表1可以看出,本文方案在签名阶段无需进行对运算,验证阶段仅需进行2次对运算,因此与已有方案相比较,本文方案更加高效。

4 结 语

无证书密码体制很好地克服了基于身份密码体制中固有的密钥托管问题,近年来得到了广泛的应用。基于无证书密码体制,本文提出了一个新的短签名方案,与已有无证书签名方案相比,该方案效率较高,签名长度更短,更适合于在带宽有限的环境中应用。基于Inv-CDHP,CDHP和DLP困难性假设,本方案在适应性选择消息攻击下是存在性不可伪造的。

摘要:无证书密码体制不仅有效地解决了基于身份密码系统中固有的密钥托管问题而且成功地避免了公钥证书的使用,近年来得到了广泛的应用。基于无证书密码系统,提出了一个新的无证书短签名方案,新方案构造简洁、高效,在签名验证阶段仅需2次对运算。方案在随机预言机模型下是可证明安全的,更适于在公开且低带宽的通信环境下应用。

关键词:无证书密码体制,短签名,双线性对,随机预言模型

参考文献

[1]GUTMANN P.PKI:It′s not dead,just resting[J].IEEEComputer,2002,35(8):41-49.

[2]SHAMIR A.Identity-based cryptosystems and signatureschemes[C]//Advances in Cryptology(Crypto 84).Cali-fornia:Springer-Verlag,1984:47-53.

[3]AL-RIYAMI S,PATERSON K.Certificateless public keycryptography[C]//Advances in Cryptology-ASIA-CRYPT′03.Taipei:Springer-Verlag,2003:452-473.

[4]CHOI K Y,PARK J H,HWANG J Y,et al.Efficient cer-tificateless signature schemes[C]//Proceedings of ACNS2007.Zhuhai:Springer-Verlag,2007:443-458.

[5]BONEH D,LYNN B,SHACHAM H.Short signaturesfrom the weil pairing[C]//In ASIA CRYPT 2001.Aus-tralia:[s.n.],2001:514-532.

[6]BONEH D,FLANKLIN M.Identity-based encrytion fromthe weil pairing[J].SIAMJ of Computing,2003,32(3):586-615.

[7]SADEGHI A R,STEINER M.Assumptions related to dis-crete logarithms:why subtleties make a real difference[C]//Eurocrypt 2001.Austria:Springer-Verlag,2001:243-260.

[8]HUANG X,SUSILO W,MU Y,et al.On the security ofcertificateless signature schemes from asiacrypt 2003[C]//CANS 2005.Fujian:Springer-Verlag,2005:13-25.

[9]LI X,CHEN K,SUN L.Certificateless signature andproxy signature schemes from bilinear pairings[J].Lithua-nian Mathematical Journal,2005,45(1):76-83.

[10]ZHANG Z,WONG D,XU J,et al.Certificateless public-key signature:security model and efficient construction[C]//ACNS 2006.New York:Springer-Verlag,2006:293-308.

[11]王宁昌,王斌.改进的基于离散对数的代理签名体制[J].现代电子技术,2011,34(2):90-92.

[12]翁丽萍,施荣华,王国才.一种基于自更新哈希链的双向认证签名方案[J].现代电子技术,2010,33(9):87-90.

无证书签名 篇2

甲方(全称):商务部国际经济合作事务局 乙方(全称):中铁十局集团有限公司

甲方和乙方根据商务部对外援助成套项目工程总承包任务内部实施合同,经协商一致就 援南苏丹外交部临时会议厅项目(工程全称)签订工程无缺陷质量保证书。

一、工程质量保修范围和内容

承包人在质量保修期内,按照有关法律规定和合同约定,承担工程质量保修责任。

质量保修范围包括地基基础工程、主体结构工程,屋面防水工程、有防水要求的卫生间、房间和外墙面的防渗漏,供冷系统,电气管线、给排水管道、设备安装和装修工程,以及双方约定的其他项目。

二、质量保修期

根据商务部对外援助成套项目工程总承包任务内部实施合同及有关规定,工程的质量保修期具体约定如下:

1.主体结构:本项目内部验收合格并办妥对外技术验收之日起50年; 2.非主体结构(含隐蔽管线、隐蔽工程等):本项目内部验收合格并办妥对外技术验收之日起11年;

3.装饰装修工程:本项目内部验收合格并办妥对外技术验收之日起11年;

4.机电安装终端设备:本项目内部验收合格并办妥对外技术验收之日起11年;

5.防水工程:本项目内部验收合格并办妥对外技术验收之日起11年;

项目的无缺陷质量保证期自甲方完成竣工验收且办理完毕对外技术验收手续之日开始起算,在正常使用条件下的分部分项工程的质量保证最低年限执行中国国家标准或受援国当地法律法规的强制性规定。

三、质量保修责任

1.属于保修范围、内容的项目,承包人应当在接到保修通知之日起7天内派人保修。承包人不在约定期限内派人保修的,发包人可以委托他人修理。

2.发生紧急事故需抢修的,承包人在接到事故通知后,应当立即到达事故现场抢修。

3.对于涉及结构安全的质量问题,应当按照《建设工程质量管理条例》的规定,立即向当地建设行政主管部门和有关部门报告,采取安全防范措施,并由原设计人或者具有相应资质等级的设计人提出保修方案,承包人实施保修。

4.质量保修完成后,由发包人组织验收。

四、保修费用

保修费用由造成质量缺陷的责任方承担。

五、双方约定的其他工程质量保修事项: 无。工程质量保修书由发包人、承包人在工程竣工验收前共同签署,作为施工合同附件,其有效期限至保修期满。

发包人:(公章)承包人:(公章)

法定代表人(签字): 法定代表人(签字):

电力调度系统无证书数字签名技术 篇3

随着电力行业信息程度的深入, 电力调度系统的数字化应用也日趋增多。如文献[1-3]针对电力调度的数字化提出了各自的建设思想和实现方法。从现场应用和发表的文献来看, 这些以网络通信为传输基础的电力调度系统都面临着数据传输安全的问题。

由于电力调度过程的特殊性, 任何数据传输的安全问题, 都可能导致灾难性的事故发生, 其造成的损失也是巨大的。文献[4-5]为了避免在电力调度中心、电厂及用户之间传输的数据被篡改、伪造, 提出并设计了基于认证体系结构的数字签名方案。文献[6-7]分析了电力二次系统所面临的风险, 介绍了电力调度系统的证书服务系统及其数字签名技术应用。这些数字签名方案虽然利用证书密码技术提高了系统的安全性, 但是为了存储证书和验证证书的有效性, 需要大量的存储空间和计算开销, 对电力调度的实时性造成了一定的影响。

无证书密码体制既消除了传统密码体制对证书的需求, 也解决了基于身份密码体制中的密钥托管问题[8,9,10]。由于具有较强的实用性, 已经出现了应用于电子商务、电子病历等方面的无证书密码体制方案[11]。但是, 这些方案都是以双线性对或指数为运算基础, 计算效率较低[12]。目前, 无证书数字签名在电力调度中的应用研究较少。

本文在研究电力调度系统数据传输安全性问题的基础上, 利用椭圆曲线密码系统 (elliptic curve cryptosystem, ECC) 计算效率较高的特点, 提出了基于ECC无线性对的无证书数字签名方案。该方案具有保证调度信息的完整性、抗否认性、抗伪造性和可验证性等特点, 能够很好地解决电力调度系统数据传输的安全性问题。

1 无证书数字技术

无证书签名系统将密钥生成中心 (key generation center, KGC) 作为信任中心, 其作用是产生用户的一部分私钥。用户随机选择一个秘密值, 产生自己另一部分私钥, 利用私钥产生公钥, 并将部分公钥绑定同一个身份。一个无证书签名方案由系统初始化、部分密钥生成、设置秘密值、设置私钥、设置公钥、签名以及签名验证7个算法组成。通常, 前2个算法由KGC执行, 而其他算法由签名或验证用户执行[13,14]。

本文设计的ECC无证书签名方案建立在以下数学问题之上。

1) 椭圆曲线离散对数问题 (discrete logarithm problem, DLP) :P是G1的生成元, 任取Q∈G1。在已知P和Q的条件下, 求Q=nP中的n是一个数学难题。

2) 计算Diffie-Hellman问题 (computational Diffie-Hellman problem, CDHP) :P是G1的生成元, a1P∈G1, b1P∈G1, 在不知道a1和b1的情况下, 求a1b1P是一个数学难题。

在无证书签名的安全模型中, 一般存在如下2类敌手攻击。

1) Type-Ⅰ攻击者AⅠ:不能获取KGC主密钥, 但可以替换任意用户公钥。

2) Type-Ⅱ攻击者AⅡ:拥有主密钥, 可以自己产生部分私钥, 但是不能替换用户的公钥。

2 电力调度系统的安全性分析

电力调度系统通常设计的用户角色为系统管理员、录入操作员、审核操作员、签发操作员等[15]。电力调度系统中产生的指令数据及时、准确地在这些角色间频繁传送。在数据传输过程中, 一般面临篡改数据、否认发送数据、冒充发送者等安全问题。

为保证数据传输的安全性, 可将电力调度系统的用户角色在无证书密码体制中映射为如下3类对象。

1) 信任中心KGC:可将系统管理员作为信任中心。为了防止公钥密码替换攻击, 信任中心建立公告板;为了对签名者身份进行真实性验证, 信任中心负责产生用户的部分私钥;为了防止冒充发送者的安全问题, 信任中心可对存疑的调度签名进行判断裁决。

2) 调度信息签名者:调度系统中的所有用户都可以作为调度信息的签名者。为了防止否认发送数据的安全问题, 调度信息签名者产生自己的部分私钥;为了防止篡改数据的安全问题, 调度信息签名者使用哈希函数对信息进行处理;为了防止冒充信任中心的安全问题, 调度信息签名者可对信任中心身份进行验证。

3) 调度信息验证者:调度系统中的所有用户都可以作为调度信息的验证者。为了辨析调度信息的真实性, 可使用公钥对对接收的签名信息进行数字签名验证;为了辨析调度信息发送者的身份, 可对存疑的调度信息签名者的身份提交信任中心进行判断裁决。

3 基于电力调度系统的ECC无证书签名技术方案

数字签名算法 (digital signature algorithm, DSA) 使用大量的指数运算。ECC数字签名算法则使用标量乘运算。在相同的安全强度下, ECC在提高运算速度和节省空间方面, 要优于DSA。目前的无证书签名方案大多使用昂贵的对操作, 降低了执行效率, 也不利于软件和硬件的实现。本文利用ECC计算效率较高的特点, 提出基于ECC无线性对的无证书数字签名方案, 提高执行速度, 能够满足电力调度系统的实时性要求。

3.1 系统初始化

设Fq为有限域, 整数q为所选有限域的阶, FR是有限域Fq中元素的表示, 椭圆曲线的2个系数a, b∈Fq, 构建了椭圆曲线E:y2=x3+ax+b。G∈E (Fq) 为E的一个生成元;n为G的阶数;h为辅因子, 标识E中子群的数目;H是一个单向哈希函数, 能够保证信息的完整性。

电力调度信任中心KGC选择主秘钥s (0

电力调度信任中心KGC公布参数D={q, FR, a, b, G, n, h, Ppub}。

3.2 部分密钥生成

1) 设电力调度信息签名者A的身份为idA, 并通过KGC的公告板进行公示。

2) KGC随机选择x (0

3) 电力调度信息签名者A可以通过以下方式验证d是否为KGC产生:首先, 通过W= (x1, y1) 和idA, 计算H (idA‖x1) ;然后, 分别计算dG和Ppub+H (idA‖x1) W;最后, 判断dG=Ppub+H (idA‖x1) W是否成立。如果成立, 则d为KGC产生, A接受;否则拒绝接受。

3.3 设置秘密值

电力调度信息签名者A随机选取z (0

3.4 设置私钥

电力调度信息签名者A的私钥为SKA= (d, z) , 私钥由A自己保存。

3.5 设置公钥

电力调度信息签名者A的公钥为PKA= (W, N) , 公钥由KGC在公告板中进行告示, 防止公钥替换攻击。

3.6 签名

设电力调度信息M∈{0, 1}*。电力调度信息签名过程如下。

1) 生成随机数k, 0

4) 计算u= (k+hd+zr) mod n, (R, u) 即为A对消息M的签名。

5) 发送消息和签名结果 (M, R, u) 。

3.7 签名验证

调度信息验证者收到签名信息 (M, R, u) , 验证过程如下。

1) 从KGC的公告板处获取电力调度信息签名者A的基本信息 (PKA, idA) 及系统参数。

2) 从R= (x3, y3) 抽取x3, 计算r=x3mod n。

3) 根据M和idA, 计算h=H (M‖idA) mod n。

4) 根据W和idA, 计算h′=H (M‖idA) mod n。

7) 计算R′=U-V= (x4, y4) ;计算r′=x4mod n。

8) 如果r=r′, 表示签名有效;否则, 签名非法。

3.8 身份识别

针对调度信任中心身份, 可采用零知识方式进行认证。识别过程如下。

1) 用户A向KGC提出身份识别, A随机选择t (0

2) KGC计算T′=sT, 将T′秘密发送给A。

3) 用户A计算T′=tPpub是否成立, 如果成立, 则为合法KGC, 否则为非法KGC。

针对调度信息签名者身份, 可采用以下方式进行识别。

1) 身份识别者随机选择t (0

2) 用户A计算t′=tz+d, 将t′秘密发送给身份识别者。

3) 身份识别者计算t′G=tN+Ppub+H (idA‖x1) W是否成立, 若成立则验证通过, 否则验证失败。

4 基于电力调度系统的无证书签名技术方案安全性分析

4.1 可验证性

基于电力调度系统的无证书签名方案中有4处验证。

1) 用户A根据dG=Ppub+H (idA‖x1) W是否成立, 对d是否来源于KGC的验证。算法有效性的验证如下:

2) 调度信息签名验证者通过r=r′是否成立, 判断调度信息的签名正确与否。算法有效性的验证如下:

3) 采用零知识方式T′=tPpub进行KGC身份识别。算法有效性的验证如下:

4) 通过t′G=tN+Ppub+H (idA‖x1) W是否成立, 判断调度信息签名者身份。算法有效性的验证如下:

4.2 不可否认性

KGC发送给调度信息签名者A的私钥d中含有了签名者A的身份id, A在签名过程中, 根据M和idA, 计算h=H (M‖idA) mod n, 算式中又含有了签名者A的身份id, 故在电力调度过程中, 调度信息具有不可否认性。

4.3 不可伪造性

基于电力调度系统的无证书签名方案能抵抗攻击者AⅠ和AⅡ的攻击, 签名方案具有不可伪造性。

攻击者AⅠ进行公钥替换攻击是不可行的。首先, 攻击者AⅠ不知道系统的主密钥s, 也不知道KGC为用户A产生的x, 故不知道A的部分私钥d。其次, 攻击者AⅠ试图替换用户公钥, 就必须修改KGC的公告板中的公钥信息, 由于公告板是公开的, 并且公钥与用户id是对应的, 故攻击的行为会暴露。最后, 若KGC或者其他电力调度用户产生怀疑, 就会进行用户身份认证。由于攻击者AⅠ不知道验证者任意选取的t, 故攻击者不能构造t′。攻击者AⅠ如果知道t, 要解出t′也相当于求解DLP。

攻击者AⅡ进行部分私钥替换攻击是不可行的。攻击者AⅡ若利用用户A的公钥和部分私钥d求解出用户A另一部分私钥z, 只能通过N=zG进行, 但是这是求解DLP。故求解私钥z不可行。攻击者AⅡ如果伪造调度消息M的签名, 需要绕过部分私钥z, 伪造R和u, 以便满足R′=U-V, 这又是求解DLP。

4.4 调度信息的完整性

在签名时使用哈希函数, 将M和id进行捆绑, 保证调度信息的完整性。

本文基于ECC无证书数字签名方案与其他数字签名方案在安全性上的比较见表1。文献[4]是基于RSA算法的电力调度证书签名方案, 文献[9]是基于双线性对的无证书签名方案, 文献[11]是基于DSA无线性对的无证书签名方案, 文献[14]是一个无双线性配对的无证书签名方案, 虽然能够进行KGC身份验证和保证消息的完整性, 但因其私钥存在不安全性, 导致签名无法满足不可伪造性和不可否认性要求。

注:“√”表示“具有”;“ ×”表示“不具有”。

5 效率分析

ECC的运算时间可按相关文献[16,17]进行估算。以乘运算时间TMUL为基准, 加运算时间和模运算时间均忽略不计, 指数运算时间TEXP相当于240TMUL, ECC标量乘运算时间TECC_MUL相当于29TMUL, ECC加运算时间TECC_ADD相当于0.12TMUL, 哈希函数运算时间TH相当于0.23TMUL, 逆运算时间TI相当于11.6TMUL, 双线性对运算时间TD相当于609TMUL。

在系统初始化过程中, 用到1次标量乘运算。在部分秘钥生产过程中, 用到1次标量乘运算、1次哈希函数运算、1次乘运算。在验证私钥d过程中, 用到2次标量乘、1次哈希函数运算、1次ECC加法运算。在设置秘密值过程中, 用到1次标量乘运算。在公钥与私钥产生的过程中, 共消耗约146.58TMUL个运算。

在签名过程中, 用到1次标量乘, 1次哈希函数, 2次乘运算, 共消耗时间约31.23TMUL。

在签名验证过程中, 用到4次标量乘、2次哈希函数、1次乘运算、3次ECC加法运算, 共消耗时间约117.82TMUL。

基于RSA算法的电力调度证书签名方案, 除去为取得证书所消耗的时间外, 1次指数运算时间相当于240TMUL, 比本方案中的任意阶段消耗的时间都长。

基于双线性对的无证书签名方案, 1次线性对运算时间相当于609TMUL, 比本方案中的任意阶段消耗的时间都长。

通过本文方案与其他方案在运算时间的比较可以看出, 本文方案的运算时间明显小于其他方案, 也不会因为证书而消耗存储空间, 说明本文方案具有较高的运行效率, 便于应用到电力调度设备中。

6 应用测试

利用VC++6.0开发工具, 选取椭圆曲线q的位数为180位, 实现基于电力调度系统的ECC无证书签名方案。客户端调度签名的界面见附录A图A1。应用测试环境为:Intel Core i5, CPU主频为2.5GHz, 内存容量为4GB。应用测试结果为:密钥和公钥生成过程的平均时间为1.432ms, 电力调度签名过程消耗的平均时间为4.31 ms, 验证过程消耗的平均时间为6.57ms。

测试结果说明本文方案各阶段的时间均未超出电力调度系统要求的最小时间。

7 结语

以网络通信为传输基础的电力调度系统都面临着数据传输安全问题。本文结合电力调度系统数据传输安全性特点, 提出了一个基于电力调度系统的ECC无线性对的无证书数字签名技术方案。通过安全性分析, 方案能够保证调度信息的完整性、具有抗否认性、抗伪造性和可验证性等特点。通过效率分析, 与常见的其他签名方案相比, 方案减少了证书的存储空间, 降低了计算开销, 提高了运行效率。应用测试表明, 方案可以满足电力调度的实时性要求。但是本方案是以信任的KGC为研究前提, 没有考虑到恶意KGC, 设计基于电力调度系统的防止恶意信任中心的无证书签名方案是下一步的研究方向。

附录见本刊网络版 (http://aeps.sgepri.sgcc.com.cn/aeps/ch/index.aspx) 。

摘要:为了解决电力调度系统中数据传输的安全性问题, 利用椭圆曲线密码系统 (ECC) 计算效率较高的特点, 提出了基于ECC无线性对的无证书数字签名方案。该方案以离散对数问题为安全基础, 由调度信任中心和调度用户共同产生私钥对和公钥对, 避免了调度系统中证书管理复杂的缺陷;以无线性对思想为实现基础, 采用ECC计算方式, 提高了安全调度的执行效率。方案不仅具有调度消息的完整性、抗否认性、抗伪造型、签名的可验证性和调度身份的可验证性等特点, 也能够满足电力调度的实时性要求。

无证书签名 篇4

无证书公钥密码系统[1]不仅克服了传统公钥密码系统中的公钥证书的管理问题[2], 而且克服了基于身份公钥密码系统[3]中存在的密钥托管问题。在基于身份公钥密码系统中, 用户的公钥就是可以惟一识别自己的一些身份信息, 如身份证号, IP地址等;而用户的私钥是由私钥生成中心PKG (Private-key Generation Center) 生成的, 显然PKG也知道用户的私钥 (故存在密钥托管问题) , 因此, 这里的PKG必须是完全可信任的, 否则由于PKG能做用户所能做的任何事情, 那么PKG完全有可能伪造任何用户的签名。为了克服密钥托管这个问题, Al-Riyami和Paterson在2003年的亚洲密码学会议上首先提出的无证书公钥密码系统的概念。在无证书公钥密码系统中, 用户的私钥不再像基于身份公钥系统中完全由PKG来产生, 而是由用户和一个被称为密钥生成中心KGC (Key Generation Center) 共同来产生的。其中用户选择自己的秘密值, 而KGC则为用户产生一个部分私钥, 部分私钥的作用与基于身份密码系统中的私钥类似, 起到认证用户的作用, 在验证签名的同时被验证。然而, 在无证书公钥系统中, 用户的公钥不再是自己惟一可识别的身份信息, 而是由自己选择的秘密值来产生的, 对于其他用户来说可以认为是随机的。此外, 由于在无证书公钥系统中, 没有额外的公钥证书来验证用户公钥的有效性, 因此, 在无证书公钥系统中, 一个很显著的特点是:用户的公钥完全可能被攻击者所替换。特别地, 由于无证书公钥系统克服了基于身份中的密钥托管问题, 所以这里的KGC不再假设是完全可信的, 而是半可信的。目前, 无证书签名是研究热点问题之一, 越来越多的无证书签名方案被提出, 如文献[4-7]。但是, 也有很多的无证书签名方案被指出存在问题, 如文献[8-10]。本文经过分析发现文献[4]提出的高效无证书盲签名方案, 以及文献[11]给出的改进的无证书签名方案都能够受到替换公钥攻击, 使得攻击者能对任意选择的消息成功伪造签名。通过这两个方案的替换公钥攻击进一步分析了出现这类攻击的原因, 这对类似签名方案的设计具有借鉴意义。

1 预备知识

假设G1和G2都是循环群且阶数均为大素数q, 其中G1为加法群, 而G2为乘法群, P为G1的生成元, 且G1和G2上的离散对数问题是困难的。

1.1 符号说明

Q∈RG1表示Q为G1中的任意元素;

{0, 1}*表示任意长的比特串。

1.2 双线性对

映射e:G1×G1→G2称为双线性对, 如果它满足下面几个性质:

(1) 双线性性对P, Q∈RG1, a, b∈RZq, 有:

(2) 非退化性若P为G1的生成元, 则e (P, P) 是G2的生成元;

(3) 实效性存在计算e (P, Q) 的有效算法, 其中P, Q∈RG1。

1.3 困难问题

加法群G1上的几个密码学中的困难问题:

(1) 离散对数问题 (DLP) 对Q∈RG1, 求满足Q=n P的n∈Zq*。

(2) 计算Diffie-Hellman问题 (CDHP) 对P, a P, b P∈RG1, 其中a, b∈Zq*, 计算ab P。

1.4 无证书签名方案的定义

无证书签名方案一般由7个算法组成[1,11], 具体描述如下:

(1) 系统参数建立算法KGC输入安全参数k, 输出系统主私钥s和系统公开参数params。

(2) 用户部分私钥生成算法KGC输入用户的身份ID、系统主私钥s和系统公开参数params, 输出用户部分私钥DID, 并将DID通过安全的信道传输给用户。

(3) 用户秘密值生成算法用户输入系统公开参数params和用户的身份ID, 输出一个用户秘密值xID。

(4) 用户私钥生成算法输入用户的身份ID、部分私钥DID、秘密值xID和系统公开参数params, 输出用户的私钥SKID=f (DID, xID) , 其中f (*, *) 为二元函数。

(5) 用户公钥生成算法输入用户的身份ID、秘密值xID和系统公开参数params, 输出用户的公钥PKID。

(6) 签名算法用户输入待签名的消息m、用户的身份ID、私钥SKID和系统公开参数params, 输出对消息m的签名σ。

(7) 验证算法验证人输入消息m、签名σ、签名人的身份ID、签名人的公钥PKID和系统公开参数params, 若签名正确, 输出“真的”;否则, 输出“假的”。

1.5 无证书签名方案的敌手模型

由于无证书公钥密码系统与传统公钥密码系统和基于身份公钥密码系统的不同, 文献[1]在给出无证书签名方案定义的同时也给出了无证书签名方案的安全性模型, 在这个安全性模型中存在两类攻击:替换公钥攻击 (攻击敌手记为AI) 和恶意KGC攻击 (攻击敌手记为AII) 。具体描述如下:

(1) 替换公钥攻击因为在无证书签名中无需传统的公钥证书, 即无需对用户公钥进行认证, 所以敌手AI在不知道系统主私钥的情况下可利用自己任意选取的公钥替换目标用户的公钥。

(2) 恶意G1攻击敌手AII知道系统的主私钥, 但是不可替换任何用户的公钥, 即KGC是半可信。说KGC不能执行替换公钥攻击, 这是因为KGC即拥有了系统主私钥又能替换用户的公钥进而掌握了秘密值, 那么KGC就能伪造产生用户的私钥, 则这样的公钥系统就不可信。

2 文献[4]给出的签名方案的回顾及攻击

2.1 签名方案的回顾

下面我们回顾文献[4]中给出的高效无证书盲签名方案:

(1) 系统建立算法

选取系统参数, 其中e, G1, G2, P, q与上述预备知识中的定义一致。计算:g=e (P, P) , 选取s∈RZq*, 并计算:

Ppub=s P, 定义2个密码学上安全的hash函数:

设置系统公开参数为:

消息空间为M={0, 1}*, 系统公钥为Ppub, 系统主私钥为s, 公开系统参数params, 由KGC秘密保存系统主私钥s。

(2) 用户部分私钥生成

输入系统公开参数params、系统主私钥s和签名人身份ID, 计算签名人的部分私钥:

其中QID=H1 (ID) 。并通过安全信道把DID传给签名人。

(3) 用户秘密值生成

签名人随机选取xID∈RZq*作为其秘密值信息。

(4) 用户私钥生成

输入签名人的部分私钥DID和秘密值xID, 签名人产生自己的私钥SKID= (xID, DID) 。

(5) 用户公钥生成

输入系统公开参数params、签名人的部分私钥DID和秘密值xID, 产生签名人的公钥:PKID=xID (Ppub+QIDP) 。

(6) 签名算法

输入系统公开参数params、待签名的消息m∈{0, 1}*, 签名人的身份ID和私钥SKID, 签名人和盲签名的接收者执行如下协议:

(1) 承诺签名人选取r∈RZq*, 计算U=gr, 把U发送给接收者。

(2) 盲化接收者随机选择盲化因子α, β∈RZq*计算:

其中h=H2 (m, V) 。

(3) 签名签名人计算:

并把S'发送给接收者。

(4) 解盲用户计算:

并输出在消息m上的盲签名σ= (S, h) 。

(7) 验证算法

给定消息/签名对 (m, S, h) , 签名人身份ID和签名人公钥PKID, 验证人验证下面等式是否成立:

若成立, 则接收签名。否则, 拒绝。

由下式可验证签名的正确性:

2.2 签名方案的攻击

经过分析发现, 上述签名方案能够受到替换公钥攻击, 攻击者通过替换用户的公钥, 从而能够对任意选择的消息成功伪造签名, 具体步骤如下:

(1) 任意选择消息m'并选择l∈RZq*, 计算h'=H2 (m', gl) ;

(2) 选择r∈RZq*, 替换用户的公钥为PK'ID=r P,

并令S'=r-1 (l+h') P。

那么, 消息m'的签名为 (S', h') 。

注意到:

显然有h'=H2 (m', e (S', PK'ID) g-h') , 即消息m'的签名 (S', h') 满足验证算法, 故签名是有效的, 攻击者对任意选择消息的成功伪造了签名。

3 文献[11]给出的签名方案的回顾及攻击

文献[11]指出了文献[12]中的签名方案是不安全的, 并给出了一个改进方案, 但是我们经过分析发现, 文献[11]所给出的改进方案仍然是不安全的, 容易受到替换公钥攻击。

3.1 签名方案的回顾

(1) 系统建立算法

选取系统参数, 其中e, G1, G2, P, q与上述预备知识中的定义一致。计算:g=e (P, P) , 选取s∈RZq*, 并计算:Ppub=s P, 定义2个密码学上安全的hash函数:

设置系统公开参数为:

消息空间为M={0, 1}*, 系统公钥为Ppub, 系统主私钥为s, 公开系统参数params, 由KGC秘密保存系统主私钥s。

(2) 用户部分私钥生成

输入系统公开参数params、系统主私钥s和签名人身份ID, 计算签名人的部分私钥:

其中QID=H1 (ID, P) 。通过安全信道将DID传给用户。

(3) 用户秘密值生成

签名人随机选取xID∈RZq*作为其秘密值信息。

(4) 用户私钥生成

输入签名人的部分私钥DID和秘密值xID, 签名人产生自己的私钥SKID= (xID, DID) 。

(5) 用户公钥生成

输入系统公开参数params、签名人的部分私钥DID和秘密值xID, 产生签名人的公钥:PKID=xIDP。

(6) 签名算法

输入系统公开参数、用户身份ID、消息m∈{0, 1}*和用户的私钥SID= (xID, DID) 进行下面的签名操作:

(1) 选取任意的r∈RZq*;

(2) 计算U=r P, 设h=H2 (m, IDID, PKID, U) ;

(3) 计算V=DID+ (hxID+r) QID;

(4) 输出签名σ= (U, V) 。

(7) 验证算法

验证人接到用户ID发送的消息m∈{0, 1}*及签名 (U, V) , 利用消息m、用户身份ID以及用户的公钥PKID进行如下的验证操作:

(1) 计算QID=H1 (IDID, P) ;

(2) 计算h=H2 (m, IDID, PKID, U) ;

(3) 当且仅当等式e (V, P) =e (QID, Ppub+h PKID+U) 成立时, 接受签名。

由下式可验证签名的正确性:

3.2 签名方案的攻击

经过分析发现, 上述签名方案同样能够受到替换公钥攻击, 攻击者通过替换用户的公钥能够对任意选择的消息成功伪造签名, 具体步骤如下:

(1) 选择l∈RZq*, 令U'=l P-Ppub;

(2) 选择r∈RZq*, 替换用户的公钥为PK'ID=r P;

(3) 任意选择消息m', 并计算h'=H2 (m', ID, PK'ID, U') ;

(4) 令V'= (h'r+l) QID。

那么, 消息m'的签名为σ'= (U', V') 。

注意到,

即消息m'的签名σ'= (U', V') 满足验证算法, 故签名是有效的, 即攻击者对任意选择消息的成功伪造了签名。

4 文献[4, 11]中签名方案存在替换公钥攻击的原因分析

注意到, 一个安全的数字签名方案之所以是可信的, 即确保能通过验证算法的“消息—签名”, 在其产生过程中必须用到签名人的私钥, 而签名人的私钥只有签名人自己拥有, 即只有签名人本人才能产生自己的签名。 (特别地, 在基于身份签名中, 由于存在密钥托管问题, 因此PKG也可产生签名, 故假设PKG是诚实可信的) 因此, 在数字签名方案的可证明安全性中, 证明目标是:若攻击者在不知道签名人私钥的情况下能够成功伪造签名, 那么这种成功伪造签名的能力就可以归约到能够解决某个困难问题。根据逆否命题, 若该困难问题在当前是没办法被解决的, 那么就说明签名方案是安全的。

由于在无证书公钥密码系统中, 用户的私钥事实上由两部分共同来产生, 一部分是KGC为用户生成的部分私钥, 一部分是用户自己选择的秘密值。那么, 在验证算法中如何保证签名过程中必须用到了用户的私钥, 则在验证算法中就必须出现系统公钥Ppub和用户的公钥PKID, 这样说明了在签名过程中很有可能用到了用户的私钥。这里之所以说“很有可能”, 因为此时的签名方案未必是安全的。也就是说, 若一个签名方案的验证算法中即使出现了系统公钥Ppub和用户的公钥PKID, 也不能直接说该签名方案是安全的, 而必须通过严格的归约证明过程。本文给出的两个方案的攻击过程刚好说明了上述两种情况, 具体分析如下。

文献[4]签名方案中的验证式如下:

注意到验证式中只涉及到用户的公钥PKID, 而没有涉及到系统公钥Ppub, 那么说明在构造“消息—签名” (即“m, S, h”) 使其能够通过验证算法时无需用到KGC为用户生成的部分私钥, 而只需用到用户的秘密值, 然而在无证书公钥系统中用户的公钥是完全可能被替换的, 这也是在替换公钥攻击下成功伪造签名的根本原因。从而也说明了原签名方案的证明过程是有问题的。

而文献[11]给出改进的签名方案中的验证式如下:

其中h=H2 (m, IDA, PKA, U) 。虽然在验证算法中即含有用户的公钥PKID, 也含有系统公钥Ppub, 但不能说明它就是安全的。在我们给出的攻击过程中可以看出, 此处的Ppub可以通过设定U的值把它消去, 从而使Ppub失去作用, 那么同样在替换公钥攻击下也就能成功伪造了签名。这也说明了原签名方案的证明过程是有问题的。

5 结语

本文指出了文献[4, 11]中给出的签名方案存在替换公钥攻击, 使得攻击者能够对任意选择的消息成功伪造签名, 并以这两个攻击方法为例总结分析了无证书签名方案设计过程中需要注意的要点, 这对无证书相关签名方案的设计具有借鉴意义。

摘要:对新近提出的两个高效无证书签名方案进行安全性分析, 指出这两个签名方案都能受到替换公钥攻击。任意攻击者都可以通过替换签名人的公钥从而达到对任意选择的消息成功伪造签名, 分析这两个签名方案能受到替换公钥攻击的根本原因。最后通过这两个攻击总结分析了无证书签名方案设计过程需要注意的要点, 这对无证书签名方案的设计具有借鉴意义。

关键词:数字签名,无证书,替换公钥攻击,双线性对,安全性分析

参考文献

[1]AL-RIYAMI S, PATERSON K.Certificateless public key cryptography.Advances in Cryptology proceeding of Asiacrypt 2003, LNCS:Vol 2894[C].Berlin:Springer-Verlag, 2003:452-473.

[2]Gutmann P.PKI:It&apos;s not dead, just resting[J].IEEE Computer, 2002, 35 (8) :41-49.

[3]Shamir A.Identity-based cryptosystems and signature schemes[C]//Blakely G R, Chaum D.Cryptology-CRYPTO 1984, LNCS, 1984, 196:47-53.

[4]黄如芬, 农强, 黄振杰.一个高效的无证书盲签名方案[J].计算机工程, 2013, 39 (2) :130-136.

[5]左为平, 刘云芳, 王三福, 等.一种新的无证书定向代理签名方案[J].计算机应用与软件, 2013, 30 (2) :315-316, 327.

[6]Liu J, Zhang Z, Sun R, et al.Certicateless Partially Blind Signature[C]//Proc.26th International Conference on Advanced Information Networking and Applications Workshops, 2012:128-133.

[7]俞惠芳, 王彩芬, 杨林, 等.基于无证书的盲签密方案[J].计算机应用与软件, 2010, 27 (7) :71-73.

[8]王化群, 徐名海, 郭显久.几种无证书数字签名方案的安全性分析及改进[J].通信学报, 2008, 29 (5) :88-92.

[9]Wu C, Lin W, Huang H, et al.Cryptanalysis of some certificateless signature schemes in the standard model[J].Int.J.Appl.Math.Stat., 2013, 36 (6) :16-25.

[10]陈亮, 崔永泉, 田苗苗, 等.对2个基于身份签名方案的伪造攻击[J].通信学报, 2013, 34 (2) :123-127.

[11]郭玲玲, 林昌露, 张胜元.针对一类无证书签名方案的攻击及改进[J].计算机工程, 2012, 38 (16) :134-137, 141.

一种高效无证书可追踪环签名方案 篇5

1984年, Shamir提出了基于身份的密码体制, 旨在简化传统PKI系统中耗费大量时间传输和验证用户公钥证书的问题。在此密码系统中, 用户的公钥直接从用户的身份信息里获得, 例如身份证号码、IP地址、电子邮件地址等。基于身份的密码体制简化了CA公钥证书的管理, 但是由于它需要一个可信的私钥生成器 (PrivateKey Generator, PKG) 为所有用户生成私钥, 这就存在着密钥托管 问题。为 了解决密钥 托管问题 , 2003年Al-Riyami和Paterson提出了无 证书的公 钥系统 (Certificate-less PKG, CLPKG) 。在CLPKG中, 用户的公钥是用户利用系统公开参数和他的秘密信息产生, 但公钥不需要证书来保证其可靠性, 这样节省了开销, 解决了PKI证书秘密体制中存储和管理证书的问题。

2001年, Rivet等人在如何匿名泄露秘密的背景下提出了环签名的思想。它是一种没有管理者, 没有群的建立过程, 对用户来说完全匿名的简化群签名。环中任何一个成员使用自己的私钥和其他环成员的公钥, 而不需要经过他们的同意即可代表整个环进行签名, 而对于验证者只知道签名来自这个环并不知道谁是真正的签名者。然而环签名的这种无条件匿名性也为匿名泄露虚假消息, 恶意进行电子竞拍的不诚实用户提供了有利技术支持。因此, 在提供匿名服务的同时还应有可控的匿名机制, 在必要的时候追踪到不诚实的用户。

文献[5]提出了一种无证书的环签名方案, 但签名验证效率太低且不具有追踪性。文献[6]提出了一种基于身份的可撤销匿名性环签名方案, 该方案由KGC充当仲裁者, 在需要撤销匿名性的时候, 由KGC去定位真实的签名者。本文提出一种基于身份的无证书可撤销匿名性的环签名方案, 利用在环签名中附加一些相关信息, 在必要时候可通过可信的第三方和环中所有成员来追踪签名者的真实身份。解决了文献[6]中密钥托管问题和KGC权力过大问题。

2 预备知识

2.1 双线性映射

设阶为素数q的加法循环群G1的生成元为P, G2为同阶的乘法循环群。满足下面三个性质的函数e:G1×G1→G2称为一个双线性映射。

(1) 双线性性:设P, Q∈G1, a, b∈Zq, e (aP, bQ) =e (P, Q) ab;

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

(3) 计算有效性:存在有效算法计算e (P, Q) , 其中P, Q∈G1。

2.2 困难问题

(1) 离散对数问题 (DLP) :任取P, Q∈G1, 寻找n∈Zq*, 满足Q=nP;

(2) 计算性Diffie-Hellman问题 (CDHP) :已知P, aP, bP计算abP。

3 一种高效无证书可追踪环签名方案

(1) 系统参数生成

设G1是由生成元P生成的阶为素数q的加法群, G2是阶为q的乘法群 , 映射e:G1×G1→G2为双线性对。H1和H2是两个单向安全的哈希函数。其中H1:{0, 1}*→G1, H2:{0, 1}*→Zq*。

KGC随机选择秘密参数s∈RZq*, 并作为系统主密钥, 计算Ppub=sP的值 , 并公布系统参数Params={G1, G2, H1, H2, P, Ppub, q, e}。

(2) 密钥生成

每个环成员将身份IDi发给KGC, KGC计算并公开Qi=H1 (IDi) , 然后计算Di=sQi的值秘密地把Di传给用户IDi, 签名成员任取xi∈RZq*, 算出Si=xiDi, Yi=xi (P+Qi) 将 (xi, Di) 作为私钥自己保存 , 将Yi作为公钥, 并公开Qi和Yi的值。

(3) 签名生成

对于L={ID1, ID2, ..., IDS, ..., IDn} 为包含签名人在内的n个环成员身份的集合 , 设签名人的序号为S, 其公钥为YS=xS (P+QS) , 私钥为 (xS, DS) 。

1对于消息m, 随机选择各不相同的,

计算

2再随机取tS∈RZq*, 计算

) (TS≠Ti, 若TS=Ti则重新取ts的值)

3得到签名

(4) 签名验证

1计算:

2验证:

若等式成立则σ是消息m的有效签名, 否则签名无效拒绝。

(5) 匿名性撤销

当验证者在事后发现签名人匿名透露虚假消息时, 想要从环L中找出真实的签名人S, 可通过向可信的第三方申请仲裁, 仲裁者通过与环中所有成员进行一次交互即可确定出真实的签名者S, 具体步骤如下:

1仲裁者根据σ中的RKi和环成员列表L, 向对应的环成员IDi收集Ri的值即:Ri=RKixi-1;

2仲裁者收集齐所有的Ri后, 通过判断双线性对e (RKi, P+Qi) =e (Ri, Yi) 来验证Ri的有效性, 若Ri均有效, 则计算, 通过双线性对e (R, P+Qi) =e (U , Yi) 来找到真实签名者。

4 方案的安全性分析

定理1该方案是正确可验证的

(1) 签名验证时对验证者有:

证明:若签名人对消息m的签名为) 则

(2) 匿名撤销时对仲裁者有:

证明:

定理2该方案满足不可伪造性

证明: (1) 签名人的私钥是安全的:因为攻击者由环成员公钥Yi=xi (P+Qi) 得出用户部分私钥xi是G1上的一个DLP问题, 对于KGC而言, KGC只掌握了用户的部分私钥Di=sQi并不知道用户的秘密值xi, 故也不能假冒用户去生成签名。

(2) 假定敌手为ID*

ID*L= {ID1, ID2, ..., IDS, ..., IDn} 他想伪造L的环签名, 他可以随机选择n-1个ti', ri', 由公式 (1) 到 (5) 算出对应的hi', 他在环中任选用户IDS, 由QS=H1 (IDS) 得到公开参数QS, 任取tS的值由公式 (6) 和 (7) 算出TS和hS, 由于他没有IDS的私钥 (xS, SS) 则无法计算 (8) 式中Z的值 , 故伪造的签名无法通过 (10) 式的认证。若敌手从验证式 (10) 入手 , 随机选择n个ti', ri' 由公式 (1) 到 (5) 算出Ti', hi'带入验证式 (10解出Z, 这是一个计算性Diffie-Hellman问题 (CDHP) 。综上任何人包括KGC在内, 均不能伪造一个非环成员的签名。

定理3该方案满足匿名性

证明:因为ri, ti∈RZq* 是随机选取的, 故依次选出T1, T2, ..., TS-1, TS+1, Tn的概率为。

通过计算TS也是随机的。故依次选出T1, T2, ..., Tn所有的的 概率为这个值与实际的签名人IDS无关, 所以该方案满足匿名性。

定理4该方案具有可追踪性

证明:可信的第三方仲裁者通过签名向各环成员IDi收集Ri的值即, 在此过程中环成员的部分私钥xi不会泄露给仲裁者。而对于攻击者而言, 不可能由RKi=riYi和Yi的值算出ri而求出Ri=ri (P+Qi) , 因为这是一个DLP问题。当仲裁者收集齐所有的Ri后, 通过判断双线性对来验证Ri的有效性, 若Ri均有效, 则计算i, 通过双线性对来追踪到真实签名者, 所以该方案具有匿名撤销性。

5 方案的效率分析

本方案与文献[6]均是基于椭圆曲线上的双线性对构造, 算法运算代价主要依赖椭圆曲线标量乘运算 (简记Smul) 和双线性对运算 (简记Pair) 。它们的比较结果如表1所示。

本方案与文献 [6]相比在签名环节当环成员时标量乘运算少于文献[6], 在验证环节两种方案运算量相同, 在追踪的最坏情况下 (即遍历到最后一个环成员) , 本方案减少了2n+2个标量乘运算, 而双线性对运算完全相同, 因此本方案的追踪效率明显高于文献[6]。

6 结束语

本文提出了一种高效无证书可追踪环签名方案, 相比文献[6]不仅解决了密钥托管问题又能有效抵抗密钥生成中心KGC的伪造攻击, 同时提高了签名效率和追踪效率, 而如何减少签名长度则是下一步值得研究的问题。

参考文献

[1]Shamir A.Identity-based cryptosystems and signature schemes.[C]//Proceedings of Crypto'84 on Advances in cryptology, 1984.[S.l.];Springer-Verlag, 1985:47.

[2]Al-Riyamis, Paterson K.Certificateless public key cryptography[C]//Asiacrypt'03, LNCS 3-43.Berlin:Spring-Verlag, 2003:452-474.

[3]Rivest R L, Shamir A, Tauman Y.How to leak a secret[C]//LNCS2248:Advance in Croptology-Asiacryt 2001.New York:Springer-Verlag, 2001:552-565.

[4]Chaum D, van Heyst E.Group Signatures[C]//Proc.Of EUROCRYPT’91.[S.l]:Springer-Verlag.1991.

[5]吴问娣, 曾吉文.一种无证书的环签名方案和一个基于身份的多重签名方案[J].数学研究, 2006, 39 (2) :155-163.

无证书签名 篇6

1984年, Shamir[1]提出了基于身份公钥密码体制。在基于身份的密码体制中, 用户的公钥是利用公开的用户身份信息生成, 不需要统一存储。基于身份公钥密码体制较好地解决了传统公钥密码系统中公钥证书的存储和管理问题, 所以一经提出就得到了众多密码研究者的青睐。但用户的私钥是由密钥生成中心 (KGC) 统一生成的, 这就带来了一个新的安全隐患———密钥托管问题。KGC拥有系统主密钥, 可以生成所有用户的私钥, 恶意的KGC可以冒充任意一个用户进行加解密或签名活动。甚至在严重情况下, 如果系统主密钥被攻破或泄露, 就会导致整个公钥体系崩溃。

2003年, Al-Riyami和Paterson[2]提出了无证书的公钥密码体制模型。无证书公钥密码体制在不需要公钥证书的同时消除了基于身份公钥系统中的密钥托管问题[3]。Al-Riyami和Paterson[2]利用椭圆曲线上的双线性对构造了第一个无证书签名方案, 但Huang等人[4]指出该方案不能抵抗公钥替换攻击。随后, Zhang等人[5]和Huang等人[6]分别对无证书签名方案的安全模型做了讨论。随后, 大量基于不同数学难题的无证书签名方案被提出。2009年, 张磊等人[7]基于计算Diffie-Hellman问题构造了一类无证书签名方案, 但其在验证阶段需要使用3次双线性对运算, 效率不高。2012年, 王圣宝等人[8]基于离散对数困难假设提出了一个无双线性配对的无证书签名方案, 但王亚飞等人[9]指出文献[8]方案是不安全的, 敌手可以在获得同一用户的两个不同消息的签名的基础上获取该用户的私钥。2011年, Choi等人[10]提出了一个无证书短签名方案;2012年, Zhang等人[11]首次基于RSA提出了一个无证书签名方案, 但Tian等人[12]和He等人[13]分别指出这两个方案都不能抵抗公钥替换攻击。Tian等人[12]还基于Schnorr签名给出了一个新的无证书短签名方案。

2011年, 徐邢启等人[14]利用双线性对技术提出了一个适合终端计算能力有限的无线网络环境的基于身份的无证书签名算法。本文对文献[14]所提出的无证书签名算法进行安全性分析, 发现该方案不能抵抗公钥替换攻击和恶意KGC攻击。本文提出了一种改进方案。分析表明, 改进方案是一个安全高效的无证书签名方案。

1 预备知识

1.1 双线性对

设 (G1, +) 是一个阶为素数q的加法群, (G2, ·) 是一个阶为q的乘法群, 假定在群G1和G2中的离散对数问题是难解的。称映射e:G1×G1→G2是一个双线性对, 如果满足下面三条性质:

1) 双线性性对于任何U, V∈G1, a, b∈Zq*, 有e (a U, b V) =e (U, V) ab;

2) 非退化性 存在U, V∈G1, 使得e (U, V) ≠1;

3) 可计算性对于任何的U, V∈G1, 存在一个高效的算法来计算e (U, V) 的值。

群G1一般可取有限域上超椭圆曲线或超奇异椭圆曲线, 双线性对则可以通过改进Weil配对或Tate配对来实现。

1.2 相关数学难题

下面我们考虑群G中的困难性问题与假设。设P是G的一个生成元。

(1) 离散对数 (DL) 问题任取Q∈G, 求满足Q=x P的整数x∈Zq*。

(2) 计算Diffie-Hellman (CDH) 问题任给a P, b P∈G。 (a, b∈Zq*) , 计算ab P。

(3) 判定Diffie-Hellman (DDH) 问题任给a P, b P, c P∈G (a, b, c∈Zq*) , 判断c=abmodp是否成立。若等式成立, 则称 (P, a P, b P, c P) 是一个有效的Diffie-Hellman组。

如果在群G上, DDH问题容易但CDH问题困难, 则G称为间隙Diffie-Hellman (GDH) 群。

1.3 无证书密码体制的攻击模型

无证书签名系统中有两类敌手, 即第1类敌手AⅠ与第2类敌手AⅡ。其中, AⅠ模拟不诚实的用户, 它可以任意替换用户的公钥, 但不知道系统主密钥;AⅡ模拟恶意但被动的KGC, 它知道系统的主密钥, 但是不能替换目标用户的公钥。

2 文献[14]方案回顾

徐邢启等人[14]基于无证书签名方案, 提出一种新的基于身份的无证书高效签名改进算法, 算法描述如下:

1) 系统参数建立

KGC输入安全参数1k, 获得和q, 其中是G1到G2的双线性对, G1, G2分别是q阶加法循环群和乘法循环群, q是大素数, 且在G1, G2中DL问题是难解的;选择G1的生成元P;随机选取x∈Zq*, 将x作为系统主密钥并秘密保存, 计算系统公钥P0=x P;选取安全的密码学哈希函数H1:{0, 1}*→G1和H2:{0, 1}*×G1→Zq*。KGC公布系统参数

2) 部分私钥生成

用户向KGC提交身份标识符ID, KGC首先检查ID的合法性。若ID合法, KGC为用户生成部分私钥DID=x QID, 其中QID=H1 (ID) 。

3) 秘密值生成

用户随机选择xID∈Zq*, 将其作为用户秘密值妥善保存。

4) 用户私钥生成

用户计算SID=xIDDID作为自己的私钥并妥善保存。

5) 用户公钥生成

用户计算PID=xIDP0作为自己的公钥并公开。

6) 签名

为了生成消息m∈{0, 1}*的签名, 用户进行如下操作:

(1) 随机选择r∈RZ*q, 计算R=r P;

(2) 计算h=H2 (m, R) ;

(3) 计算S= (r+h) -1SID,

用户把m及签名σ= (R, S) 一起发给验证者。

7) 验证

验证者收到消息m和签名σ= (R, S) 后, 首先计算h=H2 (m, R) , 然后验证若等式成立, 验证者输出“真”, 否则输出“假”。

3 文献[14]方案的安全性分析

徐邢启等人[14]在随机预言机模型下证明了方案能抵抗无证书签名的两类敌手的适应性选择消息攻击下的存在性伪造。但我们通过分析发现, 徐邢启等人对方案的不可伪造性的证明是错误的, 方案既不能抵抗敌手的公钥替换攻击, 也不能抵抗敌手的恶意KGC攻击。

3.1 公钥替换攻击

敌手为了伪造身份为ID的用户对任意的消息m的签名, 可以进行如下操作:

(1) 敌手随机选取δ∈Zq*, 计算P*ID=δP, 用P*ID代替用户的公钥;

(2) 随机选取τ∈Zq*, 计算R*=τP, h*=H2 (m, R*) 和S*=δ (h*+τ) -1QID, 其中QID=H1 (ID) 。

则σ*= (R*, S*) 是敌手AI假冒身份为ID的用户对消息m伪造的有效签名。事实上:

说明σ*= (R*, S*) 可以通过验证, 是有效的签名。

3.2 恶意KGC攻击

恶意的KGC可以通过产生特定的系统参数, 在已知身份为ID的用户公钥的情况下获取用户私钥, 进而伪造签名。具体攻击方法如下:

(1) KGC产生系统参数时, 任取α∈Zq*, 计算P=αH1 (ID) , 将其作为G1的生成元。

(2) 恶意KGC获得身份为ID的用户公钥PID后, 计算S'ID=α-1PID, S'ID就是用户的私钥。事实上:

于是恶意KGC可以获取用户的私钥, 进而伪造签名, 即方案无法抵抗恶意的KGC攻击。

4 对文献[14]方案的改进

为了抵抗公钥替换攻击和恶意KGC攻击, 本文对文献[14]方案提出了一个改进措施。

(1) 系统参数建立

与原方案基本相同, 仅仅是将哈希函数H1修改为H1:{0, 1}*×G1×G1→G1。其他参数见第2节1) 。

(2) 秘密值生成

用户随机选择xID∈Zq*, 将其作为用户秘密值妥善保管。

(3) 用户公钥生成

用户计算PID=<PIDX, PIDY>=<xIDP, xIDP0>作为自己的公钥并公开。

(4) 部分私钥生成

用户向KGC提交唯一身份标识符ID和用户公钥PID。KGC先验证等式是否成立。若成立, KGC为用户生成部分私钥DID=x QID, 其中QID=H1 (ID, PID) 。

(5) 用户私钥生成

用户计算SID=xIDDID作为自己的私钥并妥善保存。

(6) 签名

与原方案相同, 见第2节6) 。

(7) 验证

验证者收到消息m和签名σ= (R, S) 后, 首先验证等式:

是否成立。若式 (1) 不成立, 则拒绝验证签名;若成立, 则用户公钥合法, 计算QID=H1 (ID, PID) 和h=H2 (m, R) , 并验证等式:

是否成立, 若式 (2) 成立, 验证者输出“真”, 否则输出“假”。

5 改进方案的分析

5.1 正确性证明

式 (1) 的正确性可以由下式保证:

式 (2) 的正确性可以由下式保证:

5.2 安全性分析

(1) 抗公钥替换攻击

敌手可以替换用户的公钥PID, 但不知道系统主密钥x。

敌手若想将用户的公钥PID=<PIDX, PIDY>替换为P*ID=<P*IDX, P*IDY>, 并且能够通过公钥验证等式 (1) , 即则敌手一定能够提供P*ID对应的私钥x*ID, 使得P*IDX=x*IDP, P*IDY=x*IDP0。事实上, 假设敌手不知道P*ID对应的秘密值x*ID, 当然, 敌手也不知道系统主密钥x。记P0=a P, P*IDX=b P, 则P*IDY=ab P是敌手在未知a=x, b=x*ID的情况下输出的CDH实例 (P, a P, b P) 对应的解, 即敌手解决了CDH问题。

下面考虑敌手在替换后的用户公钥P*ID=<P*IDX, P*IDY>下伪造消息m的签名的可能性, 其中P*IDX=x*IDP, P*IDY=x*IDP0, x*ID已知。记P0=a P, QID=b P, 其中敌手不知道a, b的值。假设敌手能够伪造通过验证等式 (2) 的签名σ*= (R*, S*) , 其中R*=τP。则:

其中h*=H2 (m, R*) , 于是ab P=x*ID-1 (h*+τ) S*是敌手输出的CDH实例 (P, a P=P0, b P=QID) 对应的解, 即敌手解决了CDH问题。

综上所述, 在CDH问题困难的假设下, 改进方案可以抵抗敌手的公钥替换攻击。

(2) 抗恶意KGC攻击

3.2节的攻击之所以能够成功, 是恶意KGC利用用户信息QID=H1 (ID) 产生了特定的系统参数———G1的生成元P, 进而可以利用用户的公钥计算出用户的私钥并实施伪造攻击。

改进方案中, 将用户的公钥PID嵌入到了QID=H1 (ID, PID) 中, 而PID需要利用系统参数P和P0生成, 使得KGC需要在用户公钥产生之前生成系统参数, 从而恶意的KGC无法针对用户产生特定的系统参数, 3.2节的攻击失效。所以改进方案能够抵抗恶意KGC攻击。

5.3 性能分析

将改进方案与已有的基于CDH问题的无证书签名方案[2,5,6,7,10,12,14]进行性能比较。各方案中主要涉及到的运算如表1所示, 其中各运算间的运算效率比较数据来自文献[15]。可以看出, 双线性对的运算效率要明显低于其他运算, 另外, 同是哈希运算, 但Map To Point哈希运算的效率也要明显低于普通哈希运算。

各个方案在签名和验证阶段所使用的各种运算的次数如表2所示。具体到本文方案, 虽然验证过程使用了4次双线性对运算和1次Map To Point哈希运算, 但对运算和哈希运算QA=H1 (ID, PID) 都可以预先计算, 在实际签名实施过程中并不会增加运算量。

可以看出, 在不计入能够预先计算的运算量的情况下, 本文方案在克服公钥替换攻击和恶意KGC攻击的同时并没有比文献[14]方案增加运算量, 而且比文献[2, 5, 6, 7, 10]中的方案都减少了双线性对运算, 提高了计算性能。

一个高效的基于证书的短签名方案 篇7

传统的公钥密码体制 (PKE) 需要一个由可信第三方 (TTP) 签名的证书来保证用户公钥的可靠性, 但公钥证书的建立、维护和管理复杂, 成本也很昂贵。同时, 随着用户数量的增长, 计算代价不断增加。Shamir[1]的基于身份的密码体制 (IBE) 虽然不再需要证书, 减少了传统PKE中用于证书管理的计算代价和存储开销, 但却不可避免地带来了密钥托管的问题。2003年, Gentry[2]在欧密会上首次提出了基于证书的公钥密码体制 (CBE) , 该密码体制结合PKE和IBE两种体制的优点, 有效解决了传统PKI系统所存在的证书发布和管理问题, 以及基于身份公钥系统 (IBC) 所固有的密钥托管问题, 克服了无证书公钥系统中可信第三方信任级别较低的问题。因此, 一经提出, 就引起了密码学研究者们的广泛关注。

2004年, Kang等[3]首次将基于证书公钥密码系统拓展到基于证书的数字签名 (CBS) , 给出了CBS的安全定义, 同文还提出了两个CBS签名方案, 这两个方案的主要区别在于签名密钥的产生方法不同, 一个采用多重签名的方式, 另一个则采用聚合签名的方式。2007年, Li等[4]提出了一个效率更高的基于证书签名方案, 并首次给出了基于证书数字签名方案中替换公钥和攻击敌手的形式化定义。同年, Au等给出了一个基于证书的环签名方案[5]。2008年, Liu等在文献[6]中给出了两个基于证书的数字签名方案, 一个不使用双线性对, 另一个则在标准模型下不需要随机预言机即可证明其安全性。2009年, Zhang等在文献[7]中指出Liu等不使用双线性对的CBS方案的不安全所在, 同文还给出了一个改进的方案, 并在随机语言机模型下证明了所提改进方案的安全性。2009年, Wu等[8]进一步完善了基于证书签名体制的安全性定义, 将基于证书签名体制按攻击者能力的强弱进一步分为Normal、Strong和Super三个不同的等级。此后, 陆续有学者发表了基于证书的数字签名研究成果[9,10,11], 但基于证书签名的研究在国内尚处于起步阶段, 还存在极大的研究空间。

本文构造了一个高效的基于证书的短签名方案, 该方案在签名产生阶段不需要双线性对运算, 在签名验算阶段也仅需要一个双线性对运算。由于双线性对运算被认为是十分消耗时间的一种运算, 因此, 其计算代价远远高于标量乘等其他运算。相对于其他需要双线性对运算的已有CBS方案, 我们所提出的基于证书的短签名方案具有更短的签名长度、更少的计算代价和更高的执行效率。

1 预备知识

1.1 双线性映射

设G1是一个阶为素数q的加法群, G2是同阶的乘法群, P为G2的生成元, 在G1和G2中离散对数问题是难解的。两个群之间的映射e:G1×G1→G2如果满足下列条件, 则称为一个双线性映射:

(1) 双线性性对于任意的P, Q∈G1, a, b∈Zq, 有:

(2) 非退化性存在P, Q∈G1, 满足e (P, Q) ≠1G2。

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

满足上述三个特性的双线性映射称为可容的。

1.2 困难假设

在这一节, 我们简要回顾与本文定义的方案安全性有关的一些数学问题。

定义1离散对数问题 (DLP)

给定阶为q的循环群G, P, Q∈G*为G的生成元, 寻找一个整数x∈Zq*, 使得Q=x P。

定义2计算Diffie-Hellman问题 (CDHP)

给定阶为q的循环群G, P∈G为G的生成元, 对于任意的a, b∈Zq*, 给定 (P, a P, b P) , 计算ab P。

假设1 DLP困难假设

如果不存在一个概率多项式时间算法A, 在时间t内以至少ε的概率解决群G上的离散对数问题, 则我们称在群G上的DLP困难假设成立。

假设2 CDHP困难假设

如果不存在一个概率多项式时间算法A, 在时间t内以至少ε的概率解决群G上的计算DiffieHellman问题, 则我们称在群G上 (t, ε) -CDH困难假设成立。

2 CBS的定义

2.1 CBS的一般性定义

一个基于证书的签名方案由系统初始化 (Setup) 、用户密钥生成 (User Key Gen) 、证书生成 (Cert Gen) 、签名产生 (Sign) 和签名验证 (Verify) 等5个多项式时间算法组成。

(1) Setup:输入系统安全参数1k, 输出系统公开参数params和系统主私钥msk。

(2) User Key Gen:输入系统公开参数params和用户身份ID、输出用户公、私钥对 (PKID, SKID) 。

(3) Cert Gen:输入系统公开参数params和主私钥msk、用户身份ID及对应的公钥PKID, 输出证书CertID。

(4) Sign:输入系统公开参数params、用户私钥SKID、用户证书CertID和待签消息m, 输出签名σ。

(5) Verify:输入系统公开参数params、用户的身份ID及其公钥PKID和消息/签名对 (m, σ) , 输出Accept或Reject。

2.2 敌手模型

在基于证书的签名方案中存在两种类型的敌手, 即第一类攻击者AI与第二类攻击者AII。

第一类攻击者AI不知道系统主私钥, 但是可以任意替换用户的公钥;

第二类攻击者AII知道系统的主私钥, 但是不能替换目标用户的公钥。

基于证书的签名方案必须能够抵抗这两类攻击者的攻击。

3 一个高效的基于证书的短签名方案

我们构造的基于证书的短签名方案由以下5个算法组成:

(1) Setup:对于给定的安全参数1k, 按照1.1节所述方法选取2个阶为素数q的群G1和G2, 以及双线性映射e:G1×G→G2, 选择群G1的生成元P, 任选sc∈RZq*, 计算msk=sc, mpk=scP。选取2个密码学上安全的Hash函数:H1:{0, 1}*→Zq*, H2:{0, 1}*×G1→Z*p。

系统参数为:

其中mpk为系统主公钥, msk为系统主私钥, g=e (P, P) , 公开发布系统公开参数params、系统公钥mpk, 秘密保存系统主私钥msk。

(2) User Key Gen:用户随机选取sA∈RZq*, 计算SKA=sA, PKA=sAP, 则用户私钥为SKA, 公钥为PKA。

(3) Cert Gen:输入系统公开参数params、系统主私钥msk、用户身份IDA及对应的公钥PKA, 证书授权中心CA选取随机数r∈RZq*, 计算RA=r P, QA=H1 (ID‖PKA‖RA) , ZA=r+scQAmodq, 计算用户IDA所对应的公钥证书CertA= (ZA, RA) , 并把证书CertA发送给用户。

(4) Sign:输入系统公开参数params、用户私钥SKA和公钥证书CertA, 以及待签消息m, 计算签名如下:

(1) 计算临时签名密钥SA= (SKA, CertA) ;

(2) 计算h=H2 (params‖IDA‖RA, m) ;

(3) 计算σ= (ZA+hsA) -1P。

输出签名σ。

(5) Verify:输入系统公开参数params、用户的身份ID及其公钥PKID, 以及消息/签名对 (m, σ) , 验证下面等式是否成立, 成立则输出Accept, 否则输出Reject。

4 安全性分析

一个基于证书的数字签名方案必须满足的安全性包括正确性和不可伪造性。在这一小节, 我们简要地分析本文所定义的基于证书短签名方案的安全性。

(1) 正确性

正确性是指用户的签名可以通过签名验证算法。方案的正确性可以很容易验证如下。

从上述验证过程可知, 本文定义的基于证书短签名方案满足正确性的安全性要求。

(2) 不可伪造性

不可伪造性是指在不知道签名者私钥的情况下, 攻击者通常很难有效地伪造一个合法的数字签名。只有掌握签名私钥的签名者才能生成有效的数字签名。这里, 我们简要分析本文方案的不可伪造性。如2.2节所述, 基于证书的数字签名存在两类攻击者AI和AII, 一个CBS方案必须抗这两类攻击者的存在不可伪造性。

抗类型I攻击者攻击:类型I攻击者AI模拟用户攻击, 他不知道系统主私钥, 但能够替换任何用户的公钥。所以, AI能够以他自己选择的值替换用户ID的公钥。在公钥替换攻击中, 攻击者AI能够用自己选择的PK'ID来代替用户ID的公钥PKID。这样的替换攻击是不能成功的, 因为他不知道系统主私钥msk, 所以不可能产生所替换公钥所对应的证书, 因而也就无法获得签名者的临时签名私钥SID。因此, AI不可能成功伪造出合法签名。而且在方案中, RA是随机值, 方案通过将RA绑定到hash函数中, 提高了方案的安全性, 当攻击者伪造一个新的RA时, 验证方程中的H2 (params‖IDA‖RA, m) 值就会发生变化, 导致伪造的签名无法通过验证等式。因此, 攻击者可以成功伪造一个签名等价于他可以成功获得计算Diffie-Hellman困难问题的一个实例。

抗类型Ⅱ攻击者攻击:类型Ⅱ攻击者AII模拟CA攻击 (CA———Certificate Authority, 即证书授权中心) , AII虽然拥有系统主私钥, 可以产生用户的证书, 但他不知道用户私钥sA, 不能替换任何用户的公钥。AII虽然可以利用系统主私钥产生用户公钥对应的证书, 但由于从PKID=sIDP计算出sID的困难性等价于解离散对数问题的困难性。因而攻击者无法知道用户的私钥sA, 因此, AII同样不可能成功伪造出合法签名。

根据上述分析, 本文定义的基于证书的短签名方案满足存在不可伪造性的安全性要求。

综合上述对本文定义的短签名方案所进行的两个方面的分析, 可以得出以下结论。

结论1本文定义的基于证书短签名方案满足数字签名的安全性要求。

(3) 效率分析

我们在表1中给出了本文的方案与已有CBS方案[3,4,12,13]的性能比较, 其中P表示对运算, M表示标量乘, SM表示同步标量乘, E表示指数运算。

在本文定义的方案中, 考虑到双线性对运算比较复杂, 需要消耗较多的计算资源和时间, 其计算代价远远高于其他运算。因此预先计算g=e (P, P) , 将其在系统公开参数中发布, 这样, 签名生成过程就不需要任何对运算, 签名验证过程也仅仅需要一个对运算。大大提高了签名的整体效率。从表1可以看出, 本文的基于证书数字签名方案是高效的, 其总体性能要优于现有的其他方案。

5 结语

无证书签名 篇8

基于证书公钥密码系统(Certificate-Based Public Key Cryptography,CB-PKC)是由Gentry C.等人在2003年欧洲密码学会议上首次提出的。CB-PKC是目前为止最好的公钥密码系统,并将成为更加实用的公钥系统取代目前使用的公钥基础设施。该密码系统的提出不仅解决了已有公钥密码系统中的证书管理问题及密钥托管问题,而且还克服了对可信第三方的信任级别低的问题。基于证书数字签名(Certificate-Based Signature,CBS)是基于证书公钥密码系统的一个重要组织部分,对其进行深入研究对密码学发展具有重要的意义。

不可否认签名(Undeniable Signature)是1989年由Chaum等首先提出的,它适用于签名的有效性不能被普遍地验证的情况,签名的验证过程需要签名者的配合才能实现,并且接收者在没有得到签名者允许的情况下不能向第三方证明签名的有效性。

将基于证书的概念引入到不可否认签名中,在已有的基于证书数字签名及不可否认签名的一般性定义和安全模型的基础上给出基于证书不可否认签名的一般性定义及安全性模型,并在此基础上构造一个签名方案,这对于密码学的研究是一个新的突破,具有重要的研究意义。

2 签名的一般性定义

定义2.1一个基于证书的不可否认签名方案由参数生成算法、用户密钥生成算法、证书生成算法、签名密钥生成算法、签名算法、确认协议、否认协议七个部分组成其中前面五个算法与文献[3]中定义的相似,并在其基础上增加两个签名者与验证者之间的交互协议如下:

确认协议:验证者输入原消息m、签名者的身份ID对及相应的有效签名σ,签名者输入自身的私钥SKID,该协议将输出一个可说明签名σ确实是签名者对原消息m的有效签名的不可传递性证明。

否认协议:验证者输入原消息m、签名者的身份ID对及一个无效签名σ,签名者输入自身的私钥SKID,该协议将输出一个可说明签名σ确实不是签名者对原消息m的有效签名。

3 签名的安全性模型

根据已有的基于证书数字签名和不可否认数字签名的安全模型,并结合文献[4]中提出的基于身份不可否认数字签名的安全性模型,下面从三个属性考虑,提出基于证书不可否认签名的安全模型。

(1)不可伪造性

所谓不可伪造性是指签名在适应性选择消息攻击下被成功伪造是不可能存在的。基于证书不可否认签名存在用户攻击(下面简称为A1)和CA攻击(下面简称为A2)两类攻击者。前者是在知道签名者的私钥却无法获得对应公钥证书情况下的攻击;后者刚好相反,攻击者可以通过系统主私钥计算得到用户的证书,但却无法获得签名者私钥的情况下进行的攻击。

下面通过模拟上述两类攻击者与挑战者S之间的如下攻击来证明基于证书不可否认签名方案的不可伪造性,具体定义如下:

攻击1:在A1与S之间交互

(1)参数生成:根据安全参数1K,S运行参数生成算法获得系统公开参数params和系统主私钥s,并将params发送给A1。

(2)询问:A1可在多项式时间内多次向S进行七种类型询问。

用户密钥生成询问:输入任意签名者K的身份IDK,询问其对应的公钥PK和私钥SK,S计算后将(PK,SK)返回给A1。

Hash值询问:输入任意字符串,S计算后将相应的Hash值返回给A1。

证书生成询问:输入任意签名者K的身份IDK和公钥PK,询问其对应的公钥证书CertK,S计算后将CertK返回给A1。

替换公钥询问:输入任意签名者K的身份IDK、原公钥PK及新公钥P'K,请求用新公钥替换原公钥,S查寻存储表将签名者K的公钥PK替换成P'K。

签名询问:输入任意签名者K的身份IDK和任意待签消息m,询问其相应的签名σ,S计算后将σ返回给A1。

确认协议询问:输入任意签名者K的身份IDK、一个消息签名对(m,σ),S运行确认协议使得A1相信σ确实是签名者K对消息m的有效签名。

否认协议询问:输入任意签名者K的身份IDK、一个消息签名对(m,σ),S运行否认协议使得A1相信σ确实不是签名者K对消息m的有效签名。

(3)最终结果输出:对于选定的签名者K*(其对应的身份为IDK*,公钥为PK*)和选定的消息m*,A1输出其对应的签名σ*。

A1要在上述攻击中取胜,只要A1能证明(m*,σ*)是签名者K*的有效消息签名对,同时能满足两个条件。

在证书生成询问时A1没有对(IDK*,PK*)进行询问。

在签名询问时A1没有对(IDK*,PK*,m*)进行询问。

攻击2:在A2与S之间交互

(1)参数生成:根据安全参数1k,A2运行参数生成算法获得系统公开参数params和系统主私钥s,并发送(params,s)给S。

(2)询问:A2可在多项式时间内多次向S进行三种类型的询问。

用户公钥生成询问:输入任意签名者K的身份IDK,询问其对应的公钥PK,S计算后返回PK给A2,并保存相应私钥SK。

用户私钥生成询问:输入任意签名者K的公钥PK,询问其对应的私钥SK,当PK是通过用户公钥生成询问得出时,S查询存储表返回私钥SK,否则,返回空值(简写“⊥”)。

Hash值询问、替换公钥询问、签名询问、确定协议询问、否定协议询问:同攻击1中定义。

(3)最终结果输出:对于选定的签名者K*(其对应的身份为IDK,公钥为PK*)和选定的消息m*,A2输出其对应的签名σ*。

A2要在上述攻击中取胜,只要A2能证明(m*,σ*)是签名者K*的有效消息签名对,同时能满足三个条件。

在签名询问时A2没有对(IDK*,PK*,m*)进行询问。

签名者K*的公钥PK*是通过用户公钥生成询问得出的。

在用户私钥生成询问时A2没有对PK*对应的私钥进行询问。

定义3.1如果存在任意多项式时间的攻击者A1和A2赢得上述两类攻击的概率是可忽略的,就说这个基于证书不可否认签名方案在适应性选择消息攻击下是不可伪造的。

(2)隐匿性

所谓“隐匿性(Invisibility)”是指验证者在没有得到签名者协作的情况下不能单独判断消息签名对是否有效。下面通过模拟隐匿性区分器(Invisibility Distinguisher)(简称攻击者A3)与挑战者S之间的如下攻击来证明基于证书不可否认签名方案具有隐匿性,具体定义如下:

攻击3:在A3与S之间交互

(1)根据安全参数1k,S运行参数生成算法获得params和s,并发送params给A3。

(2)A3可以在多项式时间范围内向S进行用户公钥生成、Hash值、证书生成、用户私钥生成、替换公钥、签名、确认协议、否认协议的一系列询问,这些询问与攻击1和攻击2中定义的类似。

(3)询问过后,A3产生一个(m,IDK)对,其中IDK在第两步中没有进行过用户私钥生成询问和证书生成询问。S投掷一枚硬币a←R{0,1},当a=0时,S发送对应于(m,IDK)的有效签名σ给A3,否则,随机选择签名空间上的一个值作为σ发送给A3。

(4)A3再次进行第二步中定义的询问,此过程中不能向S发送(m,IDK,σ)进行确认协议和否认协议询问,也不能发送IDK进行用户私钥生成询问及证书生成询问。

(5)最后,A3输出比特a',当A3确认(m,IDK,σ)有效时a'=1,否则a'=0。

中有a=a'时,A3才能在攻击中取胜,因此,A3在攻击3中的概率优势定义为:

定义3.2如果任意多项式时间的攻击者A3赢得攻击3的概率是可忽略的,就说这个基于证书不可否认签名具有隐匿性。

(3)匿名性

所谓“匿名性(anonymity)”是指当给定两个签名者及其中任意一个签名者的消息签名对时,验证者不能判断此消息签名对是由哪个签名者产生的。

攻击4:在攻击者A4与挑战者S之间进行交互

(1)根据安全参数1K,A4运行参数生成算法获得params和s,将(params,s)发送给S。

(2)A4可以在多项式范围内向S进行用户公钥生成、Hash值、证书生成、用户私钥生成、替换公钥、签名、确认协议、否认协议的一系列询问,这些询问与攻击1和攻击2中定义的类似。

(3)询问过后,A4产生(m,ID0,ID1)对,其中ID0、ID1没有在第两步中进行过用户私钥生成询问。

S投掷一枚硬币,用IDc的私钥对m进行签名,将签名σ发送给A4。

(4)A4再次进行第二步中定义的询问,此过程中不能向S发送(m,ID0,σ)或(m,ID1,σ)进行确认协议和否认协议询问,也不能向S发送ID0、ID1进行用户私钥生成询问和证书生成询问。

(5)最后,A4输出比特c',即A4确认σ是身份为IDc的签名者对m的有效签名。

只有c=c'时,A4才能在攻击中取胜,因此,A4在攻击4中的概率优势定义为:

定义3.3如果任意多项式时间的攻击者A4赢得攻击4的概率是可忽略的,就说这个基于证书不可否认签名具有匿名性。

定义3.4如果一个基于证书不可否认签名方案在适应性选择消息攻击下存在不可伪造性,且能满足隐匿性和匿名性,那么它是安全的。

4 总结

本文首次提出基于证书不可否认签名的概念,并给出其一般性定义及安全性模型,今后可在次基础上构造出可证明安全的具体签名方案。

参考文献

[1]Gentry C.Certificate-based encryption and the certificate revocation problem[A].Advances in Cryptology-EUROCRYPT2003,Lecture Notes in Compututer Science:Vol2656[C].E.Biham(Ed.):Springer-Verlag,2003:272-293.

[2]Chaum D,van Antwerpen H.Undeniable Signatures.Advances in Cryptology proceeding of Crypto1989,Lecture Notes in Computer Science:Vol435[C].Berlin:Springer-Verlag,1990:212-216.

[3]王雯娟,黄振杰,郝艳华.一个高效的基于证书数字签名方案[J].计算机工程与应用,2011,47(6):89-92.

[4]Benoit Libert,Jean-Jacques Quisquater.Identity Based Undeniable Signatures[A].Advances in CT-RSA2004,Lecture Notes in Computer Science:Vol2964[C].Berlin:Springer-Verlag,2004:112-125.

[5]Chaum D,van Antwerpen H.Undeniable signatures[A].Advances in Cryptology-Crypto’89,Lecture Notes in Computer Science:Vol0576[C].Berlin:Springer-Verlag,1991:470-484.

上一篇:台湾寻亲记下一篇:质量保证机制