Encryption

AES 密鑰的直接 RSA 加密是否安全?

  • January 6, 2020

我想知道:如果我們採用這個方案/程序並且每一個看起來都非常安全(至少對我來說),它真的安全嗎?或者在這個過程中是否隱藏了一個漏洞?

這是方案:

Bob 有一個帶模數的 RSA 密鑰 $ N $ 具有被認為是安全的大小,2048 和公共權力 $ e=3 $ (應確保有效加密)。

Alice 想給 Bob 發送一個大文件,並選擇對稱加密:她使用隨機 $ k $ 用於 AES 並使用 RSA 加密發送 $ C=k^e \bmod N $ ,然後使用密鑰發送AES加密的文件 $ k $ .

為了解密文件,Bob 恢復 $ k $ 使用 $ k=C^d \bmod N $ 然後使用 AES 解密加密文件 $ k $ 是關鍵。

這個程序真的安全嗎?

在紙面上,它使用安全參數並且看起來很安全,但我不確定,因為 $ k $ 這裡用的太多了。我在這裡缺少一些隱藏的漏洞嗎?

編輯:我要問的是關於攻擊它,所以你能否強調攻擊它而不是提出替代方案?我不完全理解,我理解是因為 AES, $ k^3 $ 不能超過 768 位,因此它不通過模數(即 2048)。但我不太了解技術細節,如果您能詳細說明它而不是可能的緩解措施,我將不勝感激。

非常感謝您

該方案遭受教科書 RSA 的經典問題,例如通過 RSA-KEM(如 kelalaka 概述)或 RSA-OAEP 減輕了該問題。

當你計算 $ k^3\bmod N $ ,你會體驗到$$ c=k^3\stackrel{k< 2^{256}}{\leq}\left(2^{256}\right)^3=2^{768}\ll 2^{2000}<N $$

現在記住如何 $ x\bmod N $ 作品:如果 $ x\geq N $ ,然後遞歸計算並返回 $ (x-N)\bmod N $ 否則你會回來 $ x $ .

鑑於 $ c\bmod N $ 適合“其他”情況, $ c $ 只是簡單地返回。現在對手可以計算 $ \sqrt[3]c $ 正如你的計算器對實數所做的那樣(更精確一點),你得到 $ k $ 背部。

請注意,上述弱點並未違反 RSA 假設,因為該假設明確指出 $ x $ 是均勻隨機抽樣的 $ \mathbb Z^*_N $ 1英寸 $ c=x^e\bmod N $ .

1: $ \mathbb Z^*_N $ 是集合 $ {1,\ldots, N-1} $ 沒有任何 $ x $ 這樣 $ \gcd $ $ (x,N)>1 $

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