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.

[参考译文] AM2634:RSA 签名与验证

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1331595/am2634-rsa-sign-and-verify

器件型号:AM2634

您好、Champs:

AM2634的 RSA 签名/验证示例使用 openssl rsautl -sign (原始 RSA PKCS#1v1.5签名)。 直接签署到哈希);然而,客户使用 openssl dgst -sign (请参阅注释:RSA PKCS#1v1.5签名,在签署 DigestInfo 之前将哈希放置在 DigestInfo 中),两种签名方法之间的差异在以下两个 URL 中解释。 他看了一些信息,说 openssl rsautl -sign 可以被视为一个变体,openssl dgst -sign 是一种更标准的实现 openssl dgst -sign 的方式。

示例:dse_ras_signing_verification_am263x-cc_r5fs0-0_nommos_ti-arm-clang

描述了这两种签名类型之间的差异:
crypto.stackexchange.com/.../differences-between-two-rsa-signatures-using-openssl
stackoverflow.com/.../difference-between-openssl-rsautl-and-dgst


谢谢
此致
闪耀

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

    尊敬的 Shine:

    驱动程序文档明确指出、输入消息的要求是使用带填充的加密哈希算法- https://software-dl.ti.com/secure/software/sitara-sec/AM263X-RESTRICTED-SECURITY/TIFS_MCU/zlatest/tifs_am263x_latest_docs_only/docs/api_guide_am263x/html/DRIVER_DTHE_PKA.html?__gda__=1709561939_7c5cca29616984f3994b902bf6ac2fae#autotoc_md123

    我们不期望 D 从该方法中获取需要验证的信息 。 您能具体询问此处吗?

    此致、
    Aakash

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

    我知道,你像 openssl 一样使用签名和验证: rsautl -sign -inkey privateKey.pem -in SHA256.dgt -out SHA256_signed.dgt ;但我们需要像 openssl 一样使用签名和验证:openssl dgst -SHA256 -signed privateKey.pem -out sign.bin msg.bin。 因此,我想知道 "rsautl -sign" openssl 命令与"dgst -sign" openssl 命令之间有什么区别? 如何修改 C 代码以实现 "dgst -sign" openssl 命令?

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

    尊敬的 Shine:

    因此,我想知道 "rsautl -sign" openssl 命令和"dgst -sign" openssl 命令有什么区别?

    在提供的链接中、它明确指出 dgst-符号包含摘要信息、预计散列操作作为 PKA 调用的一部分进行调用、其中散列摘要也是相同的一部分。

    如何修改 C 代码以实现 "dgst -sign" openssl 命令?

    让我检查一下修改是否真正可行。 这些主要由 PKA 固件管理。 我需要根据规格表检查固件是否支持相同的功能。

    此致、
    Aakash

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

    尊敬的 Shine:

    固件不支持任何 ASN1解析、因此这需要由应用软件处理。 实现 ASN1解析逻辑,使用 dthe-SHA 生成散列,然后使用 RSA 符号在所需的配置上生成签名。

    此致、
    Aakash

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

    您好、 Aakash、

    这张图片是 TI 提供的 RSA 签名和验证示例。 它还应使用 DTH-SHA 生成哈希值(SHA256()函数),然后生成签名。 gPkaRsaVerifyOutputResult 与"openssl rsl rsautl -verify"命令相同。

    你的意思是,如果我想实现"openssl dgst",我不能使用 SHA256()函数,我需要 通过软件实现的 Hash 值实现 ASN1 ,对吗? 我不知道细节的两种哈希摘要,你能不能给我一些帮助?

    此致、

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

    尊敬的 Zhou:

    您需要执行此链接中提到的步骤- https://datatracker.ietf.org/doc/html/rfc8017#section-9.2

    此致、
    Aakash