根据维基百科分组密码操作模式维基百科分组密码操作模式,简化循环流化床支持随机读取访问。但是真正的CFB呢?我们有换班登记簿吗?以下是为CFB摘录的“威廉·斯泰林斯的密码与网络安全”一书中的图片。

和

它支持随机读取访问吗?如果是,怎么做?
发布于 2020-12-18 16:31:44
简化循环流化床支持随机读取访问。但是真正的CFB呢?我们有换班登记簿吗?
当然有,事实上,也没那么难。在CFB中,提交给底层块密码的“明文”是密文的前一个b位(其中b是块大小)。移位寄存器的存在仅仅是为了让我们在加密/解密过程中跟踪这些比特是什么。“真正的”循环流化床(这是原始理解)与现代理解的唯一区别是,最初的理解允许我们每次迭代使用s比特,这可能比b比特少(在现代理解中,我们总是每次迭代使用所有b位,或者换句话说,s = b;当s = b,以前的b密文比特恰好是我们只是输出或看到的密文块,因此我们不需要移位寄存器)。
而且,IV是在密文开头给我们先前的密文位(在这里我们没有先前的密文位);我们可以使用它。
例如,假设您想要在偏移量1024位(和b=128)处开始读取;您将读取从1024-128 = 896开始的128个密文位,并将其用作CFB模式IV;然后可以在密文偏移量1024处开始解密,它将正确解密。唯一需要注意的是,我们需要从一个偏移量开始,偏移量是s位的倍数。
背景: CFB最初的想法允许我们处理插入或删除s位块的密文错误;例如,如果我们加密通过RS-232通道的数据,有时会插入一个额外的字符或删除它。CFB的优点是,如果发生这种情况,接下来的8个字符(当时,我们有b=64)将被错误地解密,但是移位寄存器将重新生成,一切都会很好(相反,CBC模式在插入/删除8个字节的倍数之前永远不会重新同步)。如今,这种能够重新同步的特性被认为并不重要(我们对攻击者插入故意错误比较敏感,因此我们更倾向于拒绝所有不能正确解密的内容),因此CFB模式的这种特殊属性被认为不重要(而且代价很高;如果s=8,我们对每个字节执行块模式操作)
https://crypto.stackexchange.com/questions/87003
复制相似问题