一:RSA 算法和 DES 算法简介
RAS 算法:
RSA 算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为
公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对
RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公
开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可
以用私钥解密接受。为提高保密强度,RSA 密钥至少为 500 位长,一般推荐使
用 1024 位。 该算法基于下面的两个事实,这些事实保证了 RSA
算法的安全有效性:
1) 已有确定一个数是不是质数的快速算法;
2) 尚未找到确定一个合数的质因子的快速算法。
RSA 算法的描述
1、选取长度相等的两个大素数 p 和 q,计算其乘积:
n = pq
然后随机选取加密密钥 e,使 e 和(p–1)(q–1)互素。
最后用欧几里德扩展算法计算解密密钥 d,以满足
ed = 1(mod(p–1) ( q–1))
即
d = e–1 mod((p–1)(q–1))
e 和 n 是公钥,d 是私钥
2、加密公式如下:
ci = miê(mod n)
3、解密时,取每一密文分组 ci 并计算:
mi = ci^d(mod n)
Ci^d =(miê)^d = mi^(ed) = mi^[k(p–1) (q–
1)+1 ]
= mi mi^[k(p–1) (q–1)] = mi *1 = mi
4、消息也可以用 d 加密用 e 解密
DES 算法:
DES 算法的入口参数有三个:Key、Data、Mode。其中 Key 为 8 个字节
共 64 位,是 DES 算法的工作密钥;Data 也为 8 个字节 64 位,是要被加密或
被解密的数据;Mode 为 DES 的工作方式,有两种:加密或解密。
DES 算法是这样工作的:如 Mode 为加密,则用 Key 去把数据 Data 进行
加密, 生成 Data 的密码形式(64 位)作为 DES 的输出结果;如 Mode 为解
密,则用 Key 去把密码形式的数据 Data 解密,还原为 Data 的明码形式(64
位)作为 DES 的输出结果。在通信网络的两端,双方约定一致的 Key,在通信
的源点用 Key 对核心数据进行 DES 加密,然后以密码形式在公共通信网(如
电话网)中传输到通信网络的终点,数据到达目的地后,用同样的 Key 对密码
数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如
PIN、MAC 等)在公共通信网中传输的安全性和可靠性。
二:RSA 算法和 DES 算法实现
评论0