Edit online

HSK 详细说明

Read time: 1 minute(s)

HSK 的派生

HSK 只能从其它密钥派生。
  • 派生 HSK 的密钥为父密钥。 父密钥可以为:
    • eFuse 安全密钥
    • 用户指定的其它密钥

      HSKM 可以是用户指定的任意数据,但输出的 HSK 最大只能为 2048 bit。

  • 用于派生 HSK 的数据称为 HSK Material (HSKM)。

eFuse 密钥和 HSKM 派生 HSK 的过程如下。


hsk_gen_with_efuse

1. eFuse 密钥和 HSKM 派生 HSK 的过程
HSK 的使用限制如下:
  • 只能作为 CE 的密钥进行使用。
  • 不能作为 CE 的数据输入。

hsk_limit1


hsk_limit2


hsk_limit3

2. HSK 的使用限制

HSK 的功能

硬件安全密钥可以解决密钥的本地存储安全问题。

将关键密钥保存在设备中时,密钥的本地存储存在以下安全问题:
  • 如以明文保存,密钥不安全,容易被窃取。
  • 如烧录到 eFuse,则需要使用较多的安全 eFuse 空间。
  • 在需要动态生成密钥的场景中,安全 eFuse 无法满足动态生成密钥的需求。
硬件安全密钥解决密钥本地存储安全问题的方式如下:
  • 对于固定密钥:使用 eFuse 安全密钥,先对 HSK 进行加密,再将加密后的数据 (HSKM) 保存在设备本地。需要使用时,将 HSKM 解密输出到安全 SRAM,得到 HSK。

由于 eFuse 安全密钥仅 CE 可访问,软件以及其它硬件模块无法读写,因此本地设备保存 HSKM 不会导致 HSK 的泄露。

eFuse 安全密钥

eFuse 安全密钥是指 eFuse 中仅 CE 模块可访问,其它软硬件模块无法读写的 eFuse 密钥区域。

CE 模块支持下列 eFuse 安全密钥。

1. eFuse 安全密钥

名字

大小 (BIT)

描述

SSK/SPI_ENC_KEY

128

对称密钥,用于固件加密

数据填充

CE 模块所支持的算法,多数是按照固定数据块的方式处理数据。如果实际待处理数据的长度不满足对齐要求时,需要进行数据填充。不同算法的填充处理方式不同,CE 仅支持部分算法进行硬件填充处理。

CE 模块中各算法对数据块要求和数据填充的支持情况如下:
2. CE 模块算法对应的数据填充要求
数据块大小 (Bit) 对齐要求 填充支持
AES 算法 128 16 字节对齐 不支持 CE 硬件填充,需要用户进行数据填充
DES/TDES 算法 64 8 字节对齐 不支持 CE 硬件填充,需要用户进行数据填充
SHA/MD5 算法 非最后一笔数据,应 512bit/ 1024bit 对齐,具体看算法要求。 支持 CE 硬件填充。