发布时间:2025-06-16 13:33:58 点击量:
HASH GAME - Online Skill Game GET 300
①对消息填充,填充的比特数大于等于1而小于等于512,使得其比特长在模512下为448,即最后一个分组的长度为448位,留出的64比特备第2步使用。填充方式是固定的,即第1位为1,其后各位皆为0。;②添加附加消息。附加消息的长度用步骤①留出的64比特以little-endian方式来表示消息被填充前的长度。如果消息长度大于264,则以264为模数取模。;③对MD缓冲区初始化算法使用128比特长的缓冲区以存储中间结果和最终杂凑值,缓冲区可表示为4个32比特长的寄存器(A,B,C,D),它们的值分别为:A=0B=0x89ABCDEF,C=0xFEDCBA98,D=0
HMD5的4轮处理过程结构一样,但所用的逻辑函数不同,分别表示为F、G、H、I。;每轮的输入为当前处理的消息分组Yq和缓冲区的当前值A、B、C、D,输出仍放在缓冲区中以产生新的A、B、C、D。每轮处理过程还需加上常数表T中四分之一个元素,分别为T[1…16],T[17…32],T[33…48],T[49…64]。;2023/8/11;⑤输出消息的L个分组都被处理完后,最后一个HMD5的输出即为产生的消息摘要。
ρ4(i)=7imod16;4轮处理过程分别使用不同的基本逻辑函数F、G、H、I,每个逻辑函数的输入为3个32比特的字,输出是一个32比特的字,其中的运算为逐比特的逻辑运算,即输出的第n个比特是3个输入的第n个比特的函数,函数的定义由表6-5给出。;表6-4是四个逻辑函数F、G、H、I,的真值表。;Rivest猜想作为128比特长的杂凑值来说,MD5的强度达到了最大,比如说找出具有相同杂凑值的两个消息需执行O(264)次运算,而寻找具有给定杂凑值的一个消息需要执行O(2128)次运算。
然而,2004年,山东大学王小云等成功找出了MD5的碰撞,发生碰撞的消息是由两个1024比特长的串M、Ni构成,设消息MNi的碰撞是M?Ni?,在IBMP690上找M和M?花费时间大约一小时,找出M和M?后,则只需15秒至5分钟就可找出Ni和Ni?。;本节课,我们介绍了一种被广泛使用的哈希函数—MD5,从算法描述、MD5的压缩函数和安全性三个方面阐释了MD5的原理和可靠性。通过本节课的学习,我们对哈希函数的意义和设计思路有了更为深入的认识。;2023/8/11