3个著名加密算法(MD5、RSA、DES)的解析 (2)

MD5相对MD4所作的改进: 
1.增加了第四轮. 
2.每一步均有唯一的加法常数. 
3.为减弱第二轮中函数G的对称性从(X&Y)|(X&Z)|(Y&Z)变为(X&Z)|(Y&(~Z)) 
4.第一步加上了上一步的结果,这将引起更快的雪崩效应. 
5.改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似. 
6.近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应.各轮的位移量互不相同.

2.加密算法之RSA算法

  它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。 

一、RSA算法 : 

首先, 找出三个数, p, q, r, 
其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数...... 
p, q, r 这三个数便是 private key 

接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1)..... 
这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了..... 
再来, 计算 n = pq....... 
m, n 这两个数便是 public key 

编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a < n.... 
如果 a >= n 的话, 就将 a 表成 s 进位 (s <= n, 通常取 s = 2^t), 
则每一位数均小於 n, 然後分段编码...... 
接下来, 计算 b == a^m mod n, (0 <= b < n), 
b 就是编码後的资料...... 

解码的过程是, 计算 c == b^r mod pq (0 <= c < pq), 
於是乎, 解码完毕...... 等会会证明 c 和 a 其实是相等的 

如果第三者进行窃听时, 他会得到几个数: m, n(=pq), b...... 
他如果要解码的话, 必须想办法得到 r...... 
所以, 他必须先对 n 作质因数分解......... 
要防止他分解, 最有效的方法是找两个非常的大质数 p, q, 
使第三者作因数分解时发生困难......... 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwjpd.html