假设:
p = 3
q = 11
n = 33
phi = 20
e = 7
d = 3
如果我想加密数字 123,我会做 (123^7) % 33
,它等于 18
。
现在,如果我想解密 18
,我会执行 (18^3) % 33
,这会得到 24
。
可以看到,输入的数字和解密后的数字是不一样的。有人知道为什么吗?这是否也意味着我必须将数字 123
分解为单个数字,然后加密 1
、2
和 3
分开?
编辑:我知道由于 n
的值,我通过 n
mod
的任何内容都将低于 n
。这是否意味着我必须首先为 p
和 q
选择非常大的数字?
最佳答案
来自 the Wikipedia page for RSA (我的重点):
Bob then wishes to send message M to Alice.
He first turns
M
into an integerm
, such that0 <= m < n
by using an agreed-upon reversible protocol known as a padding scheme. He then computes the ciphertext c corresponding toc = m^e (mod n)
你的 m
( 123
) 不小于 n
( 33
),所以它不起作用。所以是的,您需要从更大的 p
开始和 q
获得更大的n
.
关于math - RSA 加密是否适用于小数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415419/