在密码学工程中,Bruce建议使用"rand IV CBC模式“,但我拥有的这本书的副本来自2003年,我不确定这是否仍然是一种推荐的做法,因为最近在各种CBC实现中发现了所有攻击。
有比CBC模式更好的选择吗?
我正在编写一个程序,它将使用块密码在本地加密一个文件。这是一个个人学术项目。
发布于 2017-02-02 11:49:07
您应该使用经过身份验证的加密模式。
我个人目前最喜欢的是SIV模式,最初由Rogaway & Shrimpton (2006)引入,并在RFC 5297中标准化(与AES一起使用)。
基于SIV结构的模式(例如SIV模式本身以及GCM-SIV)的主要优点是,与大多数其他加密模式不同的是,它们的安全性不会灾难性地失效,即使现在的IV被意外重用。这消除了现代认证加密模式中为数不多的“弱点”之一。CBC模式也在一定程度上具有这种特性,我认为这是Schneier的书推荐它的主要原因,但是SIV是在这方面要好得多,而且作为一种经过身份验证的加密模式,它也能抵抗范围更广的攻击。
SIV模式的主要缺点是它是一种两通模式:加密首先需要计算明文上的MAC,然后使用该MAC输出作为“合成IV”来加密数据。如果您想加密大文件,您可能希望使用“块SIV”模式。据我所知,(不幸的)没有这方面的标准,但基本的想法是:
这种"SIV链“应该确保,如果加密文件的每个块都能被成功解密,这不仅保证了单个块的完整性,而且保证了整个文件的完整性(即没有添加、删除或切换块)。
https://crypto.stackexchange.com/questions/43485
复制相似问题