物理不可克隆函数PUF基础

一、概述

1.1 基础概念

PUF(Physical Unclonable Function,物理不可克隆函数)是一种硬件安全技术,利用硬件中固有的物理特性来生成唯一的无法复制的数字指纹。这种技术常用于安全认证密钥生成加密硬件保护

物理特性包括但不限于:微观制造工艺的随机性、电气特性差异、光学特性、磁学特性、机械特性、热学特性、随机噪声特性等等

1.2 应用介绍

近期,中国移动旗下芯昇科技有限公司新推出一款高安全MCU芯片——CM32Sxx系列,通过使用南京帕孚信息科技有限公司SoftPUF开发工具包,在芯片中集成物理不可克隆功能(PUF),利用PUF技术提取出独一无二的“芯片指纹”,实现了芯片唯一身份标识安全密钥生成等关键功能。这些特性赋予CM32Sxx系列芯片防克隆、防篡改、抗物理攻击以及侧信道攻击的能力,可为物联网场景下的终端设备提供高级别的安全保障。

CM32Sxx系列芯片选择使用SoftPUF进行PUF集成,相对于其他方案,它具有明显的优势:无需增加额外硬件,也无需修改原有芯片及设备的硬件设计。此外,SoftPUF可以在芯片的整个生命周期中灵活地进行集成,甚至可以部署到已安装在现网的设备上。因此,SoftPUF的推出使得PUF能够以低成本、灵活地集成到芯片和设备中,轻松获得可靠的信任基础。

二、PUF 技术介绍

2.1 PUF 的分类

根据实现方式,PUF 可分为多种类型:

  • 硅 PUF(silicon PUF):基于半导体芯片工艺差异,例如 SRAM PUF、环振荡器(RO)PUF;
  • 光学 PUF:利用光在材料中的散射特性生成唯一相应。
  • 磁性 PUF:利用材料磁性差异;
  • 纳米材料 PUF:利用纳米结构的随机分布特性;

2.2 PUF 的应用场景

2.2.1 身份认证

PUF可用来生成设备唯一的物理指纹,确保设备的身份真实可信。

  • 实现方法:

通过挑战-响应对(Challenge-Response Pair, CRP)机制实现认证:
1. 设备生成PUF响应,并与预存的参考响应进行比对。
2. 如果匹配,则确认设备身份。
• 优点:
无需存储固定密钥,仅利用设备内部的PUF特性,防止身份伪造。

:::success
挑战-响应对(****Challenge-Response Pair, CRP)工作原理:

  1. 挑战(Challenge):

由认证方生成的随机输入,通常是一个比特串(字符串、数字等)。
2. 响应(Response):
由被认证方(例如设备或芯片)根据PUF特性(物理不可克隆)或算法对挑战的计算或映射输出的结果。
3. 挑战响应对:
在设备制造或初始化时,预先收集并存储一组挑战和其对应的响应,用于后续身份验证。

挑战-响应机制的流程:

  1. 初始化阶段:
  • 在设备连接时,认证中心向设备发送多个挑战$ C_i $;
  • 设备根据 PUF 特性计算或映射出结果,返回多个挑战响应到认证中心;
  • 认证中心通过数据库存储设备的挑战响应到安全服务器中;
  1. 认证阶段:
  • 认证方随机选择一个挑战,发送给设备。
  • 设备利用其内部PUF特性生成响应,并返回给认证方。
  • 认证方将设备返回的响应与数据库中的参考响应进行比对。
  • 如果匹配,则验证通过。

:::

2.2.2 动态密钥生成

PUF可以用于生成动态密钥,而不是存储静态密钥,减少被窃取的风险。

  • 实现方法
  1. PUF通过特定挑战生成密钥材料。
  2. 使用纠错码(如Reed-Solomon码)和熵提取器提高密钥的一致性和随机性。

2.2.3 硬件根信任(Root of Trust)

PUF可作为硬件信任链的基础,用于初始化安全功能和验证系统完整性。

  • 实现方法:
  1. 通过PUF生成唯一密钥,用于签署或验证固件。
  2. 在设备启动时验证硬件和固件的真实性。
  • 优点:

保证设备启动过程未被篡改。

2.2.4 防克隆与伪造

PUF提供了一种自然的防克隆机制,因为制造工艺随机性使得每个PUF响应都唯一。

  • 实现方法:
  1. 将PUF响应嵌入产品中,作为其唯一标识。
  2. 通过远程验证PUF的响应,确认设备真实性。
  • 应用场景:

用于防止IC芯片或其他硬件被仿冒。

2.2.5 硬件加密模块保护

PUF可与硬件加密模块结合,用于保护加密密钥或签名私钥。

  • 实现方法:
  1. 动态生成密钥,并与特定硬件绑定。
  2. 即使设备被物理入侵,攻击者也无法直接读取加密密钥。
  • 优点:

提高硬件加密模块的抗篡改能力。

2.2.6 防止回滚攻击

通过PUF技术,可以记录设备的状态或固件版本,防止攻击者通过恢复旧版本固件来利用已修复的漏洞。

  • 实现方法:
  1. 在PUF生成的密钥基础上,绑定设备的固件版本或状态。
  2. 在系统启动时,通过验证确保固件为最新版本。

2.2.7 可信执行环境(TEE)中的应用

PUF技术可以增强TEE的安全性,确保运行环境无法被外部干扰或篡改。

  • 实现方法:
  1. 在TEE初始化时,利用PUF生成并保护密钥,用于加密和签名操作。
  2. 确保TEE的数据和代码完整性。

2.2.8 物联网(IoT)设备安全

物联网设备通常受限于计算能力和存储空间,PUF技术为其提供了轻量级的安全方案。

  • 实现方法:
  1. 通过PUF生成唯一的设备身份,用于设备注册和认证。
  2. 在数据传输过程中利用PUF生成的密钥加密通信。

2.2.9 防止物理攻击

PUF可以有效防御以下物理攻击:

  • 侧信道攻击(Side-channel Attack):PUF的随机性使其响应难以通过分析电磁泄漏或功耗推测。
  • 硬件逆向工程:PUF特性是制造工艺的结果,难以通过复制或模仿获取相同的响应。

2.2.10 基于PUF的区块链安全

PUF生成的唯一标识可以用于确保区块链节点的真实性,防止伪造和篡改。

  • 实现方法:

将PUF响应作为设备私钥的一部分,保证节点在网络中的唯一性。

2.3 PUF 动态密钥生成

2.3.1 基于挑战-响应对(CRP)的动态密钥生成

  • 原理
    • PUF 接收一个输入(挑战),输出一个响应。
    • 挑战可以是随机生成的,响应由 PUF 的物理特性唯一决定。
  • 步骤
    1. 选择一个随机挑战 $ C $。
    2. 输入挑战 $ C $到 PUF,获得对应的响应 $ R $。
    3. 使用响应 $ R $ 直接作为密钥,或通过后续处理(如哈希函数)生成最终密钥。
  • 特点
    • 每次输入不同的挑战,生成的密钥都不同,动态性强。
    • 挑战可以由通信双方协商或随机选定。

2.3.2 基于 Helper Data 的密钥生成

  • 原理
    • PUF 输出通常会受到噪声影响,因此需要一个辅助数据结构(Helper Data)来稳定输出结果。
    • Helper Data 通过加密方式安全存储,但不会泄露密钥信息。
  • 步骤
    1. 注册阶段
      • 提取 PUF 的稳定输出 $ R_{ref}
        $。
      • 生成辅助数据 $ W $ 来帮助恢复 $ R_{ref}
        $,同时保证 $ W
        $ 不泄露 $ R_{ref}
        $。
      • $ W $ 被安全存储在设备中。
    2. 密钥恢复阶段
      • 输入相同的挑战 $ C $ 到 PUF,得到有噪声的响应 $ R_{new} $
      • 使用辅助数据 $ W $ 对 $ R_{new} $ 进行纠错,恢复原始的 $ R_{ref}
        $。
      • $ R_{ref}
        $ 作为密钥或密钥种子。
  • 特点
    • 提高了 PUF 输出的可靠性。
    • 适用于受环境噪声影响较大的 PUF。

2.3.3 基于模糊提取器(Fuzzy Extractor)的密钥生成

  • 原理
    • 模糊提取器是一种密码学工具,用于从模糊的生物特征或 PUF 输出中生成稳定、随机的密钥。
  • 步骤
    1. 注册阶段
      • PUF 输出 $ R_{ref}
        $ 被分成两个部分:密钥 $ K
        $ 和辅助数据 $ K
        $。
      • $ P
        $ 是公开的,但不泄露 $ K
        $ 的信息。
    2. 密钥恢复阶段
      • 使用新的 PUF 输出 $ R_{new}
        $ 和 $ P $来纠正错误,恢复原始密钥 $ K
        $。
  • 特点
    • 确保密钥的高随机性和稳定性。
    • 对噪声有很强的容忍度。

2.3.4 基于随机数种子的动态密钥生成

  • 原理
    • PUF 输出用于生成随机数种子,后续通过伪随机数生成器(PRNG)扩展为动态密钥。
  • 步骤
    1. 提取 PUF 输出 $ R $。
    2. 使用 $ R $ 作为种子输入到 PRNG。
    3. PRNG 生成所需长度的密钥 $ R $。
  • 特点
    • 通过 PRNG 提供额外的随机性。
    • 动态密钥长度可控。

物理不可克隆函数PUF基础
http://candyb0x.github.io/2024/11/30/物理不可克隆函数PUF基础/
作者
Candy
发布于
2024年11月30日
更新于
2024年12月2日
许可协议