【问题标题】:Is it possible to implement AES with a 64-bit I/O block size?是否可以使用 64 位 I/O 块大小实现 AES?
【发布时间】:2015-08-09 17:03:30
【问题描述】:

我正在开发一个具有非常具体的加密要求的应用程序:
我们需要加密/解密单个 64 位值,以保护我们内部架构的某些部分免受通过我们的公共 Web 端点进行的逆向工程。

问题是,现有的 64 位加密方法(如 3DES)不够安全,无法满足我们的要求(据我所知)。
它们的执行速度也比 AES 慢,这是另一个痛点。

我的问题是,我们能否以 64 位块的输入和输出实现 AES?
我们是否必须创建修改后的 AES 算法? (如果我们这样做,也不会完全破坏交易。)

【问题讨论】:

  • 您可能使用 3DES,只要您使用 192 位密钥(168 位有效)密钥。这将为您提供大约 112 位的安全性。请注意,通常需要使用需要 IV 或 nonce 的模式,这可能会添加额外的数据。或者,您可以查找提及格式保留加密的文章。
  • 您可以考虑另一种具有 64 位块大小(但 128 位密钥)的算法,例如 MISTY1(选择 NESSIE;CRYPTREC 候选)或 Khazad(NESSIE 决赛选手)。或者您可以在“格式保留加密”模式 (AES-FFX) 中使用 AES。

标签: security encryption cryptography aes


【解决方案1】:

AES 仅针对 128 位块大小定义。如果有办法减少块大小,它就不再是 AES。分组密码并不是唯一决定您可以加密什么的东西。操作模式决定了分组密码的实际应用方式。

如果您的明文大小有限,您可以在流模式下使用 AES,例如 CTR mode(它加密一个计数器并用明文对结果块进行异或)。此模式下的密文具有与明文相同的长度。唯一的问题是,为了安全,nonce (IV) 对于同一密钥下的每个密文必须是唯一的。如果您的系统可以跟踪随机数(如果明文长于 128 位,它们可以是简单的 96 位全局计数器,甚至可以是 128 位全局计数器),那么您应该能够满足您的要求。

点击率加密:

【讨论】:

    【解决方案2】:

    没有。 AES 由 4x4 矩阵上的四个基本操作指定:SubBytesShiftRowsMixColumnsAddKey

    “8 字节 AES”将是一种完全不同的密码。特别是 ShiftRowsMixColumns 操作是基于方阵的概念。因此,任何“类似 AES”的分组密码的分组大小都需要是 N(4、9、16、...)的平方。

    【讨论】:

    • 好的,我明白您所说的 AES 需要“平方”字节数。但那么他们是如何完成 AES192 和 AES256 的呢?这些都不是字节的平方数。
    • @Giffyguy AES192 和 AES256 的密钥大小不同,但块大小与 AES128 相同。
    • 128, 192, 256 是密钥大小,而不是块大小。扩展键以使其适合。 NIST 有一个非常易于理解的规范文档,它解释了密码的内部结构。
    • @FreekWiekmeijer 是的,那个文件让我头疼。 :) 我刚看完这个讲座,真的很有帮助。 youtube.com/watch?v=NHuibtoL_qk
    【解决方案3】:

    如果您有 64 位输入,那么您可以添加另外 64 位可移动填充以提供 128 位。通常使用 AES 加密 128 位。解密时,只需在解密后删除填充。有许多不同的可能的填充方案。您会发现一些,例如 PKCS#7 内置于许多 AES 库中。

    对于固定长度的 64 位输入,您可以使用随机填充,前提是您始终知道哪些 64 位是数据,哪些 64 位是填充。将两者混为一谈会产生有害的后果。

    ETA:对于 64 位值,您可以将它们中的两个连接成一个 128 位值。解密后将它们拆分回 64 位。

    【讨论】:

    • 问题是,我需要加密方法同时具有 64 位输入和 64 位输出。
    • 然后使用填充。向输入添加填充,加密/解密并删除填充,返回原始的 64 位。
    • 我明白你在说什么,但问题是我需要加密值也是 64 位值。使用填充会产生一个 128 位的加密值,如果不破坏原始数据就无法截断它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2013-12-16
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多