第12章 哈希算法和MAC算法MD5(精简) 联系客服

发布时间 : 星期四 文章第12章 哈希算法和MAC算法MD5(精简)更新完毕开始阅读a0eb6b04a6c30c2259019ef9

谭文学信息安全与保密教案 第5/67页:4/21/2013 11:34 AM

2. hash函数通用结构

?由Merkle于1989年提出散列函数的通用结构,Ron Rivest于1990年设计出一个实现MD4,几乎被所有hash函数使用。

?具体做法:把原始消息M分成一些固定长度的块Yi,最后一块padding并使其包含消息M长度,设定初始值CV0,压缩函数f, CVi=f(CVi-1,Yi-1),最后一个CVi为hash值。

IV =Initial Value 初始值(V:不是Vector向量) CV = Chaining Value 链接值

谭文学信息安全与保密教案 第6/67页:4/21/2013 11:34 AM

Yi = ith input block (第i 个输入数据块) f = Compression Function (压缩算法)

n = |CV|,length of hash code (散列码的长度) b =|Y|, length of input block(输入块的长度) 3. MD5简介和历史

MD5的全称是Message-Digest Algorithm 5(消息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。MD2是基于8位机器的,而MD4和

谭文学信息安全与保密教案 第7/67页:4/21/2013 11:34 AM

MD5却是面向32位的电脑。 历史:

Ron Rivest于1990年提出MD4。

?1992年, 8月向IEFT提交MD5 (RFC 1321) developed by Ron Rivest at MIT。

?在最近数年之前,MD5是最主要的hash算法 4. 正序与反序:

微处理机中的存放顺序有正序(big endian)和逆序(little endian)之分。正序存放:高字节存放在前,低字在后,逆序存放:低字节在前高字节在

谭文学信息安全与保密教案 第8/67页:4/21/2013 11:34 AM

后。例如,十六进制数为0XA02B,正序存放:A02B,逆序存放:2BA0。摩托罗拉(Motorola)公司的微处理器使用正序存放,英特尔(Intel)公司的微处理器使用逆序。 例子:

//说明反序存储