【问题标题】:Counter Size in AES Driver in CTR mode in linux kernelLinux内核中CTR模式下AES驱动程序中的计数器大小
【发布时间】:2015-06-16 14:53:04
【问题描述】:

我已经看到多个用于不同加密硬件引擎的 AES(CTR) 模式的开源驱动程序,我不太确定计数器大小、随机数等。 请任何人提供以下信息

第一季度:

AES 驱动程序在 CTR 操作模式下如何识别计数器大小?

看起来 CTR 模式下的 AES 支持多个长度的“countersize”,如下所示:

1:首先是一个计数器,它由一个随机数和一个计数器组成。随机数是随机的,其余字节是计数器字节(递增)。 例如,一个 16 字节的分组密码可能使用高 8 字节作为随机数,使用低 8 字节作为计数器。

2:Second 是一个计数器块,其中所有字节都是计数器字节,可以在生成进位时递增。 例如,在一个 16 字节的分组密码中,所有 16 个字节都是计数器字节

第二季度:

Linux Kernel Crypto 子系统是否会为每个输入块增加计数器值,或者是否需要内核驱动程序为相应的 Crypto H/W 处理?

第三季度:

计数器和随机数是将从 IV 中提取的东西,即 IV = nonce + counter。注意如果“l”是 IV 的长度,那么第一个“l/2”是随机数的长度,然后是“l/2”是计数器的长度。请告诉我我对 IV、计数器和 nonce 的理解是否正确?

关于上述的任何信息都是非常可观的。

BR, 和萨努马拉

【问题讨论】:

  • 第三题不是题。第二个问题相当混乱。第一个问题可以通过“这就是开发人员选择实现它的方式来回答。它还没有完全标准化。”
  • 嗨 Artjom,“它还没有完全标准化”,那么 linux 内核中的加密驱动程序是如何处理这个问题的呢? ,如果我想在我的linux内核驱动程序中找到计数器大小,应该有办法找到,对吧? .如果我错了,请纠正我。同时,我也编辑了 Q2 和 Q3。
  • 我不知道 linux 内核驱动程序会这样做,但您似乎用 Q1 下提供的报价回答了您自己的问题。
  • 嗨 Artjom,如果你仔细观察 Q1,在第一种情况下,计数器大小为“8”(随机数为 8),但在第二种情况下,计数器大小为 16,
  • 这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack ExchangeInformation Security Stack Exchange 会是一个更好的提问地点。

标签: linux-kernel openssl cryptography aes embedded-linux


【解决方案1】:

AES 驱动程序在 CTR 操作模式下如何识别计数器大小?

它很可能不会。只要它将 IV 视为一个大的 128 位计数器,就没有问题。如果计数器是 64 位并初始化为全零,那么只有在 2^64 = 18,446,744,073,709,551,616(16 字节)数据块之后才会出现问题;这不太可能发生。

Linux Kernel Crypto 子系统是否会为每个输入块增加计数器值,或者是否需要内核驱动程序为相应的 Crypto H/W 处理?

需要内核驱动来处理。我只看到一个 IV 作为 API 中的输入。这通常是加密 API 的情况。如果必须为要加密的每 16 个字节更新计数器,则无法获得任何性能。

计数器和随机数是将从 IV 中提取的东西,即 IV = nonce + counter。注意如果“l”是 IV 的长度,那么第一个“l/2”是随机数的长度,然后是“l/2”是计数器的长度。请告诉我我对 IV、计数器和 nonce 的理解是否正确?

是的,你理解正确。如果协议使用单独的 nonce 和 counter 并且 both 是随机生成的,那么您只会遇到问题。在这种情况下,您可能会遇到从计数器到 nonce 字段的进位问题。

请注意,将数据大小限制为 68 GB 并使用前 12 个字节作为随机 nonce 可能是个好主意,以避免被生日问题所困扰。

【讨论】:

  • 嗨 Maarten,感谢您分享的信息。 “如果计数器是 64 位”,在我的内核驱动程序中,我将如何找到计数器大小是 64 位还是 128 位?
猜你喜欢
  • 1970-01-01
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多