网络空间安全导论
上QQ阅读APP看书,第一时间看更新

2.1 对称密码学

对称密码学的核心是对称加密算法。对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密过程中用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发、收双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

2.1.1 对称加密算法的原理与特点

对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来。同时,解密密钥也可以从加密密钥中推算出来。而在大多数对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄露密钥就意味着任何人都可以对他们发送或接收的消息进行解密,所以密钥的保密性对通信的安全性至关重要。对称加密原理如图2.1所示。

图2.1 对称加密原理

对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。对称加密算法的不足之处是,通信双方都使用同样的钥匙,因此密钥交换或者说密钥管理比较困难,安全性很难得到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一密钥,这会使得发、收信双方所拥有的密钥数量呈几何级数增长,密钥管理成为用户的负担。对称加密算法的加解密过程示意图如图2.2所示。

图2.2 对称加密算法的加解密过程示意图

对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。而与公开密钥加密算法相比,对称加密算法虽然能够提供加密和认证,但由于缺乏签名功能,使得使用范围有所缩小。

2.1.2 对称加密算法举例

典型的对称加密算法包括DES算法、3DES算法、TDEA算法、Blowfish算法、RC5算法、IDEA算法、AES加密算法等。下面以DES算法为例,简要介绍对称加密算法。

DES算法(见图2.3)又称为美国数据加密标准,是1972年由美国IBM公司研制的对称密码体制加密算法。明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

图2.3 DES算法结构

DES算法入口参数有三个:key、data、mode。key为加密和解密使用的密钥,data为加密和解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密;当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有很高的安全性。

DES算法把64位的明文输入块变为64位的密文输出块(分为L0R0两部分),它所使用的密钥(用Kn表示)也是64位,整个DES算法的主流程图如图2.4所示。

图2.4 DES算法的主流程图

由上面的原理和流程可以看出,对称加密算法的核心是位置的代换和字母的替换。感兴趣的读者可以自己编写DES算法。网上也有一些免费代码可以参考。