基于MD5与RSA算法的数字认证研究与实现
2010-12-21廖莎莎
廖莎莎
(黄山学院 现代教育技术中心,安徽 黄山 245041)
基于MD5与RSA算法的数字认证研究与实现
廖莎莎
(黄山学院 现代教育技术中心,安徽 黄山 245041)
分析数字认证技术,结合基于MD5和RSA算法的安全认证体制,给出详细的实现方法与测试结果,为网络信息安全提供了一套实用的参考方案。
信息安全;MD5;RSA;数字认证
1 引 言
2000年6月,美国国会在“全球和国家商务法(ESIGN法)”中批准了电子签名。这一立法避免了对仅仅基于电子形式的合同或者签名的争论,从而赋予电子签名以新的合法性。2005年4月1日《电子签名法》在我国开始正式实施,这部法律规定,可靠的电子签名与手写签名或盖章具有同等的法律效力。[1]电子签名技术有很多种,但目前比较成熟以及普遍被使用的电子签名技术是基于MD5与RSA算法数字签名技术。
2 理论基础
2.1 MD5算法
MD5算法可以简要的描述为MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这4个32位分组串联后将生成一个128位散列值。[2]
MD5算法步骤:
首先要计算分片信息,计算具体过程如下:

第二、三、四轮分别使用GG(a,b,c,d,M[i],s,ti),HH(a,b,c,d,M[i],s,ti)和II(a,b,c,d,M[i],s,ti),其中i自增。
6.每执行完上述四轮一次后,执行下面运算

7.对每个GroupContest[i]重复5,6操作,直到N+1个GroupContest[i]都完成,最终输出128位字符串ABCD作为数字指纹。
2.2 RSA算法
尽管公钥加密算法的种类有很多,但RSA对目前为止已知的所有密码攻击几乎都具备抵抗力。RSA算法的安全性基于分解大整数的困难性。计算两个大素数的乘积是容易的,但是把一个大合数分解成两个素数的积却是特别困难的。……
