2

有人可以解释一下系统设计可以证明使用加密解决方案的几个场景,分别是 3DES 和 Blowfish 吗?

4

3 回答 3

3

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

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

请注意,人们经常建议使用较旧的算法可以获得更好的性能(恕我直言,这不是一个很好的权衡),但通常情况并非如此(您需要针对您使用的库对其进行测试)并且 AES 最终会更快(至少从3DES)。

于 2012-04-03T13:08:21.243 回答
3

我将添加一些与向后兼容性有关的内容:如果您的硬件实现只支持 3DES(许多较旧的智能卡),那么 3DES 可能比 AES 更受欢迎。硬件加速器可用于加速和安全(边信道攻击,见下文)。

3DES 实现可能不太容易受到侧信道攻击(尽管它当然不能幸免)。AES 更难正确 - 正如我所理解的那样 - 因为它是内部设计(表访问)。面对良好的侧信道攻击时,AES 更好的算法、更大的块大小或密钥大小并没有多大意义。

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

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

当然,上述三个原因通常都不足以选择 3DES 或 Blowfish 而不是 AES。

于 2012-04-03T17:31:27.603 回答
0

用 3DES 替换密钥添加子例程怎么样,这样四个 8 个字符的块中的每个块都得到加密,并在 DES 函数 F() 中包括 Blowfish F(),即在 DES F() 返回 32 位之前,我我实际上正在使用这个想法创建一个数字生成器来尝试破解彩票,迄今为止已经赢得了 106.40 英镑,很想上传代码,但无论如何这里没有办法做到这一点。

于 2013-08-17T20:57:39.390 回答