math - RSA 加密是否适用于小数字?

标签 math rsa private-key

假设:

p = 3
q = 11
n = 33
phi = 20
e = 7
d = 3

如果我想加密数字 123,我会做 (123^7) % 33,它等于 18。 现在,如果我想解密 18,我会执行 (18^3) % 33,这会得到 24。 可以看到,输入的数字和解密后的数字是不一样的。有人知道为什么吗?这是否也意味着我必须将数字 123 分解为单个数字,然后加密 123 分开?

编辑:我知道由于 n 的值,我通过 n mod 的任何内容都将低于 n 。这是否意味着我必须首先为 pq 选择非常大的数字?

最佳答案

来自 the Wikipedia page for RSA (我的重点):

Bob then wishes to send message M to Alice.

He first turns M into an integer m, such that 0 <= m < n by using an agreed-upon reversible protocol known as a padding scheme. He then computes the ciphertext c corresponding to

c = m^e (mod n)

你的 m ( 123 ) 小于 n ( 33 ),所以它不起作用。所以是的,您需要从更大的 p 开始和 q获得更大的n .

关于math - RSA 加密是否适用于小数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415419/

相关文章:

algorithm - 4D空间中的最小二乘线拟合

c - 如何将一个字符串分成多个部分并反向重构?

Javamail 传输错误

c++ - 尝试在具有 GMP 的 C++ 上使用 RSA 破译文件会产生不可预测的结果

c - 生成私有(private) RSA 私钥并以编程方式设置密码

certificate - .p12 证书/文件的使用和实用程序

mysql - sql中是否有像EXCEL中那样的ROUNDDOWN()函数

java - 有没有更好的迭代方法来找到可整除的数字?

bash - Git Bash - ssh-keygen 不工作(在生成 RSA key 对之前退出)

python - 使用 Paramiko Transport( channel )使用私钥进行身份验证