【问题标题】:Alternative for deprecated AES_ige_encrypt() API in opensslopenssl 中已弃用的 AES_ige_encrypt() API 的替代方案
【发布时间】:2020-04-15 23:17:41
【问题描述】:

在从 OpenSSL 版本 1.0.0 升级到 1.1.1x 时,出现警告说 API AES_ige_encrypt() 已弃用,该 API 用于使用 AES_ige 进行加密和解密。 尽管源 cmets 说该函数已被弃用,但它没有提及任何有关此 API 的任何替代品的信息。 搜索网络并没有提供任何有用的信息。 如果有人能建议提供与AES_ige_encrypt() API 相同功能的 OpenSSL API,那将非常有帮助。

【问题讨论】:

  • "...这些未记录的函数...有一个已知的错误...":来源:mta.openssl.org/pipermail/openssl-commits/2019-April/… 所以不是公共 API 并且存在错误。跨度>
  • 我的理解是不仅实现(即AES_ige_encrypt())而且 IGE 本身(即分组密码模式本身,block diagram,第 11 页)在 OpenSSL 中已被弃用。那么就不太可能找到具有 not 在 OpenSSL 中被弃用的 same 功能的任何东西。但这只是一个猜测。您可能会发现 thisthis 很有趣。

标签: c++ c encryption openssl aes


【解决方案1】:

您确定您使用的是正确版本的 OpenSSL?该功能在 master 分支中已弃用(即将成为 OpenSSL 3.0 的内容),但在 1.1.1 中尚未弃用。

无论如何,您不应该使用这些模式。根据 CHANGES 条目:

*) 函数 AES_ige_encrypt() 和 AES_bi_ige_encrypt() 有 是 已弃用。这些未记录的功能从未集成到 EVP 中 分层并实现 AES Infinite Garble Extension (IGE) 模式和 AES 双向 IGE 模式。这些模式从未正式标准化 这些功能的使用被认为是非常小的。特别是 AES_bi_ige_encrypt() 有一个已知错误。它接受 2 个 AES 密钥,但只有一个 曾经使用过。安全影响被认为是最小的,但 由于向后兼容的原因,这个问题从未得到解决。新代码 不应使用这些模式。 [马特·卡斯威尔]

根据我最后的评论 - 新代码不应使用这些模式。如果您正在使用它们,那么另一种方法是寻找满足您要求的替代模式并使用 EVP 功能来使用该模式。

【讨论】:

  • 当然,或者自己获取当前代码并修复 Bi-IGE 错误,然后链接到 OpenSSL 以获取分组密码。或者根据规范重新实现 Bi-IGE。但如果我要创建一个与马特竞争的答案,我会很危险:)
猜你喜欢
  • 1970-01-01
  • 2019-07-05
  • 2012-04-16
  • 1970-01-01
  • 2016-01-08
  • 2020-11-07
  • 2020-05-22
  • 2022-11-09
  • 1970-01-01
相关资源
最近更新 更多