1 / 16
文档名称:

3个着名加密算法(MD5、RSA、DES)解析.doc

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

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

分享

预览

3个着名加密算法(MD5、RSA、DES)解析.doc

上传人:beny00001 2016/4/18 文件大小:0 KB

下载得到文件列表

3个着名加密算法(MD5、RSA、DES)解析.doc

文档介绍

文档介绍:中国 Unix/Linux 软件开发联盟 Unix/Linux 软件开发联盟 个着名加密算法(MD5 、 RSA 、 DES) 的解析 linux 软件开发 3 个著名加密算法(MD5 、 RSA 、 DES) 的解析(1)2009-09-28 10:13:15 源: mzhacker MD5 的全称是 Message-Digest Algorithm 5 ,在 90 年代初由 MIT 的计算机科学实验室和 RSA Data Security Inc 发明,经 MD2 、 MD3 和 MD4 发展而来。 MD5 将任意长度的“字节串”变换成一个 128bit 的大整数,并且它是一个不... MD5 的全称是 Message-Digest Algorithm 5 ,在 90 年代初由 MIT 的计算机科学实验室和 RSA Data Security Inc 发明,经 MD2 、 MD3 和 MD4 发展而来。 MD5 将任意长度的“字节串”变换成一个 128bit 的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个 MD5 的值变换回原始的字符串, 从数学原理上说, 是因为原始的字符串有无穷多个, 这有点象不存在反函数的数学函数。 MD5 的典型应用是对一段 Message( 字节串) 产生 fingerprint( 指纹) ,以防止被“篡改”。举个例子, 你将一段话写在一个叫 文件中, 并对这个 产生一个 MD5 的值并记录在案, 然后你可以传播这个文件给别人, 别人如果修改了文件中的任何内容, 你对这个文件重新计算 MD5 时就会发现。如果再有一个第三方的认证机构,用 MD5 还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。 MD5 还广泛用于加密和解密技术上, 在很多操作系统中, 用户的密码是以 MD5 值(或类似的其它算法) 的方式保存的, 用户 Login 的时候, 系统是把用户输入的密码计算成 MD 5 值,然后再去和系统中保存的 MD5 值进行比较,而系统并不“知道”用户的密码是什么。 RSA 是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名: Ron Rivest, Adi Shamir 和 Leonard Adleman 。但 RSA 的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。 DES 算法美国国家标准局 1973 年开始研究除国防部外的其它部门的计算机系统的数据加密标准, 于 1973 年5月 15 日和 1974 年8月 27 日先后两次向公众发出了征求加密算法的公告。 197 7 年1 月,美国政府颁布:采纳 IBM 公司设计的方案作为非机密数据的正式数据加密标准( DES?Data Encryption Standard )。中国 Unix/Linux 软件开发联盟 Unix/Linux 软件开发联盟. 加密算法之 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、