Imprecise Security: Quality and Complexity Tradeoffs for Hardware Information Flow Tracking.2016

来源

W. Hu, A. Becker, A. Ardeshiri, Y . Tai, P. Ienne, D. Mu, and R. Kastner. Imprecise Security: Quality and Complexity Tradeoffs for Hardware Information Flow Tracking[C], IEEE/ACM International Conference on Computer-Aided Design (ICCAD), Article 95, Nov. 2016.

MY REVIEW

第1节介绍了研究背景,并说明创建一个GLIFT模型来精确测量每一bit位信息流是难以实现的。为此本文通过引入false positives增加少量假阳性信息流的同时,有效降低GLIFT逻辑的复杂性。

第2节首先以AND-2们为例分析了GLIFT的精确性与复杂度。AND-2的GLIFT不精确策略为:Ot=At+Bt。如果A=0且Bt=1,Ot实际由At决定,这里却必为1,说明这是一种保守但安全的策略。相应的AND-2的GLIFT的精确策略为:Ot=A·Bt+B·At+At·Bt。显然精确策略虽然精确度高,但其复杂性也远高于不精确策略。
接下来又介绍了生成GLIFT逻辑的方法,可以概括为:硬件设计通过逻辑综合后通过Tech library映射为门级网表,门级网表通过GLIFT library进一步映射为GLIFT逻辑。

第3节中分析了不同的逻辑综合方法与tech映射库会影响GLIFT逻辑的复杂度与精确度,这是因为一些逻辑在功能上等价但在跟踪逻辑上复杂性不相同,也因为逻辑综合在消除冗余上的变化会改变GLIFT逻辑的精确度。不过一般而言,复杂度与精确度是需要权衡的两个方面。

第4节中,4.1节介绍了一种面向更复杂布尔门的生成不同精度GLIFT逻辑的方法。这种方法的依据是:精确的GLIFT考虑了标签(taint)传播过程中变量的值,因此更加精确。因此,通过忽略这些变量值来逐渐放松精度使精度朝着最不精确的方向前进,并以AND-3为例说明了上述方法的可行性。4.2节提出了一种简化GLIFT逻辑但不影响其精度的方法,即通过引入多路复用器对可替换的跟踪逻辑进行选择并统计发生替换的逻辑数量,在满足替换数量阈值要求的同时替换前后电路等效,由此得到最简化的GLIFT逻辑。为得到符合条件的最大阈值,这里使用了二分搜索进行多次迭代。4.3节提出了一种引入false positives的简化GLIFT逻辑的方法,其核心思想是利用电路内部的don’t care条件将门电路的跟踪逻辑替换为更为简单的跟踪逻辑,比如当11是don’t care输入条件时,OR-2门与XOR-2门功能上等效,因此可将OR-2的跟踪逻辑替换为XOR-2门,极大的简化了GLIFT逻辑,这种替换不会引入false positives。但需要注意的是,有些门对的don’t care相互依赖,如果同时替换,就可能会出现false positives。4.4节提出了通过创建一定数量false positives的不精确GLIFT模型,加速安全属性验证过程的方法。即首先将设计网表中的所有门映射到最不精确的跟踪逻辑版本中,从而在较短时间内尽量多的捕获违规行为,再通过逐渐减少不精确门的数量并查看是否仍然出现违规情况来进一步判定是否为误报。这种方法同时也可以将导致违规的安全漏洞定位到整个设计中相对较小的部分。

第5节展示了实验结果,使用面积作为复杂性的度量,使用误报(false positives)百分比作为精确度的度量。5.1节对IWLS基准使用不同的ABC指令进行逻辑综合优化,说明了不同逻辑综合策略会对GLIFT逻辑的复杂性和精确度产生影响。5.2节通过使用第4.2节和第4.3节中的方法来简化GLIFT逻辑,使用的GLIFT库中包含了使用第4.1节介绍的方法创建的AND-2和OR-2的不同版本的跟踪逻辑。实验中使用Yices来解决QBFs(4.2中方法),ABC来搜索设计网表中的don’t care条件(4.3中方法)。说明了只需要增加少量的误报(平均0.20%),就可以极大的简化GLIFT逻辑(复杂度降低14.47%)。5.3节将不同位数RSA加密内核验证“密钥泄露到密文准备输出”这一安全属性的所需的时间作为观察对象,按4.4节中的方法使用不同比例的不精确门创建对应的不精确GLIFT逻辑电路,并观察这些电路验证这一安全属性的所需的时间,表明了不精确门比例的增加将显著加速验证过程。在实际设计中该方法也存在使用价值,可以在快速发现潜在的安全漏洞的同时将分析限制在设计的较小区域。

第6节中提到了RTL级与门级信息流跟踪技术的权衡。

梳理

ABSOTRACT

在硬件级别精确计算每一位信息流的IFT技术成本很高。在这文中,我们着重于IFT逻辑的精确性。关键思想是:有选择地只引入误报,在降低安全逻辑的复杂性的同时提供保守和安全的信息流响应。
1)研究了逻辑综合对硬件IFT质量和复杂性的影响,揭示了不同的逻辑综合优化如何影响IFT逻辑的误报量和设计开销。
2)提出了新的技术来进一步简化IFT逻辑,同时不添加或只添加最小数量的误报。
3)提供了一种定量引入误报的解决方案,以加速信息流安全验证。
基于IWLS基准测试的实验结果表明,该方法在平均增加0.20%的误报率的同时,可以将GLIFT的复杂度降低14.47%。通过定量引入假阳性,我们可以在验证时间上实现高达55.72%的加速。

1.INSTRUCTION

创建一个GLIFT模型来精确测量每一位信息流已经被证明是一个NP完全问题[10]。一种快速而通用的推导GLIFT电路(也称为GLIFT逻辑)的方法使用了构造技术[10],可以允许多项式时间生成,但也引入了一定数量的不存在的信息流。这些额外的不存在的信息流(false positives)代表了假阳性。false positive是一种安全保守的方法,即当安全属性实际上受到侵犯时,它永远不会谎称这个属性是有效的。但当硬件没有违反安全属性时,它有可能会错误地声称硬件违反了安全属性。

不精确的GLIFT逻辑通常较小,因为用于逻辑原语的不精确GLIFT模型往往更简单,这可以减少安全验证时间。此外,不精确的GLIFT逻辑可能会更早地捕捉到信息流违规。在本文后面的部分展示了使用不精确的GLIFT逻辑可以完成安全属性验证(验证求解器将在合理的时间内完成),而在相同的硬件设计中,使用精确的GLIFT逻辑无法完成相同属性的验证。

不精确的GLIFT逻辑通过添加false positions来完成。它可以在设计流程的不同阶段引入。例如,在逻辑综合阶段,可以通过改变信号的连通性来影响信息流;在映射阶段,可以为tech library中的逻辑原语创建不同的GLIFT模型(形成GLIFT library),从而可以有选择地进行映射。

在本文中,我们研究了硬件IFT在质量和复杂性方面的各种权衡。我们关注逻辑综合优化和不同映射策略对GLIFT逻辑的精度和复杂性的影响。具体而言,本文的贡献如下:·
· 揭示逻辑综合技术(logic synthesis techniques)对硬件IFT精度和复杂性的影响;
· 提出简化GLIFT逻辑的技术,不引入或最少的引入误报;
· 提供一种通过定量引入误报的方案来加速信息流安全验证并定位安全漏洞。

本文的安排如下。第2节介绍了GLIFT如何度量硬件信息流和GLIFT逻辑的生成。第3节将讨论逻辑综合如何影响GLIFT逻辑的精确性和复杂性。第4节提供了允许通过库映射来权衡精度和设计开销的方法。第5节介绍了使用IWLS基准测试的实验结果。第6节简要回顾了部分相关工作,第7节总结了论文。

2.BACKGROUND

2.1 Gate Level Information Flow Tracking

门级信息流跟踪(GLIFT)建立在这样一个概念上:当且仅当A的值对B有影响时,信息从信号A流向信号B。GLIFT将安全标签(有时称为taint)与硬件设计中的每个数据bit相关联,以标记要跟踪的信息资产。内部信号和输出端口的安全标签根据执行的逻辑操作类型进行计算和更新。通过检查信号的安全标签,可以确定设计是否违反了相关的安全属性,包括:1)机密数据不应泄漏到未加密的域,2)不可信数据不允许覆盖可信内存区域。GLIFT以一种统一的方式捕获数据流、控制流和定时流(通过定时侧信道的信息流),因为它们在门级都以相似的形式出现。

2.2 GLIFT Precision and Complexity

可以对一个GLIFT逻辑生成不同的变体,变体的精确度取决于安全标签和标签传播策略的粒度。比如AND-2门,O=A·B,安全标签值为1代表机密,为0代表非机密。

GLIFT的不精确策略:Ot=At+Bt。如果A=0且Bt=1,Ot实际由At决定,这里却必为1,可见这是一种保守但安全的策略。
GLIFT的精确策略:Ot=A·Bt+B·At+At·Bt。

对比分析这两种策略,Secret为32位机密值,执行操作:Public=Secret·0x03后,不精确模型会将整个公共信号标记为机密信号。精确模型中,第二个操作数中的0的安全标签会决定对应位输出是否机密,因此Public高30位均为公开信号,1对应位的安全标签才由Secret对应位安全标签决定,因此Pubic低2位为机密信号。

2.3 GLIFT Logic Generation

GLIFT逻辑生成中涉及的一个基本问题是确定一个受污染的输入是否会流向某些信号。这就归结为几个已知的难题,如布尔可满足性和可控性[6]。为了在可接受的时间量内生成GLIFT逻辑,通常求助于如图1所示的构造方法。

在这里插入图片描述
这种构造方法首先构造一个GLIFT逻辑库(GLIFT library),该库由技术库(Tech library)中每个门原语的GLIFT逻辑组成。然后综合硬件设计并映射到技术库。映射设计网表中的每个逻辑原语都是用GLIFT库中的GLIFT逻辑离散实例化的。因为将设计网表中的逻辑原语映射到GLIFT库可以在线性时间内完成,所以GLIFT逻辑生成问题的复杂性就由逻辑综合(和技术映射)决定。然而,这种方式生成的GLIFT逻辑可能是不精确的,它可能包含false positives。

逻辑综合策略和技术库的变化会生成不同的GLIFT逻辑。不同的逻辑综合策略可能导致给定硬件设计的不同表示,例如折叠的PLA或BDD树。技术库决定所需的GLIFT库(有对应于技术库中的每个门的GLIFT逻辑)。生成的不同GLIFT逻辑的区别主要在于两个方面:精确性和复杂性。我们使用false positive的数量来衡量精确性,同时使用面积、延迟和验证时间等参数量化复杂性。

接下来,将在第3节中揭示逻辑综合对GLIFT逻辑精度和复杂性的影响。然后通过第4节中的GLIFT库映射提供各种方法来权衡精度和设计开销。

3.LOGIC SYNTHESIS OPTIMIZATION

本节介绍逻辑综合如何影响GLIFT的精确度与复杂性。

逻辑综合影响GLIFT的精确性和复杂性,主要是因为不同的功能等价的逻辑网络可以产生不同的GLIFT逻辑。逻辑网络的差异可能会影响信号在硬件设计中的传递方式。


当11是don’t care输入条件时,XOR-2可以简化为双输入OR-2门。
XOR-2的GLIFT逻辑为:Ot=At+Bt,而OR-2的GLIFT逻辑为:Ot=/A·Bt+/B·At+At·Bt。
这种情况下,简化设计将增加GLIFT逻辑的复杂性


逻辑综合从两个方面改变GLIFT逻辑的精度。

一方面,逻辑综合可以减少设计冗余。考虑方程:A+/A·B=A+B中所示的吸收定律[2],该定律通常用于逻辑优化。该方程左边的GLIFT逻辑为:Ot=At+A·Bt,右边的GLIFT逻辑为:/A·Bt+/B·At+At·Bt。比较方程左右两边的GLIFT逻辑,可以发现逻辑综合能够使GLIFT逻辑更加精确。这是因为逻辑综合消除了A。

另一方面,逻辑综合倾向于增加资源共享,以减少面积消耗。这是逻辑综合会使产生的GLIFT逻辑不那么精确,因为资源共享将导致额外的再收敛扇出区域。


一般来说,精确性和复杂性是相互矛盾的设计选择。我们在第5.1节中给出了实验结果,以说明这种权衡。

4.GLIFT LIBRARY MAPPING

4.1 Creating Simplified GLIFT Library

本小节中提出了一种生成不同精度GLIFT逻辑的方法,且随着精确度的下降,复杂性也在降低。

GLIFT库可以通过列举原语门的真值表来创建,因为这些逻辑原语的输入通常是有限的。图2显示了AND-2的最精确GLIFT逻辑:Ot=A·Bt+B·At+At·Bt和最不精确GLIFT逻辑:Ot=At+Bt的卡诺图。

在这里插入图片描述

其他的GLIFT逻辑可以通过逐渐改变两个卡诺图之间的最小项来推导。对于卡诺图中显示的四个不同的最小项,总共有2的4次方-1=15种可能的组合(不包括与最不精确相同的情况)。在测试了这15个组合之后,我们得到了AND-2的GLIFT逻辑的另外两个版本,它们位于最精确和最不精确之间,分别是:Ot=Bt+B·At和Ot=At+A·Bt。

使用类似的方法,我们也可以为OR-2派生出其他GLIFT逻辑版本。然而,即使对于三输入与门(AND-3),这种方法也变得难以处理,因为AND-3在最精确和最不精确的GLIFT逻辑之间有28个不同的最小项,那么总共产生2的28次方-1个可能的组合。然而,上面的例子确实能够揭示GLIFT逻辑的不同版本是如何通过使用未污染的最小项(即左右两个卡诺图中存在差异的1)得到的。

我们采用更有效的方法来推导更复杂布尔门的简化GLIFT逻辑。我们观察到,精确的GLIFT逻辑可以更精确地度量信息流,因为它考虑了标签传播中变量的值。因此,我们可以通过忽略这些值来逐渐放松精度使精度朝着最不精确的方向前进。图3以AND-3为例展示了这样一个解决方案。

在这里插入图片描述

现在我们可以创建一个简化的GLIFT库,将逻辑原语映射到其他的GLIFT逻辑版本,以权衡精度和复杂性。在第4.2节中,我们提供了一种新的方法来简化GLIFT逻辑而不影响其精度。我们在第4.3节中提出了另一种简化GLIFT逻辑的新方法,同时添加了少量的误报。我们还在第4.4节中提出了一种定量引入false positive的解决方案,以加速信息流安全验证。

4.2 Deriving Simplified GLIFT Logic Without Adding False Positives

我们对GLIFT逻辑简化的第一个方法是使用QBF-SAT解算器找出在哪里以及如何用精度较低的替代品替换精确的GLIFT逻辑,从而简化整个GLIFT电路,同时保持整体精度。

首先将设计网表映射到最精确的GLIFT逻辑。然后,将每个GLIFT元素映射到一个多路复用器,从一些精度较低的变体中进行选择。如图4所示,多路复用器中SH2是最精确的,SH3则不精确,依此类推。

在这里插入图片描述

形式上,控制多路复用器的选择线的变量构成存在量化向量h,如下式所示:在这里插入图片描述

方程(8)允许QBF-SAT解算器找到更简单的逻辑,或替换某些不会改变整个GLIFT电路功能的门。

为了寻找更好的配置,我们采用了Becker等人的观点以确保解算器找到某种质量的配置,这里使用GLIFT发生替换的次数来评价配置的质量。因为原始逻辑是由all-0选择线选择的,所以我们将每个多路复用器的选择线(图4中的h*)通过或运算减少到一个比特(0/1),并将它们相加,这个和表示用替代项替换GLIFT逻辑的次数。然后将总和与阈值τ进行比较,该阈值必须满足QBF的要求。这给出了最终的QBF,其中thresh是阈值函数:

在这里插入图片描述
该过程的最后一步是对τ进行二分查找。图5显示了一次二分查找迭代。从τ=1开始,对这些QBF问题进行公式化、求解,并恢复其解;τ的最大已知成功值与τ的最小已知失败值之间的差异减半,用该值进行下一次迭代。这一过程一直持续到我们找到τ的最终已知最大成功值和向量h的相应配置。

在这里插入图片描述

请注意,这种技术最大限度地提高了替换数量,而不是整个GLIFT电路的简单性。最简单的结果可能并没有发生最大数量的替换。不过,一般来说,额外的替换总是能改善结果。

进一步的研究可以扩大所考虑的备选方案的范围。例如,我们可以考虑改变OR-2的精度级别,并将XOR-2的GLIFT逻辑用作OR-2的替换,这一思想将在第4.3节中详细介绍。

4.3 Deriving Simplified GLIFT Logic with Minimum Additional False Positives

继续研究将生成的GLIFT逻辑进一步简化,而不会显著影响精度。设计网表是由逻辑综合工具创建的,因此是高度优化的。而GLIFT逻辑是通过直接将design netlist映射到GLIFT库来生成的,不涉及任何优化。因此,GLIFT逻辑可能包含相当多的冗余。为了更好地理解,考虑如图6所示的双输入多路复用器(MUX-2)示例。

在这里插入图片描述

图6(a)显示了MUX-2的综合netlist。它由两个AND-2、一个OR-2和一个非门组成。图6(b)显示了MUX-2在将设计netlist映射到一个GLIFT库后的精确逻辑。我们注意到图6(b)中的OR-2的跟踪逻辑可以被XOR-2的跟踪逻辑所替代(这是因为输入OR-2的两个输入不可能为11,因此在这里OR-2与XOR-2在功能上等效)。这种替代可以进一步简化整个GLIFT电路,并且没有添加误报(false positives)。

类似地,可以有选择地将逻辑原语映射为GLIFT库中较为简单的跟踪逻辑。这种替代重要的是要了解跟踪逻辑,这样才可以在不引入大量误报的情况下更换门。

为了将OR-2门映射到GLIFT库中XOR-2的跟踪逻辑,我们需要搜索可以被XOR-2替换的OR-2门,且不改变原始硬件设计的功能。尽管这两个门的真值表(OR-2的0111和XOR-2的0110)各不相同,但由于内部的don’t care,这里的在OR-2门上永远不会观察到输入组合11,这样的替换仍然是可能的。在这种情况下,OR-2的真值表可以简化为XOR-2的真值表。类似地,我们可以将AND-2的真值表缩减为NXOR-2的真值表,其GLIFT逻辑也可以描述为:Ot=At+Bt。

我们已经了解了逻辑原语可以映射到GLIFT库中的一个更简单的跟踪逻辑,那么另一个步骤就是搜索具有内部don’t care的逻辑原语。需要指出的是,可能有几个门对都是don’t care的,但不能同时替换(一个门的don’t care条件依赖于另一个门)。如果我们在这样的对中替换两个门,可能会导致少量误报(false positives)。我们将在实验结果部分展示这种方法如何显著简化GLIFT逻辑,但在实验结果部分添加最小数量的误报。

4.4 Quantitatively Introducing False Positives

某些信息流安全属性可能需要很长时间才能在精确的GLIFT模型上得到证明,例如,证明在极少数情况下触发的特洛伊木马程序可能会导致密钥泄漏。精确的GLIFT模型在大多数情况下都不会显示有害的信息流,从而导致错误的结论性证据。在这种情况下,通过创建带有一定数量误报的不精确GLIFT模型,可以显著加快证明过程。图7说明了这种解决方案。

在这里插入图片描述

从最不精确的GLIFT模型开始,将设计网表中的所有门映射到最不精确的跟踪逻辑版本中。这将导致大量信息流入输出,并允许形式化工具在较短时间内捕获可能的违规行为。接下来我们需要进一步检查这些违规行为是否是一个错误的警报,这可以通过逐渐减少不精确门的数量并查看是否仍然出现违规情况来实现。如果在GLIFT模型中只有少量的门不精确时,验证工具继续报告同样的违规行为,我们有一些信心认为这是一个真正的安全问题,而非错误的警报。同时,我们可以将导致违规的安全漏洞定位到整个设计中相对较小的部分。

5.EXPERIMENTAL RESULTS

本节介绍了我们的实验结果。第5.1节展示了不同逻辑综合优化如何导致GLIFT逻辑的精度和复杂性的变化。第5.2节展示了如何在不引入或少量引入假阳性的同时简化GLIFT逻辑。第5.3节演示了这些误报(false positives)可能缩短安全验证的时间。

5.1 Logic Optimization Analysis

为了展示逻辑综合优化对GLIFT逻辑的精度和复杂性的影响,我们使用不同的命令来综合IWLS基准,以生成GLIFT逻辑。

我们使用面积作为复杂性的度量,并使用误报(false positives)百分比作为精度的度量。我们测试了balance、bdd、resyn、resyn2、compress和compress2命令。

balance命令经常用于在进一步优化之前创建一个平衡的逻辑网络;bdd可用于生成无误报的GLIFT逻辑[10]。resyn2(compress2)执行与resyn(compress2)相似的优化,但使用更高的效率。将合成的逻辑网络直接映射到GLIFT库中,以消除技术映射对GLIFT逻辑生成的影响。使用resyn2命令合成GLIFT逻辑并将其映射到mcnc库。

然后,我们使用ModelSim对由线性反馈移位寄存器(LFSR)生成的220个随机向量进行模拟,以计算误报的百分比。

在这里插入图片描述

表1显示了不同的逻辑综合命令如何导致GLIFT逻辑的复杂度和精度发生变化。使用bdd命令生成的GLIFT逻辑总是最精确的,因此用作计算误报的基线。然而,这种精确性在复杂性方面付出了巨大的代价。使用balance命令生成的GLIFT逻辑在精度和复杂度上都接近于原始设计生成的逻辑。比较使用resyn和resyn2(也包括compress和compress2)生成的GLIFT逻辑,可以发现更好的优化效果倾向于降低GLIFT逻辑的复杂性,同时引入额外的误报,即降低精确度。

5.2 Optimizes Mapping Analysis

我们使用第4.2节和第4.3节中的方法来简化GLIFT逻辑。我们为测试维护了一个GLIFT库,其中包含使用第4.1节介绍的方法创建的AND-2和OR-2的不同版本的跟踪逻辑。我们使用Yices来解决QBFs(4.2中方法),ABC来搜索设计网表中的don’t care条件(4.3中方法)。

我们以类似于第5.1节的方式执行精度和复杂性分析,并计算输出标签为逻辑1的总次数,我们用这个计数值来衡量taint flow。表2显示了使用几个IWLS基准进行简化前后GLIFT逻辑的复杂性和精度[11]。

在这里插入图片描述

以des基准测试为例,原GLIFT逻辑的面积是32295。相比之下,简化的GLIFT逻辑的面积分别为26665(精确简化)和25476(不精确简化)。精确方法和不精确方法分别更新了设计网表中4072个门中的2120个和1785个。两种方案的面积分别减少了17.4%和21.1%。不精确flow只增加0.05%的假阳性。平均而言,面积减少了14.47%,而假阳性只增加了0.20%。我们可以看到,只需添加少量误报,就可以简化GLIFT逻辑。GLIFT逻辑复杂性的降低将提高信息流安全验证的性能。

5.3 Verification Time Analysis

我们使用四个RSA核进行验证时间分析。首先使用精确的GLIFT库为这些核创建跟踪逻辑,并验证密钥泄漏到密文准备输出的安全属性。对于所有被测核,该性能无法在10分钟内得到证实。我们使用第4.4节中描述的方法使用一定比例的不精确门创建几个不精确的GLIFT电路,在这些不精确的GLIFT电路上证明了相同的安全特性,以了解我们的技术如何加快信息流的安全验证。图8显示了验证时间结果。

在这里插入图片描述

从图8可以看出,具有相同比例不精确门的RSA往往随着位数的增加需要更长的时间来验证。具有相同位数的RSA随着不精确门比例的增加将更显著的加速验证过程。

在设计实践中,某些安全属性只有在经过一定时间后才能被最终证明,然而,这种不完整的证明可能会使设计中潜伏着一些安全漏洞。从一个不精确的模型开始进行验证,以确定潜在的安全问题,这可能是有益的。然后可以逐渐提高模型的精度,并确定是否是假警报。虽然我们的方法需要运行多次验证,这可能会带来额外的设计开销,但是如果精确的GLIFT逻辑的安全属性需要很长时间来证明,那么它就是有益的。我们的方法可以快速发现潜在的安全漏洞。如果我们能够利用从初始设计中获得的知识,将分析限制在设计的较小区域,那么验证和调试时间将大大缩短。

6.RELATED WORK

有许多工作使用信息流来解决安全问题。丹尼是第一个采用信息论方法来解释安全性的人之一[21]。McLean[17]和Gray[8]率先使用信息流模型形式化安全属性。最近的研究工作集中于在计算机系统堆栈的不同层次上进行信息流分析[22,13,23,25,28,29]。其中有许多使用信息流分析来构建安全的硬件。

有人认为,使用正确的抽象是降低安全分析复杂性的一个重要因素[15]。例如,我们可以在寄存器传输级别(RTL)对系统进行建模,并使用RTL信息流分析工具,如[14,28,29]。这将允许设计者为整个变量分配一个位标签,这将加快验证速度,但结果不会显示任何位级别的流。然而,有许多情况需要较低级别(门级)的IFT模型,例如检测一些硬件特洛伊木马[9]选择正确的抽象是系统安全建模的一个重要决策,它提供了一种互补的方法,可用于进一步权衡我们在本工作中提出的精确性和复杂性思想。

在逻辑优化领域有一些相关的工作。Mishchenko等人使用完整的“don’t care集”进行逻辑优化[18]。他们的技术使用SAT解算器来计算局部再收敛扇出区域的一个完整的don’t care集,并利用这些don’t care条件来优化设计。如第3节所述,逻辑综合工具将显著改变设计结构。结果,内部信号的安全标签可以被合成掉。我们的技术在优化设计的同时保留了安全标签。

7.CONCLUSION

本文讨论了在逻辑综合和库映射过程中硬件IFT的精度和复杂性的权衡。它揭示了逻辑综合如何在两个不同的方向影响精度。另外,提出了两种新的方法,利用内部的dont’t care条件来降低GLIFT逻辑的复杂度,同时增加最小的误报量。它还提供了一种允许定量引入误报的技术,以加快安全验证过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值