基于混淆的PCB安全保护框架

基于混淆的印刷电路板防未经授权操作与逆向工程保护框架

郭子木,佛罗里达大学邸佳,阿肯色大学马克·M·特赫兰尼普尔和多梅尼克·福尔特,佛罗里达大学

印刷电路板(PCBs)是所有现代电子系统的基本必需品,但正日益面临克隆、超量生产、篡改和未经授权操作的 威胁。目前大多数防御此类攻击的研究仅集中在芯片层面,导致在印刷电路板及其更高层次抽象层面存在保护空 白。本文中,我们提出了首个基于混淆的印刷电路板保护框架。该方法的核心是一种置换块,用于隐藏印刷电路 板上芯片之间的芯片间连接,并通过一个密钥进行控制。当施加正确密钥时,芯片之间的正确连接得以建立;否 则,连接将被错误地置换,导致印刷电路板/系统无法正常运行。我们提出一种基于Benes网络的置换网络,并将 其添加到印刷电路板上,该网络可方便地在复杂可编程逻辑器件或现场可编程门阵列中实现。基于此实现,我们 从以下三个方面分析了该方法的安全性:(i)攻击者暴力破解逆向工程印刷电路板的尝试;(ii)暴力破解猜测 正确密钥的尝试;(iii)不同类型的攻击者实施的物理和逻辑攻击。在12个参考设计上的性能评估结果表明,暴 力破解通常需要难以承受的时间才能攻破该混淆机制。此外,我们还针对不同类别的攻击者,详细提出了防止逆 向工程、未经授权操作等所需采取的对策的具体要求。

CCS概念: Security和隐私→嵌入式系统安全;板级混淆,知识产权保护,防止未经授权的操作,Benes网络

ACM引用格式:郭子木、邸佳、马克·M·特赫兰尼普尔和多梅尼克·福尔特。2017年。基于混淆的保护框架防止印刷电路板未经授 权的操作和逆向工程。计算机协会电子设计自动化汇刊22,3,文章54(2017年4月),31页。DOI: http://dx.doi.org/10.1145/3035482

1.引言

印刷电路板(PCBs)为电子元件和芯片之间的机械支撑和电气连接提供了基础。因此,它 们几乎被用于所有现代电子产品中,包括智能设备、个人计算机、家用电器、汽车、工业控制系统等。最近,针对印刷电路板的攻击以及相应对策的开发引起了越来越多的关注[Tehranipoor等人 2015]。现代印刷电路板是包含关键设计信息和知识产权(IP)的复杂 多层结构,但实际上缺乏保护。任何人都可以购买印刷电路板或包含印刷电路板的系统从市场获取并进行克隆、篡改和未经授权的操作。此外,印刷电路板设计、制造和组装的 新兴商业模式倾向于外包[Ghosh等 2014],,这进一步加剧了印刷电路板/系统盗版和篡 改的威胁。

克隆可以由合法购买产品的最终用户或捕获军用系统的敌对方实施[Hartmann和 Steup 2013]。克隆的第一步是逆向工程印刷电路板/系统,即识别印刷电路板上的芯片及 其连接方式。已有大量前期研究表明,即使使用低成本的家用解,对印刷电路板进行逆向 工程(RE)也相对简单[Grand 2014]。通过X射线计算机断层扫描实现更昂贵但自动化的 逆向工程方法也是可行的[Asadizanjani 2015]。如今大多数系统均由商用现成组件( COTS)构成,因此轻易即可创建系统克隆,并在市场上作为正品销售。甚至iPhone也被 克隆,在一些国家市场上已有数千部假冒复制品在销售[Pacific 2011]。

超量生产是指拥有详细印刷电路板设计的合同代工厂生产了超过授权数量的印刷电路 板。这些印刷电路板可用于制造类似于克隆产品的假冒产品。无论是克隆还是超量生产, 产品的知识产权所有者都会遭受巨大的利润损失。然而,克隆可能造成更大的危害。例如, 克隆产品若采用了低质量的芯片、被篡改的电子元件和/或额外的功能(新的走线和组件、 隐藏的过孔等)[Ghosh等人 2014]可能会意外失效,从而损害知识产权所有者的声誉。在最坏的情况下,此类产品甚至可能导致生命损失。篡改攻击也可用于获取系统中存储的 机密数据或绕过保护机制(例如数字版权管理[奥唐奈,2013年;Fitzgerald 2005])。这 些目标可以通过直接窃听芯片间通信或使用专用设备探测这些连接来实现。最后,未经授 权的操作意味着攻击者在未经许可的情况下使用或操纵设备。一些设备对此类行为的保护 机制较弱。例如,智能手机在使用前需要输入密码解锁,但这些密码通常较短且容易被观 察到。

针对这些攻击的对策有多种形式。Ravi等人[2004]将嵌入式系统上的攻击分为三类: 隐私攻击,包括窃听;完整性攻击,包括功耗/时序/电磁分析和故障注入;以及可用性攻击, 包括软件木马。Anderson和Kuhn[1998]提出了一种针对RSA公钥密码系统、数据加 密标准(DES)和分组密码的低成本攻击。Weingart[2000]列出了一系列针对篡改攻击的 应对方法。然而,这些防篡改技术仅关注如何防止攻击者在设备运行期间获取密钥信息, 但并未解决印刷电路板的逆向工程、克隆和超量生产问题。最近,Ghosh等人[2014]分 析了印刷电路板在木马攻击下的安全性,并讨论了印刷电路板的反向工程防护。然而,作 者并未展示任何详细的印刷电路板实现设计流程,也未对其性能进行量化。Tehranipoor等人[2015]和Guin等人[2014]提出了一种针对假冒集成电路(IC)的全面分类与展示框架。“脱氧核糖核酸(DNA)标记”[Hayward和Meraglia 2011]由应用DNA科学公司开发,可将独特且不可复制的植物DNA嵌入产品中。通过特定光照下 IC标记的荧光特性以及供应链中的DNA信息,可用于识别正品芯片。Yang等人[2015]提 出了一种基于射频识别的电子元件与系统假冒检测方法。板上所有芯片的标识(ID)共同 生成板卡ID。然而,这些技术仅关注于检测电路板上的假冒芯片,而非印刷电路板本身。

据我们所知,防止系统未经授权操作的研究非常有限,但对商业和军事应用中的隐私 保护可能具有重大影响。最广泛使用的方法依赖于软件/固件授权机制,该机制需要加密系 统和额外存储器的支持[Simpson和Schaumont 2006]。然而,这些要求引入了进一步 的安全性问题,例如密钥信息提取和授权系统的绕过[Brijbasi 2003]。

在本文中,我们提出了首个板级混淆方法,旨在保护印刷电路板免受克隆、超量生产、 逆向工程和未经授权的操作。我们的主要贡献总结如下: (1)板级混淆:所提方案通过在可编程组件(例如微控制器单元(MCU)、数字信号处理器 (DSP)或现场可编程门阵列(FPGA))与非可编程组件之间添加一个置换块,来混淆它 们之间的连接。该置换块仅在提供正确密钥时才使印刷电路板(PCB)正常工作。由于连 接关系被隐藏,该PCB无法被逆向工程。此外,通过保留密钥,可以缓解PCB的克隆和超 量生产问题。最后,如果密钥仅提供给系统所有者/用户,则可以防止系统的未经授权的操 作。在所有情况下,密钥无需永久存储在PCB中,从而增强了对物理攻击的抵御能力。(2)实现:我们研究了置换网络的不同实现方式,并确定Benes网络是最有前景的候选方案。研究了两种配置场景。(3)抵抗暴力破解攻击:我们开发了度量方法,用于评估在不同情况下针对暴力破解攻击 的混淆性能:(1)应用所有可能的输入/输出组合;(2)向Benes网络应用随机密钥。对 12种工业参考设计的结果表明,在任一情况下破解该混淆都是不可行的。比较这两种情况, 使用密钥的方法在平均情况和最坏情况下所需时间更长。(4)物理攻击与对策:我们研究了针对本方法的可能攻击,并根据攻击者所拥有的资源对其 进行分类。作为对策,我们为不同应用提出了三个级别的安全要求。我们利用球栅阵列 (BGA)封装用于可编程组件和置换块,并隐藏它们之间的连接以防止硬件探测。我们讨 论将一种新颖的板级物理不可克隆函数(PUF)与所提出的混淆方案结合,以提供额外的 保护。

本文的其余部分组织如下。第2节介绍了混淆及其关键要素。在第2.1节中,介绍了 PCB混淆的基本思想。详细的方案、实现方法以及性能评估指标在第3节和第4节中给出。第5节提供了潜在的攻击场景并对其进行分类。针对这些攻击,在同一节中讨论了相应的对 策和安全性要求等级。第6节展示了以多个印刷电路板作为基准的混淆性能。最后,第7节 包含未来工作和结论。

2.基于混淆的保护

在本节中,对硬件混淆进行了更广泛的描述。我们还讨论了芯片级混淆技术及其为何不适用于印刷电路板。硬件混淆的总体思路如图1所示。实心矩形表示属于原始设计的组件。在芯片级别,这 些组件可以是逻辑门或寄存器。在板级,这些组件可以电路板上存在芯片。在原始设计中,这些组件直接连接到固定的导线或走线。由于所有组 件间连接均已确定,因此无法对硬件功能进行控制。具备芯片级或板级逆向工程能力的攻 击者可以获取该设计。图1中的问号表示由混淆引入的模糊性,这种模糊性可表现为互连排 列、信号连接修改,或两者的组合,从而防止简单的逆向工程。在硬件混淆中,通常使用 密钥来消除这种模糊性,使设计能够按原始预期运行。

现有的芯片级方法利用混淆来隐藏功能,并旨在使芯片仅在授权权限下工作。 broadlyspeaking,我们可以将芯片级技术分为两类:门级技术和寄存器传输级技术[查 克拉博蒂和布尼亚2009;Desai等 2013]。门级技术可能是基于逻辑混淆或基于排列的[拉 杰nd兰等2013;Roy等 2008]。尽管上述技术非常适合芯片级保护,但芯片与印刷电路板之间存在根本性差异,使得 这些技术无法适用于印刷电路板。印刷电路板更容易被探测,且添加附加组件的成本更高。用于加密和解密可编程组件与非可编程组件之间信号的加密模块很容易被移除。逻辑置换 方法[Zamanzadeh和Jahanian 2013]若不进行必要修改,则无法应用于板级,因为组件 与芯片之间的信号保持不变。

2.1.所提出的PCB混淆概述

考虑到之前描述的系统级问题(超量生产、克隆和未经授权的操作),印刷电路板级混淆 是一种可行的解决方案。通过对设计进行混淆并withholding其密钥,可以缓解印刷电路 板的克隆和超量生产问题。即使系统上的商用现成芯片可以被识别,缺少密钥的情况下, 混淆后的系统仍然无法正常工作。此外,如果唯一密钥仅提供给系统所有者/用户,则也能 防止未经授权的操作。本节将讨论我们所提出的混淆方案的一般硬件实现。

在实施混淆方案之前,我们针对每个应用将电路板上的组件分类为可编程和非可编程。pro-grammable component是最关键的组件,负责执行嵌入式系统的主要功能。通常每块 电路板上至少有一个此类组件。该组件可以是微控制器单元、数字信号处理器或现场可编程门阵列。非可编程组件是指电 路板上除可编程组件之外的其他组件。这些组件通常由可编程组件控制,并执行定时器、 显示驱动器等专用功能。

为了说明整体方法,图2(a)和(b)分别展示了原始设计和混淆设计。在原始设计中,虚 线矩形内组件之间的连接对设计者是已知的,且拥有该系统的攻击者也可以通过逆向工程 确定这些连接。在混淆设计(所提出的方法)中,组件之间的连接被置换块隐藏。具体而 言,我们插入一个permutation block,使设计者能够隐藏这些连接。置换块是为实现混淆 而添加到电路板上的额外组件。该组件可通过复杂可编程逻辑器件(CPLD)、现场可编程 门阵列(FPGA)或专用集成电路(ASIC)实现。

在图2(b)中,由系统的可信用户施加一个密钥,并配置置换块,使系统正常工作。只 有正确密钥才能实现可编程与非可编程组件之间的正确连接。该密钥可以通过多种方式在 板上和板外生成。板上密钥可通过某些模拟信号(如生物特征(指纹、语音等))生成, 以实现更强的保护。系统可集成密钥提取模块,从这些模拟信号中提取密钥。板外密钥可 通过键盘输入或来自安全令牌(例如智能卡)。

图2还展示了我们可以利用的引脚/端口的一些其他重要特征/场景。真实端口表示可 编程组件中用于在原始设计(混淆前)连接非可编程组件的引脚。置换块隐藏了组件之间 的这些连接。此外还有虚拟端口,它们代表原始设计中未使用的端口。在混淆设计(所提 出的方法)中,虚拟端口可用于增加攻击者需要搜索的状态空间。直观上,作为置换块输 入的真实端口和虚拟端口的数量决定了攻击者必须研究的连接组合数量,以确定正确的系 统设计。

图2提供了所提出混淆方法实现的整体思路。所提出的PCB混淆的实现与评估包含三 个部分。—端口选择框架:并非所有可编程组件的端口都可以用于混淆。原因在第2.2节的功能性 逆向工程攻击中有说明。为此提供了一个三阶段框架,用于选择合适的端口进行混淆。该 框架包括预处理阶段、分组阶段和度量计算阶段。—混淆强度评估:提出了用于评估所提出混淆方法性能的定量指标。这些指标表明了攻击 者通过暴力破解方式破解混淆的概率。—多密钥计算:我们研究了在置换块中实现的置换网络的特性,分析了一种称为多密钥效 应的现象。由于该现象影响破解概率,因此对混淆强度进行了重新评估和比较。

2.2.对PCB混淆的攻击

本文中,我们考虑了针对PCB混淆的多种攻击。这些攻击中的任何一种都可能导致攻击者 能够解锁系统或克隆/过度生产系统,从而破坏所提出的方法的目的。因此,我们还将在后 续章节中讨论缓解这些攻击的方法。

(1)功能逆向工程:由于板上组件通常有详细的文档,攻击者可以通过研究端口的功能部分 地发现正确的连接排列。尽管攻击者从可编程组件中获得的信息有限,但他们可以从非可 编程组件中了解连接的功能,特别是那些在可编程组件上具有专用端口的组件。因此,应 利用通用输入/输出(GPIOs)及其他具有设计特定功能的端口来抵御此类攻击。幸运的是, 许多印刷电路板包含微控制器单元、数字信号处理器(DSPs)和现场可编程门阵列(FGPAs), 这些器件包含大量通用输入/输出(详见第6节)。在混淆中利用这些端口会使攻击者极难通 过暴力破解方式找出真实的互连关系。因此,我们应更加关注通用输入/输出。关于选择合 适端口进行混淆以及评估该方法性能的选项将在第4.1节中讨论。

(2)对正确连接和/或密钥的物理逆向工程:攻击者可能采用多种物理攻击来破解所提出的 混淆方案。例如,攻击者可以尝试同时使用板级和芯片级逆向工程来获取芯片间的正确连 接。在板级层面,可以通过探测识别进出置换芯片的信号。掌握这些信息后,攻击者即可 克隆设计、进行超量生产等操作。或者,通过攻击置换芯片,攻击者可能能够提取出密钥。针对具备不同能力范围的攻击者的缓解措施将在第5.1节中讨论。

(3)暴力破解攻击:如果上述攻击被阻止,那么攻击者唯一的选择就是暴力搜索(穷举搜索)。本文中存在两种可能的暴力破解方法:(i)连接组合和(ii)向混淆芯片输入的密钥条目。在 第一种情况下,攻击者测试所有可能的芯片间连接,以确定能够实现系统正确运行的连接。在第二种情况下,攻击者通过混淆模块接口测试所有可能的密钥输入,直到系统正常运行。请注意,这种情况与第一种不同,因为它完全取决于置换网络的实现方式(即密钥与输入/ 输出组合之间的关系)。在第4节中,我们将建立评估方法来估算破解概率。

3.置换网络实现

本节介绍了各种置换网络的背景,并选择了最适合实现所提出混淆方案的候选置换网络。根据所选的置换网络,我们提供了在不同场景下的配置方法。

3.1.置换网络介绍

在我们的保护方案中,选择合适的置换网络并在置换块中实现它起着至关重要的作用。在 我们的应用中,置换网络的输入是连接到可编程组件的信号,输出则连接到非可编程组件。根据是否能够实现完整的输入/输出排列,置换网络可分为blocking和nonblocking网络[Waksman 1968]。

阻塞置换网络表示该网络只能实现部分输入/输出组合。蝶形网络[Thamarakuzhi和 Chandy 2010]以及基本 Omega网络[Mitra和Cieslak 1987]是阻塞置换网络的两个 例子。非阻塞置换网络表示该网络能够实现所有输入/输出组合,无论是否存在约束。这类置换网络包含三个子类别。(i)严格意义无阻塞网络[Giacomazzi和Trecordi 1995]能够构建一 条新路径,连接尚未连接的输入和输出,而无需考虑任何已建立的路径。(ii)广义无阻塞 网络[Feldman等人 1988]不提供像严格意义无阻塞网络那样的严格独立性保证,但仍可 通过特定算法将任意未使用的输入连接到任意未使用的输出。(iii)最弱的非阻塞置换网 络概念是可重排无阻塞网络[Pippenger 1978]。这类网络在没有预先知道输入和输出顺序 的情况下,无法完全实现所有网络配置。Benes网络[Chang和Melhem 1997]就是这种 网络的一个例子。

我们对三种置换网络进行了比较:欧米茄网络(阻塞型)、基于多路复用的网络(严 格无阻塞型)和Benes网络(可重排无阻塞型)。这些网络使用QuartusII软件进行综合, 并在AlteraMAXVCPLD上实现。目标CPLD包含570个逻辑单元(LE),这是CPLD中 的基本逻辑单元。面积开销通过已使用逻辑单元的百分比来表示。结果表明,Benes网络 所使用的逻辑单元比例(60%)仅为基于多路复用的网络(115%)的一半。除了面积开销 外,还估算了功耗开销和传播延迟。这些开销是基于在MAXVCPLD上实现的32位 Benes网络进行估算的。功耗开销为0.04毫瓦,平均管脚到管脚延迟测量为20.5纳秒。

为了抵御暴力破解攻击的鲁棒性,所需的最小置换网络维度为32个输入和32个输出 (详见第6节)。我们决定在本文余下的部分中重点实现置换块中的Benes网络,原因如下: (i)显然,阻塞置换网络并不合适,因为它们产生的输入/输出组合有限。例如,一个32位 欧米茄网络提供1.2379E+ 27种输入/输出组合。而32个输入的完全打乱是32的阶乘,即 2.6313E+ 35。因此,欧米茄网络仅实现了总计输入/输出组合数的1/2.1256E+08。与阻 塞网络相比,无阻塞网络(如Benes网络)能够实现所有可能的输入/输出组合。就本案例 而言,设计者应从无阻塞网络中选择候选方案。(ii)考虑到硬件面积开销,Benes网络远 优于基于多路复用器的网络。对于此应用,严格意义上的无阻塞网络具有显著的开销,而 其优势在我们的使用场景中并不需要。

3.2.置换网络配置

最基本的Benes网络单元是一个如图3(a)所示的1比特控制的2到2开关。这些开关在两种模 式下工作:当控制位为0时处于直通模式,当控制位为1时处于交换模式。来自混淆密钥的 位用作每个开关的控制位。我们将每一列开关定义为一级。对称特性在Benes网络的配置 过程中起着关键作用。该特性意味着Benes网络在中心级上具有旋转对称性。根据此特性, 中心级左侧的级称为前向级,右侧的级称为后向级。这些级类别如图3(b)所示。设计者可 以利用这些特性来简化配置过程。

根据先验知识和目标的不同,网络配置可以分为两种情况。

情况1 :设计者旨在根据输入顺序和预定义密钥来确定输出的顺序。由于Benes网络具 有旋转对称性,其级数始终为奇数。级数(S)可通过以下方式求得

S= 2∗log2N−1,其中N为网络维度(即Benes网络的输入数量)。每一级都可以通过由 密钥导出的方形置换矩阵(PM)进行数学表示。置换矩阵在每一行/列中恰好有一个“1”, 其余位置为“0”。每个置换矩阵表示经过相应级的输入排列。置换矩阵的乘法表示连续通 过多级的变换过程。对称性特性有助于设计者简化置换矩阵的计算。在计算出置换矩阵和 输入顺序(I)后,我们可以将输出顺序(O)形式化如下:

O= I × ∏ i=1 log2 N−1 PM i , (1)

其中N表示输入数量。在已知输出顺序和密钥的情况下,可以采用相同的过程来计算输入顺序。

情况2 :设计者的目标是找到一个或多个能够实现所需输入/输出排列的密钥。此过程 也称为网络路由。先前的研究,例如Nassimi和Sahni[1982]提出了一种基于搜索环路(下文定义)的外级的高效路由算法。外级(OS)被定义为像图3(b)中第0阶段和第4阶段 这样的镜像阶段对。外级数量K根据输入数量N按如下方式定义:

K= log2 N −1. (2)

环路结构如图4所示。以网络输入为[0 1 2 3 4 5 6 7]、输出为[3 7 1 0 4 2 5 6]为例。为了 确定环路,所提出的方法将每个开关表示为一个节点,标记为x0, y0,等,如图4(b)所示。节点之间的连接基于输入/输出顺序建立。一个环路包含所有互连的节点。在同一环路中, 通过跟随它们之间的互连,一个节点可以到达任意节点(包括其自身)。如果两个节点直 接连接(例如,x1和y0)或间接连接(例如,x2和y0),则它们应被归入同一个环路。例 如,虚线环路由节点x0和y1组成。一个环路内的节点不应与该环路外的节点相连。除了由第 0阶段和第4阶段形式化的外层阶段之外,在图3(b)中的子阶段1.1和子阶段3.1等其他外级中 也可以发现类似的环路结构。配置可通过为每个节点(开关)分配“0”或“1”来实现。

如Nassimi和Sahni[1982],所述,每个环路可分配两种等效的密钥配置。这两种配置是互 补的二进制链,例如“1011”和“0100”。这种多配置现象可能导致多个密钥实现相同的输入/输出组合。在本文中,我们将此现象称为multiple-key effect。这种效应可能通过增加破解概率(即通过穷举搜索获得正确配置的概 率)而削弱保护强度。

4.混淆与评估方法

在第2.1节中,给出了基于置换的混淆的整体思路。如先前讨论所述,真实/虚拟端口由置 换块进行置换。如第2.2节所述,并非所有原始连接都可用于混淆。在本节中,提出了一种 端口选择框架,用于选择适合混淆的端口。根据所选端口的类型和数量,确定破解概率。最后,我们提出了一种针对多个密钥数量的概率计算方法。

4.1.端口选择框架

所提出的框架包含三个阶段:(i)预处理阶段,在此确定用于混淆的端口候选;(ii)分 组阶段,在此我们仅基于可编程组件和非可编程组件的端口描述对端口进行分组;以及(iii)度量计算阶段,在此计算混淆强度。混淆强度推断了攻击者通过暴力破解学习正确 连接/密钥的难度。

在本节中,我们提供了图5中恩智浦的一个参考设计。该图展示了基于飞思卡尔 ColdFireV1MCF51MM256CLLMCU[Fre 2014]的飞思卡尔活动监测器参考设计的框 图。这是一个无创采集系统,包含计步器、心电图、饮食摄入表、数据存储、无线通信、 定时器和计时器。该参考设计将作为预处理阶段和分组阶段后续讨论的示例。它可以被视 为图2的实际实现。其中,可编程组件为ColdFireV1MCF51MM256CLLMCU,非可编 程组件以紫色表示。在所有非可编程组件中,只有触摸感应设备和显示模块的连接可以参 与混淆(原因见下文的预处理阶段)。

示意图0

预处理阶段 :首先,我们将未使用的端口分组,并将该集合命名为虚拟端口集(组D)。在 所有连接的端口中,我们排除用于以下用途的端口:模拟输入/输出(因为置换块只能处理 数字信号);串行或并行通信端口(因为它们具有可预测用途,因此对混淆无用);以及 任何对时序敏感的端口(因为置换块可能会引入额外延迟)。剩余的连接端口将被命名为 真实端口集(组R)。

分组阶段 :分组的原因是为了评估混淆的强度。分组不会影响实际的硬件实现。这是必要 的,因为智能攻击者可能从可编程和非可编程组件的端口描述中获得某些信息(参见第 2.2节中的功能逆向工程)。对于非可编程组件,大多数端口的功能是专用的。例如,如图 5所示,触摸感应模块将通过快速通用输入输出(RGPIO)与微控制器单元通信。并非该 微控制器单元上的所有端口都具备作为RGPIO工作的能力(实际上只有16个端口)。在这 种情况下,攻击者可以通过在16个端口而非微控制器单元上的所有端口范围内搜索触摸感 应设备的正确连接来缩小搜索范围。对端口进行分组有助于我们在后续的度量计算阶段避 免高估混淆强度。

分组阶段有两个步骤: 步骤1包括对SetR中的真实端口进行分组。由于非可编程组件的端口具有更专用 的功能,我们的目标是在可编程组件上找到具有对应功能的端口。图6基于图5中的设计 给出了一个示例。图6的左侧是微控制器单元的端口描述,可从其手册或数据表中轻松获 取。X/Y/…/Z表示该端口可能具有多个可能的功能。对于图6中所示的端口描述,PTXX(PTH2、PTE1等)表示此端口具有通用输入输出功能,RGPIOX(RGPIO2、 RGPIO3等)表示此端口具有RGPIO功能。图6的右侧展示了两个连接到微控制器单元 的非可编程组件。这些芯片的文档中可以获知端口名称(T_DWN、LCD_CS等)。与 微控制器单元的端口描述不同,这些端口的功能是专用的。

示意图1

在图6中,以粗体显示的端口描述意味着攻击者可以根据非可编程组件的信息,从所有 可能的功能中轻松确定其功能。例如,攻击者可能知道微控制器单元上的某些端口应作为 触摸感应设备所需的电阻式通用输入输出工作。本例中的功能组为SetR(RGPIO)和SetR(GPIO),如图6所示。SetR(RGPIO)组包含在原始设 计中用作RGPIO的所有微控制器单元端口。除了RGPIO之外,其他微控制器单元可能具有其他 功能组。例如,飞思卡尔MKM34Z128CLL5微控制器有45个端口用于液晶显示器。飞思卡尔 KinetisKEA128微控制器上的10个灵活定时器(FTM)端口可用于生成脉宽调制(PWM)信 号。德州仪器TMS320F2837xD微控制器有24个端口用于生成PWM信号。微芯科技 PIC32MZEC系列微控制器有5个端口作为外部中断。来自不同制造商的许多微控制器单元和数 字信号处理器(DSPs)都具有上述功能组,但端口名称不同。除了这些具有专用功能的端口外, 其余端口仅需要通用输入输出。这些端口被归入SetR(GPIO)。

步骤2 :在从步骤1获得若干组后,我们基于此信息分析虚拟端口。虚拟端口有两种类型,如下所示:

—虚拟端口在步骤1中仅可用于一个且唯一的功能(单功能虚拟端口),例如 PTA2/KBI1P1/RX1/ADP4PTA3/KBI1P2/FBD6/ADP5.
—虚拟端口在步骤1中可用于两 个或更多功能(多功能虚拟端口),例如PTB6/KBI1P3/RGPIOP0/FBAD17
PTB7/KBI1P4/RGPIOP1/FBAD0._

在图5所示的示例中,共有33个虚拟端口。其中4个可同时用作GPIO和RGPIO;29个 仅限GPIO。攻击者可以对如何将多功能虚拟端口分配到不同组进行任意猜测。不同的虚拟 端口分配方式会产生不同的混淆强度估计。

Metric calculation phase :在此阶段,我们计算混淆强度。此步骤可用于确定在资源 约束(如置换块输入/输出数量和时序约束)下能够实现最佳混淆效果的端口。相关度量将 在第4.2节中讨论。

对于包含多个可编程组件的印刷电路板,端口选择框架可以分别应用于每个可编程组 件。来自多个可编程组件的选定端口由同一个置换块进行置换。

4.2.混淆强度

攻击者的目标是找出芯片之间的正确连接。为实现这一目标,攻击者可以直接检查置换块 的输入/输出组合,或检查密钥。攻击者实现该目标的难度被定义为混淆强度,可用破解概 率来表示。在本文中,当攻击者尝试输入/输出组合时,破解概率表示为Pcom;当攻击者尝 试密钥时,破解概率表示为Pkey。Pcom和Pkey 相等的条件是输入/输出组合与密钥之间存 在一一对应关系。

在本节余下部分,将给出一个流程以估算Pcom。如第4.1节所述,虚拟端口可以采用不 同的方式进行分组。攻击者可能在所有可能情况中对如何分组虚拟端口进行盲目猜测。他 任意选择一种虚拟端口的分组方式。这种选择可能导致需要尝试的暴力组合数最少。这正 是本节所要估算的混淆强度的下界。在分析攻击者检查输入/输出组合时的混淆强度时,需 考虑不同的情形。

情况1 :仅使用真实端口的混淆。根据有限的信息(已在第4.1节中说明),真实端口 可被分为M(M 1)组。设每组包含Rk(1 k M)个端口。我们以图5中的应用为例。在 预处理阶段和分组阶段之后,仅剩下触摸感应设备和显示模块的连接用于混淆目的(M = 2)。R1= 6,因为微控制器单元上有6个真实端口与触摸感应设备通信;R2= 13,因 为显示模块需要微控制器单元上的13个端口。

我们还定义了两种子情况,称为个体分组测试可行(IGTP)和个体分组测试不可行 (IGTI)。IGTP意味着攻击者只需研究组内的连接即可确定正确性,而无需考虑所有其 他组的连接。这将导致攻击者需要考虑的组合数减少,从而导致混淆强度较弱。另一方面, IGTI意味着一组的连接可能与其他组的连接对攻击者而言相互混淆。这会增加混淆强度。F or IGTP,该度量由公式(3)给出,而IGTI由公式(4)给出,

CR IGTP= ∑ k=1 M1 Rk!, (3)
CR IGTI= ∏ k=1 M2 Rk!, (4)

其中M1(1 steIGTP组的数量,M2(M2 M)是IGTI组的数量。可以很容易看出M= M1+ M2。 M) i h

情况2 :包含真实端口和虚拟端口的混淆。这与情况1类似,但还为每组额外添加了Dk(1 k M)个虚拟端口。对于IGTP,该度量由公式(5

基于混淆的印刷电路板防未经授权操作与逆向工程保护框架

5.安全分析

攻击受保护的设备时,攻击者试图实现三个目标:超量生产、克隆或未经授权的操作。在 本节中,我们将讨论实现这些目标的潜在攻击及对策。

5.1.潜在攻击与攻击级别

为实现上述攻击目标,攻击者试图获取正确的密钥或输入/输出排列。攻击者可实施以下攻 击,其中一些攻击可直接向攻击者提供此信息,而另一些攻击则用于加强其他攻击。

暴力破解攻击 :这是最直接的一种攻击方式,涉及攻击者尝试所有密钥或输入/输出排 列。此类攻击的成功与否在很大程度上取决于破解概率(无论是Pcom还是Pkey)以及验证 系统行为正确所需的时间。我们在第6节中提供了在最坏情况假设下的验证时间定量结果, 即最坏情况是攻击者可以在一个时钟周期内验证每个密钥或输入/输出排列。根据第6节所 示的结果,攻击者通过暴力破解手段难以攻破我们的混淆方法。

表面走线探测攻击 :对于每个系统而言,置换块输入与相应输出之间的波形完全相同, 即使密钥可能不同。拥有正常工作系统的攻击者可以使用多通道逻辑分析仪探测置换块的 所有输入/输出。通过简单匹配所探测信号的波形,攻击者就能找出可编程和非可编程组件 之间的真实连接。

内存泄露攻击 :存储在外部非易失性存储器(通常为闪存)中的数据可通过多种商业 工具提取。外部存储器指位于电路板上的片外存储器,且所有端口均暴露在外。当密钥存 储在该存储器中时,攻击者可通过实施此类攻击获取密钥,并利用该密钥操作其他受保护 设备。为对外部存储器实施此攻击,攻击者可遵循以下步骤:(i)识别调试端口;(ii) 提取并分析固件;(iii)查找密钥。为识别调试端口,需使用简单的焊接台、万用表或逻 辑分析仪。通过分析逻辑分析仪报告的数据,可确定各端口的功能。若能找到被攻击闪存 芯片的详细数据手册,则此步骤可跳过。根据第一步中识别出的端口,攻击者可在存储器 与台式电脑之间建立串行/并行通信通道。该通道使攻击者能够向闪存发送命令。最后一步 中,为查找密钥,攻击者需要从闪存中读取数据。根据闪存的接口类型(串行或并行), 可向闪存发送适当的读取命令。可利用逻辑分析仪监控闪存的响应,通过分析该响应即可 恢复键。

CPLD重新安装攻击 :攻击者可以将置换块(通常为CPLD)从电路板上拆卸下来, 并使用适当的载板适配器将其重新安装到其他平台或同一印刷电路板上。此攻击不应损坏 封装,可通过以下步骤完成。首先,可通过热风加热移除球栅阵列芯片。接下来,可使用 吸锡带清除焊料残留。然后,攻击者可以选择以下两种方式之一重新安装球栅阵列芯片: (i)安装到另一块定制印刷电路板上;(ii)使用合适的载板适配器(例如Ironwood Electronics[Ironwood 2016]的商用产品)重新安装到同一印刷电路板上。重新安装拆 卸下来的CPLD使得硬件探测成为可能。此攻击本身不会直接向攻击者提供秘密信息,但 结合该攻击可使硬件探测攻击更加强大。

中间层探测攻击 :攻击者可通过非破坏性逆向工程技术(如基于X射线的技术[Asadizan jani2015;Ahi等 2015])获取完整的PCB布局。在布局信息的引导下,攻击者可铣出用于探测 每个CPLD端口的孔洞。这些孔洞使攻击者能够访问CPLD端口,而不会损坏电路板上的其他走 线。

集成电路逆向工程攻击 :攻击者可以完全逆向工程电路板上的任何芯片,并彻底获取 存储在这些芯片中的秘密信息。此类机密信息包括用于解锁置换网络的密钥、可编程组件 的固件、置换网络结构等。逆向工程攻击的具体方式将取决于置换芯片的实现形式(专用 集成电路、现场可编程门阵列、复杂可编程逻辑器件等)以及攻击者希望提取的内容(密 钥、比特流等)。如果密钥或固件存储在外部非易失性存储器中,则可采用上述内存泄露 攻击。如果密钥或固件存储在片上,则需要耗时的逆向工程过程,该过程可能需要多个芯 片(样本)以及数百万美元设备(湿法或干法刻蚀设备、扫描电子显微镜(SEM)或聚焦 离子束(FIB)、探针台等)。

一般的逆向工程流程如下:(i)使用一个或多个芯片逆向工程物理布局和连接。此步 骤需要去封装以暴露芯片。由于芯片是多层结构,应通过扫描电子显微镜(SEM)对每一 层进行反复的去层和成像,然后进行图像拼接。由于该过程容易出错,可能需要多个芯片 才能正确提取网表。(ii)在提取的布局/网表中确定所需信息的位置。有了网表后,下一 步取决于存储数据的非易失性存储器类型(例如闪存和电子熔丝)。如果使用的是电子熔 丝,则密钥/固件可能直接从上一步获取的图像中识别出来,此时攻击即告完成。对于闪存 情况,则利用逆向工程得到的网表来识别携带所需数据的内部总线/网络。(iii)使用聚焦 离子束探针台进行探测,以提取密钥信息。操作员在新的(未去层的)样品上定位前一步 骤中找到的内部总线/网络,然后通过聚焦离子束在目标位置进行铣削并沉积金属,从而建 立物理接触,以便使用探针台读取密钥信息。需要注意的是,为了成功读取数据,可能需 要通过或避开芯片内的各种防篡改机制。上述所有步骤执行起来均不简单,且需要大量投 入。

在IBM的一篇知名文章[Abraham等人 1991],中,作者提出可根据攻击者的预期能 力和攻击强度将其分为三类:

第一类(聪明的外部人员) :他们通常很聪明,但可能对系统了解不足。他们只能使用 中等复杂程度的设备。他们通常试图利用系统中已存在的弱点,而不是尝试制造新的漏洞。

第二类(有知识的内部人员) :他们具有丰富的专业技术教育背景和经验,对系统的某 些部分有不同程度的了解,并可能接触到系统的大部分内容。他们通常可以使用高度精 密的分析工具和仪器。

第三类(有资金支持的组织) :他们能够组建由具备相关且互补技能的专家组成的团队, 并拥有充足的资金支持。他们有能力对系统进行深入分析,设计复杂的攻击,并使用最 先进的分析工具。他们可能会将第二类对手作为攻击团队的一部分。

暴力破解攻击和表面探测攻击可由一类攻击者实现。由于这类攻击者对系统的了解有 限,暴力破解攻击是最直接的方法。配备示波器后,此类攻击者即可实施表面探测攻击。 利用一些低成本设备,如加热系统和BGA载板适配器,这些攻击者还可实现CPLD重新安装 攻击。如果密钥存储在电路板上,则一类攻击者还可实施内存泄露攻击。与一类攻击者相 比,第二类攻击者能够使用更精密的仪器进行中间层探测攻击。实施此类攻击所需的工具 应具备对多层PCB进行非破坏性逆向工程和钻孔的能力。第三类攻击者能够实施集成电路 逆向工程攻击,因为他们拥有最先进的分析工具和充足的资源。

5.2.安全等级和攻击覆盖范围

考虑到不同类型的攻击者及其能力,对策被划分为三个安全需求等级。

低级别安全需求 :满足此安全要求级别的设备直接将相同的密钥存储在非易失性存储 器中。为实现低级别安全需求,我们建议可编程组件和置换块均采用BGA封装,并在印刷 电路板中至少使用一个中间层进行连接布线。图8(a)展示了BGA封装的一个示例。由于当 前印刷电路板的复杂性,多层结构的要求较容易满足。关于BGA封装的要求,表II中的统 计结果显示,在引脚数大于或等于64的可编程组件中,有较大部分的混淆候选对象采用了 BGA/VTLA(VTLA是微芯科技使用的一种与BGA封装非常相似的封装标准)封装(原因 将在第6节中说明)。使用BGA封装不会引入额外的面积和功耗开销,且对于同一型号的芯 片,BGA封装与其他封装的成本相同。在进行PCB布线时,我们识别出可编程组件与置换 块之间的所有连接,并将其布线于中间层。该布线要求在本文后续部分称为中间层布线。 图8(b)展示了一个隐藏连接的示例。此步骤旨在降低攻击者探测工作设备以识别芯片间连 接的可能性。同时还应应用低成本的防篡改技术[Karri等人2010;Skorobogatov2006]。 除了封装和布线要求外,隐藏每个密钥位与开关之间的关系可以进一步增加破解难度。 为了实现这一点,在配置置换网络之前,应使用安全哈希函数对密钥进行预处理。

中等安全级别要求 :大多数工业系统和消费电子产品不可避免地需要系统重启。由于 每次重启后重新应用密钥在此情况下通常不可行,这些系统需要将密钥存储在非易失性存 储器中,并在重启前自动重新加载。这种行为为攻击者提供了通过某些技术(如CPLD重 新安装攻击)破坏混淆的机会。

为了满足中等安全级别要求,需要采用BGA封装和中间层布线。此外,我们建议使用 一种板级物理不可克隆函数(PUF),该函数结合外部密钥(输入)在置换块内计算生成 内部密钥。为实现这一点,应修改置换块的固件以集成用于板级PUF的测量模块[张等, 2015;Wei等 2015]。该板级PUF利用PCB制造过程中的工艺变化,这些工艺变化包括走 线宽度/厚度等方面的差异。这些差异会导致相同走线在不同印刷电路板上的阻抗/电容发生 变化。置换块可以从这些走线中生成特征签名。例如,可将走线构造成环形振荡器电路, 并将其频率作为特征签名进行测量。板级PUF应对PUF的任何阻抗变化保持敏感:对走线、 焊点和芯片的任何结构变化都应被PUF捕捉。对走线的改变可能指对走线进行探测。使用 示波器等设备对走线进行探测时,应导致PUF输出发生显著变化。对焊点的改变表示有人 从印刷电路板上移除或添加焊点。移除芯片时,攻击者需将焊点从该芯片的焊盘上拆除。 如果任何板级PUF连接到这些焊盘,则PUF的输出应随之改变。对芯片的更改意味着芯片 被替换。这种替换包括攻击者安装探测系统(即插座)以使芯片可被访问的情况。

设计者在开发板级物理不可克隆函数时应考虑一些挑战。这些挑战包括鲁棒性和分辨 率。鲁棒性是指PUF输出在各种环境条件(例如温度和电压)下的稳定性。如果未发生结 构变化,置换块应接收到稳定的PUF响应。然而,环境变化可能引入错误,因此可能需要 某些纠错码来消除这些错误。另一个挑战是分辨率。板级物理不可克隆函数应对PUF走线 的最小变化都足够敏感。需要注意的是,如何实现板级物理不可克隆函数的详细讨论超出 了本文范围,被视为正在进行的工作。

实现中等安全级别要求的通用流程如图9所示。首先,将用于读取PUF输出的专用固件 下载到置换块中。然后,置换块将加密的PUF读数发送回设计者。设计者根据接收到的 PUF输出修改置换固件,并将该固件发送至组装环节,重新加载到置换块中。当印刷电路 板/系统处于现场时,该修改后的置换固件只有在接收到正确的PUF读数时才能正常工作。 此机制可防范CPLD重新安装攻击,因为在攻击者平台上的PUF读数与原始板不同。由于 PUF读数不同,密钥无法生成正确的输入/输出排列。

或者,可以利用多种其他方法来实现基于置换的混淆。详细的描述和定义如下所示。

统一固件 :相同的固件直接加载到任意置换块中,并且它们共享相同的密钥。

基于密钥 :密钥信息(例如可编程组件的输出顺序)嵌入在固件中。每个置换块和可编 程组件接收不同的固件,且密钥也是唯一的。

芯片签名 :在置换块的标识符中使用芯片级物理不可克隆函数(例如静态随机存取存储器物理不可 克隆函数或环形振荡器物理不可克隆函数)。所有置换块加载相同的固件,但输出不同的PUF读数。 这些加密的PUF读数将被发送给设计者。设计者可以计算出密钥,并将其返回给系统。

板级签名 :板级签名(板级物理不可克隆函数读数)存储在置换块中。需要使用比较器 将上述存储的PUF签名与实际板级PUF输出进行比较。如果实际读数与存储值匹配,则系 统可以被激活。

与所提出的板级物理不可克隆函数+置换方案相比,这些替代方法存在若干缺点:

—统一固件和基于密钥的方法即使面对低成本攻击(如CPLD重新安装攻击和内存泄露攻 击)也容易受到攻击。

—芯片签名方法可以消除内存泄露攻击,但容易受到CPLD重新安装攻击。作为合法用户 的攻击者可以重新安装置换块,并将正确密钥加载到其中。

—板级签名方法容易受到重放攻击,因为PUF读数存储在芯片中。通过攻破内存,攻击者 可以恢复存储的PUF读数,并在系统获取板级物理不可克隆函数时无论何时都重复发送相 同的值。这样一来,即使复杂可编程逻辑器件被从原始位置移除,攻击者仍能正确配置置 换块,从而实现CPLD重新安装攻击。

—此外,该方法需要一个比较器来比较上述存储的PUF签名与实际板级PUF输出。这很容 易通过故障注入攻击被绕过,从而导致在没有正确PUF签名的情况下电路板仍可正常工作。

板级物理不可克隆函数提供了系统完整性检查(即保证复杂可编程逻辑器件连接在原 始印刷电路板上)以及为不同印刷电路板提供唯一密钥的优势。因此,利用物理不可克隆 函数增强了基于置换的混淆,同时基于置换的优点仍然起着主要作用。与上述替代方法相 比,实现所提出的板级物理不可克隆函数对于消除各种低成本攻击至关重要。

高级安全要求 :在这种情况下,密钥不存储在系统的非易失性存储器中,重启后需要 重新将密钥导入系统。满足此安全要求的设备应具备抵御所有已知攻击的能力。关键应用 (如军事设施和存储敏感数据的商用设备)需要这种级别的保护。此外,这些设备的密钥 应得到良好保护。可利用操作员生物特征(例如指纹、虹膜等)来生成密钥[Beng等人 2008]。生物特征难以被复制或窃取[Wayman等人 2005]。结合所提出的保护

该框架结合基于生物特征的密钥生成技术,使密钥与操作员绑定。

由于密钥未存储在非易失性存储器中,因此在CPLD中利用D触发器链构成移位寄存器。 CPLD上的一个专用端口被设计为串行密钥输入。移位寄存器的每一位配置一个Benes网络开关。 当CPLD断电时,D触发器丢失其值,密钥随之被销毁。每次系统重启时,用户都需要重新向 CPLD输入密钥。我们还需要考虑电路板断电后存在的数据残留现象[Drimer 2009](触发器 可能存在偏置),尤其是在低温环境中。为了实现更高安全级别,可以开发定制化CPLD,以便 在断电后彻底销毁密钥。

针对所有级别的安全需求,我们假设可编程组件的固件可以通过互联网以加密形式下 载。密钥存储在微控制器单元中用于解密固件(例如RSA私钥)。在不知道解密密钥的情 况下,攻击者无法对固件进行逆向工程。此外,存储在可编程组件片上闪存中的固件应得 到妥善保护。目前,已有多种商业工具[科德2016;Wilkinson 2015]为微控制器单元/现 场可编程门阵列提供此类保护。例如,恩智浦的CodeWarrior[科德 2016]可以设置安全 位。未授权读取固件将导致整个闪存被擦除。

考虑到前述不同安全要求级别下的各种攻击者能力,我们在图10中全面分析了防护覆 盖范围。满足低级别安全需求的设备可部分消除一类攻击者所实施的攻击(暴力破解攻击 和硬件探测攻击)。由于混淆连接隐藏在中间层,硬件探测攻击无法实施。然而,由于相 同的密钥存储在板上非易失性存储器中,一类攻击者可以提取该密钥,并将其用于激活其 他印刷电路板(存储器泄露攻击)。这些攻击者还可以将置换块重新安装到其平台,或使 用载波适配器将其重新安装回原始印刷电路板(CPLD重新安装攻击),以实施硬件探测 攻击。

如果设备符合中等安全级别要求,则可以消除内存泄露攻击和CPLD重新安装攻击。在 此安全要求级别的设备中,采用了带有板级唯一标识符(板级物理不可克隆函数[张等, 2015;Wei等 2015])的混淆方案。该组合可确保以下几点:

—置换块仅在直接连接到其原始印刷电路板时,才能使用预存密钥解锁系统。—不同印刷 电路板的密钥各不相同。

“原始印刷电路板”要求表明,如果将复杂可编程逻辑器件安装在另一块定制印刷电路板上,它将 接收到不同的PUF响应。另一个要求 “直接连接”意味着,如果使用适配器/插座将复杂可编程逻辑器件与原始印刷电路板连接,板级物 理不可克隆函数的响应将会改变。原因是适配器/插座为板级物理不可克隆函数引入了额外的阻抗。

不幸的是,系统重启后自动加载密钥再次使得中间层探测攻击成为可能。此类攻击并 非重新分配置换块,而是通过X射线等非破坏性技术提取电路板布局[Asadizanjani 2015]。 掌握该信息后,第二类攻击者可以创建孔洞以探测置换块的引脚。该攻击可在运行时完成, 无需对印刷电路板进行去层处理。即使由于中间层极为复杂而无法实现中间层探测攻击, 第三类攻击者仍可通过逆向工程芯片获取密钥。

为了最终防止所有已知攻击,系统断电时应销毁密钥。高级安全要求通过在易失性存储 器(嵌入式D触发器链)中存储密钥,使设备能够实现这一目标。由于II类和III类攻击者在 重启后需要一个工作设备,因此他们无法对断电后密钥被销毁的设备实施攻击。

6.实验结果

在本节中,我们根据多个标准评估了所提出的混淆方法的性能。我们从飞思卡尔[Fre 2014]和德州仪器[Tex 2016]中选取了12个参考设计,作为混淆方案的目标。这些参考 设计如下: (1)高性能微控制器步进电机驱动参考设计(2)超低功耗多传感器数据记录仪带NFC接 口参考设计(3)集成功率因数校正的单轴电机控制参考设计(4)SimpleLink多标准 CC2650SensorTag参考设计(5)用于隔离低功耗应用的高效电源和数据传输参考设计 (6)超声波水流量测量参考设计(7)使用FRAM微控制器的恒温器实现参考设计(8)三相无 刷直流电机无传感器控制参考设计(9)双相计量参考设计(10)照明控制模块参考设计(11) 活动监视器参考设计(12)三相交流感应矢量控制参考设计

对于每个参考设计,我们在本节中进行以下分析:(i)涉及不同类型端口的混淆场景(即 仅真实端口,或真实端口与虚拟端口两者),(ii)参与混淆的输入输出数量,以及(iii) 从验证时间角度衡量的混淆强度。这些数据在同一表格中进行比较。除了这些比较之外, 本节末尾还讨论了多密钥效应对混淆强度的影响。

6.1.混淆强度总结

所有参考设计的混淆强度汇总如表III所示。在该表中,可编程组件列提供了这些组件的型 号。输入/输出列表示置换块所需的输入/输出总数。组合数列指出了攻击者需要检查的置 换块输入/输出组合的数量。仅使用实端口表示仅使用真实端口进行混淆。实端口和虚拟端 口表示在混淆中同时使用了真实端口和虚拟端口。分组条件列指的是计算时所依据的条件

表III .混淆结果与验证Ti me

设N计o. 可编程 组件 I/O
组合数(C)
使用实端口1.03E+40
组合数(C)
使用实端口1.03E+40
破解 概率
(Pcom)
时钟 频率
(f)
验时证间(T) 分组 条件
1 TM4C123GH6PM 35/35
使用实端 口6.23E+09 9.70E‐41 60兆赫 5.4E+24年 0.1082小时 IGTI
2 MSP430FR5969 13/13 1.61E‐10 16兆赫 Both
2 MSP430FR5969 13/13 1.61E‐10 16兆赫 Both
2 MSP430FR5969 30/13 仅 R&D
使用实端
7.46E+17
口6.20E+23
1.34E‐18 16兆赫 1.5E+03年 Both
3 TMS320F28050 24/24 1.61E‐24 60兆赫 2.0E+16年 Both
3 TMS320F28050 34/24 仅 R&D
使用实端
8.14E+31
口3.56E+14
1.23E‐32 60兆赫 2.6E+24年 85.8小时 Both
4 CC2650 17/17
使用实端 口3.05E+29 2.81E‐15 48兆赫 IGTI
4 CC2650 17/17
使用实端 口3.05E+29 2.81E‐15 48兆赫 IGTI
5 MSP430FR5969 28/28 3.28E‐30 16兆赫 6.0E+14年 Both
5 MSP430FR5969 32/28 仅 R&D
使用实端
1.10E+34
口8.84E+30
9.09E‐35 16兆赫 2.2E+19年 Both
6 MSP430FR697x 29/29
使用实端 口8.22E+33 1.13E‐31 16兆赫 1.8E+16年 IGTI
7 MSP430FR4133 31/31
使用实端 口2.00E+11 1.22E‐34 16兆赫 1.7E+22年 1.1小时 IGTI
8 MC9S08AW60
MKM34Z128CLL5 37/3
18/18 5.00E‐12 48兆赫 1.4E+6年 Both
8 MC9S08AW60
MKM34Z128CLL5 37/3
18/18 5.00E‐12 48兆赫 Both
8 MC9S08AW60
MKM34Z128CLL5 37/3
37/18 7仅使 R&D 用实端口1 2.10E+20
.10E+35
4.76E‐21 48兆赫 Both
9 使用实端 口6.20E+09 9.09E‐36 50兆赫 7.0E+19年 2.2分钟 IGTI
10 SKEAZ128 13/13 1.61E‐10 48兆赫 6.1E+3年 IGTI
10 SKEAZ128 13/13 1.61E‐10 48兆赫 IGTI
10 SKEAZ128 35/13 仅 R&D 使用实端 9.20E+18
口4.50E+12
1.09E‐19 48兆赫 24.5小时 IGTI
11
12
MCF51MM256CLL 19/19 2.22E‐13 50.33兆赫
50兆赫
5.9E+10年 IGTI
IGTI
11
12
MCF51MM256CLL 19/19 2.22E‐13 50.33兆赫
50兆赫
IGTI
IGTI
11
12
MCF51MM256CLL 52/19 6/6 R&D 9.40E+24
48
2.17E‐24
0.0208
50.33兆赫
50兆赫
IGTI
IGTI
MC56F8013VFAE 仅使用实 <1 ms

端口 组合数(C)通过公式(7)计算。IGTI表示所有组之间是相互依赖的。因此,C的计算应基 于公式(4)和公式(6)。IGTP表示所有组之间是相互独立的。因此,C的计算应基于公 式(3)和公式(5)。Both表示IGTP和IGTI组同时存在。破解概率列可通过公式(13)计算 得出。较小的破解概率意味着更强的混淆性能。时钟频率列表示可编程组件所能提供的最 大时钟频率。我们将攻击者确定所应用的输入/输出组合是否正确所需的时间定义为验证时 间。验证时间可通过T=组合数(C)×微控制器单元工作时钟频率(f)计算得到。在计算该 值时,假设攻击者可在每个时钟周期内验证一个组合。然而,在实际情况下,当攻击者应 用一个新的输入/输出组合时,需要观察电路板的行为以判断该组合是否正确,这一过程将 远慢于一个时钟周期。因此,该假设应被视为悲观估计。

灰色背景中的验证时间明显短于其他情况。相应案例的一个共同特征是,混淆仅涉及 真实端口,而虚拟端口存在。因此,在某些仅使用真实端口进行混淆无法提供满意混淆强 度的情况下,我们需要利用虚拟端口来增强混淆强度。除了验证时间非常短的案例外,其 余案例的验证时间都非常长(至少数千年)。在这些案例中,我们可以看到它们的置换块 输入端口均超过30个(如I/Os列所示)。在这些案例中,真实端口的最小数量为13。一般 来说,为了获得满意的混淆强度,我们认为应存在至少15到20个虚拟端口和10到15个真实 端口。如果仅有真实端口,则需要超过20个真实端口用于混淆。上述要求很容易通过包含 具有等于或超过64引脚可编程组件的印刷电路板来满足(详细内容将在第6.2节中展示)。

6.2.适用性

表III中的第4号和第12号参考设计表现出较高的破解概率且验证时间极短。与其他具有强混 淆性能的参考设计相比,这些设计采用的是端口少于32个的小型微控制器单元。这些微控 制器单元通常无法提供足够的端口用于混淆。例如,大多数端口用作通信端口和模拟通道, 无法在所提方案中加以利用。对于更大的板子,例如可编程组件具有大于或等于64引脚时, 混淆强度将会更好。这一要求在用于更复杂应用的电路板上很容易满足。

我们调查了一些主要的微控制器和数字信号处理器制造商。结果表明,所提出的混淆 方法可应用于每个制造商的大部分微控制器单元,如表IV所列。

因此,我们的混淆方案可以保护大量印刷电路板。对于那些可编程组件引脚数少于 64引脚的设计,制造商可以选择将其替换为更大的组件,以实现对逆向工程的保护,同时 付出合理的开销。

6.3.多密钥效应

在本节中,我们提供仿真值和理论值结果以及它们之间的比较。我们将结果分为三个阶段进行展示:

第一外层阶段结果和条件概率估计 :首先,给出了8位和32位Benes网络在第一外级环 路数量的概率分布。理论结果是根据第4.3.1节中描述的算法计算得出的。其次,通过在第 4.3.2节中讨论的对1E4次随机输入/输出组合进行仿真,估计了条件概率Pr(·|·)。

完整网络结果 :基于第一外层阶段结果和条件概率,按照第4.3.3节中提供的方法计算 了多个密钥的组合数分布。将所提出的方法得到的理论结果与仿真结果进行了比较。仿真 结果来自1E6次随机输入/输出组合的模拟,是条件概率估计所用模拟次数的100倍。

对混淆强度的影响 :当攻击者检查密钥时(Pkey),根据密钥数量的理论分布计算破 解概率的最小值、最大值和均值。这些值与攻击者检查输入/输出组合时的破解概率(Pcom) 进行比较。

6.3.1第一外级与条件概率估计

对于一个8位Benes网络,总的输入/输出组合数为8!= 40,320, 这在时间上是可行的 完整的仿真。评估了所有输入/输出组合,并记录了第一外级贡献的环路数量。基于此,表 V展示了环路数量的概率。表V的最后一列显示了所有环路数量的累积概率。该值必须为1, 以表明所有可能的环路数量均已被考虑。同一列中仿真值与理论值相同,表明我们的方法 能够实现精确的概率计算。

对于一个32位Benes网络,输入/输出组合的总数超过2.6E+ 35,进行全面仿真在时 间上不可行。我们在时间可行性的意义上完成了最大试验次数(1E+ 6),并在表六中将 其与理论结果进行比较。由于仿真并不全面,仿真值和理论值略有差异。受限于仿真中的 试验次数,小于1E−6的仿真概率被报告为零。然而,理论概率具有高分辨率。理论概率 与仿真概率之间的平均误差为0.001。

6.3.2.完整网络结果

展示了在32位Benes网络中多个密钥的概率分布。根据公式(2), 一个32位Benes网络包含四个外层阶段,每个阶段包含16个开关。每个外层阶段贡献的最 大循环数为16,即任意一级中的开关数量。显然,每个外层阶段的最小循环数为1。因此, 整个网络所表示的最小和最大循环数分别为 1 ∗ 4= 4和16 ∗4= 64。总循环数(公式(22) 中的L)从4变化到64,并计算相应的概率(Pr(L))。最后,理论结果以红色圆圈的形式 显示在图11(a)中。仿真概率基于1E6次随机输入/输出组合获得,并在同一图中以柱状图形 式展示。

第一外级中的循环数量概率无法通过少量的部分输入/输出组合仿真进行精确估计。然而, 这些概率可以利用所提出的理论算法准确计算。这一优势使得全网络环数分布

【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器状态空间平均模型的建模策略。该方法通过对系统中多个相互耦合的DC-DC变换器进行统一建模,构建出整个微电网的集中状态空间模型,并在此基础上实施线性化处理,便于后续的小信号分析与稳定性研究。文中详细阐述了建模过程中的关键步骤,包括电路拓扑分析、状态变量选取、平均化处理以及雅可比矩阵的推导,最终通过Matlab代码实现模型仿真验证,展示了该方法在动态响应分析和控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事微电网、新能源系统建模与控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中多变换器系统的统一建模方法;②理解状态空间平均法在非线性电力电子系统中的应用;③实现系统线性化并用于稳定性分析与控制器设计;④通过Matlab代码复现和扩展模型,服务于科研仿真与教学实践。; 阅读建议:建议读者结合Matlab代码逐步理解建模流程,重点关注状态变量的选择与平均化处理的数学推导,同时可尝试修改系统参数或拓扑结构以加深对模型通用性和适应性的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值