【CN110096907A】一种基于信息流安全验证的硬件木马检测方法【专利】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910280834.5
(22)申请日 2019.04.09
(71)申请人 西北工业大学深圳研究院
地址 518000 广东省深圳市南山区粤海街
道高新技术产业园南区虚拟大学园A
座3楼315室
申请人 西北工业大学
(72)发明人 胡伟 邰瑜 慕德俊
(74)专利代理机构 西北工业大学专利中心
61204
代理人 金凤
(51)Int.Cl.
G06F 21/76(2013.01)
G06F 21/55(2013.01)
(54)发明名称
一种基于信息流安全验证的硬件木马检测
方法
(57)摘要
本发明提供了一种基于信息流安全验证的
硬件木马检测方法,通过为集成电路硬件设计构
建信息流模型,定义硬件设计所需满足的信息流
安全属性,利用EDA形式化验证工具进行信息流
安全验证,通过捕捉信息流安全属性发生违反的
情形来检测硬件设计中潜在的木马,并可利用本
发明中信息流模型所提供的逆向追踪能力,实现
木马设计的精确定位并揭示其触发机制。本发明
能够有效避免硬件设计语言和验证语言之间语
义差别所导致的额外设计开销,提高安全验证与
木马检测的效率。权利要求书2页 说明书8页 附图2页CN 110096907 A 2019.08.06
C N 110096907
A
权 利 要 求 书1/2页CN 110096907 A
1.一种基于信息流安全验证的硬件木马检测方法,其特征在于包括下述步骤:
步骤1:集成电路硬件设计网表预处理
对采用硬件描述语言描述的硬件电路设计网表进行分析;
每读入一条语句时,首先根据句首的关键字确定语句的类型属于模块定义、输入和输出端口定义、内部信号和寄存器定义或运算表达式;
当关键字表明语句为模块定义,输入和输出端口定义或内部信号和寄存器定义时,对模块名称、输入端口名称、输出端口名称、内部信号和寄存器名称进行存储;
当关键字表明语句为运算表达式时,关键字即为运算类型,对应于硬件电路中的一个逻辑单元;关键字之后分别是运算输出和输入信号,当一个信号同时作为两个或多个逻辑单元的运算输出或输入信号时,两个或多个逻辑单元即由该信号产生了连接关系;
利用图结构实现硬件电路设计网表的存储,即可得到硬件设计的网表图,其中,图的顶点由全部的逻辑单元组成,图的边反映了顶点之间的连接关系,对应于同时作为两个或多个逻辑单元的运算输出或输入的信号;
步骤2:逻辑单元信息流模型库的构建
信息流模型用于对信息从输入信号向输出信号的传播行为进行建模,假设逻辑单元的布尔逻辑函数为O=f(I1,I2,…,I k,…,I n),I1,I2,…,I k,…,I n,O∈{0,1},为输入I1,I2,…, I k,…,I n分配属性标签L(I1),L(I2),…,L(I k),…,L(I n),(L(I1),L(I2),…,L(I k),…,L(I n)∈{LOW,HIGH},LOW和HIGH分别编码为0和1;输入I1,I2,…,I k,…,I n的属性标签L(I1),L (I2),…,L(I k),…,L(I n)由设计的安全规范定义,或由上一级的信息流模型计算得到;
构建多种不同逻辑单元的信息流模型,即可集成得到一个逻辑单元的信息流模型库;
所述构建信息流模型的详细步骤为:
逻辑单元的信息流模型根据输入I1,I2,…,I k,…,I n及其属性标签L(I1),L(I2),…,L (I k),…,L(I n),计算得到输出的属性标签L(O),定义为:
L(O)=f(I1,I2,…,I k,…,I n,L(I1),L(I2),…,L(I k),…,L(I n))
根据上述逻辑单元的信息流模型的定义,采用一个以I1,I2,…,I k,…,I n,L(I1),L (I2),…,L(I k),…,L(I n)为输入,以L(O)为输出的真值表来描述,真值表的生成规则如下:
1)当L(I1),L(I2),…,L(I k),…,L(I n)全部为LOW时,L(O)的取值为LOW;
2)当L(I1),L(I2),…,L(I k),…,L(I n)全部为HIGH时,L(O)的取值为HIGH;
3)当L(I1),L(I2),…,L(I k),…,L(I n)中L(I s),…,L(I k),…,L(I t)(1≤s,...k,...t≤n)为HIGH,其余为LOW时,直接将输入L(I s),…,L(I k),…,L(I t)从逻辑函数O=f(I1,I2,…, I k,…,I n)中去掉,得到简化函数O s,…k,…t,则当O s,…k,…t的取值为1时,L(O)的取值为HIGH;则当O s,…k,…t的取值为0时,L(O)的取值为LOW;
采用如上三个步骤,得到以I1,I2,…,I k,…,I n,L(I1),L(I2),…,L(I k),…,L(I n)为输入,以L(O)为输出的完整真值表,真值表对应于一个布尔逻辑函数,该布尔逻辑函数即为给定逻辑单元的信息流模型;
步骤3:集成电路硬件设计的信息流模型的生成
在逻辑单元信息流模型的基础上,采用映射方法生成整个集成电路硬件设计的信息流模型,具体过程如下:
将步骤1中所构建的集成电路硬件设计的网表图中的各个逻辑单元映射至步骤2中构
2