基于证书签名(共7篇)
基于证书签名 篇1
0 引言
传统的公钥密码体制 (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 结语
本文构造了一个有效的基于证书短签名方案, 并简要分析了所构造方案的安全性。方案是基于证书的, 与基于传统公钥密码体制 (PKE) 的数字签名方案和基于身份 (IBS) 的数字签名方案相比, 不仅解决了传统PKE中的证书发布问题和IBE所固有的密钥托管问提, 简化了证书的管理, 而且整体在效率上具有相当的优势, 并且签名长度更短。
基于证书签名 篇2
在电子交易、电子支付等实际应用场景中的交易双方往往其利益目标不一致, 这就要求在设计这些场景中所应用的安全协议时要遵循公平性原则。所谓公平交换, 即确保交易双方的利益安全, 交换结束后, 要么每一方都得到了他所期望的信息, 要么双方都得不到对方有价值的信息[1]。公平交换协议[2]根据第三方参与度可分为三种类型[3,4,5]:1) 在线第三方参与的公平交换协议。2) 乐观公平交换协议或离线可信第三方参与的公平交换协议。3) 无第三方参与的公平交换协议。其中乐观公平交换协议[6,7]一直是信息安全等领域研究的热点。
随着数据量增多, 电子商务对于交换的速度要求越来越高[8], 传统的基于证书的公平交换协议在证书开销等方面已出现瓶颈, 而无证书[9]公平交换协议在这方面的优势就充分体现出来。无证书公钥密码体系, 既能解决传统证书管理问题, 也解决了密钥托管问题, 在安全性能上优于基于身份的密码体制, 在运行效率上优于基于证书的密码体制。短签名[10]在应用中很有优势不仅占用字节少而且传输速度快。
本文提出了一种确保交易双方快速、公平地进行数据交换, 而且在交易双发发送纠纷时可提供仲裁机制的公平交换协议, 即基于无证书短签名的公平交换协议。
1 电子商务交易过程概述
电子商务的交易形式如图1所示。消费者, 商家, 支付网关以及银行都需要在认证机构进行认证。消费者在购物平台上选取购买的商品, 随后平台返回消费者购物订单。消费者根据订单通过支付网关进行支付, 网关将支付信息通知银行。待银行进行确认后将付款信息返回给平台, 平台随即通知商户进行发货。最后待消费者收到货物后银行和购物平台进行清算。
这种交易形式的优缺点并存, 一个各方都信任的认证机构颁发的证书和签名可以使得用户达到最高的信任级别。但是缺点也很明显, 证书在管理过程中的分发、认证、撤销都非常消耗计算机资源而且处理过程极其繁琐。签名的长度也非常长, 在数据传输和存储时都对内存造成了较大的开销。如果采用无证书短签名的形式进行证书和签名的分发就可以很好的解决以上问题。
2 无证书短签名方案设计
2.1 签名方案的设计
(4) 私钥生成:输入用户部分私钥DID和秘密值S。输出完整的私钥SKID=S+DID。记d=SKID。
(5) 公钥生成:输入用户秘密值S, 计算w=gs, 输出公钥PKID= (w, u) 。
(7) 验证签名:收到签名 (r, δ) 后, 验证
2.2 签名正确性证明
从上面签名过程来验证公式 (1) 的正确性。将u=gz, w=gs, y=gX等式子带入公式 (1) 左边式子, 可以得到如下推倒:
因此公式 (1) 等式成立, 签名方案是正确的。
2.3 签名安全性证明
无证书的不可伪造性是通过两类攻击者AⅠ, AⅡ和挑战者C之间的游戏来定义的。
情形I:第一类攻击下签名的不可伪造性。
设AI是第一类攻击者, 即AⅠ不知道系统的主私钥但是可以替换任意用户的公钥。C通过如下步骤回答AI的询问。
4) Public key queries:C生成一个 ( (IDA, w, u) ) 的Puk-list的记录表。当向C询问公钥时若存在记录中则返回。否则, C先作PPKlist询问, 计算w=gs, 将 (IDA, w, u) 添加到Puk-list, 并且返回 (w, u) 。
5) Public key replacement queries:AⅠ可以替换任意用户的公钥PKID (w, u) 。也就是说AⅠ可获取 (s, z) 。
当上述步骤完成后, AⅠ可以对任何消息进行签名 (IDA≠ID) 。下面我们将利用分叉引理证明如果生成的签名正确则C就可以解决DLP问题。假设 (M, ID, (r, δ) ) 是AⅠ对攻击所得到的对M的签名。记T=gH (M) wyH (ID, u) ur+1。C对hash函数稍作变化可以得到M的另一个签名 (M, ID, (r′, δ′) ) 。因为2个签名都是有效的, 于是可以得到如下式子:
既有:
从而我们计算出来X的值从而解决了离散对数问题。因为离散对数问题是数学难题, 所以可以证明在第一种情况下签名是不可伪造的。
情形II:第二类攻击下签名不可伪造。设AⅡ是第二类攻击者, 即AⅡ知道系统主密钥x, 但是AⅡ不能替换目标用户的公钥。同情形一证明类似, 利用分叉引理。C将得到2个有效签名 (M, (r, δ) , ID) 和 (M, (r′, δ′) , ID) 。因为不可伪造公钥则 (w, u) 不可伪造。所以可以得到:
C原本只能够获取用户公钥u, 但是通过上面的一系列过程C可以计算出u=gz中的z, 从而解决了离散对数问题。故通过反证法得知该方案在第二类攻击下也是不可伪造的。证明完毕。
2.4 签名方案效率比较和长度分析
根据时间复杂度, 我们将离散对数运算 (d) 、双线性对运算 (e) 、哈希函数 (h) 三类操作作为本方案与另外两个方案对比的指标。以上三种运算中哈希运算耗费时间最短, 其次是离散对数运算, 双线性对数运算是目前已知的最复杂的密码操作因而耗费的时间也是最长的。在同等安全等级下, 运行一次双线性对所需的时间是有限域上离散对数运算的10倍左右[15]。表1是本文与文献[11]、文献[12]中短签名方案的对比。
由表1可知, 本文方案在密钥生成阶段的效率上与方案1相同, 比方案2高, 在签名阶段的效率与方案1, 2相同;在验证阶段的时间效率比方案2高。由于本文方案采用了公钥绑定技术, 故可以达到文献[13]中定义的第三级信任等级。方案1只达到了其定义的二级信任等级。本文方案比方案1的安全级别要高, 因此本文签名在安全性和效率上都有所提高。此外, 本方案中签名中的长度均为1b (q) , 签名的总长度为21b (q) 与文献[14]中的短签名长度相同。
3 一种针对电子商务交易下的无证书短签名的公平交换协议
3.1 公平交换协议的设计
本文协议使用的签名技术是第二章提出来的无证书短签名技术, 利用该技术生成的签名可以判断信息是否是对方发出且没有被恶意修改。电子商务交易中该协议的执行时序流程图如图3所示。
协议的具体流程描述如下:
第一步:Buyer将所需要购买的产品的清单List用对方公钥加密后发送给商家。
第三方解密进行验证后, 将信息存储并且用Buyer公钥加密后传递给Buyer。
此时Buyer解密得到数据串, 验证签名, 如果通过则获得从而可以解密获得E-goods。
第三方解密验证信息后, 发送如下信息给Seller并用Seller公钥加密。
Seller解密后就能够从第三方平台获得货款。
3.2 公平性分析
1) 若双方都诚实, 那么协议执行完后, 双方均达到自己的目标, 协议正常结束。
2) 付款和发货的协议中都加入了时限值, 如果超过了这个时限则此次交易将会被认为无效。所以任意一方终止交易也无法影响对方的利益。
3) 若商家不诚实, 不发送或者发送不正确的商品给买家, 买家可以不确认, 这种卖家将无法获得货款。买家还可以将相关信息发送给第三方申请仲裁, 第三方根据实际情况对卖家给予处罚。
4) 若买家不诚实, 否认收到k S或者说收到的k S是假的。这样卖家可以根据相关信息申请第三方进行仲裁。第三方会根据实际情况将货款发送给卖家并且对买家进行处罚。因此协议满足公平性。
3.3 仲裁方法
1) 买家申请仲裁:买家将{IDB, IDS, Timeout, List, Serve, {e-goods}ks, E-goods}发送给第三方, 第三方会根据货物的描述List和相关服务Server对比货物E-goods是否一致, 并给予仲裁。
2) 卖家申请仲裁:卖家将{IDS, IDB, T, List, Server, {e-goods}ks, E-money, ks, fs}发送给第三方, 第三方根据时间戳T、{e-goods}KS、E-money kS、fS来判断卖家是否发送了正确的kS。给予相应的仲裁。
4 结束语
本文构建了一种基于无证书短签名的公平交换协议, 其中签名方案采用基于离散对数的短签名, 使得协议在电子商务交易应用中具有快速高效的优势, 而无证书公钥密码体制则简化了传统公钥码体制, 解决了密钥托管问题。本文协议的仲裁机制需要可信的第三方平台参与。下一步研究将考虑在无第三方参与时如何实现安全、公平交换的目的。
摘要:本文提出一种基于在线可信第三方的公平交换协议。公平交换协议是电子商务活动中的一种非常重要的安全协议。在现代电子商务活动中公平交换协议不仅要保证安全、公平而且需要满足计算速度快, 通信代价小的需求。无证书密码学减少了对证书公钥基础设施的需求, 降低了证书管理的开销, 解决了传统的基于身份的密码学的密钥托管问题。本协议的签名采用了短签名, 与传统的签名相比, 在达到同等安全级别上, 签名的长度极大的缩短从而使签名的效率得到了很大的提高, 使得传输和存储的数据量变小。故本协议在一些低带宽, 低存储量的移动终端网络环境中同样适用。
高效的无证书短签名方案 篇3
为了解决传统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生成的加法循环群,阶为素数q。G2是一个乘法循环群,阶也是q。
双线性映像:e:G1×G1→G2的性质如下:
(1) 双线性:对∀P,Q∈G1,∀a,b∈Z*q,有e(aP,bQ)=e(P,Q)ab。
(2) 非退化性:存在P,Q∈G1,使得e(P,Q)≠1。即:映射不能将G1×G1中所有的对都映像为G2中的单位元。
(3) 可计算性:对所有的P,Q∈G1,存在一个有效的多项式时间算法来计算e(P,Q)。
1.2 困难性假设[7]
离散对数问题(DLP):已知Q∈G,计算a∈Z*q,使得Q=aP。
逆计算Diffie-Hellman问题(Inv-CDHP):对于一个未知数a∈Z*q,给定P,aP,计算
判定性Diffie-Hellman问题(DDHP):已知P,aP,bP,cP,其中a,b,c∈Z*q,判定c=abmod q是否成立。
计算性Diffie-Hellman问题(CDHP):已知P,aP,bP,其中a,b∈Z*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。令P是G1的生成元,双线性对e:G1×G1→G2是如上所述的双线性映射。本文的方案由以下算法构成:
(1) 系统参数建立算法。PKG在Z*q中随机选择一个主密钥s∈Z*q,计算P0=sP∈G1。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=xIDP∈G1,把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 正确性
若签名是合法签名,则一定可以通过验证等式,因为:
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′=xA′P。为了伪造一个签名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.
电力调度系统无证书数字签名技术 篇4
随着电力行业信息程度的深入, 电力调度系统的数字化应用也日趋增多。如文献[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计算方式, 提高了安全调度的执行效率。方案不仅具有调度消息的完整性、抗否认性、抗伪造型、签名的可验证性和调度身份的可验证性等特点, 也能够满足电力调度的实时性要求。
基于证书签名 篇5
无证书公钥密码系统[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'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.
基于证书签名 篇6
操作系统:Windows Server 2003 StandardX64 Edition
域:cgte.com
服务器FQDN:jymail.cgte.com
服务器IP:192.168.0.111
2 实施步骤
2.1 架设证书发布网站
运行Windows Server 2003的控制面板中的“添加删除程序”, 点选“添加/删除Windows组件”, 在Windows组件向导对话框选中“Certificate Services”, 插入Windows Server 2003的安装光盘, 点击下一步进行安装。
2.2 生成密文
在Exchange服务器上运行“Exchange命令行管理程序”, 输入以下语句:
执行上面的命令后会在C盘的根目录下生成一个newreq.txt的文本文件, 用Windows自带的“记事本”工具打开, 获取申请Exchange证书所需要的密文。
2.3 导出证书
使用浏览器访问证书发布系统, 网址为http://jymail.cgte.com/certsrv。打开页面后点击“request a certificate”, 进入申请证书页面。再点击“advanced certificate request”进入高级证书申请页面。点击第二项:”使用base 64编码的CMC或PKCS#10文件提交一个证书申请, 或使用base 64编码的PKCS#7文件续订证书申请”。
将newreq.txt中的编码填入“Saved Request”对话框, 点击“Submit”按钮。证书生成完毕后, 进入证书系统的主页面, 点击下载证书, 进入图7的页面后, 选择Base 64编码, 点击“Download CA Certificate”下载CA证书到C盘根目录, 将证书文件重命名为jymail.cer。
2.4 删除原证书
在Exchange服务器上运行“Exchange命令行管理程序”, 在提示符中输入以下语句:Get-ExchangeCertificate|fl来获取当前服务器上已导入证书列表的详细信息, 记录下过期证书的指纹5113ae0233a72fccb75b1d0198628675333d010e (笔者测试环境中的指纹号) 后, 使用“Remove-ExchangeCertificate”命令删除当前使用的过期证书。具体命令如下:RemoveExchangeCertificate-Thumbprint 5113ae0233a72fccb75b1d0198628675333d010e
2.5 激活新生成的自签名证书
返回Exchange命令行管理程序, 输入以下命令:Import-ExchangeCertificate-path c:jymail.cer|enable-exchangecertificate–services“IIS, POP, IMAP”执行后即可完成导入Exchange证书的工作, 并将证书应用于“IIS, POP, IMAP”服务, 导入后的证书状态如图1所示。
2.6 实施后的客户端测试
导入证书后, 在客户端使用Outlook Express可以正常收发邮件, 从一个角度证明了此次证书升级对用户层面是完全透明的。客户端使用IE浏览器通过OWA方式访问邮件服务器, 会弹出安全警报对话框, 点击查看证书后点击“安装证书…”即可进入证书导入对话框, 按照提示操作完成新证书的导入工作后可以正常访问邮件服务器的OWA界面, 使用邮件测试账号进行收发邮件的操作。整个升级过程对用户均是透明的, 也未影响到其它服务器的正常运行。
摘要:根据国家保密标准的要求, 军工企业内网与互联网实现物理隔离, 一般均通过电子邮件的形式实现信息共享来提升科研人员的工作效率。Exchange Server通常被用来构架企业邮件系统。在安装Microsoft Exchange Server 2007以及客户端访问服务器角色或统一消息服务器角色时, 如果没有任何以前存留的数字证书, 将安装自签名证书。自签名证书在安装Exchange 2007的12个月后过期, 一旦Exchange2007系统的数字证书过期, 园区网内所有用户将不能使用Outlook Express收发邮件, 带来不可估量的损失。因此在证书过期前, 必须手动生成新的自签名证书并完成导入以保证Exchange系统的正常运行。
基于证书签名 篇7
基于证书公钥密码系统(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.