没有合适的资源?快使用搜索试试~ 我知道了~
3个著名加密算法(MD5、RSA、DES)的解析
需积分: 24 9 下载量 143 浏览量
2009-11-24
10:30:38
上传
评论
收藏 26KB DOCX 举报
温馨提示
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。 MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
资源推荐
资源详情
资源评论
3 个著名加密算法(MD5、RSA、DES)的解析
MD5 的全称是 Message-Digest Algorithm 5,在 90 年代初由 MIT 的计算机科学实验室和 RSA
Data Security Inc 发明,经 MD2、MD3 和 MD4 发展而来。
MD5 将任意长度的“字节串”变换成一个 128bit 的大整数,并且它是一个不可逆的字符串
变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个 MD5 的值变换回
原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函
数的数学函数。
MD5 的典型应用是对一段 Message(字节串)产生 ngerprint(指纹),以防
止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt 文件中,并对这
个 readme.txt 产生一个 MD5 的值并记录在案,然后你可以传播这个文件给
别人,别人如果修改了文件中的任何内容,你对这个文件重新计算 MD5 时就
会发现。如果再有一个第三方的认证机构,用 MD5 还可以防止文件作者的“抵
赖”,这就是所谓的数字签名应用。
MD5 还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以
MD5 值(或类似的其它算法)的方式保存的, 用户 Login 的时候,系统是把
用户输入的密码计算成 MD5 值,然后再去和系统中保存的 MD5 值进行比较,
而系统并不“知道”用户的密码是什么。
RSA 是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操
作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir
和 Leonard Adleman。但 RSA 的安全性一直未能得到理论上的证明。它经历
了各种攻击,至今未被完全攻破。
DES 算法
美国国家标准局 1973 年开始研究除国防部外的其它部门的计算机系统的数据
加密标准,于 1973 年 5 月 15 日和 1974 年 8 月 27 日先后两次向公众发出了
征求加密算法的公告。 1977 年 1 月,美国政府颁布:采纳 IBM 公司设计的方
案作为非机密数据的正式数据加密标准(DES?Data Encryption
Standard)。
1.加密算法之 MD5 算法
在一些初始化处理后,MD5 以 512 位分组来处理输入文本,每一分组又划分
为 16 个 32 位子分组。算法的输出由四个 32 位分组组成,将它们级联形成一
个 128 位散列值。
首先填充消息使其长度恰好为一个比 512 位的倍数仅小 64 位的数。填充方法
是附一个 1 在消息后面,后接所要求的多个 0,然后在其后附上 64 位的消息
长度(填充前)。这两步的作用是使消息长度恰好是 512 位的整数倍(算法的
其余部分要求如此),同时确保不同的消息在填充后不相同。
四个 32 位变量初始化为:
A=0×01234567
B=0×89abcdef
C=0xfedcba98
D=0×76543210
它们称为链接变量(chaining variable)
接着进行算法的主循环,循环的次数是消息中 512 位消息分组的数目。
将上面四个变量复制到别外的变量中:A 到 a,B 到 b,C 到 c,D 到 d。
主循环有四轮(MD4 只有三轮),每轮很相拟。第一轮进行 16 次操作。每次
操作对 a,b,c 和 d 中的其中三个作一次非线性函数运算,然后将所得结果加
上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不
定的数,并加上 a,b,c 或 d 中之一。最后用该结果取代 a,b,c 或 d 中之
一。
以一下是每次操作中用到的四个非线性函数(每轮一个)。
F(X,Y,Z)=(X&Y)|((~X)&Z)
G(X,Y,Z)=(X&Z)|(Y&(~Z))
H(X,Y,Z)=X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
(&是与,|是或,~是非,^是异或)
这些函数是这样设计的:如果 X、Y 和 Z 的对应位是独立和均匀的,那么结果
的每一位也应是独立和均匀的。
函数 F 是按逐位方式操作:如果 X,那么 Y,否则 Z。函数 H 是逐位奇偶操作
符。
设 Mj 表示消息的第 j 个子分组(从 0 到 15),<<< s 表示循环左移 s 位,则
四种操作为:
FF(a,b,c,d,Mj,s,ti)表示 a=b+((a+(F(b,c,d)+Mj+ti)<<< s)
GG(a,b,c,d,Mj,s,ti)表示 a=b+((a+(G(b,c,d)+Mj+ti)<<< s)
HH(a,b,c,d,Mj,s,ti)表示 a=b+((a+(H(b,c,d)+Mj+ti)<<< s)
II(a,b,c,d,Mj,s,ti)表示 a=b+((a+(I(b,c,d)+Mj+ti)<<< s)
这四轮(64 步)是:
第一轮
FF(a,b,c,d,M0,7,0xd76aa478)
FF(d,a,b,c,M1,12,0xe8c7b756)
FF(c,d,a,b,M2,17,0×242070db)
FF(b,c,d,a,M3,22,0xc1bdceee)
FF(a,b,c,d,M4,7,0xf57c0faf)
FF(d,a,b,c,M5,12,0×4787c62a)
FF(c,d,a,b,M6,17,0xa8304613)
FF(b,c,d,a,M7,22,0xfd469501)
FF(a,b,c,d,M8,7,0×698098d8)
FF(d,a,b,c,M9,12,0×8b44f7af)
FF(c,d,a,b,M10,17,0x@@5bb1)
FF(b,c,d,a,M11,22,0×895cd7be)
FF(a,b,c,d,M12,7,0×6b901122)
FF(d,a,b,c,M13,12,0xfd987193)
FF(c,d,a,b,M14,17,0xa679438e)
FF(b,c,d,a,M15,22,0×49b40821)
第二轮
GG(a,b,c,d,M1,5,0xf61e2562)
GG(d,a,b,c,M6,9,0xc040b340)
GG(c,d,a,b,M11,14,0×265e5a51)
GG(b,c,d,a,M0,20,0xe9b6c7aa)
GG(a,b,c,d,M5,5,0xd62f105d)
GG(d,a,b,c,M10,9,0×02441453)
GG(c,d,a,b,M15,14,0xd8a1e681)
GG(b,c,d,a,M4,20,0xe7d3fbc8)
GG(a,b,c,d,M9,5,0×21e1cde6)
GG(d,a,b,c,M14,9,0xc33707d6)
GG(c,d,a,b,M3,14,0xf4d50d87)
GG(b,c,d,a,M8,20,0×455a14ed)
GG(a,b,c,d,M13,5,0xa9e3e905)
GG(d,a,b,c,M2,9,0xfcefa3f8)
GG(c,d,a,b,M7,14,0×676f02d9)
GG(b,c,d,a,M12,20,0×8d2a4c8a)
第三轮
HH(a,b,c,d,M5,4,0x@fa3942)
HH(d,a,b,c,M8,11,0×8771f681)
HH(c,d,a,b,M11,16,0×6d9d6122)
HH(b,c,d,a,M14,23,0xfde5380c)
HH(a,b,c,d,M1,4,0xa4beea44)
HH(d,a,b,c,M4,11,0×4bdecfa9)
HH(c,d,a,b,M7,16,0xf6bb4b60)
HH(b,c,d,a,M10,23,0xbebfbc70)
HH(a,b,c,d,M13,4,0×289b7ec6)
HH(d,a,b,c,M0,11,0xeaa127fa)
HH(c,d,a,b,M3,16,0xd4ef3085)
HH(b,c,d,a,M6,23,0×04881d05)
剩余16页未读,继续阅读
资源评论
dan290116537
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Revel,Jquery, Xorm开发的内容管理系统详细文档+优秀项目+全部资料.zip
- 基于websocket单台机器支持百万连接分布式聊天(IM)系统详细文档+优秀项目+全部资料.zip
- 基于原生Fabric-SDK-Go 实现一个简单的学历征信系统(web项目),状态数据库使用 CouchDB 来实现详细文档+优秀项目+全部资料.zip
- 基于开源CDN系统GoEdge制作的模版UI、插件、脚本合集详细文档+优秀项目+全部资料.zip
- 2022机器人SLAM知识星球答疑手册
- DSP28335 PMSM电机控制程序
- DSP28335 BLDC电机控制程序
- MiniBalance PC上位机开发资料
- 中大型三相异步电机电磁设计软件
- PLSQL程序设计Word文档doc格式最新版本
- 一、MySQL的介绍与安装
- 25个团队建设小游戏.ppt
- 管理团队拓展游戏.doc
- 几个经典团队游戏.doc
- 企业团队建设游戏活动经典收藏.doc
- 十个团队建设游戏.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功