发布网友 发布时间:2022-05-24 15:59
共1个回答
热心网友 时间:2023-10-19 19:18
1. 选择两个大素数,p 和q ,计算出n=qp,n称为RSA算法的模数。p,q 必须保密,一般要求p,q为安全素数,n的长度大于1024bit ,这主要是因为RSA算法的安全性依赖于因子分解大数问题。
2. 计算n的欧拉数
φ(n)=(p-1)(q-1)
φ(n)定义为不超过n并与n互质的数的个数。
3. 然后随机选择加密密钥e,从[0,φ(n)-1]中选择一个与φ(n)互质的数e作为公开的加密指数。
4. 最后,利用Euclid 算法计算解密密钥d, 满足de≡1(mod φ(n))。其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。
5.得到所需要公开密钥和秘密密钥:
公开密钥(即加密密钥) PK=(e,n)
秘密密钥(即解密密钥) SK=(d,n)