【RSA算法】

RSA算法

  • RSA算法介绍:
  • RSA非对称加密系统:
  • RSA加密算法过程:
  • Python Console示范过程:
  • 有趣编程:
    • 代码如下:
      • 运行结果如下:
  • 上一章链接:[欧几里得算法](https://blog.csdn.net/m0_66318554/article/details/125065200)
    • 每日一言:
      • 持续更新中...


# -*- coding = utf-8 -*-
# @Time : 2022/6/12 11:11
# @Author : lxw_pro
# @File : py-32.py
# @Software : PyCharm

RSA算法介绍:

'''
传统密码:加密算法是秘密的
现代密码系统:加密算法是公开的,密匙是秘密的

对称加密
非对称加密

'''

RSA非对称加密系统:

'''
公钥:用来加密,是公开的
私钥:用来解密,是私有的

'''

RSA加密算法过程:

'''
1-随机选取两个质数p和q
2-计算n=pq
3-选取一个与n互质的小奇数e,K(n)=(p-1)(q-1)
4-对象n,计算e的乘法逆元d,即满足(e*d) mod K(n) = 1
5-公钥(e, n)  私钥(d, n)

加密过程: a = (m^e) mod n
解密过程: b = (c^d) mod n
'''

Python Console示范过程:

'''
PyDev console: starting.
Python 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 16:30:00) [MSC v.1900 64 bit (AMD64)] on win32
p = 53
q = 59
n=p*q
n
3127
fai=(p-1)*(q-1)
fai
3016
e = 3
fai / 3
1005.3333333333334
d = 2011
(e*d) % fai
1
(e*d) % n
2906
e
3
n
3127
d
2011
a = 87
c = (a**e)%n
c
1833
(c**d)%n
87
m = 36
c = (m**e)%n
(c**d)%n
36

'''

有趣编程:

代码如下:

import turtle as t
for i in range(0, 12):
    for j in range(0, 2):
        t.fd(100)
        t.rt(60)
        t.fd(100)
        t.rt(120)
        t.rt(30)

运行结果如下:

【RSA算法】_第1张图片

上一章链接:欧几里得算法

每日一言:

人之所以能,是因为相信能。

持续更新中…

你可能感兴趣的:(python算法,pycharm,RSA算法学习,程序人生6)