实体无法复制功能(Physicalunclonable function),又称物理不可仿制功能、物理不可复制函数、物理不可复制功能,简称 PUF,是一种硬件的安全技术,它利用自然的生产环境生产出唯一辨识码,可用于防止半导体的篡改、窃取智慧产权,相较于传统方法,不需要将私钥存储在硬件中,免去了金钥遗失的风险,也显著提高了安全等级。今日,芯片中的实体无法复制功能,被广泛应用在高标准安全要求及加密中。------维基百科
PUF 的种类
-
SRAM PUF(静态随机存储器 PUF):SRAM PUF 利用了SRAM单元内部的微小随机差异,这些差异导致了每次上电时SRAM单元的不同偏向状态。这种不可预测的偏向状态可以用于生成设备的唯一标识符或密钥。
-
仲裁 PUF:仲裁 PUF 基于电路中的信号传播延迟。由于制造过程中的微小差异,相同电路中的信号可能会在不同时间到达终点,从而形成独特的特征。
-
RO PUF(环形振荡器 PUF):RO PUF 使用环形振荡器电路,其中频率由微小的制造差异引起。这些差异导致每个芯片上的环形振荡器频率不同,可用于生成唯一标识。
-
VIA PUF:VIA PUF 利用芯片上的VIA(穿越孔)的制造规则和特性。通过设计规则,制造不同大小的VIA,并根据工艺差异来提取出PUF。
这些不同类型的PUF都有各自的应用领域和优势,但它们的共同点是都依赖于硬件中的微小差异来生成唯一性。这些技术在物联网安全、设备身份认证和密码学中发挥了关键作用。
PUF 特性
物理不可克隆功能(PUF)具有多个关键特性:
-
不可预测性:PUF 的行为是由微小的物理差异引起的,这些差异无法事先被预测或模拟。因此,无法通过计算或分析来推断出PUF的值,增加了攻击者破解的难度。
-
唯一性:每个PUF是独特的,即使它们来自相同生产线上的芯片也不同。这种唯一性使得PUF成为生成唯一设备标识符或密钥的理想选择,有助于设备身份认证和数据加密。
-
无需存储:PUF的值无需额外存储在芯片上或外部存储设备中。它们可以实时从芯片的硬件电路结构中提取,因此无需独立的存储器件,减少了硬件复杂性和成本。
-
防克隆性:由于PUF值是由芯片内部的物理特性确定的,无法简单地复制或克隆。这使得对PUF值的未经授权的复制变得极为困难,增强了设备和数据的安全性。
-
防篡改性:PUF值通常难以定位和修改。即使攻击者能够访问芯片,也很难操纵PUF值,因为它们是由硬件特性产生的,而不是存储在可修改的存储器中。
这些特性使PUF技术在信息安全领域中得以广泛应用,在物联网设备、电子身份认证、硬件安全模块(HSM)、加密通信和数字签名等领域发挥着重要的作用,为安全性和可信度提供了关键支持。
基于 SRAM 的 PUF
因深度亚微米制造工艺的变化,集成电路(IC)中每个晶体管的物理性能均略有差异。这些差异包括但不限于晶体管的阈值电压和增益系数等电子特性,虽微小却可衡量。然而,正因为这些工艺变化难以在制造过程中得以完全掌控,因此无法复制或克隆特定的物理设备属性。
每次对 SRAM 单元上电时,由于阈值电压的微小差异,每个 SRAM 单元都会显示自己独特的偏向状态,即逻辑"0"或"1"。这种偏向状态不受相邻单元的影响,也与芯片或晶圆上的位置无关。
因此,每片 SRAM 区域都会生成一种独特的 0 和 1 随机分布。这一分布可被视为 SRAM 指纹,因为它对于每片 SRAM 是独一无二的,进而对于每颗芯片也是唯一的。这使其成为物理不可克隆功能(Physical Unclonable Function, PUF)的应用之一。
从基于 SRAM PUF 派生的密钥不需要"存储在芯片上",而是根据需要实时从芯片中提取。这意味着这些密钥只会在芯片内临时存在,极大提高了系统的安全性。当 SRAM 未通电时,芯片上根本不存在密钥,进一步巩固了整个解决方案的安全性。这种机制为数据安全和设备身份认证提供了高度可信的保护。
深亚微米工艺变化确实在制造过程中被固定下来,这意味着SRAM单元的上电初始值偏向性是长期且相对稳定的。然而,即使在相同的工艺下,仍然存在一定程度的不确定性和噪音。
这种噪音是由于一些SRAM单元的阈值电压非常接近平衡点,因此它们的上电初始状态可能会表现出不稳定性,看起来是随机的,并且没有明显的偏向性。这种情况导致在每次上电启动时,芯片的初始状态可能会略有不同,这一部分不同被称为噪音。这种噪音的具体程度可能受温度、电压变化和工作条件的影响。
尽管存在噪音,SRAM PUF的整体特性仍然具有足够的唯一性和不可预测性,可用于生成设备的唯一标识符或密钥。这种噪音通常被我们所考虑和管理,以确保PUF的性能在可接受的范围内,同时维持足够的安全性和可靠性。
密钥提取
密钥提取通常分为两个关键阶段:系统注册阶段和密钥重建阶段。这两个阶段协同工作以确保安全地生成和重建密钥。
系统注册阶段是一次性过程,其目标是将PUF(物理不可克隆功能)的响应映射到纠错代码的码字。在这个阶段,有关映射的信息被存储在激活码(AC)或辅助数据中。激活码的构造旨在确保不泄漏任何关于密钥的信息。AC通常应存储在PUF算法可以访问的存储器中,但也可以存储在芯片之外,因为它本身不包含敏感信息。值得注意的是,任何对AC的更改,无论是出于恶意目的还是其他原因,都将阻止密钥的成功重构。每个AC只对创建它的芯片有效。
密钥重建阶段是在每次设备运行身份验证协议并需要PUF密钥时进行的过程。在这个阶段,会重新进行PUF测量,包括了带有噪声的PUF响应,并从AC和新的PUF响应中提取出无噪声的PUF密钥。这一过程是动态的,每次设备需要密钥时都会执行,以确保密钥的实时性和安全性。这个过程有时也被称为密钥重构。
需要注意的是,R代表注册阶段时的初始PUF响应,而R'代表带有噪声的重构阶段时的PUF响应。这种两阶段的方法有助于维持密钥的安全性和可信度,同时减少了潜在的攻击风险
SRAM PUF应用
- 生成应用Key、生成密钥
- 安全密钥存储
- 认知
- 防伪
- 硬件 - 软件绑定
- 供应链保护