RSA加密算法是比较完善的公开的密钥算法,由于其安全强度高,使用方便,所以受到广泛的应用。其安全性依赖于大素数的选择,但大素数产生技术的限制和RSA幂乘运算的大时间开销,提出一种基于双表体制的RSA加密算法。
一、RSA加密算法研究现状
1、加密算法的研究现状
目前应用比较广泛的两种加密算法是对称加密算法和非对称加密算法,对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着它的安全性。非对称加密算法是解决密钥管理工作的有力工具,但非对称加密算法的运行速度比对称加密算法要慢。常见的加密算法有DES、RSA、AES、MD5、新型椭圆算法ECC等。RSA算法是一种支持变长密钥的公共密钥算法,尽管RSA的很多特性并不是十分理想,但迫于信息安全的实际需要,许多重要信息系统还是采用RSA作为基础加密机制。
2、RSA加密算法
对称加密算法(DES)和非对称加密算法(RSA)是目前应用最广泛的加密算法,DES加密算法的安全性在于密钥的保护,而RSA加密算法被普遍认为是现今最优秀的公钥方案之一。RSA加密算法的理论基础是一种特殊的可逆模指数运算,其算法描述如下:
①选择两个互异的强素数p、q (p、q保密);
②计算出n=p*q,ψ(n)=(p一1)*(q-1);ψ(n)是n的欧拉函数值,(n公开,ψ(n)保密);
③随机选一整数e,满足1<e<ψ(n),且qcd(ψ(n),e)=1;(e公开);
④计算d,满足d*e≡1(modψ(n))d是e在模ψ(n)下的乘法逆元,由于e与ψ(n)互素,由模计算可知,它的乘法逆元一定存在;
⑤以(e,n)为公钥,(d,n)为密钥,销毁p,q,ψ(n)。
加密算法:先将明文比特分组C≡Me( modn),其中M为明文,C为密文。
解密算法:M= Cd( mod n)。
目前RSA加密算法的安全性主要集中在参数的选择上,一般都采用单表体制加密,所谓单表体制加密就是每个字符的加密都是独立的,前后密文之间没有任何的联系,所以,在明文中相同的字符加密出来的密文也是一样的,这样的密文就很容易被概论攻击法破译。
RSA大素数的选择以及RSA加密算法幂乘的大时间开销的特性会直接影响加解密的性能,因此,提出基于双表体制的RSA加密算法。
二、改进的加密算法
1、RSA的双表体制加密法
RSA加密算法参数的选择直接影响着密文的安全性,如果P、Q选的数很大,由于RSA算法采用的是幂乘运算,那么加解密算法的时间开销会很大。加密土具完成对Web文件的加密,浏览器完成对文件的解密,大量的时间开销会严重影响浏览器网页的显示。在RSA参数选择相对安全合理的前提下,实现加密算法的时候由单表体制加密改成双表体制加密,这样在一定程度上会增加破译的难度。所谓双表体制加密就是指一个字符的密文要受到它前一个字符的影响,即在加密的时候明文字符要加上前一个字符明文ASCII码的中间几位再加上前一个字符加密的结果的后几位,三者相加之和去进行模运算,解密的时候就作相应逆运算可以解决。
采用双表体制加密的时候由于受到前一个字符的影响,相同的字符加密出来的结果是不一样的,这样概论攻击法就很难进行破译了。加密算法中字符的加密既受到了密文的影响也受到了前一个字符明文的影响,假设前一个字符解密出错,那么后面的所有的字符就很难正确地解出结果,给破译密文带来了一定的难度。
算法描述:根据加密算法公式C≡Me( mod n),假设Me≡(m+x),m是指字符明文的ASCII码值,石的取值为前一个字符明文ASCII码的中间几位加上和前一个字符密文的后几位之和:
∵(m + X)e( mod rz)≡C
∴(m +x)ed(mod rz)≡Cd
∵M7≡(m+x)
∴Med (mod n)≡Cd
又∵d*e≡1(modψ(n))
由此可以推出cd≡Muwx,d(modn)
在M'和n互为素数以及不为素数的情况下,由欧拉定理得MWXn—1(mod n)
都可以推断出Muwx,d(modn)
∴cd≡M’(mod n)
∴Cd≡(m+x)(modx)
∴m=Cd≡(mod n)-x;
算法中的菇是前一个字符明文ASCII码的中间几位加上和密文的后几位,比如单纯的概论攻击法由n=p*q估计(p+q )/2≈(n)1/2,又可知[(p +q )/2]1/2-n=[(p-q )/2]1/2,两者联立方程组得到的p.q,求出私钥也不能准确的破译出密文。通过高精度精确计时,采集大量模拟计时样本,过程中还必须抗干扰的计时攻击法也很难精准的破译出来。
改进的加密算法流程图如图1所示。
2、改进后的RSA加密算法和Eclipse插件相结合的加密工具
加密工具是jar包形式的一个插件,将插件集成到Eclipse的开发环境中,可以通过菜单栏直接调用加密工具。加密工具以可视化的界面显示,通过选择控件选取要加密的文件或整个文件夹,直接点击加密按钮,直接完成对所选文件的加密。l插件式的加密工具方便;次开发人员的使用,显示插件的Eclipse菜单栏如图2所示。
3、实验结果分析
加密系统完成以后对系统进行了如下的测试,测试结果如表1所示。
选择了2组对照实验数据,实验数据中采用的都是含有重复字符的明文,第一列是采用双表体制的加密算法,加密后的密文中相同字符的明文加密出的密文是不一样的,没有规律可循。第二列采用的是单表体制的加密算法,从表中可以看出字符“中国梦”、“春之声”重复出现的时候,加密出的密文是一致的。在密文中出现的字母是随机产生的,不是加密算法计算出来的,是属于混淆密文的一种手段。单表体制
的加密,可以通过重复出现的密文进行推测判断并加以破译。相比之下,双表体制加密的密文的破译难度就明显增加。RSA加密算法的公钥私钥是在考虑了时间开销的前提下选择的,在采用双表体制的情况下即使密文解密的时候被各种破译手段破译出私钥以后,字符也是经过在加工处理后加密的,不知道加密算法机制,没有加密算法中的X,是无法在很短的时间内正确解析出明文的。
小知识之欧拉定理
欧拉定理得名于瑞士数学家莱昂哈德·欧拉,该定理被认为是数学世界中最美妙的定理之一。欧拉定理实际上是费马小定理的推广。