首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Threefish512加密文件的最佳操作模式是什么?

使用Threefish512加密文件的最佳操作模式是什么?
EN

Cryptography用户
提问于 2017-02-02 01:36:04
回答 1查看 744关注 0票数 6

在密码学工程中,Bruce建议使用"rand IV CBC模式“,但我拥有的这本书的副本来自2003年,我不确定这是否仍然是一种推荐的做法,因为最近在各种CBC实现中发现了所有攻击。

有比CBC模式更好的选择吗?

我正在编写一个程序,它将使用块密码在本地加密一个文件。这是一个个人学术项目。

假设以下

  • 我使用的分组密码是Threefish512,所以GCM是不可行的,因为它只为128位块密码定义。
  • 我使用的分组密码不支持任何现代密码库(我知道),所以我将自己实现这种操作模式。
  • 该文件相对较小,其加密/解密只需周期性地进行,因此安全性优于速度和并行能力。
  • 进行加密的计算机并没有受到物理上的破坏。
  • 我可以获得第四代的真正随机数。
  • 这种加密不会成为直接网络通信的一部分,因此攻击者将无法将任何他们想要的信息输入到密码中。
  • 首选提供身份验证的模式。
  • 实施这一运作模式所需的细节属于公共领域,不受任何软件专利的限制。
EN

回答 1

Cryptography用户

回答已采纳

发布于 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”模式。据我所知,(不幸的)没有这方面的标准,但基本的想法是:

  1. 将文件分割成块,例如,1MB。
  2. 使用SIV模式加密每个块,并将产生的密文连接起来。
  3. 对于每个块,包括任何相关的参数,例如文件的总大小、所使用的块大小、当前块的数量以及更重要的是,前一个块的“合成IV”作为关联数据。(至少,如果您事先不知道文件的大小,那么每个块都应该有关联的数据-它的编号、前一个块的合成IV和指示这是否是最后一个块的标志。)

这种"SIV链“应该确保,如果加密文件的每个块都能被成功解密,这不仅保证了单个块的完整性,而且保证了整个文件的完整性(即没有添加、删除或切换块)。

票数 6
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/43485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档