PUF 与 TRNG:从制造失配与物理噪声里提取「身份」和「随机」
更新时间:2026-09-12。本文是「集成电路大类 · 芯片设计」进阶层(intermediate)数字逻辑第八十七篇。安全岛需要密钥和随机数,但把密钥永久烧在 eFUSE/OTP 里可能被开盖探测、软件伪随机又可被预测。芯片还能从两种物理现象获得更底层的信任:制造偏差(PUF,稳定的芯片指纹)和实时物理噪声(TRNG,不可预测的真随机)。
本文要回答的问题
- 同样掩膜造出来的芯片,怎么会有可当「指纹」的差异?
- SRAM PUF、仲裁器 PUF、环形振荡 PUF 各怎么把失配变成 0/1?
- PUF 的响应会随温度电压老化变,为什么还能当密钥?
- TRNG 的随机从哪来,为什么不能只用 LFSR?
- 为什么 TRNG 一定要做在线健康检测和后处理?
一、PUF:把制造随机性变成芯片唯一身份
深亚微米下,每颗芯片的晶体管沟道长度、阈值电压、氧化层都有纳米级随机制造失配,这些偏差对具体某颗芯片在其生命周期内基本固定,跨芯片则不可预测、不可复制。PUF 利用这一点构造一个「挑战→响应」映射:
- 唯一性(uniqueness):同样挑战,不同芯片给不同响应(芯片间差异大);
- 稳定性(reliability):同一芯片在不同温度/电压/时间下,响应尽量可复现;
- 不可克隆/不可预测:对手即使拿到版图也造不出相同响应,开盖探测会破坏失配状态。
与把密钥存进 OTP 不同,PUF 密钥平时不以任何形式存在、需要时才从硅片偏差「现算」出来,攻击面更小。
二、三种经典数字友好结构
- SRAM PUF:未初始化的 SRAM 单元上电时,两个交叉耦合反相器因失配会随机但稳定地倒向 0 或 1(见 SRAM 单元)。整片上电态就是一张指纹。实现简单(复用 SRAM),但上电态容易被普通启动逻辑覆盖,需专门的上电瞬间读出;
- 仲裁器 PUF(arbiter):给一个输入跳变,让它沿两条本应完全对称的延迟路径赛跑,末端用一个仲裁器(锁存器)判断谁先到——失配使先后随机,输出 1bit。布局必须高度对称、对走线偏差敏感;
- 环形振荡 PUF(ring oscillator):在芯片上放多个结构相同的环形振荡器,选其中一对比较频率高低得 1bit;每颗芯片各 RO 频率排序不同。数字化程度高、便于实现,但占面积、对全局环境变化要靠配对比较抵消。
三、稳定化:模糊提取与辅助数据
制造失配随温度、电压、老化会有小翻转(某些 bit 不是 100% 稳定),而密钥要求逐位一致。因此 PUF 不直接输出密钥,而在注册(enrollment)阶段配合模糊提取器(fuzzy extractor):产生一个随机密钥,用纠错码(如 BCH/Repetition,呼应 ECC)算出「辅助数据(helper data)」存到片内非易失存储;以后每次上电,读出带噪声的 PUF 响应,用 helper data 纠错恢复出同一把密钥。Helper data 本身不泄露密钥(可存普通 flash/OTP)。还要做熵压缩(只取足够独立的 bit),防止相邻 bit 相关降低有效熵。
四、TRNG:从持续的物理噪声取实时随机
PUF 是「出厂时随机、之后稳定」;TRNG 要的是每次都不可预测,熵源必须是持续的随机物理过程,常见数字友好方案:
- 振荡采样(jitter)型:让一个慢时钟去采样一个快很多、带热噪声抖动(jitter)的自由振荡时钟,抖动累积使采样点在亚稳/翻转边界附近,输出含随机;或两个等频 RO 赛跑、用其相位抖动产生 bit;
- 亚稳态型:故意让双稳态器件落在 metastable 点再随机收敛到 0/1(见亚稳态,这里反过来利用它);
- 模拟噪声源:热噪声放大、散粒噪声。
它和 LFSR 的区别是本质性的:LFSR/PRNG 是确定性算法,给同样种子输出完全相同,只能做仿真激励、扩频,绝不能当密钥/安全 nonce;TRNG 的输出在物理上不可预测,用于密钥、nonce、挑战随机数。
五、健康检测与后处理
纯熵源的原始输出常有偏置(0/1 不等概率)、短期相关,且可能在攻击(锁频、注入)或故障下退化。合格 TRNG 必含两层:
- 熵调理(conditioning):用密码学提取器(SHA-256、AES-CBC-MAC 等)把有偏但含熵的原始流压缩成近似均匀独立的输出;
- 在线健康检测(health tests):持续做重复计数、自适应比例、熵估计等在线测试(对标 NIST SP 800-90B/ AIS-31),检测到熵不足就报警/拒绝出数;启动时还要跑固定 Known-answer 自测。
在系统里,PUF 常和 TRNG、OTP、安全岛配合:TRNG 产生会话密钥/nonce,PUF 派生并保护根密钥、做芯片防伪和安全启动设备绑定,OTP 存模式位/helper data(呼应信任根)。
与现有篇目的衔接
总结
一句话总结:相同掩膜的芯片在沟道长度、阈值电压上存在纳米级随机制造失配,它对单颗芯片基本稳定、跨芯片不可预测且复制或开盖探测都会破坏,PUF 把这种失配转成「同挑战同芯片响应稳定、不同芯片截然不同」的硬件指纹:SRAM PUF 读未初始化单元上电倒向、仲裁器 PUF 让跳变沿两条对称延迟路径赛跑由锁存器判先后、环形振荡 PUF 比较多个相同 RO 的频率高低;由于温度电压老化会使少数 bit 翻转而密钥要求逐位一致,工程上用模糊提取器在注册阶段生成随机密钥并把纠错用的辅助数据存入 OTP,之后每次上电对带噪 PUF 响应做纠错恢复同一密钥,helper data 不泄露秘密;TRNG 则面向每次都不可预测的需求,从热噪声导致的振荡抖动、亚稳态随机收敛等持续物理过程取熵,与给同种子就输出同序列、只能做激励和扩频的确定性 LFSR 有本质区别,其原始位流有偏置和相关,必须经 SHA/AES 等密码学调理压缩成均匀独立输出,并持续在线做重复计数、比例和熵估计健康检测(对标 NIST SP800-90B),在熵不足或受攻击时拒绝出数;系统中 TRNG 供会话密钥与 nonce、PUF 派生和保护根密钥并做防伪与安全启动绑定、OTP 存模式与辅助数据,三者与安全岛共同构成根信任硬件。