RSA 学习笔记(二)RSA
RSA 密钥生成的步骤
第一步 随机选择两个不相等的质数p和q
比如,选择61和53 (实际应用中,这两个质数越大,就越难破解。)
第二步 计算p和q的乘积n
n=61∗53=3233
n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位。
第三步 计算n的欧拉函数φ(n)
根据公式:φ(n)=(p−1)(q−1)
得到 φ(3233)=60∗52=3120
第四步,随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。(在判断公钥是否可行时,e > φ(n)也没有问题 )见结尾老师的回答
e.g. 在1到3120之间,随机选择17。(实际应用中,常选择65537)
第五步,计算e对于φ(n)的模反元素d。
利用扩展欧几里得算法(The Extended Euclidean Algorithm)(Lecture 4)求得:
17−1mod 3120=2753
即 d = 2753
第六步,将n和e封装成公钥,n和d封装成私钥。
公钥 (n, e) 私钥 (n, d)故本例中,公钥 (3233, 17), 私钥(3233, 2753)
RSA 算法的可靠性
有无可能在已知n和e的情况下,推导出d ?