当前位置: 首页 > 专利查询>彭艳兵专利>正文

一种加速RSA加解密的算法制造技术

技术编号:4149548 阅读:434 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种用于信息安全领域的RSA加解密加速算法,结合明文m、密文c的底数与指数e、d,及模数n三者的关系,利用中国剩余定理来极大地消减密指数e或d的运算次数。对于加密过程,使m↑[e]%n分解为(m↓[k]↑[s↓[k]]m↓[k-1]↑[s↓[k-1]]…m↓[1]↑[s↓[1]]m↑[s])%n,其迭代过程中i≤k,m↓[0]=m,T↓[i]=「log↓[2]n/log↓[2]m↓[i-1]」,m↓[i]=m↓[i-1]↑[T↓[i-1]]%n,e↓[i]=e↓[i-1]/T↓[i-1],s↓[i]=e↓[i-1]%T↓[i-1],终止迭代的条件是e↓[i]=0,从而实现不同底数m时指数e分解加速;利用数m↓[i]和n的比特长度比来加速T↓[i]的求值;用m↓[i]↑[T↓[i]]>n和m↓[i]↑[T↓[i-1]]<n的约束关系来使m↓[i]↑[T↓[i]]%n计算只在最后求一次模n而不用每次乘法都取模。解密过程与加密过程一致,只是m变为c,e变为d。本发明专利技术能显著降低指数e或d的运算复杂度。

【技术实现步骤摘要】

本专利技术涉及一种信息安全加密算法,尤其是RSA算法加密、解密过程的加速。
技术介绍
RSA即非对称密钥加密体系的一种加解密方法,其利用素数的特性来进行加密和解密。其技术特征如下对于两个素数p和q,其乘积记为n,即n,q,令t=(p-l)(q-l)。另外在找两个素数d和e,使得(Ked《n,同时使得d、 e均与p、 q互素,且与t互素。如果d和e 满足下式d*e=l(modt) (1) 则对于任意的明文m<n,均可以通过下式得到密文c:me=c(mod n) (2) 同时,可以通过下式从密文c得到明文m:cd=m(mod n) (3) 此时,以n和e可以作为公钥发布给任意人,而n和d作为私钥保存。通常加密和解密的复杂度很高,因此需要利用各种优化和加速的方法。常规优化加速过程利用 Montegeiy方法可以把计算(A^B)。/。N的过程中的除法变成加法和乘法,但也只是减少了除法的使用,这仍 然满足不了 RSA用于实时加密解密的要求。 一些方法是将指数e进行2k进制化,减少e的序列长度,从 而使新算法的迭代计算步数减少。但是这个过程也比较复杂,每步迭代均要做一次取模n的运算,对传统 指数逼近的方法的改进不大。由于大多数改进算法都只利用了指数与模的部分特性,而没有利用底数部分,本专利技术考虑了底数部分 对加密过程的影响。也有方法提出了考虑结合模n和底数a对指数m动态地取最优的幂后进行模幂乘运算 的算法,但是其推导过程没有本箅法明晰,判断幂是否大于模n时使用的试探方法会增加大量的取模计算, 本专利技术提出的方法只需要进行二进制数的一次比较操作。下面两个公式后面可能会用到,这里用y。来表示mod运算,对于正整数A、 B和N,非负整数r和s: (A*B)%N = ((A0/oN) *B )%N = ((A0/0N)*(B%N))0/oN (4) A、N气Ao/oN)so/oN气Ao/oN)/oN (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,用o/。来表示mod运算,则(2)式可以化为(m)e %n = [(m%n)e]%n = c (6)但是我们通常选取nKn,并且为了加密的方便,会选择e〈《n。由于指数e通常比较大,我们可以把e 分解为rT+s,使得m、n和ms〈n,此时r、 s、 T均为非负整数。因此我们可以得到T与m、 n的关系为T > logm w = log2 w / log2附 (7)(7)式的右边等式表明,我们可以用n和m的有效的二进制长度来做对数的除法,以减少运算量。因 为对n取模和对e指数运算的开销都很大,我们尽量控制T使得其mT刚好比n大,即mT>n和mT—^n, 可以得到T = 「 log2n /log2m 1 (8) 其中l^的运算是取不小于log2n /l0g2m的最小整数。那么我们可以很容易通过n和m的二进制表示形 式去掉最左边0后的长度,分别记为bit一Length(n)和bit一Length(m),来相除计算求得T。艮P:T = 「 bit一Length(n) / bit—Length(m) I (9) 因为m<n,当这两个变量的比特位数相同的时候取T=2。只有当m的比特长度不足n的一半的时候T 才有可能取大f 2的整数。如果T〈e,我们利用(9)和(4)、 (5)来消减幂模运算,即me%n = (m)elT+s %n = [ (m)elTms] %n = [ (mT%n)elms] %n (10) ={[ (mT%n)ml %n ] ms }%n 可以看出,s = e%T , ei=e/T,这里的/号为计算机语言里整数整除的运算,即Le/T丄而el我 们称为残余指数。令m,-mT。/。n, (10)式可以化为7Me%W = [ ' 0/—S]%W (11) 可以看出圆括号里W,e'Ww的形式与等式左边的形式相同。如果/W,〉n,则仍然可以重复这一过程(6H11)式描述的过程,m、 e、 s、 T带的角标i分别表示第i次迭代时相应位置变量的取值,直到某一个迭 代过程i中的表达式m/' <n,此时残余指数ei+1=0。而判断/n/'<n的标准类似(9)式,为& < Tj =T bit—Length(n) / bit—Length(mj) 1 (12)最终迭代k次迭代的结果是下面的形式we%w =,'…/w^/wo/ow (13)其中,每个指数项附,都小于n,而Si尽可能大。那么运算过程就把指数为e的模运算化解为几个零 碎的小整数幂Si的乘积后的模运算,这些乘积的模运算可以用Montgomery算法来进行简单运算。2.分解Tj和Si一般n的比特长度选择2048,如果加过程中遇到的底数m非常小,比如2,则丁 = 2048,第一次迭代 后e,变为e/2048,此时的加速比为min(2048, e)倍。如果e〈2048,只需把26计算出来即可,不需进行取模的运算;如果第一次迭代后e,仍然比较大,多次迭代会把这个指数变得更小。多次迭代的加速比为fl7;,ik^log2n。而根据约束条件n〉m可以推知Ti最小为2。因此对于2048比特的n,任意m<n的模运算me %n 在e取2048比特长的数的时候,其迭代过程最多只需要进行2048次(T,〈22048,122,所以kS2048),这k次过程中另外再包含k次求w,—t' %n的过程,而最终还有一次取模的过程。此时计算w卜J %n可以采用传统的指数优化的技巧来进行加速计算。由于有约束条件Tj刚好使得n </w,-,,可以得到m卜/^1 < n,因此迭代计算mw的过程到Ti次时都不用取模,可以等计算完成Tj次乘积 后再取模,因此可以使用类似于AB计算縮减指数过程,但只需最终取一次模n即可。不用每次迭代过程 都取模,这也是本专利技术方法与常规方法的一个区别,也是它比常规方法计算m,—,y。n快的一个方面。令 B-bo2i+b,2^+…+bj2 b产0orl,则这个公式是B的二进制表示形式,j为B的比特长度,上述求模的计 算过程可以化简为爿b=爿w化2广'+.'.+《=n7爿w(14)显然只需要计算j+l次即可利用不同的低阶i的爿2'组合出所有的高阶i+l的^2'+'=爿2'力2',再根据 系数bi把相关Ai相乘得到A8,可知计算AB则最多只需要j+l+i:bj次乘积。如果n、 e取2048比特长度的数字,j+l+Zh <2j<21og」。^ <2 log2'°g2,其值在24以内。特别是T尸2的时候居多,甚至都不要进行任何优化,只需要进行相应的乘法计算即可。根据n < m卜J<本文档来自技高网
...

【技术保护点】
一种用于加速RSA进行加解密运算的算法,结合作为明文m和密文c的作为底数与模数n的关系,利用中国剩余定理来极大地消减密指数e或d的运算次数,其特点在于: a)对于加密过程,使m↑[e]%n分解为(m↓[k]↑[s↓[k]]m↓[k-1 ]↑[s↓[k-1]]…m↓[1]↑[s↓[1]]m↑[s])%n,其迭代过程中i≤k中m↓[0]=m,此时指数T↓[i]满足m↓[i]↑[Ti]>n且m↓[i]↑[Ti-1]<n,或T↓[i]=「log↓[2]n/log↓[2]m↓[i-1]」,m↓[i]=m↓[i-1]↑[Ti-1]%n,e↓[i]=e↓[i-1]/T↓[i],s↓[i]=e↓[i]%T↓[i],终止迭代的条件是e↓[i]=0,从而实现不同底数m时指数e分解加速; b)解密过程与加密过程一致,只是分 解的参数做相应的改变,m变为c,e变为d; c)利用T↓[i]=「log↓[2]n/log↓[2]m↓[i-1]」,可以采用n和m↓[i-1]的二进制表礻方式间的比特数比减少乘法的次数来加速m↑[T]的计算。使用其他方法使得m↓[i] ↑[T]>n、m↓[i]↑[T-1]<n和m↓[i]↑[s]<n的实施过程,都符合本专利的特征; d)上述实施的过程中,利用各种方法计算m↑[T]%n和(m↓[k]↑[s↓[k]]m↓[k-1]↑[s↓[k-1]]…m↓[1]↑[s↓ [1]]m↑[s])%n都符合本专利的特征。...

【技术特征摘要】
1、一种用于加速RSA进行加解密运算的算法,结合作为明文m和密文c的作为底数与模数n的关系,利用中国剩余定理来极大地消减密指数e或d的运算次数,其特点在于a)对于加密过程,使me%n分解为 id=icf0001 file=A2009101831060002C1.tif wi=44 he=4 top= 46 left = 86 img-content=drawing img-format=tif orientation=portrait inline=yes/>其迭代过程中i≤k中m0=m,此时指数Ti满足miTi>n且miTi-1<n,或 id=icf0002 file=A2009101831060002C2.tif wi=34 he=4 top= 54 left = 88 img-content=drawing img-format=tif orientation=portrait inline=yes/>mi=mi-1Ti-1%n,ei=ei-1/Ti,si=ei%Ti,终止迭代的条件是ei=...

【专利技术属性】
技术研发人员:彭艳兵
申请(专利权)人:彭艳兵
类型:发明
国别省市:84[中国|南京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1