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

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

发明内容
本发明需要解决的问题是研究出一种新的IFP公钥数字签名技术,使得签名的产生与验证过程均不涉及指数运算。本发明的目的,是采用如下技术实现的,其特征是(a)采用如下(1),(2),(3),(4)给出的公式计算x1,y1,y1,y2,x3,y3,z1,z2x1=2-1(k1k2-1+k2k1-1)(modn),---(1)]]>y1=2-1β-1(k1k2-1-k2k1-1)(modn),]]>x2=2-1(h1-1k1k2+h1k1-1k2-1)(modn),---(2)]]>y2=2-1β-1(h1-1k1k1-h1k1-1k2-1)(modn),---(2)]]>
x3=2-1(h2-1k3k4+h2k3-1k4-1)(modn),]]>y3=2-1β-1(h2-1k3k4-h2k3-1k4-1)(modn),---(3)]]>z1=2-1(k1+k2)(1+h1k1-1k2-1)(modn),]]>z2=2-1(k3+k4)(1+h2k3-1k4-1)(modn),---(4)]]>其中n是两个秘密大素数的乘积,即RSA模数,k1,k2和k3是三个小于n且与n互质的随机整数,β是一个小于n且与n互质的秘密整数,也是签名者的私钥;(b)以上公式中的h1,h2按下式计算h1=f(m,y1),(5)h2=g(m,y2),其中m代表被签名的信息,f和g是密码学意义的哈希(hash)函数;(c)签名者的私钥与其公钥满足如下方程α=β2(mod n);(6)(d)签名算法输出(y1,y2,x3,y3,z1,z2)作为信息m的签名;(e)签名验证算法采用(5)中的公式和如下方程验证(y1,y2,x3,y3,z1, z2)是否为信息m的合法签名xi2-αyi2=1(modn),i=1,2,3,---(7)]]>z12=h1(x1+1)(x2+1)(modn),]]>z22=h2(x2+1)(x3+1)(modn),---(8)]]>其中α是签名者的公钥。
不难验证,按(1),(2)和(3)可算出(7)的解。此外,由(1),(2),(3)和(4)也不难推出(8),推导要点如下2(x1+1)=k1k2-1+k2k1-1+2]]>=k1-1k2-1(k1+k2)2(modn),]]>2h1(x2+1)=k1k2+h12k1-1k2-1+2h1]]>=k1-1k2-1(k1k2+h1)2(modn).]]>故有4h(x1+1)(x2+1)=k1-2k2-2(k1k2+h)2(k1+k2)2]]>=(1+k1-1k2-1h)2(k1+k2)2]]>=4z12(modn),]]>整理上式即可获得(8)中的第一个方程。同理可推导(8)中的第二个方程。
本发明的有益效果是(a)安全机理与传统IFP算法相同,可依托随机预言盒模型(Random Oracle Model)证明其安全性,投入实际应用的成熟度高,且同时具有传统IFP数字签名技术无可比拟的高效率;若假定n的长度为1024比特,其速度比RSA高出两个数量级,特别适合在移动电子设备如手机、掌上电脑(PDA)的通讯中实现信息认证与信息源认证;(b)能够实现基于身份的数字签名,特别适合在电子政务应用中实现印章和手工签名图像与公文的绑定,只要在上述图像数据后缀加针对全文的、基于授权人身份的数字签名,无需安全认证中心(CA)的支持即可防止公文内容的篡改和印章、手工签名图像的挪用。
实际应用中,也可以把签名简化为(y1,x2,y2,z1),以进一步提高效率。


附图1-5是本发明两类具体实施方案的程序流程图,附图6是一个带有印章的传统证件例子,用于说明如何利用基于身份的数字签名实现印章和手工签名图像与文件内容的绑定。
五、具体实施方案本发明的实施方案有如下两类第一类按标准公钥数字签名体系实施;第二类按基于身份的数字签名体系实施。
以下结合附图,对两类具体实施方案的特征进行说明。
第一类实施方案的特征是初始化时各用户自己产生两个秘密的大数素p、q,计算n=pq,再产生一个介于1和n之间,且与n互质的秘密整数β作为私钥,并按(6)计算α,然后公布公钥(n,α),程序流程如图1所示;对信息m进行签名时先产生两个介于1和n之间且与n互质的秘密整数k1,k2和k3,再按(1),(2),(3),(4)和(5)计算y1,y2, x3,y3,z1,z2,程序流程如图2所示;验证签名时可先根据(5)和(8)恢复x1,x2,再根据签名者的公钥(n,α)判定(7)中三个方程的两边是否相等,若相等,则接受签名,否则予以拒绝,程序流程如图3所示。注意在第一类实施方案中,p、q在初始化完成后即可以销毁。
第二类实施方案的特征是系统初始化时由系统权威机构(SA)产生两个秘密的大数素p、q,p(mod4)=q(mod4)=3,计算n=pq,并公布n,而p、q则由SA保管,作为系统主密钥,程序流程如图4所示;用户初始化时向SA提交其用于身份标识s(可以是邮件地址、姓名和住址、身份证号等),由SA先按如下(9),(10),(11)三式计算τ和α1s1=μ(s),s3=μ(s1),s5=s1s3(modn),(9)s2i=-s2i-1(modn),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)α=sτ,其中μ也是一个哈希函数,再利用系统主密钥计算满足(5)的β作为基于身份的私钥,并将其和τ一起反馈给用户用于对信息进行签名,程序流程如图5所示;对信息m进行签名的过程与第一类实施方案相同,但需要把τ附加在y1,y2,x3,y3,z1,z2之后;验证签名时需要先根据签名者的身份s和附加在签名后的τ从(9)和(11)算出α,再采用与第一类实施方案相同的方法判定其真伪。注意在第二类实施方案中,利用(9),(10)和(11)算出的α必定为模-n平方剩余(QR)。
六、应用例子我们以一个传统证件为例,说明如何利用基于身份的数字签名实现印章和手工签名图像与文件内容的绑定。附图6中的证书可以采用如下的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 nsme=“张秘”,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)计算的β,同样,用印人张秘的数字签名也是基于身份的,产生该签名的β值是以s=“张秘”计算出来的。在电子政务中,一个公文往往需要加盖几个甚至几十个公章,由几个人甚至几十个人批阅。采用以上方法实现这些印章和批阅人手工签名图像与文件内容进行绑定比基于CA的类似方法优越,因为后者的数字签名验证需要与CA进行大量的通信,或在文件后附加大量的数字证书。
权利要求
1.一种快速公开密钥数字签名算法,其特征在于(a)采用如下(1),(2),(3),(4)给出的公式计算x1,y1,x2,y2,x3,y3,z1,z2x1=2-1(k1k2-1+k2k1-1)(modn),---(1)]]>y1=2-1β-1(k1k2-1-k2k1-1)(modn),]]>x2=2-1(h1-1k1k2+h1k1-1k2-1)(modn),---(2)]]>y2=2-1β-1(h1-1k1k1-h1k1-1k2-1)(modn),]]>x3=2-1(h2-1k3k4+h2k3-1k4-1)(modn),]]>y3=2-1β-1(h2-1k3k4-h2k3-1k4-1)(modn),---(3)]]>z1=2-1(k1+k2)(1+h1k1-1k2-1)(modn),---(4)]]>z2=2-1(k3+k4)(1+h2k3-1k4-1)(modn),]]>其中n是两个秘密大素数的乘积,即RSA模数,k1,k2和k3是三个小于n且与n互质的随机整数,β是一个小于n且与n互质的秘密整数,也是签名者的私钥;(b)以上公式中的h1,h2按下式计算h1=f(m,y1), (5)h2=g(m,y2),其中m代表被签名的信息,f和g是密码学意义的哈希(hash)函数;(c)签名者的私钥与其公钥满足如下方程α=β2(mod n);(6)(d)签名算法输出(y1,y2,x3,y3,z1,z2)作为信息m的签名;(e)签名验证算法采用(5)中的公式和如下方程验证(y1,y2,x3,y3,z1,z2)是否为信息m的合法签名xi2-ayi2=1(modn),i=1,2,3,---(7)]]>z12=h1(x1+1)(x2+1)(modn),---(8)]]>z22=h2(x2+1)(x3+1)(modn),]]>其中α是签名者的公钥。
2.如权利要求1所述数字签名算法的基于身份的实施方案,其特征在于计算模数n=pq时,选取p(mod4)=q(mod4)=3,且计算用户公钥时(6)中的α按如下(9),(10),(11)三式计算(其中s为用户身份标识)s1=μ(s),s3=μ(s1),s5=s1s3(modn), (9)s2i=-s2i-1(modn),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)α=sτ,其中μ也是一个哈希函数。
全文摘要
一种无指数运算的可证明安全性的快速数字签名技术,其安全机理与传统的基于因数分解问题(IFP)的数字签名技术相同,投入实际应用的成熟度高,且同时具有传统IFP技术无可比拟的高效率,若假定n的长度为1024比特,则其速度比RSA高出两个数量级,特别适合在移动电子设备如手机、掌上电脑(PDA)的通讯中实现信息认证与信息源认证。本发明也能够实现基于身份的数字签名,特别适合在电子政务应用中实现印章和手工签名图像与公文的绑定,只要在上述图像数据后缀加针对文件全文的、基于授权人的身份的数字签名,无需安全认证中心(CA)的支持即可防止公文内容的篡改和印章、手工签名图像的挪用。
文档编号G06Q10/00GK101086755SQ20061009208
公开日2007年12月12日 申请日期2006年6月9日 优先权日2006年6月9日
发明者郑建德 申请人:郑建德
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1