2

我想使用 AES 加密一些任意长度的数据,我想知道我应该使用什么分组密码模式。http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html建议在 CTR 模式下使用 AES。我正在编写一个 Ruby on Rails 插件,不幸的是 OpenSSL(Ruby 有标准绑定)不支持 CTR。我希望我的代码能够为所有人开箱即用,而不需要他们安装第三方加密库,所以现在我使用的是 CFB。CFB 可以接受吗?它与 CTR 或其他模式相比如何(ECB 除外,我知道这是不安全的)?

4

4 回答 4

3

AFAIK,CFB 与任何其他模式一样安全。流模式的优势在于其他领域(并行化、随机访问等)。

另一张海报是正确的,因为加密本身并不意味着什么。有很多细节,你可能会错过一些。

另一方面,我不同意 ECB/CFB 的评论。ECB 可以暴露数据中的模式,并且可以使弱方案变得更弱。我不会太不愿意把它写成“不安全”。

于 2009-07-16T22:31:09.357 回答
1

在流密码的上下文中,CFB 与 CTR 一样安全。CTR 可以并行化,而 CFB 不能。注意实现自己的加密流密码可能会给自己留下安全漏洞的警告。如果可能的话,你最好的选择是做从 Ruby 到 OpenSSL 的 C 绑定。

于 2009-07-16T22:38:29.310 回答
0

作为使用组合来生成流密码的模式的替代方案,您可以使用称为密文窃取 (CTS)的技术以及像 CBC 这样的模式来解决问题,但这仅适用于 16 字节及以上的数据大小。

于 2009-07-16T22:32:00.807 回答
-5

不要自己做密码学。如果你不得不问这样一个问题,你不太可能做对。请使用图书馆。

例如,参考这篇文章,然后是这个跟进,特别是它所指的博客。

例如,ECB 并不比 CFB 更不安全。它们用于不同的目的,并且出于错误的目的选择一个而不是另一个将同样不安全。

于 2009-07-16T22:11:40.660 回答