为什么要使用3DES和Blowfish而不是AES

时间:2012-04-03 12:59:48

标签: encryption cryptography aes blowfish 3des

有人可以解释一下系统设计可以分别使用加密解决方案作为3DES和Blowfish的几种情况吗?

3 个答案:

答案 0 :(得分:3)

只需一个:与需要它们的现有数据或服务/ API向后兼容。

否则保持简单,只需使用AES: - )

请注意,人们经常建议使用较旧的算法获得更好的性能(不是一个非常好的权衡恕我直言),但通常不是这种情况(你需要针对你使用的库进行测试)和AES的结束速度更快(至少从3DES开始)。

答案 1 :(得分:3)

我将添加一些与后向兼容性相关的内容:如果您的硬件实现仅执行3DES(许多较旧的智能卡),那么3DES可能优于AES。硬件加速器可用于加速和安全(侧信道攻击,见下文)。

3DES实施可能不太容易受到旁道攻击(尽管它肯定不能免受攻击)。 AES因为内部设计(表访问)而难以理解 - 正如我所理解的那样。当遇到良好的侧通道攻击时,AES更好的算法,更大的块大小或密钥大小并不意味着什么。

3DES具有8字节块大小,而AES则为16字节,这在块模式加密中使用时会导致更多的开销。当然,这个可以通过使用流模式密码来缓解,我们只讨论最后一个块的几个字节。出于这个原因,这是一个非常薄的论点。

我会在Blowfish上缩短一点:可变密钥大小,有时比AES更快,不太可能在硬件中实现,但向后兼容性可能是原因,8字节再次阻塞。

上述三个原因中的任何一个通常都不足以选择超过AES的3DES或Blowfish。

答案 2 :(得分:0)

如何用3DES替换密钥添加子程序,以便八个字符的四个块中的每个块都被加密,并且在DES函数F()内包括Blowfish F(),即在DES F返回32位之前( ),我实际上是用这个想法来创建一个数字生成器来试图破解彩票并且到目前为止赢得了106.40英镑,很想上传代码但是无论如何都没有办法在这里做。