分组密码模式


分组密码必须搭配一个分组模式,才能加密超过分组长度的明文。

英文:Modes of operation

相关文档:SP 800-38A

Classic modes of operation for symmetric block ciphers

对应文档:NIST SP 800-38A, 2001

  • ECB: The most basic but also the weakest mode of operation.

  • CBC, Ciphertext Block Chaining;

  • CTR, CounTeR, defined in NIST SP 800-38A, section 6.5 and Appendix B. This mode turns the block cipher into a stream cipher.

  • CFB, Cipher Feedback. This mode also turns the block cipher into a stream cipher.

  • OFB, Output Feedback. Another mode that leads to a stream cipher.

They only provide guarantees over the confidentiality of the message but not over its integrity.

ECB

Electronic CodeBook

该模式直接将明文加密,导致相同的明文会转化为相同的密文,直接观察就能发现重复部分,为破译提供了线索。

对攻击者来说,无需破译就能够操作明文,比如交换付款人和收款人。虽然通过MAC就可以发现这种篡改行为,但其它模式可以直接避免篡改行为。

CBC

Ciphertext Block Chaining

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bFL2I4MO-1673595762435)(OperationsModes.assets/Figure2The_CBC_Mode.png)]

CBC模式下的明文分组操作如下:

  1. 与上一个密文分组异或
  2. 加密

首个明文分组则是与初始化向量IV ( Initialization Vector )异或。

每次加密的IV需要进行更换,否则,攻击者监听到两份密文,从中会发现相同的部分,为破译提供线索。

还有一种模式叫做CTS ( Cipher Text Stealing),使用倒数第二个密文分组作为填充数据。通常搭配ECB和CBC使用。

攻击方式

针对CBC可以对IV进行比特反转攻击,这样首个明文分组对应的比特也会改变。

但对密文分组N这种方式是不行的,因为虽然明文分组N+1对应比特会变化,但明文分组N在解密后会有多个比特的变化。

CFB

密文反馈模式,意思就是把密文分组重新作为加密算法的明文输入进行加密。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0dg86fba-1673595762437)(OperationsModes.assets/Figure3_The_CFB_Mode.png)]

可以把CFB模式看作是流密码(不需要明文填充)。

该模式有以下特点:

  • 明文只需要与加密IV和密文进行异或操作,不需要明文填充;

  • 加密算法的输出相当于随机源,但因为是计算得到的,并不满足不可预测的要求;

  • 密码算法只加密,不解密。

  • 必须从第一个明文分组开始加密,不能跳过

攻击方式

Replay attack。

攻击者保留密文1,并截获密文2,将密文2中的后面几个分组替换为密文1的分组。被替换的分组中,除了第一个不能成功解密,其余均可解密。

措施:凡是篡改行为,均可以上MAC。

OFB

输出反馈模式,与CFB很像,该模式也可以看作是流密码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lWGN060Y-1673595762438)(OperationsModes.assets/Figure4_The_OFB_Mode.png)]

它和CFB模式的区别,是OFB将加密算法输出直接作为算法输入再次加密,明文只需要与不停加密的IV进行异或操作。

OFB相对CFB有一个优点,异或操作需要的密钥流与明文无关,可以提前准备好,加密时只需要执行异或操作。相比加密算法,异或操作要快得多。

缺点:如果加密算法的输入和输出碰巧一样,那密钥流就一直重复了。这种情况几乎不可能,即使碰到了,不用这个密钥流,换个IV就行了。

CTR

计数器模式,相比OFB,把IV换成计数器作为算法输入即可。

该模式同样可看作流密码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fL43Zxwu-1673595762439)(OperationsModes.assets/Figure5_The_CTR_Mode.png)]

相比OFB模式,CTR模式中计数器(密钥流)的值可以由分组序号计算得到,所以可以以任意顺序对分组进行加解密。

攻击方式

针对CTR和OFB,都可以对密文分组进行比特反转攻击。

Modern modes of operation for symmetric block ciphers(待补充)

以下模式又称AEAD ( Authenticated Encryption with Associated Data),相比传统模式,加入了MAC完整性校验。

其它攻击方式

Padding Oracle Attack

填充提示攻击,适用于所有需要分组填充的模式,如ECB和CBC。

攻击者反复重放一段密文,每次都改变一下填充的数据,利用unpad报错信息提供破译线索。

案例:2014年SSL 3.0 Poodle

IV attack

IV需要由不可预测的随机源生成。

案例:TLS 1.0 使用CBC上一次加密的最后一个密文分组作为新的IV。

参考资料

SP 800-38A, Block Cipher Modes of Operation: Methods and Techniques | CSRC (nist.gov)

Block Cipher Techniques | CSRC (nist.gov)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值