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

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

发明内容
本发明的目的在于提供一种基于身份的无密钥泄露的变色龙数字签名方案的实 现方法,解决背景技术中不存在基于身份的无密钥泄露的变色龙数字签名方法,不能利用 基于身份的体制公钥管理方便的优点。为实现上述目的,本发明提供一种基于身份的无密钥泄露的变色龙数字签名方案 的实现方法设置公开的系统参数;设置签名者拥有的签名私钥和公开的验证公钥;设置 验证者拥有的陷门私钥和公开的变色龙公钥;签名者使用签名私钥和变色龙公钥计算数字 内容的变色龙数字签名;验证者使用签名者公开的验证公钥、变色龙公钥和陷门私钥来验 证变色龙数字签名的正确性;签名者向可信第三方否认验证者生成的变色龙签名。1)公开的系统参数包括间隙Diffie-Hellman群G1,群G1的生成元P,生成元P 的阶为大素数q,循环群&,群&的阶也是大素数q,全域无碰撞的杂凑函数H {0,1}* — G1, 对映射函数e =G1XG1 — ( ,可信第三方的公钥Ppub = sP,其中s为可信第三方的私钥;任意 一种安全的基于身份的数字签名算法(JG,JE, JS, JV)。其中关于群G1, (;2,对运算e的双线性Diffie-Hellman问题是困难的。其中安全的数字签名算法指该算法在适应性选择消息攻击下具有不可伪造性。2)签名者拥有的签名私钥&由算法JE生成。根据数字签名算法(JG,JE,JS,JV) 的不同,签名私钥和验证公钥可以有各种不同的形式。3)验证者拥有的陷门私钥为如=sQe,公开的变色龙公钥为% = H(R)。4)签名者使用签名私钥和变色龙公钥计算数字内容me <的变色龙数字签名的步5骤如下(1)签名者选择随机整数α ^ Ζ;;(2)生成比特串I ;(3)计算变色龙杂凑 值H ;(4)使用签名私钥xs,使用数字签名算法JS,对变色龙杂凑值H签名,获得签名值 秘,“H);(5)使用变色龙公钥QK,可信第三方公钥Ppub,整数α,对映射函数e,计算群G1的 元素α P和群G2的元素e ( α Ppub,Qe);(6)签名者串联αΡ,e(aPpub, Qr), δ,形成数字内容m的变色龙签名(aP, e ( a Ppub' QR) ‘ 。其中变色龙杂凑值H的计算方法为在间隙Diffie-HelIman群G1上计算H = a P+mH(I)。其中比特串I包含签名者身份信息、验证者身份信息以及签名者和验证者约好的 时间信息。5)验证者使用签名者公开的验证公钥、变色龙公钥和陷门私钥来验证数字内容m 的变色龙数字签名(aP,e(aPpub, Qr), δ)的正确性的步骤如下(1)验证者用陷门私钥对签名的第一个元素^和私钥崦计算“^,观);(2)比较e( a Ppub,Qr)与步骤(1)中计算得到的值e( a P,sQE)是否相同,如果不 同则认为该签名为假,否则继续判断;(3)验证者生成比特串I ;(4)使用消息m计算mH⑴;;(5)验证者使用签名的第一个元素和计算所得到的mH(I)来计算变色龙杂凑值H =a P+mH(I)(6)验证者使用公开的验证公钥ys,变色龙杂凑值H,根据数字签名验证算法JV所 定义的验证过程来验证签名S的正确性。如果签名验证失败则认为签名为假,否则认为签
名为真。6)签名者向可信第三方否认验证者生成的关于消息nf的变色龙签名(a*P, e(a*Ppub,QK),δ)的步骤如下(1)可信第三方验证变色龙签名是否满足以下属性-验证者向可信第三方提交a*P,e ( a *Ppub,Qe)含有相同整数a *的证据;-可信第三方重新计算比特串I、m*H(I)、H= a *P+m*H(I),使用签名者的身份S, 根据数字签名验证算法JV所定义的验证过程来验证δ,可以通过验证。(2)如果可信第三方认为验证者提交的变色龙签名满足上述两个属性,则要求签 名者否认变色龙签名,否则直接认定变色龙签名为假。(3)签名者向可信第三方否认变色龙签名的过程如下-签名者向可信第三方展示变色龙签名值(aP,e(aPpub,QK),δ);-签名者向可信第三方展示消息m或者提供消息m是群元素H/ga以H(yK,I)为底 的离散对数的知识证明;_签名者向可信第三方提供证据证明(aP,e(aPpub,QK)含有相同的整数α ;
(4)如果签名者提供了消息m,可信第三方检查变色龙签名所签署的消息nf与m不 同,但是H = gaH(yK,I)m,并且签名者提供的(aP,e(aPpub,QK)含有相同的整数α的证据 经检验可靠,就可以判定变色龙签名为假;(5)如果签名者没有提供消息m,可信第三方检查容£^@°",并且签名者提供的 (aP, e(aPpub, Qe)含有相同的整数α的证据经检验可靠,签名者提供的m是群元素H/ga 以H(yK,I)为底的离散对数的知识证明经检验可靠,就可以判定变色龙签名为假。本发明具有以下优点本发明基于双线性Diffie-Hellman问题困难的假设,构造了无密钥泄露的基于 身份的变色龙数字签名方案,该方案可以利用基于身份的体制不需要公钥基础设施的优 点,方便了密钥的管理,并具有较高的效率。本发明提供的无密钥泄露的基于身份的变色龙数字签名方案的实现方法,适用于 电子投标、电子拍卖、版权保护、数字作品防伪等领域。


图1为无密钥泄露的基于身份的变色龙数字签名方案实现方法框图
具体实施例方式以软件的版权保护为例说明本方案的具体实施。软件版权所有者为本方案的签名 人,软件的消费者为本方案的验证者。通过本方案的实施,软件版权所有者可以为数字产品 签署变色龙签名,软件的消费者能够通过验证变色龙签名确认数字产品的真实性,然而源 于变色龙签名的不可转移性,消费者无法向任何人证明其所用产品为正品,从而使得数字 产品不会被消费者复制进行二次销售。具体实施过程如下1)软件版权所有人和消费者具有如下公开的系统参数-安全的基于身份的数字签名算法(JG,JE,JS, JV)可以选定为Cha-Cheon基于 身份的数字签名算法,签名长度IOM比特,该签名算法的参数(E,P,q, k,P,G1)如下E :y2 = χ3+1P =10055855947456947824680518748654384595609524365444295033292671082791323022555160232602838231103021829961597050703009730616882823832344831005744984009826581q =1675975991242824637446753124775730765934920727574049172215445180465220503759193372100473038517170304993599508450501621769480470638724138500957497334971097k = 2P = (x,y)χ =
2218248283148307312060782604701661398038778976686877608729652468318337545196443670431223906909154726030131628738730346083142486133580367577697629465320989y =4515056003532170177558482288850754893020739301430369572382747710068043320808244909869716469133434094878743304448081369121368085857262739405049267215539276G1 =
,为点P生成的群;对运算e采用Miller算法G2是GF (ρ2)上的q阶子群,生成元是e (P,P)。-变色龙签名方案中的公开参数G1,G2,对运算e,G1的生成元P,素数q与基于身 份的数字签名算法(JG,JE, JS, JV)中的相关参数相同。-全域无碰撞的杂凑函数H在本具体实施中可以采用SHA-256先对输入比特串进 行杂凑,然后对杂凑值模q,获得值X,把该值代入椭圆曲线方程y2 = x3+ax+b,如果能够解 得y,则获得H的输出(x,y);否则用i串联输入比特串重复上述过程,获得Xi,其中i依次 取值{1,2,3. . . },直到解得yi为止,获得H的输出为(Xi,Yi)。-可信第三方的公钥Ppub= sP, s为可信第三方私钥。2)软件版权所有者拥有的签名私钥xs由Cha-Cheon基于身份的数字签名算法生 成,公钥为该版权所有者的身份信息。3)消费者拥有的陷门私钥为xK = SQe,公开的变色龙公钥为消费者的身份信息R。4)软件版权所有者对软件产品运行SHA-256杂凑运算,获得该软件产品的数字指纹,之后进行模q运算获得待签署的消息m。之后软件版权所有者运行以下步骤(1)签名者选择随机整数《 Ζ;;(2)使用软件版权所有者的身份信息,消费者的身份信息,数字产品公开的上架时 间来生成比特串I ;(3)使用全域无碰撞函数计算变色龙杂凑值H = α P+mH(I);(4)使用签名私钥xs,使用数字签名算法JS,对变色龙杂凑值H签名,获得签名值 S=JSxs(H);(5)使用变色龙公钥R计算Qk = H(R),整数α,可信第三方公钥Ppub,计算α P和 e ( α Ppub' QR);(6)软件版权所有者串联α P,e( α Ppub,Qr),δ,形成数字产品的变色龙签名(αΡ, e( α Ppub,Qr),δ ),并与数字产品、数字产品上架时间同时发布。5)消费者使用软件产品的所有者身份信息、使用自己的身份信息和陷门私钥来验 证数字产品的变色龙数字签名(aP,e(aPpub,QK),δ)的正确性的步骤如下(1)消费者用陷门私钥对签名的第一个元素αΡ计算e(aP,sQE);(2)比较签名的第二个元素e( α Ppub,Qr)与计算得到的e(aP,sQE)是否相同,如 果不同则认为该签名为假,否则继续判断;
(3)使用软件版权所有者的身份,消费者的身份信息,数字产品公开的上架时间来 生成比特串I ;(4)消费者对不包含签名的软件产品运行SHA-256杂凑运算,获得该软件产品的 数字指纹,之后进行模q运算获得待签署的消息m。(5)消费者计算mH⑴;(5)消费者使用签名的第一个元素和计算所得到的mH(I)来计算变色龙杂凑值H =α P+mH(I)(6)消费者使用版权所有者的身份S,变色龙杂凑值H,根据数字签名验证算法JV 所定义的验证过程来验证签名S的正确性。如果签名验证失败则认为签名为假,否则认为 签名为真。6)软件版权所有者向可信第三方否认消费者者生成的关于消费者自己生成或者 改动的数字产品所附带的变色龙签名(a*P,e(a*Ppub,QK),δ)的真实性的步骤如下(1)可信第三方验证伪变色龙签名是否满足以下属性-消费者向可信第三方提交a*P,e(a*Ppub,QK)的含有相同的α*的证据;-可信第三方重新计算数字产品的数字指纹,模q之后获得消息πΛ重新计算比特 串 I、m*H(I)、H= a*P+m*H(I),使用公开的版权所有者身份S,根据数字签名验证算法JV所定义的验证过程来验 证δ,可以通过验证。(2)如果可信第三方认为提交的变色龙签名满足上述两个属性,则要求软件版权 所有者否认变色龙签名,否则直接认定变色龙签名为假。(3)软件版权所有者向可信第三方否认变色龙签名的过程如下-软件版权所有者向可信第三方展示变色龙签名值(aP,e ( a Ppub,Qe) , δ );-软件版权所有者向可信第三方展示消息m或者提供消息m是群元素mH(I)以 H(I)为底的离散对数的知识证明;-软件版权所有者向可信第三方提供证据证明aP和e ( a Ppub,Qe)含有相同的整 数α ;(4)如果软件版权所有者提供了消息m,可信第三方检查需要验证真伪的变色龙 签名所签署的消息nf与m不同,但是H= aP+mH(I),并且签名者提供的(a P,e ( a Ppub,Qk) 含有相同的整数α的证据经检验可靠,就可以判定提交的变色龙签名为假,产品为伪造;(5)如果软件版权所有者没有提供消息m,可信第三方检查ap兴a*P,并且签名 者提供的(aP,e(aPpub,QK)含有相同的整数α的证据经检验可靠,签名者提供的m是群元 素H/ga以H(yK,I)为底的离散对数的知识证明经检验可靠,就可以判定变色龙签名为假, 产品为伪造。
权利要求
1.一种生成和验证数字内容的基于身份的变色龙数字签名方法,包括用于计算公开的系统参数的步骤;用于计算签名者拥有的签名私钥和公开的验证公钥的步骤;用于计算验证者拥有的陷门私钥和公开的变色龙公钥的步骤;用于签名者使用签名私钥和变色龙公钥计算数字内容的变色龙数字签名的步骤;用于验证者使用签名者公开的验证公钥、变色龙公钥和陷门私钥来验证变色龙数字签 名的正确性的步骤;用于签名者向可信第三方否认验证者生成的变色龙签名的步骤;其特征在于其中所述公开的系统参数包括间隙01€打6-彻11!1^11群61,群G1的生成元P,生成元P 的阶为大素数q ;循环群G2,群G2的阶也是大素数q ;对映射函数e =G1XG1 — G2 ;全域无碰 撞的杂凑函数H = IOaK^G1 ;任意一种安全的基于身份的数字签名算法(JG,JE,JS,JV); 可信第三方的公钥Ppub = sP,其中s为可信第三方的私钥;其中所述签名者拥有的签名私钥 Xs由算法JE生成,其验证公钥Qs = H⑶,S为签名者身份;其中所述验证者拥有的陷门私 钥为XK = SQe,公开的变色龙公钥Qk = H(R),R为验证者的身份;其中所述签名者使用签名 私钥和变色龙公钥计算数字内容的变色龙数字签名时,所签署的消息为we ,签名者选择 随机整数《 ^ Ζ;,生成比特串I,计算变色龙杂凑值H,该变色龙杂凑值H的计算方法涉及比 特串I,消息m,生成元P,整数α。
2.根据权利要求1所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在 于所述变色龙杂凑值H的计算方法为H= aP+mH(I))。
3.根据权利要求1所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在 于所述比特串I包含签名者身份信息、验证者身份信息以及签名者和验证者协商好的时间 信息或者序列号信息。
4.根据权利要求2所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在 于所述签名者使用签名私钥和变色龙公钥计算数字内容的变色龙数字签名按如下步骤生 成(1)签名者使用签名私钥xs,使用数字签名算法JS,对变色龙杂凑值H签名,获得签名 值^S%(H);(2)签名者使用变色龙公钥Qk,可信第三方公钥Ppub,整数α,对映射函数e,计算群G1 的元素α P和群G2的元素e ( α Ppub,Qe);(3)签名者生成的关于消息m的签名为(aP,e(aPpub, Qe), δ)。
5.根据权利要求4所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在 于所述验证者使用签名者公开的验证公钥、变色龙公钥和陷门私钥来验证变色龙数字签名 的正确性时按照以下步骤(1)验证者首先利用签名的第一个元素aP和私钥sQK计算e ( a P,sQE);(2)比较签名的第二个元素e( a Ppub,Qr)与权利要求5步骤⑴中计算得到的值e ( a P, SQe)是否相同,如果不同则认为该签名为假,否则继续判断;(3)验证者生成比特串I;(4)使用消息m计算mH⑴;(5)验证者使用签名的第一个元素和计算所得到的mH(I)来计算变色龙杂凑值H= α P+mH(I)(6)验证者使用签名者的身份S,权利要求5步骤( 中所得的变色龙杂凑值H,根据基 于身份的数字签名验证算法JV所定义的验证过程来验证签名δ的正确性。如果签名验证 失败则认为签名为假,否则认为签名为真。
6.根据权利要求5所述的一种生成和验证数字内容的变色龙数字签名方法,其特征在 于所述签名者向可信第三方否认验证者生成的变色龙签名(a*P,e(a*Ppub,QK),δ)时,可 以通过下述步骤向可信第三方否认变色龙签名(1)签名者向可信第三方展示关于消息m的部分变色龙签名值(aP,e(aPpub,QK))、消 息m、以及aP和e(aPpub,QK)具有相同的整数α的证据,或者向可信第三方展示关于消息 m的部分变色龙签名值(ga,_^)、消息m是群元素H-aP以H(I)为底的椭圆曲线离散对数 的知识证明、以及aP和e(aPpub,QK)具有相同的整数α的证据;(2)如果签名者提供了消息m,可信第三方检查如果验证者提供的变色龙签名所签署 的消息与m不同,H= aP+mH(I),而且验证a P和e ( a Ppub,Qk)具有相同的整数α的证据 后认定为正确,就可以判定提交给可信第三方的变色龙签名为假;如果签名者没有提供消 息m,可信第三方检查aP兴a*P,并且验证m是群元素H-aP以H(I)为底的椭圆曲线离 散对数的知识证明后认定为正确,验证aP和e(aPpub,A)具有相同的整数α的证据后认 定为正确,就可以判定提交给可信第三方的变色龙签名为假。
全文摘要
本发明涉及一种基于身份的变色龙数字签名的方法。该方法采用特殊的具有三个陷门的变色龙杂凑函数,采用指数相等的知识证明技术,在双线性Diffie-Hellman问题困难的假设下实现了基于身份的无密钥泄露的变色龙数字签名。解决了背景技术中不存在基于身份的无密钥泄露的变色龙数字签名方法,无法利用基于身份的密码体制密钥管理简单这一优点的问题。
文档编号H04L9/30GK102045164SQ20091019320
公开日2011年5月4日 申请日期2009年10月20日 优先权日2009年10月20日
发明者张方国, 田海博, 陈晓峰, 陈满祥 申请人:广州信睿网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1