无证书部分盲签名方法

文档序号:7943311阅读:341来源:国知局
专利名称:无证书部分盲签名方法
技术领域
本发明属于信息安全技术领域,涉及一种无证书部分盲签名方法,适用于数字签名与认证中,尤其适用于电子现金交易和电子选举中。
背景技术
数字签名作为保障网络信息安全的手段之一,可以有效解决网络信息传输中的伪造、抵赖、冒充和篡改问题,是实现电子交易安全的核心技术之一,在保证交易的安全性、真实性以及不可否认性等方面具有重要的应用。在密钥分配、电子银行、电子政券、电子商务和电子政务等领域均有重要的应用价值。然而在某些特殊的情况,消息拥有者既想让签名者对他所拥有的信息签名,又不想让签名者知道信息的内容,同时签名者并不在意他签署的内容,只是想让别人知道他签署过这条消息。为了解决这个问题,1982年Chaum首先提出了盲签名的概念,简单地说,盲签名是一种特殊类型的数字签名,它是一个双方协议先由签名请求者对原始信息进行盲化,然后发送给签名者;签名者对盲化后的信息进行签名并返还给签名请求者; 签名请求者去盲化,最终得到签名者关于原始信息的正确签名。由于盲签名协议能够通过盲变换有效地隐藏身份信息,因此其广泛地应用于既需要认证消息的有效性又需要保证匿名性的场合,比如电子选举和电子现金的应用中。Abe和Fujisaki在Advances in Cryptology-Asiacrypt‘ 96首先提出了部分盲签名的概念,部分盲签名允许签名者在签名中嵌入一个和用户一起协商的公共信息。Siamir在1984年首先提出了基于ID的密码系统IBC。在这个系统中,用户可以使用自己的身份作为公钥。与传统密码系统相比,IBC系统简化了整个密钥管理过程,但是它却引入另外一个问题-密钥托管问题,即私钥生成中心PKG知道所有用户的私钥,从而可以伪造任何用户的签名。为了解决IBC系统固有的密钥托管问题,在2003年的亚洲密码学会议上,A^iyami和I^aterson提出了无证书的公钥密码系统CL-PKC,在CL-PKC系统中,密钥生成中心KGC不再拥有用户的完整私钥,它只提供用户的部分私钥,另外一部分私钥为用户自己选取的秘密值,从而解决了密钥托管问题。盲签名协议与CL-PKC系统的结合一直是该领域学者研究的重点,然而直到近年来,仍然只有较少的无证书部分盲签名方案被提出,但大部分计算复杂度高,实用性差。例如,C. j. Wang在A Certificateless Restrictive Partially Blind Signature Scheme中提出了无证书限制性部分盲签名方案并给出了一个简要的安全证明。但是该方案由于算法复杂,执行效率较低,因而实用性较差。

发明内容
本发明的目的在于克服上述已有技术的不足,提出一种计算简单、执行效率高的无证书部分盲签名方法,以改善其实用性能。为了达到上述目的,本发明将部分盲签名协议和无证书的公钥密码系统CL-PKC结合,使得签名方法既消除了对证书的需求,又无密钥托管的弊端,还具有部分盲性,同时简单高效,安全性好。其实现步骤包括如下(1)建立一个系统参数(G1, q,1,P,G2, e,H,h,QpkJ其中,<G1;+>是一个阶为素数q的循环加法群;1是安全系数,q > 21 ;P是G1的生成元,· >是一个阶为素数q的循环乘法群;e是一个双线性对映射,将G1中的任意两个元素,映射到&上的一个元素,MG1A1) -G2 ;H和h是两个无碰撞安全杂凑函数,H是将长度不等的0/1序列映射到Gl上的一个元素的杂凑函数,H:{0,1}*-G1 ;h是将长度不等的0/1序列映射到mod q的整数乘法群上的一个元素的杂凑函数,Α:{Ο, Γ —Ζ: ; Qpkg是密钥生成中心PKG的公钥;(2)签名者从mod q的整数乘法群<中随机选取一个整数S1作为他的部分私钥;(3)签名者计算% = S1P作为他的部分公钥;(4)密钥生成中心PKG获取签名者的身份信息id和部分公钥Q1,计算签名者的另外一部分公钥% = H (id,Q1)和另外一部分私钥& = SPkgq2,并将&通过安全认证信道发送给签名者,使签名者获得其私钥对(Sl,S2)和公钥对Oi1, Q2);(5)签名者从mod q的整数乘法群<中随机选取三个不相等的整数k、c和d,计算一次性随机信息a = e (Q2, Qpkg) k和一次性保护信息B = cP+dZ,并将(a,B)发送给签名请求者,其中Z = Η(α,P)是公共信息α的承诺信息;(6)签名请求者从循环加法群Gl中随机选取一个整数Tl,从mod q的整数乘法群中<随机选取三个不相等的整数t2,t3,t4,计算待签名信息β的承诺信息ζ = MwpA^z), 及Y的盲化信息τ = Y-Vt4 mod q,并将τ发送给签名者,其中^ =…^(?;,外^他沿)'2, Ψ = B+t3P+t4Z是对公钥隐藏信息a和保护信息B的验证信息;(7)签名者进行盲签名,即计算签名后的盲化信息ν = τ-d mod q和签名后的验证信息U = kS2-VSlQ2,并将(U,ν, c, d)作为盲签名发送签名者;(8)签名请求者对接收到的盲签名(U,v,c,d)进行去盲,即计算Ω = U+Ti; ω = v+t2 mod q,Δ = (c+t3)P 和 δ = d+t4 mod q,并将(Ω,ω,Δ,δ)作为签名者对公共信息α和待签名信息β的签名信息,其中Ω是去盲后的验证信息,ω是对去盲后的盲化信息,Δ是去盲后的部分签名验证信息,δ是去盲后的另外一部分签名验证信息;(9)验证者收到身份信息为id的签名者对公共信息α和待签名信息β的签名信息(Ω,ω, Δ, δ)后,验证 ω+δ = h (e (Ω,P) · e(Q2, Q1KP^,Δ + δΖ,Ζ) mod q 是否成立,若该式成立则通过验证,否则失败。本发明具有以下优点⑴安全性好本发明中的无证书部分盲签名方法通过采用无证书的公钥密码系统CL-PKC,消除了签名方案对证书的需求;而在CL-PKC中,签名者自己生成部分私钥和公钥,密钥生成中心PKG生成另外一部分私钥和公钥,从而解决了密钥托管的问题,因为PKG只有签名者的部分私钥; 本发明中的无证书部分盲签名方法通过将密钥生成以及签名、验证过程建立在循环群上,而循环群上的CDH难题,为本发明中的签名方法提供安全保证;在随机预言机模型下,该方法被证明能够抵抗适应性选择消息攻击和ID攻击下的存在性伪造。
(2)具备部分盲性本发明中的无证书部分盲签名方法通过在签名过程中嵌入公共信息α,使其具有部分盲性,以消除全盲签名的弊端。(3)执行效率高本发明中的无证书部分盲签名方法需要进行G1上的加法运算和乘法运算,mod q 的整数乘法群<上的乘法运算,G2上的指数运算以及G1到(;2的双线性映射对运算e ;其中以对运算e,G2上的指数运算,G1上的乘法运算这三种运算最复杂,所以其数量是执行性能方面的关键因素,本发明通过采用杂凑函数& {0,1}'—<将签名和验证过程中的部分步骤建立在 < 上以减少这三种运算的数量,从而提高了执行效率。


图1是本发明的数字签名流程图;图2是本发明的密钥生成子流程图。
具体实施例方式参照图1,本发明是一种无证书部分盲签名方法,其实施步骤为步骤1,密钥生成中心PKG建立系统参数,具体步骤如下(Ia)根据安全需要,确定安全系数1和素数q的大小,利用椭圆曲线构造满足双线性映射e (G1, G1) — G2的循环加法群<G1; +>和循环乘法群<G2,· >,简便起见,本实施例选用美国国家标准技术局NIST所推荐的素数域上的P-192椭圆曲线;(Ib)选择以下无碰撞杂凑函数H {0,1}* — Gl和&{Ο, Γ —Z:,本实施例选用杂凑函数SHA-I ;(Ic)从mod q的整数乘法群<中随机选取一个整数^ffi作为自己的私钥,并计算 Qpkg = SpkgP作为自己的公钥;(Id)公开系统参数{G1; q,1,P,G2, e, H,h,QpkJ,并将sPKe作为秘密保存;步骤2,签名者的密钥生成参照图2,本步骤的具体实现如下(2a)签名者从mod q的整数乘法群<中随机选取一个整数S1作为他的部分私钥;(2b)签名者计算% = S1P作为自己的部分公钥;(2c)密钥生成中心PKG获取签名者的身份信息id和部分公钥%后,计算签名者的另外一部分公钥% = H(id,Q1)和另外一部分私钥& = SpkgQ2,并将&通过安全认证信道发送给签名者,使签名者获得其私钥对(Sl,S2)和公钥对Oi1, Q2)。步骤3,签名者进行签名签名方案涉及到一个签名者和签名请求者之间的交互过程,包括如下步骤(3a)协商公共信息签名者从mod q的整数乘法群<中随机选取三个整数k、c和 d,计算一次性随机信息a = e(Q2, Qpkg) k和一次性保护信息B = cP+dZ,并将(a, B)发送给签名请求者,其中α是公共信息,Z = Η(α,P)是α的承诺信息;(3b)待签名信息盲化签名请求者从G1中随机选取T1,从mod q的整数乘法群<中随机选取三个整数t2、、和、,计算待签名信息β的承诺信息Z = MwP/^,Ζ),及y的盲化信息τ = Y -t2-t4mod q,并将τ发送给签名者,其中识义他沿)'2,Ψ = B+t3P+t4Z是对信息(a,B)的验证信息;(3c)签名者进行盲签名即计算签名后的盲化信息ν = τ-d mod q和签名后的验证信息U = kS2-VSlQ2,并将(U,ν, c, d)作为部分盲签名发送签名者;(3d)签名请求者对接收到的盲签名(U,ν, c, d)进行去盲即计算Ω = U+Ti; ω =v+t2 mod q,Δ = (c+t3)P 和 δ = d+t4 mod q,并将(Ω,ω,Δ,δ)作为签名者对公共信息α和待签名信息β的签名信息,其中Ω是去盲后的验证信息,ω是对去盲后的盲化信息,Δ是去盲后的部分签名验证信息,δ是去盲后的另外一部分签名验证信息;步骤4,签名验证验证者收到身份信息为id的签名者对公共信息α和待签名信息β的签名信息 (Ω,ω,Δ,δ )后,验证 ω+δ = h (e ( Ω,P) · e(Q2, Q1KP^,Δ + δ Z,Ζ) mod q 是否成立, 若该式成立则通过验证,否则失败。本发明中的效果可通过以下仿真进一步说明为验证本发明中的无证书部分盲签名方法的执行效率,我们在PDA上进行了仿真运行,其运算数量与现有 A Certiffcateless Restrictive Partially Blind Signature Scheme方法中的运算数量进行比较,具体结果见下表1表1本方法与现有方法的运算数量比较
盲签名方法PEMA Certificateless Restrictive Partially Blind Signature Scheme 的方法9913本发明中的方法538表1中的符号“P”表示e上的对运算的数量,“E”表示( 上指数运算的数量,“M” 表示G1上乘法运算的数量。从表1中可以看出,本方法中的运算数量比A Certificateless Restrictive Partially Blind Signature kheme方法中的运算数量少,可知本方法在执行效率上比A Certificateless Restrictive Partially Blind Signature Scheme 方法高的多。
权利要求
1.一种无证书部分盲签名方法,包括如下步骤(1)建立一个系统参数(G1,q,1,P,G2, e, H,h,QpkJ其中,<G1; +>是一个阶为素数q的循环加法群;1是安全系数,q>2x ;P是G1的生成元,· >是一个阶为素数q的循环乘法群;e是一个双线性对映射,将G1中的任意两个元素,映射到&上的一个元素,MG1A1) -G2 ;H和h是两个无碰撞安全杂凑函数,H是将长度不等的0/1序列映射到G1上的一个元素的杂凑函数,H {0,1}*- G1 ;h是将长度不等的 0/1序列映射到mod q的整数乘法群<上的一个元素的杂凑函数,/κ {Ο, Γ —Ζ: ; QPKG是密钥生成中心PKG的公钥;(2)签名者从modq的整数乘法群<中随机选取一个整数S1作为他的部分私钥;(3)签名者计算%= S1P作为他的部分公钥;(4)PKG获取签名者的身份信息id和部分公钥%,计算签名者的另外一部分公钥% = H(IdjQ1)和另外一部分私钥& = sPK(A,并将&通过安全认证信道发送给签名者,使签名者获得其私钥对(si; S2)和公钥对(Q1, Q2);(5)签名者从modq的整数乘法群<中随机选取三个不相等的整数k、c和d,计算一次性随机信息a = ,QPKe)k和一次性保护信息B = cP+dZ,并将(a,B)发送给签名请求者, 其中Z = Η( α,P)是公共信息α的承诺信息;(6)签名请求者从循环加法群G1中随机选取一个整数T1,从modq的整数乘法群<中随机选取三个不相等的整数t2、t3*t4,计算待签名信息β的承诺信息r = Ζ),及γ 的盲化信息τ = Y-Vt4 mod q,并将τ发送给签名者,其中其中^ = ^(?;,外^他沿)'2, Ψ = B+t3P+t4Z是对公钥隐藏信息a和保护信息B的验证信息;(7)签名者进行盲签名,即计算签名后的盲化信息V=τ-d mod q和签名后的验证信息υ = K2-VS1Q2,并将(U,ν, c, d)作为盲签名发送签名者;(8)签名请求者对接收到的盲签名(U,v,c,d)进行去盲,即计算Ω=υ+ \,ω = v+t2 mod q,Δ = (c+t3)P和δ = d+t4 mod q,并将(Ω,ω,Δ,δ)作为签名者对公共信息α 和待签名信息β的签名信息,其中Ω是去盲后的验证信息,ω是对去盲后的盲化信息,Δ 是去盲后的部分签名验证信息,δ是去盲后的另外一部分签名验证信息;(9)验证者收到身份信息为id的签名者对公共信息α和待签名信息β的签名信息 (Ω,ω,Δ,δ )后,验证 ω+δ = h (e ( Ω,P) · e(Q2, Q1KP^,Δ + δ Z,Ζ) mod q 是否成立, 若该式成立则通过验证,否则失败。
2.根据权利要求1中所述的无证书部分盲签名方法,其中步骤(1)所述的建立一个系统参数,是由密钥生成中心PKG按如下步骤进行建立(Ia)根据安全需要,确定安全系数1和素数q的大小,利用椭圆曲线构造满足双线性映射e (G1, G1) — G2的循环加法群<G1; +>和循环乘法群<G2,· > ;(Ib)选取两个无碰撞安全杂凑函数H {0,1}* — G1和/κ{0, Γ —Z:;(Ic)从mod q的整数乘法群 < 中随机选取一个整数SpKe作为自己的私钥,并计算Qree = SpKeP作为自己的公钥;(Id)公布{G1; q,1,P,G2, e, H,h,QpkJ作为系统参数,并将Sree秘密保存。
全文摘要
本发明涉及一种无证书部分盲签名方法,主要解决现有技术中的部分盲签名方法实用性差的问题,其实现步骤是1)密钥生成中心从mod q的整数乘法群中随机选取一个整数sPKG作为自己的私钥秘密保存,并公开其系统参数{G1,q,l,P,G2,e,H,h,QPKG};2)签名者生成部分私钥s1和部分公钥Q1,密钥生成中心生成另外一部分私钥S2和公钥Q2,并通过安全认证信道发送给签名者,签名者取得其私钥对(s1,S2)和公钥对(Q1,Q2);3)签名者进行签名;4)验证者利用签名者的公钥对(Q1,Q2)验证签名的有效性。本发明既消除了对证书的需求,又无密钥托管的弊端,还具有部分盲性,同时简单高效,实用性和安全性好,可用于电子现金交易和电子选举中。
文档编号H04L9/30GK102387019SQ20111031775
公开日2012年3月21日 申请日期2011年10月19日 优先权日2011年10月19日
发明者何剑辉, 刘景伟, 孙蓉, 白宝明 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1