Rsa

我們能否在僅控制的情況下強制將選定的密文解密為選定的明文e(=3)e(=3)e(=3)在 RSA 中?

  • October 13, 2022

我從一個著名的 CTF 網站遇到了這個挑戰。我不想提及它,因為我不希望這成為對任何人的暗示。並且為了避免給出挑戰的原始碼,我將嘗試描述程式碼。問題是他們提供了一個帶有實現 Textbook RSA 的類的小腳本(沒有填充或任何東西)。在這個腳本上 $ e $ 是預定義的並且等於 3,所以 $ e=3 $ . 其他 RSA 參數,例如 $ p $ , $ q $ , $ N $ , $ d $ 每次執行腳本時都會根據協議新生成等。需要時也存在密碼隨機性(例如在生成 $ p $ 和 $ q $ )。庫 pycryptodome 用於數學和隨機操作。所以腳本是無狀態的,除了值 $ e $ . 關鍵是,與腳本文件一起,他們提供了加密形式的標誌“大概”與他們提供的腳本。當然,標誌的內容不是腳本的輸出。但是用腳本解密加密的標誌會給出實際的標誌。當然,那裡需要利用 RSA 的屬性,因為腳本使用隨機參數執行,除了 $ e $ . 我的問題是,無論參數如何,有人如何操縱密文以使明文相同 $ p,q,N,d $ ?

PS:當然 $ p $ 和 $ q $ 是隨機素數和 $ N $ 是他們的產品和 $ d $ 是 3 的逆子群中的乘法逆 $ N $ .

只有在密文的情況下才會出現這種情況, $ c $ , 是一個完美的立方體,即 $ c=m^3 $ 對於一些消息/標誌。在這種情況下,只要 $ N $ 大於 $ c $ ,不會有減少,所以 $ c $ 不會改變。這等效於選擇小於最小可能模數的立方根的消息/標誌。

如果是這種情況,直接計算立方根將恢復消息,而與生成的模數無關。

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