物理不可克隆函数PUF基础
一、概述
1.1 基础概念
PUF(Physical Unclonable Function,物理不可克隆函数)是一种硬件安全技术,利用硬件中固有的物理特性来生成唯一的、无法复制的数字指纹。这种技术常用于安全认证、密钥生成和加密硬件保护。
物理特性包括但不限于:微观制造工艺的随机性、电气特性差异、光学特性、磁学特性、机械特性、热学特性、随机噪声特性等等
1.2 应用介绍
近期,中国移动旗下芯昇科技有限公司新推出一款高安全MCU芯片——CM32Sxx系列,通过使用南京帕孚信息科技有限公司SoftPUF开发工具包,在芯片中集成物理不可克隆功能(PUF),利用PUF技术提取出独一无二的“芯片指纹”,实现了芯片唯一身份标识和安全密钥生成等关键功能。这些特性赋予CM32Sxx系列芯片防克隆、防篡改、抗物理攻击以及侧信道攻击的能力,可为物联网场景下的终端设备提供高级别的安全保障。
CM32Sxx系列芯片选择使用SoftPUF进行PUF集成,相对于其他方案,它具有明显的优势:无需增加额外硬件,也无需修改原有芯片及设备的硬件设计。此外,SoftPUF可以在芯片的整个生命周期中灵活地进行集成,甚至可以部署到已安装在现网的设备上。因此,SoftPUF的推出使得PUF能够以低成本、灵活地集成到芯片和设备中,轻松获得可靠的信任基础。
二、PUF 技术介绍
2.1 PUF 的分类
根据实现方式,PUF 可分为多种类型:
- 硅 PUF(silicon PUF):基于半导体芯片工艺差异,例如 SRAM PUF、环振荡器(RO)PUF;
- 光学 PUF:利用光在材料中的散射特性生成唯一相应。
- 磁性 PUF:利用材料磁性差异;
- 纳米材料 PUF:利用纳米结构的随机分布特性;
2.2 PUF 的应用场景
2.2.1 身份认证
PUF可用来生成设备唯一的物理指纹,确保设备的身份真实可信。
- 实现方法:
通过挑战-响应对(Challenge-Response Pair, CRP)机制实现认证:
1. 设备生成PUF响应,并与预存的参考响应进行比对。
2. 如果匹配,则确认设备身份。
• 优点:
无需存储固定密钥,仅利用设备内部的PUF特性,防止身份伪造。
:::success
挑战-响应对(****Challenge-Response Pair, CRP)工作原理:
- 挑战(Challenge):
由认证方生成的随机输入,通常是一个比特串(字符串、数字等)。
2. 响应(Response):
由被认证方(例如设备或芯片)根据PUF特性(物理不可克隆)或算法对挑战的计算或映射输出的结果。
3. 挑战响应对:
在设备制造或初始化时,预先收集并存储一组挑战和其对应的响应,用于后续身份验证。
挑战-响应机制的流程:
- 初始化阶段:
- 在设备连接时,认证中心向设备发送多个挑战$ C_i $;
- 设备根据 PUF 特性计算或映射出结果,返回多个挑战响应到认证中心;
- 认证中心通过数据库存储设备的挑战响应到安全服务器中;
- 认证阶段:
- 认证方随机选择一个挑战,发送给设备。
- 设备利用其内部PUF特性生成响应,并返回给认证方。
- 认证方将设备返回的响应与数据库中的参考响应进行比对。
- 如果匹配,则验证通过。
:::
2.2.2 动态密钥生成
PUF可以用于生成动态密钥,而不是存储静态密钥,减少被窃取的风险。
- 实现方法
- PUF通过特定挑战生成密钥材料。
- 使用纠错码(如Reed-Solomon码)和熵提取器提高密钥的一致性和随机性。
2.2.3 硬件根信任(Root of Trust)
PUF可作为硬件信任链的基础,用于初始化安全功能和验证系统完整性。
- 实现方法:
- 通过PUF生成唯一密钥,用于签署或验证固件。
- 在设备启动时验证硬件和固件的真实性。
- 优点:
保证设备启动过程未被篡改。
2.2.4 防克隆与伪造
PUF提供了一种自然的防克隆机制,因为制造工艺随机性使得每个PUF响应都唯一。
- 实现方法:
- 将PUF响应嵌入产品中,作为其唯一标识。
- 通过远程验证PUF的响应,确认设备真实性。
- 应用场景:
用于防止IC芯片或其他硬件被仿冒。
2.2.5 硬件加密模块保护
PUF可与硬件加密模块结合,用于保护加密密钥或签名私钥。
- 实现方法:
- 动态生成密钥,并与特定硬件绑定。
- 即使设备被物理入侵,攻击者也无法直接读取加密密钥。
- 优点:
提高硬件加密模块的抗篡改能力。
2.2.6 防止回滚攻击
通过PUF技术,可以记录设备的状态或固件版本,防止攻击者通过恢复旧版本固件来利用已修复的漏洞。
- 实现方法:
- 在PUF生成的密钥基础上,绑定设备的固件版本或状态。
- 在系统启动时,通过验证确保固件为最新版本。
2.2.7 可信执行环境(TEE)中的应用
PUF技术可以增强TEE的安全性,确保运行环境无法被外部干扰或篡改。
- 实现方法:
- 在TEE初始化时,利用PUF生成并保护密钥,用于加密和签名操作。
- 确保TEE的数据和代码完整性。
2.2.8 物联网(IoT)设备安全
物联网设备通常受限于计算能力和存储空间,PUF技术为其提供了轻量级的安全方案。
- 实现方法:
- 通过PUF生成唯一的设备身份,用于设备注册和认证。
- 在数据传输过程中利用PUF生成的密钥加密通信。
2.2.9 防止物理攻击
PUF可以有效防御以下物理攻击:
- 侧信道攻击(Side-channel Attack):PUF的随机性使其响应难以通过分析电磁泄漏或功耗推测。
- 硬件逆向工程:PUF特性是制造工艺的结果,难以通过复制或模仿获取相同的响应。
2.2.10 基于PUF的区块链安全
PUF生成的唯一标识可以用于确保区块链节点的真实性,防止伪造和篡改。
- 实现方法:
将PUF响应作为设备私钥的一部分,保证节点在网络中的唯一性。
2.3 PUF 动态密钥生成
2.3.1 基于挑战-响应对(CRP)的动态密钥生成
- 原理:
- PUF 接收一个输入(挑战),输出一个响应。
- 挑战可以是随机生成的,响应由 PUF 的物理特性唯一决定。
- 步骤:
- 选择一个随机挑战 $ C $。
- 输入挑战 $ C $到 PUF,获得对应的响应 $ R $。
- 使用响应 $ R $ 直接作为密钥,或通过后续处理(如哈希函数)生成最终密钥。
- 特点:
- 每次输入不同的挑战,生成的密钥都不同,动态性强。
- 挑战可以由通信双方协商或随机选定。
2.3.2 基于 Helper Data 的密钥生成
- 原理:
- PUF 输出通常会受到噪声影响,因此需要一个辅助数据结构(Helper Data)来稳定输出结果。
- Helper Data 通过加密方式安全存储,但不会泄露密钥信息。
- 步骤:
- 注册阶段:
- 提取 PUF 的稳定输出 $ R_{ref}
$。 - 生成辅助数据 $ W $ 来帮助恢复 $ R_{ref}
$,同时保证 $ W
$ 不泄露 $ R_{ref}
$。 - $ W $ 被安全存储在设备中。
- 提取 PUF 的稳定输出 $ R_{ref}
- 密钥恢复阶段:
- 输入相同的挑战 $ C $ 到 PUF,得到有噪声的响应 $ R_{new} $
- 使用辅助数据 $ W $ 对 $ R_{new} $ 进行纠错,恢复原始的 $ R_{ref}
$。 - $ R_{ref}
$ 作为密钥或密钥种子。
- 注册阶段:
- 特点:
- 提高了 PUF 输出的可靠性。
- 适用于受环境噪声影响较大的 PUF。
2.3.3 基于模糊提取器(Fuzzy Extractor)的密钥生成
- 原理:
- 模糊提取器是一种密码学工具,用于从模糊的生物特征或 PUF 输出中生成稳定、随机的密钥。
- 步骤:
- 注册阶段:
- PUF 输出 $ R_{ref}
$ 被分成两个部分:密钥 $ K
$ 和辅助数据 $ K
$。 - $ P
$ 是公开的,但不泄露 $ K
$ 的信息。
- PUF 输出 $ R_{ref}
- 密钥恢复阶段:
- 使用新的 PUF 输出 $ R_{new}
$ 和 $ P $来纠正错误,恢复原始密钥 $ K
$。
- 使用新的 PUF 输出 $ R_{new}
- 注册阶段:
- 特点:
- 确保密钥的高随机性和稳定性。
- 对噪声有很强的容忍度。
2.3.4 基于随机数种子的动态密钥生成
- 原理:
- PUF 输出用于生成随机数种子,后续通过伪随机数生成器(PRNG)扩展为动态密钥。
- 步骤:
- 提取 PUF 输出 $ R $。
- 使用 $ R $ 作为种子输入到 PRNG。
- PRNG 生成所需长度的密钥 $ R $。
- 特点:
- 通过 PRNG 提供额外的随机性。
- 动态密钥长度可控。