Hash函数MD5攻击技术研究(11)

时间:2025-07-11

Hash函数MD5攻击技术研究

8Hash函数MD5攻击技术研究

填充(1至tJ512bit)消息长度(Kmod264)

…匠…互卜512bit斗41---512bit—'

128

—-/-’{

IVcVqCVLl

图2.1Hash函数一般结构

消息处理过程如下:

1.对消息的填充。对消息的填充,使得其比特长在模512下为448,即填充后消息的长度为512的某一倍数减去64,留出64比特以备第2步使用。步骤1是必须的,即使消息长度已经满足要求,仍需要填充。例如,消息长为448比特,则需要填充512比特,使其长度变为960,因此填充的比特数大于等于1,小于等于512。填充的方法是确定的:第1位为1,后面的位都为O.

2.附加消息的长度。用步骤1留出的64比特以little.endian方式来表示消息被填充前的长度。如果消息的长度大于264,则以2“为模数取模。

Little.endian方式是指数据的最低有效字节(byte)(或者最低有效位)的优先顺序存储数据,即将最低有效字节(或者最低有效位)存于第地址字节(或者位)。相反的存储方式称之为big-endian方式。

前两步执行完后,消息长度为512的倍数(设为L倍),因此可将消息表示为分组长为512比特的一系列分组KX…l:,而每一分组有可表示为16个32比特长的字,这样消息中的总字数为N=Lxl6,因此消息又可按字表示为M[0,1,…N.1】。

3.对MD缓冲区初始化。算法使用128比特长的缓冲区以存储中间结果和最终Hash值,缓冲区可以表示为4个32比特长的寄存器似,B,C,D),每个寄存器都以little.endian方式存储数据,其初值(以存储方式)为A=01234567,B=89ABCDEF,C=FEDcBA98,D=76543210,实际上为A=67452301,B=EFCDAB89,C=98BADCFE,D=10325476。

4.以分组为单位对消息进行处理。每一分组K(q=0,…,L-1)都经一压缩函数处理,压缩函数是整个MD5算法的核心,共有4个不同的布尔函数,分别为F函数、G函数、H函数、l函数。每一轮的输入为当前处理的消息分组yq和缓冲区当前值,输出仍放在缓冲区中以产生新的A、B、C、D。每一轮处理还需要加上

Hash函数MD5攻击技术研究(11).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219