【发布时间】: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 User、Unix & Linux Stack Exchange 或Information Security Stack Exchange 会是一个更好的提问地点。
标签: linux-kernel openssl cryptography aes embedded-linux