华佗养生网
您的当前位置:首页一种改进的RSA算法的研究

一种改进的RSA算法的研究

来源:华佗养生网
科技信息 一计算机与网络 种改进昀RSA算法昀研究 哈尔滨师范大学计算机科学与通信工程学院 吴迪 [摘要]P.sA算法在对数据加密和数字签名方面应用广泛。但RSA算法在实现上较其他算法来讲具有实现速度慢的缺点。主要通 过对RSA参数的选择及RSA算法本身的优化两方面来提出一些改进措施,从一定程度上提高了RSA算法的实现速度。 [关键词]数据加密技术密钥RSA 0.引言 随着信息技术的日新月异及其广泛的普及和应用,计算机及其网 络的安全问题已经成为当今科技发展的一个全新的课题。 RSA算法是当今所使用的当中最为成熟完善的各种公钥加密算 3.2另一种对RSA公钥私钥加密算法的改进 根据上面传统的改进方式,可将x的二进制值每四位进行一次运 算,根据上式 对于i=t,t一1,t一2,……,1,0重复执行①②。 法,它其实已经成为当代公钥非对称加密算法的代表。现在所广泛使用 的各种加密安全产品以及相应的安全标准大多使用的都是RSA公钥 加密算法。RSA算法作为第一个可以用于数字签名的非对称加密算法, 对于解决密钥分配,身份认证和在日常的在线电子交易的应用有着极 为广泛的前景。但其自身的一些缺陷,如加密效率的低下所带来的矛盾 已经越加的尖锐。针对以上的缺点,笔者尝试进行改进。 1.RSA算法的描述 1.1密钥的生成 1)生成两个互异的大素数P和q,在实际的情况下大多使用随机数 生成器来生成随机数,再检查它们的互素性。考虑到抗破译需要,RSA 要求P和q为强素数。 2)计算模数n=p X q,u(n)=(p一1)(q—1)(式中u(n)为欧拉函数值小 于U且与n互素的正整数的个数) 3)选一正整数e,e满足l<e<u(n),且gdc(U(n),e)=1。 4)计算d满足d・e=1 mod u(n)其中I1,e为公钥,d为私钥。 1.2加密 根据RSA算法,要加密的明文为nl,加密后的密文为e。加密的过 程为c=m modfn),其中e为加密公钥。 l_3解密 根据RSA算法,m=e mod(n),其中e为公钥,d为私钥。 2.RSA算法的参数选择 在实际应用中,大多数的信息揭露以及破解不是由于破解了RSA 系统,而是由于加密过程中的参数选择不当,因此为保证信息的安全性 和系统的安全性,RSA算法的参数选择必须符合一定的标准。RSA算法 的主要参数有三个:模数n,加密密钥e,解密d。 2.1 RSA算法的加密安全性的基础是n=pxq,如果模数n被分解, 就可以根据P和q得到u㈤,进而通过公钥e得到解密d,RSA算法 加密解密系统将被完全破解。所以普遍的RSA算法的破解攻击时分解 模数n。 2.2 P、q应为强素数,强素数是指p+l或q+l应有大素数因子。 2.3 P、q之差要大(差几位之上)若P、q之差很小,则可由n=p・q可 估计(p+q)/2 ̄n 又可知((P+q)/2)2-n=((p-q)/2) 两式联立方程可试探P,q的值。 2.4 p-1和q一1的公因子要小。 2.5 P、q要足够大,这是RSA算法要遵循的最基本的原则,如果希 望算法安全,则n=p・q必须足够大,使得大数分解基本不可能。 3.RSA算法的优化 3.1 RSA算法的传统优化方法 通过RSA算法的加密公式c:m mod(n)可知RSA算法涉及一个整 数的幂运算然后进行取模运算。传统RSA算法的幂剩余计算所用的时 间过长,已经成为广泛认同的RSA算法的发展的瓶颈。而如果直接计 算指数,又会产生巨大的中间计算结果。传统的优化方式是利用取模运 算的一个特性: Hamod n)x modn)】mod n=(axb)mod n 利用次公式构造平方求模算法,利用的是相乘后求模与重复平方 求模迭代的方式。具体的步骤如下(a=g'modp为例): 1)将x的十进制数转化成二进制数 2)设a的初值是l,a=l。 3)对于i=t,t一1,t一2,……,1,0重复执行①②。 (j)a=aE(modp) ②若x=l则a=ax g(modp) 4)得到a结束。 以上的算法是每一步迭代对P求模,可以控制中间结果的大小。每 一次迭代需要二次乘法和二次求模总共需要log ̄x次迭代。显然,21ogax 次乘法和21ogax次求模是影响算法实际速度的关键,传统的改进方式 是用以上的方式和SMM算法相结合。 ( ̄)a=a2(modp) ②若x=l则a=axg(modp) 既若x的四位二进制值为0001则a= (m0dp)=【((a2(modp)) (modp)) (modp)】×g(modp)=a ×g(modp) 根据此式可将传统的方式具体改进为以下算法(使用类c语言): 1)将X的二进制数按每四位转化成16进制数 int a=l: selectx {case x=0 a=aS(modp);break; ease x=l a=as×g(modp);brehk; ease x=2 a=as×g2(modp);break; case x=3 a=a8 X gZ(modp);break; case x=4 a--a x m0dp);break; case x=5 a=as x d(modp);break; ease x=6 a=a8 X gS(modp);break; ease x=7 a:as X gS(modp);break; case x=8 a=as X gS(modp);break; ease x=9 a=as X gT(modp);break; easex=A a=as×gT(modp);break; easex=B a=a x gS(modp);break; easex=C a=as gT(modp);break; casex=D a=as X gS(modp);break; ease x=E a=as gS(modp);break; case xmF a=as×g9(modp);break; default; J 2)x的每位16进制数重复以上步骤。 3)得到a结束。 此方法也可与SMM算法相结合,在此笔者不再冗述。 4.结束语 通过合理的选择RSA算法的参数以及对RSA算法本身的优化,实 现了RSA算法的速度的优化,使其在实际应用中更加具有可靠性和稳 定性。 参考文献 [1]施奈尔(美国).《应用密码学(the 2rd edition) ̄.北京:机械工业 出版社,2000. [2]冯登国,裴定一.《密码学引论》.科学出版社,1999. [3]杨波.《现代密码学》.北京:清华大学出版社,2003. 14]Wagner Near R((the laws ofthe cryptography)).2004. ...——223...—— 

因篇幅问题不能全部显示,请点此查看更多更全内容