生活随笔
收集整理的這篇文章主要介紹了
buu Dangerous RSA
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
查看題目
類型:低加密指數攻擊 e很小 n很大又不好分解
腳本:RSA各題型腳本\e=2-低加密指數攻擊\低加密指數攻擊.py
低加密指數攻擊:
所謂低加密指數指的就是e非常小的情況下,通常為3。
這種題目通常有兩種類型,一種直接爆破,另外一種是低指數廣播攻擊。
先介紹比較簡單的情況。假設e=3, e很小,但是n很大。
回顧RSA加密公式: C=M^e % n (C密文,M明文)
'''
當M^e < n 時,C = M^e ,所以對C開方就能得到M
'''
from gmpy2
import iroot
import libnum
n
= 0x52d483c27cd806550fbe0e37a61af2e7cf5e0efb723dfc81174c918a27627779b21fa3c851e9e94188eaee3d5cd6f752406a43fbecb53e80836ff1e185d3ccd7782ea846c2e91a7b0808986666e0bdadbfb7bdd65670a589a4d2478e9adcafe97c6ee23614bcb2ecc23580f4d2e3cc1ecfec25c50da4bc754dde6c8bfd8d1fc16956c74d8e9196046a01dc9f3024e11461c294f29d7421140732fedacac97b8fe50999117d27943c953f18c4ff4f8c258d839764078d4b6ef6e8591e0ff5563b31a39e6374d0d41c8c46921c25e5904a817ef8e39e5c9b71225a83269693e0b7e3218fc5e5a1e8412ba16e588b3d6ac536dce39fcdfce81eec79979ea6872793c
= 0x10652cdfaa6b63f6d7bd1109da08181e500e5643f5b240a9024bfa84d5f2cac9310562978347bb232d63e7289283871efab83d84ff5a7b64a94a79d34cfbd4ef121723ba1f663e514f83f6f01492b4e13e1bb4296d96ea5a353d3bf2edd2f449c03c4a3e995237985a596908adc741f32365k
= 0
while 1:res
=iroot
(c
+k
*n
,3)if(res
[1]==True):print(libnum
.n2s
(int(res
[0])))breakk
=k
+1'''第二種寫法
當M^e > n 時,此時用爆破的方法假設我們 M^e / n 商 k 余數為c,所以M^e = k*n + C,對K進行爆破,只要k滿足 k*n + C能夠開方就可以
'''
'''
import gmpy2
from libnum import*
n = 0x52d483c27cd806550fbe0e37a61af2e7cf5e0efb723dfc81174c918a27627779b21fa3c851e9e94188eaee3d5cd6f752406a43fbecb53e80836ff1e185d3ccd7782ea846c2e91a7b0808986666e0bdadbfb7bdd65670a589a4d2478e9adcafe97c6ee23614bcb2ecc23580f4d2e3cc1ecfec25c50da4bc754dde6c8bfd8d1fc16956c74d8e9196046a01dc9f3024e11461c294f29d7421140732fedacac97b8fe50999117d27943c953f18c4ff4f8c258d839764078d4b6ef6e8591e0ff5563b31a39e6374d0d41c8c46921c25e5904a817ef8e39e5c9b71225a83269693e0b7e3218fc5e5a1e8412ba16e588b3d6ac536dce39fcdfce81eec79979ea6872793
c = 0x10652cdfaa6b63f6d7bd1109da08181e500e5643f5b240a9024bfa84d5f2cac9310562978347bb232d63e7289283871efab83d84ff5a7b64a94a79d34cfbd4ef121723ba1f663e514f83f6f01492b4e13e1bb4296d96ea5a353d3bf2edd2f449c03c4a3e995237985a596908adc741f32365i = 0
while 1:if(gmpy2.iroot(c+i*n,3)[1]==1): #開根號print(gmpy2.iroot(c+i*n,3))breaki=i+1'''
運行得到flag
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的buu Dangerous RSA的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。