从PUF到PPUF:硬件安全原语的公钥进化与工程实践

从PUF到PPUF:硬件安全原语的公钥进化与工程实践 1. 项目概述从硬件指纹到公开密钥的进化在硬件安全领域物理不可克隆函数PUF早已不是一个陌生的概念。它就像一个芯片的“指纹”利用集成电路制造过程中无法避免、也无法复制的微观工艺偏差为每一颗芯片赋予独一无二的身份标识。你给一个“挑战”输入它就会基于自身独特的物理结构产生一个“响应”输出。这个映射关系是确定性的但对外部观察者而言却近乎随机且无法预测。过去十几年从基于仲裁器的PUF到环形振荡器PUF再到SRAM PUF这项技术已经走出实验室在设备认证、防伪溯源、安全密钥生成等领域找到了自己的位置。它的魅力在于密钥不是存储在易受攻击的非易失性存储器中而是从物理结构中“推导”出来的天生对物理探测和侧信道攻击有较强的抵抗力。然而干了这么多年硬件安全我越来越清晰地感受到传统PUF的一个根本性局限它本质上是一种“共享秘密”的技术。无论是认证还是密钥生成验证方和PUF持有方必须事先共享一组或多组“挑战-响应对”CRP。这就像你和服务器共享了一个密码本虽然密码本是从硬件里“长”出来的但协议模型依然是“对称”的。这极大地限制了它的应用场景尤其是在需要非对称密码学特性的场合比如公开的密钥交换、数字签名或者与一个你从未接触过的设备建立信任。公共物理不可克隆函数PPUF的出现正是为了打破这层天花板。它的核心思想非常巧妙不再把PUF的物理参数当作必须保密的“私钥”而是将其公开。安全性的基石从一个“秘密”转移到了一个“能力差距”上。具体来说PPUF被设计成这样一种电路拥有它的人持有私钥可以极快地例如一个时钟周期内计算出对某个挑战的响应而任何没有该硬件的攻击者即使拿到了完整的电路网表公钥想要通过软件模拟计算出同样的响应也需要耗费天文数字般的时间。这个“执行-模拟时间差”Execution-Simulation Gap, ESG就是PPUF安全性的来源。它让硬件PUF第一次具备了支持公钥协议的能力打开了硬件安全原语通往更广阔天地的大门。这篇内容我就结合自己跟踪和复现相关研究的一些经验来深入聊聊PPUF这个硬件安全的新范式。我们会从它的核心设计思路开始拆解几种主流的架构是如何构建这个“时间差”的然后看看基于这些“硬件信任根”能玩出哪些新协议最后不可避免地要谈谈在实际工程化路上会遇到哪些坑以及我们该如何评估和测试这样一个系统。无论你是芯片安全工程师、嵌入式系统开发者还是对前沿密码学硬件实现感兴趣的研究者相信都能从中找到一些启发。2. PPUF的核心设计思路与架构演进PPUF的设计目标很明确在保持PUF硬件低成本、抗物理攻击优点的同时引入非对称性。实现路径主要有两条一是利用“执行远快于模拟”的时间差Gap-Based二是利用“器件老化”制造出独一无二且可公开验证的匹配电路对Matching-Based。沿着这两条路径衍生出了几代各有特色的架构。2.1 第一代基于时间差的PPUF与SIMPL系统最早的PPUF构想直接而朴素设计一个电路让它对输入的响应中充满大量的“毛刺”Glitch。这些毛刺是信号在通过具有不同延迟的逻辑门时产生的短暂、非稳定的中间状态。对于硬件本身给定一个输入输出包括这些瞬态毛刺在一个时钟周期后就能稳定下来。但是对于一个试图用软件模拟这个电路的攻击者来说问题就大了。为了精确模拟出最终的稳定输出他必须模拟电路中每一个逻辑门在每一个皮秒甚至更短时间单位的状态变化。随着电路深度的增加需要模拟的中间状态数量会呈指数级增长。注意这里的关键在于“毛刺”的指数级传播。一个简单的异或门阵列输入变化时信号前沿在每一级逻辑门都会分叉、竞争导致毛刺数量逐级翻倍。模拟这种瞬态行为所需的计算量远大于执行它。这个思路与更早的“SIMPL系统”SIMulation Possible, but Laborious一脉相承。SIMPL系统也是利用硬件执行与软件模拟之间的巨大时间差来构建安全协议例如认证。早期的PPUF可以看作是SIMPL思想在集成电路PUF领域的具体化。然而第一代方案对测量精度要求极高需要检测皮秒级毛刺且为了获得足够的安全边际例如10^12倍的ESG电路需要一定的规模导致合法用户的执行时间也可能达到秒级这在很多实时应用中是不可接受的。2.2 第二代差分PPUF——从绝对时间到相对时间为了解决第一代PPUF对超精密时间测量的依赖差分PPUFdPPUF被提了出来。这是一个非常聪明的改进。dPPUF不再测量单个电路输出的绝对时间而是准备两个名义上完全相同但实际因工艺偏差而不同的电路。将同一个挑战信号同时输入这两个电路让信号像赛跑一样穿过它们最终用一个仲裁器来判断哪个电路的信号先到达终点。这样一来安全性不再依赖于测量一个信号是8.8皮秒还是9.3皮秒到达而是取决于“两个几乎一样的电路中哪个跑得更快一点”这个相对比较。仲裁器的输出0或1就是响应位。由于工艺偏差的随机性对于绝大多数输入哪个电路的路径更快是无法预测的。攻击者即使知道两个电路的公开延迟特性要精确模拟两个电路中信号的传播竞赛并预测仲裁器的结果其计算复杂度依然是指数级的。dPPUF的电路结构通常包含交替的“助推器”和“抑制器”层。助推器如XOR门会增加信号跳变的可能性扩散不确定性而抑制器如多输入与非门则以不可预测的方式压制信号前沿的传播。这种设计旨在最大化输出的不可预测性确保每个输出位为1的概率尽可能接近0.5并且各输出位之间相关性极低。实操心得在设计或评估dPPUF时输出位的偏置Bias和互相关性Cross-correlation是两个必须严格仿真的指标。如果某些输出位总是倾向于输出0或1或者某些输出位之间存在强相关性攻击者就可以利用这些统计弱点大幅降低模拟难度。在实际流片前必须进行大量的蒙特卡洛仿真覆盖工艺角、电压、温度变化以确保电路的“随机性”质量。2.3 第三代匹配PPUF与量化PPUF——单周期公钥操作的梦想虽然dPPUF降低了对测量精度的要求但它仍然要求通信的一方通常是验证者进行耗时的模拟计算。匹配PPUFmPPUF的提出目标更加激进实现单时钟周期、超低功耗的公钥安全操作完全摆脱模拟计算的需求。其核心思想堪称“魔法”利用可控的、可逆的器件老化技术例如负偏置温度不稳定性NBTI让两个通信方各自“雕琢”自己的PPUF电路使它们两者之间对应的逻辑路径延迟变得匹配而第三方无法复制出第三个匹配的PPUF。具体过程可以这么理解Alice和Bob各有一个相同设计的PPUF芯片。由于制造工艺偏差两个芯片上对应晶体管的初始延迟是随机分布的。现在他们公开交换各自芯片上每个逻辑的延迟特征。然后通过施加特定的电压、温度应力他们可以有选择地“老化”某些晶体管使其速度变慢。他们的目标是通过这种可控老化使Alice芯片上门A的延迟与Bob芯片上门A’的延迟变得非常接近。对于那些无法通过老化匹配到足够精度的门则通过电源门控或软件方式将其禁用。这样一来Alice和Bob就拥有了一对“匹配”的PPUF。对于同一个输入这两个PPUF将在几乎完全相同的时间点产生相同的输出。而攻击者Charlie即使拿到了公开的延迟数据也无法通过老化自己的芯片来同时匹配Alice和Bob的延迟模式因为老化是一个不可精确控制的物理过程同时匹配两个独立随机分布的成功率极低。量化PPUFqPPUF进一步扩展了这个想法解决了“一对多”通信的问题。在mPPUF中一个设备为了和多个设备通信需要为每一对关系老化出一组匹配的门这在实际中不现实。qPPUF引入了“量化”的概念将延迟值域划分为若干个离散的“档位”例如延迟1.0ns, 1.2ns, 1.4ns…。每个用户独立地将自己PPUF中每个门的延迟老化到最接近的某个档位上。当Alice想和Bob通信时他们互相公开自己每个门的延迟档位然后共同禁用那些档位不匹配的门。由于量化是公开和标准的Alice可以用同一块PPUF通过动态启用/禁用不同的门集合来与Bob、Charlie、David等所有人分别进行安全的双人通信。避坑指南器件老化是mPPUF/qPPUF安全性的物理基础但也是工程上的巨大挑战。首先老化的可控性和可逆性必须非常好需要精密的模拟电路和传感器来监控和调整老化过程。其次老化过程本身可能不均匀并受到温度、电压波动的显著影响这会影响匹配的精度和稳定性。在实际设计中必须加入大量的冗余门Replica来提高匹配概率如图6所示增加副本数量能有效提升匹配成功率。同时需要设计在线校准机制以应对芯片生命周期内性能的漂移。2.4 数字PPUF回归数字域的安全前述的PPUF都依赖于模拟特性延迟、老化。数字PPUF则试图将安全性重新建立在纯数字电路的复杂度之上。它采用一对“数字双模函数”一个紧凑型函数f_compact可以快速计算在硬件上只需几个周期另一个扩展型函数f_expand在功能上与f_compact等价但计算复杂度极高例如其积之和表达式具有指数级数量的项。f_compact作为私钥在硬件中高效执行。f_expand或其一个大的子集作为公钥公开。安全协议可以这样工作Bob接收方选择f_expand的一个庞大子集发送给Alice发送方。Alice从中随机挑选一部分项构造出能使这些项输出特定值的输入向量并用这些输入向量加密消息。Bob利用私钥f_compact可以快速计算出这些输入对应的输出从而解密。而攻击者面对公开的f_expand子集想要逆向找出能产生特定输出的输入需要进行穷举搜索或复杂的逻辑化简计算上是不可行的。数字PPUF的优势是彻底摆脱了对模拟效应和环境的敏感性稳定性更好。但其挑战在于如何设计出f_compact和f_expand之间确实存在指数级计算差距的函数对并且要能抵抗各种代数攻击和机器学习建模攻击。2.5 纳米PPUF探索新器件特性纳米PPUF则跳出了传统CMOS工艺的框架探索利用纳米器件如III-V族纳米线的固有特性来构建更强的安全假设。纳米结构在合成时具有天然的随机性同时其电路表现出非线性特性和双向信号传播的特性。后者尤其有趣信号可以从电路的任意一端输入。这使得纳米PPUF的输入/输出空间相对于传统电路呈指数级增长因为输入不仅包括施加的电压值还包括施加电压的引脚位置集合即“输入集”。这种巨大的输入空间使得模拟攻击更加困难。在认证协议中验证者可以只模拟整个纳米PPUF电路的一小部分分区来验证响应而攻击者由于不知道验证者会模拟哪一部分必须模拟整个电路计算负担巨大。3. 基于PPUF的安全协议与应用场景解析有了PPUF这个强大的硬件原语一批新型安全协议得以构建。这些协议往往比传统的软件密码学协议更简单、更高效并且天生具备抗物理攻击的特性。3.1 公钥加密与密钥交换这是PPUF最直接的应用。我们以基于时间差的PPUF为例描述一个简化的密钥交换或加密协议系统建立Alice的PPUF硬件制造完成其完整的电路网表或延迟特性作为公钥公开发布。Alice持有硬件PPUF作为私钥。加密Bob想发送秘密消息M给Alice。Bob选择一个巨大的数字集合S例如包含2^40个数并将其发送给Alice。这个集合可以用一个紧凑的数学描述如“所有40位整数”来传递。Bob从S中随机选择一个数I作为挑战并利用Alice的公钥电路模型通过耗时但可行的模拟计算得到对应的响应O。这个模拟可能需要几秒到几分钟。Bob将消息M与挑战I进行按位异或或使用其他对称加密密钥由I派生得到密文C。他将密文C和响应O一起发送给Alice。解密Alice收到(O, C)。她利用自己手中的PPUF硬件快速尝试集合S中的每一个挑战I‘直到找到一个I‘使得PPUF(I‘) O。由于硬件执行极快纳秒级她可以在很短时间内如几秒完成对巨大集合S的搜索。找到I后通过I与C异或恢复出消息M。安全性分析攻击者Eve窃听到了一切公钥、集合S的描述、密文C和响应O。为了破解Eve必须找到那个正确的挑战I。她有两种途径途径A模拟攻击像Bob一样利用公钥模拟计算O。但这需要和Bob一样长的模拟时间几秒到几分钟而Alice用硬件只需要纳秒Eve没有任何时间优势。途径B暴力搜索像Alice一样尝试所有可能的I‘。但她没有PPUF硬件只能通过模拟来计算每个I‘对应的O‘并与收到的O比较。这需要她对S中每一个元素都进行一次耗时的模拟总时间等于|S|乘以单次模拟时间这是天文数字。这个协议巧妙地将Alice的硬件速度优势转化为了Bob在选择挑战时的“选择性披露”优势共同构成了对攻击者的双重时间壁垒。对于匹配PPUF如qPPUF协议可以简化到极致Alice和Bob通过公开的量化延迟数据协商并禁用不匹配的门得到一对匹配的PPUF配置。Bob选择一个随机挑战I用自己匹配后的PPUF硬件计算响应O。Bob发送(I, M⊕O)给Alice。Alice用自己的PPUF硬件计算O‘ PPUF(I)然后计算M (M⊕O) ⊕ O‘。整个过程只需各执行一次PPUF计算和一次异或操作几乎可以在一个时钟周期内完成能量消耗极低。3.2 安全位置认证这是一个传统密码学难以解决而PPUF能优雅解决的问题。目标证明一个设备确实在它声称的地理位置。设想一个场服务器V要验证客户端A是否在某个安全区域内。传统方案如GPS坐标数字签名容易被“中继攻击”A可以将自己的私钥发给位于该区域内的同伙B由B代为签名。PPUF方案如下V验证者在待验证位置部署了多个测量信标。V向A发送一个随机挑战。A必须用其PPUF硬件对挑战生成响应。关键点A的PPUF的输入不仅包含V的挑战还必须实时融合来自本地GPS接收器或部署在当地的传感器数据如来自特定信标的信号。A将响应发回给V。V知道挑战和该位置应有的传感器数据因此可以验证响应的正确性。安全性A的PPUF是不可克隆的因此只有真实的硬件A能产生正确响应。A无法将计算任务远程委托给位于该位置的代理因为代理没有A的PPUF硬件。如果A试图预计算所有可能的挑战传感器数据组合的响应这需要存储海量数据且传感器数据是实时变化的如时间戳、随机信标信号实际上不可行。如果A试图修改硬件将传感器数据输入旁路改为从内存读取预存数据这会改变PPUF的负载特性从而改变其延迟特征导致响应错误。3.3 基于匹配PPUF的k-匿名隐私协议这个协议展示了PPUF在隐私保护领域的巧妙应用。假设一个高速公路收费系统收费站验证者V需要验证经过的车辆是否是付费用户但又不想泄露具体是哪一辆车保护用户行车轨迹隐私。初始化所有付费用户的车辆都安装有相同架构的qPPUF。V将自己的PPUF老化配置成能与至少k个用户的PPUF同时匹配。也就是说V找出了所有用户PPUF中延迟档位都相同的那些“公共门”。匿名验证当一辆车经过时V发送一个随机挑战。这辆车用自己的PPUF计算响应。由于V的PPUF配置与包括该车在内的至少k辆车匹配这辆合法车辆能计算出正确响应。V收到响应后只能知道这辆车属于那k个用户的集合中的一员但无法确定具体是哪一个实现了k-匿名。防欺骗一个非付费的攻击者其PPUF的延迟特性是随机的其所有门都与V的“公共门”配置完全匹配的概率极低p_g^ng其中p_g是单个门匹配的概率ng是总门数。因此他几乎无法通过验证。如果需要进一步缩小匿名集例如在需要追责时V可以动态地调整自己的PPUF配置与一个更小的用户子集进行匹配通过多轮挑战-响应逐步定位到具体车辆同时将攻击者成功冒充的概率降到极低。3.4 可信传感与可信计算这是PPUF最具潜力的应用之一即将安全原语与功能电路深度集成为数据流提供内生信任。核心思想如图11所示将PPUF电路如多级助推器/抑制器仲裁器与一个功能模块如乘法器、传感器接口、时钟网络的部分逻辑门共享。这些共享的门同时参与两个功能一是执行原有的乘法运算二是作为PPUF的一部分其状态和延迟会影响PPUF的最终输出。这样一来这个乘法器运算的结果就会在PPUF的输出上留下一个独特的“烙印”。远程可信传感流程如图12服务器端S集成了传感器和GPS。其PPUF的输入来自传感器/GPS的实时数据。客户端C的PPUF输入可以来自内存预存数据。S进行传感测量得到数据D。同时数据D作为输入送入其集成的PPUF产生一个输出R。S将原始数据D和PPUF输出R一起发送给C。C将收到的数据D输入自己的PPUF其配置与S匹配。如果计算出的输出R‘与收到的R一致则C可以相信数据D确实是由S的硬件在声称的时刻GPS时间和地点采集的并且在传输过程中未被篡改。因为任何对D的篡改都会导致PPUF输出不匹配。可信计算同理可以将PPUF与CPU的ALU或特定加速器集成使得客户能够验证某个计算任务确实是在远端的特定硬件上被正确执行的而不是被一个恶意的云服务商伪造了结果。经验之谈这种深度集成带来了强大的安全属性但也对设计流程提出了极高要求。逻辑综合、布局布线工具必须能够支持这种“安全逻辑”与“功能逻辑”的混合约束。需要精确建模共享门对两个功能路径延迟的影响。此外这种集成也使得整个系统对侧信道攻击更加敏感因为PPUF的运行可能会通过功耗、电磁辐射泄露功能电路的数据信息这需要在设计时就加以考虑。4. PPUF的测试、评估与工程挑战将PPUF从论文推向实际芯片测试与评估是绕不开的严峻关卡。这不仅仅是功能测试更是安全属性的测试。4.1 核心安全属性测试随机性与不可预测性测试这是评估PPUF作为“硬件随机源”质量的核心。输出分布对海量随机挑战统计每个输出位为1的概率。理想值应为0.5。严重的偏置Bias会削弱熵值给攻击者可乘之机。严格雪崩准则随机翻转输入向量的某一位统计输出向量中每一位发生翻转的概率。理想情况下每个输出位翻转的概率都应是0.5。这确保了输入与输出之间没有线性或可预测的关联。输出位间相关性分析任意两个输出位之间的相关性。高相关性意味着攻击者可能通过预测少数几位来推断其他位降低模拟难度。NIST随机性测试套件将PPUF的输出作为随机数流通过NIST SP 800-22等标准测试套件是检验其统计随机性的有效方法。数字PPUF在这方面通常表现更好。抗建模攻击能力这是测试PPUF能否抵抗机器学习等高级攻击的关键。线性规划/回归攻击尝试用线性模型来拟合挑战-响应对。如果拟合精度高说明PPUF的响应与挑战之间存在较强的线性关系不安全。机器学习攻击使用神经网络、支持向量机等非线性模型利用已知的CRP训练集来构建预测模型。然后测试模型对未知挑战的预测准确率。一个安全的PPUF应该使任何模型的预测准确率无限接近50%随机猜测。基于侧信道的攻击虽然PPUF本身抗侧信道但其集成系统可能泄露信息。需要测试在PPUF运行期间通过功耗分析、电磁分析等手段能否推断出内部状态或关键数据。4.2 硬件实现与稳定性挑战环境敏感性模拟/混合信号PPUFdPPUF, mPPUF, qPPUF的最大敌人是环境变化。温度、供电电压的波动会直接改变晶体管的延迟特性。对于基于匹配的PPUF温度梯度可能导致Alice和Bob芯片上对应门的延迟漂移方向不同破坏匹配性。解决方案包括采用对PVT工艺、电压、温度变化不敏感的电路结构如电流模逻辑设计片上温度和电压传感器并加入动态补偿电路或者在协议层引入容错机制允许响应中有少量比特错误。对于基于时间差的PPUF环境变化可能影响ESG。需要在最坏情况高温、低电压和最好情况低温、高电压下进行仿真确保ESG始终大于安全阈值。老化与寿命对于利用器件老化的mPPUF/qPPUF老化过程的可控性、均匀性和可逆性是工程难题。可控性需要精确的偏置电路和应力施加机制确保能将特定晶体管老化到目标延迟档位而不影响邻近晶体管。均匀性同一芯片上不同位置的晶体管老化速率可能不同。这要求设计时考虑布局对称性并可能需要进行逐个单元的校准。可逆性/稳定性有些老化效应如NBTI在一定条件下是可恢复的。这可能导致匹配好的延迟随时间发生漂移。需要研究更稳定的老化机制或者设计定期刷新重新老化匹配的协议。面积与开销PPUF需要额外的电路仲裁器、老化控制电路、校准电路、冗余门等。在资源受限的物联网设备中这部分开销必须尽可能小。数字PPUF和某些紧凑型dPPUF设计在这方面有优势。4.3 协议层面的安全考量中间人攻击在公钥交换协议中如何防止攻击者篡改Bob发送给Alice的集合S的描述这通常需要结合传统的数字签名或消息认证码MAC来保证传输信息的完整性。PPUF本身不解决所有通信层安全问题它需要被嵌入到一个更完整的密码协议套件中。重放攻击攻击者可能记录下合法的挑战-响应对并在以后重放。协议中必须加入新鲜值Nonce或时间戳。模拟器攻击如果攻击者能够以某种方式例如通过逆向工程和巨额投入制造出一个在功能上完全等效、且速度不比原版PPUF慢太多的模拟电路那么ESG优势将不复存在。因此PPUF的设计必须确保其模拟复杂度在理论上就是极高的例如依赖于NP难或指数复杂度的问题。5. 未来展望与开放性问题PPUF将硬件安全从“设备身份认证”和“密钥存储”的范畴拓展到了“构建非对称密码学原语”和“保障数据流信任”的新高度。回顾其发展从依赖精密测量的早期设计到利用差分信号和器件老化的实用化架构再到回归数字域和探索纳米器件每一步都在试图平衡安全、功耗、成本和稳定性。从我个人的实践角度看PPUF要真正走向大规模应用以下几个方向的突破至关重要首先是标准化与测试基准的建立。目前学术界提出了多种架构和协议但缺乏统一的、公认的评估基准。我们需要一套标准的测试向量、安全等级定义例如多长的ESG对应多少比特的安全强度以及针对不同应用场景物联网、汽车、云计算的PPUF配置规范。这需要学界和工业界紧密合作。其次是设计自动化工具的成熟。今天设计一个PPUF仍然需要安全专家和电路设计专家手工精心调校。未来我们需要能够集成到标准EDA流程中的PPUF IP生成器。用户只需指定安全目标如ESG倍数、面积预算、功耗约束工具就能自动生成相应的PPUF网表、测试向量和配套的协议软件库。同时工具应能自动进行安全属性分析如雪崩效应、相关性分析并给出脆弱性报告。最后是与现有安全生态的融合。PPUF不会取代AES、RSA等传统算法而是与之互补。一个典型的应用模式可能是利用PPUF进行轻量级的设备间双向认证和会话密钥协商发挥其单周期、低功耗的优势然后使用协商出的密钥驱动AES进行后续的高速数据加密。如何设计高效的混合安全协议让PPUF平滑地融入TLS、IEEE 802.1X等现有安全框架是工程落地必须解决的问题。这条路充满挑战从物理效应的建模到协议的形式化证明从芯片设计到系统集成每一步都需要跨领域的深耕。但它的潜力也同样巨大——为万物互联的时代提供一个扎根于硬件深处、高效且可信的安全基石。作为从业者我们既需要仰望星空关注那些基于新器件如自旋电子、忆阻器的下一代PPUF概念更需要脚踏实地在芯片的每一个晶体管、每一段互连线上雕琢出真正可用的安全。