温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

RSA算法

发布时间:2020-08-25 05:52:47 来源:网络 阅读:523 作者:vampiredx 栏目:安全技术

RSA是(Rivest Shamir and Adleman)的缩写,Ron Rivest, AdiShamir Leonard Adleman这仨哥们挺NB的,20多年前创造了这个算法,现在也已经广泛使用了。

这是一种公钥的加密算法,加密和解密是互逆的。如果用公钥加密,私钥解密,可实现保密通信;如果用私钥加密,公钥解密,可实现数字签名。下面说一下算法:

1、首先选择两个大素数pq

都要大于10^100,因为小素数很容分解

2、令n=p*qz=(p-1)*(q-1)   

这部没什么可解释的

3、选择d,要求dz互质。         

只要是互质数都行

4、选择e,要求e*d=1 (mod z)    

一说这个mod就烦人了,这里的mod的意思是数学符号,并非编程的mod,好比a=b (mod c),意思是ab除以c后,余数相同。

5、明文P被分为k位的块,k要满足2^k<n的最大整数,于是0<=p<n

这不没什么可说的。

 

下面是加密和解密过程,先说公钥加密,私钥解密的过程:

1、公钥加密用到en这两个数。C=P^e (mod n)

C是加密后的密文,P是明文,en就是算出来的数字了,但是这里的mod是电脑编程里的运算符,意思是取余数。

    解密用到dnP=C^d (mod n)

    这样明文P就出来了。

2、私钥用到dn这两个数。C=P^d (mod n)

    解密用到en这两个数。P=C^e (mod n)

 

可以代两个简单的2位素数来试试,不过你会发现,pq很容易就被推算出来了,所以为什么说要大素数的原因就在这里。因为安全性是基于大素数分解的困难性,如果***者要分解200位的数,需要40亿年;500位的数,需要10^25年。这就是为什么RSA的重大缺陷是无法从理论上把握它的保密性能如何。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI