1. 定义
对称密码算法加密过程与解密过程使用相同的或容易相互推导得出的密钥,即加密和解密两方的密钥是“对称”的
2. 加解密流程
用户通过加密算法将明文变换为密文。密文的具体值由密钥和加密算法共同决定。只有掌握了同一个密钥和对应解密算法的用户才可以将密文逆变换为有意义的明文。
针对不同的数据类型和应用环境,对称密码有两种主要形式:一是序列密码(也称“流密码”,stream cipher),二是分组密码(也称“块密码”,block cipher)。我国发布的商用密码算法中的序列密码算法和分组密码算法分别是ZUC和SM4算法。常见的国外序列密码算法有SNOW(如SNOW 2.0、SNOW 3G)、RC4等;分组密码算法有数据加密标准(DES),三重数据加密算法(TDEA,也称3DES),高级加密标准(AES)等。
3. 序列密码和分组密码
3.1 区别
- 序列密码和分组密码的区别在于序列密码是将密钥和初始向量(Initial Vector,IV)作为输入,通过密钥流生成算法输出密钥流(也称扩展密钥序列),然后将明文序列和密钥流进行异或,得到密文序列,如图(a)所示;序列密码的特点在于密钥流可以在明文序列到来之前生成。
- 分组密码首先对明文消息根据分组大小进行分组,再将明文分组、密钥和初始向量(如果有)一起作为输入,通过分组加密算法直接输出密文分组.如图(b)所示;
3.2 初始向量(IV)
在对称密码的实际应用场景中,初始向量是一个在加密过程中起到引入随机性作用的随机数,即在加密一批明文数据之前,加密方先要随机生成一个初始向量,并将它和密钥一起输入到加密算法中。每次加密初始向量都必须重新生成,初始向量的引入使得多次分别对同一明文数据使用相同的密钥进行加密,得到的密文是不同的。IV可以不保密。
3.3 分组密码的工作模式
相关国家标准:GB/T 17964-2021《信息安全技术 分组密码算法的工作模式》。
在分组密码算法中,根据分组数据块链接的组合模式不同,可以分为以下九种工作模式: