本期介绍的是HPM6000系列中security flash方面内容。希望可以帮助用户了解先楫为了用户信息安全方面所做的设计。
Security Flash 模块概述
首先进行一些名词解释: 在线执行 (Execution In Place):可以直接访问外部存储器,不需要把外部存储器数据先复制到内存再执行的访问的方式,称为在线执行 (Execution InPlace); DEK(Data Encryption Key):数据加密秘钥,用户加密存储器上数据/代码的秘钥;KEK(Key-Encryption Key):密钥加密密钥,加密 DEK 的秘钥。EXIP 在线解密引擎介绍 先楫半导体 HPM6000 系列 MCU 设计的 EXIP 在线解密引擎支持在线执行功能,并且可以对加密的外部 NOR Flash 进行实时解密,实现在线实时解密执行,EXIP 主要特性有: (1)支持 AES-128 CTR 模式解密EXIP 支持 AES-128 CTR 模式解密,密钥长度为 128 位。密钥存放在寄存器 RGNx_KEY0、RGNx_KEY1、 RGNx_KEY2、RGNx_KEY3 中。AES-128 CTR 模式要求使用相同密钥加密的数据,每一个数据块对应的计数器 Counter 值不能重复,Counter 长度与 AES 数据块长度相同,也为 128位。EXIP 对每个 128 位的数据块,其 Counter 由数据块的 32 位系统地址和64 位的 NONCE 组成,其中 NONCE 存放在 RGNx_CTR0 和 RGNx_CTR1 中。(2)支持 4 个区段,每个区段可以使用不同的密钥加密 (3)支持通过 Key Blob 封装数据加密密钥等敏感信息(符合 RFC3394 标准) (4)支持硬件解封 Key Blob(符合 RFC3394 标准) (5)支持从 OTP 读取用于解封 Key Blob 的 KEKXPI NOR 启动镜像布局介

XPI NOR 启动镜像布局
如上图所示,完整的 XPI NOR 启动镜像有 EXIP BLOB、XPI 配置选项、FW BLOB、固件头和固件组成,其中虚线框为可选内容,实线框为必须包含内容。
要实现加密镜像,则镜像头部必须包含 EXIP BLOB 内容,该部分内容使用RFC3394 定义的密钥封装和密钥解封算法,通过 KEK 加密后以密文形式存放在 Flash 中,以保护 EXIP 解密用的 DEK 和相关敏感数据。
Security Flash 系统流程介绍

Security Flash 原理示意框图如上图所示,Security Flash 流程包含三个方面:
(1)用户生成加密镜像,使能在线加密执行功能;(2)EXIP 解密 EXIP BLOB 得到 DEK 等解密信息;(3)EXIP 使用 AES-128 CTR 模式在线解密 Flash 密文固件。 当 OTP 中 ENCRYPT_XIP 字段置为 1,BootROM 启动加密原地执行功能,BootROM 会 在 XPI NOR 启 动 中 强 制 打 开 EXIP , 并 尝 试 用 EXIP0_KEK(XPI_INSTANCE 值为 0)或者 EXPI1_KEK(XPI_INSTANCE 值 为 1)解密EXIP Blob。当 EXIP BLOB 解密无误后,ROM 会根据 EXIP BLOB 中的信息配置对应的解密信息,将恢复的 DEK、NONCE、加密区域的开始和结束地址信息载入RGNx 对应的寄存器。当 EXIP BLOB 解密无误后,EXIP 即可根据 AES-128CTR 模式执行原地解密执行操作。
性能对比测试
对于加密对执行环节的影响,先楫做了简单的测试对比,在明文和密文的单核测试中测试程序条件:(1)关闭所有 Cache,包括 D-Cache 和 I-Cache (2)循环运行 600 次特定数学计算,得出运行消耗时间测试结果如下表:

可见,相同软硬件平台下,加密镜像执行对处理器性能并没有实质影响
注意:由于加密环节涉及到对OTP的烧写,可能一个疏失造成芯片无法正常启动。因此先楫建议开发者在有实际需要时联系先楫,这样可以得到更好的支持。
-
FlaSh
+关注
关注
10文章
1715浏览量
154673
发布评论请先 登录
hpm的vscode开发环境搭建openocd烧录问题求解
HPM monitor studio 只能在 hpm芯片+hpm_sdk 的组合下才能用吗?
45 W 表面贴装系列连接 PIN 二极管 skyworksinc
hpm6364内部flash使用时的openocd配置问题.
重磅更新 | HPM_SDK v1.10.0 发布
高性能交流源的选型推荐:PSA6000系列
支持HPM6P00/HPM5E00系列!HPMicro Manufacturing Tool v0.6.0发布
【强势上新】HPM5E00:EtherCAT运动控制MCU,先楫半导体再拓工业总线产品新版图
重磅更新 | 先楫半导体HPM_SDK v1.9.0 发布
先辑半导体HPM6E00系列产品能用来做EtherCAT的主站吗
深度解析 | 基于HPM6450的RISC-V核心板究竟有哪些过人之处?
开发者分享 | 适用于HPM的RustSBI实现
基于HPM_SDK_ENV开发应用程序的升级处理

应用贴士 | HPM6000系列 Security Flash介绍
评论