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
发布评论