我已经实现了这个算法,它从消息的末尾向后执行,使用块密码的解密操作而不是加密操作,从任何明文创建有效的CBC加密文本。

我打赌这是在文献中描述的,在某个地方。可能是个坏主意。
我的问题:
对于那些想知道为什么我想从最后加密我的消息的人来说,这是一个利用填充oracle攻击(针对我自己服务器上运行的虚拟代码)的练习。
发布于 2015-08-01 21:51:41
这种方法/算法/结构叫什么?
不知道,这是我新买的。
它是否与CBC的正常实现方式一样安全?
应该是的。作为抽象的‘获取明文,输出密文’模型,这种方法(具有随机的最后一个密文位)具有与CBC模式相同的密文输出分布(带有随机IV),因此从这个角度来看,它同样好。而且,我没有看到任何额外的侧通道类型攻击(即侦听加密过程的攻击)。
CBC IV的正常规则是否适用于最后一个密文块?
实际上,较小的限制适用。使用标准的CBC模式实现,您需要生成无法预料的IVs (如果不这样做,可能会有选择的明文攻击)。这样,您只需要在随机的最后一个密文位中惟一(请不要故意复制前一个密文块)。这可以通过将块密码看作是随机的Oracle来看到;只要之前还没有看到最后一个密文块,那么攻击者就不会知道导致该块的“加密”的信息(除此之外,它是一个他以前从未见过的值);只要您处于生日范围内,您就不必意外地重新发出密文块。因此,虽然使用计数器生成带有标准CBC模式的IVs是一个非常糟糕的想法,但实际上在这里是安全的。
发布于 2015-08-02 01:22:54
您的模式实质上等同于循环流化床模式,只是:

这两个差异都不应该有任何直接的安全影响(因为所有标准块密码在两个方向上都具有相同的安全属性),所以您的方案应该与CFB模式一样安全。
https://crypto.stackexchange.com/questions/27273
复制相似问题