TrueCrypt使用级联加密是否安全?它有用吗? TrueCrypt可以说是当今使用的最流行和使用最广泛的加密应用程序之一,但它似乎使用了一种非常常规的方案。

该软件提供了级联加密,用户可以使用AES,Twofish和Serpent的任意组合指定双重或三次加密。通常,在转到下一个块之前,对每个块执行多重加密,而不是先加密所有数据,然后再加密生成的密文。

花了很多时间通读crypto.se,共识似乎是多重/级联加密几乎没有提供(或可能没有)额外的安全性,甚至有人认为,如果这样做可能比仅遵循标准协议要弱(尽管后者似乎很少被任何标准所证实)推理)。但是,在布鲁斯·施耐尔(Bruce Schneier)的“应用密码学”(被许多人认为是密码学的典型文本)中,他主张使用多重加密(尽管谨慎,但有一些警告)。请参阅以下部分:15.7级联多个块算法,15.8组合多个块算法和17.11级联多个流密码。

与这一共识背道而驰的另一个示例是Tahoe-Lafs 100年密码技术项目,该项目具有在crypto.se上被推荐。他们的协议包括在CTR模式下使用AES加密,然后使用XSalsa20加密输出。

所以我的问题是,TrueCrypt的多重/级联密码学使用合理吗?为什么?

评论

也许更熟悉加密技术历史的人会纠正我,但是据我了解,应用加密技术是在AES之前编写的,当时NSA积极尝试削弱私有加密。这包括将DES密钥长度缩短到56位,以便可以强行使用。三重DES是密码学家为解决此问题而开发的一种方法。相比之下,AES使用128位密钥(或更长),并且密码界对我们设计分组密码的能力更有信心。级联不同类型的密码可解决不同的威胁。

我无法评论它是否安全,但是请参阅Matthew Green的多重加密博客。 Green讨论了是否根本需要多重加密。有趣的是2.规则。

#1 楼

级联密码可带来安全感。在密码其中之一的弱点将允许恢复加密数据的可能性方面,从技术上讲是合理的。这是布鲁斯·施耐尔(Bruce Schneier)的论点,在当时的领先密码DES是封闭式设计的时代,这显然是有道理的,该设计显然被小钥匙故意削弱了,这引起了人们的担心,否则这也被故意削弱了(事实证明并非如此)

另一方面,像TrueCrypt这样的系统所面临的更严重的威胁并不是密码的弱点;它们包括软件的破坏,软件运行的硬件的破坏,密钥的破坏(通过监听,密码短语的猜测,橡胶软管密码分析,从休眠文件或RAM存储器中恢复。),更改扇区的分析。风险很难减轻,并且许多人(包括我在内)认为,即使我们考虑使用AES-128,至少也要比AES的密码分析实现的可能性更大。而且,技术进步可能比暴力破解AES更快地通过暴力破解密码短语。

级联密码至少具有一个明显的缺点:性能降低。通常情况很重要,有时却不重要,例如加密密钥时。以我的观点,与AES相比,级联可能只会带来副作用,从而提高实用性:使得验证密码短语的猜测更加困难(在系统中,检查此类猜测的唯一方法就是打开密码短语)将密码通入密钥,使用级联的密码解密某些内容,并检查是否有意义。)

因此,总的来说,我认为除AES之外,级联密码只是一种缓解妄想症或表示额外关注的方式,例如告诉对密码学知之甚少的人:用于最重要的主存储的冷存储密钥,您甚至可以使用级联密码在USB记忆棒上使用Truecrypt卷;并且最重要的是,争取使用的所有硬件和软件的完整性!


在注释之后询问如何正确地级联(分组密码)。我对此的回答是,如果使用级联:


可以在密钥扩展阶段(将用户的密码短语转换为大密码的密钥)进行考虑,在此级联之所以有用,是因为它使成功破解暴力口令的设备的构造变得更加困难/昂贵/降低可能性。级联在密钥扩展中非常有用,因为当迭代级联的加密时,必须在每个级联的密码上快速实现快速实现,这在使用ASIC或FPGA的密码破解程序中是一个非常严重的问题。在FPGA密码中搜索一些有趣的链接。但是请注意,对于在密钥分配阶段中迭代的每个级联密码,对合法实现的速度优化对于安全性很重要(因为我们需要将迭代次数提高到可行的程度),而这对于安全性而言并不重要。批量加密阶段。
至少应在级联中实施级联中的第一个密码(在批量加密过程中与明文接触的密码,或者在较小程度下在密钥扩展过程中与密码接触的密码)。防止任何可能的旁信道攻击(包括定时和不必要的发射)的方式(有关在稍有不同的情况下稍后发生的危险的说明,请参见此)。
当密钥必须是秘密的(特别是用于批量加密的密钥)时,级联密码肯定必须使用不同的密钥(例如从广泛派生的密钥中提取);

Truecrypt对级联密码的使用肯定遵循3;否则,使用级联很有可能引发攻击。我说不清2,最重要的是1。

#2 楼

如果计算机中存在记录程序恶意软件,而不是键盘记录程序,则应该削弱级联密码,因为应用程序将知道该密码对某些内容进行加密的特定方式。逆向数学运算可能会发现密码。级联密码是安全的,并且有机会甚至连昆腾计算机都不会破解它。在这里我只说级联密码不是快速的,就像仅使用标准AES一样,但是它不是那么慢。

评论


$ \ begingroup $
“应用程序将知道密码对事物进行加密的特定方式。逆向数学运算可能会发现密码”。错误的密码功能是当今的开源。我们确切地知道他们执行哪些操作。您的句子基本上是:如果我知道加密密码,我可以将其求逆并找到纯文本和消息。这是完全错误的。
$ \ endgroup $
– Biv
16年4月7日在12:19