数字政府网络安全合规性建设指南:密码应用与数据安全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.2 分组密码算法

与序列密码算法通过生成密钥流对消息加解密不同,分组密码算法(见图1-4)用于对固定分组大小的消息加解密。

图1-4 分组密码算法示意

分组密码算法通常包含以下要素。

1)分组大小:分组密码算法用于固定大小的消息块加解密,常见的分组大小有64bit、128bit等。

2)密钥长度:分组密码算法使用密钥来控制加解密过程,密钥长度关系着算法的安全性。通常来说,较长的密钥能够提供更高的安全性。

3)加密算法:用于将明文分组转换为密文分组。分组密码通常采用迭代结构,通过多轮运算实现加密过程。每一轮包含不同的步骤,如代换和置换等。

4)解密算法:加密算法的逆过程,通常与加密算法结构相似。

5)密钥扩展算法:将初始密钥扩展成加密或解密算法的每一轮运算所使用的轮密钥的过程。

6)填充方案:如果明文块的大小不是分组大小的整数倍,通常需要使用填充方案来将数据填充到合适的大小。

分组密码算法定义了固定长度的消息块上的置换操作,当实际应用分组密码时,需根据应用场景需求,结合适当的工作模式使用。分组密码算法的工作模式规定了分组密码的使用方式。GB/T 17964—2021《信息安全技术 分组密码算法的工作模式》中规定了多种分组密码算法的工作模式。

1)电码本(ECB)工作模式:加密时,每个消息分组独立加密,适用于会话密钥加密。因相同的消息分组会被加密成相同的密文,ECB工作模式不适用于对较长消息加密。

2)密文分组链接(CBC)工作模式:加密时,前一个密文分组会与当前明文分组进行异或操作,然后再进行加密。加密过程串行执行,解密过程可并行处理。

3)密文反馈(CFB)工作模式:加密时,用前一个密文更新初始向量,以用于后一块消息加密。CFB工作模式相当于基于分组密码构造的自同步序列密码,适用于低误码率网络中的流数据加密等。

4)输出反馈(OFB)工作模式:加密时,通过反复加密初始向量生成密钥流序列,再与消息序列异或得到密文。OFB工作模式适用于噪声环境下的流数据加密。GB 35114—2017《公共安全视频监控联网信息安全技术要求》规定OFB工作模式用于视频数据的加密保护。

5)计数器(CTR)工作模式:加密时,通过加密计数器生成密钥流序列,然后与消息异或得到密文。CTR工作模式具有高度并行性的特点,适用于高速网络数据加密,可应对突发的高速加解密需求。

6)带密文挪用的XEX可调分组密码(XTS)工作模式:适用于磁盘加密等场景。

7)带泛杂凑函数的计数器(HCTR)工作模式:适用于磁盘加密等场景。

8)分组链接(BC)工作模式:单一错误将导致所有后续密文分组解密出错。

9)带非线性函数的输出反馈(OFBNLF)工作模式:是OFB与ECB模式的变体,密钥随每个分组改变。