CN101631025B - 一种加速rsa加解密的方法 - Google Patents

一种加速rsa加解密的方法 Download PDF

Info

Publication number
CN101631025B
CN101631025B CN2009101831069A CN200910183106A CN101631025B CN 101631025 B CN101631025 B CN 101631025B CN 2009101831069 A CN2009101831069 A CN 2009101831069A CN 200910183106 A CN200910183106 A CN 200910183106A CN 101631025 B CN101631025 B CN 101631025B
Authority
CN
China
Prior art keywords
equal
encryption
log
decryption
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009101831069A
Other languages
English (en)
Other versions
CN101631025A (zh
Inventor
彭艳兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN2009101831069A priority Critical patent/CN101631025B/zh
Publication of CN101631025A publication Critical patent/CN101631025A/zh
Application granted granted Critical
Publication of CN101631025B publication Critical patent/CN101631025B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开一种用于信息安全领域的RSA加解密加速算法,结合明文m、密文c的底数与指数e、d,及模数n三者的关系,利用中国剩余定理来极大地消减密指数e或d的运算次数。对于加密过程,使me%n分解为
Figure D2009101831069A00011
其迭代过程中i≤k,m0=m,
Figure D2009101831069A00012
Figure D2009101831069A00013
ei=ei-1/Ti-1,si=ei-1%Ti-1,终止迭代的条件是ei=0,从而实现不同底数m时指数e分解加速;利用数mi和n的比特长度比来加速Ti的求值;用的约束关系来使

Description

一种加速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,可以得到:
Figure GSB00000622942800021
其中
Figure GSB00000622942800022
的运算是取不小于log2n/log2m的最小整数。那么我们可以很容易通过n和m的二进制表示形式去掉最左边0后的长度,分别记为bit_Length(n)和bit_Length(m),来相除计算求得T。即:
Figure GSB00000622942800023
因为m<n,当这两个变量的比特位数相同的时候取T=2。只有当m的比特长度不足n的一半的时候T才有可能取大于2的整数。如果T<e,我们利用(9)和(4)、(5)来消减幂模运算,即:
m e % n = ( m ) e 1 T + s % n = [ ( m ) e 1 T m s ] % n = [ ( m T % n ) e 1 m s ] % n
m e % n = ( m ) e 1 T + s % n = [ ( m ) e 1 T m s ] % n = [ ( m T % n ) e 1 m s ] % n - - - ( 10 )
= { [ ( m T % n ) m 1 % n ] m s } % n
可以看出,s=e%T,e1=e/T,这里的“/”号为计算机语言里整数整除的运算,即
Figure GSB00000622942800027
而e1我们称为残余指数。令m1=mT%n,(10)式可以化为:
m e % n = [ ( m 1 e 1 % n ) m s ] % n - - - ( 11 )
可以看出圆括号里
Figure GSB00000622942800029
的形式与等式左边的形式相同。如果
Figure GSB000006229428000210
则仍然可以重复这一过程(6)~(11)式描述的过程,m、e、s、T带的角标i分别表示第i次迭代时相应位置变量的取值,直到某一个迭代过程i中的表达式
Figure GSB00000622942800031
此时残余指数ei+1=0。而判断
Figure GSB00000622942800032
的标准类似(9)式,为:
最终迭代k次迭代的结果是下面的形式:
m e % n = ( m k s k m k - 1 s k - 1 . . . m 1 s 1 m s ) % n - - - ( 13 )
其中,每个指数项
Figure GSB00000622942800035
都小于n,而si尽可能大。那么运算过程就把指数为e的模运算化解为几个零碎的小整数幂si的乘积后的模运算,这些乘积的模运算可以用Montgomery算法来进行简单运算。
2.分解Ti和si
一般n的比特长度选择2048,如果加过程中遇到的底数m非常小,比如2,则T=2048,第一次迭代后e1变为e/2048,此时的加速比为min(2048,e)倍。如果e<2048,只需把2e计算出来即可,不需进行取模的运算;如果第一次迭代后e1仍然比较大,多次迭代会把这个指数变得更小。多次迭代的加速比为
Figure GSB00000622942800036
k≤log2n。而根据约束条件n>m可以推知Ti最小为2。因此对于2048比特的n,任意m<n的模运算me%n在e取2048比特长的数的时候,其迭代过程最多只需要进行2048次(Ti k<22048,Ti≥2,所以k≤2048),这k次过程中另外再包含k次求的过程,而最终还有一次取模的过程。
此时计算可以采用传统的指数优化的技巧来进行加速计算。由于有约束条件Ti刚好使得
Figure GSB000006229428000310
可以得到因此迭代计算mi-1的过程到Ti次时都不用取模,可以等计算完成Ti次乘积后再取模,因此可以使用类似于AB计算缩减指数过程,但只需最终取一次模n即可。不用每次迭代过程都取模,这也是本发明方法与常规方法的一个区别,也是它比常规方法计算
Figure GSB000006229428000312
快的一个方面。令B=b02j+b12j-1+...+bj20,bi=0 or 1,则这个公式是B的二进制表示形式,j为B的比特长度,上述求模的计算过程可以化简为:
A B = A b 0 2 j + b 1 2 j - 1 + . . . + b j 2 0 Π i = 0 j A b i 2 j - i - - - ( 14 )
显然只需要计算j+1次即可利用不同的低阶i的
Figure GSB000006229428000314
组合出所有的高阶i+1的
Figure GSB000006229428000315
再根据系数bi把相关Ai相乘得到AB,可知计算AB则最多只需要j+1+∑bj次乘积。如果n、e取2048比特长度的数字, j + 1 + &Sigma; b j < 2 j < 2 log 2 log 2 e < 2 log 2 log 2 n , 其值在24以内。
特别是Ti=2的时候居多,甚至都不要进行任何优化,只需要进行相应的乘法计算即可。根据
Figure GSB000006229428000317
Figure GSB00000622942800041
Figure GSB00000622942800042
得到Ti=2的概率pi即mi>n0.5的概率pi,n的比特长度一般在1024以上,假设mi的各位比特是随机的,则pi为2-1+2-2+...+2bit_Length(n)/2=1-2(bit_Length(n)/2)+1≈1,这表明mi的高位小于n0.5的概率非常小。这表明要进行(14)式的计算的次数很少,在考虑计算复杂度的时候可以忽略这种计算带来的复杂度提升,而进行这种计算的时候Ti-1>2,使得整体加速比得到提升。
(13)式中的指数si也可以利用这个方法进行指数消减,只是最终进行一次取模运算,原理与分解Ti类似,下面不再进行深入讨论了。由于绝大部分时候Ti=2,因此绝大部分时候si=1。
3.现有技术对比
谢琪在2003年计算机工程杂志上提出《一种新的RSA的快速算法》,和本专利的思路非常接近,都是使用结合模n和底数a对指数m动态地取最优的幂后进行模幂乘运算,其分析的算法时间复杂度为O(klog2 2n)。其迭代公式为
Figure GSB00000622942800043
与本专利提出的
Figure S2006800150290D9997
很像,但是本专利提出的公式更通用一些,特别是本专利提出的底数mi具有不同的指数si,表明其思路与谢琪的方法是有较大的差别,在某些时候谢琪的公式可能是错误的(mi不是2的时候)。最重要的区别是在判断
Figure GSB00000622942800045
的时候,本专利提出一种基于m和n的二进制长度来估算Ti的大小的方法,能够基于简单的判断来进行,用硬件可以一次判断完成,谢琪的方法要逐步乘方进行试探。而大部分情况下需要计算的是
Figure GSB00000622942800046
因为根据本专利的方法ei已知(也是因为很容易求得且唯一)且有
Figure GSB00000622942800047
Figure GSB00000622942800048
所以可以放心地连乘,可以减少多次连乘过程中的取模的运算量。因此基于相同的分析过程,可以得出本发明提出的方法的时间复杂度至少优于O(klog2n)。下面进行详细分析。
4.复杂度分析
算法中取模n的运算次数只有k+1次,k<log2e。e对Ti的分解过程与底数有关,底数较小的时候Ti会比较大,Ti比较大的时候k会比较小;由于绝大部分时候Ti=2,我们把me%n的计算化简为k次乘法和k+1次取模的复杂度为O(2k+1),最差的情况下大约为O(2log2 e+1)。乘法和取模的基本运算复杂度接近于常量O(g),取模运算n为2048比特的时候g大约为24,乘法运算g<log2 n,因此本发明的算法复杂度小于O(klog2n),也优于O(log2 e*log2 n),而大大优于谢琪提出方法中的O(klog2 2n),谢琪的方法最差情况下为
Figure GSB00000622942800049
通过这个过程加速后,使用RSA加密/解密一次,与通常的单纯指数优化相比,可以提高速度至少log2 n倍多,且与指数e和底数m相关。对于1024位的RSA加解密程甚至可以达到1000倍以上,此时可以利用RSA进行实时加密,甚至不需要利用SHA等对称加密体系进行加密了。
具体实施方式
对于计算过程me%n,重复如下的过程:
解密过程同上,只是me%n变为了cd%n,只需传入(指数d,底数c,模数n)即可。k即为所要求的迭代次数其小于log2e,Y即为加密或解密的运算结果。
其中求mi-1 Ti%n可以利用常规的AB%N计算加速方法。因为知道AB>N且AB-1<N,只需计算完成连乘后最终求一次模,这样的方法比普通指数方法快很多,不需每次迭代求一次模N。j为B的比特长度,记B=b02j+b12j-1+...+bj20,bi=0 or 1中的取第i位为bi的过程为Get(bi),它可以一步完成,则
Figure GSB00000622942800052
Figure GSB00000622942800061
大部分时候B=2,可以利用特殊的硬件或软件方法来一次实现A2%N。
把返回值Y再取模n即得到mi-1 Ti%n,而计算mi si的时候不用取模n,大部分时候si=1。

Claims (1)

1.一种用于加速RSA进行加解密运算的方法,结合作为底数的明文m和密文c与模数n的关系,利用中国剩余定理来极大地消减幂指数e或d的运算次数,其特征在于:
1)对于加密过程,使me%n分解为
Figure FSB00000726311600011
其迭代过程i≤k中,指数Ti满足
Figure FSB00000726311600012
Figure FSB00000726311600013
Figure FSB00000726311600014
Figure FSB00000726311600015
ei=ei-1/Ti,这里限定“/”号为计算机语言里面整数整除的运算,si=ei%Ti,终止迭代的条件是ei=0,这里e0=e,m0=m,s0=s=e%T0,从而实现不同底数m时指数e分解加速;
2)解密过程与加密过程一致,只是分解的参数做相应的改变,m变为c,e变为d。
CN2009101831069A 2009-08-07 2009-08-07 一种加速rsa加解密的方法 Expired - Fee Related CN101631025B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101831069A CN101631025B (zh) 2009-08-07 2009-08-07 一种加速rsa加解密的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101831069A CN101631025B (zh) 2009-08-07 2009-08-07 一种加速rsa加解密的方法

Publications (2)

Publication Number Publication Date
CN101631025A CN101631025A (zh) 2010-01-20
CN101631025B true CN101631025B (zh) 2012-07-04

Family

ID=41575986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101831069A Expired - Fee Related CN101631025B (zh) 2009-08-07 2009-08-07 一种加速rsa加解密的方法

Country Status (1)

Country Link
CN (1) CN101631025B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110428247A (zh) * 2019-07-02 2019-11-08 常州市常河电子技术开发有限公司 非对称加密计算中大数乘除法的变权值快速实现方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1248366A (zh) * 1997-02-19 2000-03-22 格姆普拉斯有限公司 包括加密及解密系统的密码系统及密钥保管系统和相关的装置及设备
CN1492316A (zh) * 2003-09-09 2004-04-28 大唐微电子技术有限公司 一种蒙格玛丽模乘算法及其模乘、模幂运算电路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1248366A (zh) * 1997-02-19 2000-03-22 格姆普拉斯有限公司 包括加密及解密系统的密码系统及密钥保管系统和相关的装置及设备
CN1492316A (zh) * 2003-09-09 2004-04-28 大唐微电子技术有限公司 一种蒙格玛丽模乘算法及其模乘、模幂运算电路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王琴琴等.《Montgomery算法在RSA中的应用及其优化》.《计算机技术与发展》.2007,第17卷(第6期),145-146,150. *
谢琪.《一种新的RSA的快速算法》.《计算机工程》.2003,第29卷(第2期),51-52. *

Also Published As

Publication number Publication date
CN101631025A (zh) 2010-01-20

Similar Documents

Publication Publication Date Title
CN110519058B (zh) 一种对于基于格的公钥加密算法的加速方法
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
EP1975906B1 (en) Montgomery s algorithm multiplication remainder calculator
KR101914028B1 (ko) 부채널 공격에 안전한 연산 장치 및 방법
KR101269737B1 (ko) 암호 처리 장치 및 암호 처리 방법과 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
CN102279840B (zh) 一种适用于信息加密技术应用的素数族快速生成方法
Hwang et al. An efficient decryption method for RSA cryptosystem
Stam Speeding up subgroup cryptosystems
Ruzai et al. Increment of insecure RSA private exponent bound through perfect square RSA diophantine parameters cryptanalysis
Chen et al. Integer arithmetic over ciphertext and homomorphic data aggregation
CN101631025B (zh) 一种加速rsa加解密的方法
JP3616897B2 (ja) モンゴメリ法による乗算剰余計算装置
CN111797907B (zh) 一种用于医疗物联网的安全高效的svm隐私保护训练及分类方法
Aswathy et al. Modified RSA public key algorithm
Deepthi et al. New stream ciphers based on elliptic curve point multiplication
Li et al. A novel algorithm for scalar multiplication in ECDSA
CN114513306B (zh) 数据加密传输方法、系统
Choudhary et al. HybridPKE: A forward-secure non-interactive quantum-safe hybrid key exchange scheme
Raharinirina Use of signed permutations in cryptography
Chang et al. A fast modular square computing method based on the generalized Chinese remainder theorem for prime moduli
CN109687954A (zh) 用于算法加速的方法和装置
Zhang et al. On efficient pairings on elliptic curves over extension fields
CN2566363Y (zh) Vlsi用的智能卡模乘器结构
Varma et al. FPGA Implementation of Modular Multiplication for Cryptographic Applications
Narmadha et al. VLSI Implementation of RSA Cryptosystems using Montgomery Multplication with Sum Based Adder

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
DD01 Delivery of document by public notice

Addressee: Peng Yanbing

Document name: Notification of Termination of Patent Right

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120704

Termination date: 20160807