Rsa
如果我選擇兩個特定的小素數,RSA 問題?
我知道 RSA 通常是用大整數製作的,但我試圖自己製作算法(在維基百科的幫助下),我用小數字製作它以輕鬆跟踪問題。
問題是有時對加密資訊的解密是錯誤的!正是當我選擇
p=11
and時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 模數上,但如果明文是隨機選擇的,則機率極低。