对称加密中GCM和CBC俩种加密模式的区别
CBC(Cipher Block Chaining) 和 GCM(Galois/Counter Mode) 是两种常见的对称加密模式。它们的主要区别体现在加密方式、性能和安全性上。
1. CBC(Cipher Block Chaining)模式
- 工作原理:
- CBC 是块加密模式,它将每个明文块与前一个密文块进行异或运算,然后加密,形成新的密文块。这个过程依赖于链式加密,因此前一个块的加密结果会影响后续块的加密。
- CBC 的第一个块与一个**初始化向量(IV)**异或,IV 是随机的,确保相同的明文在每次加密时产生不同的密文。
- 特点:
- 每个数据块的加密都依赖于前一个密文块(因此存在链式结构)。
- 并行性差:由于加密每个块时需要前一个密文块的结果,CBC 模式不能完全并行化处理,因此性能较低,特别是在大数据量加密时。
- IV 安全性:IV 需要是随机的并且每次加密都要不同,否则可能泄露一些信息。
- 缺点:
- CBC 易受 Padding Oracle Attack(填充 oracle 攻击)的影响。
- 由于无法并行处理,速度相对较慢。