密码学
分组密码
定义
对固定长度明文分组使用密钥进行加密的对称密码,通常结合工作模式以处理任意长度的数据。
分组密码是一种确定性的、由密钥控制的置换,将固定长度的明文分组映射为同长度的密文分组,例如 DES 的 64 位与 AES 的 128 位。其内部根据由秘钥派生的轮密钥多次迭代轮函数(Feistel、替换-置换或 Lai–Massey)。要加密长度大于一个分组的数据,需要使用工作模式:ECB(不安全、确定性)、CBC、CTR、磁盘加密用 XTS,以及同时提供完整性的认证模式 GCM、CCM、GCM-SIV 等。模式选择、IV/nonce 的正确管理以及分组长度都会影响安全性;现代系统应使用 128 位分组的密码(如 AES)并采用认证模式。
示例
- AES 是 128 位分组密码,可在 GCM、CBC、XTS 等模式下使用。
- DES 是 64 位分组密码,因密钥过短现已过时。
相关术语
AES(高级加密标准)
由 NIST 标准化的 128 位分组密码,密钥长度可为 128、192 或 256 位,由 Daemen 与 Rijmen 设计,是全球占主导地位的对称加密算法。
DES(数据加密标准)
已过时的 64 位分组密码,有效密钥仅 56 位,1977 年由 NBS 标准化,因密钥空间可在数小时内被穷举,现已被视为破解。
流密码
通过将数据与由密钥和 nonce 派生的伪随机密钥流逐位或逐字节异或来加密的对称密码。
对称加密
加密和解密使用同一个秘密密钥的加密方案,在密钥安全分发的前提下提供高速度和强机密性。
加密
使用算法和密钥将明文转换为密文的密码学过程,使只有授权方才能恢复原始数据。
初始化向量(IV)
分组密码工作模式所使用的随机初始值,用于保证相同明文在同一密钥下加密会得到不同密文。