硬件混淆与VLSI安全综述

AI助手已提取文章相关产品:

第2章 面向硬件混淆的VLSI测试与硬件安全背景

2.1 引言

硬件混淆是一种技术,用于向恶意的内部和外部攻击者隐藏设计。混淆技术将原始设计进行转换,使得混淆后的版本在功能上与原始设计等效,但不会泄露设计细节,并且更难被逆向工程[1]。如第1章所述,分布式和外包的设计、集成、制造、封装和分销渠道的商业模式带来了诸如知识产权(IP)盗版、从GDSII逆向工程提取网表、集成电路(IC)克隆和伪造等挑战。

纳米级集成电路的特征尺寸以及每片晶圆上的门密度随着光刻技术的进步而得以实现。然而,这也导致制造设施的成本和维护费用高达数十亿美元,使得这种商业模式难以证明其合理性并持续维持。因此,许多主要公司已转变为无晶圆厂模式,转而将设计外包给海外代工厂,以此作为拥有和运营自有晶圆厂的一种成本效益更高的替代方案。不幸的是,设计流程向全球各地公司的横向扩散降低了设计过程的可信度,并增加了安全风险 [2, 3]。

本章概述了集成电路的传统设计流程,并评估了各流程环节中可能泄露的信息量,这些信息可能被用于辅助逆向工程。我们调研了为增强传统验证和测试机制的安全特性而提出的设计方案,以使设计能够抵御攻击。本章还研究了知识产权保护方案旨在防止片上系统(SoC)基于IP复用的设计流程中的非法修改和盗版。这一问题具有挑战性,因为IP可以以软核(RTL级别)、固核(网表级别)或硬核(GDSII级别)的形式分发,且通常在系统设计级别、制造工厂以及分销链中是透明的,因此容易受到安全与隐私攻击。硬件混淆的目标是使攻击者难以在设计过程中的任何抽象层次上逆向工程其功能。

威胁模型:

集成电路盗版、克隆、伪造和破坏在当前的知识产权复用和离岸制造商商业模式下已成为主要的安全问题。以下是攻击者可能利用的部分攻击向量:
(1) 逆向工程:GDSII到网表的逆向工程使攻击者能够窃取并复制知识产权。
(2) 克隆:系统设计流程中的攻击者可以窃取知识产权或集成电路,并制造完全相同的克隆芯片,或稍作修改后声称所有权并制造非法复制芯片。
(3) 超额制造:制造超出客户要求数量的集成电路被称为超额制造。超额制造的集成电路可在黑市上销售。若无专门的计量技术,防止超额制造是一个挑战。
(4) 假冒芯片:假冒芯片旨在欺骗性地表示为正品元器件,可通过回收芯片或克隆[4]制造而成。
(5) 特洛伊木马插入检测:在对设计进行逆向工程后,攻击者可在一组假冒克隆芯片中插入硬件特洛伊木马。硬件特洛伊木马是隐藏的恶意电路,可设计为通过后门在芯片现场运行期间被激活。激活可能涉及泄露敏感信息,或导致芯片和系统灾难性地失效。

本章内容安排如下:第2.2节介绍超大规模集成电路验证与测试概念,并讨论相关漏洞、攻击方式及对抗措施。第2.3节描述可集成到设计流程中的混淆技术,以增强设计对逆向工程的弹性,并总结这些技术的评估指标。第2.4节回顾非易失性存储器及新兴技术,并讨论在非易失性存储器( NVMs)上进行密钥管理的相关漏洞。第2.5节介绍基于硬件的密码学原语、物理不可克隆函数(PUFs)和真随机数发生器(TRNG),以及它们在硬件混淆技术中的应用,以提高对逆向工程的防御能力。

2.2 超大规模集成电路验证和VLSI测试概念

超大规模集成电路(VLSI)验证是一种在制造前用于验证设计的硅前流程。通过使用随机测试向量和形式化验证技术来验证设计行为以及生成的测试向量的覆盖率。

可满足性

SAT求解器用于硅前的形式验证以发现设计问题。多种SAT求解器算法已被集成到电子设计自动化(EDA)工具中。

相比之下,VLSI测试在硅后阶段应用,以确保出货的集成电路产品质量和可靠性,并及早发现影响良率的设计问题。现代集成电路制造中日益增加的复杂性和更小的几何尺寸引入了新的失效机制,这些机制会降低产品良率和质量。VLSI测试对于筛选有缺陷的产品至关重要,其最终目标是实现零缺陷。VLSI测试还为加速产品良率爬坡提供重要反馈,并直接影响盈利能力。

2.2.1 可满足性(SAT)问题

可满足性定义为:对于一组变量的逻辑值,布尔表达式求值为真的条件。组合逻辑的输出可以表示为布尔表达式,由析取子句(或)和变量的合取(与)构成,形式为合取范式(CNF)。

以下是一个合取范式(CNF)形式的函数示例:
F=(a v b v c)∧(a′ v c v d)∧(b′ v d′) (2.1)
其中a、b、c和d是变量,其值可以为‘1’或‘0’。

SAT的判定问题,即寻找使函数为真的满足性赋值,是一个非确定性多项式(NP)问题。例如,对于n个变量, 2n输入变量的布尔组合将被检查。

每个SAT公式都有一个多项式时间验证器,它接收一个输入字符串,对所有变量进行0或1的赋值,并输出对给定输入的真或假的评估。

SAT问题在最坏情况下具有指数级复杂度,但由于该算法在计算机辅助设计(CAD)中的重要性,研究人员已开发出多种高效的启发式SAT求解器,能够提供近最优解。这些SAT求解器在电子设计自动化(EDA)中具有广泛的应用,包括验证以及综合。SAT求解器算法主要分为冲突驱动子句学习和随机局部搜索算法。这些算法被开发用于自动求解包含大量变量和子句的实例/组合。近年来高效SAT求解器的研究工作包括GRASP [5],、Satz [6],和 Chaff [7]。这些算法将SAT求解器应用于非形式化或半形式化验证方法中。

恶意攻击者也可以使用SAT求解器,通过应用基于SAT的算法来推导出密钥[8],从而绕过基于逻辑加密的硬件混淆。该技术利用了迭代应用输入模式的方法在一组选定的输入上生成模式并识别区分性输入,使函数变为不可满足。这种测试密钥组合的方法已被证明会削弱硬件混淆的安全性,因此研究重点已转向设计对抗措施,以使SAT算法表现出最坏情况(指数级)的行为。

2.2.2 电路的等价性

等效性检查是功能验证的一种方法。在设计流程的不同阶段进行等效性检查,以验证组合逻辑和时序逻辑的功能等效性。等效性检查针对结构不同的两个设计描述,验证其行为是否功能上等效。通过形式化方法和仿真技术对这两个设计进行比较。在参考设计和已实现的设计中,将二元决策图(BDD)和基于SAT等形式化方法应用于比较点,并通过仿真验证功能等效性。传统的等效性检查通过分析比较点来利用逻辑锥。逻辑锥是数字电路的通用属性,由汇聚到一个公共输出的重汇聚段组成。锥的输入和输出连接到主输入、寄存器或主输出,这些也被称为比较点。

在所有比较点都经过验证后,对已实现的设计进行验证,以证明或反驳其功能等效性。一些商业工具,如Cadence Conformal 等效性检查器和 Synopsys Formality,属于等效性检查工具。这些工具使用由Genus( Cadence)或DesignCompiler(Synopsys)综合生成的网表,结合数学模型与RTL设计描述进行比较。

需要进一步研究在实施混淆技术的设计流程中进行等效性检查的问题。

示意图0

2.2.3 测试类型:功能测试和结构测试

2.2.3.1 功能测试

功能测试用于验证芯片是否执行正确的操作,即芯片能否运行Windows操作系统或执行矩阵求逆软件操作。自动测试模式生成(ATPG)可以单独或同时用于生成功能测试向量。例如,可生成测试向量以测试“关键路径” (即芯片中最长的路径),并在最坏情况功耗条件下测试芯片。因此,功能测试的作用还包括时序和功耗验证。

2.2.3.2 结构测试

结构测试是指基于上述故障模型的技术。其目标是检查芯片结构特性的完整性,即各个导线和逻辑门功能的完整性。SSF测试用于验证电路节点未短接到VDD或VSS,而转换和路径延迟测试则验证逻辑门和选定路径能够使用功能(全速)时钟频率将转换传播到捕获点(触发器和输出端口)。如前所述,采用自动测试模式生成(ATPG)来生成测试向量,并使用自动测试设备 (ATE)施加这些向量。需要注意的是,功能测试和结构测试都受到测试经济性的影响,即需要投入大量努力以确定满足覆盖率要求的最小测试向量集。这是因为制造测试需应用于每一个芯片,因此为了保证经济性,每个芯片的测试时间必须尽可能小。

2.2.4 故障建模

在集成电路的制造过程中可能会出现物理缺陷,例如互连缺陷或封装缺陷、栅氧短路、金属走线桥接、开路通孔以及电源或地短路。故障建模是一种用于抽象和简化所有可能引起芯片故障的缺陷机制。最常见的故障模型包括单 stuck‐at 故障(SSF)以及转换和路径延迟故障模型。SSF模型还被提出作为一种增强硬件混淆技术的一种机制,如下文所述。SSF模型将每个缺陷表示为单个门级引脚或网络短接到VDD或VSS。术语“stuck‐at‐1(SA1)”和 “stuck‐at‐0(SA0)”用于表示这些状态。SSF模型假设每个芯片中仅存在一个故障(或无故障)。 示意图1

通过确定主输入(PIs)的输入赋值来检测组合逻辑SSF,这些输入赋值会在目标门输入端产生适当的状态,同时确保目标门输出在一个或多个主输出(POs)上可观测。固定故障测试不仅确定目标节点是SA0还是SA1,还会隐式地测试路径上所有门输入的故障情况。

SSF模型可验证组合逻辑的结构完整性及真值表描述,但无法验证芯片是否满足其时序规格。需要单独的故障模型和测试向量序列来验证时序。转换和延迟故障模型针对的是与时序相关的缺陷,这些缺陷导致逻辑转换在门和芯片路径中传播的时间比预期更长,即导致芯片违反时序约束的情况。 示意图2 影响门驱动强度、晶体管掺杂水平、金属电容负载、开路通孔和/或电阻性栅氧短路的缺陷都可能在芯片中引入转换和延迟故障。

延迟故障可以表示为单门故障、互连故障或路径延迟故障。单门延迟故障用于建模影响门强度、晶体管掺杂等的缺陷,即导致引脚输入值上升缓慢或下降缓慢的任何因素。互连延迟故障用于建模引起线宽变化或由于与其他节点的电阻性短路而导致信号退化的缺陷。路径延迟故障用于建模分布缺陷,即影响整个路径延迟的缺陷。延迟测试是定时的双向量序列(与SSF测试不同),以恒定速率通过时钟施加。此类测试对于确保现代纳米级技术的质量至关重要。

2.2.5 故障覆盖率

测试方法通过故障覆盖率进行评估,其表示如下:
Fault coverage= Total detected faults / Total fault population (2.2)
故障覆盖率是指在给定的故障模型下,被测试模式覆盖的故障所占的比例。

故障覆盖率通常由自动测试模式生成(ATPG)工具计算并报告,因为这些工具会推导出用于测试故障的测试模式。理想情况下,覆盖率应达到100%。然而,测试模式的推导是一个NP完全问题,因此ATPG算法采用启发式方法,而在许多情况下,这些方法无法为所有故障找到相应的测试。尽管存在这一局限性,使用SSF故障模型进行测试模式生成仍能够实现较高的覆盖率,通常可达95%至 99%。需要注意的是,不同的ATPG工具可能以不同的方式报告故障覆盖率。例如,一些工具在应用上述公式之前会从故障集合中剔除不可测的故障,而另一些工具则不会。故障覆盖率还可用于识别难以测试的节点,因此可作为指导可测性设计(DFT)策略的基础。

2.2.6 自动测试模式生成(ATPG)

如上所述,ATPG 是一种计算机辅助设计软件工具,它使用启发式算法为指定的故障列表自动推导出一组测试模式。该故障模型定义了芯片中作为ATPG目标的节点和/或路径。ATPG算法会根据输入的网表和故障模型自动生成一个故障列表。在获得故障列表后,便开始一个漫长且逐步推进的过程,即推导出能够检测这些故障的测试。测试模式所检测到的故障会在故障列表中被标记为已检测,通常还会运行故障仿真,以确定测试模式“意外”检测到的其他故障。商业供应商提供了多种不同的运行时选项,并支持一组固定的故障模型,包括单固定故障以及转换和路径延迟故障模型。如2.3节所述,ATPG和故障模型可被用于硬件混淆算法中以生成强密钥。2.3。 示意图3

2.2.7 测试度量:可控性和可观测性

如上所述,测试模式生成是一个NP完全问题。与许多NP完全问题一样,对于故障列表中的大多数故障,生成测试模式的任务在多项式时间内是可完成的。然而,通常存在一小部分故障会使ATPG算法表现出最坏情况下的(指数级)时间复杂度。针对这一问题,制造测试领域开发了一套新算法,用于在进行ATPG之前预先计算每个故障的度量指标,以反映生成该故障测试模式的难易程度。这些度量指标是称为可控性和可观测性的概率度量。需要注意的是,这些算法同样面对的是NP完全问题,因此也像ATPG算法一样采用启发式方法。与ATPG可能无法为难以测试的节点找到测试模式不同,在任务进入最坏情况时,用于计算可控性和可观测性的启发式方法可能会产生不准确的信息。

计算可控性和可观测性的算法(最初由鲁特曼于1972年提出)可提供关于将内部节点设置为特定逻辑值以及使内部节点在电路输出端口上可观测的难易程度的数值估计。已有多种方法被提出用于计算这些可测性指标,包括SCOAP [9, 10],、CAMELOT [11],、TMEAS [12],、COP [13],和PREDICT [14]。

可测性分析涉及电路拓扑分析。例如,SCOAP通过遍历设计描述,并为节点分配可控性和可观测性权重,这些节点使用以下六个标签进行标识:
1. 组合0‐可控性 CC0(sig),2. 组合1‐可控性 CC1(sig),3. 组合可观测性 CO(sig),4. 时序0‐可控性 SC0(sig), 5. 时序1‐可控性 SC1(sig),以及 6. 时序可观测性 SO(sig)。

主输入(PI‐sig)在组合和时序的‘0’与‘1’可控性中均被设置为1,即 CC0(PI‐sig)= 1,CC1(PI‐sig)= 1,SC0(PI‐sig) =1,以及 SC1(PI‐sig) = 1。内部节点的组合0和1可控性被计算为在驱动该节点的门输出上实现 ‘0’或‘1’所需的最少组合节点赋值数。而时序0和1可控性则估计了将内部节点设置为‘0’或‘1’所需指定的最小时序节点数。从主输入到主输出,计算节点权重时将节点的电路深度纳入组合可控性方程中。以下规则用于计算输出端的组合可控性

示意图4

输出可控性=
⎧ ⎪⎪⎨ ⎪⎪⎩
min(输入可控性)+ 1,如果某一输入集设置门输出 sum(输入可控性)+ 1,如果所有输入集设置门输出 min(输入集的可控性),如果输出由多个输入集决定,例如异或门
(2.3)

相比之下,在进行可观测性计算时,所有主输出(PO信号)被设置为0。从主输出到主输入的遍历过程中,内部节点的深度随着其到主输出的距离增加而增加1。例如,门输入的可观测性通过该门的输出可观测性和其输入端的可控性按如下方式计算:
输入可观测性=输出可观测性+所有其他输入引脚的可控性之和(针对不可控值+1) )
(2.4)

示意图5

针对时序门(例如D触发器)进行的SC0和SC1计算,考虑了触发器需要经过多少次时钟触发才能达到特定的输出状态‘0’或‘1’。

用于计算可测试性度量的启发式方法为算法提供了线性运行时间复杂度。该分析有助于设计过程,并可用于指导ATPG算法确定哪些节点难以测试。

可测试性设计(DFT)技术可在设计流程中添加额外的节点,以改善电路节点的整体可控性和可观测性。DFT方法分为临时方法和结构化方法。在临时方法中,根据具体情况将测试结构插入设计中,以针对特定的问题区域。而结构化DFT方法则包括标准化的测试结构,例如扫描(scan)和内建自测试 (BIST)。DFT通常作为设计流程的一个组成部分来实施,以确保满足测试要求。例如,DFT可以提高故障覆盖率并减少测试生成时间。

2.2.8 测试与安全

生产测试的目标是在芯片发往客户或进入供应链之前,检测出制造或封装过程中出现的缺陷。对于安全与可信而言,目标是提供高保障的可信产品。然而,检测安全与可信问题远比提供高质量、无缺陷的芯片困难得多。这是因为制造缺陷具有随机性,因此使用能够实现高故障覆盖率的测试向量几乎可以发现所有此类缺陷。而针对安全与可信的攻击者,则会采用复杂的技术手段来破坏安全系统,并添加恶意组件(硬件特洛伊木马),这些组件几乎无法通过当前的生产测试技术激活或发现。

其次,基于“隐蔽性安全”的传统方法通过操纵内部设计组件来阻碍逆向工程攻击,但实际上这些方法会因辅助生产测试的可测性设计结构而部分失效。扫描及其他特定可测性设计方法提高了可控性和可观测性,使得攻击者在逆向工程攻击中更容易获取内部设计细节。在后续章节中,我们将讨论可测性设计引入的安全漏洞以及提出的对抗措施,以使测试工程师能够利用这些结构查找缺陷的同时,防止攻击者将其用于逆向工程攻击或作为破坏安全机制的“后门”。能够引入攻击向量的可测性设计策略包括以下内容:
(1) 扫描,(2) 边界扫描,和 (3) 内置自测试 (BIST)

2.2.8.1 基于扫描的测试
扫描单元

大多数可测性设计策略(包括扫描插入)在综合期间实现。扫描插入将设计中的触发器(FFs)替换为特殊的基于扫描的触发器。基于扫描的触发器为触发器增加了一种特殊的“测试模式”操作,使得所有或部分触发器能够连接成一条扫描链。扫描链的扫描输入连接到主输入,扫描链输出连接到主输出。这使得测试工程师能够直接设置和观察触发器的内部状态,从而显著简化了对内部组合逻辑块进行缺陷测试的任务。

示意图6

图2.7展示了对传统D触发器进行的修改,以将其转换为扫描触发器。图中显示了两种扫描插入方式,分别为多路复用器驱动型扫描触发器和电平敏感扫描设计扫描触发器。多路复用器驱动型扫描触发器单元现在包含一个多路复用输入和一个控制信号,该控制信号允许功能模式(选择正常D输入)和扫描模式(选择扫描输入)。在生产测试期间,被称为扫描使能的测试模式信号被置位以启用扫描操作。基于扫描的测试(图2.8)的操作分为三个步骤:
(a) 使用测试向量配置扫描单元,(b) 施加系统时钟以捕获结果,以及 (c) 读取扫描数据进行分析。

内建自测试(BIST)还通过添加可测性设计(DFT)组件到芯片中,以实现自测试操作模式。BIST 能够显著降低测试成本,因为它使芯片能够自行检测问题,从而减少对昂贵的自动测试设备(ATE)的依赖以及所需时间。

针对混淆的扫描攻击

基于扫描的测试是降低生产测试成本并提高覆盖率的重要工具,但它也可能被用于支持非侵入式攻击,以窃取密钥等重要信息,或绕过安全机制,协助攻击者进行逆向工程攻击。攻击者在能够访问芯片的情况下,可轻易利用扫描链作为“侧信道”进行密码分析 [15, 16] 等恶意活动。基于扫描的攻击 broadly 分为两类:基于扫描的可观测性攻击和基于扫描的可控性/可观测性攻击。扫描链为攻击者提供了

示意图7

能够拍摄芯片在不同状态下的快照,以帮助逆向工程设计。或者,攻击者可以在测试模式下运行芯片时将寄存器设置为特定值,从而访问内部密钥,例如密钥寄存器,并更改关键操作模式,以此绕过任何插入的安全机制。

基于扫描攻击的防御措施

提出了多种技术来保护扫描链,例如在生产测试后禁用扫描链以及扰乱扫描链,以增加攻击者实施逆向工程攻击的难度。通过熔断熔丝可在生产测试后禁用扫描链,从而保护扫描基础设施[17]。在此方法中,可通过消除对受保护寄存器的物理访问,使其变得不可控且不可观测。该方法的缺点包括熔断保险丝后的后处理步骤,以及熔丝容易受到聚焦离子束(FIB)攻击的影响 [18]。FIB工具已被开发用于“电路编辑”,即在芯片特定区域添加或移除金属。攻击者可利用FIB工具修复被熔断的熔丝,重新获得对密钥和设计细节的访问权限。

扫描链扰乱技术通过混淆寄存器到扫描链的映射,使得扫描数据难以被解读[19]。该技术需要密钥来建立寄存器到扫描链映射的正确分配。错误的密钥会将寄存器随机映射到扫描链元素,从而有效扰乱数据。该技术保护了嵌入式秘密信息以及内部设计细节,使得逆向工程芯片变得困难。

另一种方法是实施一种密钥分离方法,以在测试模式下禁用对密钥寄存器的访问[16]。该方法引入了镜像密钥寄存器(MKR),当启用扫描模式时,通过多路复用接入该寄存器,从而防止

示意图8

访问加密密钥寄存器。该方法能够对加密单元进行制造缺陷测试,但可防止攻击者在功能模式下利用扫描方式窃取密钥。MKR的控制信号是扫描使能信号,因此当启用扫描时,会自动切换到MKR。图2.9展示了使用算法状态机和数据路径实现该方法的框图。该技术保护了密钥,但仍允许探测内部设计细节,因此无法防止逆向工程攻击。

一种低成本安全扫描(LCSS)技术被提出,通过在扫描链 [20] 中引入伪触发器来克服这一缺陷。所提出的架构是

示意图9

如图2.10所示。LCSS仅需对设计流程进行少量修改,以容纳额外扫描单元的插入,可用于保护嵌入式密钥和芯片的知识产权。所有虚拟单元均通过密钥检查逻辑(KCL)进行检查,以确定这些虚拟单元是否已被编程为正确的代码。错误的代码将禁用对扫描链数据的访问,转而启用一个q位线性反馈移位寄存器,该寄存器在扫描链输出端生成随机数据。

2.2.8.2 边界扫描

边界扫描是一种用于印刷电路板(PCB)级测试的可测性设计(DFT)机制,类似于芯片内部使用的扫描DFT技术。边界扫描利用芯片的I/O焊盘构成一个移位寄存器,从而允许对芯片的焊接连接以及PCB上的互连进行制造缺陷测试。

JTAG是由称为联合测试接入组的工作小组开发的IEEE标准1149.1,此外还包括用于可重构扫描网络的其他扫描架构,如IEEE标准1500和IEEE P1687( IJTAG)。

JTAG

JTAG 为印刷电路板(PCB)上不同类型的组件/设备提供了单一的测试接口,从而便于测试。 示意图10 JTAG接口的测试信号定义如下: TCK:测试时钟——所有边界扫描单元都在TCK的触发下进行移位。 TMS:测试模式选择——决定下一个状态,JTAG共有16个状态。 TDI:测试数据输入——通过该信号提供测试向量,额外的JTAG指令也通过TDI提供。 TDO:测试数据输出——扫描输出响应。

基于JTAG的混淆攻击

JTAG因其菊花链拓扑结构未实现任何类型的设备认证,使得芯片和整个印刷电路板容易受到攻击。已有多种攻击被报道,这些攻击利用JTAG接口窃取密钥、盗用知识产权或绕过标准策略。攻击者还可以在不担心被检测到的情况下,将正品芯片替换为假冒克隆芯片。因此,JTAG具有与扫描链设计相同类型的安全漏洞,并且还容易受到恶意设备插入的攻击。其中一种攻击模型在[21]中进行了讨论,说明攻击者可以劫持总线等共享资源,发起拒绝服务攻击或伪造信息。

对抗JTAG攻击的对抗措施

在[22]中提出的一种对策是使用熔丝实现JTAG接口,并在生产测试完成后将其电子销毁,从而消除安全风险。更好的解决方案是为JTAG添加一种安全机制,以限制仅授权用户可访问。还可以增加认证机制,使控制器或集中式可信服务器能够授权芯片执行特定测试[23]。另一种方法是允许控制器芯片通过引入安全策略来中止测试流量[24]。此外,可进一步集成紧凑型加密模块,用于加密测试数据并对被测芯片进行基于密钥的认证[21]。密钥可通过防篡改非易失性内存编程到芯片上,或使用物理不可克隆函数即时生成 [25]。

2.2.8.3 内置自测试 (BIST)

内置自测试是一种测试技术,可在芯片上生成并应用随机测试向量,然后验证结果是否无故障,从而以增加芯片面积开销为代价消除自动测试设备。BIST通常用于测试那些不提供外部引脚进行直接访问的嵌入式存储器。一个示例显示

示意图11

如何实现BIST如图2.12所示。控制器将随机测试向量应用于被测宏( MUT),并在芯片上验证响应。接口控制信号仅传递电路是否通过或失败,而不传输响应。BIST可以在包含JTAG的芯片和电路板上实现。由于BIST不暴露系统的数据或状态,因此自然提供了混淆。

2.3 基于硬件的混淆设计原语

为了更好地理解当前在几种混淆技术中使用的硬件原语,我们首先讨论一种针对混淆技术的分类方案。

2.3.1 硬件混淆的类型

基于硬件的混淆 broadly 分为被动硬件混淆、主动硬件混淆和基于可重构逻辑的混淆。最近提出的方法包括基于主动密钥的硬件混淆方案,这些方案可进一步分为组合逻辑混淆和基于有限状态机(FSM)的混淆。

2.3.1.1 被动硬件混淆

在无密钥或被动硬件混淆技术中,使用密码学原语对设计描述进行混淆和/ 或加密。文献[26],讨论了一种寄存器传输级(RTL)设计混淆技术,该技术通过重命名信号和重组代码来掩盖其对攻击者的含义。文献[27–29]报道的研究在将硬件描述语言(HDL)分发给供应链中的不可信实体之前对其进行加密。IP设计者向合法客户提供密钥,以便对设计进行解密并用于集成或制造。

在被动或无密钥的硬件混淆中,功能不会被修改,仅对设计文件或网表进行混淆。被动硬件混淆技术无法阻止攻击者将设计作为黑盒使用,也无法阻止其分发或超额制造该设计。此外,被动技术无法防止客户分发解密副本。

2.3.1.2 主动硬件混淆

另一方面,主动硬件混淆或基于密钥的技术通过修改功能来增强设计对逆向工程的防护能力。基于逻辑的混淆涉及将密钥嵌入功能单元本身,要求用户在提供功能输入的同时提供正确密钥,以获得正确结果。密钥集成通过在设计的组合逻辑路径和/或有限状态机(FSM)中插入基于密钥的逻辑来实现。例如,大多数提出的技术会向有限状态机添加状态,并在数据路径中添加异或门和同或门。

组合逻辑混淆

逻辑混淆通过在数据路径中加入额外的门(如异或门和同或门)来修改设计,这些门的一个或多个输入由存储密钥的寄存器驱动。通常会提前进行时序分析,以选择不影响设计时序特性的插入点。插入点可以在可用的非关键路径中随机选择[30, 31],也可以采用更复杂的技术,例如基于图论[32]或故障模型分析的方法[33]。这些技术将在第5章和6章中详细讨论。

基于有限状态机的逻辑混淆

基于有限状态机(FSM)的混淆,也称为集成电路计量(IC metering),通过修改电路设计并使用唯一的状态转移路径来锁定每个芯片,只有当芯片从密钥管理机构或设计公司接收到正确密钥后才能解锁。该密钥确保芯片在上电后按照正确的状态转移路径执行解锁序列,从而进入功能模式运行。[34]这些技术可设计为每个芯片使用一个唯一密钥,密钥可存储在非易失性存储器(NVM)中,例如电可擦可编程只读存储器(EEPROM)或熔丝中,或通过物理不可克隆函数(PUF)即时生成。

密钥与扩展的有限状态机(FSM)配对,使得只有设计公司才能解锁芯片。第2.4和 2.5节将讨论使用非易失性存储器(NVM)、物理不可克隆函数(PUF)和真随机数生成器(TRNG)的密钥管理方法。

基于可重构逻辑的混淆

基于可重构逻辑的混淆技术建议在芯片中使设计的一小部分成为可重构的。该方法在制造过程中隐藏了混淆方法的功能细节,从而阻碍了不可信制造设施对设计进行逆向工程。[35]中提出的技术通过改变实现方式利用了一种指纹技术作为一种检测克隆或超额制造的机制,其效果略有体现。文中讨论了在开源SPARC处理器上使用嵌入式可重构逻辑来对抗代码注入攻击的方法,详见[36, 37]。

2.3.2 硬件混淆的度量指标

基于硬件的主动混淆可增强设计对逆向工程的防护能力,但此类方案易受到针对密钥的侧信道攻击以及旨在解码头–门密钥值的基于仿真的攻击。通常认为,如果恶意用户拥有足够的时间和资源,混淆机制最终将失效。[38]的作者提出了以下硬件混淆的目标和度量标准: (I)输入空间的规模必须足够大,以使对有限状态机和组合逻辑混淆的暴力破解攻击变得不可行。(II)混淆方法应尽量增大错误密钥猜测的影响,例如正确输出与混淆输出之间的汉明距离为50%。

2.4 易失性和非易失性存储器

主动硬件混淆技术需要一种密钥存储机制来产生正确结果,而对于可编程逻辑而言,必须在上电时提供网表配置信息,以重新配置现场可编程门阵列组件。存在多种用于永久存储密钥的技术,包括易失性存储器和非易失性存储器(NVM)。

2.4.1 易失性存储器

存储在易失性存储器(如动态随机存取存储器(DRAM)或静态RAM (SRAM))中的密钥相关信息会在芯片的电源循环过程中丢失,除非由电池供电,而这会增加系统的成本开销,并降低其可靠性和可用性。使用易失性存储器存储密钥的其他缺点是容易受到“冷启动攻击”,并且要求密钥通信过程必须是安全的。

2.4.2 非易失性存储器

非易失性存储器(NVM)可在电源循环期间保留数据,并可根据其所采用的写入机制进行分类。只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)和闪存 (FLASH)是常见的非易失性存储器(NVMs),分别属于只读、主要读取和可重写的类型。

2.4.2.1 只读存储器(ROM)

ROM 是一种只读存储器,在制造过程中进行编程,且无法在现场更改。ROM 具有高速度、高密度和低成本的特点,因此成为低成本和嵌入式设备的理想选择。密钥被永久存储,不可更改,并且通常在所有制造的设备中都相同。此外,ROM 容易受到攻击,对手可以使用专用工具读取其内容。

2.4.2.2 可重编程存储器

EPROM和EEPROM是可重新编程的存储器,可以在制造后进行编程。这些存储器采用浮栅型技术,通过改变门输入上的被捕获电荷来实现数据存储晶体管的重新编程。浮栅能够在电源循环期间保持被捕获的电荷,因此不需要电池。然而,需要专用硬件来添加和移除被捕获的电荷。浮栅技术的一个优点是密钥可以在制造后进行编程,从而防止制造商进行逆向工程攻击。

2.4.2.3 一次性可编程存储器

反熔丝、电子熔丝和激光熔丝是一次性可编程存储器,因此属于基于熔丝的技术。基于熔丝的存储更容易受到侵入式攻击,此类攻击通过探测芯片布局来窃取密钥信息并绕过安全机制。

2.4.2.4 新兴技术:阻变存储器或阻变存储器、相变存储器和自旋转移矩磁性随机存储器

阻变随机存取存储器(RRAM)或ReRAM是一种通过改变忆阻器器件的电阻来存储‘0’和‘1’的非易失性存储器。PCM与ReRAM类似,通过电阻水平存储信息。STT‐RAM利用磁化方向在铁磁层上存储
信息。这些存储器是非易失性的,因此不需要能源来维持其内容。

2.4.3 当前密钥存储机制的局限性

在RAM中存储信息的优点是断电后密钥信息会丢失。另一方面,带电池的 RAM会引入可靠性问题,因为一旦电池失效,数据就会丢失。传统的密钥管理系统使用非易失性存储器来存储主密钥或会话密钥,但如前所述,非易失性存储器容易受到侵入式攻击和非侵入式攻击。

侵入式攻击(如微探针和激光切割攻击)允许攻击者通过去除芯片封装并读取存储单元来获取密钥。为了减轻物理攻击,防篡改非易失性存储器(NVM)采用了可检测物理访问的传感器。这些传感器需要电池供电以在设备断电时保持激活状态。因此,NVM 不适合在嵌入式和资源受限设备中使用。

针对从非易失性存储器中提取密钥的非侵入式攻击包括毛刺攻击、故障注入(时序、电压、温度、辐射)和功耗分析。缓解技术包括随机化设计流程或均衡功耗的设计技术。这些方法的缺点是不符合传统设计流程,并会增加设计的面积开销。此外,新兴非易失性存储技术虽具潜力,但尚未验证其是否比传统非易失性存储器提供更强的安全特性。

2.5 设计混淆:物理不可克隆函数与真随机数生成器

2.5.1 物理不可克隆函数(PUFs)

物理不可克隆函数(PUF)是一种在硬件安全和隐私协议中使用的新兴物理层密码学原语。它们是利用固有的制造工艺变异来提取唯一且可重复生成的密钥的嵌入式结构。该概念最初被提出为物理单向函数[39],随后发展为物理不可克隆函数[40]。PUF通过测量传播延迟、导线电阻及其他模拟电路参数的变化,生成在芯片实例群体中具有随机性和唯一性的数字比特串。PUF具有不可克隆性,因为其依赖的随机信息源(即熵源)无法被复制,也就是说,制造过程控制无法将芯片间和芯片内的物理与电气变化降至零容差水平。PUF比特串按需即时生成,因此无需非易失性存储器(NVM),例如电可擦可编程只读存储器( EEPROM)和电子熔丝(e‐fuses)。这一新型密钥生成机制消除了之前关于非易失性存储器所讨论的探测攻击漏洞,因为物理不可克隆函数不存储比特串的数字版本,且其熵源的模拟特性具有防篡改性,物理探测会改变和/或破坏重新生成相同比特串的能力。

2.5.1.1 物理不可克隆函数操作

(a) 应用挑战
物理不可克隆函数(PUF)基于挑战‐响应对(CRP)机制。PUF的挑战定义为数字输入,通常以由“0”和“1”组成的比特串形式表示。PUF的输出也是数字化的,但对于大多数PUF而言,这需要一个片上机制,将PUF所利用的小幅模拟变化转化为数字化信号。对于某些PUF(例如SRAM PUF),该数字化过程会自动完成,其比特串在上电后立即生成。对PUF的挑战通常从熵源中选择一组唯一元素,或者更常见的是,以一种独特的方式组合一组元素。熵源的随机性确保了不同芯片之间的挑战‐响应对(CRP)具有唯一性,即即使使用相同的挑战,每个芯片产生的响应比特串也各不相同。在理想情况下,响应比特串中50%的比特由每个PUF实例唯一确定。

(b) 注册
基于 PUF 的安全应用需要一个注册过程。注册在安全环境中进行,由可信权威在安全数据库中测量并存储挑战‐响应对。只要芯片现有的密钥能够用于安全地将新的挑战‐响应对传输给可信权威,注册也可以在芯片部署在现场时进行。

(c) 再生
再生是由现场芯片执行的一个过程,通常是为了响应需要密钥进行加密或需要唯一比特串进行认证的应用程序所发出的请求。当需要精确复制比特串时(例如用于加密的密钥生成),物理不可克隆函数需要某种类型的辅助数据,以修复或避免重新施加挑战‐响应对时发生的位翻转错误。辅助数据通常在注册过程中由可信权威存储,并在需要时以明文传输方式发送给现场设备。因此,辅助数据不会泄露任何或仅泄露极少关于密钥比特串的信息。在其他应用中,例如认证,可能不需要比特串的精确再现,只需接近匹配即可确认芯片的身份。

2.5.2 物理不可克隆函数评估指标与参数:

2.5.2.1 环境变化的影响

由于环境变化(例如外部温度较高或电池电量低导致芯片供电电压下降)会引起熵源的变化,因此在没有辅助数据的情况下精确复现比特串对于物理不可克隆函数来说具有挑战性。环境变化会在响应比特串中引入位翻转错误,从而难以实现高可靠性。可以在物理不可克隆函数架构中设计容错机制以帮助缓解此类不利影响,例如 [41]。然而,在许多应用中仅靠容错机制并不足够,还必须如上所述使用辅助数据以满足可靠性要求。

2.5.2.2 PUF的评估指标

一篇关于物理不可克隆函数评估指标的调查报告见[42],其中包含了用于测量和量化物理不可克隆函数响应比特串质量的技术。其中最重要的几项总结如下:

1. 唯一性
唯一性是一种质量度量指标,用于确保任意两个芯片在给定挑战下产生的响应应有显著差异。芯片间汉明距离(HD)用于量化这种差异,在理想情况下,其值为 50%。

$$
uniqueness= \frac{2}{k(k -1)} \sum_{i=1}^{n-1} \sum_{j=i+1}^{n}\left( \frac{H D(R_i, R_j)}{n} \right) \tag{2.5}
$$

其中“R”表示响应,“k”表示芯片数量,“n”表示响应比特串的长度。
芯片间(HD)量化了一组响应比特串之间的差异位数。理想情况下,响应比特串的每一位为“0”或“1”的概率应相等。如果某些位偏向某一值,则从攻击者的角度来看,这些位是“更可预测的”。比特偏差通过使用汉明权重在一组芯片的响应比特串的每一位位置上进行测量,如公式2.3所示,其中 “i”表示位位置,“m”表示芯片数量。

$$
Bit\ aliasing[i]= \frac{1}{k} \sum_{j=1}^{k}(R_j) \tag{2.6}
$$

2. 可重复性
响应比特串的可靠性或可重复性通过芯片内汉明距离来衡量。分析中使用的数据是在不同条件下测得的响应比特串使用相同挑战从同一芯片获取的环境条件。其他芯片的数据通常通过计算单个分析中的平均芯片内汉明距离来考虑。理想值为0%,即在任何环境条件下,没有任何芯片出现比特翻转错误。如上所述,直接使用“原始”响应比特串无法实现这一理想结果,而需要辅助数据来实现无误差再生。那些无需辅助数据即可实现相对较低片间汉明距离的物理不可克隆函数可用于某些认证应用,这些应用仅要求注册和再生比特串中的大部分比特匹配。

$$
Reproducibility= \frac{1}{m} \sum_{i’=1}^{m}\left( \frac{H D(R_i, R_i’)}{n} \right) \tag{2.7}
$$

方程2.4给出了计算芯片内汉明距离的公式。它统计了在‘m’种不同的环境条件(称为温度‐电压角条件)下收集的比特串中不同的比特数量。

3. 随机性
物理不可克隆函数架构(包括用作熵源的电路结构)和测量技术可能会引入偏差,并降低每个芯片生成的比特序列的随机性。比特串的随机性通过统计测试进行测量;例如,美国国家标准与技术研究院(NIST)开发了用于评估伪随机数生成器生成的比特串随机性的统计测试软件[43]。该测试包包含均匀性和频率测试,用于统计比特串中“0”和“1”的数量。频率测试要求在给定的比特串中,“0”和“1”的数量平衡必须落在某个容差范围内,否则该比特串将无法通过测试。测试套件还包括其他测试,用于查找在一组比特串子序列中出现频率高于真正随机源所预期的模式。NIST软件工具套件对每个输入的比特串应用多达15种不同的测试,并报告每个比特串通过的测试数量。此外,还开发了其他几种随机性评估工具,包括DIEHARD[44] 和AIS.31[45]

2.5.3 物理不可克隆函数的分类

物理不可克隆函数根据两个主要标准分为弱PUF和强PUF:其挑战‐响应对空间的大小以及对建模攻击的抵抗能力。第三个相关标准是熵源的大小,即用于生成比特串的独立随机变化组件的数量。第二种分类方法使用“内在的”和“非内在的”术语,表示PUF是否在芯片上自包含(内在的)或需要外部仪器支持。第三种分类方法则使用“非电子的”和“电子的”术语来指代熵源的基础结构,例如硅与表现出随机特性的材料。

2.5.3.1 弱PUF和强PUF

强PUF可以为每个设备生成大量唯一的比特,并具有非常大的挑战‐响应对空间来支持这一特性。如此大的挑战‐响应对空间使得拥有PUF芯片的攻击者难以将所有挑战全部施加以构建数据库,即PUF的“数字”克隆。许多人认为第二个特性,即建模攻击抵抗性,与极大的挑战‐响应对空间同等重要。建模攻击是指攻击者利用机器学习算法,仅基于少量挑战‐响应对进行训练,推导出能够预测PUF响应的系统。实现对建模攻击的抵抗性最佳方式是使用包含大量随机变化组件的熵源,但许多提出的PUF架构(例如仲裁器PUF)仅具有少量随机变化组件,转而使用密码学原语(如安全哈希函数和异或网络)来模糊挑战‐响应接口。HELP PUF是一种基于大熵源的PUF实例,即最佳情况 [25]。

弱PUF具有较少的挑战‐响应对,在某些情况下甚至只有一组响应对,SRAM PUF即属于此类。弱PUF通常仅限于密钥生成应用,由于密钥不会离开芯片,因此建模攻击不适用于此类场景。弱PUF也可用于仅需从PUF获取唯一标识符的应用。弱PUF的功能类似于非易失性存储器(NVM)所提供的功能,但具备防篡改特性,从而提升了其相对于NVM的安全性。弱PUF的示例包括物理混淆密钥(POKs)[41],SRAM PUF [46],和蝴蝶PUF [47]。

2.5.3.2 内在型PUF与非内在型PUF

如上所述,内在型PUF是芯片上完全自包含的架构,能够进行测量并执行比特串生成,而非内在型PUF则需要台式仪器(例如基于光子的传感器)来实现测量组件。内在型PUF更为流行,且提出的架构数量持续增长。芯片上的制造工艺变异以多种形式表现出来,包括晶体管阈值电压和金属电阻特性。例如,基于延迟变化的PUF包括仲裁器[48, 49],环形振荡器[41],和HELP [25] PUF。延迟之所以受欢迎,是因为存在许多定义明确的可用片上延迟测量技术。

2.5.3.3 熵源

非电子PUF的示例包括涂层PUF、光学PUF和CD播放器PUF。迄今为止,非电子PUF尚未被视为实现硬件混淆功能的支持原语。电子内在型PUF是最常见的用于此目的的物理不可克隆函数(PUF)类别包括基于晶体管阈值电压变化的PUF [50, 51],、传播延迟的PUF(如上所述,仲裁器、环形振荡器 [41], 和 HELP [25] PUF 即为示例),以及存储器上电时的启动模式PUF,例如SRAM PUF [46]。电子内在型PUF的列表不断增长,包括ROM PUF [52],、漏电流PUF [53],、金属电阻PUF [54, 55],、晶体管跨导PUF [56],、以及其他路径延迟型PUF [57, 58]。

2.5.4 物理不可克隆函数:硬件混淆的候选方案

在本节中,我们讨论以下被视为适用于硬件混淆应用的弱型和强型物理不可克隆函数:
(1) 基于存储器的内在型SRAM物理不可克隆函数。
(2) 基于延迟的内在型物理不可克隆函数,包括仲裁器、环形振荡器和HELP PUF。

(1) SRAM物理不可克隆函数
SRAM物理不可克隆函数被归类为一种弱内在物理不可克隆函数,它利用SRAM上电比特模式中的随机性作为熵源[46]。SRAM单元由一对几何尺寸相同的交叉耦合反相器构成(图2.13)。制造工艺变异导致反相器的跨导参数失配,从而产生随机的上电状态,这些状态对大多数单元而言是恒定的。上电模式在不同芯片之间各不相同,使得SRAM物理不可克隆函数可用于芯片识别,以及基于物理不可克隆函数的硬件混淆协议中,将可重构逻辑映射到特定功能。

SRAM 物理不可克隆函数的行为受到系统性变化的影响,其中“1”和“0”的数量可能会出现偏差,从而降低其随机性统计指标,使其容易受到建模攻击(SRAM PUF无法被建模)。SRAM

示意图12

物理不可克隆函数的可复现性通常较差,在某些情况下报告高达20%或更高。

(2) 仲裁器PUF
仲裁器PUF是一种基于延迟的PUF,通过一系列多路复用器和一个仲裁器(例如,作为提供无偏差评估机制的交叉耦合NAND锁存器)来定义,如图2.14[48, 49]所示。该PUF利用两条相同长度路径之间的延迟变化来生成一个比特。挑战位选择开关的配置,从而决定路径的具体连接方式。成对的多路复用器充当开关盒,将两条路径直接通过开关或交换其连接。对于给定的挑战,仲裁器PUF测量两条相同长度路径的延迟。一个上升信号被输入至最左侧的一对多路复用器,如图2.14所示。输入信号在两条延迟线中竞争传播,末端的仲裁器根据哪条路径更快而输出‘0’或‘1’。路径端点与D和Clk 输入的连接使得仲裁门能够自动计算出竞争的结果。

由于仲裁器PUF具有线性结构且组件数量较少,因此容易受到建模攻击。可以通过相对少量的挑战‐响应对构建精确的时序模型来学习其参数。为了降低建模攻击的有效性,[41, 59]的作者提出了一种并行仲裁器架构,该架构在输出端包含一个XOR混淆网络。

示意图13

(3) 环形振荡器PUF
环形振荡器物理不可克隆函数(RO PUF)是一种由相同延迟环路和计数器组成的弱PUF [41]。环形振荡器物理不可克隆函数通过测量延迟环路的“环”频率差异来检测路径延迟变化(图2.15)。挑战选择一对相同的振荡器,并比较该对中每个振荡器产生的振荡次数。通过将每个环形振荡器的输出连接到独立的

示意图14

计数器。比较结果在比特串中生成单个“0”或“1”比特。其他配对用于构建比特串的其余部分。

在常见的使用场景中,当同一个环形振荡器用于多个不同的配对时,环形振荡器物理不可克隆函数也容易受到建模攻击。机器学习算法试图确定所有环形振荡器的相对频率,一旦这些频率被获知,就可以预测用于生成比特串的任何挑战序列所对应的响应比特串[60]。

(4) HELP PUF
在[25, 57]中提出的嵌入式延迟物理不可克隆函数(HELP PUF)是一种强物理不可克隆函数。它利用现有设计中功能单元的延迟变化,且不需要像其他现有的基于延迟的物理不可克隆函数那样具有相同的结构。HELP还隐式地为现有功能单元提供防篡改保护,即功能单元的结构特性任何改变都将改变测得的路径延迟。

示意图15

图2.16展示了HELP的架构,其中功能单元代表熵源。功能单元的输入和输出分别连接到一组触发器启动行和捕获行。通过两个时钟Clk1和Clk2,在功能单元上施加一系列启动‐捕获时钟事件,如图2.16左侧所示。在启动‐捕获测试序列中,Clk1和Clk2之间的相位偏移被动态调整,其中两个时钟之间精细相位偏移的数字化选择值称为启动‐捕获间隔(LCI)。能够使传播边沿沿路径被捕获到捕获触发器中的最小LCI间隔被用作该路径的数字化时序值。

物理不可克隆函数响应位是通过非相同路径延迟之间的延迟差异计算得出的。提出了一种模运算技术,用于消除在差分操作中使用的非相同路径的路径延迟偏差,同时充分保留较小的片内延迟变化。

2.5.5 真随机数生成器(TRNG)在硬件混淆中的应用

真随机数生成器是用于许多基于硬件的安全技术(包括硬件混淆)的硬件原语。真随机数发生器(TRNG)利用随机性和噪声来生成不可重现的密钥。该随机性或噪声应具有均匀分布,以避免偏差。TRNG 是密码学应用中的重要硬件原语,可用于认证协议中生成随机数、生成一次性密码本,以及为素数选择机制提供每台设备唯一的密钥等。文中提出使用 TRNG 的硬件混淆和硬件计量方法[31]用于在上电时定义随机化的芯片 ID,并将其存储在防篡改非易失性存储器中。

真随机数生成器(TRNG)可以利用片上变化 [46, 48] 来实现。此类 TRNG的示例包括基于仲裁器的TRNG、基于环形振荡器的TRNG以及技术独立的TI‐TRNG [61]。TRNG的评估主要依据其输出的随机性和分布的均匀性。环境变化(如供电电压或温度变化)可能对噪声分布产生不利影响并引入偏差,从而使TRNG的输出更可预测。

真随机数生成器用于为组合逻辑和混淆状态机中的密钥门生成输入的唯一密钥。当应用正确密钥时,混淆数据路径和控制路径会产生正确输出。基于真随机数生成器的密钥生成需要将生成的密钥存储在带电池的RAM或NVM中。

使用真随机数生成器生成密钥的缺点在于,存储在带电池内存或 NVM中的密钥可能被窃取和克隆,从而使设计被逆向工程,并完全消除设计中的安全特性。此外,NVM制造的开销需要额外的掩模和制造步骤,从而增加了芯片成本。因此,只要能确保对位翻转错误具有高可靠性,其他替代方案(如物理不可克隆函数)更适合用于生成可重现的密钥。

2.5.6 物理不可克隆函数和真随机数生成器在基于硬件的混淆技术中的应用

物理不可克隆函数和真随机数生成器可被用于逻辑混淆,以实现芯片认证 [31, 34]或逻辑的混淆[62]。物理不可克隆函数和真随机数生成器可以利用热量、大气噪声和光纤等非电特性作为熵源;然而,研究重点集中在更易于测量和数字化的硅工艺变化上。基于物理不可克隆函数的混淆和激活方案可通过为每个芯片分配唯一的挑战‐响应对来提高安全性,从而使每个芯片能够分别独占地修改和隐藏设计,并进行认证以实现正确功能。

一种基于有限状态机(FSM)的计量技术在[34]中被描述,该技术采用一种称为黑洞有限状态机(BFSM)的增强型FSM结构来隐藏功能。PUF的响应控制从混淆状态到有效状态的状态转移,只有有效的转移才能使芯片进入正常运行的运行状态。PUF用于生成基于有限状态机激活的唯一密钥,并向攻击者隐藏实际功能,从而防止非法超量制造的芯片。这种增强型有限状态机可使用可重构逻辑实现,其中每个芯片根据芯片标识符具有唯一的密钥。基于PUF的BFSM技术如图2.17所示。

示意图16

该技术随后由[63]进行了改进,使用较少数量的混淆状态来远程激活资源受限的设备。一些有效状态被复制,且只有在提供正确密钥的情况下才能通过这些复制的状态进行转换。

在[31]中描述了一种使用真随机数生成器(TRNG)的基于有限状态机的硬件混淆与计量技术。如前所述,TRNG可用于在上电时定义随机化且唯一的标识符(ID),并将其烧录到可电气编程的熔丝中,例如电子熔丝单元(EFU)。提出了一种PUF用于实现[62]逻辑与互连混淆的硬件混淆。该方案如图2.18所示,其中每个混淆后的集成电路实例都不同,从而对逆向工程具有弹性。攻击者不仅需要猜测门电路,还需要表征PUF响应或使用暴力方法遍历所有可能性。互连混淆通过使用多路复用器等开关门电路实现线路交换。如图2.19所示,只有正确的密钥或PUF响应才能建立正确连接。

示意图17

示意图18

通过选择影响多个输出的基于PUF的逻辑,将具有不可控触发器的混淆逻辑进行布局,可以进一步提高此类混淆技术的安全性。此外,选择线对来实现高度相关线对之间的交换,可以增加逆向工程的难度。因此,基于物理不可克隆函数和真随机数生成器的硬件混淆方案能够有效缓解盗版攻击。

总结

本章介绍了超大规模集成电路验证与测试的初步概念和技术。我们描述了一组与超大规模集成电路验证技术及测试结构相关的漏洞,这些漏洞可能暴露设计细节,有助于逆向工程功能,从而破坏通过隐蔽性实现的安全。讨论了针对现有技术提出的一些改进措施,旨在提供对抗此类攻击的对策。此外,还提出了硬件混淆技术的分类法,以及一组硬件原语和相关概念。由于制造过程外包趋势日益增长,晶圆厂以GDSII形式完全掌握设计细节,因此推动了硬件混淆技术的发展。混淆技术会修改设计,并需要输入正确密钥才能使设计正常工作。第2.4节讨论了不同的密钥存储方案,例如非易失性存储器及其漏洞和开销。第2.5节介绍了基于硬件的加密函数、物理不可克隆函数(PUFs)和真随机数发生器(TRNG),作为增强集成电路设计混淆抗性以抵御逆向工程并减轻集成电路盗版攻击的基本构建模块。后续章节将进一步讨论它们在缓解集成电路盗版、克隆、超额制造和使用假冒芯片方面的应用。

您可能感兴趣的与本文相关内容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值