IOs interface memory secutity

Intrinsic ID基于SRAM的PUF可靠性分析

发布时间:2020-04-13 点击数:

郭正伟,Intrinsic ID大中华区资深FAE


1 引言

PUF是目前安全解决方案中较新的一种技术,在最近的十来年里,不断有不同的PUF技术出现。在所有的PUF技术和相关系统中,Intrinsic ID的SRAM PUF是最早推出的PUF商业产品、也是截至目前最为成熟的。其SRAM PUF产品和解决方案,是为了保护设备(尤其是物联网设备)、数据和服务的安全而生,并且在安全性、灵活性以及成本等不同性能指标上胜过传统的基于非易失性存储器(如flash、EEPROM、e-Fuse、OTP等)的方案。

设备唯一的密钥是由芯片制造过程中的熵生成的,这是其Intrinsic ID的SRAM PUF 的重要优势,因此,无需在芯片上通过注入或编程的方式将外部的敏感密钥写入进去。 此外,当设备断电时,密钥在设备上是不可见的。

Intrinsic ID的SRAM PUF的另一个重要的优势是可靠性,这一特点不是不言自明的,而且经常被误解。 PUF 系统的可靠性相当复杂,因为它取决于 PUF 的实现、PUF 行为和 PUF 后处理或密钥提取。 在本文中,我们探讨 Intrinsic ID 的SRAM PUF 系统的可靠性及其所有方面,并表明它是加密密钥非常可靠的存储介质,即使在极端条件下、在芯片的整个生命周期内也是如此。


2. 总述

可靠、安全的PUF系统的基础是PUF本身的概率行为。对于基于SRAM的PUF,这是由SRAM单元的上电初始值决定的。原理上,每个SRAM单元格具有分别表示1或0的两个稳定状态。当一个单元通电时,最终的上电状态是不可预测的,但事实证明,单元中的晶体管之间的随机亚微观差异使每个单元都倾向于以0或1出现。对于一块SRAM单元来说,这会产生随机阵列,如硅指纹,这是每个芯片唯一的、不可克隆的。此阵列可用于生成基于硬件的、设备唯一的密钥。

但是,在 SRAM每次上电后,一些其中晶体管的驱动能力很平衡的单元,可能其初始值是0还是1是不固定的。 这部分单元的数量除以阵列中总单元的数量定义为 SRAM PUF 噪声。 单元翻转主要受局部温差、局部电源电压变化和老化的影响。 因此,进行广泛的可靠性研究以了解导致 SRAM PUF 噪声的影响非常重要。 

下图图1概述了有助于Intrinsic ID基于SRAM的PUF系统可靠性的不同因素。

1586754041681729.png

图1. 有助于 基于SRAM的PUF 系统的可靠性的因素

在接下来的章节中, 将分别从通过抗老化措施降低噪声(第三章)、密钥提取时纠错(第四章)、密钥错误率(第五章)来展示Intrinsic ID的基于SRAM的PUF的可靠性。


3. 基于SRAM的PUF的比特错误率

3.1 基于SRAM的PUF的工作原理

基于 SRAM 的 PUF 评估的是标准的 6T(6 个晶体管) SRAM 阵列的上电模式。阵列中的每个 SRAM 单元由两个理论和设计上匹配的 CMOS 反向器组成,它们是交叉耦合的(参见图 2)。但是在芯片制造时,由于在物理上无法控制的CMOS 工艺引入深亚微米变化,使每个晶体管具有略带随机的电气特性。 SRAM 单元的上电状态主要取决于 PMOS 晶体管 P1 和 P2 的阈值电压 (Vth) 之间的差异。 例如,考虑随机变化导致|Vth,P1|小于|Vth,P2|。 因此,在通电(Vdd 上升)阶段 P1 将在 P2 之前开始导通,导致 A 在逻辑上处于高位,并阻止 P2 打开。 因此,单元的上电状态为 A=1。Vth,P1和Vth,P2之间的不匹配越大,单元的上电优先权越强,因此通电后是另一个状态的概率越小。

1586754171362083.png

图2. 标准6T SRAM单元主体结构

因此,阈值电压之间差异很大的 SRAM 单元将保持稳定。Vth,P1≈Vth,P2的单元有较高的概率在每次上电时它们的输出值也相对前一次上电的输出值发生改变,因此,在SRAM的PUF响应中会导致相应SARM单元比特翻转或噪声(这也是本文中对“噪声”的定义)。 由于阈值电压对温度、供电电压、老化等因素敏感,SRAM PUF的噪声也会对这些不断变化的条件敏感。 这将在下一章中说明。

图 3a 显示了在室温下进行的一个实验的结果,其中对超过 5000 万个采用同样实现方式的 SRAM 单元进行了 60 次上电初始值评估。对于每个单元,计算其错误次数,即与参考的上电初始响应值不同的响应次数。结果表明,近80%的SRAM PUF单元是稳定的,在60次评估中,它们从未改变其上电初始值。另外的20%中,绝大部分(超过19%)其上电初始值极少翻转。只有0.2%的单元大约有一半次数是与原始测量值不同,大约0.06%的单元总是与60次评估中的原始测量不同。因此,如图 3b 所示,绝大多数PUF 响应中的错误是由少数经常不同的单元引起的。在不同的设计人员、从350nm到14nm的各种工艺节点以及不同的工作条件下,基于SRAM的PUF的表现均是一致的。

参考文献一提供了一个概率模型,上述实验结果是非常符合的,基于此概率模型,可以对大量设备进行推断和预测,而不需要测量10亿个甚至更多的设备,来观察和分析各种误差纠正措施对密钥重构可靠性的影响。

1586754237589885.png

图3. 对5000万个SRAM单元进行60次上电初始值评估


3.2 硅老化的影响

随着时间的推移,使用中的芯片会虽缓慢但是不可避免地发生改变,即老化。最终,这种随时间推移的物理变化会影响电路的运行,通常以功能逐步退化的方式,最终甚至导致电路故障。图4a所示导致 SRAM 故障、错误的主要退化效应:负偏置温度不稳定性 (NBTI)、热载流子注入 (HCI)、电迁移、时间依赖介质击穿 (TDDB)。HCI主要影响N沟道MOSFET,并在电路运行时恶化。因此,它对 SRAM 上电值的影响较小。TDDB 将使 SRAM 单元处于固定状态,这对 PUF 来说没有问题,因为该单元是完全稳定的。在接下来的章节中,我们将展示,在有必要时纠错算法将校正高达 25% 的 SRAM PUF 比特的值。

1586754279561637.png

图4a. 导致SRAM失效的主要退化效应


1586754317699987.png

图4b. 使用了抗老化功能后,相比原始SRAM,故障率大幅降低

对现代芯片有显著影响、同时也对SRAM PUF的噪声行为有很大效应是NBTI。它导致阈值电压的逐渐增加,这在开关的PMOS晶体管中最为明显。SRAM单元的 NBTI 老化效果取决于存储在单元中的值。当单元存储零时 (A=0),P1 已关闭,P2 已打开。因此,Vth,P2由于 NBTI,随着时间的推移,将会增加,而 Vth,P1不受影响。当于,则相反。结合上电行为,这种情况下,Vth最小的PMOS往往在上电时打开,随后会由于NBTI而逐渐增加Vth。因此,SRAM单元的自然趋势是老化,所以|Vth,P1 − Vth,P2|随着时间的推移会变小。从SRAM PUF角度说,这是一个缺点,因为|Vth,P1 − Vth,P2|的减小意味着PUF 响应的比特错误概率更高。换句话说,当不采取对策时,SRAM PUF 由于 NBTI 而随着时间的推移变得不那么可靠。


3.3 SRAM抗老化

通过上面对NBTI的解释,大家应该已经对它有充分的了解了,那么,有几种方法可以抵消老化趋势。一个显而易见的解决方案是让每个单元存储对其上电值初始值取反之后的值,因为这会增加|Vth,P1 − Vth,P2|,因此,随着时间的推移,相应的 SRAM PUF 响应变得更加可靠。

1586754442448759.png

图5. 老化过程中无/有抗老化技术的噪声对比

在过去 10 年中,抗老化措施的发展使得Intrinsic ID的SRAM PUF 随着时间的推移变得更加可靠,而不会降低其他 PUF 质量指标,比如安全性和效率。抗老化的效果如图 5(右图),在 进行20 天的老化后将其应用于 SRAM。PUF 噪声几乎立即降至 10% 以下,即使在进行超过100 天的老化之后,再应用该抗老化措施,仍可以使噪声保持下降趋势。需要注意的是,如果从一开始就应用这种抗老化措施,甚至可以降低其原始的SRAM PUF 的噪声。

Intrinsic ID的SRAM PUF 抗老化解决方案的一个主要实际优势是,它们不需要任何电路级别的修改或部署前的处理。因此,它们可用于常规开发流程中的标准 SRAM 设计实现。此外,必须指出,由于抗老化,SRAM PUF 的损耗失效率将远低于典型使用下 SRAM 的故障率(原始 SRAM),因此SRAM PUF 的使用寿命比原始 SRAM 的使用寿命长得多(见图4b)。


3.4 经验数据

当 PUF 响应是可重复的、并且随时间推移和在操作规范下具有有限的噪声时,PUF 是可靠的。从上一节可以清楚地看出,环境温度和电源电压以及芯片的使用寿命等工作条件会影响SRAM的上电初始值,从而影响PUF的可靠性。在未采取抗老化措施的情况下,SRAM PUF在经过多年的硅老化后,可靠性最差的情况预计将出现在设备寿命结束时的某个时间点。但是,由于采用了SRAM PUF 的抗老化解决方案,如上一节所述,可靠性最差的情况现在可以是在设备生命周期开始时,即在制造后就立即进行研究。随着时间的推移,PUF的可靠性将保持不变,甚至有所提高,这意味着对基于 PUF 后续处理程序的可靠性要求可以大大降低,从而在密钥提取时提高效率(例如,纠错码不用太复杂,使用更少的 SRAM)。

SRAM 上电表现在如下范围的各种环境和制程、工艺中经评估都是合格的:

  • 半导体工艺节点范围从 350nm 到 7nm

  • 针对低功耗、高速和高密度的需求优化过的工艺

  • 从 -55°C 到 150°C 的 PUF 读数的温度范围

  • 电压电源变化 +/- 20%

  • 湿度高至 80%

  • EMC 测试 3V/m (EN55020 0.15-150 MHz 和 IEC 61000-4-3 80-1000MHz)


3.5 基于SRAM的PUF在室温下的噪声分析

自 2003 年以来,Intrinsic ID、其合作伙伴和客户进行了数十亿次 基于SRAM的PUF 的测量。对于在全球不同芯片制造工厂(Global Foundries、英特尔、三星、UMC、Cypress、TSMC、IBM、瑞萨等)生产的芯片和来自不同设计方(TSMC、ARM、Dolphin、Synopsys等)的SRAM,在各种条件下都取了上电值,技术节点从 350 nm 到 7nm 不等。图 6 显示了所有这些不同芯片在室温下测量的最大 SRAM PUF 噪声的分布。平均噪声约为6%,在室温下测得的最大噪声从未超过 11%。芯片的类型和技术节点对 SRAM PUF 的噪声都没有显著影响。

1586754531165269.png

图6. 在室温下基于SRAM的PUF测量到的噪声分布

1586754548287245.png

图7. 噪声对温度变化的敏感性


3.6 温度变化的影响

图7 显示了为国防应用进行的典型温度变化测量的结果,其温度范围从 -55°C到 +125°C。在本实验中,将TSMC 65nm工艺节点上的SRAM放置在一个人工气候室中,并在指定的温度下稳定下来。SRAM PUF 响应与其在 25°C 时的参考值进行了比较,以计算噪声。正如预期的那样,SRAM PUF 噪声在极端温度下(-55°C和 +125°C)较高,但仍低于 11%。 


3.7 加速老化测试

典型的 SRAM 老化测试设置如下:

  • 多个 芯片的 SRAM保持在 +125°C 的环境温度下工作。SRAM分为两个区域:1) 未应用老化措施的区域; 2) 应用了Intrinsic ID 抗老化措施的区域。

  • 所有设备的核心电压都比额定工作电压高 20%。

  • 每隔 6 小时,存储器将重启一次,并在 +125 °C 的相同高温下进行测量。

经过持续2000小时的持续试验后发现,在大多数情况中,SRAM PUF 噪声将低于 10%,在最坏的情况下可能会上升到 18%。此外,这种噪声来自少数经常翻转的SRAM单元。因此,从可靠性的角度来看,SRAM PUF 非常适合作为加密密钥的安全存储介质。第四章将显示,即使噪声水平高达 25%,也可以以非常高的可靠性从PUF中提取出一个安全密钥。


4. 密钥提取

4.1 从基于SRAM的PUF提取密钥

为了将有噪声的SRAM PUF的响应转换为可靠而且安全的设备唯一的密钥,使用了模糊提取器或辅助数据算法。这种算法实现两个处理步骤:i)纠错和 ii) 随机提取。在下一节中,我们将集中讨论纠错组件,并说明 SRAM PUF是用于加密密钥的非常可靠的存储介质。


4.2 纠错示例

为了说明纠错的概念,以一个非常小的、由一个字节组成的 SRAM PUF为例。SRAM PUF 响应可以看作是一个八位组成的位串。为了简单起见,我们从这个八位的SRAM PUF 中提取一个机密位 (1 或 0),该位对应于 1/8 的码率。本示例中使用的纠错码是长度为 8 的重复代码。这意味着机密位'0'将被编码为码字C0=(00000000)和秘密位'1'将被编码为码字C1=(11111111)。

1586754706751432.png

图 8. 基于SRAM的PUF 的注册阶段(上半部分)和密钥重构阶段(下半部分)


4.3 注册阶段 ---- 芯片一个生命周期仅进行一次

Intrinsic ID的SRAM PUF ,其生命周期从注册阶段开始。这是一个一次性的过程,在此过程中执行以下步骤,如图 9 的上半部分所示。首先,获取一个 SRAM PUF 响应,例如R=(11000011)。其次,在纠错码空间中随机选择一个代码字,并将 SRAM PUF 响应映射到这个码字上。在这个简单的示例中,我们只有两个码字:全一字符串和全零字符串:C1=(11111111)和 C0=(00000000)。如果C1被选中,基于SRAM的PUF 响应R将映射为C1 。这是通过计算码字C1和 R之间的差异(位异或) 来实现的:

C1⊕R=(00111100)

生成的比特字符串(00111100)称为辅助数据。这是非敏感数据,因此可以存储在任何能够被访问的地方,例如芯片的内部存储器、外部存储器、服务器或云端等,以便在需要时使用。完成辅助数据的存储后,注册阶段就完成了。

4.4 密钥重构 ---- 在密钥应用现场

稍后,在必须重建密钥的应用现场,测量新的"噪声"响应R'。假设新的SRAM PUF 响应为R'=(01000111) 。请注意,R'与R有两个比特位的值(位置 1 和位置 6)不同。要重新得到原始响应R,我们将辅助数据添加到R',并获取:

(00111100)⊕R'=(01111011)

此结果接近于码字C1。因此,这个码字被解码为C1,我们可以计算原始响应 R 如下:

R=C1⊕(辅助数据)=(11000011)

此段代码的译码算法很简单。当一个长度为8的码字得到1时,它会检查它的大部分是1还是大部分为0。当0比1多时,就会被解码为C0,否则C1.请注意,此代码最多可以更正三个错误。

1586755254709268.png

图9. 构建球状高维空间来表示基于SRAM的PUF的响应集合 


4.5 纠错 ---- 大致原理

从本质上讲,SRAM的PUF 响应是一个很长的随机比特串。因此,它可以被认为是高维空间中的随机二进制向量(参见图 9)。由于一个具体的基于SRAM的PUF 的所有响应都是互相接近的,所以我们可以将可能的SRAM的PUF 响应集集合看作是位于此高维空间中的一个球体(有限半径)内。

但是,由于我们在此空间中没有任何结构,因此我们没有办法将新的测量值映射到以前的或参考测量值上。为了处理这一点,我们通过在空间中定义一个网格来提供这个空间的结构,其顶点是构造良好的纠错代码的码字。此代码的码字是与 SRAM PUF 响应长度相同的位串,位于纠错球体的中心。所有接近码字(位于纠错球体内)的比特串都可以通过解码算法映射到纠错球体的中心或码字(也就是已编码的密钥)。纠错码的选择可以看作是SRAM PUF 工作的所有阶段中都要使用的系统参数。

纠错过程与上面的示例类似,如图 9所示。在注册期间,将创建辅助数据,将SRAM PUF 响应R映射到随机选择的码字Ci 上。稍后,当在实际应用需求中使用时,辅助数据将新的PUF 响应映射到相同码字的纠错范围。通过运行解码算法,消除噪声并恢复码字。在辅助数据的帮助下,在注册期间获取的SRAM PUF响应R也被恢复。

请注意,在实践中,纠错算法要比单个重复代码复杂得多,并且能够处理非常高的噪声。

1586755355806533.png

图10.在模拟数据是测试密钥重构算法在不同噪声水平下的失败率


5. 密钥可靠性

当密钥提取器无法纠正在单次计算中同时出现的所有 PUF 响应位差异时,密钥生成将失败。密钥错误率是发生这种情况的概率。

通过将 SRAM PUF 抗老化 (第三章) 与纠错算法相结合,如上一章所述,Intrinsic ID的SRAM PUF产品的设计和实现旨在平均重构错误率小于10−12的密钥。即使在极端情况下,例如极端温度情况下,即使噪音水平上升到25%,重构失败率仍然低于10−9

这种实际上不会出现的极端情况已经通过在模拟的SRAM PUF 数据(1K字节)上运行 100 亿次256 位的密钥重构(其中引入了 25% 的噪声),进行了测试。结果表明,只有4次密钥重构操作失败,因此错误率为4 x 10-10。请注意,在实际情况下,SRAM PUF噪声水平通常低于 10%,因此密钥重构非常可靠,错误率小于10-12

另一种检查密钥重构是否失败的方法是在SRAM的PUF 响应中随机翻转越来越多的SRAM 位,并查看密钥提取器能够重新创建原始密钥的情况。图 10 显示了对模拟数据的测试结果。对于从 1% 到 35%的每个噪声级别,模拟 10万次基于SRAM的PUF 响应。对于每个模拟,密钥都进行重构并与参考密钥(从最初的参考的基于SRAM的PUF 响应中提取出来)进行比较。结果表明,在基于SRAM的PUF的噪声小于或等于28%的情况下,密钥重构从未失败。请注意,在典型情况下,SRAM PUF 的噪声水平在 2%-12% 范围内。

1586755424546984.png

图11. 结合抗老化、纠错措施后基于SRAM的PUF的可靠性

图11说明了SRAM PUF作为密钥存储介质的可靠性。Intrinsic ID 密钥提取器IP 通常一并提供BIST功能。这个BIST功能包括逻辑 BIST 来检查电路中的逻辑门是否正常工作,也包括PUF功能的BIST 来检查 SRAM PUF 中的比特操作。这些 BIST 通常用于在早期阶段检测错误。

需要特别提到的是,对于本SRAM PUF,其注册操作可以灵活的选择是在什么阶段去进行。即可以在芯片制造阶段制造出来之后立即进行,也可以在用户的应用现场稍后进行。Intrinsic ID的PUF IP既可以是纯硬件电路实现,也可以纯软件实现,还可以软件、硬件混合实现。

在每小时为设备重新上电并重构密钥的实验中,基于SRAM的PUF的密钥的错误率仍低于每10亿小时1次错误 (1 FIT,即每10亿小时1次错误)。 在大多数更现实的情况下,SRAM PUF 的噪音水平低于 10%,并且设备每天仅重启几次(例如金融交易)或在其整个生命周期内仅重启几次(例如传感器),密钥错误率将低于 1 FIT。


6. 结论

综上所述,Intrinsic ID的基于SRAM的PUF证明是一种可靠的产生设备密钥、保证设备安全性的技术,可在非常长时间和多种情况下产生加密密钥。抗老化和复杂的纠错技术相结合,使Intrinsic ID的SRAM PUF 技术成为芯片中最可靠的组件,即使在最糟糕的情况下也能进行可靠的密钥重构,并确保 25 年的寿命。这种可靠性使Intrinsic ID的SRAM PUF适用于具有非常严格要求的各种场景,例如汽车和国防应用。集成了Intrinsic ID的SRAM PUF  IP的多种产品已获得 EMVCo VISA和 CC EAL6+ 认证。


赞助企业