1.RSA是什么?
- RSA是一种非对称加密算法;
- 分为公钥与私钥,公钥公开作为其他人加密使用,私钥自己保留作为解密使用;
- RSA是当今广泛使用最安全的加密算法之一;
2.基础数学知识
- 中国剩余定理-求余(韩信点兵问题)
- 5 mod 3 = 2
- 10 mod 4 = 2
- 14 mod 3 = 2
- 14 mod 4 = 2 说明:14与2以4为模同余;
- 10^2 mod 3 = 1
3.RSA加解密原理
- 密文 = 明文^E mod N
- 明文 = 密文^D mod N
- 计算N、E、D?
- 获取两个足够大的素数(又称质数:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数) p和q;
N = p * q;
2.计算L,L是p-1与q-1的最小公倍数:
最小公倍数:
10与3的最小公倍数:30
10与2的最小公倍数:10
L = lcm(p-1,q-1)
3.计算E,E是一个比1大,比L小的数,E和L的最大公约数为1
1<E<L
gcd(E,L) = 1
4.求D
1<D<L
E*D mod L = 1
注意:求模运算中的等号硬干三个横
判断质数的方法包括费马测试和米勒.拉宾测试等;
4.RSA破解
关键点是在于对N的质因子分解,如果分解了N,则会很方便的破解;
5.RSA其他用途
RSA还可以用来做数字签名