硬件木马检测系统中稀有节点的查找方法研究

2021-03-26 03:29傅子晗吴新春朱书霖魏红梅
电子元器件与信息技术 2021年11期
关键词:木马逻辑阈值

傅子晗,吴新春*,朱书霖,魏红梅

(1.西南交通大学 信息科学与技术学院,四川 成都 611756;2.宁波汉达信息科技有限公司,浙江 宁波 315048)

0 引言

硬件木马能改变原始电路功能,严重影响芯片安全,因此很有必要对硬件木马进行研究。近年来,硬件木马检测研究主要集中在反向剖析检测法、旁路信号分析检测法、逻辑测试检测法等。Nasr. A等人提出了一种高效的面向梯度的反向剖析硬件木马检测方法[1],该方法利用方向梯度直方图自动提取和描述电路布局的特点。Chakraborty R S等人提出了MERO的硬件木马向量优化检测方法[2],它是一种基于内部节点稀有逻辑条件多重激励的测试模式生成技术。Voyiatzis等人提出的基于组合测试的硬件木马检测方法[3],将重点放在触发硬件木马的效率上。

与国外相比,国内在硬件木马领域的研究起步较晚。在旁路信号分析检测方面邓高明等分析了是否含硬件木马的密码芯片对应旁路信号在主成分分析结果上的差异,并以此对DES密码原型芯片进行了检测实验[4]。徐力等提出一种在电路设计过程中插入二选一数据选择器,提高电路节点翻转概率的方法。将电路功耗作为旁路信号,利用旁路信号分析法进行硬件木马检测[5]。在反向剖析检测方面,胡星等针对芯片照相和拼接过程中存在图片信息位置偏移的问题,提出了一种基于偏差统计的校正算法[6]。在逻辑测试检测方面,主要集中在提高硬件木马活性、提高硬件木马被激活可能性等方向[7]。本论文主要研究逻辑测试检测方法中基于稀有节点的向量优化,包括稀有节点的查找和选择。

1 逻辑测试

逻辑测试的核心思想就是让硬件木马得到激活,改变原始电路的功能,从而确定存在硬件木马。由于现在芯片规模不断增大,它的输入输出端口也不断增多。对于一个N输入端口的芯片,有了2N个输入向量,而木马的隐蔽性可能会让2N-1个向量不能激活木马,只能由一个向量激活木马。这无疑增加了逻辑测试的难度,为了解决此问题,可采用侵入式或非侵入式逻辑测试方法。

1.1 侵入式逻辑测试方法

侵入式逻辑测试是指在对原始电路做设计时,额外加入电路方便测试,从而使电路在测试过程中更容易控制内部触发器,使嵌入的硬件木马被激活的概率大大增加,从而减少硬件木马被植入的风险。如文献[5]提出的通过插入二选一数据选择器来提高硬件木马激活概率的方法。

1.2 非侵入式逻辑测试方法

非侵入式逻辑测试通常是基于自动测试向量生成技术来生成大量的测试向量,并对其进行优化,然后选择优化后的向量集来测试电路。文献[8]提出了基于贪婪算法的测试向量优化算法。

2 硬件木马检测系统中稀有节点查找方法

稀有节点就是电路中翻转概率低于阈值θ的节点,不同的电路需要根据电路情况选择不同的阈值θ。稀有节点分为两种情况,即稀有0节点:p0<

2.1 基于稀有节点检测硬件木马的可行性分析

基于稀有节点的检测方法的目的是通过提前分析电路信息,找出电路中的稀有节点,以更高的激活稀有节点转换概率为目标进行对测试向量进行优化,减小测试向量容量。

电路节点的翻转概率是节点为1的概率p1和节点为0的概率p0的积TP,即

TP =p0×p1 (1)

由一般性的数学规律可以得出节点的翻转概率在p0=p1=0.5时取得最大值为:TP_max=0.025。当任意有p0或者p1偏离0.5时,TP就会减小。

由真值表得出,n4节点在np节点输出为1时,结果就不正确。

表2 节点0/1概率及翻转概率

当四个节点为正常节点时,p1(nA_n)=0.25,p1(nB_n)=0.25,p1(nP_n)=6.25×10-2。而当四个节点为稀有节点时则p1(nA_a)=0.0025 , p1(nB_a)=0.0025 ,p1(nP_a)=6.25×10-6。两者的概率直接相差了4个数量级,在相同激活逻辑情况下,选择稀有节点木马的激活概率显著下降。

对于此类硬件木马如果采用非侵入式的逻辑检测方法,基于稀有节点的触发方式就有了用武之地。以图1的木马为例,如果测试向量集以触发n0、n1、n2、n3为目标,或者说向量集全都触发n0、n1、n2、n3这四个节点,木马被激活的概率提高很多。

图1 硬件木马

2.2 稀有节点查找

稀有节点的查找有两种方法:逻辑分析法和随机仿真法。

2.2.1 逻辑分析

逻辑分析法按信号走向规律,从左至右依次对电路节点以及经过逻辑门后的节点翻转概率进行计算,得出每个节点的翻转概率。如图2所示,输入的8个端口0/1概率分别为1/2,通过一个两输入的与门后0/1概率分别变为3/4、1/4,再通过一个两输入的与门或者一个两输入的或门,0/1概率分别变为15/16、1/16和9/16、7/16,最后通过一个两输入的与门,0/1概率分别变为249/256、7/256。从而,每个节点的翻转概率也可知道,最后再设置阈值,稀有节点即可找到。逻辑分析方法优点明显,直接快速,特别是对于逻辑简单、规模较小的电路,而且逻辑分析计算的概率是一个确切值。但是对于复杂电路,如复杂反馈回路、复杂时序逻辑、规模较大,逻辑分析比较复杂,效率较低。

图2 逻辑分析原理

2.2.2 随机仿真

随机仿真通过对待测电路施加随机向量,统计各节点的0/1存在时间,继而算出节点的翻转概率。随机仿真存在误差,且与施加的随机向量个数直接相关,需要使用大量的随机向量来解决误差的问题。随机仿真的优点是方便处理复杂电路,不需考虑电路的逻辑问题。而缺点是随机向量多,仿真时间长,数据处理量大,以及存在误差。

2.3 稀有节点选择

稀有节点选择时考虑阈值θ,如果阈值θ较小,θ≤0.25,选择的节点数量少,可能会遗漏一些木马的植入节点,如果阈值θ较大,选择的节点数量多,起不到应有的效果。为了能让设置的阈值θ效果良好,阈值θ设置在能区分30%左右节点较为合适。另外,需要考虑翻转概率为0错误节点,即一直保持逻辑1或者逻辑0,如GND和VDD,需要将错误节点剔除。

3 实验设计与仿真

搭建的仿真测试平台主要包括四个部分:电路信息的读取,并查找统计稀有节点;选择稀有节点,并向原始电路植入硬件木马;在Visual Studio完成测试向量优化;将随机向量集和优化向量集分别施加于原始电路和感染电路,对检测结果进行分析。本文选择的待测电路是学术界公认的ISCAS'89基准电路中的S1423电路[9]。

针对本文提出的两种稀有节点的查找办法分别设计了两种查找平台。

第一种查找稀有节点平台使用了Modelsim电路仿真和用Python数据处理,如图3所示。

图3 稀有节点查找统计平台1

(1)python产生随机向量。本文共产生2000条随机向量,并保存在.txt文件中。

(2)Modelsim读取向量并仿真。仿真时testbench从.txt文件读取向量,作为激励对电路进行仿真。

(3)VCD文件生成。VCD是一种基于ASCII码的文件格式,它记录了Modelsim仿真过程中节点的翻转情况。Modlesim脚本仿真时,加上vcd生成代码能得到vcd文件,如图4所示,脚本中vcd file s1423.vcd表示生成vcd文件,vcd flush表示把最后一条节点信息写入文件。

图4 vcd 文件产生

(4)Python处理VCD文件并统计每个节点的0/1概率。vcd文件的格式如图5所示,左图2596行,n1053gat的节点属于wire型,vcd文件中用符号z:表示。右图表示在39181ns时,每个符号代表的逻辑值,如3125287行中的E@符号代表的节点在39181ns时为逻辑1。通过节点的逻辑值,即可求出0/1概率。

图5 vcd 文件

第二种查找稀有节点平台流程如图6所示。

图6 稀有节点查找统计平台2

(1)设计c语言程序读取S1423的RTL代码。

(2)修改RTL代码风格,方便读取电路信息。

(3)将电路的输入节点的0/1概率设为50%。

(4)计算逻辑门输入节点0/1概率。

(5)判断逻辑门输入节点概率是否都已计算。

(6)如果否则转到第(4)步,如果是计算输出节点0/1概率。

(7)判断所有节点概率是否全部计算。

(8)如果否跳回第(5)步,如果是则计算所有节点翻转概率。

S1423电路节点翻转概率情况分布如图7所示,稀有节点翻转概率统计结果如表3所示。S1423电路节点的翻转概率集中在0.2-0.25之间,共472个节点,占总结点数约63.02%,0.1-0.2之间的节点共199个,0.01-0.1之间的节点共60个,小于等于10-2的节点为18个。

图7 稀有节点翻转概率

表3 S142 3节点翻转概率情况分布 单位(个)

4 结论

本文研究了如何找到电路中翻转概率较低的稀有节点,提出了两种稀有节点的查找方法:逻辑分析法和随机仿真法。为保证硬件木马能够被激活并且向量集精简,确定合适的稀有节点触发次数。选择ISCAS'89基准电路作为实验对象,搭建验证平台,完成了稀有节点查找和选择的仿真。

猜你喜欢
木马逻辑阈值
刑事印证证明准确达成的逻辑反思
小木马
逻辑
骑木马
创新的逻辑
小木马
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
旋转木马
女人买买买的神逻辑