2. 物理不可克隆函数(PUF)基础

各位同学,今天我们来聊聊PUF。说实话,我第一次接触这个概念时,觉得它像是个“芯片指纹”的黑科技。后来做安全芯片项目,才真正体会到它的价值。

PUF,全称Physical Unclonable Function。说白了,就是利用芯片制造过程中不可避免的工艺偏差,给每个芯片一个独一无二的“身份证”。你想想看,即便是同一片晶圆上相邻的两个芯片,它们的物理特性也会有细微差别。PUF就是把这些差别提取出来,变成一串密钥或者标识。

核心思想:PUF不是把密钥存进芯片,而是从芯片的物理特性中“生成”密钥。这就意味着,攻击者即使物理剖开芯片,也拿不到完整的密钥——因为密钥只在需要时才出现。

PUF 知识体系 仲裁器 PUF 环形振荡器 PUF SRAM PUF AI 芯片安全应用 模型加密密钥 芯片身份认证 数据防篡改 安全启动 图:PUF 知识体系与 AI 芯片应用映射

2.1 PUF的工作原理

PUF的核心机制,我习惯用“挑战-响应”来理解。你给芯片一个输入(挑战),它基于自身的物理特性产生一个输出(响应)。同一个挑战,在不同芯片上会得到不同响应。但同一颗芯片,每次响应应该高度一致。

这里有个关键指标——可靠性。芯片会受温度、电压影响,响应可能产生波动。我在做一款车规级PUF时,就遇到过高温下响应翻转的问题。后来通过纠错码(ECC)和温度补偿才搞定。

小提示:PUF的“不可克隆”不是说绝对无法复制,而是说复制成本极高,远超攻击者收益。实际项目中,我们通常结合模糊提取器(Fuzzy Extractor)来保证密钥的稳定性。

2.2 PUF的主要分类

业界常见的PUF有三种,我分别说说我的理解。

2.2.1 仲裁器PUF

仲裁器PUF的原理,说白了就是让两个信号路径“赛跑”。芯片制造偏差导致两条路径的延迟不同,谁先到达仲裁器(比如一个D触发器),谁就输出0或1。

我曾经在一个FPGA上实现过仲裁器PUF,踩过一个坑:布线不对称会导致路径偏差被布线差异主导,而不是工艺偏差。所以布局布线时,必须用对称布线,否则PUF的随机性会大打折扣。

// 仲裁器PUF的Verilog简化描述
module arbiter_puf(
    input  wire [63:0] challenge,
    output wire        response
);
    // 两条对称路径,由challenge控制切换
    wire path_a, path_b;
    // ... 实际实现需要MUX链和仲裁器
    // 注意:必须使用手工布局保证对称性
endmodule

2.2.2 环形振荡器PUF

环形振荡器PUF利用多个环振的频率差异。每个环振的频率因工艺偏差而不同,比较两个环振的频率,就能产生1比特响应。

嗯,这里要注意:环振的频率会随温度漂移。我做过实验,同一个环振在-40°C和85°C下,频率能差15%以上。所以实际使用时,要么做差分比较(两个环振同时受温漂影响,差值相对稳定),要么加温度传感器做校准。

PUF类型 面积开销 可靠性 唯一性 典型应用
仲裁器PUF 中(受电压影响大) 密钥生成
环形振荡器PUF 中(受温度影响大) 芯片认证
SRAM PUF 极小(复用SRAM) 高(上电即稳定) 设备指纹

2.2.3 SRAM PUF

SRAM PUF是我个人最喜欢的一种。它利用SRAM单元上电时的随机初始值。每个SRAM单元在制造时,两个交叉耦合的反相器会有微弱的失衡,导致上电时偏向0或1。这个偏向是固定的,但不同单元不同。

为什么说它适合AI芯片?因为AI芯片里本来就有大量SRAM(缓存、权重存储)。你不需要额外硬件,直接复用现有SRAM就行。我在一个AI加速器项目中,就是用芯片自带的L2 Cache来做PUF,省了专门的PUF模块面积。

警告:SRAM PUF有个坑——老化效应。芯片用久了,SRAM单元的偏向可能漂移。我建议定期做“健康检查”,如果错误率超过阈值,就重新注册PUF响应。另外,上电时序也会影响初始值,必须保证每次上电条件一致。

2.3 PUF在AI芯片中的应用

AI芯片对安全有特殊需求。模型就是资产,参数就是钱。PUF能帮上大忙。

  • 模型加密密钥:AI模型存在片外DDR里,必须加密。密钥从PUF生成,不上电时密钥不存在,攻击者读Flash也没用。
  • 芯片身份认证:云端推理时,服务端要确认芯片是否合法。PUF响应作为“数字指纹”,比写死的ID安全得多。
  • 数据防篡改:推理结果或训练数据,可以用PUF派生密钥做签名。一旦芯片被物理篡改,PUF特性改变,签名就失效。
  • 安全启动:AI芯片启动时,用PUF验证固件签名。防止恶意固件注入。

我记得有个客户,他们的AI芯片用在安防摄像头里。要求即使摄像头被拆解,里面的模型也不能被提取。我们就是用SRAM PUF绑定模型密钥,芯片一拆,SRAM掉电,密钥消失。物理攻击者拿到Flash也没用——解不开。

总结一下:PUF不是万能的,但它提供了一种“物理绑定”的安全思路。在AI芯片这个场景里,模型和硬件的绑定越来越重要。PUF正好解决了“密钥存在哪里”这个根本问题。你想想看,如果密钥存在Flash里,攻击者总有办法读出来。但PUF的密钥是“算”出来的,不是“存”的——这个区别,就是安全的分水岭。


专注资料整理