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

有人对比较这些加密算法有利有弊吗?

259413 次浏览

所有这些方案,除了 AES 和 Blowfish,都有已知的漏洞,不应该使用。
然而,河豚已经被 双鱼所取代。

AES 是目前公认的使用的标准算法(因此命名为高级加密 标准)。

其他人就不一样了。

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

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

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

在与遗留的商业产品和服务进行接口时,通常会遇到 DES 和3DES。

被认为是继承者和现代标准

我相信河豚是不鼓励使用的。

强烈建议您不要尝试实现自己的加密,而是使用高级实现,比如用于静止数据的 GPG 或用于传输中数据的 SSL/TLS。这里是一个关于加密漏洞 http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/的优秀和发人深省的视频

使用 AES。

更多细节:

  • 教育部是七十年代的老“数据加密标准”。它的密钥大小太短,无法实现适当的安全性(56个有效位; 这可能是强迫的,正如已经演示的 十多年前)。此外,DES 使用64位块,当用同一个密钥加密几个 GB 的数据时,这会引发一些潜在的问题(如今1GB 的密钥并不大)。
  • 3DES 是一种重用 DES 实现的技巧,通过级联三个 DES 实例(使用不同的键)。3DES 被认为是安全的,至少可以达到“ 2 < sup > 112 ”安全性(这是相当多的,在“今天的技术无法破解”的领域相当远)。但是它很慢,特别是在软件方面(DES 是为高效的硬件实现而设计的,但是它吸收了软件; 而3DES 吸收了三倍的软件)。
  • Blowfish 是 BruceSchneier 提出的一种分组密码,部署在一些软件中。河豚可以使用巨大的钥匙,并被认为是安全的,除了关于它的块大小,这是64位,就像 DES 和3DES。Blowfish 在软件中是高效的,至少在某些软件平台上是这样(它使用依赖于键的查找表,因此性能取决于平台如何处理内存和缓存)。
  • AES 是 DES 作为美国联邦机构标准对称加密算法的继承者(也是几乎所有其他人的标准)。AES 接受128位、192位或256位的密钥(128位已经非常牢固) ,使用128位的块(所以没有问题) ,并且在软件和硬件上都很有效率。它是通过几年间数百名密码学家参与的公开竞争中选出来的。基本上,没有比这更好的了。

因此,当有疑问时,使用 AES。

注意,块密码是一个加密“块”(使用 AES 的128位数据块)的盒子。当加密一条可能长于128位的“消息”时,消息必须被分割成块,实际的分割方式被称为 运作模式或“链接”。幼稚的模式(简单的分裂)被称为欧洲央行,并存在问题。正确使用分组密码并不容易,它比在 AES 或3DES 之间进行选择更为重要。

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

虽然 TripleDESCryptoServiceProvider 是一个安全和好的方法,但是它太慢了。如果你想参考 MSDN,你会得到建议你使用 AES 而不是 TripleDES。请参阅以下连结: Http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider.aspx 你会在注释部分看到这个注意:

注意 一种新的对称加密算法,高级加密 标准(AES) ,是可用的。考虑使用 类而不是 使用 TripleDESCryptoServiceProvider 类 TripleDESCryptoServiceProvider 仅用于与旧版本兼容 应用及资料。

祝你好运

DES AES
显影 1977年 二零零零年
键长 56位 128,192,或者256位
密码类型 对称 对称
块大小 64位 128位
保安 不足 安全
表演 快点 慢点

enter image description here

教育部是七十年代的老“数据加密标准”。

所有这些方案,除了 AES 和 Blowfish,都有已知的漏洞,不应该使用。

如果进行了包装,所有这些工具实际上都可以安全地使用。

这里 是 AES 包装的一个例子。