2020-07-05
10:41:51
rsa算法过程:
(1)选择一对不同的、足够大的素数p,q。
(2)计算n=pq。
(3)计算f(n)=(p-1)(q-1),同时对p, q严加保密,不让任何人知道。
(4)找一个与f(n)互质的数e,且1<e<f(n)。
(5)计算d,使得de≡1 mod f(n)。
(6)公钥KU=(e,n),私钥KR=(d,n)。
(7)加密时,先将明文变换成0至n-1的一个整数M。若明文较长,可先分割成适当的组,然后再进行交换。设密文为C,则加密过程为:C≡Me(mod n)。
(8)解密过程为:M≡Cd(mod n)。
MOD,是一个数学运算符号。指求余运算符,例如a mod b=c,表明a除以b余数为c。
两个整数a,b,若它们除以正整数m所得的余数相等,则称a,b对于模m同余,记作: a ≡ b (mod m);
rsa 算法实例
取p =3 ,q = 11; 则 n = pq = 33; f(n) = (p-1)(q-1) = 20, 在1到20中取e与20互质,取e=3(也可以取其他);
d*3≡1 mod 20 ;取d = 7(d也可以为27等)
公钥KU为e,n : 3,33
私钥KR为d, n : 7, 33
原文11,5,25进行加密
113 mod 33 = 11
53 mod 33 = 26
253 mod 33 = 16
对11,26, 16解密
117 mod 33 = 11
267 mod 33 = 5
167 mod 33 = 25
引用自:https://segmentfault.com/a/1190000016836514