aes - DES、三重 DES、AES、河豚数据加密的比较

标签 aes blowfish des tripledes

有人比较这些加密算法的优缺点吗?

最佳答案

使用 AES。

更多详细信息:

  • DES 是七十年代的旧“数据加密标准”。它的 key 大小对于适当的安全性而言太短(56 个有效位;这可以被暴力破解,如 more than ten years ago 所示)。此外,DES 使用 64 位 block ,这在使用相同 key 加密几 GB 数据时会引发一些潜在问题(现在 1 GB 已经没有那么大了)。
  • 3DES 是一种通过级联 DES 的三个实例(具有不同 key )来重用 DES 实现的技巧。据信 3DES 的安全性至少达到“2112”(这是相当多的安全性,并且远远达到“用当今的技术无法破解”的境界) )。但它很慢,尤其是在软件方面(DES 是为高效的硬件实现而设计的,但它在软件方面很糟糕;而 3DES 的糟糕程度是它的三倍)。
  • Blowfish 是 Bruce Schneier 提出的一种分组密码,并部署在一些软件中。 Blowfish 可以使用巨大的 key ,并且被认为是安全的,除了其 block 大小(与 DES 和 3DES 一样,为 64 位)之外。 Blowfish 在软件方面非常高效,至少在某些软件平台上如此(它使用依赖键的查找表,因此性能取决于平台如何处理内存和缓存)。
  • AES 是 DES 的继承者,作为美国联邦组织的标准对称加密算法(也作为几乎其他所有人的标准)。 AES 接受 128、192 或 256 位 key (128 位已经非常牢不可破),使用 128 位 block (因此没有问题),并且在软件和硬件方面都很高效。它是通过几年来数百名密码学家参与的公开竞赛选出的。基本上,你没有比这更好的了。

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

请注意,分组密码是一个加密“ block ”(使用 AES 的 128 位数据 block )的盒子。当加密可能长于 128 位的“消息”时,必须将消息分割成 block ,而进行分割的实际方式称为 mode of operation或“链接”。朴素模式(简单拆分)称为 ECB,存在问题。正确使用分组密码并不容易,它比在 AES 或 3DES 等之间进行选择更重要。

关于aes - DES、三重 DES、AES、河豚数据加密的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554526/

相关文章:

ssl - 创建 RC4/DES SSL PFX

python aes 加密/解密不返回相同的结果

c++ - AESlibrary 只有两行

php - 在不支持它的 php 5.2 上使用 CRYPT_BLOWFISH

c# - C# 和经典 ASP 之间的 Blowfish 结果不同

c# - 使用 CryptoStream (DESCryptoServiceProvider) 解密时如何返回 byte[]

Golang 3DES 部分解密加密字符串

java - 重新启动应用程序时加密 key 会更改吗?

java - 如何使用已知 IV 解密 AES/CBC

c - 河豚加密的示例代码