Encryption

RSA 如何使用公鑰防止暴力破解?

  • October 4, 2015
    1. Bob 計算出私鑰和公鑰。
    1. Bob 將他的公鑰發送給 John。
    1. Jeff 是第三方不受歡迎的成員,並設法在傳輸過程中搶奪了公鑰。
    1. John 加密他的消息並將其發送給 Bob。
    1. 傑夫再次能夠為自己竊取此加密消息。
    1. Bob 可以用他的私鑰解密消息。

但是傑夫呢?所以他不能用單向密鑰解密。但是,如果他蠻橫呢?例如,John 的原始值為 2,加密後的值現在假設為 200。Jeff 現在可以從 1 開始向上計數,並使用公鑰加密所有值,直到它與 200 的值匹配。他發現 2 與該值匹配。所以現在他有了原來的價值。

我知道這不是那麼簡單和容易,它甚至可能在真正的 RSA 標准上根本不起作用,但我想知道阻止這種攻擊的程序是什麼。

如果 Jeff 有公鑰和加密的消息,為什麼他不能猜出消息,用公鑰加密它,看看他是否得到了加密的消息。

好吧,這種特殊的攻擊被 RSA 填充方法挫敗了。所有 RSA 加密填充方法都在填充中包含隨機性(特別是為了阻止這種攻擊)。每當 John 加密一條消息時,他(實際上是他的加密庫)選擇一些隨機位,並使用這些隨機位填充消息(即為核心 RSA 操作準備消息)。因此,加密消息是明文消息和那些隨機位的函式。

傑夫當然可以拿到公鑰,並用它對消息的猜測進行加密;但是,除非他碰巧選擇了約翰使用的相同隨機位,否則他的加密消息看起來會有所不同,因此將實際密文與他的測試密文(很有可能)進行比較不會告訴他什麼。而且,我們使用了足夠多的隨機位,這樣 Jeff 就無法強行使用這些位。

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