一种基于LUT特征提取和机器学习的硬件木马检测方法

文档序号:31054343发布日期:2022-08-06 11:09阅读:415来源:国知局
一种基于lut特征提取和机器学习的硬件木马检测方法
技术领域
:1.本发明属于集成电路硬件安全
技术领域
:,具体涉及一种硬件木马检测方法。
背景技术
::2.现代集成电路设计为了提高产品开发效率、缩短产品上市时间大量使用不可信第三方提供的知识产权(intellectualproperty,ip)核,这些ip核中可能存在设计规范之外的恶意设计修改即硬件木马。硬件木马具有轻量级、高隐蔽性的特点,为了逃避被发现,硬件木马绝大部分时间处于休眠状态,只有在特定的条件下才会激活。硬件木马一旦被激活将可能导致集成电路功能异常、性能下降、敏感信息泄露、甚至使芯片被远程操控,给集成电路硬件安全造成严重威胁。3.研究者提出基于逆向工程、侧信道分析、功能验证和安全验证的硬件木马检测方法。但是逆向工程需要复杂的硬件设备,实施起来非常耗时且昂贵;侧信道分析方法大多依赖于实际上并不存在的黄金参考芯片,而且对硬件木马的设计规模与工艺扰动非常敏感;功能验证和安全验证方法依赖于测试向量、断言属性的质量,使得测试结果中可能存在大量误报。近年来,基于机器学习的硬件木马检测方法成为研究热点。研究者在寄存器传输级(registertransferlevel,rtl)、门级提取扇入、扇出、条件操作等电路结构特征,并基于聚类、神经网络、随机森林等机器学习方法进行分类,识别集成电路设计中嵌入的硬件木马恶意逻辑。但是,现有的基于机器学习的硬件木马检测方法依赖于手动提取的电路特征,检测精度不高,存在误报现象。技术实现要素:4.为了克服现有技术的不足,本发明提供了一种基于lut(look-up-table)特征提取和机器学习的硬件木马检测方法,输入嵌入硬件木马的集成电路设计作为训练集;将训练集成电路设计综合成现场可编程门阵列(fieldprogrammablegatearray,fpga)网表;对fpga网表进行硬件木马特征提取,并保存生成的训练量化特征值;使用所得到的训练量化特征值,对机器学习分类器进行训练,生成最优硬件木马分类器;输入待检测集成电路设计;将待检测集成电路设计综合成待测fpga网表;对待测fpga网表进行硬件木马特征提取,并保存生成的待测量化特征值;待测量化特征值输入到训练好的硬件木马分类器,将待检测集成电路设计分为木马节点和正常节点,从而实现木马检测。本发明的方法能够实现基于特定条件激活的硬件木马检测,可在集成电路设计早期检测硬件木马安全隐患。5.本发明解决其技术问题所采用的技术方案包括如下步骤:6.步骤1:输入嵌入硬件木马的集成电路设计作为训练集;7.步骤2:使用fpga综合工具将训练集中的集成电路设计综合成fpga网表;8.步骤3:对fpga网表进行硬件木马特征提取:针对fpga网表中的每个信号的4层扇入逻辑,提取每层扇入包含的低翻转lut的个数,得到每个信号的4维量化特征值;所述低翻转lut指二进制初始化向量中1或者0的个数小于2个的lut;将每个信号的4维量化特征值作为训练数据集;9.步骤4:使用训练数据集,对机器学习分类器进行训练,生成最优硬件木马分类器,用于将集成电路设计分为木马节点和正常节点;10.步骤5:使用fpga综合工具将待检测集成电路设计综合成待测fpga网表;11.步骤6:对待测fpga网表进行硬件木马特征提取,得到待测fpga网表的每个信号的4维量化特征值;12.步骤7:将步骤6得到的待测量化特征值输入到步骤4生成的最优硬件木马分类器中,将待检测集成电路设计分为木马节点和正常节点,从而实现木马检测。13.进一步地,所述嵌入硬件木马的集成电路设计和待检测集成电路设计均以寄存器传输级代码的形式输入。14.进一步地,所述机器学习分类器为随机森林或支持向量机或神经网络分类器,用于完成二分类任务。15.本发明的有益效果如下:16.1、本发明提出的硬件木马检测方法,针对基于寄存器传输级阶段的集成电路设计进行检测,可在集成电路设计早期检测硬件木马,以较低代价消除硬件木马带来的安全威胁。17.2、本发明提出的硬件木马检测方法,通过将集成电路设计综合成fpga网表,对lut的结构特征,即初始化向量值,进行分析实现特征提取,无需进行仿真,无需激活硬件木马即可实现木马检测。18.3、现有的基于逆向工程、侧信道分析、功能及形式化验证的硬件木马检测方法依赖于实际上并不存在的黄金芯片,本发明提出的硬件木马检测方法,不需要黄金芯片做对比,摆脱了对黄金芯片的依赖。附图说明19.图1是本发明提出的基于lut特征提取和机器学习的硬件木马检测方法流程图。20.图2是本发明实施例硬件木马设计示意图。21.图3是本发明实施例trust-hubaes-t1000测试向量木马设计与综合之后的部分fpga网表示意图,其中(a)硬件木马测试集trust-hub中的aes-t1000测试向量,(b)fpga网表示意图。具体实施方式22.下面结合附图和实施例对本发明进一步说明。23.本发明的技术目的在于提出一种lut特征提取和机器学习的硬件木马检测方法,实现基于条件触发的硬件木马检测,在集成电路设计早期检测硬件木马带来的安全威胁。24.如图1所示,一种基于lut特征提取和机器学习的硬件木马检测方法,包括如下步骤:25.步骤1:输入嵌入硬件木马的集成电路设计作为训练集;26.步骤2:使用fpga综合工具将训练集中的集成电路设计综合成fpga网表;27.步骤3:对fpga网表进行硬件木马特征提取:针对fpga网表中的每个信号的4层扇入逻辑,提取每层扇入包含的低翻转lut的个数,得到每个信号的4维量化特征值;所述低翻转lut指二进制初始化向量中1或者0的个数小于2个的lut;将每个信号的4维量化特征值作为训练数据集;28.步骤4:使用训练数据集,对机器学习分类器进行训练,生成最优硬件木马分类器,用于将集成电路设计分为木马节点和正常节点;29.步骤5:使用fpga综合工具将待检测集成电路设计综合成待测fpga网表;30.步骤6:对待测fpga网表进行硬件木马特征提取,得到待测fpga网表的每个信号的4维量化特征值;31.步骤7:将步骤6得到的待测量化特征值输入到步骤4生成的最优硬件木马分类器中,将待检测集成电路设计分为木马节点和正常节点,从而实现木马检测。32.进一步地,所述嵌入硬件木马的集成电路设计和待检测集成电路设计均以寄存器传输级代码的形式输入。33.进一步地,所述fpga综合工具可为yosys或vivado。34.进一步地,所述fpga网表中的网表基本单元类型通常包括2输入至6输入lut、选择器、寄存器、进位链加法器等。35.进一步地,所述机器学习分类器为随机森林或支持向量机或神经网络分类器,用于完成二分类任务。36.具体实施例:37.如图2所示的集成电路设计中包括不可信第三方嵌入的硬件木马。硬件木马可分为触发逻辑和负载逻辑两部分,其中,触发逻辑负责控制木马电路处于空闲还是触发状态。在被触发之前,木马对原电路功能不造成影响。当满足触发条件,木马被激活时,负载逻辑负责实施对电路功能的恶意影响,比如泄露敏感信息或造成系统失效等。硬件木马设计者会尽量隐藏木马电路以逃避集成电路验证与测试。为达到这一目的,设计者需要让木马效应仅在极少数情况下才显现出来,最好是经过长时间的运行才能将木马激活。在本发明的实施例中,待检测集成电路设计以寄存器传输级代码的形式输入。38.使用计数器或特定输入向量作为木马激活条件,是一种常见的硬件木马设计。由于木马在很小的概率下激活,当硬件木马逻辑经过逻辑综合成fpga网表时,将会产生初始化特征向量不均衡的lut,即低翻转lut。如图3(a)所示硬件木马测试集trust-hub中的aes-t1000测试向量,aes-t1000密码核中被嵌入了由特定输入向量触发的硬件木马,当且仅当输入明文为128’h00112233_44556677_8899aabb_ccddeeff时木马触发信号tj_trig产生高电平,此时木马被激活,秘钥key通过密码核输出信号out被泄露出去。木马触发信号tj_trig是低翻转率信号,只有1/2128的概率为逻辑1,其他情况下一直为逻辑0。使用集成电路设计综合工具yosys对aes-t1000测试向量进行综合,生成fpga网表时,用于产生tj_trig信号部分fpga网表具有如图3(b)的形式,这些lut的翻转行为表现为其分布不均衡的初始化特征向量值,如第四层lut6的初始化特征向量值为64’h8000000000000000,即当6个输入信号为6’b111111时lut的输出为1,其他63种输入信号下lut的输出全部为0。通过分析fpga网表发现用于生成木马触发信号tj_trig的lut都具有分布不均衡的初始化特征向量值。39.基于此发现,本发明对集成电路设计进行硬件木马特征提取,分析aes-t1000测试向量fpga网表中每个信号的的四层扇入,提取每层扇入包含的低翻转lut的个数,得到每个信号的4维量化特征值,低翻转lut指二进制初始化向量中1或者0的个数小于2个的lut,如图3(b)中提取的特征值为{6331}。40.下面以trust-hub硬件木马测试集为例,说明本发明提出的硬件木马检测方法。41.1)选取aes-t1000,aes-t1100,aes-t1600,aes-t1700测试向量作为训练集,这些测试向量中嵌入了基于特定条件触发的硬件木马,以寄存器传输级verilog代码的形式输入。42.2)采用fpga综合工具yosys对训练集集成电路设计进行逻辑综合,生成电路设计的fpga网表,具体可使用synth_xilinx命令将各电路设计综合成基于virtex-7器件的fpga网表。43.3)对训练集fpga网表进行硬件木马特征提取,具体对fpga网表中的每个信号分析其4层扇入逻辑中,每层扇入包含的低翻转lut的个数,得到每个信号的4维量化特征值,其中,低翻转lut指二进制初始化向量中1或者0的个数小于2个的lut,并将训练集fpga网表提取的所有信号的4维特征保存到指定文件。同时对训练集中fpga网表的节点添加数据标签,正常节点的标签为0,木马节点的标签为1。44.4)由于硬件木马具有轻量级、高隐蔽性的特性,生成的训练集数据具有不均衡的分布,其中木马节点比例仅为13.463%,具体可使用重采样算法如smote+enn,来解决类间数据不均衡问题,产生木马节点数据。进行数据重采样之后的样本分别如表1所示。45.表1数据集描述46.数据集重采样正常样本数目木马样本数目1无59849312smote+enn5924593347.将数据集按照7:3的比例随机分为训练集和验证集,基于训练集数据对二分类随机森林分类器训练,生成最优硬件木马随机森林分类器。具体实施例中可以auc值作为分类器的优化目标,生成的最优随机分类器对验证集进行硬件木马检测结果如表2所示。48.表2基于不同数据集训练得到的随机森林分类器验证结果[0049][0050][0051]由表2可见,基于重采样数据集训练得到的随机森林分类器具有更好的分类效果,选取该分类器对待测的集成电路设计进行分类。[0052]5)输入以寄存器传输级代码描述的待检测集成电路设计,aes-t400、aes-t700、aes-t800、aes-t900、aes-t1200、aes-t1300、aes-t1400、aes-t2000。[0053]6)采用fpga综合工具yosys对各待检测集成电路设计进行逻辑综合,生成各电路设计的fpga网表。[0054]7)对各待检测集成电路设计fpga网表进行硬件木马特征提取,具体对fpga网表中的每个信号分析其4层扇入逻辑中,每层扇入包含的低翻转lut的个数,得到每个信号的4维量化特征值,其中,低翻转lut指二进制初始化向量中1或者0的个数小于2个的lut,并将训练集fpga网表提取的所有信号的4维特征保存到指定文件。[0055]8)将各待检测集成电路设计的量化特征值输入到步骤4生成的随机森林木马分类器,将待检测集成电路设计分为木马节点和正常节点,从而实现木马检测。检测结果如表3所示,能够达到很高的检测精度。[0056]表3硬件木马检测结果[0057]测试向量tprtnraccuracyprecisionf1值aes-t40098.718%100%99.985%100%99.674%aes-t70098.148%100%99.985%100%99.529%aes-t80099.401%100%99.985%100%99.846%aes-t90099.784%100%99.986%100%99.941%aes-t120099.784%100%99.986%100%99.942%aes-t130098.148%100%99.987%100%99.529%aes-t140099.394%100%99.992%100%99.846%aes-t200099.394%100%99.985%100%99.844%均值99.096%100%99.986%100%99.769%当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1