- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
加密算法学习笔记
单向散列函数算法(Hash算法):
一种将任意长度的消息压缩到某一固定长度(消息摘要)的函数(过程不可逆),常见的单向散列算法有MD5,SHA.RIPE-MD,HAVAL,N-Hash
由于Hash函数的为不可逆算法,所以软件智能使用Hash函数作为一个加密的中间步骤
MD5算法:
即为消息摘要算法(Message Digest Algorithm),对输入的任意长度的消息进行预算,产生一个128位的消息摘要
简易过程:
1、数据填充..即填出消息使得其长度与448(mod 512)同余,也就是说长度比512要小64位(为什么数据长度本身已经满足却仍然需要填充?直接填充一个整数倍)
填充方法是附一个1在后面,然后用0来填充..
2、添加长度..在上述结果之后附加64位的消息长度,使得最终消息的长度正好是512的倍数..
3、初始化变量..用到4个变量来计算消息长度(即4轮运算),设4个变量分别为A,B,C,D(全部为32位寄存器)A=1234567H,B=89abcdefH,C=fedcba98H,D=7654321H
4、数据处理..首先进行分组,以512位为一个单位,以单位来处理消息..
首先定义4个辅助函数,以3个32为双字作为输入,输出一个32为双字
F(X,Y,Z)=(XY)|((~X)Z)
G(X,Y,Z)=(XZ)|(Y(~Z))
H(X,Y,Z)=X^Y^Z
I(X,Y,Z)=Y^(X|(~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之一(这个之一也是随机的?)(一轮运算中这个之一是有规律的递增的..如下运算式),并回送至A,B,C,D,由此完成一次循环。(这个循环式对4个变量值进行计算还是对数据进行变换??)
For i=0 to N/16 do
For j=0 to 15 do
Set X[i] to M[i*16+j]
End
AA = A
BB=B
CC=C
DD=D
//第一轮,令[ABCD K S I]表示下面的操作:
//A=B+((A+F(B,C,D)+X[K]+T[I])S)
//做如下16次操作
[ABCD 0 7 1]
[DABC 1 12 2]
[CDAB 2 17 3]
[BCDA 3 22 4]
[ABCD 4 7 5]
[DABC 5 12 6]
[CDAB 6 17 7]
[BCDA 7 22 8]
[ABCD 8 7 9]
….有一共16次
//第二轮,令[ABCD K S I]表示如下操作//A=B+((A+G(B,C,D)+X[K]+T[I])S)
//操作循环16次
[ABCD 1 5 17]
[DABC 6 9 18]
[CDAB 11 14 19]
[BCDA 0 20 20]
[ABCD 5 5 21]
[DABC 10 9 22]
[CDAB 15 14 23]
..进行有规律的16运算
//第三轮,令[ABCD K S I]表示如下操作
//A=B+((A+H(B,C,D)+X[K]+T[I])S)
//做如下16次操作
[ABCD 5 4 33]
[DABC 8 11 34]
[CDAB 11 16 35][BCDA 14 23 36]
//第四轮,令[ABCD K S I]表示如下运算
//A=B+((A+I(B,C,D)+X[K]+T[I])S)
//做如下16次运算..
[ABCD 0 6 49]
[DABC 7 10 50]
[CDAB 14 15 51]
[BCDA 5 21 52]
然后做如下加法运算…
A=A+AA
B=B+BB
C=C+CC
D=D+DD
END
当所有的512位分组运算完毕后,ABCD的级联将被输出成为MD5散列结果
SHA算法
即安全散列算法(Secure Hash Algorithm),有SHA-1,SHA-256,SHA-384和SHA-512几种
分别产生160位,256位,384位和512位的散列值
简易过程:
消息分组和填充方式与MD5相同
使用了f0,f1,…,f79这样一个逻辑
您可能关注的文档
- 利用Landsat 影像热红外波段反演西双版纳勐仑地区地表温度的方法初探.PDF
- 利用HTML5拖放技术实现多文件异步上传 - 四川理工学院学报.PDF
- 分类代码-飞资得资讯.PPT
- 利用MODIS数据反演沙漠化地区地表温度的简化模式.PDF
- 利用REE 示踪技术研究土壤侵蚀的进展 - 核农学报.PDF
- 利用MODIS数据反演植被指数的敏感性研究 - 西南大学学报.PDF
- 利用AIRS 高光谱数据开展HJ-1B 热红外通道的多点交叉定标及验证.PDF
- 利用AVHRR和OCI资料求取大气中的气溶胶参数.DOC
- 利用Landsat 数据反演近岸海水表层温度的大气校正算法 - 海洋学报.PDF
- 利用一般的纠缠态进行确定性的远程态制备局域密度矩阵与全局矩阵.PDF
最近下载
- 2025中信银行信用卡中心银川分中心招聘笔试备考试题及答案解析.docx
- 2025年金华职业技术学院单招职业倾向性测试题库及参考答案.docx VIP
- 武汉市2025届高中毕业生四月调研考试(四调)数学试卷(含答案).pdf
- 陕西西安市长安城乡建设开发公司招聘笔试题库2024.pdf VIP
- MEMS传感器和智能传感器的发展.docx VIP
- 中学英语课堂教育教学评价策略的研究结题报告.docx
- 运筹学(中国人民解放军陆军工程大学)中国大学MOOC慕课章节测验答案.pdf
- 内蒙古风能、太阳能资源.doc VIP
- 金丽衢十二校2024学年2025届高三第二次联考生物试卷(含答案).pdf
- 《中医骨伤科学》课件—— 肘关节脱位.pptx VIP
文档评论(0)