我想使用 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 除外,我知道这是不安全的)?
问问题
3660 次
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 回答