Encryption

你能辨識出用於加密某些東西的公鑰嗎?

  • June 11, 2013

如果我用公鑰加密一個字元串,加密的密文是否會顯示我用來加密它的公鑰?基本上,我不希望任何人知道密文的收件人。

我正在考慮 RSA,但也對 DSA 感興趣。密文未知。

RSA 密文不會透露它被加密給誰,但它可能會透露一些關於它不是誰的資訊。

我們假設每個人都有一個相同長度的 RSA 密鑰(例如 2048 位)。現在,一個公鑰由一個大的模數 N(和一個指數,這對於本次討論並不重要)組成;密文由介於 0 和 N-1 之間的值 C 組成。

假設 Alice 有一個公鑰 $ N_{alice} $ Bob 有不同的公鑰 $ N_{bob} $ . 如果我們用 Alice 的公鑰加密一條消息,它會生成一個值 $ C < N_{alice} $ . 現在,如果 $ N_{bob} < N_{alice} $ , 那麼有可能 $ C \ge N_{bob} $ ; 如果發生這種情況,監聽的人可以立即推斷出 $ C $ 沒有用 Bob 的公鑰加密。

現在,這不是 RSA 的固有問題。如果 Alice 和 Bob 合作,他們可以生成密鑰 $ N_{alice} \approx N_{bob} $ (比如說,在前 200 位同意);這將使攻擊者不太可能排除特定的公鑰,這不會降低 RSA 的安全性,但通常不會這樣做。

至於 DSA,好吧,DSA 不加密消息。如果我們查看基於 DL 的加密系統(El Gamal,IES),我們會看到密文沒有洩露公鑰(假設各種公鑰使用相似的參數;例如,同一個組)。

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