密码学基础

平常用的登录密码不叫密码,是登录口令

密码有一个加密和解密的过程

video: https://youtu.be/loJ62rvH8aE

古典密码

凯撒密码

1
2
3
ABC
CDE
// 往后移动3位或者多位

非常容易破解

维吉尼亚密码

不知道密钥是非常非常难破解的

维吉尼亚密码

  • RSA
    • 公钥
    • 私钥
1
2
明文--> 公钥 --> 密文
密文--> 私钥 --> 明文

基于大数难分解
两个质数相乘

1
2
3
4
5
6
7
8
9
10
11
12
13
p1 = 53
p2 = 59
n = 3127 # 53 * 59 = 3127
# 欧拉函数
Φ(n)(p1-1)*(p2-1)= 3016 # fai 小写 φ
e = 3 # e 和欧拉函数互质 只要互质随便取
# 公钥是 n,e
d = (k*φ(n)+1)/e = 2011 # 私钥 (2**3016+1)/3 = 2011

# 验证
m = 89 # 加密信息
c = (m**e)%n = 1394 # 密文 (89**3)%3127 = 1394
明文 = (x**d)%n = 89 # 明文 (1394**2011)%3127 = 89

扩展:

费马小定理来验证.