哪种TrueCrypt算法最安全?


83

如果性能无关紧要,则哪种TrueCrypt算法最安全使用?

  • AES
  • 三重DES
  • fish鱼
  • AES-Twofish
  • AES-Twofish-蛇
  • 蛇AES
  • 蛇-双鱼-AES
  • 蛇鱼蛇

13
它们都是安全的,否则它们将不在产品中。但是使用AES,因为它是标准。
伊恩·博伊德

13
我想说的是,除非您之后有政府机构,否则密码的质量比加密算法更可能成为问题。
上校

3
太奇怪了 我本可以发誓标题是问最快的标题。ಠ_ఠ–
Synetech

Answers:


37

这些是AES竞赛最后一轮投票的结果:

Rijndael 86-10 = 76
Serpent 59-7   = 52
Twofish 31-21 = 10
RC6 23-37 = -14
MARS 13-83 = -70 

http://csrc.nist.gov/archive/aes/round2/comments/20000523-msmid-2.pdf,通过truecrypt蛇链接,也请阅读该书)。

因此,出于各种原因,Rijndael成为了AES(它是DES(和3DES)的继承者)的AES。

并且,因为它今天在news.ycombinator.com上突然出现,AES的故事:

http://www.moserware.com/2009/09/stick-figure-guide-to-advanced.html


62

使用TrueCrypt 7.0a,最安全的加密方法是:通过XTS方法使用AES-Twofish-Serpent级联加密。使用Whirlpool哈希算法。(SHA-512在这里排名第二,很值得商......我倾向于Whirlpool,因为SHA-512已经开发出了后继产品,因为担心它基于旧版SHA-1,最重要的是使用非常强的密码。20至30个以上的字符,大写,小写,数字,符号。使用Microsoft的在线密码检查器进行强度测试。您也可以使用密钥文件来进一步保护密码。

我建议将AES-Twofish-Serpent优于Serpent-Twofish-AES,因为您希望最外层的加密(AES将是他们需要打破的第一层)成为业界最标准的加密方法。那是所有人中最努力,最真实,最受考验的。另外,如果有人假设文件是​​使用AES加密的,则无法看到使用Twofish加密的文件...因此他们做了所有这些工作来破坏AES,只是发现Twofish现在处于阻碍状态。然后在Twofish之后,它们又遇到了蛇,这是它们中最大的野兽(尽管它比AES更少使用/测试,但它的安全裕度仍然比AES高得多)

如果您确实使用密钥文件,我建议让TrueCrypt为您创建3个密钥文件。为它们提供的每种哈希算法创建一个密钥文件。您可能还会添加一些.jpg文件和一些.mp3文件。但是,我将确保每个密钥文件均为只读。

不过,这可能是过大了。


2
您说使用20到30个字符,但这不是过度杀伤力吗?即使是10个小写字符,也将是26 ^ 10 = 141,167,095,653,376个组合(400万年,每秒检查一次)。当然足够好吗?
Dan W

12
@Dan W:肯定是每秒检查一次。但是,尽管散列方法的性能差异很大,但是消费级硬件距离每秒测试数十亿个密码的距离要近得多。您的十个字符的小写密码将在几个小时内被破解。
马克·托马斯

7
您对级联顺序的依据没有任何意义。不管AES是第一还是最后,攻击者都必须突破每一层(每一层都使用一个独立的密钥)。
jjlin 2013年

15

级联密码(AES-Twofish-Serpent等)应该是最安全的。您的数据使用一种算法进行加密,然后使用第二种算法对数据进行加密,然后使用第三种算法对数据进行加密。根据TrueCrypt文档,每种算法使用不同的密钥,每种密钥均来自您的密码短语。

如果在这些密码中的一个(或两个)中发现了漏洞,则您的数据仍将是安全的,因为攻击者仍将无法破解其余密码。


8
我想补充一点,如果只选择一个密码,Serpent可能是最安全的,但比AES慢得多(请注意,政府对“高级加密标准”的选择涉及性能,而不仅仅是安全性)。
bwDraco

5

AES-Twofish-Serpent或蛇-Twofish-AES。但是常规的AES就足够了。


5

Rijndael之所以赢得AES竞赛,主要是因为它是最快,最容易在硬件中实现的,而不是因为它是最“安全的”。Twofish的和蛇通常被认为是更安全的,但由于它们非常稳固的,这是一个非常主观的要求。当然,使用多种算法进行加密将更加“安全”,但会进一步降低速度。

同样,它们都是坚如磐石,所以我的建议是选择机器上最快的那个(通常是AES)。


1

我已经读过,由于用于相互遵循的算法,链接算法在一起可能会导致安全性较弱。

此外,如果您使用组合密码之一,则效率和速度将受到很大影响。

我建议使用Rijndael(AES)或Serpent,并且如果您希望它是安全的:最关键的元素是密钥,因此请使用一个非常长的密钥,并至少使用大小写,数字和符号字符中的每一个。


1

虽然将多个密码级联在一起存在一定的危险,但是Truecrypt似乎会尽力处理它们。它不会在第一个密码的输出中添加任何已知的明文,并且每个密码都使用独立密钥,因此通过将不同算法链接在一起,可以提高安全性。

我会尽量避免使用3DES。阅读Truecrypt页面列出的算法选择后,它甚至没有列出三重DES,因此他们最近可能已删除了它。


3
对于那些对级联多个密码中的“危险”进行更深入讨论的人员,请查看以下主题:crypto.stackexchange.com/questions/6486/…–
Tiago

3DES的主要缺点是,与更现代的密码相比,它速度缓慢,而充其量只能提供类似的安全性。(由于遇到了中间攻击,3DES可以使您达到112位安全性,而AES-128当前可以以更好的吞吐量获得接近128位的安全性。)此外,DES使用64位块是由于使用较小的块可能会产生有限的扩散,因此产生了责任。
CVn

0

可以想象,如果您使用的是密钥文件,则可以使用较短的密码,并且如果您不担心性能下降,则使用AES Twofish和Serpent会对尝试进入加密材料的用户造成很大的麻烦。但也不要忽视,您也可以将一个加密文件放在一个更大的加密文件的内部。这样,您可以“允许”攻击者查看外部容器,并让他们认为他们拥有整个容器。实际上,他们根本没有任何东西。随意在外部文件中放入一些暗淡的东西,但是没有任何实际会引起问题的东西。我认为,大量色情照片将非常适合此帐单,这是某人想要隐藏的东西,因此,您有充分的理由。外部容器并没有显示内部容器甚至存在。将实际材料放入内部容器中。更好的办法是使外部容器“弱”使用足够的密码,并且没有密钥文件。让您的攻击者以为他们破坏了您的加密,耸了耸肩,说:“该死,您是好人,让我死于权利。”


0

假设使用256位变体(时间复杂度越高,但有各种注意事项),则适用于每种加密算法的最佳公共密码分析:

  • Rijndael:2 ^ 254.4时间复杂度(忽略此处不会出现问题的相关关键攻击)
  • 蛇:12回合的时间为32,时间复杂度为2 ^ 228.8(但需要2 ^ 118的已知明文)
  • Twofish:6个回合,每16个回合(但需要2 ^ 51个选定的明文)
  • 3DES:2 ^ 118(具有2 ^ 32已知的明文;请注意,3DES使用168位,因此蛮力是2 ^ 168而不是2 ^ 256)

毫无疑问,3DES是最不安全的,但这并不一定使其不安全(除非通常未公开的后门问题)。但是我会避免。所有其他算法通常被认为是安全的。要确定其中是否有一个故意放置的后门,可能需要斯诺登发布更多文档。老实说,如果前三名中的任何一家确实有后门,那将是绝对的重大启示。鉴于他的记录,我个人很高兴假设它们仍然安全。


具有三个独立密钥(168位密钥材料)的3DES容易受到中间相遇攻击,这意味着有效的安全性是112位密钥的安全性。zh.wikipedia.org/wiki/Triple_DES#Security
CVn

0

2001年,美国国家标准技术研究院(NIST)推出了高级加密标准(AES),并通过反对算法将五名候选人(通过多次候选人会议)入围,以代表该标准。蛇密码就是其中之一,获得了高度安全的kudus,但最终成为Rijndael密码的亚军。尽管这发生在几年前,但它使人对电子数据加密以及性能与安全性之间的权衡有了一个令人着迷的印象。有趣的是,性能赢了!

与其他五个候选者相比,蛇密码具有最高的安全系数3.56,考虑到第二好的密码是Twofish密码,其安全系数为2.67,这是相当不错的。Rijndael-256的安全系数为1.56

https://www.100tb.com/blog/security-performance-serpent-cipher-rijndael/

https://veracrypt.codeplex.com/wikipage?title=蛇


-1

由于没有已知的针对AES的攻击使暴力破解变得可行(请参阅:https : //en.wikipedia.org/wiki/Advanced_Encryption_Standard#Known_attacks),除非您期望三字母代理机构将其全部计算能力用于下一次攻击 千年来破解您的驱动器,AES是必经之路。TrueCrypt的最新版本及其分支支持AES-NI,在我的Core i7 3770上提供了超过2.5 GB /秒的吞吐量。

您与该域发布的IP地址的连接在大多数浏览器上使用AES加密(尽管CloudFlare拥有浏览器看到的密钥,并在将数据发送到StackExchange服务器之前对其进行解密和重新加密,因此请不要使用TrueCrypt / VeraCrypt / CipherShed密码作为您的StackExchange密码,因为如果说这3个字母的代理机构要破解您的驱动器,他们将在CloudFlare代理服务器上拦截您的密码,并在尝试永无止境的强力手段之前先尝试该密码)。


-2

我建议您将Whirlpool哈希与这些算法一起使用,因为它是最强大的。

对于加密算法,应使用级联。我推荐AES,Twofish,蛇。AES非常薄弱(与其他算法相比,但速度最快),并且是行业标准,因此可以作为外层有效。Twofish甚至更强大,并且在解密AES层之后,将有另一个层(Twofish)更强大。蛇是最强的,这种级联证明是有效的。

一些额外的信息:对于密码,NSA有一个量子计算机,可以非常快速地解密。我不相信NSA(他们设计的AES)。我建议至少使用40个字母,小写和大写字母,数字,符号,并且不包含词典单词或个人信息(出生日期等),并且可以使用密钥文件。如果您有遭受对手威胁的风险,请使用TrueCrypt内置的合理可否认性功能。


尚无已知的AES量子计算攻击。量子计算机并不比我们的二进制计算机快。它们只是不同。
马克·洛佩兹

NSA没有设计AES。AES是由一对比利时密码学家以Rijndael的名字设计的,在NIST AES竞赛期间受到全球密码学家的审查(并受到了极大的抨击),并根据一系列众所周知的标准赢得了竞赛后被NIST标准化为AES 。如果您打算从事锡箔纸制帽,请至少弄清事实。此外,AES 与密码无关
CVn

至于合理的可否认性,在Linux cryptsetup FAQ的第5.18节“合理的可否认性如何?”中,有一个令人信服的论点,为什么它在实践中不起作用?在第5.2节“ LUKS是否不安全?每个人都可以看到我已加密的数据!”中对此进行了介绍。从某种意义上讲,它是xkcd.com/538的变体(是的,是xkcd链接的合法使用)。
CVn

-2

AES

Rijndael(当前为AES)是最好的算法。

https://crypto.stackexchange.com/questions/24307/why-is-aes-unbreakable

首先,并不是说AES不可破解,只是说目前已知的攻击都没有将AES降低到可行的程度。当前对AES-128的最佳攻击需要2 ^ 126.1次操作,如果我们拥有一台计算机(或群集),其效率比任何当前计算机高几百万倍,并且可以在热力学Landauer极限下运行,则仅需增加234 petajoules即可通过每个键值进行计数。这大约是挪威每年电力消耗的一半。实际上,计算AES回合所需的能量是原来的几倍。

fish鱼

来自维基百科

Twofish是一个对称密钥块密码,块大小为128位,密钥大小最大为256位。它是“高级加密标准”竞赛的5个决赛入围者之一,但未选择进行标准化。Twofish与较早的分组密码河豚有关。

Twofish的独特功能是使用预先计算的依赖于密钥的S盒以及相对复杂的密钥时间表。n位密钥的一半用作实际的加密密钥,n位密钥的另一半用于修改加密算法(依赖于密钥的S盒)。Twofish借鉴了其他设计的一些元素;例如,SAFER密码族的伪Hadamard变换(PHT)。Twofish具有Feistel结构,如DES。Twofish还采用了最大距离可分离矩阵。

在大多数软件平台上,对于128位密钥,Twofish的运行速度比Rijndael(高级加密标准选择的算法)稍慢,但对于256位密钥,则稍快一些。

来自维基百科

蛇是对称密钥块密码,在高级加密标准(AES)竞赛中入围,在此之后,它仅次于Rijndael。蛇是由罗斯·安德森(Ross Anderson),伊莱·比厄姆(Eli Biham)和拉斯·努德森(Lars Knudsen)设计的。

与其他AES提交一样,Serpent的块大小为128位,并支持128、192或256位的密钥大小。[2] 密码是在四个32位字的块上运行的32轮替换置换网络。每个回合并行应用八个4位至4位S盒之一,共32次。设计了Serpent,以便可以使用32位分片并行执行所有操作。这样可以最大程度地提高并行度,但也可以使用在DES上执行的大量密码分析工作。

Serpent采取了保守的安全措施,选择了较大的安全余量:设计人员认为16轮足以抵御已知类型的攻击,但指定32轮作为对未来密码分析发现的保证。NIST关于AES竞争的官方报告将Serpent与MARS和Twofish一起具有很高的安全裕度,而RC6和Rijndael(当前为AES)具有足够的安全裕度。在最终投票中,Serpent的否定票数最少,但在总决赛中排名第二,因为Rijndael的票数更高,而决定因素是Rijndael允许更高效的软件实现。

SHA比MDA,Whirpool等要好得多。但是他们找到了打破SHA的方法。SHA-2(HMAC)到了。他们再次找到了打破它的方法。SHA-3(Kakee或类似的东西)来了。但是在TrueCrypt,VeraCrypt,CipherShed或TrueCryptNext中不存在SHA-3。 ;-)

AES-Twofish-Serpent + SHA-512 =最佳算法和哈希,适用于TrueCrypt等。


-3

快速搜索后,我会说AES 256 bits

我会避免使用三重AES和三重河豚。与一次使用原始算法相比,多次运行同一算法可能会降低安全性。

资源


1
似乎可以推测,但三次遍历肯定会增强Triple DES。(除非底层实现的设计,使一个大错误,做“EK2(DK1(EK1(明文)))”的西蒙·辛格做了他的暗号挑战:P)
RJFalconer

5
1)你的消息是在开玩笑。随机的论坛帖子。2)没有理由相信使用不同密钥的三重加密会削弱加密。
CodesInChaos 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.