ZHCAAD3A September   2020  – June 2026 F29H850DM , F29H850TU , F29H859TU-Q1 , F29P329SM-Q1 , TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S , TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1 , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
  5. 安全闪存启动概述
  6. CMAC 身份验证
  7. 安全闪存启动选项
  8. 安全闪存启动流程
  9. C2000Ware 示例详细信息
  10. 对超过 16KB 的闪存代码进行身份验证
  11. 调试资源
  12. 其他信息和注意事项
  13. 10C2000 CMAC 算法与 OpenSSL 的对齐
    1. 10.1 C28x 存储器和二进制文件字节顺序
    2. 10.2 闪存二进制字节顺序
    3. 10.3 CMAC 密钥字节顺序
    4. 10.4 CMAC 输出对齐流程
    5. 10.5 工作示例
    6. 10.6 差异总结
  14. 11参考文献
  15. 12修订历史记录

安全闪存启动概述

与应用程序闪存启动相关的 DCSM 特性之一是能够在执行闪存中的用户应用程序代码之前对其进行身份验证。这样可确保应用程序代码在被编程到闪存存储器后未被篡改,以此确定应用程序代码的完整性。当应用于 Zone1 EXEONLY 闪存扇区时,此特性可用作关键用户应用程序代码的附加安全层。除了传统的闪存启动选项外,安全闪存启动特性还提供了一组额外的启动选项。

安全闪存启动是通过使用 128 位 AES-CMAC 身份验证算法实现的,该算法在会返回通过/失败状态的应用程序代码内容上运行,并且只有在身份验证成功时才继续执行应用程序代码。表 2-1 概述了此特性在器件不同子系统上的情况。每个 CPU 子系统的 BootROM 发起针对该子系统应用代码前 16KB 的身份验证,这称为“主要安全启动”。超出每个 CPU 子系统前 16KB 的应用程序代码的身份验证称为“扩展安全启动”。此过程可由预先进行了身份验证的应用程序代码选择性地发起。

由于在安全闪存启动期间会执行 CMAC 身份验证算法,该启动序列与正常(非安全)闪存启动相比需要更多的时间才能进入用户应用程序。请注意,与 CPU1 或 CPU2 安全闪存启动实现方案相比,器件 CM 内核安全闪存启动需要的时间更少,因为 CM 会使用硬件 AES 加速器。

表 2-1 器件上的安全闪存启动概述

子系统(内核)

安全启动特性

CMAC 算法实现方案

对闪存启动代码前 16KB 进行身份验证所需的额外时间
CPU1 SS (C28_1) 软件(安全 ROM 实用程序)+ AES ROM 表 ~400ms(在 INTOSC 上以 10MHz 运行)
CPU2 SS (C28_2) 软件(安全 ROM 实用程序)+ AES ROM 表 ~20ms(在 PLL 上以 200MHz 运行)

CMSS (CM4)

软件(安全 ROM 实用程序)+ 硬件 AES 加速器

~6ms(在 PLL 上以 125MHz 运行)