This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C129XNCZAD:为TIVA器件实施AES-GCM加密的示例项目

Guru**** 2390755 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1102152/tm4c129xnczad-example-projects-implementing-aes-gcm-encryption-for-tiva-devices

部件号:TM4C129XNCZAD

我目前正在使用TI提供的示例程序。 使用AES-GCM-256时,我在示例项目中遇到了一个可能的问题:

AES_GCM_加密

AES_GCM_解密

使用公共测试向量时,AES-GCM-256程序将失败。 这是由以下调用中给出的参数引起的,该调用是AESGCMY0GEet()的一部分:

//
//下一步,执行GHAASH操作。
//
AESGHASH(ui32Keysize, pui32HashSubkey, pui32IV, ui32IVLength, pui32Y0);

根据我的研究,子项H的长度始终为128位,而在这里,它可能为192位或256位(在AES-GCM-256的情况下)。 因此,我认为应该将呼叫改为:

AESGHASH (AES_CFG_KEY_SIZE _128位,pui32HashSubkey,pui32IV,ui32IVLength,pui32Y0);

使用此修改,示例项目将传递所有公共测试向量。

能否验证此潜在问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好Eike:

    我本人和本示例的原始开发人员不是安全专家,也不具有丰富的加密背景-这些示例项目组合在一起,以展示如何使用TivaWare API调用来利用设备上的硬件加密,但未针对公共测试向量AS对其进行测试 您已完成。

    你的解释对我来说是完全合理的,我甚至可以把它作为未来的改进,但我不知道我如何能够在这里提供任何'验证',因为我没有任何密码学背景。 从我所见, 硬件模块设置为接收多达256位密钥,但如果由于公共加密测试等原因,正确的使用案例是128位密钥,则这确实是一个应用程序特定的元素,需要在您的端进行审查和验证。我不在A中 评论特定实施是否得到了正确保护的位置-我只能指导您如何使用外设获得输出,在这种情况下,您似乎通过调整获得了正确的输出。

    再次强调,我们会提供良好的信息,我很高兴确保我们在下一个TivaWare工作中根据您对这些公共测试向量的期望提供的反馈进行更新。

    此致,

    Ralph Jacobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好Ralph:

    我完全可以理解这一点。  我们正在从另一个ARM平台迁移到TIVA,因此您的示例项目非常有用。 我自己在TIVA上实施整个硬件加速GCM流程需要花费许多天时间。

    我从 https://csrc.nist.rip/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf获取了测试向量 ,并为AES-GCM-256选择了测试用例18。

    非常感谢您的回答!

    艾克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Eike:

    很高兴听到整体TivaWare能够加快您的发展!

    我继续努力,向我们的追踪器提交了一个改进TT,其中包含您提供的详细信息和该链接。 感谢您对示例项目的反馈。

    此致,

    Ralph Jacobi