2024年4月16日发(作者:)

AN12324

LPC55Sxx将PUF

Hash Crypt用于AES编码

版本 0 — 2019 年 2 月

应用笔记

1介绍

本应用笔记介绍了如何使用根密钥安全地生成、存储和恢复用户密钥。根密钥

用作密钥加密密钥(KEK),以保护其他的用户密钥。根密钥是由物理不可克

隆功能(PUF)外设生成的。PUF技术会生成设备唯一的256位KEK,这是

设备的数字指纹。然后可以将加密的密钥(密钥代码)存储在MCU中。本文

档讨论了密钥代码存储在受保护的闪存区域(PFR)的闪存中以及通过ISP和

IAP命令向系统设置密钥的问题,还介绍了通信工具(blhost和elftosb)。

目录

介绍.................................................1

物理上不可克隆功能(PUF)..........1

PUF功能......................................1

PUF密钥的唯一性原理................1

PUF用法......................................2

PUF注册(Enroll).....................2

PUF启动(Start).......................3

PUF 设置密钥(SetKey)............4

PUF 生成密钥(GenerateKey)

.....................................................5

2.8PUF 获得密钥(GetKey)...........6

2.9PUF 归零(Zeroize)..................7

2.7

2.7

3密钥管理..........................................7

3.1受保护的闪存区域(PFR)中的密

钥存储..........................................7

3.2ISP KeyProvision命令.................9

3.3通过blhost PC应用程序配置密钥存

储区..............................................9

3.4通过blhost-elftosb-gui工具进行密

钥配置........................................10

3.5密钥管理IAP命令......................12

4PUF测试软件的使用.....................13

4.1设置PUF示例代码....................13

4.2应用............................................14

4.3注册15

4.4启动并将AC加载到PUF的命令

...................................................16

4.5生成密钥代码命令......................17

4.6Getkey命令...............................19

4.7使用密钥加密数据块...................21

4.8杂项菜单.....................................23

1

2

2.1

2.2

2.3

2.4

2.5

2.6

2.7

2物理上不可克隆功能(PUF)

2.1PUF功能

•PUF外设生成一个256位密钥。 密钥是一种数字指纹,它是设备唯一

的,不可克隆的,并用作密钥加密密钥(KEK)。

•PUF可以生成64位至4096位密钥。

•PUF将64位至4096位的密钥加密为密钥代码(Key Code)。

•PUF将密钥代码解密回密钥。

•可以通过内部硬件总线将密钥发送到哈希加密引擎(或PRINCE)。

•CPU可以通过寄存器和AHB总线读取密钥。

•PUF提供了其他防止黑客入侵的功能,例如阻止功能(注册、代码输

出、密钥锁)或增强的测信道攻击(掩码(keymask))。

2.2PUF密钥的唯一性原理

PUF生成的KEK的唯一性基于制造芯片时(长度、宽度、厚度)晶体管自然

发生的变化。每次SRAM模块上电时,单元将变为1或0。启动值创建一个随

机且可重复的模式,这对于每个芯片都是唯一的。它称为SRAM启动数据

(SD)。

SRAM SD与激活码(AC)一起被转换为数字指纹,用于构建安全子系统基础的密钥。数字指纹用作根密钥(或KEK)。

NXP Semiconductors

| 物理上不可克隆功能(PUF) |

图 1.基于SRAM单元阵列的PUF原理

PUF模块嵌入了纠错功能,因此密钥重建失败的可能性小于10

-9

(在最坏的情况下)。

2.3PUF用法

任何系统的安全性都取决于密钥的存储安全性。 如果将密钥放在无法访问的闪存中,黑客可能会将芯片开盖并读取内存。 保险

丝(Fuse)也是如此,开盖后即可读取。

加密密钥时,必须将密钥存储在某处。如果黑客读出了整个闪存,则他们可以克隆您的设备,因为存储的密钥在整个生产过程中

都是相同的。如果黑客成功破解了您的密钥,则该密钥对所有设备均有效。而使用PUF可以解决这些问题。每个MCU都有自己

独特的数字指纹,该数字指纹没有存储在芯片上,并且在设备未通电时也无法读取。以下各节说明如何使用PUF生成、存储和恢

复密钥。

PUF控制器功能包括以下命令:归零(Zeroize),注册(Enroll),启动(Start),设置密钥( SetKey),生成密钥

(GenerateKey)和获得密钥(GetKey)。 这些命令用于控制PUF密钥管理。

2.4PUF注册(Enroll)

开始使用PUF前,您需要进行注册。在注册期间,将SRAM启动数据导出为数字指纹,并生成相应的激活码(Activation

Code)。激活码通过CODEOUTPUT寄存器读出。

LPC55Sxx 将 PUF 和 Hash Crypt 用于 AES 编码, 版本0, 2019 年 2 月

应用笔记2 / 24