传统密码无论加密解密都用了一个密码
rsa非对称性加密由一对密钥组成,配对使用
public key(代号’e’),公钥,专门用来加密,可以由多人掌管
private key(代号’d’),私钥,专门用来解密,由主人自己进行保管
一般公开发布公钥,自己用私钥进行解密
举个例子,我是B:
A 想要发送’Hello World’一个字符串给我, A 必须在我这拿一个公钥(e),用公钥(e)加密了这段文字,然后通过网络发送给我,我用私钥(d)就可以把加密后的东西给解开,解开后可以看到里面的内容
原理
用到的知识
- 质数: 大于1的自然数,只能被1和本身整除
1.选择两个非常非常大的质数(数字越远,越难被解密)
- 举个例子:
- 1.选择两个质数
- p = 3, q = 11
2.设一个变量n = p * q
- 也就是n = 3 * 11 = 33
3.设一个欧拉函数Z = (p - 1)(q - 1)
- 也就是Z = 2 * 10 = 20
- 作用是取值范围
4.设一个e 加密密码,必须满足以下条件, 比如 7
- 范围在1 < e < Z
- e和n互质(只有最大公约数为1)
计算过程用python环境来计算,不要用计算器,值会不正确
- 5.设一个d解密密码,必须满足以下条件
- (d * e) % Z = 1
- —————————–
- 也就是7d % 20 = 1
- 窍门: 20 + 1就是符合的值
- 7d = 21
- d = 3
有一条消息m,值为2,即m=2,加密成密文C
加密过程:
C = me% n
C = 27% 33 = 29
此时在网络传输过程中是29
解密过程
m’ = Cd% n
m’ = 24389 % 33 = v24389/33 = 2
此时完成了加密解密的过程,最后解密结果是2
版权声明:本文为qq351469076原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。