蝴蝶PUF
保护硬件设计是许多 FPGA IP 供应商最重要的要求。 用于 SRAM FPGA 的 IP 更容易受到攻击,因为编程比特流必须存储在非易失性存储器 (NVM) 在芯片外部。 为此,FPGA厂商提出了各种基于比特流加密技术的解决方案。 然而,这种基于 NVM/熔断器的传统加密解决方案容易受到侵入性攻击,因为在此类攻击期间系统中存在秘密(以密钥的形式)。
A Physical Unclonable Function (or PUF), with a unique circuit based on the intrinsic physical characteristics of integrated circuits, provides significantly higher security assurance.物理不可克隆功能(PUF)具有基于集成电路固有物理特性的独特电路,可提供更高的安全性保证。 Keys derived from a PUF are volatile and derived only when required.从PUF派生的密钥是易失性的,仅在需要时派生。 They don't need to be stored in NVM and when a chip is powered off no keys can be found by an attacker.它们不需要存储在NVM中,并且当芯片断电时,攻击者无法找到任何密钥。
FPGA上的第一个实用PUF 是在2007年提出的[1] SRAM PUF,它使用未初始化的SRAM的启动值。 大多数FPGA不支持未初始化的SRAM存储器。 在大多数FPGA中,SRAM存储器在启动时会被强制设置为已知状态。 迄今为止最成功的替代方法是 蝴蝶PUF,在2008年提出[2],可以在大量FPGA上实例化,并且不需要未初始化的SRAM就可以得到强大的加密密钥。
什么是蝴蝶PUF?
Butterfly PUF的概念基于在启动阶段在FPGA矩阵内创建类似于SRAM单元的结构的想法。 蝴蝶PUF单元是交叉耦合的双稳态电路*,在稳定到可能的两个稳定状态之一之前,它可以进入不稳定状态。 该结构由两个锁存器组成,其输出交叉耦合,如右图所示。
为了开始PUF操作,将激励信号设置为高。 这会使Butterfly PUF电路进入不稳定的工作点(因为两个锁存器在其输入和输出上都有相反的信号)。 在几个时钟周期后,激励信号被设置为低电平。 这将启动PUF电路的过程,以在输出信号上获得两个可能的稳定状态之一(0或1)。 稳定状态取决于使用FPGA矩阵上的对称路径设计的连接线的延迟的细微差异。 因此,这些微小的变化仅基于集成电路的固有特性,并且在FPGA上的每个器件和位置上都不同。 但是,对于相同的FPGA,锁存器位置和路由资源,稳定状态往往会随着时间推移以及在较大的温度范围内保持相同。 攻击者无法从位流中获得这些稳定状态,因为它不包含这些值。 而且,攻击无法从FPGA本身获得稳定状态,因为这些属性是由基本元素的微小工艺变化和蝶形PUF结构所使用的布线决定的。
因此,蝶形电路是FPGA矩阵内PUF电路的一种实现,其性能仅取决于集成电路的固有物理特性,可用于识别。
Intrinsic ID已经开发出了针对FPGA的产品,这些产品专门设计用于满足国防承包商和政府机构的安全性和可靠性要求。 有关更多信息,请联系MAGsales [@] Intrinsic-ID.com。
什么是交叉耦合双稳态电路?
交叉耦合电路是电子电路中所有类型的存储元件(例如锁存器,触发器和SRAM存储器)中使用的基本构建块。 它的构造使其提供一个正反馈循环,以在循环中存储所需的位值。 请注意,在右图中,此类交叉耦合电路具有两个不同的稳定工作点(用于存储位值)和一个不稳定工作点,如图所示。 由于用于构建电路的元件(蝶形PUF情况下为闭锁)存在细微差异,因此电路会自动稳定在两个稳定状态之一中。 我们利用这一事实构建一个PUF,其中电路最初处于不稳定的工作点,然后离开以达到两个稳定的工作点之一。 电路很有可能进入首选的稳定状态。 此行为是由于导线延迟和交叉耦合的元件(此处为锁存器)的电压传输特性差异很小。 重要的是要注意,这些电路应尽可能对称地构造,并且所有变化都归因于电路中的随机性,这超出了设计人员的控制范围。
[1] J. Guajardo,SS 库马尔,G.-J。 Schrijen 和 P. Tuyls。 FPGA 内在 的PUF 及其对知识产权保护的用途。 在 P. Paillier 和 I. Verbauwhede,编辑, 加密硬件和嵌入式系统— CHES 2007,第4727卷,共 临港国家计算机系统,第63-80页。 施普林格,10年13月2007日至XNUMX日。