基于动态权重的测试向量生成与优化方法与流程

文档序号:18269987发布日期:2019-07-27 09:34阅读:230来源:国知局
基于动态权重的测试向量生成与优化方法与流程

本发明涉及集成电路可信任性检测技术领域,具体涉及一种基于动态权重的测试向量生成与优化方法。



背景技术:

21世纪是信息的时代,而巨大的信息量在使得社会效率大幅提升的同时,也带来了新的安全隐患。作为信息产业的支柱,集成电路被应用在包括军事,经济和交通运输领域等在内的社会生产生活的方方面面。随着工艺节点的缩小和技术难度的增大,芯片生产流程中的各个环节被分散到世界各地来进行,从而达到节约成本和提升效率的目的,但这也降低了芯片设计者对整个生产流程的控制力度,给恶意攻击者以可乘之机。通过向原始芯片植入恶意电路即硬件木马,攻击者能够实现如窃取机密信息,篡改关键数据,影响系统正常工作状态等破坏行为,给被攻击一方造成不可估量的损失。

如何在数字时代确保芯片及其供应链安全,直接关系到信息系统基础设施自身的安全性,保障集成电路的安全可信水平,对于维护国家、社会和个人的信息安全都具有重大意义,也直接影响到一个国家的经济发展、社会稳定和国防安全等。

自硬件木马的概念被提出以来,世界各地的研究者们对其进行了深入的分析和探究,提出了多种硬件木马检测手段。目前主流的非破坏性硬件木马检测方法可以分为两类,分别是基于逻辑功能验证的方法和基于侧信道信息的检测方法。考虑基于逻辑功能验证的硬件木马检测方法,理想情况下,将测试向量集输入到电路中,满足触发条件后使硬件木马得到激活,载荷开始发挥作用,导致电路的输出异常,从而实现硬件木马的检测。但在实际情况下,想要真正地激活硬件木马是十分困难的,因为我们没有掌握任何与木马相关的信息,包括它的功能,位置和触发条件等。通过随机生成测试向量集来激活硬件木马,将会消耗大量的资源和时间,在效率上是难以接受的。因此,对测试向量集进行优化和压缩,得到精简、高效的测试向量集,对于提高硬件木马的触发概率,从而提升硬件木马的检测概率具有重大意义。对于侧信道检测方法,提高硬件木马的触发概率同样至关重要,由于工艺偏差的存在,木马引起的侧信道信息差异很容易被掩盖,使检测精度受到影响。通过优化的测试向量集,能够提高硬件木马被激活的程度,增大木马对电路整体侧信道信息造成的影响,从而使检测精度得到提升。

针对硬件木马高隐蔽性的特点,本专利选取低翻转节点和低观测节点的集合来模拟硬件木马的触发—载荷模型,利用遗传算法和故障检测模型进行测试向量的快速优化选取,并对测试向量进行压缩,得到能够使木马被最大程度激活的精简高效的测试向量集,进而提高硬件木马检测效率和检测精度。

四、参考文献

[1]salmanih,tehranipoorm,plusquellicj.anoveltechniqueforimprovinghardwaretrojandetectionandreducingtrojanactivationtime[j].ieeetransactionsonverylargescaleintegration(vlsi)systems,2012,20(1):112-125.

[2]chakrabortyrs,wolfff,pauls,etal.mero:astatisticalapproachforhardwaretrojandetection[j].2009.

[3]huangy,bhunias,mishrap.mers:statisticaltestgenerationforside-channelanalysisbasedtrojandetection[c]//acmsigsacconferenceoncomputer&communicationssecurity.acm,2016.

[4]nourianma,fazelim,helyd.hardwaretrojandetectionusinganadvisedgeneticalgorithmbasedlogictesting[j].journalofelectronictesting,2018.

[5]sahas,chakrabortyrs,nuthakkiss,etal.improvedtestpatterngenerationforhardwaretrojandetectionusinggeneticalgorithmandbooleansatisfiability[m]//cryptographichardwareandembeddedsystems--ches2015.springerberlinheidelberg,2015.

[6]xiex,sunyy,chenhd.hardwaretrojansclassificationbasedoncontrollabilityandobservabilityingate-levelnetlist[j].ieiceelectronicsexpress,2017,14(18).

[7]salmanih.cotd:reference-freehardwaretrojandetectionandrecoverybasedoncontrollabilityandobservabilityingate-levelnetlist[j].ieeetransactionsoninformationforensics&security,2017,12(2):338-350.



技术实现要素:

为克服现有技术的不足,本发明旨在提出适用木马检测的测试向量生成方法,生成高效精简的测试向量集,进而提高硬件木马的激活概率和检测效率。为此,本发明采取的技术方案是,基于动态权重的测试向量生成与优化方法,步骤如下:

(1)寻找低翻转率的电路节点:随机生成大量的测试向量,将其输入到电路中,得到所有电路节点的翻转情况,依据设定的翻转率阈值,从所有的电路节点中筛选出低翻转节点;

(2)低观测节点的查找:利用scoap(sandiacontrollabilityandobservabilityanalysisprogram)工具对电路网表进行可测试性分析,得到所有电路节点的可控制性和可观测性值,利用k均值(k-means)算法对所有电路节点进行连续两次分类,第一次分类得到低测试性节点,第二次分类得到低观测节点;

(3)测试向量的粗筛:以激活低翻转节点为目标,利用遗传算法进行测试向量的初步优化,根据节点翻转率的提升倍数,筛选出难以激活的节点;

(4)测试向量的细筛:在粗筛的基础上,根据不同节点翻转次数的不同,在遗传算法的每一代动态调整适应度函数,给难以激活的节点更大的权重,使得测试向量更多地触发难以激活的节点,提高测试向量的质量;

(5)基于低观测节点的测试向量筛选:根据故障检测模型,给低观测节点注入故障“0”和故障“1”,构建故障网表,将待筛选的测试向量输入故障网表,观察电路输出与原始输出是否一致,如发生变化认为该测试向量能够将错误结果传递到电路输出端。

粗筛和细筛阶段,将低翻转节点的翻转次数作为目标函数,与测试向量个体的适应度建立映射关系,即可在测试向量群体的进化过程中实现对最优测试向量集的寻求,遗传算法的一次进化过程是,首先根据适应度排序法从当前代个体中挑选出中间群体1,接下来从中间群体1随机挑选父母个体进行交叉变换,这里必须保证每个中间个体都被选中至少一次,最后对交叉得到的中间群体2中的每一个个体进行随机的变异操作,得到新的子代群体。

在利用遗传算法对测试向量进行前期筛选时,以测试向量引起低翻转节点的翻转次数作为主要评价指标,选用适应度排序法,个体被选择的几率只与序号有关,首先得到节点翻转次数的评估函数如下:

其中value(v)表示在测试向量v作用下节点翻转率的评估函数,v代表遗传算法中的一个测试向量个体,λv表示被向量v激活的低活性节点的集合,rarenodei表示被向量v触发的低活性节点i发生状态转换的次数;

按照评估函数值由大到小对向量进行排序,依次编号为1,2,…,size,再计算适应度值:

fitness(v)=a(1-a)index-1

其中fitness(v)表示测试向量v的适应度值,v代表遗传算法中的一个测试向量个体,index是向量的排序序号,size表示一个群体中测试向量个体的总数,a表示选择的概率参数,取值范围是(0,1);

依据适应度值选择测试向量个体作为父母个体,对其进行多基因位的交叉变换,再随机选取变异点进行变异操作,即得到新一代的测试向量群体,对其进行评价,选择是保留当前代还是退回上一代,如此循环往复,直到满足停止迭代的条件。

本发明的特点及有益效果是:

本发明以低翻转节点和低观测节点作为硬件木马的理想植入位置,利用遗传算法的全局搜索能力在整个向量空间内寻找能使该节点快速激活的测试向量。硬件木马的潜在植入节点集合完备,可以有效模拟硬件木马的攻击行为,另外利用遗传算法的动态权重进行粗筛、细筛和向量压缩,在提高激活效率的同时,大大降低测试向量集的长度,优化的测试向量集可提高侧信道分析和片上检测技术的检测效率,能够快速发现和定位逻辑功能检测的可疑安全隐患,有效降低了测试时间和测试成本,具有一定的实际意义和应用价值。

附图说明:

图1一种基于动态权重的测试向量生成与优化方法的流程图。

图2遗传算法的一次进化过程。

具体实施方式

传统的测试向量生成算法主要用于故障测试,而硬件木马与故障完全不同,传统的测试向量生成算法难以应用到木马检测中。现有的一些基于硬件木马的测试向量生成算法,主要针对低活性节点,集合不完备,生成的测试向量作用有限,且测试向量集合冗余,难以有效激活硬件木马,导致检测效率不高。因此本发明提出一种基于动态权重的测试向量生成算法,利用遗传算法的全局优化能力在整个向量空间内进行测试向量粗筛、细筛,并借助压缩算法来进一步精简测试向量,生成高效精简的测试向量集,进而提高硬件木马的激活概率和检测效率。

本发明完整技术方案如下:

图1是基于动态权重的测试向量生成与优化方法的流程图,该方法主要包括以下步骤:

(1)寻找低翻转率的电路节点:随机生成大量的测试向量,将其输入到电路中,得到所有电路节点的翻转情况,依据设定的翻转率阈值,从所有的电路节点中筛选出低翻转节点。

(2)低观测节点的查找:利用scoap(sandiacontrollabilityandobservabilityanalysisprogram,是美国sandia实验室提出的针对数字电路可测性的评估方法)工具对电路网表进行可测试性分析,得到所有电路节点的可控制性和可观测性值,运用k-means算法对所有电路节点进行连续两次分类,第一次分类得到低测试性节点,第二次分类得到低观测节点。

(3)测试向量的粗筛:以激活低翻转节点为目标,利用遗传算法进行测试向量的初步优化,根据节点翻转率的提升倍数,筛选出难以激活的节点。

(4)测试向量的细筛:在粗筛的基础上,根据不同节点翻转次数的不同,在遗传算法的每一代动态调整适应度函数,给难以激活的节点更大的权重,使得测试向量更多地触发难以激活的节点,提高测试向量的质量。

(5)基于低观测节点的测试向量筛选:根据故障检测模型,给低观测节点注入故障“0”和故障“1”,构建故障网表,将待筛选的测试向量输入故障网表,观察电路输出与原始输出是否一致,如发生变化认为该测试向量能够将错误结果传递到电路输出端。

(6)测试向量压缩:根据单个测试向量同时激活的节点组合以及不同节点被激活的难易程度,对测试向量群体进行精简,得到使得整体低活性节点激活率最高的测试向量集。

硬件木马的结构可分为触发和载荷部分,触发部分决定了硬件木马何时被激活,载荷部分实施入侵者的恶意功能,如窃取机密信息,篡改关键数据,破坏系统正常工作等。为了降低被检测到的概率,植入到电路中的硬件木马在大部分时间里都处于“休眠”状态,并不会对电路的正常工作产生影响。由于硬件木马的隐蔽特性,其触发输入信号有很大可能存在于那些低翻转概率的内部电路节点中,从而减弱对于电路侧信道信息如功耗,延时等的影响。

为了提高硬件木马的检测效率,必须考虑电路节点的可观测性,可观测性表征的是我们从电路输出端观测内部节点逻辑状态的成本。基于电路网表,利用scoap工具,可以得到电路内部节点的可观测性值,其计算分为组合电路与时序电路,用于描述可观测性的函数有co(combinationalobservability,组合逻辑可观测性值),so(sequentialobservability,时序逻辑可观测性值),分别表示从组合电路和时序电路输出端观测内部节点逻辑值的难易程度,函数值越大代表越困难。

对于硬件木马来说,为了寻求更高的隐蔽性,攻击者往往将木马的输出连接到低观测节点,从而降低木马攻击行为引起的信号异常被轻易监测到的概率。

综上所述,低翻转率的节点和低观测节点常常被选为硬件木马的植入节点。从结构上讲,激活硬件木马也就是激活木马的植入节点,基于此,把低翻转节点和低观测节点的集合作为目标节点,而寻找能最大限度激活目标节点的测试向量集则是硬件木马检测效率提升的关键。

最优测试向量集的寻找过程是一个寻优过程,为了快速高效地对测试向量进行优化,引入遗传算法来进行最优解的搜索。遗传算法模拟生命进化机制,也就是说,它模拟了自然选择和遗传进化中发生的繁殖、交配和突变现象,从任意一个初始种群出发,通过随机选择、交叉和变异操作,产生一群新的更适应环境的个体,使群体向搜索空间中越来越好的区域进化。这样一代一代不断繁殖、进化,最后收敛到一群最适应环境的个体上,求得问题的最优解。遗传算法的优点是对于复杂的优化问题无需建模和复杂运算,只要利用遗传算法的三种算子就能得到最优解,并且相比随机的测试向量生成方法,它能够对测试向量空间进行快速而广泛的探索。

遗传算法中的关键一环就是适应度函数的设定,适应度函数的好坏直接决定了遗传算法优化的效果优劣,好的适应度函数能够使种群中的个体向最优个体进化,解决过快收敛和过慢结束的问题。在遗传算法中,适应度是描述个体性能的主要指标,从生物学角度讲,适应度相当于“生存竞争、适者生存”的生物生存能力。在本方法的粗筛和细筛阶段,将低翻转节点的翻转次数作为目标函数,与测试向量个体的适应度建立映射关系,即可在测试向量群体的进化过程中实现对最优测试向量集的寻求。遗传算法的一次进化过程如图2所示,首先根据适应度排序法从当前代个体中挑选出中间群体1,接下来从中间群体1随机挑选父母个体进行交叉变换,要注意的是,这里必须保证每个中间个体都被选中至少一次,最后对交叉得到的中间群体2中的每一个个体进行随机的变异操作,得到新的子代群体。

低翻转节点与木马的触发相关,在利用遗传算法对测试向量进行前期筛选时,以测试向量引起低翻转节点的翻转次数作为主要评价指标。这里选用的是适应度排序法,个体被选择的几率只与序号有关,避免了一代群体中过于适应或过于不适应个体的干扰。首先得到节点翻转次数的评估函数如下。

其中value(v)表示在测试向量v作用下节点翻转率的评估函数,v代表遗传算法中的一个测试向量个体,λv表示被向量v激活的低活性节点的集合,rarenodei表示被向量v触发的低活性节点i发生状态转换的次数。

按照评估函数值由大到小对向量进行排序,依次编号为1,2,…,size,再计算适应度值:

fitness(v)=a(1-a)index-1

其中fitness(v)表示测试向量v的适应度值,v代表遗传算法中的一个测试向量个体,index是向量的排序序号,size表示一个群体中测试向量个体的总数,a表示选择的概率参数,取值范围是(0,1);

依据适应度值选择测试向量个体作为父母个体,对其进行多基因位的交叉变换,再随机选取变异点进行变异操作,即得到新一代的测试向量群体。对其进行评价,选择是保留当前代还是退回上一代,如此循环往复,直到满足停止迭代的条件。

经过随机测试向量仿真和可测试性分析之后,需要对电路中的低翻转节点进行区分,某些节点因为设计要求或是电路的连接关系本身就不会发生翻转,经过测试向量粗筛阶段,将这些节点从目标节点中剔除。

对于不同的目标节点,虽然都被认定为低翻转节点,但其翻转率是存在差异的,存在易于激活和难以激活的节点,难以激活的节点有更大的概率被植入木马,为了提高测试向量的质量,在遗传算法细筛阶段的适应度评估函数中,根据节点的翻转情况,给难以激活的节点分配更大的权重,使得最终的测试向量集更加高效。

低观测节点与木马的输出相关,为了更加完整地评价测试向量的优劣,给低观测节点注入故障“0”或故障“1”,使其产生stuck-atfault(固定型故障)。将待筛选的测试向量依次输入电路,如果电路的原始输出发生改变,说明该测试向量能够将低观测节点的异常值传递到输出端口,即保留该测试向量,否则将其剔除。

在利用遗传算法优化的过程中,采用多种群并行方式,尽可能实现解空间的遍历,不同种群向着不同的提高适应度的方向进化,使总的测试向量集更加全面。但这也使得最终的测试向量集十分庞大,为了对其进行精简,需要进行测试向量的压缩。压缩过程中,根据单个测试向量激活目标节点的情况,筛选出使得目标节点的整体翻转率最高的测试向量,组成最终的测试向量集。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1