Encryption

在嘗試加密英文密文時,RSA 算法中的 p、q、d、e 等值是否有一些限制?

  • September 1, 2022

背景:

根據這張幻燈片,我已經看到純文字的值應該小於 p*q 。 第二天晚上我正在閱讀 Tanenbaum 的電腦網路書,我看到了這個我不確定我是否理解的東西!

塔南鮑姆的例子

我覺得他在說純文字應該小於$$ p*q $$.

我沒有得到$$ 2^k < n $$事物。

讓$$ p=11, q=3 $$

所以,如果我選擇 A,B,C…作為明文。那麼 A=8 位字元。

所以,讓我測試一下:

$$ 2^k < n $$

$$ 2^k=2^8=256 < n=p*q=33 $$

所以,$$ 2^k < n $$不是嗎?那麼,Tanenbaum 在這裡說什麼?我覺得這是非常關鍵的一點。

我將介紹一些 RSA 加密的案例:

$$ CT=(PT)^e , mod, n $$

$$ PT=(CT)^d , mod, n $$

$$ CT= Cipher Text $$

$$ PT=Plain Text $$

$$ e*d/m $$應該給餘數 $ 1 $ , 在哪裡;

$$ m=(p-1)*(q-1); $$在哪裡 $ p, q , are , 2 $ 質數。

A) 發件人需要 $ p=3, q=11 $ .

的價值 $ e=3 $ , $ d=7 $ 滿意 $ remainder=1 $ 健康)狀況。

因此,如果發件人想要發送“SELL”:

$$ S=19, CT=28 $$

$$ E=5. CT=26 $$

$$ L=12, CT=12 $$

$$ L=12, CT=12 $$

二) $ p=2,, q=11 (since , 22<26 $ ,也許這對 Tanenbaum 不起作用?

$ e=3,d=7 $

我這裡只寫CT(即S=17表示17是S經過RSA加密後的密文):

S=17

E=15

L=12

L=12(這裡一樣?為什麼?因為d,e是一樣的?)

C) $ p=13, , q=11 $

$ d=13,, e=37 $

所以,

$$ S=95 $$

$$ E=93 $$

$$ L=12 $$

$$ L=12 $$(再次得到相同的值,這是什麼?即使有不同的值 $ p $ , $ q $ , $ d $ , $ e $ !)

D) $ p=17 $ , $ q=11 $

$ d=23 $ , $ e=7 $

它的例子在這裡。

問題:

a) 如果在 p 或 q 中,任何人都應該更大,是否有任何限制?

b) 是否有任何限制,例如 d 或 e 哪個應該更大?

我知道 e 小於 m 並且 e 大於 1

並且e應該與m互質,即GCD(e,m)=1。

GCD(13,120)=1

對於 d,

de mod m=1

c) 是否有任何情況,在解密過程中,即使一切正常,由於某些原因,我們也無法獲得明文?在過去的幾次中,我有過這種感覺,這讓我很困惑。我不記得這些情況了,但我曾經覺得 p,q 的某些值;RSA 密碼系統不會解密回來。我的朋友不同意我的看法,我沒有通過考試,所以我不確定發生了什麼。

我知道逐字元加密使得這與“單字母密碼”相同,而 RSA 失去了它的本質,這只是一個虛擬的例子。在現實世界中,也許您會將“SELL”轉換為基數 x 併計算它的值並僅對其進行加密。

純文字應小於 $ n=p*q $

是的,這是教科書 RSA 的要求(問題中的那種 RSA)。有效的教科書 RSA 明文和密文僅限於區間內的整數 $ [0,n) $ . 那是因為對於任何整數 $ x $ , 數量 $ x\bmod n $ (前面沒有括號 $ \bmod $ ) 根據定義位於此區間內。

我沒有得到 $ 2^k<n $

這種關係(或稍小的 $ 2^k\le n $ ) 確保任何 $ k $ -bit 位串,當根據無符號二進制約定轉換為整數時,位於 $ [0,n) $ 有效 RSA 明文的間隔。確實,它不滿足 $ n=3\cdot 11 $ 和 $ k>5 $ . 如果我們使用字元的 ASCII 編碼,我們需要 $ n>2^7 $ .

$ e*d/m $ 應該在哪裡給出餘數 1 $ m=(p−1)∗(q−1) $

該條件等效地寫成 $ e,d\equiv1\pmod m $ . 在這方面, $ \equiv $ 符號可以讀為等價於等於; 和 $ \bmod $ 緊接在前面的括號是讀取的(可能在之前有一個小停頓以標記它是一個限定符 $ \equiv $ 而不是操作員)。問題說明了什麼 $ m $ 更經常被注意到 $ \varphi $ (我會這樣做), $ \Phi $ 或者 $ \phi $ (參見歐拉的 totient)。旁

  • 這個條件 $ e,d\equiv1\pmod\varphi $ 還不夠:

    • 要求是 $ p $ 和 $ q $ 是不同的素數(否則定義 $ \varphi $ 必須更改,並且必須設置明文限制)。
    • 這是必需的 $ d>0 $ (否則 $ \operatorname{PT}=\operatorname{CT}^{,d}\bmod n $ 需要模冪的非標准定義)。
  • 這個條件 $ e,d\equiv1\pmod\varphi $ 是不必要的:它可以而且經常被不太嚴格的條件所取代 $ e,d\equiv1\pmod{p-1} $ 和 $ e,d\equiv1\pmod{q-1} $ ; 或等效地 $ e,d\equiv1\pmod\lambda $ 和 $ \lambda=\operatorname{lcm}(p-1,q-1) $ (參見Carmichael 函式)。

自從 $ 22<26 $ , 也許 $ p=2 $ , $ q=11 $ 不工作

實際上,這種參數選擇將不允許解密 $ 22 $ 和更多(字母 V 和後面的字母表中使用的編碼)。

再次明文 $ 12 $ 導緻密文 $ 12 $

具有人為小參數的教科書 RSA 已經成熟,具有這種所謂的不動點:總是至少有三個(包括 $ 0 $ , $ 1 $ , $ n-1 $ ),奇數至少為 9 $ n $ (按照慣例),而且通常更多。因此,具有人為小參數的教科書 RSA,即使通常將公鑰保密,也遠不如替換密碼安全。然而,當固定點變得非常罕見時 $ p $ 和 $ q $ 是大的隨機素數(有數百個十進制數字,而不是問題中的 1 或 2,這是安全所必需的)。在安全的 RSA 中,明文是隨機的,因此以消失的機率命中固定點。

是否有任何限制如果 $ p $ 或者 $ q $ 任何人都應該更大?

不: $ p $ 和 $ q $ 扮演對稱角色。它們可以是任何不同的素數。通常,它們是奇怪的,即使在教科書 RSA 中人為地低參數也是如此。如果我們想要安全的 RSA,它們需要很大(數百個十進制數字)和秘密(因此隨機選擇)。

是否有任何限制,例如哪個 $ d $ 或者 $ e $ 應該更大?

沒有教科書 RSA。對於有效 $ (p,q) $ 如上所述,任何 $ (e,d) $ 和 $ e,d\equiv1\pmod{(p-1)(q-1)} $ 和 $ e,d\in\mathbb N^* $ 在允許加密/解密的意義上有效。習慣上加了 $ e>1 $ (自從 $ e=1 $ 是其中的值 $ e $ 使所有點固定)。它通常選擇一個相當小的 $ e $ (幾乎總是 $ e<n $ 並且通常 $ e<n/4 $ 和 $ e<2^{256} $ , 有時與 $ 2^e>n $ 或者 $ e>2^{16} $ 儘管)。通常有一個上限 $ d $ , 通常是其中之一 $ d<(p-1)(q-1) $ 或者稍微寬鬆一點 $ d<n $ (計算時遇到前者 $ d $ 從 $ e $ 作為 $ d=e^{-1}\bmod\varphi $ ,並暗示後者)。什麼時候 $ e $ 很小而且 $ d $ 計算自 $ e $ (兩者都是習慣性的),通常 $ e<d $ ,這對於實際應用來說變得非常有可能 $ n $ .

在現實世界中,也許您會將“SELL”轉換為基數 x 併計算它的值並僅對其進行加密。

這允許加密/解密工作並減輕明文大小的增加,但這不是實踐的。在現實世界中,很少有人直接使用 RSA 加密文本(更不用說使用教科書 RSA)。相反,使用混合密碼系統。當使用 RSA 加密文本時,這是按照RSAES-PKCS1-v1_5或最好的 RSAES-OAEP進行的。


¹ 教科書 RSA 直接將明文加密為 $ \operatorname{CT}=\operatorname{PT}^{,e}\bmod n $ . 這允許驗證明文的猜測,從而使 RSA 對公共類卷上的名稱進行加密毫無意義,即使 $ p $ 和 $ q $ 是正確的。在討論的特定教科書中,實踐中與 RSA 存在進一步的偏差:

  • 一個字母一個字母地加密。

  • 人為的小參數( $ n $ 在安全 RSA 中必須是幾百個十進制數字)。這是為了在沒有帶有適當軟體的電腦的情況下簡化計算,並允許列印數字。

  • 在加密(分別是解密)中, $ \operatorname{PT}^{,e} $ (分別。 $ \operatorname{CT}^{,d} $ ) 在最終的模組化減少之前進行全面評估。即使對於大多數三位數,這也會使列印數字變得不切實際 $ n $ . 這不是模冪運算的完成方式,也不應該教授。

  • 私人指數 $ d $ 實際使用。存在這樣做的實現,但出於性能原因大多數不存在,並且以更快的方式計算相同的數量。以後以這種方式教授 RSA 有很多好處:

    • 教授實際練習和最有效地工作的內容,甚至使手動計算在稍大的參數下變得可行。
    • 不考慮歐拉函式或卡邁克爾函式的概念。它只使用了中國剩餘定理費馬小定理,它們有很多應用。
    • 提供 RSA 解密恢復與解密方式一起工作的明文的證據。
    • 使證明有效:許多其他證明假設 $ \gcd(\operatorname{PT},n)=1 $ ,對於人為的小參數,這遠非確定。
    • 降低這種情況的可能性 $ p\ne q $ 經常被遺忘,因為它是中國剩餘定理所要求的假設。這個條件對於正確解密是必要的,當 $ \gcd(\operatorname{PT},n)\ne1 $ (如問題中出現的那樣),並且獨立於 $ \varphi(n)=(p-1)(q-1) $ 舉行。

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