RSA算法逻辑
1 选择一对不同的、足够大的素数p,q。
2 计算n=pq。
3 计算f(n)=(p-1)(q-1)
4 找一个与f(n)互质的数e,且1<e<f(n)。
5 计算d,使得de≡1 mod f(n)。这个公式也可以表达为d ≡ mod f(n)
6 公钥KU=(e,n),私钥KR=(d,n)。
7 加密时,先将明文变换成0至n-1的一个整数M。若明文较长,可先分割成适当的组,然后再进行交换。设密文为C,则加密过程为:
8 解密过程为:
RSA 参数的选择
安全性方面需注意参数的选取:(建议参考:《应用密码学》2017版 P156-P157)
1、不同的用户不能用相同的模数 n,即一个模数只能一个人用
2、p 和 q 的差值要大,一般相差几个 bit ,比如:n 为 1024 bit 时,p 取 508 b