CTR模式似乎可以完全实现XTS可以做到的,但是更简单实行?在任何一种模式下,我将使用磁盘扇区#来提供随机性,以确保相同数据的2个扇区将以不同的密文结尾。我错过了什么细微之处?
#1 楼
假设您使用扇区号乘以每个扇区的AES块数作为CTR的初始值。如果您先后将内容$ M $然后$ M'$存储在同一扇区$ n $中,则$ E ^ {CTR} _n(M)\ oplus E ^ {CTR} _n(M')= M \ oplus M' $(其中$ E ^ {CTR} _ {n} $是具有CTR模式的加密功能,并且对于扇区号$ n $启动了IV)。当您重复使用计数器值时,CTR模式将灾难性地失败,因为它是纯xor流密码:将两个使用相同密钥和计数器值生成的密文块进行异或运算会取消加密。例如,如果该块开始时全为零(实际上经常发生),而对手设法获得了初始密文和更新后的密文,那么对手在盘片上便拥有机密明文。 br />如果将扇区号用作初始计数器,则更糟,因为扇区的第二个块与下一扇区的第一个块共享一个计数器,依此类推。这样一来,即使只有磁盘的单个快照,攻击者也可以重建很多内容。要安全地使用CTR,您每次都需要生成一个新的计数器值。您可以将扇区号用作初始计数器值的一部分,但这样做没有什么价值,因为您需要存储其余的计数器(某种类型的每块更新计数,全局计数器值,
XTS结合了扇区号作为调整。明文的任何更改都会导致内容的完全更改。知道扇区的内容在两个不同时间的对手可以观察到该扇区的内容是否已更改,这对于确定性加密是不可避免的,但是如果内容已更改,则对手不会获得有关明文的信息。
如果唯一的威胁是磁盘被盗,那么攻击者将只能获得一个版本的密文,而之后将不再加密任何明文,那么我认为使用XTS而不是CTR没有任何好处。
如果对手可以在不同时间观察密文,则XTS可以做得更好。但是,这并不完美:您需要为此存储某种IV的额外负担。
如果对手可以修改密文,那么您还需要担心数据完整性。 CTR具有极强的延展性:攻击者可以通过简单地翻转相应的密文位来翻转纯文本位。 XTS具有较小的延展性,但仍允许攻击者用垃圾内容或旧内容替换好的内容。经过身份验证的加密模式将加密与MAC相结合,从而提供了机密性和真实性(如果正确的话,还可以提供完整性)。
评论
$ \ begingroup $
好的答案:-)
$ \ endgroup $
–密码学家
2014年2月21日15:40
$ \ begingroup $
好的答案,但是即使您使用经过身份验证的加密,也要考虑用较新的内容替换较旧的内容。防止重放攻击不仅需要经过身份验证的加密。
$ \ endgroup $
–亨里克·赫尔斯特伦
2014年2月21日在15:54
$ \ begingroup $
@HenrickHellström是的,这将是完整性的问题,而不是机密性。我对完整性的关注不多。对于重放保护,您不能有确定性的方案:必须有某种东西可以将最新的有效内容与某些较旧的以前有效的内容区分开。
$ \ endgroup $
–吉尔斯'所以-不再是邪恶的'
2014年2月21日在16:08
$ \ begingroup $
完美。非常感谢。吉尔斯。我想我在这里错过了几件事。首先,在不同时间重用计数器,并且块的大小(例如16字节)小于扇区大小的512字节。 Boneh教授曾提到,当一个扇区恢复到以前的状态时,信息可能会泄漏,观察者可以注意到这种变化。
$ \ endgroup $
–user12136
2014-02-22 13:22
$ \ begingroup $
刚越过这篇文章sockpuppet.org/blog/2014/04/30/you-dont-want-xts,在解释这个主题方面做得非常好。
$ \ endgroup $
–user12136
16 Feb 15'3:34
#2 楼
一个答案就是随机数空间:添加调整项将显着增加允许使用的不同随机数调整项的数量,从而增加可以使用单个密钥安全加密的最大数据量。更新:罗格威(Rogaway)在他的模式论文中引用了较早的消息来源,由于可塑性差,CTR被驳回。这很有道理,因为如果我在不知情的情况下更改磁盘上的内容,则光盘加密将无法完成。基于AE的方案(本主题)要求为标签预留磁盘空间。
评论
$ \ begingroup $
更新#2:我尝试跟进该参考(转到IEEE Std 1619-2007的附录),但是这里的“网”令人震惊。稍后将尝试修复:)
$ \ endgroup $
–密码学家
2014年2月21日15:32
$ \ begingroup $
我认为不使用CTR的最重要原因是,如果对手可以在不同时间观察密文,则它会因计数器的重用而灾难性地失败。针对活动的攻击者,如果您除了需要保密性之外还需要完整性,则无论如何都需要其他东西(通常是MAC或AEAD)。
$ \ endgroup $
–吉尔斯'所以-不再是邪恶的'
2014年2月21日15:41
$ \ begingroup $
这也是一个很好的选择,但是正如您所说的,它确实取决于攻击模型。我只是引用Rogaway引用IEEE。稍后,我将尝试提供实际的报价,但是据我所知(在我所在的地方,不是Crypto.SE),这是数据包嗅探并杀死所有SSL调用,这让我很烦!
$ \ endgroup $
–密码学家
2014年2月21日在16:11
评论
我以为这已经存在,但找不到骗子。无论哪种方式,都清楚地说明了这一点,因此即使存在另一个也很容易保留。 [相关]刚穿过这篇文章sockpuppet.org/blog/2014/04/30/you-dont-want-xts,在解释这个主题方面做得非常好。