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.

[参考译文] LAUNCHXL-CC26X2R1:密钥存储区中的已命名密钥

Guru**** 2455360 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1494319/launchxl-cc26x2r1-encripting-keys-that-are-in-the-key-store

器件型号:LAUNCHXL-CC26X2R1

工具与软件:

您好!

我使用下面显示的一些函数向密钥存储区中添加了"密钥"。 你也可以在下面看到我的主要功能. 现在我想加密这些密钥、但我无法使用常规加密功能、因为密钥存储在密钥存储区中且无法访问。 是否有任何特定函数或任何特定方法来加密这些密钥?

我期待着你的回应。

/*Functions*/
uint32_t AESWriteToKeyStore (const uint8_t * aesKey、uint32_t aesKeyLength、uint32_t keyStoreArea);
uint32_t AESReadFromKeyStore (uint32_t keyStoreArea);

/*我的主函数*/
uint32_t writeStatus = AESWriteToKeyStore (aesKey、AES_KEY_SIZE、AES_KEY_AREA);
if (writeStatus == AES_SUCCESS){
    uint32_t readStatus = AESReadFromKeyStore (AES_KEY_AREA);
    如果(readStatus == AES_SUCCESS){
        //这部分我想加密密钥存储区中的密钥
    }
}

此致、
Cetin

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

    Cetin、您好!

    driverlib 文档中:  

    "密钥存储区是加密存储器的一部分、仅可由加密模块访问、并可由应用程序通过加密 DMA 写入。 无法从密钥存储区读取到主存储器。 因此、如果主存储器中的原始密钥已被覆盖、则不可能危害应用程序的密钥。

    加密核心没有保留、密钥库中的所有配置设置和密钥都会在进入待机或关机状态时丢失。 在这些低功耗模式下、密钥存储区提供的典型安全优势不可用、因为在进入待机或关机模式后、密钥必须保存在常规存储器中才能重新加载。 因此、密钥库主要用作 AES 加速器的接口。"

    有关加密 TI 驱动程序的密钥存储的说明

    "CC26XX 加密模块包含密钥存储区。 将密钥加载到 AES 加速器中的唯一方法是先将其加载到密钥存储区中。 为了保证在密钥库中有用于 AES 操作的开放密钥位置可用、最后两个密钥位置(6和7)保留用于 AD-AES hoc 操作。 密钥将加载到密钥存储区、执行 AES 操作、然后从密钥存储区中删除密钥。 由于密钥存储区没有保留且密钥无法在待机状态下继续运行、因此密钥存储区仅用于将密钥加载到 AES 加速器中、而不是用于存储密钥。 该驱动程序不支持将密钥预加载到密钥库中并在 AES 操作中使用它们。"

    我还建议您查看 TRM 的第12.5.6节"关键区域寄存器"。  希望这将提供有关密钥存储区的意图、目的、操作和限制的进一步背景信息。

    此致、
    Ryan