【网络攻防技术】实验三——MD5碰撞实验

本文通过实验详细介绍了如何使用md5collgen生成MD5值相同的文件,并通过修改Lab3_task2.c和Lab3_task3.c代码,创建两个行为不同但MD5值相同的可执行文件。实验揭示了MD5校验值的局限性,即由于有限的MD5值与无限的文件数量之间的冲突,导致不同行为的文件可能拥有相同的MD5值。
摘要由CSDN通过智能技术生成

一、实验要求

本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务:
a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况;
b)参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。
c)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件。
d)回答问题:通过上面的实验,请解释为什么可以做到不同行为的两个可执行文件具有相同的MD5值?

二、实验步骤

(1)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况;

  • 首先创建prefix.txt并修改内容为hail hydra
    在这里插入图片描述
  • 生成两个MD5相同的文件
    在这里插入图片描述
  • 验证文件是否相同、MD5是否相同
    在这里插入图片描述
  • 分别查看out1.bin和out2
sha碰撞,MD5碰撞实现,#!/usr/local/bin/perl # It was noted that Intel IA-32 C compiler generates code which # performs ~30% *faster* on P4 CPU than original *hand-coded* # SHA1 assembler implementation. To address this problem (and # prove that humans are still better than machines:-), the # original code was overhauled, which resulted in following # performance changes: # # compared with original compared with Intel cc # assembler impl. generated code # Pentium -25% +37% # PIII/AMD +8% +16% # P4 +85%(!) +45% # # As you can see Pentium came out as looser:-( Yet I reckoned that # improvement on P4 outweights the loss and incorporate this # re-tuned code to 0.9.7 and later. # ---------------------------------------------------------------- # Those who for any particular reason absolutely must score on # Pentium can replace this module with one from 0.9.6 distribution. # This "offer" shall be revoked the moment programming interface to # this module is changed, in which case this paragraph should be # removed. # ---------------------------------------------------------------- # $normal=0; push(@INC,"perlasm","../../perlasm"); require "x86asm.pl"; &asm_init($ARGV[0],"sha1-586.pl",$ARGV[$#ARGV] eq "386"); $A="eax"; $B="ecx"; $C="ebx"; $D="edx"; $E="edi"; $T="esi"; $tmp1="ebp"; $off=9*4; @K=(0x5a827999,0x6ed9eba1,0x8f1bbcdc,0xca62c1d6); &sha1_block_data("sha1_block_asm_data_order"); &asm_finish(); sub Nn { local($p)=@_; local(%n)=($A,$T,$B,$A,$C,$B,$D,$C,$E,$D,$T,$E); return($n{$p}); } sub Np { local($p)=@_; local(%n)=($A,$T,$B,$A,$C,$B,$D,$C,$E,$D,$T,$E); local(%n)=($A,$B,$B,$C,$C,$D,$D,$E,$E,$T,$T,$A); return($n{$p}); } sub Na { local($n)=@_; return( (($n )&0x0f), (($n+ 2)&0x0f), (($n+ 8)&0x0f), (($n+13)&0x0f), (($n+ 1)&0x0f)); } sub X_expand { local($in)=@_; &comment("First, load the words onto the stack in network byte order"); for ($i=0; $i<16; $i+=2) { &mov($A,&DWP(($i+0)*4,$in,"",0));# unless $i == 0; &mov($B,&DWP(($i+1)*4,$in,"
网络攻防技术与实战——深入理解信息安全防护体系》是一本介绍网络攻防技术和信息安全防护的书籍。该书通过系统地介绍了网络攻防技术和实战经验,帮助读者深入理解信息安全防护的相关知识。 首先,该书对网络攻防技术进行了详细的介绍。它从网络攻击的基本原理和分类开始,介绍了常见的攻击手段,如拒绝服务攻击、病毒蠕虫和木马攻击等。接着,书籍重点探讨了不同防护技术原理和实施方法,包括访问控制技术、入侵检测与防御技术、流量分析技术等。这些内容可以帮助读者了解网络攻击的过程和方法,为实施信息安全防护奠定基础。 其次,该书介绍了信息安全防护体系。作者将信息安全防护分为多个层次,包括网络层、主机层和应用层等,针对不同层次的安全防护提供了相应的解决方案。读者可以学习如何构建强大的信息安全防护体系,以保护企业和个人的敏感数据,并降低信息泄露和损失的风险。 另外,该书还提供了丰富的实战经验和案例分析。通过分析真实的攻击事件和防御措施,读者可以更好地理解信息安全防护的实践和应用。此外,书还介绍了一些常见的安全工具和平台,如入侵检测系统和安全事件响应平台等,帮助读者更加高效地进行信息安全防护工作。 总之,《网络攻防技术与实战——深入理解信息安全防护体系》是一本对网络攻防技术和信息安全防护进行深入讲解的书籍。它提供了全面而系统的知识,帮助读者理解攻击原理、掌握防护技术,并且通过实战经验和案例分析提供了实用的指导。读者可以通过该书提升自己在信息安全领域的能力和水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值