MD5原理
?
在密碼領(lǐng)域,美國一直在向全世界推廣MD5密碼,還多次聲稱:沒人能破解我們的MD5密碼,就連著名的密碼學(xué)家Biham,也把破解MD5密碼作為一生的夢(mèng)想。(這是多年前的言論。不要過度解讀,做個(gè)簡單開場白~)
?
MD5目前應(yīng)用比較多的就是文件校驗(yàn),當(dāng)然作為一種“密碼”其也可以在密碼管理以及數(shù)字簽名領(lǐng)域使用。
其加密原理如下:
MD5剛出來的時(shí)候的確加密性很強(qiáng),但是經(jīng)過幾年的發(fā)展,在1996年左右被發(fā)現(xiàn)是可以被破解的,同時(shí)在2004年由中國王小云教授發(fā)現(xiàn)其也不可以防碰撞(所謂“碰撞“并不是正向破解,而是用其他方式生產(chǎn)一個(gè)一樣的HASH值)。
既然MD5可以被破解,那我們今天就看幾個(gè)用FPGA破解的項(xiàng)目~
fpga-md5-cracker
https://github.com/John-Leitch/fpga-md5-cracker
用verliog編寫的64級(jí)流水線實(shí)現(xiàn)MD5破解。在 DE0-Nano(Altera FPGA) 上以 100mhz 時(shí)鐘進(jìn)行可靠的運(yùn)行,每秒計(jì)算 1 億次HASH。
介紹
這個(gè)項(xiàng)目是一個(gè)硬件 MD5 破解器,它圍繞 MD5 哈希函數(shù)的高吞吐量、流水線特點(diǎn)而實(shí)現(xiàn)的。它由三個(gè)設(shè)備組成:
DE0-Nano FPGA
主力軍。設(shè)計(jì)相當(dāng)大,消耗了 21,257/22,320 (95%) 個(gè)邏輯單元。
Netduino Plus 2
充當(dāng)程序員,通過 SPI 與 FPGA 通信,同時(shí)使用以太網(wǎng)和計(jì)算機(jī)連接。選擇 NP2 是因?yàn)樗俏沂诸^上唯一的 3.3v SPI 主設(shè)備。其他設(shè)備也可以工作,但如果使用 DE0-Nano,請(qǐng)記住 Cyclone IV 不能承受 5v。還值得注意的是,如果選擇另一種設(shè)備,可能不得不重寫程序員,因?yàn)楫?dāng)前的實(shí)現(xiàn)是用 C# 編寫的。
Arduino液晶屏
任何 Hitachi HD44780 兼容的 LCD 都應(yīng)該可以工作。為了簡化接線,破解者使用 4 位模式的 LCD。
關(guān)于硬件連接,項(xiàng)目里都有詳細(xì)的設(shè)計(jì)。
ntlmv2-cracker
https://github.com/nimrods8/ntlmv2-cracker
使用Max10 FPGA作為并行計(jì)算平臺(tái),128級(jí)流水線破解MD4/MD5
在上面項(xiàng)目基礎(chǔ)上,使用Max10 FPGA作為并行計(jì)算平臺(tái),128級(jí)流水線破解MD4/MD5。
md5cracker
https://github.com/zhemao/md5cracker
基于Cyclone V SoC 的硬件 MD5 破解器
因?yàn)镾oC中有雙核的ARM所以不需要其他的處理器進(jìn)行通信。
md5-hbf
https://github.com/fallen/md5-hbf
md5 硬件暴力破解 IP 核
使用 Swapnajit Mittra 制造的 pancham MD5 IP 核 < http://www.angelfire.com/ca/verilog >
該設(shè)計(jì)可以在 spartan 3E 500K 門上以 50MHz 運(yùn)行。
它已成功綜合并用于 Spartan-3A XC3S400A 和 Spartan-3AN XC3S700AN
分別在 AVNET Spartan-3A fpga 開發(fā)板和 Xilinx Spartan-3AN 入門套件上。
當(dāng)暴力破解顯示 md5 哈希沖突時(shí),usart 輸出有效并顯示明文密碼。
其他
https://github.com/dnet/fpga-md5
https://github.com/davidgfnet/fpga-hash-bruteforcer
https://github.com/ebrahimAlhaddad/MD5-Hardware-Accelerator
https://github.com/bhagyasr/MD5-Cracker
總結(jié)
今天介紹的MD5破解項(xiàng)目,只有前三個(gè)項(xiàng)目值得學(xué)習(xí)參考,后面項(xiàng)目挺亂的,并且有些還缺少文件,只適合參考。
今天的項(xiàng)目雖然相對(duì)簡單并且不“入流”,但是對(duì)于搞密碼學(xué)的人來說,這些都是他們?cè)?jīng)奮斗的方向~
最后,如果覺得今天項(xiàng)目無聊的話,我給大家咬個(gè)打火機(jī)吧~
?
最后,還是感謝各個(gè)大佬開源的項(xiàng)目,讓我們受益匪淺。后面有什么感興趣方面的項(xiàng)目,大家可以在后臺(tái)留言或者加微信留言,今天就到這,我是爆肝的碎碎思,期待下期文章與你相見?! ?/p>
?
評(píng)論