2024年5月4日发(作者:)

数据加密方法

据不完全统计,到目前为止,已经公开发表的各种加密算法多达数百种。下面我们将

分别介绍简单加密方法、对称算法、公钥算法和PGP的应用。

1.简单的加密方法:换位和置换

换位和置换(transposition and substitution ciphers)是两种主要的编码方法,是

组成最简单的密码基础。换位很像是一种字母游戏,打乱字母的顺序,并设法用这些打乱

的字母组成一个单词。在换位密码中,数据本身并没有改变,它只是被安排成另一种不同

的格式,有许多种不同的置换密码,有一种是用凯撒大帝的名字Julias Caesar命名的,即

凯撒密码。它的原理是每一个字母都用其前面的第三个字母代替,如果到了最后那个字母,

则又从头开始算。字母可以被在它前面的第n个字母所代替,在凯撒的密码中n就是3。

2.基于密钥的密码算法

这种算法通常有两类:对称算法和公开密钥算法。

(1) 对称算法

对称算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。大多数对称算

法中,加、解密的密钥是相同的,这些算法也称为秘密密钥算法或单密钥算法。它要求发

送者和接收者在安全通信之前,商定一个密钥。算法的安全性依赖于密钥,只要通信需要

保密,密钥就必须保密。

对称算法又分为两类:分组算法和序列算法,两者区别在于分组算法是对一个大的明

文数据块(分组)进行运算;序列算法是对明文中单个位(或字节)进行运算。对称算法

体制的发展趋势将以分组密码为重点,着名的对称密码算法有:

1) DES(Data Encryption Standard)数据加密标准

最着名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM

公司在70年代发展起来的,该标准于 1977年由美国国家标准局颁布,主要用于民用敏

感信息的保护,后被国际标准化组织接受作为国际标准。DES主要采用替换和移位的方法,

使用56位密钥每次处理64位数据,运算速度快,易于用软件实现,也适合在专用芯片上

实现。DES是一种世界公认的好的加密算法,自它问世以来经受住了许多科学家的研究和

破译,曾为全球贸易、金融等部门提供了可靠的通信安全保障。但它也有明显的缺点,密

钥太短, 有56位。目前已有许多DES被破译的报道,因此为了提高安全性,DES又有

了新的发展。比如:三重 DES 使用双密钥加密的方法,即使用两个 56 位的密钥 k1、

k2,发送方用 k1 加密,k2 解密,再使用 k1加密。接收方则使用k1解密,k2加密,

再使用k1解密,其效果相当于将密钥的长度增加到112位。还有三重DES的变形算法,

使用三个独立密钥,相当于密钥长度增加到168位等。

2) IDEA(International Data Encryption Algorithm)国际数据加密算法

IDEA由瑞士的Xuejia Lai和James Massey于1990年正式公布,并在以后得到增

强。这种算法是在DES算法的基础上发展起来的,类似于三重DES。发展IDEA也是因为

感到DES使用的密钥太短。IDEA的密钥为 128 位,这么长的密钥在未来若干年内应该

是安全的。IDEA 算法也基于分组,它采用软件和硬件实现都同样快速,目前软件实现的

IDEA比DES快两倍。由于IDEA是在美国之外提出并发展起来的,避开了美国法律上对

加密技术的诸多限制。因此,有关IDEA算法和实现技术的资料可以自由出版和交流,可

极大地促进IDEA的发展和完善。但由于该算法是一个相对较新的算法,针对它的攻击也

还不多,还未经过较长时间的考验。因此,尚不能判断出它的问题和缺陷。

这一类算法的优点是有很强的保密强度,且经受住时间的检验和攻击,但其密钥必须

通过安全的途径传送。因此,其密钥管理成为系统安全的重要因素。

(2) 公开密钥算法

公开密钥算法是指使用一对密钥加解密信息,加密的密钥不同于解密的密钥,而且解

密的密钥不能根据密钥在合理的时间和财力内计算出来。之所以叫公开密钥算法(以下简

称公钥算法),是因为加密密钥能够公开,谁都可以使用加密密钥加密信息,但只有用相应

的解密密钥才能解密信息。

着名的公钥算法有:

1) RSA算法

RSA由美国的Rivest、Shamir和Adleman于1978年提出。该算法基于大数分解的

难度,即已知合数n,求pq,使n=pq。所以随着大整数分解算法和计算能力的不断提高,

对RSA的破译能力也在增强。有报道482位的RSA已被利用数域筛NFS分解出来,512

位也可以在数月时间被分解,1024位的RSA目前仍是比较安全的。与DES相比,RSA拥

有更高的安全。与DES相比,RSA拥有更高的安全性,但执行速度慢,因些两者经常结合

起来使用,DES加密速度快,适合加密较长的报文;而 RSA 可解决 DES 密钥分配的问

题。比如:若 A 要与 B 通信,首先 A产生一个与B通信的DES密钥,用B的公钥对通

信密钥加密后传给B,B用其私有密钥(只有B拥有)解密,获得双方的一次性通信DES

密钥。然后双方采用此DES通信进行保密通信。

2) Diffe-Hellman算法

该算法是第一个公钥算法,由美国的Diffe和Hellman于1976年提出。其安全性源

于在有限域上计算离散对数比计算指数更困难,该算法主要用于密钥交换。协议如下:首

先A与B协商一个大的素数n和g ,g是模n的本原元;A选取一个大的随机数x并且

发送给B:X=gx mod n;B选取一个大的随机数y并且发送给A:Y=gy mod n;A计

算k2=Yx mod n;B计算k2=Xy mod n,k1和k2都等于gxy mod n,偷听者即使知

道n,g,X和Y,也无法计算出k,除非他们计算离散对数,因此k是A与B的秘密密钥。

3) 椭圆曲线

椭圆曲线已研究了许多年,Koblitz和Miller 于1985年分别提出将它用于公钥密码

体制。椭圆曲线的吸引人之处在于提供了由元素和组合规则来组成群的构造方法