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.

[参考译文] MSPM0G1507:可以减小安全引导加载程序大小

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1438141/mspm0g1507-possible-to-reduce-secure-bootloader-size

器件型号:MSPM0G1507

工具与软件:

我知道引导加载程序(在 SDK 示例中)使用的是 TI 版本的 MCUBOOT。 与 MCUBOOT 的宣传版本相比、它使用 TI 加密库。

但是、加密部分不是开源且不可配置的。

我对 SDK 进行了一点更改、只需用 uECC (micro-ECC)替换公钥验证。 我进一步优化了 uECC 的构建选项,删除了未使用的签名类型(签名方法,我们只使用 secp256r1,又名)。 我发现引导加载程序的大小 可以减少3784字节 . 我正在思考的问题、可能原因如下:

  1. uECC 的 ECC 签名验证效率更高。
  2. TI 当前库具有多种加密支持(例如 RSA)、并且/或者针对 ECC 和 RSA 的不同位支持。 由于我们根本不使用其他加密套件、因此我们的优势是使用自定义 uECC

因此、如果出现以下情况、就需要考虑这一点:

  1. TI 能否提供相关源代码和相应的构建脚本(makefile 等) 具有进一步构建选项来减小加密库的大小?
    1. 通过设置不同的标志、可能不支持某些加密、因此可以节省大小。
  2. 如果未提供开源、TI 能否提供多个仅支持特定(/w 组合)加密套件的库?
    1. 例如、  bimsupport-ecc256.a、 bimsupport-rsapss2048.a、...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tiger、

    我们不计划公开我们的加密库。 所以我相信这只需要我们选择第二个选项、但为了确保我的理解正确、您希望示例中的每个加密套件都只有一个、以便为每个提供的编译库更小、并且对于仅使用一个套件的用户来说、存储器占用的空间更小?

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

    是的、我认为您理解正确。 如果可能、请提供以下信息:

    1. 只适用于 ECDSA256
    2. 仅限 ECDSA385 (如果已支持)
    3. 仅限 RSAPSA2048
    4. 全套
    5. 其他您认为有价值的组合

    谢谢。

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

    这种方法不会实际减少器件上的存储器占用空间、只会在将预编译库加载到器件之前减小这些库的大小。

    当在编译过程中链接工程时、只有您在工程中实际使用的函数调用才会拉至最终输出文件中。 因此、如果您只在代码项目中使用一个安全套件、则只会将该代码拉入最终的二进制文件中。 无论如何、您不会调用库中的额外代码不会包含在刷写到器件的二进制文件中。

    如果您的更新只是 具有此第三方库的原始库、而它显著减小了二进制文件的大小、我想说这是因为第三方库更适合存储器占用量。

x 出现错误。请重试或与管理员联系。