开发者社区> 问答> 正文

什么是RSA算法,求简单解释。

什么是RSA算法,求简单解释。

展开
收起
知与谁同 2018-07-22 14:26:35 2198 0
1 条回答
写回答
取消 提交回答
  • RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够
    抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。
    基础
    大数分解和素性检测——将两个大素数相乘在计算上很容易实现,但将该乘积分解为两个大素数因子的计算量是相当巨大的,以至于在实际计算中是不能实现的。
    1.RSA密码体制的建立:
    (1)选择两个不同的大素数p和q;
    (2)计算乘积n=pq和Φ(n)=(p-1)(q-1);
    (3)选择大于1小于Φ(n)的随机整数e,使得gcd(e,Φ(n))=1;
    (4)计算d使得de=1mod Φ(n);
    (5)对每一个密钥k=(n,p,q,d,e),定义加密变换为Ek(x)=xemodn,解密变换为Dk(x)=ydmodn,这里x,y∈Zn;
    (6)以{e,n}为公开密钥,{p,q,d}为私有密钥。
    2.RSA算法实例:
    下面用两个小素数7和17来建立一个简单的RSA算法:
    (1)选择两个素数p=7和q=17;
    (2)计算n=pq=7 17=119,计算Φ(n)=(p-1)(q-1)=6 16=96;
    (3)选择一个随机整数e=5,它小于Φ(n)=96并且于96互素;
    (4)求出d,使得de=1mod96且d<96,此处求出d=77,因为 77 5=385=4 96+1;
    (5)输入明文M=19,计算19模119的5次幂,Me=195=66mod119,传出密文C=66;(6)接收密文66,计算66模119的77次幂;Cd=6677≡19mod119得到明文19。
    2019-07-17 22:56:03
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载