The invention discloses a method for generating RTL hardware Trojan test vector, mainly including generating control flow chart, concurrent symbol execution, satisfiability solving and generating test vector. The invention adopts the method of static analysis of Veri log code, Veri log code concurrent symbolic realization using multi-threaded concurrent execution technology, so as to achieve rapid test vector generation high path coverage to.
【技术实现步骤摘要】
一种RTL硬件木马测试向量的生成方法
本专利技术涉及集成电路测试领域,具体涉及到一种RTL硬件木马测试向量的生成方法,可针对条件触发型硬件木马的特征快速生成具有高路径覆盖率、并包含可激活条件触发型硬件木马的测试向量。
技术介绍
在数字集成电路设计中,不同的设计环节对应着不同抽象层次的设计。抽象程度从高到低,分别是功能规范、算法级/微体系结构级设计、寄存器传输级设计(register-transferlevel,RTL)、门级(gatelevel)设计和物理级设计。硬件木马可以分布在不同的抽象层次上,主要有系统级、行为描述级、寄存器传输级、门级、晶体管级和物理级。NJacob等人在文献“HardwareTrojans_currentchallengesandapproaches”中分析了目前硬件木马可能插入的阶段,已经提出的硬件木马较多的集中在功能设计阶段(寄存器传输级)。目前的硬件木马检测技术中,只有很少的文献对功能设计阶段和物理设计阶段(门级)进行检测,绝大数的文献都集中在制造阶段的检测;功能设计阶段检测的技术使用的是形式化验证技术,物理设计阶段使用的功能分析,制造阶段使用的检测技术主要是侧信道分析和结构修改。侧信道分析是一种非破坏性的检测技术,主要分析电路中的时序、功率、电磁、热等信号,根据与黄金模板的比对发现木马。旁路分析能有效检测出较大规模的硬件木马,但容易受到工艺变量和各种噪声的影响,难以检测出小规模硬件木马。针对门级安全检测的门级信息流技术对原始门级网表生成包含信息流的门级信息流逻辑的门级网表,但是其新生成的门级网表复杂度与原始门级网表相比,高 ...
【技术保护点】
一种RTL硬件木马测试向量的生成方法,其特征在于,包括如下步骤:S1生成verilog代码的控制流图CFG;S2根据步骤S1生成的控制流图CFG,对待分析的模块文件使用并发符号执行技术,得到指定路径条件pc下输出变量的符号执行表达式,即<pc,exp>;S3对步骤S2中得到的路径条件pc进行可满足性求解,得到可满足的路径条件集合及其对应的输入变量取值,生成测试向量;S4依据步骤S3中得到的测试向量,由<pc,exp>的映射关系,求解出输出变量在可满足性求解的路径条件pc下对应的符号执行表达式exp的取值;得到<测试向量,输出向量>的映射关系。
【技术特征摘要】
1.一种RTL硬件木马测试向量的生成方法,其特征在于,包括如下步骤:S1生成verilog代码的控制流图CFG;S2根据步骤S1生成的控制流图CFG,对待分析的模块文件使用并发符号执行技术,得到指定路径条件pc下输出变量的符号执行表达式,即<pc,exp>;S3对步骤S2中得到的路径条件pc进行可满足性求解,得到可满足的路径条件集合及其对应的输入变量取值,生成测试向量;S4依据步骤S3中得到的测试向量,由<pc,exp>的映射关系,求解出输出变量在可满足性求解的路径条件pc下对应的符号执行表达式exp的取值;得到<测试向量,输出向量>的映射关系。2.根据权利要求1所述的RTL硬件木马测试向量的生成方法,其特征在于:步骤S1中,通过定义语句结点类型,生成语句结点,建立语句结点的前驱和后继关系,生成控制流图。3.根据权利要求2所述的RTL硬件木马测试向量的生成方法,其特征在于:步骤S1具体包括如下步骤:S1.1设计的语句结点类型有:ALWAYS,ALWAYS_END,IF,ELSE,IF_END,CASE,CASEX,CASEZ,CASE_ITEM,CASE_END,FOR,FOR_END,TASK,TASK_END,ASSIGN_BLOCK,ASSIGN_NONBLOCK,ASSIGN_CONTINUOUS,INSTANTIATION;另外,整个代码的开始增加一个ENTER结点,结束增加一个EXIT结点,不确定类型是NONE结点,其中always,if,case(casex,casez),for,task所对应的结点为控制结点,ENTER和EXIT是控制结点,阻塞赋值、非阻塞赋值和连续赋值为赋值结点;采用开源的antrl4以及TerenceParr撰写的verilog2001.g4,解析verilog寄存器传输级设计代码的语法,依次提取每条verilog语句进行分析;设计生成控制流图的语句结点;一条语句对应控制流图中的一个结点,语句结点的类型针对verilog可综合的语句设定;为了能够有效区分出不同模块文件中的变量,将所有分析的变量名改为如下形式:模块名_M_原变量名;S1.2根据语句结点类型建立语句结点之间的前驱和后继关系:语句结点之间的控制流关系体现在控制结点之间以及控制结点和赋值结点之间的连接,对于赋值结点之间的连接,不表示控制关系,只是表示出赋值结点代表的语句在代码中的位置关系,添加的ENTER结点是整个代码的开始结点,EXIT结点是整个代码的结束结点,Always语句段,例化语句和连续赋值语句之间是并行关系,Always语句段内的if、case、for语句之间存在着语法相关的控制区间和控制顺序的关系;根据控制区间和控制关系确定出各个语句结点之间的前驱和后继关系;S1.3依据每个语句结点之间的前驱和后继关系,采用广度优先遍历,生成verilog代码...
【专利技术属性】
技术研发人员:沈利香,慕德俊,时翔,徐强,邢业新,何松,袁晓宇,
申请(专利权)人:西北工业大学,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。