一种无指数运算的快速数字签名技术的制作方法

文档序号:7952039阅读:132来源:国知局
专利名称:一种无指数运算的快速数字签名技术的制作方法
技术领域
本发明属于信息安全领域,特别涉及一种可证明安全性的快速公开密钥数字签名技术。
背景技术
公开密钥数字签名技术是信息安全的核心技术之一,开发具有自主知识产权的、可证明安全性的数字签名技术是我国信息技术科研人员近年来的一个重点研究领域。国际上迄今在该领域中提出的主流技术有四大类第一类基于因数分解问题,如RSA;第二类基于离散对数问题,如ElGamal;第三类为上述两类在椭圆曲线上的变种,统称为椭圆曲线数字签名技术;第四类基于格中最短向量问题,如NTRU。
基于因数分解问题的技术简称为IFP技术,是经典的公开密钥技术之一,目前仍在国际上获得广泛应用。国内虽已开始推广椭圆曲线等其它公开密钥技术,但RSA产品仍在市场上占有压倒性的份额。现有的IFP技术,包括RSA,均采用大指数乘方运算实现数据的签名操作,其运算量很大,国外早在二十年前就开始研究如何实现无指数运算的IFP数字签名技术,但迄今还没有见到可用的成果。本发明在这方面取得重要突破,具有国际领先水平。

发明内容
本发明需要解决的问题是研究出一种新的IFP公钥数字签名技术,使得签名的产生与验证过程均不涉及指数运算。本发明的目的,是采用如下技术实现的,其特征是(a)采用如下(1),(2),(3)三式计算(x1,y1,x2,z)作为信息m的签名x1=2-1[k1+h(m,z)k1-1](mod n),(1)y1=2-1β1-1[k1-h(m,z)k1-1](mod n),x2=2-1[k2+h(m,z)k2-1](mod n),(2)z=k1k2-1+k2k1-1(modn),(3)
其中n是两个秘密大素数的乘积,即RSA模数,k1和k2是两个小于n且与n互质的随机整数,h是密码学意义的散列(hash)函数,β1是一个小于n且与n互质的秘密整数,也是签名者的私钥;(b)采用如下(4),(5)两式验证(x1,y1,x2,)是否信息m的合法签名x12-α1y12=h(m,z)(modn),---(4)]]>h(m,z)z2-4x1x2z+4[x12+x22-h(m,z)]=0(modn),---(5)]]>其中n,h的意义同上,α1是一个小于n的公开整数,也是签名者的公钥;(c)同一个签名者的私钥与公钥之间满足如下(6)式确定的关系α1=β12(modn)---(6)]]>以上(4)式为著名的OSS方程,按(1)可算出其解。由(1),(2),(3)和(6)也不难推出(5),推导要点如下k1k2+[h(m,z)]2k1-1k2-1+h(m,z)(k1k2-1+k2k1-1)]]>=[k1+h(m,z)k1-1][k2+h(m,z)k2-1](modn),---(7)]]>{k1k2+[h(m,z)]2k1-1k2-1}(k1k2-1+k2k1-1)]]>=k12+[h(m,z)]2k1-2+k22+[h(m,z)]2k2-2(modn).]]>故有z[4x1x2-h(m,z)z]=4[x12+x22-h(m,z)](modn).---(8)]]>整理上式即可获得(5)。
本发明的有益效果是(a)安全机理与传统IFP算法相同,可依托随机预言盒模型(Random Oracle Model)证明其安全性,投入实际应用的成熟度高,且同时具有传统IFP数字签名技术无可比拟的高效率;若假定n的长度为1024比特,其速度比RSA高出三百多倍,特别适合在移动电子设备如手机、掌上电脑(PDA)的通讯中实现信息认证与信息源认证,按摩尔定律推算(芯片的计算能力18个月翻一番),RSA签名算法至少要在12年之后才能以同样的代价达到本发明目前的速度;(b)能够实现基于身份的数字签名,特别适合在电子政务应用中实现印章和手工签名图像与公文的绑定,只要在上述图像数据后缀加针对全文的、基于授权人身份的数字签名,无需安全认证中心(CA)的支持即可防止公文内容的篡改和印章、手工签名图像的挪用;c)能够实现基于化名的数字签名,特别适合在电子投票(e-voting)、电子民调(e-polling)等电子政务(或电子民主)应用中实现匿名认证。


附图1-9是本发明三类具体实施方案的程序流程图,附图10是基于本发明的一个电子投票应用系统流程图,图11是一个带有印章的证书例子,用于说明如何利用基于身份的数字签名实现印章和手工签名图像与文件内容的绑定。
五、具体实施方案本发明的实施方案有如下三类第一类按标准公钥数字签名体系实施;第二类按基于身份的数字签名体系实施;第三类按基于化名的数字签名体系实施。
以下结合附图,对三类具体实施方案的特征进行说明。
第一类实施方案的特征是初始化时各用户自己产生两个秘密的大数素p、q,计算n=pq,再产生一个介于1和n之间,且与n互质的秘密整数β1作为私钥,并按(6)计算α1,然后公布公钥(n,α1),程序流程如图1所示;对信息m进行签名时先产生两个介于1和n之间且与n互质的秘密整数k1和k2,再按(1),(2)和(3)计算x1,y1,x2,z,程序流程如图2所示;验证签名时可直接把信息m及其签名值x1,y1,x2,z代入(4)和(5)两个公式,根据签名者的公钥(n,α1)判定公式两边是否相等,若相等,则接受签名,否则予以拒绝,程序流程如图3所示。注意在第一类实施方案中,p、q在初始化完成后即可以销毁。
第二类实施方案的特征是系统初始化时由系统权威机构(SA)产生两个秘密的大数素p、q,p(mod 4)=q(mod4)=3,计算n=pq,并公布n,而p、q则由SA保管,作为系统主密钥,程序流程如图4所示;用户初始化时向SA提交其用于身份标识s(可以是邮件地址、姓名和住址、身份证号等),由SA先按如下(9),(10),(11)三式计算τ和α1S1=h(S),S3=h(s1),S5=S1S3(modn),(9)S2i=-S2i-1(mod n),i=1,2,3,Ji1=sip-12(modp),i=1,2,···6,---(10)]]>Ji2=siq-12(modq),i=1,2,···6,]]>
τ=min{iJi1=Ji2=1},(11)α1=sτ,再利用系统主密钥计算满足(6)的β1作为基于身份的私钥,并将其和τ一起反馈给用尸用于对信息进行签名,程序流程如图5所示;对信息m进行签名的过程与第一类实施方案相同,但需要把τ附加在x1,y1,x2,z之后,程序流程如图6所示;验证签名时需要先根据签名者的身份s和附加在签名后的τ从(9)和(11)算出α1,再采用与第一类实施方案相同的方法判定其真伪,程序流程如图7所示。注意在第二类实施方案中,利用(9),(10)和(11)算出的α1必定为模-n平方剩余(QR)。
第三类实施方案的特征是系统初始化过程与第二类实施方案相同;用户初始化时先自选化名d1,化名可以是限定长度的文字段或可显字符串,并按如下(12),(13)两式计算相应的盲化数据γγ1=b12(d3+b3)(modn),]]>γ2=b22(d4+b4)(modn),---(12)]]>γ=γ1||γ2,]]>其中‖代表串接操作,d3=h(d1),d4=h(d3),(13)b1,b2,b3,b4∈B,为用户产生的四个盲化因子,B是Zn的子集,为了保证盲化因子不会泄漏,B应该足够大;用户随后向SA提交γ,由SA先按(10),(11)和如下(14)式计算τs1=γ1+ω(mod n),s3=γ2+ω(mod n),(14)s5=s1s3(mod n),s2i=-s2i-1(mod n),i=1,2,3,其中ω是SA产生的一个随机数,再利用系统主密钥计算满足如下方程(15)的σ值
σ2=sτ]]>=γ1+ω(modn),ifτ=1,-(γ1+ω)(modn),ifτ=2,(γ2+ω)(modn),ifτ=3,-(γ2+ω)(modn),ifτ=4,(γ1+ω)(γ2+ω)(modn),ifτ=5,-(γ1+ω)(γ2+ω)(modn),ifτ=6,---(15)]]>并将ω,σ和τ一一起反馈给用户;而用户则先根据ω和τ计算化名后缀d3=(δ1,δ2,τ),其中δ1,δ2由如下(16)式给出δ1=b3+b1-2ω(modn),---(16)]]>δ2=b4+b22ω(mod n),再根据如下(17)式计算基于化名的私钥β1β1=]]>=b1-1σ(modn),ifτ=1,b1-1σ(modn),ifτ=2,b2-1σ(modn),ifτ=3,b2-1σ(modn),ifτ=4,b1-1b2-1σ(modn),ifτ=5,b1-1b2-1σ(modn),ifτ=6,---(17)]]>其程序流程如图8所示;对信息m进行签名的过程与第二类实施方案相同;验证签名时需要先根据签名者的化名d1及其后缀d2,d2=(δ1,δ2,τ)按(13)式和如下(18)式算出α1:
α1=β12=]]>b1-2σ2=d3+δ1(modn),ifτ=1,b1-2σ2=-d3-δ1(modn),ifτ=2,b2-2σ2=d4+δ2(modn),ifτ=3,b2-2σ2=-d4-δ2(modn),ifτ=4,b1-2b2-2σ2=(d3+δ1)(d4+δ2)(modn),ifτ=5,b1-2b2-2σ2=-(d3+δ1)(d4+δ2)(modn),ifτ=6,---(18)]]>再采用与第一一类实施方案相同的方法判定其真伪,程序流程如图9所示。
六、应用例子我们先以一个电子投票系统为例,说明本发明第三类实施方案的应用。该系统包括如下角色CA即安全认证中心,负责认证系统涉及的所有常规公开密钥;VC计票者,负责电子票的收集、检验、计票以及最终结果的公布;VM监票者,负责争议票的鉴定和最终结果的确认。
投票过程分为两个阶段,如图10所示。为便于叙述,在以下讨论中化名d1加上其后缀d2后仍简称为化名d,d=(d1,d2),我们同时以[M,K]表示对信息M进行加密的操作,此时K代表公钥,以及对信息M进行签名的操作,此时K代表私钥。
第一阶段为注册阶段,可细分为如下四步第一步,投票者向SA发送注册信息Iv‖γ‖[γ,Vd],其中Iv为其真实身份,(Ve,Vd)为其常规公开密钥对,γ的计算方法由本发明的第三类实施方案给出,为便于管理,可对投票者进行分组,并规定各分组成员的化名必须带有分组标记第二步,SA在CA的支持下对注册信息进行检验,以确定该注册没有重复且签名[γ,Vd]合法;第三步,SA确认注册有效之后,将其纪录在案,并根据本发明的第三类实施方案计算ω,σ和τ, 将其反馈给用户;第四步,用户根据本发明的第三类实施方案计算基于化名的私钥;第五步,SA在注册阶段结束之前按分组公布所有注册信息。
第二阶段为投票阶段,分为如下两步第一步,投票者通过匿名方式把以下(19)式所代表的电子票投入票箱(d‖vote)‖[(d‖vote),Vs],(19)其中d为投票者的化名,Vs为基于化名的私钥,即按(17)式算出的β1值;第二步,VC检验每张电子票以确定签名[(d‖vote),Vs]合法,并剔除同一个化名对应的重复投票,VC在计票结束后把各个分组的有合法票与最终结果一起公布。
注意各分组的公布票数不得高于公布的注册人数,否则VC将提请VM对该分组的电子票进行鉴定。鉴定机制要求投票者在使用基于化名的私钥对电子票进行签名时,按如下(20)式计算(1)、(2)、(3)式中的k1和k2k1=msκ,(20)k2=[...[[κ,Me1],Me2],...Met],
其中Me1,Me2,...Met是各VM的公钥,[...[κ,Me1],Me2],...Met]表示采用上述公钥对κ进行洋葱式的非对称加密,msκ表示对称加密,κ是一个随机选择的对称密钥,ms是一份隐藏的采用常规数字签名的投票内容拷贝,mv=(Iv‖d‖vote)‖[(Iv|d‖vote),Vd]。(21)我们再以一个文本证书为例,说明如何利用基于身份的数字签名实现印章和手工签名图像与文件内容的绑定。附图11中的证书可以采用如下的XML语法表示<Doc attach=1>
<Contents count=4>
<Title>证书</Title>
<Text>郑建德同志</Text>
<Text>您当选为中国互联网协会第一届理事会常务理事,特发持证</Text>
<Text>2001年5月25日</Text>
</Contents>
<Seal name=“中国互联网协会”,Img=“isc_seal.jpg”,Signature=isc_sig.pem>
<Auth name=“张秘”,Signature=zhang_sig.pem/>
<Date dt=“05-25-2001”,Stamp=time_stamp.pem/>
</Seal>
</Doc>
其中isc_seal.jpg存放中国互联网协会公章的图像,isc_sig.pem存放的是Contents元素全部内容和isc_seal.jpg二进制代码连在一起的基于身份的数字签名,产生该签名的私钥是当s=“中国互联网协会”时,根据(6),(9),(10),(11)计算的β1,同样,用印人张秘的数字签名也是基于身份的,产生该签名的β1值是以s=“张秘”计算出来的。在电子政务中,一个公文往往需要加盖几个甚至几十个公章,由几个人甚至几十个人批阅。采用以上方法实现这些印章和批阅人于工签名图像与文件内容进行绑定比基于CA的类似方法优越,因为后者的数字签名验证需要与CA进行大量的通信,或在文件后附加大量的数字证书。
权利要求
1.一种快速公开密钥数字签名算法,其特征在于(a)采用如下(1),(2),(3)三式计算(x1,y1,x2,z)作为信息m的签名x1=2-1[k1+h(m,z)k1-1](modn),---(1)]]>y1=2-1β11[k1-h(m,z)k1-1](modn),]]>x2=2-1[k2+h(m,z)k2-1](modn),---(2)]]>z=k1k21+k2k11(modn),---(3)]]>其中n是两个秘密大素数的乘积,即RSA模数,k1和k2是两个小于n且与n互质的随机整数,h是密码学意义的散列(hash)函数,β1是一个小于n且与n互质的秘密整数,也是签名者的私钥;(b)采用如下(4),(5)两式验证(x1,y1,x2,)是否信息m的合法签名x12-α1y12=h(m,z)(modn),---(4)]]>h(m,z)z2-4x1x2z+4[x12+x22-h(m,z)]=0(modn),---(5)]]>其中n,h的意义同上,α1是一个小于n的公开整数,也是签名者的公钥;(c)同一个签名者的私钥与公钥之间满足如下(6)式确定的关系α1=β12(modn).---(6)]]>
2.如权利要求1所述数字签名算法的基于身份的实施方案,其特征在于(4)中的α1按如下(9),(10),(11)三式计算(其中s为用户身份标识)s1=h(s),s3-h(s1),s5=s1s3(mod n),(9)s2i=-s2i-1(mod n),i=1,2,3,Ji1=Sip-i2(modp),i=1,2,...6,---(10)]]>Ji2=Siq-12(modq),i=1,2,...6,]]>τ..min{iJi1=Ji2=1},(11)α1=st2
3.如权利要求1所述数字签名算法的基于化名的实施方案,其特征在于(4)中的α1按如下(18)式计算α1=β12=]]>=b1-2σ2=d3+δ1(modn),ifτ=1,b1-2σ2=-d3-δ1(modn),ifτ=2,b2-2σ2=d4+δ2(modn),ifτ=3,b2-2σ2=-d4-δ2(modn),ifτ=4,b1-2b2-2σ2=(d3+δ1)(d4+δ2)(modn),ifτ=5,b1-2b2-2σ2=-(d3+δ1)(d4+δ2)(modn),ifτ=6,---(18)]]>对应的基于化名的私钥β1根据如下(17)式计算β1=]]>=b1-1σ(modn),ifτ=1,b1-1σ(modn),ifτ=2,b2-1σ(modn),ifτ=3,b2-1σ(modn),ifτ=4,b1-1b2-1σ(modn),ifτ=5,b1-1b2-1σ(modn),ifτ=6,---(17)]]>以上两式中的d3和d4按如下(13)式计算d3=h(d1),d4=h(d3),(13)其中d1是用户自选的化名,τ依据(10),(11)和如下(12),(14)式计算γ1=b12(d3+b3)(modn),]]>γ2=b22(d4+b4)(modn),---(12)]]>γ=γ1‖γ2,s1=γ1+ω(mod n),s3=γ2+ω(mod n)(14)s5=s1s3(mod n),s2i=-s2i-1(mod n),i=1,2,3,其中ω是SA产生的一个随机数,b1,b2,b3,b4是用户产生的四个盲化因子,δ1,δ2由如下(16)式给出δ1=b3+b1-2ω(mod n),(16)δ2=b4+b2-2ω(mod n),σ值满足如下方程(15)σ2=Sτ]]>=γ1+ω(modn),ifτ=1,-(γ1+ω)(modn),ifτ=2,(γ2+ω)(modn),ifτ=3,-(γ2+ω)(modn),ifτ=4,(γ1+ω)(γ2+ω)(modn),ifτ=5,-(γ1+ω)(γ2+ω)(modn),ifτ=6,---(15)]]>
4.如权利要求1所述的数字签名算法或权利要求3所述的签名实施方案支撑的电子投票系统,其特征在于电子票内容由如下(19)式给出(d‖vote)‖[(d‖vote),Vs],(19)其中[(d‖vote),Vs]为利用Vs产生的关于(d‖vote)的数字签名,vote为投票内容,d=(d1,d2),d1为投票者的化名,d2=(δ1,δ2,τ)为化名后缀,Vs为权利要求3所定义的基于化名的私钥,γ,τ,δ1,δ2均按权利要求3所述的方法计算,(1)、(2)、(3)式中的k1和k2按如下(20)式计算k1=msκ2(20)k2=[...[[κ,Me1],Me2],...Met],其中Mel,Me2,...Met是各监票者的公钥,[...[[κ,Me1],Me2],...Met]表示采用上述公钥对κ进行洋葱式的非对称加密,msκ表示对称加密,κ是一个随机选择的对称密钥,ms是一份隐藏的采用常规数字签名的投票内容拷贝。
全文摘要
一种无指数运算的可证明安全性的快速数字签名技术,其安全机理与传统的基于因数分解问题(IFP)的数字签名技术相同,投入实际应用的成熟度高,且同时具有传统IFP技术无可比拟的高效率,若假定n的长度为1024比特,则其速度比RSA高出三百多倍,特别适合在移动电子设备如手机、掌上电脑(PDA)的通讯中实现信息认证与信息源认证,按摩尔定律推算(芯片的计算能力18个月翻一番),RSA签名算法至少要在12年之后才能以同样的代价达到本发明目前的速度。本发明也能够实现基于身份的数字签名,特别适合在电子政务应用中实现印章和手工签名图像与公文的绑定,只要在上述图像数据后缀加针对文件全文的、基于授权人的身份的数字签名,无需安全认证中心(CA)的支持即可防止公文内容的篡改和印章、手工签名图像的挪用。本发明还能够实现基于化名的数字签名,特别适合在包括电子投票(e-voting)、电子民调(e-polling)等电子政务(或电子民主)应用中实现匿名认证。
文档编号H04L9/32GK101018126SQ200610003418
公开日2007年8月15日 申请日期2006年2月6日 优先权日2006年2月6日
发明者郑建德 申请人:郑建德
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1