DES,三重DES,AES,河豚加密数据的比较


Answers:


245

使用AES。

详细信息:

  • DES是70年代的旧“数据加密标准”。它的密钥大小对于适当的安全性而言太短了(56个有效位;这可能是蛮力的,正如十多年前所证明的那样)。此外,DES使用64位块,当使用相同的密钥加密数GB的数据时,这会引起一些潜在的问题(如今,GB不再那么大)。
  • 3DES是通过级联DES的三个实例(具有不同的密钥)来重用DES实现的技巧。人们认为3DES至少具有“ 2 112 ”的安全性(这在“用当今的技术不可破坏”的领域中是相当多的,而且还很遥远)。但是它很慢,特别是在软件方面(DES是为有效的硬件实现而设计的,但是它吸收了软件;而3DES的吸收是它的三倍)。
  • Blowfish是Bruce Schneier提出的分组密码,并已部署在某些软件中。Blowfish可以使用巨大的密钥,并且被认为是安全的,除了其块大小(如DES和3DES一样)为64位之外。Blowfish在软件中非常有效,至少在某些软件平台上是有效的(它使用依赖于键的查找表,因此性能取决于平台如何处理内存和缓存)。
  • AES是DES的后继产品,它是美国联邦组织的标准对称加密算法(也是几乎其他所有人的标准)。AES接受128、192或256位的密钥(128位已经非常坚不可破),使用128位的块(因此在那里没有问题),并且在软件和硬件上都非常有效。几年来,通过数百名密码学家参加的公开比赛选择了它。基本上,您不能比这更好。

因此,如有疑问,请使用AES。

请注意,分组密码是一个对“块”(使用AES的128位数据块)进行加密的盒子。加密可能长于128位的“消息”时,必须将消息拆分为块,并且进行拆分的实际方法称为操作模式或“链接”。天真的模式(简单拆分)称为ECB并存在问题。正确使用分组密码并不容易,并且比在例如AES或3DES之间进行选择更为重要。


4
有点
发疯

2
美国国家安全局(NSA)可以在1976年破解DES,但一直鼓励在2002年之前使用它!称我偏执狂,但害怕被AES推push
Deo博士

25

除AES和Blowfish之外,所有这些方案都具有已知漏洞,因此不应使用。
但是,河豚已被Twofish取代。


11

所描述的加密方法是对称密钥块密码。

数据加密标准(DES)是其前身,它使用56位密钥对64位块中的数据进行加密。每个块都是隔离加密的,这是一个安全漏洞。

三重DES通过在每个块上应用三个DES操作来扩展DES的密钥长度:用密钥0加密,用密钥1解密和用密钥2加密。这些密钥可能是相关的。

与传统的商业产品和服务接口时,通常会遇到DES和3DES。

AES被认为是后继的现代标准。http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

我相信不鼓励使用河豚。

强烈建议您不要尝试实现自己的加密,而应使用高级实现,例如GPG用于静态数据或SSL / TLS用于传输数据。这是一个关于加密漏洞的出色且醒目的视频,网址为http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/


2
为什么不鼓励使用河豚?那不是最安全的吗?
yogsma 2011年

5
@yogsma:Blowfish的块大小只有64位(因为它是协议中DES的直接替代),因此在使用同一密钥加密了GB的数据后会出现问题。
圣保罗Ebermann

@rohannes,为什么不鼓励使用BlowFish,我在性能方面有所了解BlowFish比AES更好,请参见Brighthub.com上的这篇文章
Yogesh

9

AES是一种对称密码算法,而RSA是一种非对称(或公钥)密码算法。加密和解密是通过AES中的单个密钥完成的,而您在RSA中使用单独的密钥(公共和私有密钥)。128位AES密钥的强度大致相当于2600位RSA密钥。


7
您可以提供支持该答案的数学方法还是来源?我很想知道您是如何得出这样的结论的:128位AES大约等于2600位RSA(我知道这是一个老答案)
Russell Uhl

3
@RussellUhl-我同意这些数字的历史是一个有趣的问题,即使再沉默两年也是如此。:)这些数字似乎可以从以下PDF论文得出:标题为的eprint.iacr.org/2013/635.pdfUniversal security - from bits and mips to pools, lakes – and beyond
杰西·奇斯霍尔姆

4

虽然TripleDESCryptoServiceProvider是一种安全且不错的方法,但是它太慢了。如果您想参考MSDN,则会得到建议您使用AES而不是TripleDES的信息。请检查以下链接:http : //msdn.microsoft.com/zh-cn/library/system.security.cryptography.tripledescryptoserviceprovider.aspx, 您将在备注部分看到此注意:

注意 可用一种新的对称加密算法,高级加密标准(AES)。考虑使用AesCryptoServiceProvider类而不是TripleDESCryptoServiceProvider类。仅将TripleDESCryptoServiceProvider用于与旧版应用程序和数据的兼容性。

祝好运


3
这很有趣因为微软仍在积极使用了TripleDes在他们的一些产品的加密(en.wikipedia.org/wiki/Triple_DES#Usage
汤姆·赫德

@Tom是正确的,但不要忘记许多软件使用了旧技术,这需要一段时间来适应新方法。特别适用于像Microsoft这样的大公司,尽管我同意您需要更新的信息,但是当我们公司提出一些建议并做其他事情时,这是很糟糕的。
QMaster 2014年

1
Microsoft因向后兼容而臭名昭著。他们对TripleDES的使用直接属于“仅与旧版应用程序和数据兼容”。
丹·贝查德



0
                DES                               AES
Developed       1977                              2000
Key Length      56 bits                           128, 192, or 256 bits
Cipher Type     Symmetric                         Symmetric
Block Size      64 bits                           128 bits
Security        inadequate                        secure
Performance     Fast                              Slow

AES比3DES快,尤其是在支持AES-NI的CPU上。(但即使没有此功能-DES是为快速硬件实现而设计的,而不是为软件实现而设计的)(在某些基准测试中,普通DES的速度稍快一些,但56位密钥使其不适用于任何当前使用)
Gert van den Berg
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.