1. PUF基础概念:物理不可克隆函数的定义、起源与核心特性

各位同学,咱们今天聊点硬核的——PUF。说白了,物理不可克隆函数(Physically Unclonable Function)就是芯片的“指纹”。

我第一次接触PUF是在一个安全芯片项目里。客户要求密钥必须“出生即自带”,不能存进Flash或EEPROM。我当时想,这不就是既要马儿跑,又要马儿不吃草吗?后来翻到一篇2002年的论文,才恍然大悟——原来芯片本身就能当密钥源。

1.1 什么是物理不可克隆函数?

PUF不是一个数学函数,而是一个物理实体。它利用芯片制造过程中不可避免的工艺偏差——比如晶体管的阈值电压波动、金属线的宽度差异、氧化层厚度不均——来生成唯一的“响应”。

你给它一个“挑战”(Challenge),它返回一个“响应”(Response)。这个映射关系,就是PUF的核心。

关键点:同一片晶圆上,相邻两颗芯片的PUF响应都不同。这就是“不可克隆”的物理基础。

我习惯把PUF比作人的指纹。指纹是出生时就有的,不需要你记住它;PUF也一样,芯片一上电,响应就自然产生,不需要额外存储密钥。

1.2 PUF的起源与发展

PUF这个概念最早可以追溯到2001年。当时MIT的R. Pappu博士在他的博士论文里提出了“物理单向函数”的想法。嗯,那时候还不叫PUF。

真正让PUF火起来的,是2002年的一篇ISSCC论文。作者用光学PUF做了个实验——用激光照射一个透明介质,散射出来的干涉图案就是响应。效果惊人,但实用性嘛……你想想看,谁会在手机芯片里装个激光器?

后来,硅基PUF出现了。2004年,Intel的B. Gassend等人提出了基于芯片延迟的PUF结构。这玩意儿才真正适合量产。

时间 里程碑 我的评价
2001 Pappu提出物理单向函数 开创性工作,但太学术
2002 光学PUF实验成功 惊艳,但没法商用
2004 硅基延迟PUF诞生 这才是工业界的菜
2008 SRAM PUF被提出 简单粗暴,我喜欢
2015至今 PUF进入量产阶段 终于不再是实验室玩具

我在2016年帮一家IoT芯片公司做过PUF评估。当时他们选了SRAM PUF,因为不需要额外电路——芯片上电时SRAM的初始值就是天然的PUF响应。但坑也不少,后面我会细说。

1.3 PUF的核心特性

PUF有三个核心特性:唯一性、不可克隆性、随机性。这三个特性缺一不可,否则就不能叫PUF。

1.3.1 唯一性

唯一性,说白了就是“每颗芯片都不一样”。衡量唯一性的指标是片间汉明距离(Inter-chip Hamming Distance)。理想值是50%。

我见过一个项目,PUF的唯一性只有42%。结果呢?两颗芯片的响应太接近,密钥几乎一样。安全?不存在的。

经验之谈:唯一性低于45%的PUF,我建议直接换方案。别指望后处理能救回来。

1.3.2 不可克隆性

不可克隆性分两种:物理不可克隆和数学不可克隆。

  • 物理不可克隆:你没法用另一颗芯片复制出同样的响应。即使你拿到了设计版图,制造偏差也保证了你做不出完全一样的芯片。
  • 数学不可克隆:你没法用数学模型预测PUF的响应。即使你收集了100万个挑战-响应对,第100万零1个你也猜不出来。

我曾经遇到一个客户,想用机器学习建模PUF。他们收集了10万组数据,训练了一个神经网络。结果预测准确率只有52%——跟猜硬币差不多。嗯,PUF的不可克隆性不是吹的。

1.3.3 随机性

随机性,就是PUF响应的每一位都像抛硬币一样独立。衡量指标是片内汉明距离(Intra-chip Hamming Distance)和自相关函数。

随机性不好会怎样?举个例子:如果PUF响应的前8位总是0x55,那攻击者只需要猜剩下的位就行了。密钥空间直接缩水。

注意:随机性差的PUF,往往跟芯片布局有关。我曾经见过一个设计,PUF单元全部放在芯片角落,结果响应严重偏斜。后来改了布局,随机性才正常。

1.4 PUF知识体系总览

下面这张图,是我自己整理的PUF知识框架。你看一眼,就知道咱们这门课要讲什么。

PUF知识体系总览 PUF核心概念 唯一性 不可克隆性 随机性 片间汉明距离 物理不可克隆 数学不可克隆 片内汉明距离 自相关 密钥生成 设备认证 防克隆ID 核心:PUF利用芯片制造偏差,实现“零存储”的密钥生成方案 三个特性缺一不可,否则不能称为真正的PUF

1.5 为什么PUF比传统方案强?

传统密钥存储方案,无非就是写进Flash、EEPROM或者熔丝。但这些方案有个致命问题——密钥是“存”进去的。只要你能读到存储介质,密钥就暴露了。

PUF不一样。密钥不是存的,是“长”出来的。芯片断电,密钥消失;芯片上电,密钥重现。攻击者就算把芯片磨到原子层,也找不到密钥存在哪里。

我的建议:如果你的产品需要防物理攻击(比如金融终端、车规芯片),PUF几乎是唯一选择。但如果你只是做个玩具遥控器,用Flash存密钥就够了——别杀鸡用牛刀。

好了,PUF的基础概念就聊到这儿。记住三个核心特性:唯一性、不可克隆性、随机性。后面咱们会深入每种PUF的实现细节,以及怎么把它们用到密钥生成和存储里。