5. CTR 模式
CTR 模式的全程是 CounTeR 模式(计数器模式) 。CTR 模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码 。

文章插图

文章插图
注意上图中解密过程,中间是加密而不是解密!因为这里需要保证明文和密文之间异或的对象不变 。不变才能异或两次还原明文 。
计数器每次都会生成不同的 nonce 来作为计数器的初始值 。这样保证每次的值都不同 。这种方法就是用分组密码来模拟生成随机的比特序列 。
OFB 与 CTR 对比
CTR 模式和 OFB 模式都属于流密码 。我们单独看两个加密过程,差异在输入到加密算法中的值不一样 。CTR 模式输入的值是计数器累加的值,而 OFB 模式输入的值是上一次输出的值 。

文章插图
CTR 模式加密和解密都用了完全相同的结构,这样对程序实现来说,方便很多 。更进一步,由于 CTR 模式每个密钥有累加的关系,所以可以通过这个关系,对任意一个分组进行加密和解密 。因为只要初始的密钥确定以后,后面的每个密钥都确定了 。这样看来,CTR 也是支持并行计算的 。
对 CTR 的攻击
在被攻击方面 CTR 和 OFB 是差不多的 。CTR 模式的密文分组中有一个比特被反转了,则解密以后明文分组中仅有与之对应的比特会被反转,这个错误不会被放大 。
不过 CTR 模式比 OFB 模式相比有一个更好的优点在于,如果 OFB 模式某次密钥流的一个分组进行加密以后生成的结果和前一次一样,那么这个分组之后的每次密钥流都不变了 。CTR 模式就不会存在这一问题 。
针对 CTR 模式,在它上面再加上认证功能,就变成了 GCM 模式(Galois/Counter Mode),这个模式能够在 CTR 模式生成密文的同时生成用于认证的信息 。从而判断“密文是否通过合法的加密过程生成” 。通过这一机制,即便主动攻击者发送伪造的密文,我们也能识别出“这段密文是伪造的” 。
6. 小结

文章插图
模式名称特点说明ECB 模式Electronic Codebook运算快速,支持并行运算,需要填充不推荐使用CBC 模式Cipher Block Chaining支持并行运算,需要填充推荐使用CFB 模式Cipher Feedback支持并行运算,不需要填充不推荐使用OFB 模式Output Feedback迭代运算使用流密码模式,不需要填充不推荐使用CTR 模式Counter迭代运算使用流密码模式,支持并行运算,不需要填充推荐使用XTS 模式XEX-based tweaked-codebook不需要填充用于本地硬盘存储解决方案中
【漫游对称加密算法】
推荐阅读
- 华为WLAN无线漫游配置
- 对称密码——DES加密算法
- RSA加密原理&密码学&HASH
- 简述对称加密和非对称加密
- 周杰伦|周杰伦300多万NFT被黑客盗走 上链加密艺术就这?
- 在电脑上直接生成MD5值
- 接口数据使用了RSA加密和签名?
- shell脚本明文不安全,这样做,两步安全加密
- 对称加密算法之王 AES
- 通信安全:哈希、加密、证书、签名、密钥协商、ECDH、TLS、DTLS
