一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于LUT行为分析的硬件木马检测方法与流程

2021-12-07 21:55:00 来源:中国专利 TAG:
一种基于lut行为分析的硬件木马检测方法
技术领域
:1.本发明属于集成电路
技术领域
:,具体涉及一种硬件木马检测方法。
背景技术
::2.随着集成电路设计规模的增大,片上系统(soc,system‑on‑chip)设计中通常会大量使用由不可信第三方提供的知识产权(ip,intellectualproperty)核,以提高产品研发速度,降低设计成本。这些ip核中可能隐含设计规范之外未公开的恶意设计修改和后门。集成电路设计中由不可信第三方引入的恶意设计修改,称为硬件木马。硬件木马通常只有在特定的条件下才会激活,基于集成电路功能测试方法难以实现硬件木马检测。攻击者可通过特定输入向量、侧信道攻击、故障注入攻击等方式激活木马,木马一旦被激活可造成敏感信息泄露、性能下降甚至系统失效,对集成电路硬件安全造成极大的威胁。尤其是对于军事、医疗、工业基础设施等领域,一旦使用了包含硬件木马的芯片设计,木马被激活后将会造成严重的经济损失甚至人员伤亡。3.针对硬件木马带来的集成电路硬件安全问题,研究者提出基于翻转概率分析的硬件木马检测方法,利用硬件木马在很小的概率下才会被激活这个特性,可实现使用计数器或特定输入向量作为木马激活条件的硬件木马检测。为了提高硬件木马的隐蔽性,防止硬件木马在设计阶段被检测到,研究者提出基于无关项的硬件木马设计方法,利用集成电路设计空间中的外部或内部无关项进行木马设计。基于外部无关项插入木马的电路设计形成原始设计空间的超集,包含外部无关项的集成电路完全符合设计规范,因此,基于设计规范验证的检测方法难以实现硬件木马检测。而基于集成电路内部无关项的硬件木马设计方法,木马隐藏于电路正常工作条件下无法满足的可满足性无关项之中,插入木马之后的电路设计与原始设计完全功能等价,并且所有信号的翻转行为和翻转概率都完全正常。现有检测方法难以实现利用集成电路设计空间外部或内部无关项的硬件木马检测。技术实现要素:4.为了克服现有技术的不足,本发明提供了一种基于查找表(look‑up‑table,lut)行为分析的硬件木马检测方法,首先以寄存器传输级代码或门级网表的形式输入被检测集成电路设计代码,然后基于综合工具把集成电路设计综合成基于现场可编程逻辑阵列(fieldprogrammablegatearray,fpga)实现的网表;接下来在不同仿真时间下,对生成的fpga网表进行随机输入功能仿真,并保存不同仿真时间下的信号行为列表;接着分析信号行为列表得到不同仿真时间下的低翻转率信号列表;最后基于信号行为列表及fpga网表,进行lut地址线覆盖率分析,得到低覆盖率lut列表;当低翻转率信号列表和低覆盖率lut列表收敛至固定集合后,确定被检测集成电路设计中的硬件木马触发信号和触发逻辑。本发明方法可在集成电路设计早期解决潜在的安全隐患,在检测无关项木马方面具有独特优势。5.本发明解决其技术问题所采用的技术方案包括如下步骤:6.步骤1:输入被检测集成电路设计代码;7.步骤2:把被检测集成电路设计代码综合成fpga网表;8.步骤3:基于生成的fpga网表进行随机输入功能仿真,逐步增加仿真时间,保存不同仿真时间下的信号行为列表;9.步骤4:分析信号行为列表,得到不同仿真时间下的低翻转率信号列表,即在仿真时间内逻辑状态没有改变的信号;10.步骤5:基于信号行为列表及fpga网表,进行lut地址线覆盖率分析,得到不同仿真时间下的低覆盖率lut列表,即在仿真时间内输入地址线没有覆盖全部地址线组合的lut;11.步骤6:仿真时间逐渐增大,低翻转率信号列表和低覆盖率lut列表随着仿真时间的增加而逐步收敛至稳定集合,此时,低翻转率信号为使用条件触发的硬件木马设计触发信号,低覆盖率lut列表中未覆盖的输入地址线为基于可满足性无关项硬件木马设计触发信号。12.进一步地,所述步骤1中被检测集成电路设计以寄存器传输级代码或门级网表的形式输入。13.进一步地,所述步骤2中使用fpga综合工具进行集成电路设计逻辑综合,生成fpga网表。14.进一步地,所述fpga综合工具为yosys。15.进一步地,所述步骤3中进行功能仿真时,采用的仿真工具为modelsim或questasim。16.本发明的有益效果如下:17.1、本发明提出的硬件木马检测方法针对fpga综合流程,以lut为分析对象进行木马检测,现有木马检测方法则大多以逻辑表达式和逻辑门为分析对象。18.2、本发明方法可实现仅在特定条件下激活的高隐蔽性硬件木马的检测,同时可实现基于集成电路设计内部可满足性无关项的硬件木马检测,尤其是在检测无关项木马方面具有独特优势。19.3、本发明提出的硬件木马检测方法,基于fpga综合工具进行逻辑综合,同时使用标准eda工具进行功能仿真,即可实现硬件木马检测,不需要集成电路设计人员学习新的语言及工具,能够更加有效的集成到标准集成电路设计流程之中。20.4、现有基于侧信道分析的硬件木马检测方法通常依赖于实际上不存在的黄金芯片,本发明提出的硬件木马检测方法,不需要黄金芯片做对比,摆脱了对黄金芯片的依赖。21.5、本发明提出的硬件木马检测方法,对寄存器传输级或网表级电路设计进行木马检测,可在集成电路设计早期解决潜在的安全隐患。附图说明22.图1是本发明提出的基于lut行为分析的硬件木马检测方法流程图。23.图2是本发明实施例一个嵌入硬件木马的集成电路设计示意图。24.图3是本发明实施例集成电路设计内部可满足性无关项示意图。25.图4是本发明实施例基于可满足性无关项的木马设计示意图。26.图5是本发明实施例插入可满足性无关项木马的aes密码核示意图。27.图6是本发明实施例集成电路设计综合生成的fpga网表示意图。具体实施方式28.下面结合附图和实施例对本发明进一步说明。29.本发明的技术目的在于提出一种基于lut行为分析的硬件木马检测方法,在设计阶段实现基于条件触发和基于集成电路内部无关项的硬件木马检测,提高硬件木马检测率,在集成电路设计早期解决潜在的木马安全隐患。30.如图1所示,一种基于lut行为分析的硬件木马检测方法,包括如下步骤:31.步骤1:输入被检测集成电路设计代码,以寄存器传输级代码或门级网表的形式输入;32.步骤2:把被检测集成电路设计代码综合成fpga网表,可使用fpga综合工具如yosys进行逻辑综合,基于不同fpga器件,网表基本单元可包括2输入至6输入lut,选择器、寄存器、进位链加法器等fpga基本单元;33.步骤3:基于生成的fpga网表进行随机输入功能仿真,逐步增加仿真时间,保存不同仿真时间下的信号行为列表,可使用modelsim或questasim等集成电路设计仿真工具进行仿真;34.步骤4:分析信号行为列表,得到不同仿真时间下的低翻转率信号列表,即在仿真时间内逻辑状态没有改变的信号;35.步骤5:基于信号行为列表及fpga网表,进行lut地址线覆盖率分析,得到不同仿真时间下的低覆盖率lut列表,即在仿真时间内输入地址线没有覆盖全部地址线组合的lut;36.步骤6:仿真时间逐渐增大,低翻转率信号列表和低覆盖率lut列表随着仿真时间的增加而逐步收敛至稳定集合,此时,低翻转率信号为使用条件触发的硬件木马设计触发信号,低覆盖率lut列表中未覆盖的输入地址线为基于可满足性无关项硬件木马设计的触发信号。37.具体实施例:38.如图2所示的集成电路设计,该电路包括5个子模块,其中子模块5中包括不可信第三方电路设计者嵌入的硬件木马,具体包括木马触发逻辑和负载逻辑,其中木马触发逻辑在特定的条件下产生木马触发信号,可激活硬件木马。木马被激活之后负载逻辑可实现敏感信息泄露、增加系统功耗、降低系统性能等功能。为了提高硬件木马的隐蔽性,防止在设计阶段或者芯片使用阶段被检测到,硬件木马一般在很小的概率下才会被激活,具体在硬件木马设计时,木马触发逻辑可使用计数器或特定输入向量作为木马激活条件。在本实施例中,被检测的集成电路设计以寄存器传输级代码的形式输入,具体可基于verilog或vhdl实现。39.由于使用计数器或特定输入向量作为激活条件的硬件木马设计,在很小的概率下激活木马,很容易被基于翻转概率分析的方法检测到。为了抵御基于翻转概率分析的硬件木马检测方法,有研究者提出基于集成电路设计空间内部可满足性无关项的硬件木马设计方法,利用集成电路内部扇出重汇聚引入的可满足性无关项,作为木马的触发信号。如图3所示,集成电路设计内部信号(n2,n3)组成可满足性无关项,逻辑状态(1,1)是(n2,n3)在正常工作条件下无法满足的状态。40.基于可满足性无关项的硬件木马设计如图4所示,可满足性无关项(n2,n3)作为木马的触发信号,由于在正常工作条件下n2=n3=1的逻辑状态无法满足,输出信号为o_tj=o,即插入木马之后的设计和原始设计完全功能等价。当攻击者通过故障注入攻击使可满足性无关项条件满足时,n2=n3=1,木马被激活,此时输入信号为o_tj=f,其中f为集成电路内部敏感信息。由于木马设计隐藏于电路正常工作条件下无法满足的可满足性无关项之中,插入木马之后的电路设计与原始设计完全功能等价,因此现有硬件木马检测方法难以实现基于可满足性无关项的硬件木马检测。41.插入可满足性无关项硬件木马的aes密码核示意图如图5所示,可满足性硬件木马插入到128位aes密码核中,来自s盒的可满足性无关项信号作为木马的触发信号,在正常工作条件下,两个分离的可满足性无关项信号不能同时为逻辑1,攻击者可通过故障注入攻击激活木马,此时两个可满足性无关项信号同时为逻辑1,密钥被选择输出到输出信号cipher,攻击者通过分析cipher可获取aes密码核128位密钥。42.基于本发明提出的硬件木马检测方法,被检测集成电路设计首先进行综合生成基于fpga实现的网表,在具体实施例中可使用开源综合工具yosys进行逻辑综合,综合之后下载生成的fpga网表。基于不同的fpga器件,如xilinx或intel的fpga器件,综合之后的网表基本单元可包括2输入至6输入lut、选择器、寄存器和进位链等fpga基本单元。43.基于fpga实现的网表示意图如图6所示。对于基于集成电路设计空间内部可满足性无关项的硬件木马设计,综合之后分离的木马触发信号将成为同一个lut的输入信号,由于在正常工作条件下,可满足性无关项无法被满足,对应到lut中必然存在输入地址线不能被覆盖的情况,即lut的输入地址线不能覆盖所有的输入信号组合,因此,可通过检测具有低覆盖率的lut列表实现基于可满足性无关项的硬件木马检测。44.接下来,在不同的仿真时间下,基于生成的fpga网表进行随机输入功能仿真,在具体实施例中,可通过线性移位寄存器产生集成电路设计顶层模块输入测试向量,使用modelsim等集成电路设计仿真工具进行功能仿真,在仿真过程中逐渐增加仿真时间,并保存各仿真时间下的信号行为列表。45.进一步,对信号行为列表进行分析,得到不同仿真时间下的低翻转率信号列表,低翻转率信号指在仿真时间内逻辑状态没有改变的信号。同时,基于信号行为列表及fpga网表,进行lut地址线覆盖率分析,得到不同仿真时间下的低覆盖率lut列表,低覆盖率lut指在仿真时间内输入地址线没有覆盖全部输入信号组合的lut。46.随着仿真时间的增加,有更多的输入测试向量作为输入,低翻转率信号列表所包含的信号数量,低覆盖率lut列表所包含的lut数量将逐渐减少,在最长仿真时间下低翻转率信号列表和低覆盖率lut列表趋于稳定而收敛。47.最后,综合分析最长仿真时间下低翻转率信号列表和低覆盖率lut列表,可得到硬件木马触发信号及木马触发信号的生成逻辑。其中,对于使用计数器或特定输入向量作为木马激活条件的硬件木马,低翻转率信号即为木马触发信号。对于基于集成电路设计空间内部可满足性无关项的硬件木马设计,低覆盖率lut中没有覆盖到的地址线即为基于可满足性无关项的木马触发信号。48.128位aes密码核中可满足性无关项木马检测结果如表1所示,基于xilinxfpga的检测结果表明随着仿真时间增加,低翻转率信号与低覆盖率lut数量逐渐减小,当仿真时间为400个时钟周期时,低翻转率信号数量降为0,低覆盖率lut信号数量降为128,即所有信号都可以正常翻转,有128个lut存在输入地址线覆盖率问题,由于可满足性无关项信号在正常工作条件下都可以正常翻转,而两个可满足性无关项信号不能同时为逻辑1,可通过128个lut中相同的未被覆盖的地址线,确定可满足性无关项木马触发信号。基于intelfpga的检测结果表明,当仿真时间为500个时钟周期时,低翻转率信号数量降为0,低覆盖率lut信号数量降为128,与基于xilinxfpga的检测结果一致。以上检测结果表明,本发明提出的基于lut行为分析的检测方法能够实现可满足性无关项硬件木马检测。49.表1基于本发明检测方法的aes密码核可满足性无关项木马检测结果[0050][0051][0052]基于集成电路内部无关项的硬件木马设计,木马隐藏于电路正常工作条件下无法满足的可满足性无关项之中,在正常工作条件下,所有信号翻转正常,因此,现有基于翻转概率分析的硬件木马检测手段难以实现可满足性无关项硬件木马检测。[0053]由于芯片设计在流片之后其功能不可更改,本发明选取寄存器传输级或网表级集成电路设计进行硬件木马检测,可以在集成电路设计阶段解决潜在的安全隐患。本发明将集成电路设计综合成fpga网表的形式进行木马检测,其有益效果在于,综合之后的网表中仅包含lut、选择器、寄存器、进位链等fpga基本元器件,相对于基于verilog或vhdl寄存器传输级集成电路设计描述形式,具有更加统一的描述形式。同时,对于使用计数器或特定输入向量作为木马激活条件的硬件木马设计,通过分析收敛后的低翻转率信号列表,即可得到其木马触发信号;对于基于可满足性无关项的硬件木马设计,其分离的木马触发信号在综合之后会映射到同一个lut单元的输入地址线,通过分析收敛后的低覆盖率lut列表即可得到其木马触发信号。因此,本发明通过把集成电路设计综合成基于fpga实现的网表,并基于标准eda工具进行功能仿真,可实现基于特定条件触发和基于集成电路内部可满足性无关项的硬件木马检测。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献