MD5的原理在密码学领域,美国一直在向全世界推广MD5密码,并一再声称没人能破解我们的MD5密码。就连著名的密码学家比哈姆也把破解MD5密码当成了毕生的梦想。(这话是很多年前说的。不用看太多,简单介绍一下就好~)目前文件验证广泛使用的是MD5。当然,作为一种“密码”,它还可以用在密码管理、数字签名等领域。
加密原理如下:
MD5刚出来的时候确实加密的很厉害,但是经过几年的发展,1996年左右发现可以破解,2004年被中国的王小云教授发现无法防止碰撞(所谓的“碰撞”并不是正向破解,而是用其他方式产生了同样的哈希值)。
既然MD5可以破解,那今天就来看看FPGA破解的几个项目吧~
FPGA-MD5-cracker https://github . com/John-Leitch/FPGA-MD5-cracker
利用verliog的64级流水线实现MD5破解。在100mhz时钟的DE0-Nano(Altera FPGA)上可靠运行,每秒计算1亿HASH。
本项目是一个硬件MD5解析器,围绕MD5哈希函数的高吞吐量和流水线特性实现。它由三个设备组成:
DE0-Nano FPGA的主力。该设计相当大,消耗了21,257/22,320 (95%)个逻辑单元。
Netduino Plus 2充当编程器,通过SPI与FPGA通信,使用以太网与计算机连接。我选择NP2是因为它是我手头唯一的3.3v SPI主器件。其他设备也可以,但是如果你用的是DE0-Nano,请记住Cyclone IV承受不了5v。另外值得注意的是,如果选择另一种设备,可能要重新编写编程器,因为目前的实现是用C#编写的。
Arduino LCD任何兼容日立HD44780的LCD都可以使用。为了简化布线,cracker使用了4位LCD。
关于硬件连接,项目中有详细的设计。
ntlmv2-crackerhttps://github.com/nimrods8/ntlmv2-cracker
以Max10 FPGA为并行计算平台,128级流水线破解MD4/MD5。
在上述方案的基础上,采用Max10 FPGA作为并行计算平台,利用128级流水线破解MD4/MD5。
md5crackerhttps://github.com/zhemao/md5cracker
基于Cyclone V SoC的硬件MD5破解
因为SoC中有双核ARM,所以不需要其他处理器通信。
md5-hbfhttps://github.com/fallen/md5-hbf
Md5硬件暴力破解IP核。
使用Swapnajit Mittra制造的pancham MD5 IP core。
这种设计可以在斯巴达3E 500K门上以50MHz运行。
已成功合成并应用于Spartan-3A XC3S400A和Spartan-3AN XC3S700AN。
分别在AVNET Spartan-3A fpga开发板和Xilinx Spartan-3AN入门套件上。
当暴力破解显示md5哈希冲突时,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
总结一下今天介绍的MD5破解项目,只有前三个项目值得学习和参考,后面的项目比较乱,有些还缺文件,只适合参考。
虽然今天的项目比较简单,不“入流”,但是对于密码学家来说,这些都是他们奋斗过的方向~
最后感谢各位大佬的开源项目,让我们受益匪浅。以后有什么感兴趣的物品可以后台留言或者微信加留言。今天到此为止。我很心痛,期待下一篇文章能见到你。
审核编辑:李倩
标签:项目硬件流水线