下载此文档

md5消息摘要算法实现及改进.doc


文档分类:通信/电子 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
图 1 MD5 消息摘要算法传统运算流程
图 2 改进后的 MD5 算法流程
2012-07-19################2012刘-俊0辉7-19######2#0#12-07-19########
( 中国工商银行泉州市分行
福建泉州
362000 )
【摘要】: MD5 消息摘要算法通过对一个任意长度的消息进行处理产生一个固定长度的" 消息摘要" , 可利用该" 消息摘
要" 进行数字签名和密码加密。本文在传统算法流程的基础上作了进一步的改进, 提高了该算法的运算效率。
【关键字】:
MD5 算法, 消息摘要, 实现与改进
1. MD5 算法简介
MD5 消息摘要算法由麻省理工学院( MIT) 计算机科学实验室的 提出, 被互联网电子邮件保密协议( PEM) 指定为
消息压缩值算法之一, 用于数字签名前对消息进行安全的压缩;
且为不可逆算法。
2. MD5 算法描述
MD5 算法是以任意长度的消息作为输入, 输出一个长度固定为 128bit 的消息摘要, 其传统运算流程见图 1。
MD5Operation(M, Context); End;
参数的定义与初始化
鉴于对 MD5 算法的运算流程做了改进。因此, 有必要先对运算中所用到的一系列参数进行数据结构的定义和初始化。
定义参数
我们定义一个名为 MD5Content 的数据类型。
MD5Content = Record ChaVar:MD5ChaVar; Len: MD5Len;
Buffer: MD5Buffer;
End;
其中,
MD5ChaVar 为含有 4 个元素的 DWORD 数组,
分别
表示四个链接变量; MD5Len 由 2 个 DWORD 元素组成, 共 64
位, 用于存放消息长度; MD5Buffer 为含有 64 个元素的 BYTE 数组, 共 512 位, 存放当前待处理的报文分组内容。
初始化参数
MD5ParaReady 函数用于初始化所有的参数, 它包含了传统流程中附加填充比特、附加消息长度和初始化 MD 缓存区三个
步骤中的部分操作。关键代码如下:
Procedure MD5ParaReady(Var Context: MD5Content) Begin
With Context do
Begin
//对链接变量赋值,
InitChaVar($67452301,$efcdab89, $98badcfe, $10325476);
//初始化 64 位的消息长度
Len[0] := 0; Len[1] := 0;
// 将分组存储区的内容全部清零
ZeroMemory(***@Buffer, SizeOf(MD5Buffer)); End;
End;
划分、处理报文分组
MD5Operation 函数主要根据消息长度的不同进行报文分组的划分和逻辑处理。伪代码如下:
MD5Operation(M:String; Context:MD5Content);//M 为初始消息
Begin
// ①②两种情况
If Length(M)<=64 then
Begin
PreTreatment(M, Context);

md5消息摘要算法实现及改进 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aideliliang128
  • 文件大小439 KB
  • 时间2018-05-02