一种快速公钥密码算法及其对应的数字签名的利记博彩app

文档序号:7763139阅读:439来源:国知局
专利名称:一种快速公钥密码算法及其对应的数字签名的利记博彩app
技术领域
本发明属于信息加密领域,特别涉及到一种快速公钥密码算法及其对应的数字签名。
背景技术
密码算法是信息安全的核心技术,重要的密码算法都被授予过专利。目前国际上使用较多的公钥密码算法主要有基于因数分解问题的RSA和Rabin公钥密码算法、基于离散对数问题的E1Gamal公钥密码算法以及基于椭圆曲线离散对数问题的公钥密码算法。研制具有自主知识产权的新的公钥密码算法这一课题的提出是因为(a)现有公钥密码算法多数依赖大指数乘方运算实现加、解密,计算量大,难以在简单设备如IC卡中实现;(b)采用现有公钥密码算法构成的公钥基础设施多数需要外部系统提供公钥目录支持及密钥备份支持,有些公钥密码算法虽有自托管能力或支持基于身份的加密,但实施难度大。

发明内容
本发明需要解决的技术问题是研究出一种新的公钥密码算法,使之(a)加、解密方法简单且高效;(b)允许用户通过追加简单的身份标识共享数字证书中的公钥值;(c)支持基于身份的加密和签名;(d)具有密钥自恢复能力。本发明的目的,是通过引入一个新的公钥密码函数实现的,其特征是(a)采用m=[m1,m2]T表示一个信息,其中m1,m2是两个正整数,m对应的密码为c=(m1b+m2Ab+A2b)ψ(m)-1(mod n),(1)其中A,b分别是一个2×2矩阵和一个2×1矩阵,ψ(m)是(m1+m2A+A2)(mod n)对应的行列式值,即ψ(m)=det(m1+m2A+A2)(mod n);
(b)A可分解为A=Hdiag(λ1,λ2)H-1(mod n),其中λ1≠λ2,其特征多项式为det(λI-A)=(λ-λ1)(λ-λ2)(mod n)=[λ2-(λ1+λ2)λ+λ1λ2](mod n)=(λ2-σ1λ+σ2)(mod n);(c)模数n取为若干大数素的积,如n=pq,p和q构成主密钥,λ1和λ2构成辅密钥,主密钥和辅密钥均可用于独立完成解密或签名;(d)摸数n为主公钥,A的特征多项式的系数为辅公钥,如果用户使用不同的摸数,则用户公钥由主公钥和辅公钥共同组成,即(n,σ1,σ2),如果所有用户使用相同的摸数,则用户公钥单独由辅公钥构成,即(σ1,σ2);(e)使用辅密钥解密时,根据λ1和λ2算得H和H-1,在(1)两边左乘H-1,使其成为H-1c=diag[(m1+m2λ1+λ12)ψ(m)-1,(m1+m2λ2+λ22)ψ(m)-1]H-1c(mod n)并通过约去分子和分母的共同因子将其简化,使之成为一个低难度方程组,进而求解。
本发明的有益效果是能够提高公钥密码体制的加、解密速度,使其得以在简单电子器件中实现,支持数字证书共享,并能够以较小代价支持基于身份的加密和签名,建立具有自托管能力的公钥基础设施。


附图是实施本发明所需要的模块及其相互之间逻辑关系的框图。
具体实施例方式
以下结合附图,对本发明的具体实施方法进行详细的说明。我们并对基本加、解密算法进行了一些简化和改进。(一)主密钥产生及公共摸数制作。该模块产生秘密素数p和q,并计算公共模数n=pq;(二)辅密钥制作及恢复。辅密钥利记博彩app有如下两种1.采用随机数发生器随机产生λ1和λ2,对应的辅公钥按如下两个公式计算
σ1=(λ1+λ2)(mod n), (2)σ2=(λ1+λ2)(mod n); (3)2.σ1和σ2根据用户身份选定,辅密钥(λ1,λ2)通过求解以下方程获得(λ2-σ1λ+σ2)(mod n)=0, (4)辅密钥的恢复方法与第二种辅密钥利记博彩app相同。在n的素数因子已知的条件下,已有公知的方法可用于求解方程(4)。(三)加密。本模块采用公钥实现信息加密。主要步骤有1.把信息分解为两个小于n的正整数m1和m2;2.按如下两个公式计算密码c=[c1c2]Tc1=(2m1+σ1m2+σ12-2σ2)ψ-1(m1,m2)(mod n), (5)c2=(m2+σ1)ψ-1(m1,m2)(mod n), (6)其中ψ(m1,m2)=[m12+σ1m1m2+σ2m22+(σ12-2σ2)m1+σ1σ2m2+σ22](mod n);(四)解密。本模块采用辅密钥实现信息解密,主要步骤有1.根据(2)和(3),把(5)和(6)改写为c1=[(m1+m2λ2+λ22)-1+(m1+m2λ1+λ12)-1](mod n),(7)(λ1-λ2)c2=[(m1+m2λ2+λ22)-1-(m1+m2λ1+λ12)-1](mod n),(8)通过对(7)和(8)两式进行相加和相减可得2(m1+m2λ2+λ22)-1(mod n)=[c1+(λ1-λ2)c2](mod n),(9)2(m1+m2λ1+λ12)-1(mod n)=[c1-(λ1-λ2)c2](mod n),(10)2.计算μ1={2[c1-(λ1-λ2)c2]-1-λ12}(mod n), (11)μ2={2[c1+(λ1-λ2)c2]-1-λ22}(mod n); (12)3.将(11)和(12)代入(9)和(10)获得(m1+m2λ1)(mod n)=μ1, (13)(m1+m2λ2)(mod n)=μ2; (14)4.从以上方程组中解出m1和m2,完成用户信息解密m1=(λ1-λ2)-1(λ1μ2-λ2μ1)(mod n), (15)m2=(λ1-λ2)-1(μ1-μ2)(mod n)。
(16)(五)数字签名。以下为签名步骤1.用m1,m2表示待签名信息;2.建立如下方程
m1=(2k1+σ1k2+σ12-2σ2)ψ-1(k1,k2)(mod n), (17)m2=(k2+σ1)ψ-1(k1,k2)(mod n), (18)其中ψ(k1,k2)=[k12+σ1k1k2+σ2k22+(σ12-2σ2)k1+σ1σ2k2+σ22](mod n);3.用(四)介绍的方法求解k1,k2,并以(k1,k2)作为对(m1,m2)的签名。(六)签名验证。以下为数字签名的验证步骤1.按以下公式由k1,k2算出z1,z2,z1=(2k1+σ1k2+σ12-2σ2)ψ-1(k1,k2)(mod n),(19)z2=(k2+σ1)ψ-1(k1,k2)(mod n), (20)其中ψ(k1,k2)=[k12+σ1k1k2+σ2k22+(σ12-2σ2)k1+σ1σ2k2+σ22](mod n);2.比较(z1,z2)和(m1,m2),如果相同,则接受签名,否则予以拒绝。(七)数字证书共享。实施要点为以模数n作为证书的公钥值,为不同用户选择不同的(σ1,σ2)并从(4)解得对应的(λ1,λ2),σ1和σ2为简单字符串,可通过电话、传真或网络手段提供给通信对方,也可作为用户名或二级用户名提供给系统。
权利要求
1.一种公钥密码算法,其特征在于(a)采用m=[m1,m2]T表示一个信息,其中m1,m2是两个正整数,m对应的密码为c=(m1b+m2Ab+A2b)ψ(m)-1(mod n),(1)其中A,b分别是一个2×2矩阵和一个2×1矩阵,ψ(m)=det(m1+m2A+A2)(mod n);(b)A可分解为A=Hdiag(λ1,λ2)H-1(mod n),其中λ1≠λ2;(c)模数n取为若干大数素的积,如n=pq,p和q构成主密钥,λ1和λ2构成辅密钥,主密钥和辅密钥均可用于独立完成解密或签名;(d)摸数n为主公钥,A的特征多项式的系数为辅公钥,如果用户使用不同的摸数,则用户公钥由主公钥和辅公钥共同组成,如果所有用户使用相同的摸数,则用户公钥单独由辅公钥构成;(e)使用辅密钥解密时,根据λ1和λ2算得H和H-1,在(1)两边左乘H-1,使其成为H-1c=diag[(m1+m2λ1+λ12)ψ(m)-1,(m1+m2λ2+λ22)ψ(m)-1]H-1c(mod n)并通过约去分子和分母的共同因子将其简化,使之成为一个低难度方程,进而求解。
2.如权利要求1所述的公钥密码算法的改进实施方法,其特征在于(a)明文为m=[m1m2]T,密码c=[c1c2]T按以下公式计算c1=(2m1+σ1m2+σ12-2σ2)ψ-1(m1,m2)(mod n), (5)c2=(m2+σ1)ψ-1(m1,m2)(mod n), (6)其中σ1和σ2满足σ1=(λ1+λ2)(mod n), (2)σ2=(λ1λ2)(mod n); (3)ψ(m1,m2)=[m12+σ1m1m2+σ2m22+(σ12-2σ2)m1+σ1σ2m2+σ22](mod n),n=pq,p和q为大数素;(b)摸数n为主公钥,(σ1,σ2)为辅公钥,如果用户使用不同的摸数,则用户公钥为(n,σ1,σ2),如果所有用户使用相同的摸数,则用户公钥为(σ1,σ2);(c)p和q构成主密钥,λ1和λ2构成辅密钥,主密钥和辅密钥均可独立完成解密和签名;(c)使用辅密钥解密时先根据(2)和(3),把(5)和(6)改写为c1=[(m1+m2λ2+λ22)-1+(m1+m2λ1+λ12)-1](mod n),(7)(λ1-λ2)c2=[(m1+m2λ2+λ22)-1-(m1+m2λ1+λ12)-1](mod n);(8)通过对(7)和(8)两式进行相加和相减获得如下两个新的方程2(m1+m2λ2+λ22)-1(mod n)=[c1+(λ1-λ2)c2](mod n),(9)2(m1+m2λ1+λ12)-1(mod n)=[c1-(λ1-λ2)c2](mod n),(10)并将他们转化为(m1+m2λ1)(mod n)=μ1, (13)(m1+m2λ2)(mod n)=μ2; (14)其中μ1={2[c1-(λ1-λ2)c2]-1-λ12}(mod n), (11)μ2={2[c1+(λ1-λ2)c2]-1-λ22}(mod n); (12)再求解(13)和(14)构成的线性方程组获得m1和m2。
3.如权利要求1或2所述的公钥密码算法对应的签名及其验证算法,其特征在于对信息签名时先求解如下联立方程获得k1,k2,m1=(2k1+σ1k2+σ12-2σ2)ψ-1(k1,k2)(mod n), (17)m2=(k2+σ1)ψ-1(k,k2)(mod n), (18)其中ψ(k1,k2)=[k12+σ1k1k2+σ2k22+(σ12-2σ2)k1+σ1σ2k2+σ22](mod n)m1,m2表示待签名信息,并以(k1,k2)作为对(m1,m2)的签名;验证签名时先按如下两个方程计算z1,z2z1=(2k1+σ1k2+σ12-2σ2)ψ-1(k1,k2)(mod n), (19)z2=(k2+σ1)ψ-1(k1,k2)(mod n), (20)并将(z1,z2)和(m1,m2)比较,以决定是否接受签名。
全文摘要
一种公钥密码算法及其对应的数字签名,其特点是加、解密算法简单,速度快,允许用户通过追加简单的身份标识共享数字证书中的公钥值,支持基于身份的加密,并具有密钥自恢复能力。
文档编号H04L9/00GK1476196SQ0310210
公开日2004年2月18日 申请日期2003年2月8日 优先权日2002年5月28日
发明者郑建德 申请人:郑建德
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1