RSA算法
来源:互联网 发布:vmware mac os 慢 编辑:程序博客网 时间:2024/06/05 03:25
RSA 算法是一个很重要的加密算法,在有网络通信的地方基本都有 RSA 算法。RSA 算法的思想很容易理解,但是计算量却十分庞大,这也是为什么说 RSA 算法很安全的原因。我们通过一个简单的例子来认识一下 RSA 算法。
首先 RSA 算法要生成一个密钥对,密钥生成的步骤:
第一步:RSA 的首要任务是要选两个大素数 p,q ;比如我选择 3 和 11(实际的 RSA 算法选择的素数是很大的,这里为了方便演示,这里选择两个很小的素数)
第二步:计算 n = p*q,n 就是密钥长度,这个值越大越安全。即 n = 3*11 = 33,33写成二进制的形式是 100001,共六位,所以这里的密钥长度为 6。目前能破解的 RSA 密钥长度为 768 位。实际应用中,RSA 密钥长度一般是 1024 位,有些重要场合甚至是 2048 位
第三步:计算 n 的欧拉函数 ø(n) = (p-1)(q-1);即 ø(n) =(3-1)*(11-1)= 20
第四步:选 e,e 满足 1 < e < ø(n),并且 gcd[e,ø(n)] = 1(即 e 与 ø(n) 互为素数);这里选 e = 7
第五步:求 d,根据公式 e*d ≡ 1mod[ø(n)] 可得 7*d ≡ 1mod 20,即 7d - 1 = 20β,(β∈Z),即 7d - 20β = 1。相当于求解二元一次方程 7x – 20y = 1 ,解得 x =3 ,y =1 ,即 d =3
第六步:将 n 和 e 封装成公钥,n 和 d 封装成私钥。所以公钥为(33,7)私钥为(33,3),公钥公布给所有要给自己发信息的用户,私钥自己保密
算出公钥和私钥后就可以进行加密运算了。这里有两个重要的公式
其中C为密文,M 为明文
例如我要对 19 这个明文进行加密,C=19^7 mod33=13,即明文 19 的密文位13
对方接收到密文后通过解密公式 M=C^d mod(n) 可得,M=13^3 mod33=19
- RSA算法
- RSA算法
- RSA 算法
- RSA 算法
- RSA算法
- RSA算法
- RSA算法
- RSA算法
- RSA算法
- RSA算法
- RSA算法
- RSA算法
- RSA算法
- RSA算法
- RSA 算法
- RSA算法
- RSA算法
- RSA算法
- 会计科目借贷方向记忆方法
- CSDN博客积分规则
- miui系统神隐模式导致app后台服务无法连接网络
- js之构造器模式(Constructor)
- shell脚本获取进程ID并杀死
- RSA算法
- Spring Boot + Redis + MyBatis 快速开发web应用
- 我的所有技术请点击进入我的网站
- Tomcat上部署MavenSSH项目出现的异常
- 计蒜之道 2017第四场B 商汤科技的行人检测(简单)
- JSON的简单运用
- JavaScript面向对象的程序开发之选项卡Demo讲解——xyp_hf
- Random rand = new Random(47);的简单解释
- apache服务器使用配置记录