[发明专利]一种加速RSA加解密的算法在审
申请号: | 200910183106.9 | 申请日: | 2009-08-07 |
公开(公告)号: | CN101631025A | 公开(公告)日: | 2010-01-20 |
发明(设计)人: | 彭艳兵 | 申请(专利权)人: | 彭艳兵 |
主分类号: | H04L9/32 | 分类号: | H04L9/32 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210018江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 加速 rsa 解密 算法 | ||
技术领域
本发明涉及一种信息安全加密方法,尤其是RSA算法加密、解密过程的加速。
背景技术
RSA即非对称密钥加密体系的一种加解密方法,其利用素数的特性来进行加密和解密。其技术特征如 下:
对于两个素数p和q,其乘积记为n,即n=pq,令t=(p-1)(q-1)。
另外在找两个素数d和e,使得0<e<d<n,同时使得d、e均与p、q互素,且与t互素。如果d和e 满足下式:
d*e=1(mod t) (1)
则对于任意的明文m<n,均可以通过下式得到密文c:
me=c(mod n) (2)
同时,可以通过下式从密文c得到明文m:
cd=m(mod n) (3)
此时,以n和e可以作为公钥发布给任意人,而n和d作为私钥保存。
通常加密和解密的复杂度很高,因此需要利用各种优化和加速的方法。常规优化加速过程利用 Montegery方法可以把计算(A*B)%N的过程中的除法变成加法和乘法,但也只是减少了除法的使用,这仍 然满足不了RSA用于实时加密解密的要求。一些方法是将指数e进行2k进制化,减少e的序列长度,从 而使新算法的迭代计算步数减少。但是这个过程也比较复杂,每步迭代均要做一次取模n的运算,对传统 指数逼近的方法的改进不大。
由于大多数改进算法都只利用了指数与模的部分特性,而没有利用底数部分,本发明考虑了底数部分 对加密过程的影响。也有方法提出了考虑结合模n和底数a对指数m动态地取最优的幂后进行模幂乘运算 的算法,但是其推导过程没有本算法明晰,判断幂是否大于模n时使用的试探方法会增加大量的取模计算, 本发明提出的方法只需要进行二进制数的一次比较操作。
下面两个公式后面可能会用到,这里用%来表示mod运算,对于正整数A、B和N,非负整数r和s:
(A*B)%N=((A%N)*B)%N=((A%N)*(B%N))%N (4)
Ars%N=(Ar%N)s%N=(A%N)rs%N (5)
这两个公式可以根据取模数的性质得到,这里涉及到的符号除非特别说明,均为正整数。
发明内容
本发明提出一种显著降低指数e或d的方法,能够结合作为明文m和密文c的作为底数与模数n的关 系,利用中国剩余定理来极大地消减密指数e或d的运算次数;同时利用与T相关的m和n的二进制表 示方式间的关系来加速mT的计算,并用mT与n间的大小关系来减少mT%n求模n的运算。
本发明的原理和技术方案为:
1.分解e
对于加密/解密过程对应的(2)和(3)式,其运算过程和加速原理一样,我们以(2)式的加密过程为例,根 据公式(4)和(5),如果m>n,用%来表示mod运算,则(2)式可以化为
(m)e%n=[(m%n)e]%n=c (6)
但是我们通常选取m<n,并且为了加密的方便,会选择e<<n。由于指数e通常比较大,我们可以把e 分解为rT+s,使得mT>n和ms<n,此时r、s、T均为非负整数。因此我们可以得到T与m、n的关系为:
T>logmn=log2n/log2m (7)
(7)式的右边等式表明,我们可以用n和m的有效的二进制长度来做对数的除法,以减少运算量。因 为对n取模和对e指数运算的开销都很大,我们尽量控制T使得其mT刚好比n大,即mT>n和mT-1<n, 可以得到:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于彭艳兵,未经彭艳兵许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910183106.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:环烷基甲胺的合成、使用方法和组合物
- 下一篇:硬镜保胆取石鞘