3、PUF的分类与架构:从存储器到模拟电路的全面解析
PUF 的分类,说白了就是看它到底利用了芯片的什么物理特性。我做了这么多年硬件安全,见过不少团队一上来就选最复杂的方案,结果流片回来发现根本没法用。其实,选对类型比什么都重要。
目前主流的 PUF 架构,大致可以分成三大类:基于存储器的、基于延迟的、以及基于模拟电路的。下面我一个个拆开来讲。
核心观点: 不同类型的 PUF 在面积、功耗、稳定性、以及抗攻击能力上差异巨大。没有“最好”的 PUF,只有“最适合你应用场景”的 PUF。
3.1 基于存储器的 PUF
这类 PUF 的核心思想,就是利用存储器单元在上电瞬间的随机状态。你想想看,每个 SRAM 单元在制造时,由于掺杂浓度的微小波动,上电后总会倾向于一个随机的初始值——要么是 0,要么是 1。这个随机性,就是我们的指纹。
3.1.1 SRAM PUF
SRAM PUF 是目前最成熟、应用最广的 PUF 类型之一。我最早接触 PUF 就是从一个 SRAM PUF 项目开始的。当时客户要求给 MCU 加一个低成本的安全启动方案,SRAM PUF 几乎是最自然的选择。
工作原理: SRAM 单元由两个交叉耦合的反相器构成。上电时,两个反相器会竞争,最终稳定在一个状态。这个状态由晶体管的阈值电压失配决定,而失配是制造工艺随机引入的。
我的经验: 在实际项目中,SRAM PUF 的响应并不是 100% 稳定的。温度变化和电压波动会导致部分比特位翻转。我建议一定要配合纠错码(ECC)和模糊提取器(Fuzzy Extractor)来使用,否则密钥恢复失败会让你抓狂。
3.1.2 DRAM PUF
DRAM PUF 相对小众一些,但很有意思。它利用的是 DRAM 单元电容的漏电特性差异。DRAM 需要定期刷新,而不同单元的漏电速度不一样,这就构成了一个天然的指纹。
我记得有一次,团队想在一个已有的 DRAM 控制器上直接复用 PUF 功能,省掉额外的硬件开销。想法很好,但实际测试发现,DRAM PUF 对温度极其敏感,而且老化效应比 SRAM 严重得多。嗯,这里要注意,DRAM PUF 更适合做一次性认证,不太适合长期存储密钥。
| 特性 | SRAM PUF | DRAM PUF |
|---|---|---|
| 稳定性 | 中等(需 ECC 辅助) | 较低(受温度影响大) |
| 面积开销 | 零(复用已有 SRAM) | 零(复用已有 DRAM) |
| 老化影响 | 中等 | 较严重 |
| 适用场景 | 密钥存储、设备认证 | 一次性认证、临时 ID |
3.2 基于延迟的 PUF
这类 PUF 不依赖存储单元,而是利用信号在路径上的传播延迟差异。说白了,就是看谁跑得快。芯片制造时,每根导线、每个逻辑门的延迟都有细微差别,这些差别累积起来,就能形成独特的指纹。
3.2.1 环形振荡器 PUF(RO PUF)
RO PUF 是我个人比较偏爱的一种结构。它实现起来非常直观:在芯片上放一堆结构完全相同的环形振荡器,然后测量它们的振荡频率。由于工艺偏差,每个振荡器的频率都会略有不同。
实现方式:
- 在 FPGA 或 ASIC 上例化 N 个相同的环形振荡器(通常由奇数个反相器组成)。
- 用计数器分别测量每个振荡器的频率。
- 两两比较频率大小,生成 0/1 响应比特。
避坑指南: 我曾经在一个项目里,为了节省面积,把 RO 摆得特别近。结果相邻振荡器之间发生了频率牵引(Frequency Pulling),导致响应相关性极高,指纹的独特性大打折扣。记住,RO 之间一定要保持足够的物理距离,或者加隔离结构。
3.2.2 仲裁器 PUF(Arbiter PUF)
仲裁器 PUF 是另一种经典的延迟型 PUF。它的结构有点像一场赛跑:一个上升沿信号同时送入两条路径,路径由一系列可配置的开关级联而成。信号到达终点的时间差,由仲裁器(通常是 D 触发器)来判断谁先到。
为什么说它有意思?因为你可以通过改变路径的配置(挑战值),来获得不同的响应。这意味着一个仲裁器 PUF 可以产生指数级数量的挑战-响应对(CRP),非常适合做双向认证。
不过,仲裁器 PUF 有个著名的弱点——它容易被机器学习建模攻击。我见过一个团队,用几千组 CRP 训练了一个简单的神经网络,就能以 95% 以上的准确率预测未知挑战的响应。所以,如果你要用仲裁器 PUF,一定要加非线性混淆层,或者限制 CRP 的暴露次数。
3.3 基于模拟电路的 PUF
这类 PUF 直接利用模拟电路的特性,比如电压比较器的失调电压、电流镜的失配等。它们通常面积更大、设计更复杂,但稳定性和安全性也更高。
3.3.1 电压 PUF
电压 PUF 的核心是一个电压比较器阵列。每个比较器都有固有的失调电压,这个失调是由输入对管的失配造成的。给所有比较器施加相同的参考电压,它们的输出就会因为失调不同而呈现随机分布。
我参与过一个安全芯片项目,用的就是电压 PUF。当时为了把失调电压的分布控制在合理范围内,我们花了好几周调版图。模拟设计就是这样,一点点寄生参数都会影响最终结果。
3.3.2 电流 PUF
电流 PUF 利用的是电流镜的复制误差。理想情况下,电流镜的输出电流应该精确等于输入电流,但实际由于 MOS 管尺寸的随机波动,输出电流会有偏差。这个偏差就是指纹的来源。
电流 PUF 的一个优点是它对温度变化相对不敏感。因为电流镜的失配主要取决于几何尺寸,而几何尺寸随温度的变化很小。不过,它的缺点是功耗较大,不适合电池供电的设备。
总结一下: 三种 PUF 架构各有千秋。存储器 PUF 胜在零面积开销,适合已有存储器的 SoC;延迟 PUF 灵活且吞吐量高,适合 FPGA 原型验证;模拟 PUF 稳定性和安全性最好,但设计门槛也最高。选型时,一定要结合你的应用场景、工艺节点、以及安全等级要求来综合判断。