Rsa

為什麼 RSA-KEM 比 Textbook-RSA 更安全?

  • November 30, 2019

我正在研究 RSA-KEM,但我不明白為什麼在兩方(比如 A 和 B)之間交換密鑰時它應該像填充 RSA 消息(例如使用 RSA-OAEP)一樣安全。

很容易看出 Textbook-RSA 是有問題的,因為發送密鑰 $ k_1^{e_B} \bmod n $ 使攻擊者有可能分析消息。假設碰巧 A 向 B 發送了第二個密鑰 $ k_2^{e_B} = (42 k_1)^{e_B} = 42^{e_B} k_1^{e_B} $ (在下面的 $ \bmod n $ 總是省略)。攻擊者很容易注意到這一點,因為它可以分裂 $ k_2^{e_B} $ 經過 $ 42^{e_B} $ .

現在讓我們假設 A 和 B 正在使用 RSA-KEM 交換密鑰。攻擊者無法再檢測到,例如 $ k_2 = 42 k_1 $ 作為密鑰封裝密鑰用於加密共享密鑰。但是,生成密鑰封裝密鑰的隨機整數****仍然通過 Textbook-RSA 加密

為什麼這不是問題?攻擊者仍然能夠對隨機交換的整數執行例如統計分析,例如,如果 A 和 B 再次執行兩次密鑰交換並且發生以下情況 $ r_2 = 6943 r_1 $ 攻擊者可能會注意到這一點,甚至最終找出隨機整數,從而破壞共享密鑰,因為它依賴於這些整數。

為什麼這不是問題?

因為對於兩種不同的加密,隨機整數是在乘法群的整個範圍內獨立且均勻地隨機繪製的 $ \mathbb Z_N^* $ (在實踐中,這通常近似為 $ [1,n) $ )。RSA 假設現在從字面上說明,如果以這種方式對其進行採樣,則很難從其教科書 RSA 加密中恢復隨機值。

如果 A 和 B 再次執行兩次密鑰交換,並且發生這種情況 $ r_2 = 6943 r_1 $ 攻擊者可能會注意到這一點,甚至最終找出隨機整數

實際上這不會發生,因為兩者 $ r_1,r_2 $ 是獨立隨機的,所以他們的組組合 $ r_1/r_2 $ 有機會 $ 2^{b-n} $ 小於 $ 2^b $ 為了 $ n $ -bit RSA 模數,所以對於一個非常慷慨的估計,假設你下注 $ r_1/r_2 $ 可以猜測的小,說小於 $ 2^{60} $ 並使用弱 1024 位 RSA 加密,那麼你有機會 $ 2^{60-1024}\approx 2^{-940} $ 的商足夠小。這是一個非常微不足道的機率,可能永遠不會被觀察到。

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