最早、最著名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在70年代发展起来的,并经政府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)承认。

DES加密算法:

DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的"每轮"密钥值由56位的完整密钥得出来。DES用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。当时DES被认为是一种十分强大的加密方法。

随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。

RSA加密算法:

另一种非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”(Prblic key) ,另一个不告诉任何人,称为"私钥”(Private key)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。

实例分析两种加密算法:

假设用户甲要把一个机密文件发送给用户乙,他们互相知道对方的公钥。甲就用乙的公钥把文件加密后寄出,乙收到后就可以用自己的私钥把加密文件解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那个文件,这就解决了文件的保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发文件,那么乙怎么确信是不是甲的发来的文件呢?那就要用到基于加密技术的数字签名了。

甲用自己的私钥将签名内容加密,附加在文件后,再用乙的公钥将整个文件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这个加密文件被乙收到以后,乙用自己的私钥将文件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确保两方面的安全了。

小知识之密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据。