1 / 25
文档名称:

MD5加密算法探究及其应用.doc

格式:doc   页数:25页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

MD5加密算法探究及其应用.doc

上传人:cdsqbyl 2015/4/16 文件大小:0 KB

下载得到文件列表

MD5加密算法探究及其应用.doc

文档介绍

文档介绍:MD5加密算法探究及其应用
引言
MD5加密算法作为一种免费的加密算法,广泛地应用于计算机,数据安全传输,-Digest Algorithm 5(信息-摘要算法),是由Ron Rivest (RSA 算法的发明人之一,于2002年获得图灵奖)于90年代初提出,经MD2,MD3和MD4发展而来的.
Rivest 最早于1989年提出了MD2算法针对8位计算机做了优化,为了提高算法的安全性与稳定性,Rivest在1990年又开发出MD4算法,,,美国国家标准和技术协会(NIST)提出了安全散列算法(SHA).1995年又发布了一个修订版,即SHA--1与MD5均由MD4导出,,它们的强度和其他特征也是相似的.
2004年8月17日于美国加州圣巴巴拉召开的国际密码学会议(Crypto 2004)上,来自山东大学的王小云教授做了破译MD5,HAVAL-128,MD4和RIPEMD算法的报告,,MD5已经是不安全了,但是很多实际的应用领域MD5还有它的使用价值的,所以我们分析探究它的加密原理,我们在此基础上对它的加密进行改进利用,对于我们今后的加密安全工作还是很有帮助的.

Hash函数
Hash函数是一种将任意长度的信息压缩到某一固定长度的消息摘要的函数,:单向性,弱抗碰撞性,强碰撞性.
单向性是指对Hash函数h而言,又x计算h(x)是容易的,但从h(x)计算x是不可行的.
一个弱碰撞的Hash函数是满足下列条件的一个函数h:
h的输入可以是任意长度的消息或文件p
h的输出长度是固定的
给定h和M,计算h(p)是很容易的
给定h和一个随机选择的消息p1,找到另一个消息p2,p1p2使得h(p1)=h(p2)计算上是不可行的.
一个强碰撞的Hash函数是满足下列条件的一个函数h:
h的输入可以是任意长度的消息或文件p
h的输出长度是固定的
给定h和M,计算h(p)是很容易的
给定h,找到两个不同的消息p1,p2 ,使得h(p1)=h(p2)在计算上是不可行的.
(如果有两个不同的消息M,M,使得h(M)=h(M),我们就说这两个消息是碰撞的)
16进制的相关知识
十六进制在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(A-F表示10-15).
十六进制转换成二进制的比特流(第一列16进制,第二列2进制)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
例如:十六进制为9FD,那么在计算机中二进制表示100111111101(9=1001,F=1111,D=1101)
逻辑运算
逻辑“与”运算,用“”表示
真值表表示为
p
q
1
1
1
1
0
0
0
1
0
0
0
0
二进制按位逻辑“与”运算,即逐位进行逻辑“与”运算,并将逐位逻辑运算的结果进行组合得到的结果.
例如①:如果,,那么
例如②:如果,,那么
首先把转换为二进制为;
其次把转换而二进制位;
最后按位进行逻辑“与”运算结果为
逻辑“或”运算,用“|”表示
真值表表示为:
p
q
|
1
1
1
1
0
1
0
1
1
0
0
0
逻辑“异或”运算,用“”表示
真值表表示为:
p
q
1
1
0
1
0
1
0
1
1
0
0
0
逻辑“取反”运算
二进制数的所有0改为,1改为0,这个过程叫“取反”
例如:如果,那么
模运算
基本概念
给定一个正整数,任意一个整数,一定存在等式 ;其中是整数,且 ,称为除以的商,,定义如下运算: 
模加法: ,其结果是算术和除以的余数,也就是说,
,则
例如:,,那么(注这里“+”是模加法运算)
首先将转换为二进制为;
其次将转换为二进制为
然后逐位相加结果为22111111121011212021021102121110
因为实行的是二进制数据,逢2向前一位进1,所以最终结果为:11