Rsa

如果我選擇兩個特定的小素數,RSA 問題?

  • May 11, 2022

我知道 RSA 通常是用大整數製作的,但我試圖自己製作算法(在維基百科的幫助下),我用小數字製作它以輕鬆跟踪問題。

問題是有時對加密資訊的解密是錯誤的!正是當我選擇p=11and時q=5,其餘部分是這樣的:

n=55
euler(n)=40 = (p-1)(q-1)
e=13
d=37

加密消息(使用 message=65)是:

c=10

並使用中國提醒定理(維基百科的建議):

Dp=7
Dq=1
Qinv=9
m1=10
m2=0
h=2

解密的消息是:

message=10 !!!!!

這是所選素數的問題嗎?我認為其餘的我做得很好,我也用rsa 計算器檢查它。

我也知道選擇 d 和 e 有更多選擇,但選擇它們也可以。也許還有其他一些不在維基百科上的情況?

實際上,這是一個預期的結果,因為 $ 65 \equiv 10 \pmod{55} $ .

你應該選擇 $ m < n $ 以避免這個問題。

除了您選擇的消息大於模數之外,另一件可能讓您感到困惑的事情是,在這種情況下, $ C \equiv P \bmod N $ .

也就是說,你把你的消息,65,相當於 10 模 55,然後加密它,結果是 10,因為 $ 10^{13} \bmod 55 = 10 $ , 所以,解密的時候,取密文 10,自然又得到明文為 10,如 $ 10^{37} \bmod 55 = 10 $ .

這種“密文與明文相同”是使用tiny的神器 $ N $ ; 它確實發生在實際大小的 RSA 模數上,但如果明文是隨機選擇的,則機率極低。

引用自:https://crypto.stackexchange.com/questions/15021