Msieve & Yafu - RSA 指數和暴力破解
對於 RSA 背後的數學(一般來說,相對而言),我是一個外行,我的目標是暴力破解大量 512 位 RSA 密鑰。經過四處搜尋,我發現 msieve、yafu 和 Amazon FaaS(因子即服務)程序是主要候選者,但是,使用 Amazon 破解密鑰在成本方面是不切實際的,而我想破解的密鑰(對於長時間關閉的影片遊戲,我會指定,沒有惡意),指數為 17。
簡而言之,我想知道…
公共指數的事實 $ e $ 是 $ 17 $ 沒有幫助。針對正確生成的 RSA 密鑰的標準攻擊(除了它們的公共模數小 $ N $ ) 是因子 $ N $ . 這是保理任務的唯一輸入,這是絕大多數工作的重點。
$ e $ 只涉及準備私鑰的最終形式,這很容易:準備私鑰的程式碼 $ e $ 和主要因素 $ p $ , $ q $ 的 $ N $ 可以生成所需格式的 RSA 密鑰的任何內容。為了 $ N(n,d) $ 格式,一個工作 $ d $ 是 $ e^{-1}\bmod((p-1)(q-1)) $ 這是 Python 中的單行程式碼:
d=pow(17,-1,(p-1)*(q-1))
.在 512 位,GNFS 是首選算法,兩個常見的瓶頸是篩分和矩陣步驟。多個 CPU 絕對有助於篩分。矩陣步驟比較複雜,但是需要大記憶體的機器。
查看CADO-NFS的實現。
GPU 是否有助於分解是有爭議的,我還沒有找到任何關於 512 位實際使用的說明。
如果您有多個 $ N $ 有些是由有缺陷的程序產生的,可能會有特殊的攻擊計算GCD對 $ (N_i,N_j) $ , $ i<j $ . 當發現一個不是 $ 1 $ , 那微不足道的因素 $ N_i $ 和 $ N_j $ . 如果“長時間關閉的影片遊戲”使用了較差的密鑰生成器,那麼值得一試,在 CTF 上下文中更是如此。對此有改進,包括計算和擴展可利用的弱生成器類別;看到這個。