谭文学信息安全与保密教案 第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)公司的微处理器使用逆序。 例子:
//说明反序存储
相关推荐: