首页> 中国专利> 一种基于递归下降算法的RTL级硬件木马检测方法

一种基于递归下降算法的RTL级硬件木马检测方法

摘要

本发明涉及一种基于递归下降算法的RTL级硬件木马检测方法,该检测方法是根据木马模型设计RTL代码规则,指定词语类型,包括模块声明词、模块结束声明词、信号声明词、逻辑功能块声明词、中间词和终结词,对RTL文件采用递归下降算法进行分析,找到符合规则的木马模块。本发明的检测方法是针对指定类型的RTL代码级硬件木马,相对于传统的在芯片上检测硬件木马的方法,大大缩短了试验时间,能够快速有效的检测出RTL代码级硬件木马,并准确定位木马所在位置,提高了工作效率。

著录项

  • 公开/公告号CN106407810A

    专利类型发明专利

  • 公开/公告日2017-02-15

    原文格式PDF

  • 申请/专利号CN201610854016.8

  • 发明设计人 王丽娟;张荣;周昱;杨露;

    申请日2016-09-27

  • 分类号G06F21/56(20130101);

  • 代理机构32002 总装工程兵科研一所专利服务中心;

  • 代理人杨立秋

  • 地址 214035 江苏省无锡市滨湖区惠河路5号

  • 入库时间 2023-06-19 01:32:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-10

    授权

    授权

  • 2017-03-15

    实质审查的生效 IPC(主分类):G06F21/56 申请日:20160927

    实质审查的生效

  • 2017-02-15

    公开

    公开

说明书

技术领域

本发明涉及RTL级代码安全性分析技术领域,尤其是一种基于递归下降算法的RTL级硬件木马检测方法。

背景技术

近年来发生的“斯诺登棱镜门”和“伊朗震网”等事件表明集成电路内的硬件木马可以作为一种武器来进行信息战、网络战,甚至物理摧毁军事装备与关键设施,严重威胁着国家安全。随着集成电路设计的日益复杂,制造成本日趋高昂,集成电路产业正朝着全球化合作的趋势发展,在未来相当长的一段时间内,集成电路仍将面对来源众多的且不可控的第三方IP,国外的EDA软件,以及不可控的晶圆制造的威胁。在这些环节中,集成电路很可能被人为恶意的修改形成后门漏洞。因此,需采取有效措施来对集成电路内的硬件木马进行有效识别,保证集成电路的安全可信。

国内外对硬件木马检测的研究都是针对纯硬件的木马检测方法,目前主要有破坏性检测,系统运行检测,逻辑测试和旁路分析四种。其中研究最多的就是基于旁路分析的硬件木马检测方法。旁路分析是利用芯片工作时的旁路信息(如电磁辐射,电流或者电路延时等信息)来对木马进行检测。其原理是因为电路中植入的硬件木马会对芯片的一些旁路信号,如电流,频率或路径延时产生影响,因此通过观察芯片的旁路信号并与原始芯片的旁路信息作比较,进而检测出芯片中是否有硬件木马的存在。对电路进行基于旁路分析的硬件木马检测的最大优点是可以使硬件木马在不被触发的情形下被检测出来,但是其也有显著的缺点,即当待测电路的规模很大,电路内部被植入的硬件木马的规模很小,一些旁路信息,比如电流和路径延时,其变化幅度极小,考虑到测量过程中引入的噪声,以及芯片制造过程中由于工艺漂移带来的噪声,这种极小的旁路信号变化将无法被实际测量出来或者即使被测量出来也难以确定是由于硬件木马引起的,还是由于测量噪声、工艺漂移噪声引起的。

芯片在进行RTL设计时,由于设计疏忽或者不善,有可能形成能够被人恶意利用的漏洞,例如可以被利用的直接访问电路内部机密信息的测试端口,电路内部从安全区域到非安全区域的信号直接传输等。但针对RTL级或者门级的代码安全性研究基本处于空白,因此针对上述这一类设计缺陷,开展安全路径验证技术,检测RTL代码中是否存在可被外部非法访问,以及不符合安全规则定义的路径,保障RTL代码中不含有这种隐藏的可以泄露电路内部机密信息的路径,具有一定的可行性和现实意义。为了保障芯片在主要的产业链环节上都能防御后门漏洞,降低芯片受到的安全性威胁,有必要开发芯片代码级安全性分析与检测方法。

发明内容

本发明要解决的技术问题是克服现有的缺陷,提供一种基于递归下降算法的RTL级硬件木马检测方法,该方法是针对指定类型的RTL代码级硬件木马,相对于传统的在芯片上检测硬件木马的方法,大大缩短了试验时间,能够快速有效的检测出RTL代码级硬件木马,并准确定位木马所在位置,提高了工作效率。

为了解决上述技术问题,本发明提供了如下的技术方案:

本发明一种基于递归下降算法的RTL级硬件木马检测方法,该检测方法是根据木马模型设计RTL代码规则,指定词语类型,包括模块声明词、模块结束声明词、信号声明词、逻辑功能块声明词、中间词和终结词,对RTL文件采用递归下降算法进行分析,找到符合规则的木马模块。

进一步地,该检测方法的具体步骤如下:

(1)从RTL文件第一行开始按行读取内容,对读取的内容取词进行分析,分析完成后,返回行位置,再读取下一行语句,对读取的内容取词进行分析,直到读完RTL文件;其中取词进行分析是指对词语类型进行判断,当词为模块声明词时,进入模块分析;

(2)模块分析时,读一行语句,对读取的内容取词进行分析,分析完后,返回行位置,再读取下一行语句,对读取的内容取词进行分析,重复操作直到词为模块结束声明词,结束当前模块分析循环;其中取词进行分析是指对词语根据词类型进行不同处理,若词为信号声明词,则进入构建信号集合方法,若词为逻辑功能块声明词,则进入逻辑功能分析,若词为模块结束声明词,则结束当前模块分析循环;

(3)逻辑功能分析时,读一行语句,对读取的内容取词进行分析,当词为中间词时,继续往下按行读语句、取词,直到获取的词为终结词;获取的词为终结词时,进入终结词分析模块,若满足是木马条件,终结词所在RTL代码模块是木马模块,否则终结词所在RTL代码模块不是木马模块。

进一步地,步骤(1)、(2)、(3)中读取的一行内容不包含注释语句,每读取一行语句,行位置标记往后一行,一次分析RTL文件每行必须且只读一次。

进一步地,步骤(1)、(2)、(3)中对读取的内容取词是指对读取的内容,获取一个词语或符号;第一次对语句取词时,获得第一个词,之后每次对该语句取词,获得上次取词的下一个词。

进一步地,步骤(2)中构建信号集合方法是将信号声明词声明的信号添加到一个集合中,组成所在模块的信号集合。

进一步地,步骤(3)中的终结词分析模块是指根据木马规则对语句进行分析,判断是否符合木马规则。

本发明采用以上技术方案,与现有技术相比,具有以下技术效果:

本发明通过制定代码规则,寻找指定类型的硬件木马,相对于传统的在芯片上检测硬件木马的方法,大大缩短了试验时间,能够快速有效的检测出RTL代码级硬件木马,并准确定位木马所在位置,提高了工作效率。

附图说明

图1为本发明检测方法的流程图。

具体实施方式

本发明所列举的实施例,只是用于帮助理解本发明,不应理解为对本发明保护范围的限定,对于本技术领域的普通技术人员来说,在不脱离本发明思想的前提下,还可以对本发明进行改进和修饰,这些改进和修饰也落入本发明权利要求保护的范围内。

下面结合附图对本发明作进一步说明。

本发明提供了一种基于递归下降算法的RTL级硬件木马检测方法,根据木马模型设计RTL代码规则,指定词语类型,包括模块声明词、模块结束声明词、信号声明词、逻辑功能块声明词、中间词和终结词,对RTL文件进行分析,找到符合规则的木马模块。

本发明检测方法的流程如图1所示,包括如下步骤:

步骤1:从RTL文件第一行开始按行读取内容,所得到的内容为该行去掉注释语句的内容,每读取一行语句,行位置标记到下一行。

对读取的内容取词进行分析,即对词语类型进行判断,当词为模块声明词时,进入模块分析,分析完成后,返回行位置;为其他词类型时不进行处理。继续读取下一行语句,对读取的内容取词进行分析,直到读完该RTL文件;一次分析过程中RTL文件每行必须且只读一次。

步骤2:模块分析时,读一行语句,对读取的内容取词进行分析,分析完后,返回行位置,再读取下一行语句,对读取的内容取词进行分析,重复以上操作直到词为模块结束声明词,结束当前模块分析循环。

取词进行分析是指根据词类型进行不同处理,若词为信号声明词,则进入构建信号集合方法,即将信号声明词声明的信号添加到一个集合中,组成所在模块的信号集合;若为逻辑功能块声明词,进入逻辑功能分析,若词为模块结束声明词,结束当前模块分析循环。

步骤3:逻辑功能分析时,读一行语句并对读取的内容取词进行分析,当词为中间词时,继续往下按行读语句、取词,直到获取的词为终结词。

获取的词为终结词时,进入终结词分析模块,若满足是木马模块条件,该终结词所在RTL代码模块是木马模块;否则该终结词所在RTL代码模块不是木马模块。

其中终结词分析模块是指根据木马规则对语句进行分析,判断是否符合木马规则。

上述步骤1、2、3中对读取的内容取词,是指对读取的内容,获取一个词语或符号;第一次对语句取词时,获得第一个词,之后每次对该语句取词,获得上次取词的下一个词。

本发明的实施例选择一份可处理的RTL文件来进行硬件木马检测,该RTL文件的内容如下:

对上述RTL文件的检测方法为:首先确定要查找的硬件木马类型,如要查找累加器模块实现的时间炸弹时,要查找的模块为累加器,那么需要了解累加器代码规则;然后定义各类别词语集合,定义模块声明词‘module’,模块结束声明词‘endmodule’,信号声明词为‘input’、‘output’和‘reg’,进入模块的逻辑功能块声明词‘always’和‘assign’,‘if’、‘else’和‘begin’为中间词,模块中所有定义的信号为终结词。

从头开始对上述文件进行分析,第一行内容为注释,读取内容为空,读取下一行内容也为空,往下读取代码直到第16行,读取该行代码得到的内容非空,得到内容为:

module top(clk,rst,din,dout1,dout2,dout3);

对这行语句取词,第一次取词‘module’,第二次取词‘top’,第三次取词‘(’,获得‘(’。

取词得到‘module’为模块声明词,定义了‘top’模块,进入模块分析。

模块分析时,读一行语句,得到内容为:

input clk;

对这行语句取词,得到‘input’为信号声明词,定义了信号‘clk’,将信号‘clk’添加到一个模块‘top’的信号集合。往下按行读取RTL代码,第19到28的非空行都是添加信号到模块的信号集合。

第31行语句取词,得到‘always’为逻辑功能块声明词,进入逻辑功能分析。读一行语句取词为‘if’,为中间词,往下读语句取词,得到‘count1’为模块中定义的信号,符合是终结词的条件,对这行语句进行分析,赋值信号不包含终结词信号,不符合木马条件。继续往下读语句,取词‘else’为中间词,读下一行语句,对读取内容取词,得到‘count1’为模块中定义的信号,符合是终结词的条件,对这行语句进行分析,赋值信号包含终结词信号和加运算,符合木马条件,则第31到35行描述的逻辑功能块可能有木马电路。到此行时,该逻辑功能模块读取结束,返回模块分析。当分析到第56行时,取词为‘endmodule’,是模块结束声明词,结束当前模块分析循环,进入步骤1中文件分析,直到RTL文件结束。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号