对称加密算法
对称加密算法依赖于一个共享的加密密钥,该密钥会被分发给所有参与通信 的对象。所有通信对象都使用这个密钥对消息数据进行加密和解密。当使用越长 的密钥对消息进行加密时,密文数据越难被破解。对称加密算法主要应用于批量 加密的数据,并且只为安全服务提供机密性。图6-1说明了对称加密算法的加密和 解密过程。对称加密算法的特点是文件加密和解密使用相同的密钥,即发送方和 接收方需要持有同一把密钥。相对于非对称加密算法,对称加密算法具有更高的 加解密速度,但双方都需要事先知道密钥,密钥在传输过程中可能会被窃取,因 此安全性没有非对称加密算法强。常见的对称加密算法包括DES 、AES等。
图6-1 对称加密算法的加密和解密过程
因为对称加密算法具有发送方和接收方使用同一把密钥的特点,所以存在如 下优缺点:
·对称加密算法的主要优势在于能够以极快的速度进行操作,通常是非对称加 密算法的1000~10 000倍。
·对称加密算法未实现不可否认性。由于任意通信方都可以利用共享的密钥对 消息进行加密和解密,因此无法分辨指定消息的来源。
·对称加密算法具有不可扩展性。对于大的用户组来说,使用对称密钥的密码 进行通信非常困难。只有在每个可能的用户组合共享私有密钥时,组中个人之间 的安全专有通信才能实现。
·密钥需要经常更新。每当有成员离开用户组时,所有涉及这个成员的密钥都 必须被抛弃。
6.1.2 非对称加密算法
非对称密钥算法(也称为公钥算法)针对对称加密算法的弱点提供了另外一 种解决方案。在系统中,每个用户都有两个密钥:一个是在所有用户之间共享的 公钥,另一个是只有用户自己知道并秘密保管的私钥。如果使用公钥加密消息, 那么只有相关的私钥能够进行解密,反之,如果使用私钥加密消息,则只有用相 关的公钥能够解密,即数字签名技术。图6-2是非对称加密算法的加密和解密过 程。
图6-2 非对称加密算法的加密和解密过程
在这里举一个例子,如果小明希望向小红发送消息,首先要生成一条明文消 息,随后使用小红的公钥对消息进行加密。对这个密文进行解密的唯一方法是使 用小红的私钥,并且唯一有权使用这个密钥的用户就是小红。如果小红希望向小 明发出回应消息,小红会使用小明的公钥对回应消息进行加密,小明随后可以使 用他自己的私钥对消息进行解密,从而读取这些消息。
文件加密需要公钥(publickey)和私钥(privatekey)。接收方在发送消息 前,需要事先生成公钥和私钥,然后将公钥发送给发送方。发送方收到公钥后, 将待发送数据用公钥加密,发送给接收方。接收方收到数据后,用私钥解密获得 明文信息。在整个过程中,公钥负责加密,私钥负责解密,这样数据在传输过程 中即使被截获,攻击者没有私钥也无法破解。非对称加密算法的加解密速度低于 对称加密算法,但是安全性更高。通常非对称加密算法包括RSA 、ECC等。
非对称加密算法除了能够确保消息的保密性,还可以实现对数字签名。如果 小明希望使其他用户确信带有其签名的消息是由小明本人发送的,那么首先要使 用散列算法创建一个消息摘要。小明随后使用其私钥对消息摘要进行加密。所有 希望验证这个签名的用户只需要利用小明的公钥对消息摘要进行解密,然后验证 解密的消息摘要是正确的,即可确定是否为小明本人发送的消息。
非对称加密算法的主要优点如下:
·有较好的扩展性,增加新用户只需要生成一对“ 公钥-私钥” 。新用户与非对 称密码系统中的所有用户通信时都使用这对相同的密钥。
· 容易删除用户。非对称算法提供了一种密钥撤销机制,这个机制准许密钥被 取消,从而能够有效地从非对称系统中删除用户。
· 只有在用户的私钥被破坏时,才需要进行密钥重建。如果某位用户离开了公 司,那么系统管理员只需要简单地将该用户的密钥作废即可。其他密钥都不会被 破坏,因此其他用户都不需要进行密钥重建。
· 非对称加密算法提供了完整性、身份认证和不可否认性。如果某位用户没有 与其他个体共享其私钥,那么具有该用户签名的消息就是正确无误的,并且具有 特定的来源,在以后的任何时刻都不能被否认。