CN114880975A - 一种硬件木马的生成方法、系统、设备以及介质 - Google Patents
一种硬件木马的生成方法、系统、设备以及介质 Download PDFInfo
- Publication number
- CN114880975A CN114880975A CN202210466703.8A CN202210466703A CN114880975A CN 114880975 A CN114880975 A CN 114880975A CN 202210466703 A CN202210466703 A CN 202210466703A CN 114880975 A CN114880975 A CN 114880975A
- Authority
- CN
- China
- Prior art keywords
- time sequence
- circuit
- path
- delay
- hardware trojan
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供的一种硬件木马的生成方法、系统、设备及介质,该方法主要包括以下步骤:对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形;调用器件可靠性模型,根据所述输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数;根据所述可靠性退化参数构建老化标准单元时序库;根据所述老化标准单元时序库进行时序仿真,筛选得到关键路径;根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路;本申请技术方案实现简单高效,隐蔽性高,完成度也更高,通用性更强,可广泛应用于硬件安全技术领域。
Description
技术领域
本发明涉及硬件安全技术领域,尤其是一种硬件木马的生成方法、系统、设备及介质。
背景技术
集成电路供应链的全球化大大降低了集成电路的设计成本,与此同时,也大大增加了电路设计的安全隐患。硬件木马是指有意对电路设计施加恶意修改,导致电路在运行时产生意外行为,增加电路信息泄露和电路功能修改或失效的风险,部署在竞争者的硬件设备中可以达到侦察、破坏的目的。基于硬件的木马电路植入可能来源于集成电路产业链的其中的任一环节,主要涉及第三方的集成电路知识产权(Intellectual Property,IP)供应商、设计或制造加工的代工厂、电子设计自动化(Electron Design Automation,EDA)工具或设计人员、系统集成封装及测试等。
现有硬件木马的设计主要存在以下问题:
实现成本高:硬件木马的设计取决于攻击者的目标及可用资源,即对被寄生的电路进行研究,或是版图上或是设计上,根据原电路设计来寻找可以被植入的点以及能够被监测的触发信号。因此,寻找合适的木马植入点及相应的触发信号涉及的复杂度极高,给硬件木马的实现带来极大的挑战。
隐蔽性有限:随着硬件木马防范技术的发展,可以通过侵入式的逆向工程手段、或者非侵入式的逆向工程、旁路分析、机器学习分析等方法,在设计中、制造后、检测时、运行时都有相应的方法探测木马的存在,尤其是使用加密电路的方法之后,没有密码授权是无法往电路中植入其他模块的,硬件木马更加容易暴露。
完成度不高:为了躲避硬件木马的检测,所设计的硬件木马电路不能在常规运行时或者在测试时就被触发使用,这使得硬件木马必须设置较为特殊或者极端的触发机制。因此,很可能在一定的时间运行内,电路工作过程中是不会出现这种信号情况,因此木马也就无法发挥作用,造成了设计的浪费。
不具有通用性:硬件木马的设计是要以原电路为基础而进行定制的,纯组合电路中就无法布局时序型木马,异步电路中就无法布局同步时序木马。而以传感器信号为依赖的木马就无法被布局在非传感器电路上。因此,木马电路设计需要根据电路的设计进行适当调整,不具有通用性。
花费时间长:一般地,如前述可知,硬件木马需要根据原电路的设计来寻找植入点、触发点进行定制化的设计,这也就导致了硬件木马的设计所花费的时间较长。当硬件木马布局于整个电路中而非局部时,满足时序条件的信号线连接也成了一件比较困难且具有高时间成本的任务。
发明内容
有鉴于此,为至少部分解决上述技术问题之一,本发明实施例的目的在于提供一种实现简单高效、具有高隐蔽性、完成度高、通用性强的硬件木马的生成方法,以及能够实现该方法的系统、设备以及存储介质。
一方面,本申请技术方案提供了一种硬件木马的生成方法,包括以下步骤:
对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形;
调用器件可靠性模型,根据所述输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数;
根据所述可靠性退化参数构建老化标准单元时序库;
根据所述老化标准单元时序库进行时序仿真,筛选得到关键路径;
根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路。
在本申请方案的一种可行的实施例中,所述对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形这一步骤,包括:
获取所述目标电路的描述文件,根据所述描述文件形成测试文件;
将所述测试文件作为仿真激励,进行逻辑仿真得到所述输入波形。
在本申请方案的一种可行的实施例中,所述调用器件可靠性模型,根据所述输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数这一步骤,包括:
根据所述输入波形提取得到电学参数;
根据预设的瞬态步长时间以及所述电学参数,通过所述可靠性模型输出得到模型参数;
根据所述模型参数进行电学特性仿真,得到所述可靠性退化参数。
在本申请方案的一种可行的实施例中,所述根据所述可靠性退化参数构建老化标准单元时序库这一步骤,包括:
根据所述可靠性退化参数更新器件的模型文件;
根据所述模型文件通过特征化工具输出得到所述标准单元老化后的传播延时和信号翻转延时;
根据所述传播延时以及所述信号翻转延时构建得到所述老化标准单元时序库。
在本申请方案的一种可行的实施例中,所述根据所述老化标准单元时序库进行时序仿真,筛选得到关键路径这一步骤,包括:
根据所述目标电路的网表以及所述老化标准单元时序库进行时序分析得到候选时序路径;
根据所述候选时序路径解析得到所述目标电路的网表中的门级单元;
根据所述老化标准单元时序库对所述门级单元的延时值以及互连线延时值进行叠加,得到所述候选时序路径的时序延时;
对所述时序延时进行筛选得到所述关键路径。
在本申请方案的一种可行的实施例中,所述根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路这一步骤,包括:
根据所述关键路径的延时信息得到时序裕度,根据所述时序裕度更新所述时序约束文件。
在本申请方案的一种可行的实施例中,所述根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路这一步骤,还包括:
根据所述时序约束文件中的设定值对所述目标电路的网表进行逻辑综合得到门级网表;
根据所述门级网表进行布图规划得到目标电路版图。
另一方面,本申请技术方案还提供了一种硬件木马的生成系统,系统包括:
门级仿真模块,用于对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形;
退化预测模块,用于调用器件可靠性模型,根据所述输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数;
时序库模块,用于根据所述可靠性退化参数构建老化标准单元时序库;
时序仿真模块,用于根据所述老化标准单元时序库进行时序仿真,筛选得到关键路径;
电路布局模块,用于根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路。
另一方面,本申请技术方案还提供一种硬件木马的生成设备,该设备包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器运行如第一方面中任一项所述的一种硬件木马的生成方法。
另一方面,本申请技术方案还提供一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行如第一方面中任一项所述的一种硬件木马的生成方法。
本发明的优点和有益效果将在下面的描述中部分给出,其他部分可以通过本发明的具体实施方式了解得到:
本申请技术方案基于老化的硬件木马设计方法可应用于任一款逻辑电路中,由于其只对时序约束文件进行更改与替换,相对传统硬件木马的设计在效率上有极大的提升,降低了时间成本;并且方案充分利用电路无法避免的老化现象,基于老化原理的这一特点所设计的硬件木马无疑是具有高度隐蔽性的;方案中的基于老化的硬件木马设计很大程度上能保证木马在设定工作时间后产生作用,造成电路功能失效,具有更高的完成度;除此之外,方案的通用性强,可以适用于任何电路的具体实现,不管是纯组合逻辑,还是时序逻辑,或者是特定功能的逻辑电路,都能沿用本申请方案所提出的方法,无需更改现有的设计流程。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为传统硬件木马的抽象模型的示意图;
图2为本申请技术方案中所提供的一种硬件木马的生成方法的步骤流程图;
图3为本申请技术方案中基于老化的硬件木马设计原理示意图;
图4为本申请技术方案中所提供的另一种硬件木马的生成方法的步骤流程图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
根据木马触发机制的不同,目前现有的硬件木马设计方案主要有两类:一类是组合型硬件木马设计,另一类是时序型硬件木马设计。组合型硬件木马是基于组合电路的形式实现,以电路信号为触发条件,经过一定的逻辑实现木马的功能。时序型木马是基于时序电路的形式实现,可以是同步时序电路,也可以是异步时序电路,或者同步时序与异步时序相结合的电路,这类电路一般以时序为触发条件,如时间炸弹,采用一个定时模块和一个功能模块构成了硬件木马。这两类电路共同点是使用触发模块加上攻击模块的结构,抽象模型如图1所示,触发模块监控信号等待触发条件,攻击模块执行操作完成木马设置的功能。
而在相关技术方案中,数字集成电路设计方法可以分为两大类,一类是全定制,另一类是半定制。全定制是从最底层的晶体管开始自底向上设计电路,成本高,时间长。半定制的集成电路设计又可以分为基于单元的半定制设计和基于阵列的半定制设计,基于单元的半定制设计的单元包括标准单元和宏单元,基于阵列的半定制设计的阵列包括预扩散(门阵列)和预布线(FPGA)两种形式。在半定制的设计方法里,使用最多的还是基于标准单元的半定制数字集成电路设计。
基于标准单元的半定制数字集成电路设计有以下流程:主要分为三个部分,第一部分是顶层设计;第二部分是结构设计,第三部分是物理设计。其中,与本申请技术方案的硬件木马设计相关的是结构设计的部分,其余部分均与现有设计流程保持一致。
基于前述的技术背景以及原理性内容介绍,一方面,本申请技术方案提出了一种硬件木马的生成方法,如图2所示,方法可以包括步骤S100-S500:
S100、对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形;
具体在实施例中,方法首先进行信号波形依赖的可靠性退化预测,即对需要植入硬件木马的电路对应的网表进行门级仿真,获取各标准单元输入节点的波形。
在一些更为具体的实施场景中,方法中对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形S100,可以进一步包括步骤S110-S120:
S110、获取目标电路的描述文件,根据描述文件形成测试文件;
S120、将测试文件作为仿真激励,进行逻辑仿真得到输入波形。
具体在实施例中,硬件木马的电路设计起点是描述功能的正常行为描述文件如Verilog或Verilog HDL文件,格式为.v文件,对此格式文件采用Verilog仿真器如Synopsys的VCS可对电路进行逻辑仿真。实施例中,在逻辑仿真过程中,需针对上述输入行为描述文件编写测试(testbench)文件,此文件用于为电路逻辑仿真提供激励。然后,Verilog仿真器将根据测试文件进行编译和运行,逻辑仿真结束后可得到标准单元各端口节点的输入波形。
S200、调用器件可靠性模型,根据输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数;
具体在实施例中,可以利用电路仿真器如SPICE工具,其中调用器件可靠性模型,如Synopsys的PrimeSim具备偏置电压不稳定性以及热载流子退化可靠性模型,输入步骤S100中获得的标准单元输入节点的波形,对标准单元库中的单元电路分别进行老化仿真,老化仿真的时间节点由攻击者设定的硬件木马生效的时间点来确定,记为tfail。仿真器中集成的可靠性模型会根据电路的电学信号计算标准单元中各个器件的关键参数退化如阈值电压,经过电学仿真后可得到阈值电压漂移作为器件的老化参数。
在一些更为具体的实施场景中,方法中调用器件可靠性模型,根据输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数这一步骤S200,可以进一步包括步骤S210-S230:
S210、根据输入波形提取得到电学参数;其中,电学参数可以包括但不限于应力电压值、应力时间等;
S220、根据预设的瞬态步长时间以及电学参数,通过可靠性模型输出得到模型参数;
S230、根据模型参数进行电学特性仿真,得到可靠性退化参数。
其中,器件可靠性模型是用于描述器件老化现象的简约模型,将可靠性模型融入SPICE级别电路仿真工具可实现电路的老化预测。具体在实施例中,电路仿真器SPICE常用作器件或电路的电气仿真,当包含了可靠性模型之后,电路仿真器所使用的器件模型参数将与可靠性模型进行交互。实施例中,SPICE仿真器可调用描述老化的可靠性模型,主要的可靠性退化包括偏置电压不稳定性及热载流子退化,如Synopsys的PrimeSim支持上述两种可靠性模型的调用。在每一个瞬态步长时间内,SPICE仿真器都会根据电路结构调用其中所涉及器件的模型对整体电路进行电学仿真,并将与可靠性有相关性的电学参数如应力电压值、应力时间等传入可靠性模型内,可靠性模型利用这些参数进行器件老化的分析计算用于更新器件的模型参数如器件的阈值电压。SPICE仿真器再根据更新后模型参数进行器件的电学特性仿真,循环往复直到设置的瞬态仿真时间点结束。仿真完成后即可得到器件在设定时间年限tfail老化后的模型参数,如阈值电压漂移等。
S300、根据可靠性退化参数构建老化标准单元时序库;
在实施过程中,更为具体地,步骤S300可以包括步骤S310-S330:
S310、根据可靠性退化参数更新器件的模型文件;其中,实施例中用于表达器件模型所使用的参数对应数值集合的模型文件可以采用SPICE模型卡;
S320、根据模型文件通过特征化工具输出得到标准单元老化后的传播延时和信号翻转延时;
S330、根据传播延时以及信号翻转延时构建得到老化标准单元时序库。
具体在实施例中,将步骤S200中获得的器件阈值电压漂移更新至器件的SPICE模型卡,使用库特征化工具重新表征标准单元库,得到各标准单元经历老化后的传播延时和信号翻转延时。其中,SPICE模型卡是描述器件模型所使用的参数对应数值集合的文件,然后,基于标准单元库时序模板,生成对应的老化标准单元时序库,完成老化的标准单元库构建。
S400、根据老化标准单元时序库进行时序仿真,筛选得到关键路径;
其中,在数字集成电路设计过程中,通过静态时序分析考虑老化之后的时序情况之后会得到各个路径的延时情况,其中延时最大的路径就是关键路径。如图3所示,其中描述了路径1、路径2和路径n的延时情况,可以注意到在某个时间点之前延时最大的是路径1,因此路径1就是主导延时的关键路径。但是在某个时间点之后,延时最大的路径是路径2,此时路径2才是影响电路功能是否正常的关键路径。
在实施例中,步骤S400主要进行老化后的时序分析,即基于步骤S300中生成的老化标准单元时序库,对需要植入硬件木马的电路网表进行时序仿真,根据时序仿真得到的信号路径延时信息筛选出关键路径。
在一些更为具体的实施场景中,方法中根据老化标准单元时序库进行时序仿真,筛选得到关键路径这一步骤S400,可以包括更为具体的步骤S410-S440:
S410、根据目标电路的网表以及老化标准单元时序库进行时序分析得到候选时序路径;
S420、根据候选时序路径解析得到目标电路的网表中的门级单元;
S430、根据老化标准单元时序库对门级单元的延时值以及互连线延时值进行叠加,得到候选时序路径的时序延时;
S440、对时序延时进行筛选得到关键路径。
具体在实施例中,对步骤S100中所描述的目标电路的网表进行时序仿真,即分析电路时序是否符合要求的过程,采用的工具是时序分析工具如PrimeTime等。首先将网表以及步骤S300所构建的老化标准单元时序库导入到静态时序分析工具中,时序分析工具首先根据网表的输入输出端口和触发器来划分出网表中包含的所有时序路径,对每一条时序路径,会解析出网表中的所有门级单元;同时时序分析工具会根据步骤S300所构建的老化标准单元时序库中定义的各个标准单元的延时值,对这条时序路径的所有单元的延时值以及互连线延时值进行叠加,从而获取到此路径的时序延时。在时序分析完成之后,利用时序分析工具的功能筛选出延时排序最大的前20%的路径,这些路径就是需要的关键路径。
S500、根据关键路径确定路径信息以及延时信息,确定时序约束文件,根据时序约束文件构建得到硬件木马电路;
在实施例中,根据筛选出来的关键路径,确定其对应的路径及其延时信息。将所确定的路径及对应的延时定义为关键路径的时序约束即老化后关键路径的时序裕度,更新时序约束文件,此时序约束可保证在硬件木马生效的时间点前电路正常工作。
在一些更为具体的实施场景中,根据关键路径确定路径信息以及延时信息,确定时序约束文件,根据时序约束文件构建得到硬件木马电路这一步骤S500,其可以包括更为具体的步骤S510、
S510、根据关键路径的延时信息得到时序裕度,根据时序裕度更新时序约束文件。
实施例中在进行逻辑综合时,提供的约束文件中的时序约束,要满足电路在特定时间内的时序要求,这个时序约束也可称为时序裕度。为电路预留一定的时序裕度,才能保证电路在长期的工作后能保持正常运行。那么时序裕度的选择就在于关键路径。关键路径是延时最大的路径,以关键路径的延时用于制定时序约束能够满足电路中所有路径的时序要求。但是实际电路工作时每条路径的老化差异会引起不同信号路径上的延时变化,逻辑电路中非关键路径可能演变为关键路径。如图3所示,原本的关键路径在一个某个时间点之后发生改变,那么这个时间点可以被称为时序转换点。若要使得电路正常工作,此时的时序裕度选择应该是时序转换点之前的关键路径的延时加上时序转换点之后的关键路径相对于时序转换点的延时两部分。图3中Path1和Path2两条曲线的交点即为时序转换点,最终能保障电路在生命周期(图3中以10年为例)稳定可靠的时序裕度是时序裕度1加上时序转换点后的老化时序裕度。
基于老化的硬件木马设计的关键在于在设计中融入攻击者设定的时序裕度,基于这一设计裕度形成的电路设计可有效地控制电路工作的寿命。而利用这一原理设计的电路在预期寿命之前并不会发生功能异常,随着工作时间的增加,超过设定的时序转换点时,电路将由于时序出错不能正常工作。并且,由于老化造成的电路失效通过后期的硬件木马检测手段也很难找到根源。因此,基于老化的硬件木马植入核心在于对电路老化的有效利用,通过提供不充分的老化时序裕度让电路设计在攻击者设定的时间区间内失效。如图3所示,若仅以时序转换点之前作为时序裕量用于电路设计的时序约束要求,则电路工作至时序转换点之后将面临失效的风险。本发明实现方案的步骤S510可以分为三步:根据电路设计确定电路延时老化,根据攻击者的需求制定硬件木马电路的时序裕度,将制定的时序裕度用于木马电路的设计如IP核的构建。
具体在实施例中,S510是是根据步骤S400的关键路径筛选结果确定新的时序裕度,形成具有硬件木马攻击能力的时序约束文件。时序分析以及对电路寿命的预测的准确性依赖于标准单元库的时序库和时序约束文件,若采用的是不包含老化的标准单元库时序库,则基于此时序库仿真得到的结果反映的是初始条件下的各路径延时特征。由于电路工作伴随着的器件可靠性问题,使用一定时间之后,器件电学特性的退化会造成电路的延时增加。因此,正常的电路设计时为了考虑到老化导致延时增加的问题,在之后的逻辑综合的步骤里会在约束文件给时序值预留足够的裕度,即让电路的时序要求变得更加苛刻。基于老化的硬件木马设计则是制定具有一定抗老化能力的时序裕度,不同于传统设计方法下严苛的时序约束,使得电路具有一定使用年限的能力(依赖于步骤S510中新的时序裕度的制定)而后出现电路失效的问题。基于这一原理,步骤S400产生的关键路径的延时即为图3中示意的不充分的时序裕度。
硬件木马植入者设定电路失效的时间年限tfail,此时间值与步骤S200里的tfail相同。采用步骤S100-S400之后会得到老化至tfail时间的各路径延时值:Δt1,Δt1,Δt1,…,Δtn;之后对这n条关键路径的延时值做比较,确定前20%关键路径:P1,P2,P3,…,Pn,以tfail时刻下具有最大延时的路径所对应的Δti为约束文件的时序裕度,将这个时序值替换原有时序约束文件中允许的最大延时(常用格式为SDC文件)之后,可生成具有硬件木马特性的时序约束文件。
在一些更为具体的实施场景中,根据关键路径确定路径信息以及延时信息,确定时序约束文件,根据时序约束文件构建得到硬件木马电路这一步骤S500,还可以包括更为具体的步骤S520-S530:
S520、根据时序约束文件中的设定值对目标电路的网表进行逻辑综合得到门级网表;
S530、根据门级网表进行布图规划得到目标电路版图。
在实施例中,基于数字集成电路设计的结构设计部分,逻辑综合需要时序约束条件作为输入,设计完成的电路也将遵循此时序约束在预期寿命内正常工作。本发明采用基于老化后的关键路径延时确定指定攻击时间点下的时序裕度,利用此时序裕度作为时序约束代替原约束文件作为逻辑综合的约束条件。通过逻辑综合之后得到的即为硬件木马的门级网表,再通过后续的仿真及物理设计最后得到的版图即为硬件木马的版图,从而实现硬件木马电路的设计。
更为具体地,在实施例更新时序约束文件之后,需要进行网表的逻辑综合。这一步骤采用逻辑综合工具如Design Compiler等。具体步骤是将网表传入逻辑综合工具,再输入更新之后的约束文件,综合工具会采用时序约束文件中的设定值对网表进行逻辑综合,即对电路的面积、功耗进行优化。逻辑综合之后生成的门级网表即为满足时序约束文件要求的网表。此时,电路设计进入了物理设计阶段。物理设计阶段是将电路网表实现为版图的过程。首先进行布图规划,采用布图规划工具如IC Compiler,划分网表以方便之后的流程;随后进行布局布线,采用自动布局布线工具,根据之前划分出的网表确定电路单元或模块的位置并优化连接,完成这一步之后就可以生成版图了。之后对版图再进行设计规则验证、版图与原理图对比两个步骤之后,最后一步是寄生参数提取,获取到版图的寄生参数再重新进行时序仿真,通过之后可用于交付制造。
如图4所示,结合附图对本申请技术方案实施过程进行更为完整详细地描述如下:
首先,实施例需要进行老化的标准单元库的建立,可以使用电路仿真工具和可靠性模型对原标准单元库中的单元电路进行老化仿真,得到特定时间的单元电路中器件老化后的SPICE模型参数值,以此为基础利用库特征化工具进行库的重新表征,得到老化的标准单元时序库。
然后,实施例再基于老化标准单元库的时序分析,以老化标准单元时序库作为时序分析工具的库输入,对电路的路径延时进行分析,得到不同时间点下的关键路径的延时信息。并进一步确定含硬件木马能力的时序裕量应用,根据攻击者设定的失效时间点确定目标电路的关键路径延时,以此关键路径延时作为新的时序裕度,形成具有硬件木马功能的时序约束文件,基于更新后的约束文件进行后续的电路设计流程。
综上所述本申请技术方案的实施例以电路老化原理为中心,通过建立老化的标准单元时序库,在综合时利用老化的标准单元库对电路路径进行时序分析,得到攻击者设定的工作年限下的关键路径,以此为基础确定新的时序约束条件,基于更新后的时序约束文件设计的电路将在设定的工作年限后由于关键路径时序出错而导致电路功能失效,从而达到硬件木马设计的目的。
另一方面,本申请技术方案还提供了一种硬件木马的生成系统,该系统包括:
门级仿真模块,用于对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形;
退化预测模块,用于调用器件可靠性模型,根据输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数;
时序库模块,用于根据可靠性退化参数构建老化标准单元时序库;
时序仿真模块,用于根据老化标准单元时序库进行时序仿真,筛选得到关键路径;
电路布局模块,用于根据关键路径确定路径信息以及延时信息,确定时序约束文件,根据时序约束文件构建得到硬件木马电路。
另一方面,本申请的技术方案还提供一种硬件木马的生成设备;其包括:
至少一个处理器;至少一个存储器,该存储器用于存储至少一个程序;当至少一个程序被至少一个处理器执行,使得至少一个处理器运行如第一方面中的一种硬件木马的生成方法。
本发明实施例还提供了一种存储介质,其存储有对应的执行程序,程序被处理器执行,实现第一方面中的一种硬件木马的生成方法。
从上述具体的实施过程,可以总结出,本发明所提供的技术方案相较于现有技术存在以下优点或优势:
1、实现简单高效:本申请技术方案不必对原电路各模块功能进行剖析以发掘可以植入木马的区域,同时无需根据电路寻找对应的触发信号,本发明所提出的基于老化的硬件木马设计方法可应用于任一款逻辑电路中,由于其只对时序约束文件进行更改与替换,相对传统硬件木马的设计在效率上有极大的提升,降低了时间成本。
2、隐蔽性高:本申请技术方案相比于传统的硬件木马,本发明提出的设计充分利用电路无法避免的老化现象,基于老化原理的这一特点所设计的硬件木马无疑是具有高度隐蔽性的。
3、完成度更高:一般地,硬件木马是在特定的触发信号之后才会工作,且为了躲避检测触发条件会设置得比较极端,如果触发条件没达到,木马即使存在也无法对电路产生攻击,造成资源的极大浪费。而本申请技术方案基于老化的硬件木马设计很大程度上能保证木马在设定工作时间后产生作用,造成电路功能失效。
4、通用性强:基于老化的硬件木马设计方法可以适用于任何电路的具体实现,不管是纯组合逻辑,还是时序逻辑,或者是特定功能的逻辑电路,都能沿用本申请技术方案所提出的方法,无需更改现有的设计流程。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种硬件木马的生成方法,其特征在于,包括以下步骤:
对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形;
调用器件可靠性模型,根据所述输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数;
根据所述可靠性退化参数构建老化标准单元时序库;
根据所述老化标准单元时序库进行时序仿真,筛选得到关键路径;
根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路。
2.根据权利要求1所述的一种硬件木马的生成方法,其特征在于,所述对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形这一步骤,包括:
获取所述目标电路的描述文件,根据所述描述文件形成测试文件;
将所述测试文件作为仿真激励,进行逻辑仿真得到所述输入波形。
3.根据权利要求1所述的一种硬件木马的生成方法,其特征在于,所述调用器件可靠性模型,根据所述输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数这一步骤,包括:
根据所述输入波形提取得到电学参数;
根据预设的瞬态步长时间以及所述电学参数,通过所述可靠性模型输出得到模型参数;
根据所述模型参数进行电学特性仿真,得到所述可靠性退化参数。
4.根据权利要求1所述的一种硬件木马的生成方法,其特征在于,所述根据所述可靠性退化参数构建老化标准单元时序库这一步骤,包括:
根据所述可靠性退化参数更新器件的模型文件;
根据所述模型文件通过特征化工具输出得到所述标准单元老化后的传播延时和信号翻转延时;
根据所述传播延时以及所述信号翻转延时构建得到所述老化标准单元时序库。
5.根据权利要求1所述的一种硬件木马的生成方法,其特征在于,所述根据所述老化标准单元时序库进行时序仿真,筛选得到关键路径这一步骤,包括:
根据所述目标电路的网表以及所述老化标准单元时序库进行时序分析得到候选时序路径;
根据所述候选时序路径解析得到所述目标电路的网表中的门级单元;
根据所述老化标准单元时序库对所述门级单元的延时值以及互连线延时值进行叠加,得到所述候选时序路径的时序延时;
对所述时序延时进行筛选得到所述关键路径。
6.根据权利要求1所述的一种硬件木马的生成方法,其特征在于,所述根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路这一步骤,包括:
根据所述关键路径的延时信息得到时序裕度,根据所述时序裕度更新所述时序约束文件。
7.根据权利要求1-6任一项所述的一种硬件木马的生成方法,其特征在于,所述根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路这一步骤,还包括:
根据所述时序约束文件中的设定值对所述目标电路的网表进行逻辑综合得到门级网表;
根据所述门级网表进行布图规划得到目标电路版图。
8.一种硬件木马的生成系统,其特征在于,包括:
门级仿真模块,用于对目标电路的网表进行门级仿真,获取各个标准单元输入节点的输入波形;
退化预测模块,用于调用器件可靠性模型,根据所述输入波形对目标电路中的器件进行退化预测,得到器件的可靠性退化参数;
时序库模块,用于根据所述可靠性退化参数构建老化标准单元时序库;
时序仿真模块,用于根据所述老化标准单元时序库进行时序仿真,筛选得到关键路径;
电路布局模块,用于根据所述关键路径确定路径信息以及延时信息,确定时序约束文件,根据所述时序约束文件构建得到硬件木马电路。
9.一种硬件木马的生成设备,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器运行如权利要求1-7任一项所述的一种硬件木马的生成方法。
10.一种存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于运行如权利要求1-7中任一项所述的一种硬件木马的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210466703.8A CN114880975A (zh) | 2022-04-29 | 2022-04-29 | 一种硬件木马的生成方法、系统、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210466703.8A CN114880975A (zh) | 2022-04-29 | 2022-04-29 | 一种硬件木马的生成方法、系统、设备以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114880975A true CN114880975A (zh) | 2022-08-09 |
Family
ID=82674602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210466703.8A Pending CN114880975A (zh) | 2022-04-29 | 2022-04-29 | 一种硬件木马的生成方法、系统、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114880975A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628689A (zh) * | 2023-05-16 | 2023-08-22 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 硬件木马攻击的模型构建方法以及硬件木马的检测方法 |
CN117077588A (zh) * | 2023-10-16 | 2023-11-17 | 沐曦集成电路(上海)有限公司 | 硬件加速仿真调试系统 |
-
2022
- 2022-04-29 CN CN202210466703.8A patent/CN114880975A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628689A (zh) * | 2023-05-16 | 2023-08-22 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 硬件木马攻击的模型构建方法以及硬件木马的检测方法 |
CN116628689B (zh) * | 2023-05-16 | 2023-11-07 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 硬件木马攻击的模型构建方法以及硬件木马的检测方法 |
CN117077588A (zh) * | 2023-10-16 | 2023-11-17 | 沐曦集成电路(上海)有限公司 | 硬件加速仿真调试系统 |
CN117077588B (zh) * | 2023-10-16 | 2024-01-23 | 沐曦集成电路(上海)有限公司 | 硬件加速仿真调试系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108830008B (zh) | 一种标准单元库全模型的测试方法及测试系统 | |
US7788615B2 (en) | Computer program product for verification using reachability overapproximation | |
CN101539958B (zh) | 一种标准单元库和集成电路的设计方法和装置 | |
US20070050740A1 (en) | Method and System for Performing Functional Formal Verification of Logic Circuits | |
CN114880975A (zh) | 一种硬件木马的生成方法、系统、设备以及介质 | |
WO1995034036A2 (en) | Method and apparatus for estimating the power dissipated by a digital circuit | |
CN108694323B (zh) | 用于检测故障点的设备和方法 | |
US20040078175A1 (en) | Method and apparatus for modeling and simulating the effects of bridge defects in integrated circuits | |
Große et al. | Quality-driven SystemC design | |
US10235485B1 (en) | Partial reconfiguration debugging using hybrid models | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
Letychevskyi et al. | Modeling method for development of digital system algorithms based on programmable logic devices | |
US8010920B2 (en) | Constraint management and validation for template-based circuit design | |
US7571086B2 (en) | Incremental circuit re-simulation system | |
US6820243B1 (en) | Hybrid system of static analysis and dynamic simulation for circuit design | |
US20080300806A1 (en) | Power consumption calculating method | |
Feng et al. | IPR: in-place reconfiguration for FPGA fault tolerance? | |
KR20220141489A (ko) | 메모리 장치의 설계에서 클록 도메인 크로싱 위반을 검출 하는 컴퓨팅 장치 및 방법 | |
JP4855283B2 (ja) | 半導体集積回路の設計装置 | |
US6912701B2 (en) | Method and apparatus for power supply noise modeling and test pattern development | |
Damljanovic et al. | On NBTI-induced Aging Analysis in IEEE 1687 Reconfigurable Scan Networks | |
Lemma et al. | Natural language based power domain partitioning | |
Krishnamurthy et al. | Validation of PowerPC/sup TM/custom memories using symbolic simulation | |
US6367057B1 (en) | Method of analyzing a circuit having at least one structural loop within a channel connected component | |
Lin et al. | Generating concise assertions with complete coverage |
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 |