RSA加密算法的密钥长度和执行效率之间的矛盾是RSA加密算法进一步发展的瓶颈,为了解决这一瓶颈问题,有专家提出了一种用四个短密钥,将密文分为四个模块,并运用中国剩余定理将高位宽大数的模幂运算转化为对低位宽相对较小的数进行模幂运算来快速实现解密的方法,来平衡加密和解密的计算成本,这就是我们今天要介绍的四素数RSA加密算法。

一、RSA加密算法工作原理

1、RSA加密算法密钥的产生

RSA加密算法是一种比较典型的加密算法,它的安全性依赖于大数分解和素性检测理论的基础。两个大数的乘积容易算出,但要是将这个乘积分解两个大数因数的计算量是非常大的,根据人们的经验,在实际计算当中是不能实现的,因此可以确定算法的安全性。以下就是密钥产生步骤:

(1)随机选取两个大的不同的质数p和q (保密,建议取100位以上十进制数),计算N =p*q(公开)和φ(n)=(p-1)(q-1)(不公开)

(2)随即选取加密密钥e(公开),且满足0<e<x,gcd(e,φ(n))=1。

(3)求出密钥d,满足de≡1(mod(φ(n))(不公开)。这样就产生了公钥(e,n)和私钥(d,n)。

2、RSA加密算法的加密和解密

RSA加密算法中,加密和解密使用不同的密钥,即使加密密钥是公开的,但仍是推导不出解密密钥,,他们的过程是不可逆的。利用RSA加密第一步需将明文数字化,并取长度小于log2n位的数字做明文块。

加密算法:c=(E)m=me_(modn)

解密算法: m=(D)c=cd_(modn)

在密钥管理方面,由于一对密钥中的一个密钥是对外公开的,甚至可在网络服务器中注册,这样对密钥的管理非常容易方便。RSA是研究的最广泛的公钥加密算法,提出近三十年的时间,经历了各种攻击,逐渐被各界接受。同时它也存在一定的缺点,比如运行速度慢,产生密钥比较麻烦等等。

二、四素数RSA加密算法的基本原理

在传统的RSA加密算法基础上,四个素数的RSA加密与解密算法依然成立。

四素数RSA算法实现步骤

(1)随机选取四个不同的大素数p,q,r,s(不公开),计算n=p*q*r*s(公开)及φ(n)=(p-1)(q-1)(不公开)。

(2)随即选取加密密钥e (公开),且满足0 <e <x,gcd(e,φ(n))=1。

(3)求出密钥d,满足de≡1(mod(φ(n))(不公开)。

(4)加密和解密过程和传统的双素数RSA加密算法完全一样,仍为:

加密算法:c=(E)m=me_(modn)

解密算法: m=(D)c=cd_(modn)

三、四素数RSA加密算法解密过程中中国剩余定理的应用

应用中国剩余定理,四素数的RSA加密算法中的模幂运算可以转化为以下运算过程:

1、计算:Cp=comdp,Cq=comdq,Cr=comdr,Cs=coms

2、算出:Dp=dmod(p-1),Dq=dmod(q-1),Dr=dmod(r-1),Ds=dmod(s-1)

得出:M1=Cp(modp),M2=Cq(modq),M3=Cr(modr),M4=Cs(mods)

3、计算:M=(M1(qrs)p-1modn+M2(prs)q-1modn+M3(pqs)r-1modn+M4(pqr)s-1modn)modn,即得出明文:M。

四、四素数RSA加密算法的试验仿真

运用四素数RSA加密算法进行解密是要进行四次指数长度为n/4bits位的指数模运算cd_(modn),传统的RSA加密算法计算时所用的时间复杂度为0(logd _log2n),当d很大与n同数量级时,复杂度可以认为是0(log3n),这样效率提高是显而易见的。

理论上,效率提高的倍数为:,当k=4,n=2048bits时,α可以提高到4.02倍。

下面以n=2048bit为例子,随机选取p,q,r,s大整数,运用中国剩余定理,得到的一组试验数据。

从上面数据上可以看出,四素数RSA算法的解密速度是传统RSA的2.69倍,是三素数RSA的1.90倍,可以得出四素数RSA算法可以提高解密的效率。由于包含其他的运算和外界的一些客观条件,试验得出的数据会比理论数据低些。

四素数RSA加密算法即可以保证整数足够大,有可以保证体制的安全性。今后还要对n到底为多大时才不会导致效率和安全性下降做进一步的深入地研究。

小知识之中国剩余定理

中国剩余定理,又称为孙子剩余定理,古有“韩信点兵”、“孙子定理”、求一术(宋 沈括)“鬼谷算”(宋 周密)、“隔墻算”(宋 周密)、“剪管术”(宋 杨辉)、“秦王暗点兵”、“物不知数”之名,是数论中的一个重要命题。