您的位置 首页 测评

RSA加密算法及其改善算法的研讨和完成

摘要:首先利用RSA加密算法对数据进行加密和解密,实现了数据的安全传输;然后针对RSA加密算法时间开销大和算法设计复杂的缺点,提出基于乘同余对称特性的SNM算法。通过对该改进RSA加密算法的实现发现加

摘要:首要运用RSA加密算法对数据进行加密和解密,完结了数据的安全传输;然后针对RSA加密算法时刻开支大和算法规划杂乱的缺陷,提出依据乘同余对称特性的SNM算法。经过对该改善RSA加密算法的完结发现加密运算速度明显进步且算法更简略,然后证明晰本文所提改善算法的有效性。

0 导言

在当今信息社会中,每天都有很多的加密信息在传输、交流、存储和处理,一旦暗码遭到破解就可能形成信息的丢掉、篡改、假造、冒充以及体系遭受损坏等严重后果,因而,怎么确保信息的安全传输成为当时信息传输范畴的热点问题。W.Diffie和M.E.Hellmam在1976年宣布了具有划时代含义的“暗码学的新方向”一文,提出了公钥暗码体系思维,克服了传统对称暗码体系的缺陷,为近代暗码学的开展指明晰方向。它的出现是暗码学研讨范畴中的一项重大突破,也是现代暗码学诞生的标志之一。

本文首要对非对称加密算法RSA的原理和长处进行研讨,然后完结其加密、解密功用。RSA算法在公钥暗码体系中占有重要的位置。但该算法所选用的幂乘核算耗时太多,一直是约束其广泛运用的瓶颈。因而,为了进步加密和解密速度,本文提出一种新式的加密算法即依据乘同余对称特性的SMM算法。该算法选用简略的迭代来完结,不需求幂乘和乘法逆运算,然后在进步加密解密的速度一起也使得程序规划更简练紧凑。

1 RSA加密算法原理

RSA加密算法的理论基础是一种特别的可逆模指数运算,其算法描绘如下:

(1)挑选两个互异的大质数p和q(p和q有必要保密,一般取1024位)。

(2)核算出n=p q,φ(n)=(p-1)(q-1)。

(3)挑选一个比n小且与φ(n)互质(没有公因子)的数e。

(4)找出一个d,使得ed-1能够被φ(n)整除。其间,ed=1 mod(p-1)(q-1)。

(5)RSA是一种分组暗码体系,所以公开密钥=(n,e),私有密钥=(n,d)。

其间,n为模数,通讯两边都有必要知道,e为加密运算的指数,发送方需求知道,d为解密运算的指数,只要承受方才干知道。

将以上进程进一步描绘如下:

公开密钥:n=pq(p,q分别为两个互异的大素数),e与(p-1)(q-1)互质。

私有密钥:d=e-1{mod(p-1)(q-1)}。

加密:C=Me mod n,其间M为明文,C为密文。

解密:M=Cd(mod n)。

若要破译暗码有必要知道p,q,即对n作素因子分化,这在数学上是十分困难的。

2 RSA加密算法的完结

2.1 算法规划流程

RSA算法规划流程如图1所示,首要选用下述加密/解密改换。

RSA加密算法及其改善算法的研讨和完结

(1)密钥的发生

a.挑选两个保密的大素数p和q。

b.核算n=p q,φ(n)=(p-1)(q-1),其间φ(n)是n的欧拉函数值。

c.挑选一个整数e,满意1

d.核算私钥d,满意d=l(modφ(n))/e,d是e在模φ(n)下的乘法逆元。

e.以(e,n)为公钥,(d,n)为密钥,毁掉P,q,φ(n)。

(2)加密

加密时首要将明文比特串进行分组,使得每个分组对应的串在数值上小于N,即分组的二进制长度小于1 092 N。然后,对每个明文分组M,作加密运算。

加密:C=Me(modn),其间M为明文,C为密文。

(3)解密

对密文分组的解密运算为:M=Cd(modn)。

2.2 RSA加密算法的完结

(1) 生成密钥

随机挑选两个大素数p和q,假如p和q足够大,那么n=p q就会变的很大,在理论上因式分化一个大数并准确地分化出p和q是很难完结的。本文随机挑选P和q为61和67。依据φ(n)=(p-1)(q-1)可得n的欧拉函数值φ(n)为3960,如图2所示。

随机数e的选取要满意随机数和欧拉函数最大公约数gcd(eφ(n))=1这个条件。假如e比较大,加、解密速度变慢,也不便于存储,可是太小的e会导致安全性问题。所以约束1

(2)加密

输入明文,依据公钥(e,n)和公式C=Me(modn)可得密文。本文挑选要加密的明文为1234,由公式可得密文为2793。依据核算成果可知此加密算法加密所用的时刻为2.667 ms。

(3)解密

输入3调用第三个模块来完结解密功用。RSA加密算法解密所需求的条件是知道密文和私钥,依据M=Cd(modn)可得到明文。由核算得到密文为2793,私钥为233,所以可解的密文为1234,然后完结了解密功用。

RSA加密算法的完结进程如图2所示。

RSA加密算法及其改善算法的研讨和完结

大整数因子分化问题历来被数学界视为世界性难题。正是依据这一点,RSA公钥暗码体系才能够以其较高的安全性为人们广泛承受。可是RSA公钥暗码体系也存在许多不足之处:加解密算法中触及很多的数值核算问题导致核算时刻开支较大,在必定程度上约束了其运用规模。且密钥的发生遭到素数发生技能的约束,因而很难做到一次一密。为确保安全性有必要选取1024 bits或以上,但这就使得运算速度较慢,并且跟着大数分化技能的开展,这个长度还在添加,不利于数据格式的标准化,致使其完结的难度增大,实用性下降。

因而,怎么进步密钥发生技能,开展更快速、更准确的大素数生成办法,完善RSA加密算法的大整数模幂乘运算,规划运算速度更快的求模和求幂算法,是很有含义的—个探究方向。

3 RSA加密算法的改善及完结

针对RSA加密算法加密速度慢的问题,经过进一步的研讨,提出了SMM算法。SMM(Symmetry of Modulo Multiplication)算法是运用乘同余对称特性来削减RSA加密核算中乘法和求模运算量的一种快速算法。RSA加密是对明文求幂剩下的进程为:

y=n (1)

传统RSA算法是将指数表明成二进制数的方式,并将幂乘变成一系列乘同余的迭代。SMM算法是在每步迭代中对乘数进行有条件的代换。乘同余和平方剩下的对称性有:

(n-i)(n-j)≡ijmod n (2)

(n-i)2mod n≡i2mod n (3)

j(n-j)≡(n-j)i≡-ijmod n (4)

其代换状况如下:假如ai-1表明第i-1步迭代的成果,则在进行第i步迭代时,若ai-1或g(n-1)/2,则坚持原数不变;假如ai-1或g≥(n-1)/2则运用n-ai或n-g来替代ai-1或g[8,9]。

因为运用SMM办法,削减了乘法时刻和求模运算量,改善后的RSA加密算法理论上能够使得算法速度得到必定程度的进步。

为了便利将改善前后的算法做比较,本文随机素数p、q仍挑选61和67。依据f(n)=(p-1)(q-1)可得f(n)为3960 c,随机数e挑选17,可得公钥为(17,4087),私钥为233。改善后的RSA加密算法运转成果如图3所示。与图2比照可知,相同初始条件下原RSA算法所用的加密时刻为2.667 ms,改善后算法所用的加密时刻为1.669 ms,加密速度进步了约37.4%,且程序的杂乱度也有所下降。

RSA加密算法及其改善算法的研讨和完结

改善后的RSA加密算法能够经过简略的循环迭代完结整个RSA加解密进程,削减了将十进制数据转化为二进制数组和用扩展的欧几里得算法求乘法逆元这两步,不只下降了程序的杂乱性,并且进步了运算的功率。

4 定论

本文针对RSA加密算法时刻开支高和程序杂乱的缺陷,提出一种依据乘同余特性的SMM加密改善算法,该改善算法可削减RSA模幂乘运算进程耗时以及进步RSA加解密速度。最终经过改善前后算法的实例比照证明晰本文所提改善RSA加密算法的有效性。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/283760.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部