单向散列函数算法Hash算法.doc

单向散列函数算法Hash算法.doc

ID:56878623

大小:681.00 KB

页数:15页

时间:2020-07-18

单向散列函数算法Hash算法.doc_第1页
单向散列函数算法Hash算法.doc_第2页
单向散列函数算法Hash算法.doc_第3页
单向散列函数算法Hash算法.doc_第4页
单向散列函数算法Hash算法.doc_第5页
资源描述:

《单向散列函数算法Hash算法.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、单向散列函数算法(Hash算法):一种将任意长度的消息压缩到某一固定长度(消息摘要)的函数(过程不可逆),常见的单向散列算法有MD5,SHA.RIPE-MD,HAVAL,N-Hash由于Hash函数的为不可逆算法,所以软件智能使用Hash函数作为一个加密的中间步骤MD5算法:即为消息摘要算法(MessageDigestAlgorithm),对输入的任意长度的消息进行预算,产生一个128位的消息摘要简易过程:1、数据填充..即填出消息使得其长度与448(mod512)同余,也就是说长度比512要小64位(为什么数据长度本身已经满足却仍然需要填充?直接填充一个整数

2、倍)填充方法是附一个1在后面,然后用0来填充..2、添加长度..在上述结果之后附加64位的消息长度,使得最终消息的长度正好是512的倍数..3、初始化变量..用到4个变量来计算消息长度(即4轮运算),设4个变量分别为A,B,C,D(全部为32位寄存器)A=1234567H,B=89abcdefH,C=fedcba98H,D=7654321H4、数据处理..首先进行分组,以512位为一个单位,以单位来处理消息..首先定义4个辅助函数,以3个32为双字作为输入,输出一个32为双字F(X,Y,Z)=(X&Y)

3、((~X)&Z)G(X,Y,Z)=(X&Z)

4、(Y&(~

5、Z))H(X,Y,Z)=X^Y^ZI(X,Y,Z)=Y^(X

6、(~Z))其中,^是异或操作这4轮变换是对进入主循环的512为消息分组的16个32位字分别进行如下操作:(重点)将A,B,C,D的副本a,b,c,d中的3个经F,G,H,I运算后的结果与第四个相加,再加上32位字和一个32位字的加法常数(所用的加法常数由这样一张表T[i]定义,期中i为1至64之中的值,T[i]等于4294967296乘以abs(sin(i))所得结果的整数部分)(什么是加法常数),并将所得之值循环左移若干位(若干位是随机的??),最后将所得结果加上a,b,c,d之一(这个之一也是随

7、机的?)(一轮运算中这个之一是有规律的递增的..如下运算式),并回送至A,B,C,D,由此完成一次循环。(这个循环式对4个变量值进行计算还是对数据进行变换??)Fori=0toN/16doForj=0to15doSetX[i]toM[i*16+j]EndAA=ABB=BCC=CDD=D//第一轮,令[ABCDKSI]表示下面的操作://A=B+((A+F(B,C,D)+X[K]+T[I])<<

8、A7228][ABCD879]….有一共16次//第二轮,令[ABCDKSI]表示如下操作//A=B+((A+G(B,C,D)+X[K]+T[I])<<

9、336]//第四轮,令[ABCDKSI]表示如下运算//A=B+((A+I(B,C,D)+X[K]+T[I])<<

10、易过程:1、消息分组和填充方式与MD5相同2、使用了f0,f1,…,f79这样一个逻辑函数序列,每一个ft(0<=t<=79)对3个32位的双字B,C,D进行操作,产生一个32位双字的输出。Ft(B,C,D)定义如下:Ft(B,C,D)=(B&C)

11、((~B)&D)0<=t=19Ft(B,C,D)=B^C^D20<=t<=39Ft(B,C,D)=(B&C)

12、(B&D)

13、(C&D)40<=t<=59Ft(B,C,D)=B^C^D60<=t<=79在C语言中常用宏定义进行初始化同样SHA-1也使用了一系列的常数K(0),K(1),….,K(79)).用十六进制表示

14、就是Kt=5A8279990<=t<=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。