您好,NXP团队:
我们正在评估 i.MX8DXL CAAM 对 ECDSA P-384 黑键/blob 的支持情况。
从外部提供的明文 P-256 私钥开始:
结果:通过
结果:通过
从外部提供的明文 P-384 私钥(48 字节)开始:
结果:失败
我们在NXP的补丁中注意到以下注释:
我们观察到了类似的行为。
使用 LOAD 命令而不是 KEY 命令,我们可以处理大于 32 字节的密钥,包括 48 字节的 P-384 私钥。
任何指导都将不胜感激。
谢谢,并致以最诚挚的问候!
霍詹姆斯。
在我们的应用中,COVER 操作不仅可以用于保护 ECDSA 私钥,还可以用于保护一般敏感数据。因此,支持大于 32 字节的有效载荷大小是一个重要的考虑因素。
根据我们的测试,使用 LOAD 命令变通方法可以处理大于 32 字节的有效载荷。小于约 80 字节的有效载荷似乎可以正常工作,而更大的有效载荷则表现出不稳定的行为。我们想了解这些观察结果反映的是 CAAM 的实际局限性还是实施问题。
谢谢!
我们需要搭建测试CAAM功能的环境。一旦有了结果,我们会立即通知您。
王一平您好,
谢谢回复。
>>对于这一部分,您观察到了什么CAAM错误?
>>请提供错误代码?
我们对所有与 ECDSA 相关的操作都使用以下代码补丁:
" https://github.com/nxp-imx-support/imx_sec_apps/blob/master/caam-ecdsa-blackkey/patch/0001-linux-imx... "
当调用 caam_ecdsa_verify() 进行签名验证时,
它返回“ECDSA_VERIFY_FAIL (0)”。
仅当使用“P-384(外部明文私钥)”时才会出现错误。
>> 应用笔记“AN12838-使用 CAAM 安全密钥加强公钥密码学”描述了使用黑密钥的 ECDSA 签名演示,您是否正在使用类似的实现进行测试?
对于我们成功的案例,是的,它们很相似。
但对于我们失败的案例“P-384(外部明文私钥)”,
情况略有不同:密钥来自外部。
顺祝商祺!
“明文密钥 → 封面 → 黑键斑点
从黑斑中恢复黑键
ECDSA 签名/核实
结果:失败
在这一部分,你观察到了什么CAAM错误?能否提供错误代码?应用笔记“AN12838-使用 CAAM 安全密钥加强公钥密码学”描述了使用黑密钥的 ECDSA 签名演示,您是否正在使用类似的实现进行测试?谢谢。
关于KEY命令的限制,目前仍在调查中。
对于失败的案例,您是否使用“KEY”命令和“FIFO STORE”命令根据明文私钥生成黑密钥?您能否提供故障案例中使用的 CAAM 描述符(十六进制单词)?检查命令和参数会更容易些。谢谢。
王一平您好,
>>对于失败的案例,
>>您是否使用了“KEY”命令和“FIFO STORE”命令?
>>如何根据明文私钥生成黑密钥?
不,我们使用的是 LOAD 命令而不是 KEY 命令。
在这种情况下,密钥为 48 字节 (P384)。
如 < https://github.com/nxp-imx-support/imx_sec_apps/blob/master/caam-ecdsa-blackkey/patch/0002-caam-blac... > 中所述
“KEY 命令似乎限制为 32 字节,因此我们应该使用加载
* 改为使用最多可加载 64 字节的命令。
如果使用 KEY 命令输入 48 字节的密钥,则会报告 DECO 错误:
作业环状态:0x40000106
DECO,06h - 无效的 KEY 命令
因此,我们修改了代码,使其使用与上述补丁代码相同的 LOAD 命令。
谢谢,并致以最诚挚的问候!