2.2 模反元素
两个正整数a和n互质,那么一定能找到整数b,使得ab -1 被n来整除,也就是ab ≡ 1 (mod n)
这时侯,b被叫做a的模反元素
RSA加密过程:
取两个质数p1,p2
确定了n值,n = p1 * p2, n值一般会很大程度为1024个二进制位;
确定φ(n),这样φ(n)=(p1-1) * (p2-1);
确定e值,1<e<φ(n),e为整数而且与φ(n)互质;
确定d值,e*d%φ(n)=1;
加密 c = m^e%n;
解密 m=c^d%n
实际的验证:
p1 = 3, p2 = 7;
n = p1 * p2 = 3 * 7 = 21;
φ(n)=(p1-1) * (p2-1)=2*6=12;
1 < e < 12, e = 5 (12 与 e互质则取值{1,5,7,11}, φ(12) = 4)
e * d % φ(n) = 5 * d % 12 = 1,则d =17
设置明文 m = 3, 则 c = m ^ e % n = 3 ^ 5 % 21 = 12
解密密文 m = c ^ d % n = 12 ^ 17 % 21 = 3
下面是数据传输过程图解:
三、OpenSSL
openSSL是苹果系统内置的开源加密库,这样我们就可以通过终端来获取私钥公钥,进行数据加密.
主要命令:
1. 生成RSA私钥
openssl genrsa -out private.pem 1024