0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

几个用FPGA破解的项目-暴力破解MD5

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-07-25 09:02 次阅读

MD5原理

在密码领域,美国一直在向全世界推广MD5密码,还多次声称:没人能破解我们的MD5密码,就连著名的密码学家Biham,也把破解MD5密码作为一生的梦想。(这是多年前的言论。不要过度解读,做个简单开场白~)

MD5目前应用比较多的就是文件校验,当然作为一种“密码”其也可以在密码管理以及数字签名领域使用。

bd47f856-0bb1-11ed-ba43-dac502259ad0.png

其加密原理如下:

bd74d97a-0bb1-11ed-ba43-dac502259ad0.png

MD5刚出来的时候的确加密性很强,但是经过几年的发展,在1996年左右被发现是可以被破解的,同时在2004年由中国王小云教授发现其也不可以防碰撞(所谓“碰撞“并不是正向破解,而是用其他方式生产一个一样的HASH值)。

既然MD5可以被破解,那我们今天就看几个用FPGA破解的项目~

fpga-md5-cracker

https://github.com/John-Leitch/fpga-md5-cracker

用verliog编写的64级流水线实现MD5破解。在 DE0-Nano(Altera FPGA) 上以 100mhz 时钟进行可靠的运行,每秒计算 1 亿次HASH。

介绍

这个项目是一个硬件 MD5 破解器,它围绕 MD5 哈希函数的高吞吐量、流水线特点而实现的。它由三个设备组成:

DE0-Nano FPGA

主力军。设计相当大,消耗了 21,257/22,320 (95%) 个逻辑单元。

bda97338-0bb1-11ed-ba43-dac502259ad0.png

Netduino Plus 2

bddc8b74-0bb1-11ed-ba43-dac502259ad0.png

充当程序员,通过 SPI 与 FPGA 通信,同时使用以太网和计算机连接。选择 NP2 是因为它是我手头上唯一的 3.3v SPI 主设备。其他设备也可以工作,但如果使用 DE0-Nano,请记住 Cyclone IV 不能承受 5v。还值得注意的是,如果选择另一种设备,可能不得不重写程序员,因为当前的实现是用 C# 编写的。

be35c036-0bb1-11ed-ba43-dac502259ad0.png

Arduino液晶屏

be571984-0bb1-11ed-ba43-dac502259ad0.png

任何 Hitachi HD44780 兼容的 LCD 都应该可以工作。为了简化接线,破解者使用 4 位模式的 LCD。

关于硬件连接,项目里都有详细的设计。

ntlmv2-cracker

https://github.com/nimrods8/ntlmv2-cracker

使用Max10 FPGA作为并行计算平台,128级流水线破解MD4/MD5

在上面项目基础上,使用Max10 FPGA作为并行计算平台,128级流水线破解MD4/MD5。

md5cracker

https://github.com/zhemao/md5cracker

基于Cyclone V SoC 的硬件 MD5 破解器

因为SoC中有双核的ARM所以不需要其他的处理器进行通信。

md5-hbf

https://github.com/fallen/md5-hbf

md5 硬件暴力破解 IP 核

使用 Swapnajit Mittra 制造的 pancham MD5 IP 核 < http://www.angelfire.com/ca/verilog >

该设计可以在 spartan 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破解项目,只有前三个项目值得学习参考,后面项目挺乱的,并且有些还缺少文件,只适合参考。

今天的项目虽然相对简单并且不“入流”,但是对于搞密码学的人来说,这些都是他们曾经奋斗的方向~

最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1626

    文章

    21675

    浏览量

    601961
  • 破解器
    +关注

    关注

    0

    文章

    2

    浏览量

    5565

原文标题:优秀的 Verilog/FPGA开源项目介绍(三十零)- 暴力破解MD5

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    急寻电力网关破解方案,求助各位大侠!

    大家好,我最近在项目中遇到了一款电力网关,想要进行一些定制化的功能实现,但无奈无法获取其源代码或相关文档。希望能有经验丰富的朋友提供一些破解或绕过的方法,或者推荐一些相关的资源和工具。我会非常感激,也愿意分享我的项目经验与大家交
    发表于 10-09 12:26

    开源物联网技术--哈希算法MD5加密功能技术分享

    MD5(Message-Digest Algorithm 5)是一种常用的哈希函数,通常用于数据加密和安全校验等场合。MD5 算法可以将任意长度的消息输入计算出一个固定长度的摘要,其生成的摘要具有
    的头像 发表于 09-21 09:57 919次阅读
    开源物联网技术--哈希算法<b class='flag-5'>MD5</b>加密功能技术分享

    分享几个FPGA实现的小型神经网络

    今天我们分享几个FPGA实现的小型神经网络,侧重应用。
    的头像 发表于 07-24 09:30 1100次阅读
    分享<b class='flag-5'>几个</b><b class='flag-5'>用</b><b class='flag-5'>FPGA</b>实现的小型神经网络

    ESP8266上加载micropython,文件的MD5与闪存中的数据不匹配怎么解决?

    ESP8266 上加载 micropython,文件的 MD5 与闪存中的数据不匹配!
    发表于 07-19 08:08

    ESP8266 MD5怎么使用?

    ROM 中有一些 MD5 功能 提供 ( MD5Final = 0x40009900 ); 提供 ( MD5Init = 0x40009818 ); 提供 ( MD5Update =
    发表于 07-10 07:35

    idf.py下载程序,MD5不匹配导致下载失败怎么解决?

    : MD5 of file does not match data in flash! esptool.py failed with exit code 2 idf输出如上所示,我的是ESP32比较
    发表于 06-24 08:38

    esp32烧录flash时md5验证错误,导致不能烧录要怎么处理?

    的代码是可以烧录的。不清楚为什么SDIO就会导致MD5错误,从而导致不能烧录? ESP-IDF版本 V4.2
    发表于 06-24 06:28

    ESP32-Sense Kit idf4.3下载固件md5报错如何解决?

    买的ESP32-Sense Kit,下载固件时出现md5错误,下载器是附带的jtag,请问该如何解决?
    发表于 06-20 08:14

    ESP32-WROOM-32D无法写入flash,MD5检验错误:MD5 of file does not match data in flash怎么解决?

    kbit/s)... Filemd5: b181f1484c264652f0f20d506db35eca Flash md5: 4c03feeb3298a10ad0ea93ed8c09925b MD5
    发表于 06-20 07:14

    esp32如何先将OAT下来的固件进行sha256或者MD5校验,再写入相应的flash区域?

    esp32如何先将OAT下来的固件进行sha256或者MD5校验,再写入相应的flash区域,OAT下来的固件先放在哪里?
    发表于 06-07 07:53

    Linux中文件MD5校验方法

    由于生成的md5信息中,每个md5值后都紧跟着对应的文件的路径(可能是相对路径),于是将生成的md5保存到某个文件中,以后可以使用该文件来检查md5值对应文件内容是否发生了修改。
    发表于 04-22 12:40 613次阅读

    PSIM的电机驱动模块怎么破解

    请问我下载的软件电机模块不能使用怎么解决?显示如下:此元件 PMSM3_V 是电机驱动模块的一部分,而许可证不包括此模块。请与Powersim公司联系购买电机驱动模块。必须要购买吗,我在网上找的软件,该如何破解
    发表于 04-16 22:16

    stm32写BootLoader程序遇到的几个问题求解

    我最近在写一个BootLoader程序,以前没有接触过md5和mbedtls,有些疑问。现在我需要使用md5校验文件完整性,但是官方的md5库需要依赖mbedtls库,mbedtls库必须
    发表于 03-28 07:48

    如何对MD5加密算法优化?

    有人针对程序安全启动过程,进行MD5算法的优化嘛。目前采用标准算法,时间稍长,如果有人做过优化的话,可以分享一下,谢谢。
    发表于 02-18 08:20

    PCB设计(一):软件安装及破解

    大侠好,欢迎来到FPGA技术江湖。本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白
    发表于 01-15 16:30