1 / 7
文档名称:

MD5消息摘要算法实现及改进.docx

格式:docx   大小:69KB   页数:7页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MD5消息摘要算法实现及改进.docx

上传人:ttteee8 2020/8/5 文件大小:69 KB

下载得到文件列表

MD5消息摘要算法实现及改进.docx

文档介绍

文档介绍:2012-07-19######艸#####201益溺T9#####師2-07-19########(中国工商银行泉州市分行福建泉州362000)【摘要】:MD5消息摘要算法通过对一个任意长度的消息进行处理产牛一个I古I定长度的"消息摘要",可利用该”消息摘要"进行数字签名和密码加密。本文在传统算法流程的基础上作了进•步的改进,提高了该算法的运算效率。【关键字】:MD5算法,(MIT),被互联网电了邮件保密协议(PEM)指定为消息压縮值算法之一,用于数字签名前对消息进行安全的压缩;日•为不可逆算法。MD5算法描述MD5算法是以任意长度的消息作为输入,输出一个长度I古I定为128bit的消息摘要,其传统运算流程见图1。,传统的算法运算流程是先对初始消息进行预处理(使其长度变为512bit的整数倍),再进行报文分组的划分和逻辑处理。而本文对此作了改进,具体流程如图2所示。首矢根据初始消息长度的不同将其分为:①初始长度W5l2bi(,且初始长度W448bit:②初始长度W512bit,且448bit<初始匕度W512bit;③初始长度〉512bit,口剩余消息(初始消息在划分、处理完所有满足分组条件后的剩余部分)的长度W448bit;④初始t度>;512bit,且448bitv剩余消息长度W5l2bit四种情况。若为①②(包括分纟且的划分和逻辑处理);若为③④情况则有所不同,首先运用话环结构不断地将初始消息中满足分组划分条件的内容拷贝到一个事先定义好的5l2bit大的分组存储区小进行分织的逻辑处理,然后对剩余消息进行填充和分组划分,并将前面处现所得到的中间变虽代入分组进行运算,最后得到128bit消息摘耍的输出。同时,在编程实现时,将大量的计算和查找操作直接用相应值代替。源,又大大降低了算法的运算强度,同吋捉高了算法的运行速度。改进后算法的伪代码如下:MD5Encr>p(Slring(MS(ring)VarMD5Operation(MContext);End;>数的定义与初始化鉴于对MD5算法的运算流程做了改进。因此,有必要先对运算中所用到的•系列参数进行数据结构的定义和初始化。(的数据类型。MD5Content=RecordChaVar:MD5QiaVar;Len:MD5Len;Buller:MDSBuflcr;End;其中,MD5ChaVar为含有4个元素的DWORD数组,分别表示四个链接变童;MD5Len由2个DWORD元索组成,共64位,用于存放消息长度;MD5Buffer为含有64个元素的BYTE数组,共512位,存放曲前待处理的报文分组内容。,它包含了传统流程中附加填充比特、附加消息长度和初始化MD缓心区三个步骤小的部分操作。关键代码如下:ProcedureNtt)5ParaReady<VarContext:MD5Content)BeginWithContextdoBegin“