一种无密钥泄露的变色龙数字签名方法

文档序号:3419699阅读:357来源:国知局
专利名称:一种无密钥泄露的变色龙数字签名方法
技术领域
本发明涉及信息安全领域。特别的,本发明涉及一种无密钥泄漏的变色龙数字签
名生成和验证的系统。
背景技术
数字签名是一种基本的信息安全技术,在身份认证、数据完整性、不可否认性以及匿名性等方面有重要应用,特别是在网络安全通信中的密钥分配,认证以及电子商务、电子政务等系统中具有重要的作用。数字签名是实现认证的重要工具。 数字签名的生成和验证需要签名者的签名私钥和验证公钥。签名者的签名私钥是仅被签名者知晓的。签名者的验证公钥则是公开的。数字签名的生成需要使用签名者的签名私钥和被签名的数字内容。数字签名的验证则是使用验证公钥来确认签名者拥有对应的签名私钥。数字签名的安全性要求数字签名应是不可伪造的,即没有签名私钥的任何人或者设备都不能伪造一个数字签名。签名私钥具有唯一标志签名者身份的重要作用,数字签名不应泄漏签名私钥的有用信息。 普通的数字签名具有广义可验证性,即任何人都可验证某个签名是否是对某个特定消息的签名。这个特性在一些情况下是有很用的,比如公开宣传品的发布。但是在很多其他应用中,特别是为了保护签名者或接收者的隐私时,并不希望让所有人都能验证消息/签名对。这就产生了数字签名体制中广义可验证性和隐私性之间的矛盾。例如,某个签名者签署了一份标书去投标,标书的标价通常属于隐私信息,此时这个签名者就希望其签名不要公开验证,否则其竞争者就可以通过其标书来确认某个标价确实属于该签名者,以至于会在与该签名者以后的竞争中处于有利地位。还有许多其他的例子凸显了上述矛盾,为此需要设计特殊的数字签名来解决问题。 Cha咖和Van Antwerpen提出了不可否认签名来解决上述问题。由于签名的验证
必须通过签名者的合作才能完成,所以签名不满足广义可验证性。更进一步,签名者可以决
定签名只有在某种条件下才能被验证或只能被某个特定的实体所验证。 Krawcayk和Rabin提出了变色龙签名来更有效的解决上述问题。变色龙签名基
于标准的数字签名生成方法,即先哈希再签名。其中变色龙哈希函数被用来计算消息哈希
值。变色龙哈希函数是一种单向陷门哈希函数,陷门信息的拥有者可以有效地计算出一个
随机输入的碰撞;而在没有陷门信息的情况下,函数是抗碰撞的。变色龙签名像不可否认签
名一样可以同时提供不可否认性和不可传递性,但是相对于后者,前者可以更简单、更高效
的实现。更精确的来说,变色龙签名是非交互的,并且不涉及复杂的零知识证明,而这是传
统的不可否认签名实现的基础。虽然存在非交互式的不可否认签名,但变色龙签名的实现
更为简单。 在最初所设计的一些变色龙签名方案中,如果验证者伪造签名,而签名者得到了伪造签名,签名者就可以利用此变色龙哈希函数的碰撞计算出验证者的私钥,造成验证者密钥泄漏。这一特性虽然可以有效防止验证者伪造签名,但是第三方可能因为相信验证者不敢冒着私钥泄露的危险来伪造签名,进而相信某个签名确实是签名者所签署的,从而削弱了签名的不可传递性。 陈晓峰等人基于双线性对提出了第一个完全的无密钥泄漏的变色龙哈希函数,新方案很好的解决了这一问题。随后,Ateniese等人提出了更多基于不同假设的无密钥泄露变色龙哈希函数。Ateniese等人指出传统的单陷门的承诺方案无法用来构造无密钥泄露的变色龙哈希函数;只有双陷门的承诺方案可以用来设计无密钥的变色龙哈希函数或基于身份的变色龙哈希函数。 然而目前基于离散对数体制的无密钥泄漏的变色龙签名方案都是基于所谓的间隙Diffie-Hellman群来构造,需要进行计算复杂度较高的双线性对的运算,所设计的签名方案效率较低。而且间隙Diffie-Hellman群是一种特殊的群结构,该群上的判定性Diffie-Hellman问题是容易的,安全假设比较强。而目前大多数循环群如一般有限域上的乘法群都不是间隙Diffie-Hellman群,所以目前的变色龙签名方案适用范围窄。因此如果能够基于判定性Diffie-Hellman问题困难的循环群来设计无密钥泄漏的变色龙签名方案,就可以使得设计的方案基于比较弱的安全假设,会有较大的适用范围,较好的效率。
由上述可知,现有技术中已公布的基于离散对数体制的变色龙数字签名方案并不理想。我们希望给出一种变色龙数字签名方案,使之能够基于判定性Diffie-Hellman问题困难的循环群,同时能够解决密钥泄露问题,具有较高的效率和较宽的适用范围。

发明内容
本发明的目的在于提供一种更加高效的无密钥泄露的变色龙数字签名方案的实现方法,解决背景技术中设计无密钥泄漏的变色龙签名方案必须依赖于间隙Diffie-Hellman群,效率不高、安全假设太强、适用范围窄等问题。 为实现上述目的,本发明提供一种无密钥泄露的变色龙数字签名方案的实现方法设置公开的系统参数;设置签名者拥有的签名私钥和公开的验证公钥;设置验证者拥有的陷门私钥和公开的变色龙公钥;签名者使用签名私钥和变色龙公钥计算数字内容的变色龙数字签名;验证者使用签名者公开的验证公钥、变色龙公钥和陷门私钥来验证变色龙数字签名的正确性;签名者向可信第三方否认验证者生成的变色龙签名。
1)公开的系统参数包括循环群G,群G的生成元为g,生成元g的阶为素数q,全域无碰撞的杂凑函数H : {0, 1}* — G 任意一种安全的数字签名算法(JG, JS, JV)。
其中循环群G上的判定性Diffie-Hellman问题是困难的。 其中安全的数字签名算法指该算法在适应性选择消息攻击下具有不可伪造性。 2)签名者拥有的签名私钥xs和公开的验证公钥ys由算法JG生成。根据数字签
名算法(JG, JS, JV)的不同,签名私钥和验证公钥可以有各种不同的形式。 3)验证者拥有的陷门私钥为x,, efl ,公开的变色龙公钥为^ =g 。 4)签名者使用签名私钥和变色龙公钥计算数字内容WeZ:的变色龙数字签名的
步骤如下 (1)签名者选择随机整数a eR ;
(2)生成比特串I ;
(3)计算变色龙杂凑值H ; (4)使用签名私钥xs,使用数字签名算法JS,对变色龙杂凑值H签名,获得签名值
^,S(H); (5)使用变色龙公钥yK,整数a ,计算y/ ; (6)签名者串联g。,y/, S,形成数字内容m的变色龙签名(g°,y/, S)。 其中变色龙杂凑值H的计算方法为在循环群G上计算H二 gaH(yK, I)m。 其中比特串I包含签名者身份信息、验证者身份信息以及签名者和验证者约好的
时间信息。 5)验证者使用签名者公开的验证公钥、变色龙公钥和陷门私钥来验证数字内容m的变色龙数字签名(ga,yKa, S)的正确性的步骤如下 (1)验证者用陷门私钥对签名的第一个元素ga在群G上计算(g")"; (2)比较签名的第二个元素y/与计算得到的(g")"是否相同,如果不同则认为该
签名为假,否则继续判断; (3)验证者生成比特串I ; (4)使用变色龙公钥计算yK和消息m计算H(yK, I)m ; (5)验证者使用签名的第一个元素和计算所得到的H(yK, I)m来计算变色龙杂凑值H= gaH(yK, I)m (6)验证者使用公开的验证公钥ys,变色龙杂凑值H,根据数字签名验证算法JV所定义的验证过程来验证签名S的正确性。如果签名验证失败则认为签名为假,否则认为签名为真。 6)签名者向可信第三方否认验证者生成的关于消息!11*的变色龙签名(g"',少f,》的步骤如下 (1)可信第三方验证变色龙签名是否满足以下属性
-验证者向可信第三方提交^',W的指数相同的证据;-可信第三方重新计算比特串I、//(^,/f\H ^"7/(^,7f、使用公开的验证
公钥^,根据数字签名验证算法JV所定义的验证过程来验证S ,可以通过验证。
(2)如果可信第三方认为验证者提交的变色龙签名满足上述两个属性,则要求签
名者否认变色龙签名,否则直接认定变色龙签名为假。
(3)签名者向可信第三方否认变色龙签名的过程如下-签名者向可信第三方展示变色龙签名值(ga,yKa, S); _签名者向可信第三方展示消息!11或者提供消息111是群元素11/^°以H(h,I)为底的离散对数的知识证明;-签名者向可信第三方提供证据证明ga和yKa具有相同的指数; (4)如果签名者提供了消息m,可信第三方检查变色龙签名所签署的消息与m不
同,但是H = gaH(yK, I)m就可以判定变色龙签名为假; (5)如果签名者没有提供消息m,可信第三方检查g"^g^就可以判定变色龙签名为假。 本发明具有以下优点
本发明基于判定性Diffie-Hellman问题困难的循环群,构造了无密钥泄露的变色龙数字签名方案。本发明基于判定性Deffie-Hellman问题困难的循环群,具有较高的效率,较低的安全假设和较宽的适用范围。 本发明提供的变色龙数字签名方案的实现方法,适用于电子投标、电子拍卖、版权保护、数字作品防伪等领域。


图1为无密钥泄露的变色龙数字签名方案实现方法框图
具体实施例方式以软件的版权保护为例说明本方案的具体实施。软件版权所有者为本方案的签名
人,软件的消费者为本方案的验证者。通过本方案的实施,软件版权所有者可以为数字产品
签署变色龙签名,软件的消费者能够通过验证变色龙签名确认数字产品的真实性,然而源
于变色龙签名的不可转移性,消费者无法向任何人证明其所用产品为正品,从而使得数字
产品不会被消费者复制进行二次销售。具体实施过程如下 1)软件版权所有人和消费者具有如下公开的系统参数-安全的数字签名算法(JG,JS,JV):可以选定为ECDSA签名算法,签名长度192比
特,该签名算法的参数遵循SEC推荐的SECpl92rl,参数(p, a, b, g, q, h)如下p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFFFFFFFFFF ;a = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFFFFFFFFFC ;b = 64210519 E59C80E7 0FA7E9AB 72243049 FEB8DEECC146B9B1 ; g = (x, y);x = 04188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD82FF1012 ;
y = 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A11E794811 ;
G = 〈g> ,为点g生成的群; q = FFFFFFFF FFFFFFFF FFFFFFFF 99DEF836 146BC9B1B4D22831 ;
h = 01。-变色龙签名方案中的公开参数循环群G,生成元g,素数q可以与数字签名算法(JG, JS, JV)中的相关参数相同;-全域无碰撞的杂凑函数H在本具体实施中可以采用SHA-256先对输入比特串进行杂凑,然后对杂凑值模q,获得值x,把该值代入椭圆曲线方程y2 = x^ax+b,如果能够解得y,则获得H的输出(x,y);否则用i串联输入比特串重复上述过程,获得Xi,其中i依次取值{1, 2, 3. . . },直到解得yi为止,获得H的输出为(Xi, y》。 2)软件版权所有者拥有的签名私钥xs和公开的验证公钥ys由BLS短签名算法中的密钥生成算法生成。并且软件版权所有者向证书权威机构注册自己的公钥,获得公钥证书。 3)消费者拥有的陷门私钥为xfl eZ:,公开的变色龙公钥为力。并且消费者向证书权威机构注册自己的变色龙公钥,获得公钥证书。 4)软件版权所有者对软件产品运行SHA-256杂凑运算,获得该软件产品的数字指纹,之后进行模q运算获得待签署的消息m。之后软件版权所有者运行以下步骤(l)签名者选择随机整数a^《; (2)使用软件版权所有者的公钥证书主体标识和唯一标识,消费者的主体标识和
唯一标识,数字产品公开的上架时间来生成比特串I ; (3)使用全域无碰撞函数计算变色龙杂凑值H = gaH(yK, I)m ; (4)使用签名私钥xs,使用数字签名算法JS,对变色龙杂凑值H签名,获得签名值
■,,(H); (5)使用变色龙公钥yK,整数a ,计算y/ ; (6)软件版权所有者串联g、y/, S,形成数字产品的变色龙签名(g°,y/, S),并与数字产品、数字产品上架时间同时发布。 5)消费者使用软件版权所有者公钥证书获得其公钥、使用自己的变色龙公钥和陷
门私钥来验证数字产品的变色龙数字签名(ga,yKa, S)的正确性的步骤如下 (1)消费者用陷门私钥对签名的第一个元素ga在群G上计算(g")"; (2)比较签名的第二个元素y/与计算得到的(g""是否相同,如果不同则认为该
签名为假,否则继续判断; (3)使用软件版权所有者的公钥证书主体标识和唯一标识,消费者的主体标识和唯一标识,数字产品公开的上架时间来生成比特串I ; (4)消费者对不包含签名的软件产品运行SHA-256杂凑运算,获得该软件产品的数字指纹,之后进行模q运算获得待签署的消息m。 (5)消费者使用自己的变色龙公钥计算yK和生成的消息m计算H(yK, I)m ; (5)消费者使用签名的第一个元素和计算所得到的H(yK, I)m来计算变色龙杂凑值
H= gaH(yK, I)m (6)消费者使用公开的验证公钥ys,变色龙杂凑值H,根据数字签名验证算法JV所定义的验证过程来验证签名S的正确性。如果签名验证失败则认为签名为假,否则认为签名为真。 6)软件版权所有者向可信第三方否认消费者者生成的关于消费者自己生成或者改动的数字产品所附带的变色龙签名(,',《,《的真实性的步骤如下
(1)可信第三方验证伪变色龙签名是否满足以下属性
-消费者向可信第三方提交^,W的指数相同的证据;-可信第三方重新计算数字产品的数字指纹,模q之后获得消息m*,重新计算比特串1、//(yw,7f *、H -g"//(yw,7f 、使用公开的验证公钥ys,根据数字签名验证算法JV所定义的验证过程来验证s,可以通过验证。
(2)如果可信第三方认为提交的变色龙签名满足上述两个属性,则要求软件版权
所有者否认变色龙签名,否则直接认定变色龙签名为假。
(3)软件版权所有者向可信第三方否认变色龙签名的过程如下-软件版权所有者向可信第三方展示变色龙签名值(ga , yKa , S );-软件版权所有者向可信第三方展示消息m或者提供消息m是群元素H/ga以
H(yK, I)为底的离散对数的知识证明;
-软件版权所有者向可信第三方提供证据证明ga和y/具有相同的指数;
(4)如果软件版权所有者提供了消息m,可信第三方检查需要验证真伪的变色龙签名所签署的消息n^与m不同,但是H二 gaH(yK, I)m就可以判定提交的变色龙签名为假,产品为伪造; (5)如果软件版权所有者没有提供消息m,可信第三方检查g"^g^就可以判定变色龙签名为假,产品为伪造。
权利要求
一种生成和验证数字内容的变色龙数字签名方法,包括用于计算公开的系统参数的步骤;用于计算签名者拥有的签名私钥和公开的验证公钥的步骤;用于计算验证者拥有的陷门私钥和公开的变色龙公钥的步骤;用于签名者使用签名私钥和变色龙公钥计算数字内容的变色龙数字签名的步骤;用于验证者使用签名者公开的验证公钥、变色龙公钥和陷门私钥来验证变色龙数字签名的正确性的步骤;用于签名者向可信第三方否认验证者生成的变色龙签名的步骤;其特征在于其中所述公开的系统参数包括循环群G,群G的生成元为g,生成元g的阶为大素数q,全域无碰撞的杂凑函数H{0,1}*→G*,任意一种安全的数字签名算法(JG,JS,JV),其中所述签名者拥有的签名私钥xS和公开的验证公钥yS由算法JG生成,其中所述验证者拥有的陷门私钥为公开的变色龙公钥为其中所述签名者使用签名私钥和变色龙公钥计算数字内容的变色龙数字签名时,所签署的消息为签名者选择随机整数生成比特串I,计算变色龙杂凑值H,该变色龙杂凑值H的计算方法涉及比特串I,消息m,生成元g,变色龙公钥yR,整数α。F2008102189510C0000011.tif,F2008102189510C0000012.tif,F2008102189510C0000013.tif,F2008102189510C0000014.tif
2. 根据权利要求1所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在于所述变色龙杂凑值H的计算方法为在循环群G上计算H二 gaH(yK, I)m。
3. 根据权利要求1所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在于所述比特串I包含签名者身份信息、验证者身份信息以及签名者和验证者协商好的时间信息。
4. 根据权利要求2所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在于所述签名者使用签名私钥和变色龙公钥计算数字内容的变色龙数字签名按如下步骤生成(1) 签名者使用签名私钥xs,使用数字签名算法JS,对变色龙杂凑值H签名,获得签名值^/、 (H);(2) 签名者使用变色龙公钥,整数a ,计算y/ ;(3) 签名者生成的关于消息m的签名为(ga,yKa, S)。
5. 根据权利要求4所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在于所述验证者使用签名者公开的验证公钥、变色龙公钥和陷门私钥来验证变色龙数字签名的正确性时按照以下步骤(1) 验证者首先利用签名的第一个元素ga计算(g,^ ;(2) 比较签名的第二个元素y/与计算得到的(g,"是否相同,如果不同则认为该签名为假,否则继续判断;(3) 验证者生成比特串I ;(4) 使用变色龙公钥计算yK和消息m计算H(yK, I)m ;(5) 验证者使用签名的第一个元素和计算所得到的H(yK, I)m来计算变色龙杂凑值H =gaH(yK, I"(6)验证者使用公开的验证公钥ys,计算所得的变色龙杂凑值H根据数字签名验证算法JV所定义的验证过程来验证签名S的正确性。如果签名验证失败则认为签名为假,否则认为签名为真。
6.根据权利要求5所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在于所述签名者向可信第三方否认验证者生成的变色龙签名时,可以通过下述步骤向可信第三方否认变色龙签名(1) 签名者向可信第三方展示关于消息m的部分变色龙签名值(g。,y/)、消息m、ga和yKa具有相同的指数的证据,或者向可信第三方展示关于消息m的部分变色龙签名值(ga,y/)、消息m是群元素H/g。以H(h, I)为底的离散对数的知识证明、ga和yKa具有相同的指数的证据;(2) 如果签名者提供了消息m,可信第三方检查如果验证者提供的变色龙签名所签署的消息与m不同,而且H = gaH(yK, I)m,就可以判定提交给可信第三方的变色龙签名为假;如果签名者没有提供消息m,可信第三方检查g"-g"'就可以判定提交给可信第三方的变色龙签名为假。
全文摘要
本发明涉及一种生成和验证数字内容的变色龙数字签名的方法。该方法采用特殊的变色龙杂凑函数,采用指数相等的知识证明技术,在判定性Diffie-Hellman问题困难的循环群上实现了无密钥泄露的变色龙数字签名。解决了背景技术中仅能在间隙Diffie-Hellman群上实现无密钥泄露的变色龙数字签名,效率不高、安全假设太强、适用范围窄等问题。
文档编号H04L9/30GK101741559SQ20081021895
公开日2010年6月16日 申请日期2008年11月10日 优先权日2008年11月10日
发明者张方国, 田海博, 陈晓峰, 陈满祥, 韦宝典 申请人:广州信睿网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1