CN108647533A - 用于检测硬件木马的安全断言自动生成方法 - Google Patents

用于检测硬件木马的安全断言自动生成方法 Download PDF

Info

Publication number
CN108647533A
CN108647533A CN201810151701.3A CN201810151701A CN108647533A CN 108647533 A CN108647533 A CN 108647533A CN 201810151701 A CN201810151701 A CN 201810151701A CN 108647533 A CN108647533 A CN 108647533A
Authority
CN
China
Prior art keywords
signal
hardware trojan
bit
level
representing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810151701.3A
Other languages
English (en)
Other versions
CN108647533B (zh
Inventor
蔡懿慈
王晨光
周强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201810151701.3A priority Critical patent/CN108647533B/zh
Publication of CN108647533A publication Critical patent/CN108647533A/zh
Application granted granted Critical
Publication of CN108647533B publication Critical patent/CN108647533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种用于检测硬件木马的安全断言自动生成方法,包括:对待测芯片的寄存器传输级网表文件进行仿真,得到仿真运行结果和仿真运行文件;根据构建的安全性知识库对仿真运行结果进行分析,得到疑似硬件木马电路的信号;针对每个疑似硬件木马电路的信号执行以下步骤:根据仿真运行文件,推导与疑似硬件木马电路的信号对应的寄存器传输级不变式;根据构建的安全断言模板知识库、推导出的寄存器传输级不变式以及疑似硬件木马电路的信号,生成对应于疑似硬件木马电路的信号的安全断言。本发明利用寄存器传输级不变式实现安全断言的自动生成,减轻设计人员的工作量,省时且不易出错,有效提高了形式验证检测硬件木马的效率。

Description

用于检测硬件木马的安全断言自动生成方法
技术领域
本发明涉及集成电路的安全性验证技术领域,尤其涉及一种用于检测硬件木马的安全断言自动生成方法。
背景技术
硬件木马是指被故意植入电子系统中的特殊模块以及电路,或者设计者无意留下的缺陷模块以及电路。这种模块或电路平日中潜伏在原始电路之中,在特殊条件触发下,该模块或电路能够被攻击者利用以实现对原始电路进行有目的性的修改,进而实现破坏性功能,致使原始电路发生本不该发生的情况,例如,泄漏信息给攻击者、使电路功能发生改变、甚至直接损坏电路。
近年来,由于集成电路工艺技术发展迅速,使得芯片设计流程变得日益复杂以及制造过程全球化,从而导致集成电路从设计过程到制造过程都很容易被硬件木马攻击。为了提高芯片的安全性,需要在设计阶段对硬件木马的存在性进行检测。
目前的硬件木马检测方法,主要包括:功能测试、测试信道分析和形式验证等。其中,形式验证由于能够从算法上穷尽检查所有随时间可能变化的输入值,可以穷尽地搜索芯片设计的状态空间,并且不依赖黄金参考模型,因此日益受到重视。
然而,形式验证所需的断言目前仍需要人工编写,这制约了形式验证在硬件木马检测领域的应用。即使对于有经验的设计人员,人工编写安全断言也是非常耗时且容易出错的,这主要是由于:1、缺少形式化的安全设计规范说明;2、设计人员须熟悉各种形式化语言;3、编写过程十分依赖主观判断,难以产生百分之百覆盖率的断言。
因此,为了提高形式验证检测硬件木马的效率,需要提供一种安全断言自动生成方法。
发明内容
本发明所要解决的技术问题是:现有技术中形式验证所需的断言需要人工编写,非常耗时且容易出错,从而导致形式验证检测硬件木马的效率低。
为了解决上述技术问题,本发明提供了一种用于检测硬件木马的安全断言自动生成方法。
根据本发明的实施例,提供了一种用于检测硬件木马的安全断言自动生成方法,包括:
对待测芯片的寄存器传输级网表文件进行仿真,得到仿真运行结果和仿真运行文件;
根据构建的安全性知识库对所述仿真运行结果进行分析,得到疑似硬件木马电路的信号;
针对每个疑似硬件木马电路的信号执行以下步骤:
根据所述仿真运行文件,推导与所述疑似硬件木马电路的信号对应的寄存器传输级不变式;
根据构建的安全断言模板知识库、推导出的寄存器传输级不变式以及所述疑似硬件木马电路的信号,生成对应于所述疑似硬件木马电路的信号的安全断言;
其中,所述安全性知识库中保存有所述待测芯片中硬件木马电路的信号特征;每个类型的信号特征对应一个寄存器传输级不变式计算式;所述安全断言模板知识库中保存有与各个寄存器传输级不变式计算式对应的安全断言模板。
优选地,该方法还包括离线或在线构建安全性知识库,其包括:
分析插入至所述待测芯片中的硬件木马电路中触发逻辑单元和功能逻辑单元的信号的信号特征,并基于分析结果构建安全性知识库。
优选地,该方法还包括离线或在线构建所述安全断言模板知识库,其包括:
对所述安全性知识库中保存的信号特征进行分类;
针对每个类型的信号特征分别定义相应的寄存器传输级不变式计算式;
根据所述寄存器传输级不变式计算式和预定的形式化语言语法,分别定义与各个寄存器传输级不变式计算式对应的安全断言模板;
基于各个安全断言模板构建所述安全断言模板知识库。
优选地,所述信号特征为翻转特征,所述翻转特征的类型包括:常量类型、集合类型、范围类型和未初始化类型。
优选地,针对常量类型的信号特征,寄存器传输级不变式计算式为:
x=a
其中,x表示任意信号,a表示通过仿真实例计算得到的常量;
针对集合类型的信号特征,寄存器传输级不变式计算式为:
x∈{a,b,…,z}
其中,x表示任意信号,a,b,…,z表示通过仿真实例计算得到的不同的常量;
针对范围类型的信号特征,寄存器传输级不变式计算式为:
x∈(a,b),或者x∈[a,b]
其中,x表示任意信号,a,b表示通过仿真实例计算得到的不同的常量;
针对未初始化类型的信号特征,寄存器传输级不变式计算式为:
x=uninit
其中,x表示任意信号,uninit表示未进行初始化的信号值。
优选地,针对与常量类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1))(if a1==1);
always(rst->next_a[0:T](!x1))(if a1==0);
其中,x表示位级的任意信号,x1表示x的第1位,a表示通过仿真实例计算得到的位级的常量,a1表示a的第1位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期;
针对与集合类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1=a1&&x2=a2&&x3=a3));
always(rst->next_a[0:T](x1=b1&&x2=b2&&x3=b3));
always(rst->next_a[0:T](x1=z1&&x2=z2&&x3=z3));
其中,x表示位级的任意信号,x1表示x的第1位,x2表示x的第2位,x3表示x的第3位,a,b,…,z表示通过仿真实例计算得到的位级的不同的常量,a1,b1,…,z1分别表示a,b,…,z的第1位,a2,b2,…,z2分别表示a,b,…,z的第2位,a3,b3,…,z3分别表示a,b,…,z的第3位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期;
针对与范围类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1=a1&&x2=a2&&x3=a3));
always(rst->next_a[0:T](x1=(a+1)1&&x2=(a+1)2&&x3=(a+1)3));
always(rst->next_a[0:T](x1=b1&&x2=b2&&x3=b3));
其中,x表示位级的任意信号,x1表示x的第1位,x2表示x的第2位,x3表示x的第3位,a,a+1,b表示通过仿真实例计算得到的位级的不同的常量,a1,(a+1)1,b1分别表示a,a+1,b的第1位,a2,(a+1)2,b2分别表示a,a+1,b的第2位,a3,(a+1)3,b3分别表示a,a+1,b的第3位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期;
针对与未初始化类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(x0)(if x0==1);
always(!x0)(if x0==0);
其中,x表示位级的任意信号,x0表示x的第0位。
优选地,对待测芯片的寄存器传输级网表文件进行仿真,得到仿真运行结果和仿真运行文件,包括:
通过随机数生成器随机产生作为所述芯片的寄存器传输级网表文件的输入的输入向量;
利用第一仿真工具对所述寄存器传输级网表文件进行仿真,得到所述仿真运行结果;
利用第二仿真工具对所述寄存器传输级网表文件进行仿真,得到所述仿真运行文件。
优选地,所述仿真运行文件为值变转储文件。
优选地,根据构建的安全性知识库对所述仿真运行结果进行分析,得到疑似硬件木马电路的信号,包括:
根据所述仿真运行结果,得到所述芯片的各个电路节点处信号的极性翻转次数;
将极性翻转次数小于预定的翻转次数阈值的信号,标记为所述疑似硬件木马电路的信号。
优选地,根据所述仿真运行文件,推导与所述疑似硬件木马电路的信号对应的寄存器传输级不变式,包括:
利用预先编写的脚本程序,将所述仿真运行文件转换为推导工具支持的输入文件格式;
利用所述推导工具从转换的仿真运行文件推导出与所述疑似硬件木马电路的信号对应的寄存器传输级不变式。
优选地,根据构建的安全断言模板知识库、推导出的寄存器传输级不变式以及所述疑似硬件木马电路的信号,生成对应于所述疑似硬件木马电路的信号的安全断言,包括:
对推导出的寄存器传输级不变式进行转换,以使转换后的寄存器传输级不变式与安全断言模板的描述形式相同;
匹配出与所述转换后的寄存器传输级不变式的类型相同的安全断言模板;
将所述疑似硬件木马电路的信号替换至所述匹配出的安全断言模板中,来生成与该疑似硬件木马电路的信号相对应的安全断言。
优选地,对推导出的寄存器传输级不变式进行转换,包括:通过将字级信号值转换为位级信号值,将推导出的寄存器传输级不变式由字级转换为位级。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
应用本发明实施例提供的用于检测硬件木马的安全断言自动生成方法,基于软件的程序不变式提出硬件的寄存器传输级不变式,并利用寄存器传输级不变式实现安全断言的自动生成,减轻设计人员的工作量,省时且不易出错,有效提高了形式验证检测硬件木马的效率。
此外,应用本发明实施例提供的用于检测硬件木马的安全断言自动生成方法,不依赖主观判断,可以产生百分之百覆盖率的安全断言,有效提高了形式验证检测硬件木马的准确性。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其它优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例的用于检测硬件木马的安全断言自动生成方法的流程示意图;
图2为图1中步骤S101的具体步骤;
图3为图1中步骤S102的具体步骤;
图4为本发明实施例的硬件木马电路的数据流图;
图5为图1中步骤S103的具体步骤;
图6为图1中步骤S104的具体步骤;
图7为本发明实施例的芯片的仿真运行的结果文件的示意图;
图8为从图7推导出的四种类型的寄存器传输级不变式;
图9为图1中步骤S105的具体步骤;
图10为图1中步骤S106的具体步骤;
图11为本发明实施例的字级信号值转换为位级信号值的示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
为解决现有技术中形式验证所需的断言需要人工编写,非常耗时且容易出错,从而导致形式验证检测硬件木马的效率低的问题,本发明实施例提供了一种用于检测硬件木马的安全断言自动生成方法。
在软件形式验证领域,基于程序不变式(Program Invariants)的方法已被应用于自动生成断言。程序不变式是程序仿真时恒成立的有关程序变量的性质,它形式化地表达了程序运行时单个变量的变化规律以及多个变量之间的关系。通过程序不变式,设计人员可以自动生成软件形式验证所需要的断言。它极大地提高了软件形式验证的效率,并且消除了由于人为因素所造成的错误。本发明创造性地借鉴软件的程序不变式概念,提出了硬件的寄存器传输级不变式(RTL Invariants,简称RI),并在此基础上实现用于检测硬件木马的安全断言自动生成。
程序不变式体现了程序中的各个变量的变化情况。类似地,寄存器传输级不变式是在待测芯片的寄存器传输级网表文件仿真时恒成立的有关网表信号的性质,它形式化地表达了待测芯片工作时单个信号的变化规律。
本发明基于软件的程序不变式提出硬件的寄存器传输级不变式概念,实现了用于检测硬件木马的安全断言的自动生成,有效提高了形式验证检测硬件木马的效率。
需要说明的是,在本发明实施例中,提出了“寄存器传输级不变式计算式”和“寄存器传输级不变式”两个概念。这里,为了便于理解本发明的技术方案,首先对“寄存器传输级不变式计算式”和“寄存器传输级不变式”这两个概念进行解释说明。以常量类型为例,“寄存器传输级不变式计算式”是指预先定义的带有x的表达式,即x=a,其中,x表示任意信号,a仅表示通过仿真实例计算得到的常量,但未限定具体数值。“寄存器传输级不变式”是指通过仿真实例得到的带有x的表达式,其表示形式同样为x=a,但此时x表示通过仿真实例得到的具体的信号,a表示通过仿真实例计算得到的具体数值。也就是说,“寄存器传输级不变式”是通过将仿真实例得到的具体的信号x代入寄存器传输级不变式计算式中而得到的表达式。
图1为本发明实施例的用于检测硬件木马的安全断言自动生成方法的流程示意图。
如图1所示,本发明实施例的用于检测硬件木马的安全断言自动生成方法主要包括步骤S101至步骤S106。下面结合图1以被插入信息泄露型硬件木马的芯片AES-T100(采用128位密钥的高级加密算法)和该硬件木马的触发器信号为例详细描述各个步骤。
在本发明实施例中,被插入信息泄露型硬件木马的芯片AES-T100来自于开源的硬件安全资源平台www.Trust-HUB.org,其数据流图如图4所示。
首先,执行步骤S101,离线或在线构建安全性知识库,其包括:分析插入至待测芯片中的硬件木马电路中触发逻辑单元和功能逻辑单元的信号的信号特征,并基于分析结果构建安全性知识库。如此构建的安全性知识库中保存有待测芯片中硬件木马电路的信号特征以及与各个类型的信号特征对应的寄存器传输级不变式计算式。这里,每个类型的信号特征对应一个寄存器传输级不变式计算式。
在本发明一实施例中,通过分析硬件木马电路中触发器和有效载荷的信号的信号特征,并基于分析结果构建描述硬件木马电路的信号的翻转特征的安全性知识库。具体过程如图2所示:
步骤S1011,分析硬件木马电路中触发器的信号特征。触发器通常与翻转活动频率较低的电路连接,只有在极少数情况下才被激活。
步骤S1012,分析硬件木马电路中有效载荷的信号特征。有效载荷通常与可观察性较低的电路连接,以减少硬件木马电路被激活时对正常电路的影响。
在本实施例中,通过调研相关文档,可以总结得出有效载荷的设计策略,即与可观察性较低的电路连接,以减少硬件木马电路在硬件方面带来的影响。
步骤S1013,结合触发器和有效载荷的信号特征,得到硬件木马电路的信号在仿真中具有“低可控制性”的翻转特征,来构建安全性知识库。
然后,执行步骤S102,离线或在线构建安全断言模板知识库。具体过程如图3所示:
步骤S1021,对安全性知识库中保存的信号特征进行分类。
在本发明一实施例中,安全性知识库中保存有四种类型的硬件木马电路的信号特征,分别为:常量类型(C)、集合类型(S)、范围类型(R)和未初始化类型(U)。
步骤S1022,针对每个类型的信号特征分别定义相应的寄存器传输级不变式计算式。
在本发明一实施例中,针对常量类型的信号特征,寄存器传输级不变式计算式为:
x=a
其中,x表示任意信号,a表示通过仿真实例计算得到的常量。
针对集合类型的信号特征,寄存器传输级不变式计算式为:
x∈{a,b,…,z}
其中,x表示任意信号,a,b,…,z表示通过仿真实例计算得到的不同的常量。
针对范围类型的信号特征,寄存器传输级不变式计算式为:
x∈(a,b),或者x∈[a,b]
其中,x表示任意信号,a,b表示通过仿真实例计算得到的不同的常量。
针对未初始化类型的信号特征,寄存器传输级不变式计算式为:
x=uninit
其中,x表示任意信号,uninit表示未进行初始化的信号值。
步骤S1023,根据寄存器传输级不变式计算式和预定的形式化语言语法,分别定义与各个寄存器传输级不变式计算式对应的安全断言模板。
在本发明一实施例中,预定的形式化语言语法为性质规范语言(PropertySpecification Language,PSL)语法。具体过程如下:
针对与常量类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1))(if a1==1);
always(rst->next_a[0:T](!x1))(if a1==0);
其中,x表示位级的任意信号,x1表示x的第1位,a表示通过仿真实例计算得到的位级的常量,a1表示a的第1位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期。
针对与集合类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1=a1&&x2=a2&&x3=a3));
always(rst->next_a[0:T](x1=b1&&x2=b2&&x3=b3));
always(rst->next_a[0:T](x1=z1&&x2=z2&&x3=z3));
其中,x表示位级的任意信号,x1表示x的第1位,x2表示x的第2位,x3表示x的第3位,a,b,…,z表示通过仿真实例计算得到的位级的不同的常量,a1,b1,…,z1分别表示a,b,…,z的第1位,a2,b2,…,z2分别表示a,b,…,z的第2位,a3,b3,…,z3分别表示a,b,…,z的第3位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期。
针对与范围类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1=a1&&x2=a2&&x3=a3));
always(rst->next_a[0:T](x1=(a+1)1&&x2=(a+1)2&&x3=(a+1)3));
always(rst->next_a[0:T](x1=b1&&x2=b2&&x3=b3));
其中,x表示位级的任意信号,x1表示x的第1位,x2表示x的第2位,x3表示x的第3位,a,a+1,b表示通过仿真实例计算得到的位级的不同的常量,a1,(a+1)1,b1分别表示a,a+1,b的第1位,a2,(a+1)2,b2分别表示a,a+1,b的第2位,a3,(a+1)3,b3分别表示a,a+1,b的第3位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期。
针对与未初始化类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(x0)(if x0==1);
always(!x0)(if x0==0);
其中,x表示位级的任意信号,x0表示x的第0位。
步骤S1024,基于各个安全断言模板构建安全断言模板知识库。由此,构建的安全断言模板知识库中保存有与各个寄存器传输级不变式计算式对应的安全断言模板。
接着,执行步骤S103,对待测芯片的寄存器传输级网表文件进行仿真,得到仿真运行结果和仿真运行文件。具体过程如图5所示:
步骤S1031,通过随机数生成器随机产生作为芯片的寄存器传输级网表文件的输入的输入向量。
步骤S1032,利用第一仿真工具对寄存器传输级网表文件进行仿真,得到仿真运行结果。
在本发明一实施例中,第一仿真工具为Mentor
步骤S1033,利用第二仿真工具对寄存器传输级网表文件进行仿真,得到仿真运行文件,即值变转储文件(Value Change Dump)。
在本发明一实施例中,第二仿真工具为SYNOPSYS Design
接着,执行步骤S104,根据构建的安全性知识库对仿真运行结果进行分析,得到疑似硬件木马电路的信号。具体过程如图6所示:
步骤S1041,根据Mentor 仿真运行结果,得到芯片的各个电路节点处信号的极性翻转次数,如图7所示。需要说明的是,“芯片的各个电路节点处的信号”是指芯片的所有信号,包括输入信号、输出信号以及电路中间节点处的信号。
步骤S1042,将极性翻转次数小于预定的翻转次数阈值的信号,标记为疑似硬件木马电路的信号。
在本发明一实施例中,图7显示了芯片AES-T100的所有信号在仿真中的极性翻转情况。在图7中,左侧方框内容为芯片的仿真运行的结果文件,右侧方框内容为芯片的所有信号的极性翻转次数。其中,右上角标记有星号的为硬件木马电路的信号的极性翻转情况,无特殊标记的为正常信号的极性翻转情况。
由图7可见,硬件木马电路的信号的极性翻转次数一般少于正常信号的极性翻转次数。这里,以1000个时钟周期的仿真运行时间为例,将预定的翻转次数阈值设置为50,则所有硬件木马电路的信号均可以被标记出来。
需要说明的是,在图7中,硬件木马电路的触发器信号Tj_Trig的翻转次数为1次,小于所有正常信号的翻转次数,这是由于硬件木马电路需要设计为极少情况下才可被激活。
本发明在推导寄存器传输级不变式之前,先标记出疑似硬件木马电路的信号并对这些信号进行后续处理,这样可以排除大部分正常电路的信号,从而降低后续推导时的计算复杂度,有效提高了形式验证检测硬件木马的效率。
接着,执行步骤S105,根据仿真运行文件,推导与疑似硬件木马电路的信号对应的寄存器传输级不变式,如图8所示。在图8中,推导出的各寄存器传输级不变式用RI_X表示,X只是个没有意义的数字,用于区别各寄存器传输级不变式。具体推导过程如图9所示:
步骤S1051,利用预先编写的脚本程序,将仿真运行文件转换为推导工具支持的输入文件格式。
在本发明一实施例中,推导工具为寄存器传输级不变式推导工具,寄存器传输级不变式推导工具为Daikon invariant
步骤S1052,利用推导工具从转换的仿真运行文件推导出与疑似硬件木马电路的信号对应的寄存器传输级不变式。
最后,执行步骤S106,根据构建的安全断言模板知识库、推导出的寄存器传输级不变式以及疑似硬件木马电路的信号,生成对应于疑似硬件木马电路的信号的安全断言。具体过程如图10所示:
步骤S1061,对推导出的寄存器传输级不变式进行转换,以使转换后的寄存器传输级不变式与安全断言模板的描述形式相同。
在本发明一实施例中,通过将字级信号值转换为位级信号值,将推导出的寄存器传输级不变式由字级转换为位级,如图11所示。
图11为本发明实施例的字级信号值转换为位级信号值的示意图。其中,图11的(a)部分显示信号x在仿真运行结果中出现了三种可能的数值1,3,6,分别将其转换为二进制数为001,011,110。这里,设置三个新的信号x0,x1,x2。针对字级信号值1,转换后的位级信号值为:x0=0,x1=0,x2=1;针对字级信号值3,转换后的位级信号值为:x0=0,x1=1,x2=1;针对字级信号值6,转换后的位级信号值为:x0=1,x1=1,x2=0。图11的(b)部分显示推导出的集合类型的寄存器传输级不变式由字级转换为位级。
步骤S1062,匹配出与转换后的寄存器传输级不变式的类型相同的安全断言模板。例如,转换后的寄存器传输级不变式为常量类型,则匹配出常量类型的安全断言模板。
步骤S1063,将疑似硬件木马电路的信号替换至匹配出的安全断言模板中,来生成与该疑似硬件木马电路的信号相对应的安全断言。
例如,针对信号Tj_Trig,已经推导出常量类型的寄存器传输级不变式,通过将字级信号值转换为位级信号值,将推导出的常量类型的寄存器传输级不变式由字级转换为位级。然后,从预先定义的安全断言模板知识库中匹配出常量类型的安全断言模板。最后,将常量类型的安全断言模板中的x替换为通过仿真实例得到的具体的信号名称,将a替换为通过仿真实例计算得到的具体数值,即可得到常量类型的安全断言如下:
Property
P_LOW_CNTROLLABILITY_RTL_INVARIANT_C=always aes_start->next_a[0:1000](!Tj_Trig);
Assert
P_LOW_CNTROLLABILITY_RTL_INVARIANT_C。
需要说明的是,上面显示的安全断言采用的是具体的PSL语言语法,且针对具体的设计示例,而前面定义的安全断言模板只是表达了大概的形式。因此,上面显示的安全断言与前面定义的安全断言模板可能在形式上有些许不同,但其实质是一样的。
综上所述,即可完成用于检测待测芯片的硬件木马的安全断言的自动生成。
可见,本发明可以全自动地生成用于形式验证检测硬件木马的安全断言,减轻了设计人员的工作量,省时且降低出错率,有效提高了形式验证检测硬件木马的效率。由于不依赖主观判断,可以产生百分之百覆盖率的断言,有效提高了形式验证检测硬件木马的准确性。
需要说明的是,本发明实施例不限于基于芯片AES-T100的示例,而是包括所有来自于开源的硬件安全资源平台www.Trust-HUB.org的示例。因此,本发明适用于各种类型的芯片和工艺库,适用范围广。
通过上述安全断言自动生成方法,生成用于检测硬件木马的安全断言。然后,利用生成的安全断言,对测试例进行检测,检测结果如下表1所示。具体地,使用第三方形式验证工具对芯片进行验证。如果断言成立,则表示该信号确实为硬件木马电路信号。
在本发明一实施例中,形式验证工具为CADENCE Incisive Formal
在表1中,第一列为测试例,第二列为安全断言生成数量,第三列为覆盖率,第四列为运行时间。在本发明一实施例中,覆盖率被定义为验证覆盖的情况占所有情况的比例(即信号的取值情况覆盖的比例),运行时间可以直接从程序运行结果中查询得到。
由表1可以看出,本发明实施例的用于检测硬件木马的安全断言自动生成方法可以生成百分之百覆盖率的安全断言,这对确保芯片无硬件木马插入至关重要。同时,相较于使用外部工具,本发明的断言生成步骤的时间明显降低,这说明本发明的用于检测硬件木马的安全断言自动生成方法能够有效地提高形式验证检测硬件木马的效率。
表1检测结果
应用本发明实施例提供的用于检测硬件木马的安全断言自动生成方法,基于软件的程序不变式提出硬件的寄存器传输级不变式,并利用寄存器传输级不变式实现安全断言的自动生成,减轻设计人员的工作量,省时且不易出错,有效提高了形式验证检测硬件木马的效率。
此外,应用本发明实施例提供的用于检测硬件木马的安全断言自动生成方法,不依赖主观判断,可以产生百分之百覆盖率的安全断言,有效提高了形式验证检测硬件木马的准确性。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (12)

1.一种用于检测硬件木马的安全断言自动生成方法,其特征在于,包括:
对待测芯片的寄存器传输级网表文件进行仿真,得到仿真运行结果和仿真运行文件;
根据构建的安全性知识库对所述仿真运行结果进行分析,得到疑似硬件木马电路的信号;
针对每个疑似硬件木马电路的信号执行以下步骤:
根据所述仿真运行文件,推导与所述疑似硬件木马电路的信号对应的寄存器传输级不变式;
根据构建的安全断言模板知识库、推导出的寄存器传输级不变式以及所述疑似硬件木马电路的信号,生成对应于所述疑似硬件木马电路的信号的安全断言;
其中,所述安全性知识库中保存有所述待测芯片中硬件木马电路的信号特征;每个类型的信号特征对应一个寄存器传输级不变式计算式;所述安全断言模板知识库中保存有与各个寄存器传输级不变式计算式对应的安全断言模板。
2.根据权利要求1所述的安全断言自动生成方法,其特征在于,还包括离线或在线构建安全性知识库,其包括:
分析插入至所述待测芯片中的硬件木马电路中触发逻辑单元和功能逻辑单元的信号的信号特征,并基于分析结果构建安全性知识库。
3.根据权利要求1或2所述的安全断言自动生成方法,其特征在于,还包括离线或在线构建所述安全断言模板知识库,其包括:
对所述安全性知识库中保存的信号特征进行分类;
针对每个类型的信号特征分别定义相应的寄存器传输级不变式计算式;
根据所述寄存器传输级不变式计算式和预定的形式化语言语法,分别定义与各个寄存器传输级不变式计算式对应的安全断言模板;
基于各个安全断言模板构建所述安全断言模板知识库。
4.根据权利要求1所述的安全断言自动生成方法,其特征在于,所述信号特征为翻转特征,所述翻转特征的类型包括:常量类型、集合类型、范围类型和未初始化类型。
5.根据权利要求1所述的安全断言自动生成方法,其特征在于,
针对常量类型的信号特征,寄存器传输级不变式计算式为:
x=a
其中,x表示任意信号,a表示通过仿真实例计算得到的常量;
针对集合类型的信号特征,寄存器传输级不变式计算式为:
x∈{a,b,…,z}
其中,x表示任意信号,a,b,…,z表示通过仿真实例计算得到的不同的常量;
针对范围类型的信号特征,寄存器传输级不变式计算式为:
x∈(a,b),或者x∈[a,b]
其中,x表示任意信号,a,b表示通过仿真实例计算得到的不同的常量;
针对未初始化类型的信号特征,寄存器传输级不变式计算式为:
x=uninit
其中,x表示任意信号,uninit表示未进行初始化的信号值。
6.根据权利要求1所述的安全断言自动生成方法,其特征在于,
针对与常量类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1))(if a1==1);
always(rst->next_a[0:T](!x1))(if a1==0);
其中,x表示位级的任意信号,x1表示x的第1位,a表示通过仿真实例计算得到的位级的常量,a1表示a的第1位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期;
针对与集合类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1=a1&&x2=a2&&x3=a3));
always(rst->next_a[0:T](x1=b1&&x2=b2&&x3=b3));
always(rst->next_a[0:T](x1=z1&&x2=z2&&x3=z3));
其中,x表示位级的任意信号,x1表示x的第1位,x2表示x的第2位,x3表示x的第3位,a,b,…,z表示通过仿真实例计算得到的位级的不同的常量,a1,b1,…,z1分别表示a,b,…,z的第1位,a2,b2,…,z2分别表示a,b,…,z的第2位,a3,b3,…,z3分别表示a,b,…,z的第3位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期;
针对与范围类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(rst->next_a[0:T](x1=a1&&x2=a2&&x3=a3));
always(rst->next_a[0:T](x1=(a+1)1&&x2=(a+1)2&&x3=(a+1)3));
always(rst->next_a[0:T](x1=b1&&x2=b2&&x3=b3));
其中,x表示位级的任意信号,x1表示x的第1位,x2表示x的第2位,x3表示x的第3位,a,a+1,b表示通过仿真实例计算得到的位级的不同的常量,a1,(a+1)1,b1分别表示a,a+1,b的第1位,a2,(a+1)2,b2分别表示a,a+1,b的第2位,a3,(a+1)3,b3分别表示a,a+1,b的第3位,rst表示清零信号,[0:T]表示从0开始的T+1个间隔的时钟周期;
针对与未初始化类型的信号特征对应的寄存器传输级不变式计算式,安全断言模板为:
always(x0)(if x0==1);
always(!x0)(if x0==0);
其中,x表示位级的任意信号,x0表示x的第0位。
7.根据权利要求1至6中任一项所述的安全断言自动生成方法,其特征在于,对待测芯片的寄存器传输级网表文件进行仿真,得到仿真运行结果和仿真运行文件,包括:
通过随机数生成器随机产生作为所述芯片的寄存器传输级网表文件的输入的输入向量;
利用第一仿真工具对所述寄存器传输级网表文件进行仿真,得到所述仿真运行结果;
利用第二仿真工具对所述寄存器传输级网表文件进行仿真,得到所述仿真运行文件。
8.根据权利要求7所述的安全断言自动生成方法,其特征在于,所述仿真运行文件为值变转储文件。
9.根据权利要求1至6中任一项所述的安全断言自动生成方法,其特征在于,根据构建的安全性知识库对所述仿真运行结果进行分析,得到疑似硬件木马电路的信号,包括:
根据所述仿真运行结果,得到所述芯片的各个电路节点处信号的极性翻转次数;
将极性翻转次数小于预定的翻转次数阈值的信号,标记为所述疑似硬件木马电路的信号。
10.根据权利要求1至6中任一项所述的安全断言自动生成方法,其特征在于,根据所述仿真运行文件,推导与所述疑似硬件木马电路的信号对应的寄存器传输级不变式,包括:
利用预先编写的脚本程序,将所述仿真运行文件转换为推导工具支持的输入文件格式;
利用所述推导工具从转换的仿真运行文件推导出与所述疑似硬件木马电路的信号对应的寄存器传输级不变式。
11.根据权利要求1至6中任一项所述的安全断言自动生成方法,其特征在于,根据构建的安全断言模板知识库、推导出的寄存器传输级不变式以及所述疑似硬件木马电路的信号,生成对应于所述疑似硬件木马电路的信号的安全断言,包括:
对推导出的寄存器传输级不变式进行转换,以使转换后的寄存器传输级不变式与安全断言模板的描述形式相同;
匹配出与所述转换后的寄存器传输级不变式的类型相同的安全断言模板;
将所述疑似硬件木马电路的信号替换至所述匹配出的安全断言模板中,来生成与该疑似硬件木马电路的信号相对应的安全断言。
12.根据权利要求11所述的安全断言自动生成方法,其特征在于,对推导出的寄存器传输级不变式进行转换,包括:通过将字级信号值转换为位级信号值,将推导出的寄存器传输级不变式由字级转换为位级。
CN201810151701.3A 2018-02-14 2018-02-14 用于检测硬件木马的安全断言自动生成方法 Active CN108647533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810151701.3A CN108647533B (zh) 2018-02-14 2018-02-14 用于检测硬件木马的安全断言自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810151701.3A CN108647533B (zh) 2018-02-14 2018-02-14 用于检测硬件木马的安全断言自动生成方法

Publications (2)

Publication Number Publication Date
CN108647533A true CN108647533A (zh) 2018-10-12
CN108647533B CN108647533B (zh) 2021-10-08

Family

ID=63744212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810151701.3A Active CN108647533B (zh) 2018-02-14 2018-02-14 用于检测硬件木马的安全断言自动生成方法

Country Status (1)

Country Link
CN (1) CN108647533B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109557449A (zh) * 2018-10-23 2019-04-02 中国科学院计算技术研究所 基于难测路径选择的集成电路检测方法和系统
CN110287735A (zh) * 2019-07-04 2019-09-27 电子科技大学 基于芯片网表特征的木马感染电路识别方法
CN114238956A (zh) * 2021-12-06 2022-03-25 西北工业大学 基于属性自动提取和形式化验证的硬件木马搜索检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850804A (zh) * 2015-05-28 2015-08-19 清华大学 基于电路特征分析的硬件木马检测方法
US20160098558A1 (en) * 2014-10-03 2016-04-07 New York University System, method and computer-accessible medium for security verification of third party intellectual property cores

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160098558A1 (en) * 2014-10-03 2016-04-07 New York University System, method and computer-accessible medium for security verification of third party intellectual property cores
CN104850804A (zh) * 2015-05-28 2015-08-19 清华大学 基于电路特征分析的硬件木马检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JONATHAN CRUZ: "《Hardware Trojan Detection using ATPG and Model Checking》", 《BACHELOR OF SCIENCE IN COMPUTER ENGINEERING》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109557449A (zh) * 2018-10-23 2019-04-02 中国科学院计算技术研究所 基于难测路径选择的集成电路检测方法和系统
CN110287735A (zh) * 2019-07-04 2019-09-27 电子科技大学 基于芯片网表特征的木马感染电路识别方法
CN110287735B (zh) * 2019-07-04 2021-05-04 电子科技大学 基于芯片网表特征的木马感染电路识别方法
CN114238956A (zh) * 2021-12-06 2022-03-25 西北工业大学 基于属性自动提取和形式化验证的硬件木马搜索检测方法
CN114238956B (zh) * 2021-12-06 2024-02-23 西北工业大学 基于属性自动提取和形式化验证的硬件木马搜索检测方法

Also Published As

Publication number Publication date
CN108647533B (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
US6931611B2 (en) Design verification system for avoiding false failures and method therefor
Kande et al. Llm-assisted generation of hardware assertions
US20030018461A1 (en) Simulation monitors based on temporal formulas
US8271252B2 (en) Automatic verification of device models
CN108647533B (zh) 用于检测硬件木马的安全断言自动生成方法
CN112417798B (zh) 一种时序测试方法、装置、电子设备及存储介质
US9177089B2 (en) Formal verification coverage metrics for circuit design properties
CN114065677A (zh) 用于集成电路硬件设计的故障注入测试的方法和系统
CN112597718B (zh) 集成电路设计的验证方法、验证装置以及存储介质
Yu et al. An improved automatic hardware trojan generation platform
US10515169B1 (en) System, method, and computer program product for computing formal coverage data compatible with dynamic verification
US20200074040A1 (en) Hierarchical expression coverage clustering for design verification
US8650519B2 (en) Automated functional coverage for an integrated circuit design
US9685959B2 (en) Method for speeding up boolean satisfiability
US10592623B2 (en) Assertion statement check and debug
US20070180411A1 (en) Method and apparatus for comparing semiconductor-related technical systems characterized by statistical data
Wang et al. ASAX: Automatic security assertion extraction for detecting Hardware Trojans
US9619598B2 (en) Input space reduction for verification test set generation
US9135376B2 (en) Input space reduction for verification test set generation
CN112650638A (zh) 一种基于门级污染标签跟踪模型的硬件安全漏洞检测方法
Jiang et al. Optimal test case generation for Simulink models using slicing
Fern et al. Evaluating assertion set completeness to expose hardware trojans and verification blindspots
Huan et al. PRISTINE: An Emulation Platform for PCB-Level Hardware Trojans
US10546083B1 (en) System, method, and computer program product for improving coverage accuracy in formal verification
Frehse et al. A better-than-worst-case robustness measure

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant