我在网上搜索在线RSA计算器以及RSA 算法示例我发现这个在线RSA计算器工具 和这个提及算法的网站如下 :
RSA 算法示例
选择 p = 3 和 q = 11 计算 n = p * q = 3 * 11 = 33 计算 φ(n) = (p - 1) * (q - 1) = 2 * 10 = 20 选择 e 使得 1 < e < φ(n) 并且 e 与 n 互质。
令 e = 7 计算 d 的值,使得 (d * e) % φ(n) = 1。一个解决方案是 d = 3 [(3 * 7) % 20 = 1]
公钥是 (e,n) => (7, 33)
私钥为 (d, n) => (3, 33)
m = 2 的加密是 c = 2^7 % 33 = 29
c = 29 的解密为 m = 29^3 % 33 = 2
因为我想自己测试另一个示例,所以我选择了另一对页和问我完成了上述步骤:
p=4259 and q=6053 ==> n=p*q=25779727
φ(n)=(p-1)*(q-1)=25769416
And as GCD(23421481,25779727)=1, I select e=23421481
Now if I want to encrypt '1', its encryption is (1^23421481)%25779727
显然(1^23421481)%25779727=1
但是当我使用在线计算器工具时,输出如下:
如您所见,它返回10098474
的加密值是1
!
问题 1:为什么?我手动计算加密值的步骤有什么问题?
问题2:这个网站如何计算其他数字(1 除外)的表达式?我认为2^23421481
对于这种在线工具来说,在几分之一秒内计算出这个数字真的很大!!(我尝试使用 wolfram-alpha 计算 2^23421481。即使这个大网站也返回超时!):D