基于蚁群的硬件木马优化测试向量生成方法与流程

文档序号:13532587阅读:195来源:国知局
基于蚁群的硬件木马优化测试向量生成方法与流程

本发明涉及集成电路可信任性技术领域,具体涉及一种基于蚁群的硬件木马优化测试向量生成方法。



背景技术:

随着深亚微米集成电路工艺和计算机辅助设计技术的快速发展,集成电路广泛的应用在金融、交通、通信和国防等领域,逐渐成为国民生活中不可或缺的部分。另外,伴随着经济全球化浪潮的深入,半导体制造商为了快速占有市场份额,提高营收利润,纷纷加速集成电路芯片的上市时间,这加剧了集成电路全球化的步伐,从而导致集成电路的设计与制造相分离。通常,一片集成电路芯片的设计与制造过程需要多家单位的联合协作,其中部分环节不乏涉及到外资或者合资企业的协助,这导致一些居心叵测的攻击者或竞争者可能渗透进来,利用失控的集成电路设计与制造环节植入恶意的电路,从而实现窃取信息、权限升级、性能下降、功能紊乱甚至系统宕机等。一旦某个环节出现问题,将直接影响到芯片的安全,从而导致整个信息系统瘫痪甚至直接威胁到社会的和谐与稳定。

硬件木马是集成电路中存在的恶意的电路,它可能存在于集成电路全生命周期的各个阶段,例如在设计阶段的不可靠的第三方ip核、在制造过程中的恶意的掩膜版或在封装过程中的冗余封装。由于硬件木马的插入,可能会造成电路的功能改变、性能下降、私密信息泄露和系统拒绝服务等风险,一旦被硬件木马影响的芯片被应用于军用装备及国民经济核心领域中,将会带来严重的灾难和不可估计的经济损失。硬件木马问题正在成为集成电路的重要安全隐患,因此开展硬件木马的检测与防护技术研究,保证集成电路的安全可信是世界各国的共同关注的话题。

近年来,随着研究的逐渐深入,在硬件木马检测技术方面取得了卓越的成果。目前硬件木马检测分为逆向工程,逻辑功能分析和旁路信号分析三种。旁路信号分析具有较低的实施成本、较高的检测精度,较好的移植性和延展性,是当前的检测方法的主流。小面积的硬件木马很容易被工艺噪声所淹没,我们很难从被噪声淹没的旁路信息中识别出硬件木马的特征,工艺噪声是进一步提高检测精度的主要瓶颈。然而工艺噪声是客观存在的,为了进一步的提高检测精度,只有最大可能的激活硬件木马,提高硬件木马的活性,使硬件木马的旁路影响不被工艺噪声所淹没。

本发明是测试向量生成算法和蚁群算法的基础上,在硬件木马隐蔽性分析的基础上,提出一种蚁群的硬件木马优化测试向量生成方法,通过分析母本电路的结构特点,筛选出低活性节点,并利用蚁群的全局搜索特性,在全局测试向量空间内搜索能使低活性节点快速翻转的优化测试向量,从而提高硬件木马的激活度。

(四)参考文献

[1]chakrabortyrs,wolfff,pauls,etal.mero:astatisticalapproachforhardwaretrojandetection[c]//internationalworkshoponcryptographichardwareandembeddedsystems.springer-verlag,2009:396-410.

[2]bangam,hsiaoms.anovelsustainedvectortechniqueforthedetectionofhardwaretrojans[c]//internationalconferenceonvlsidesign.ieeecomputersociety,2009:327-332.

[3]salmanih,tehranipoorm,plusquellicj.newdesignstrategyforimprovinghardwaretrojandetectionandreducingtrojanactivationtime[c]//ieeeinternationalworkshoponhardware-orientedsecurityandtrust.ieee,2009:66-73.[4]杨淑莹.模式识别与智能计算[m].电子工业出版社,2008。



技术实现要素:

为克服现有技术的不足,本发明旨在提出硬件木马优化测试向量生成方法,所生成的测试向量可以有效的激活植入在该低活性节点的硬件木马,从而提高硬件木马的识别水平,对于硬件木马显化和旁路信号分析具有一定的实际意义和参考价值。为此,本发明采用的技术方案是,基于蚁群的硬件木马优化测试向量生成方法,结合蚁群的全局寻优能力,在全局测试向量空间内寻找优化测试向量,并根据低活性节点的翻转率来判断测试向量是否优化,从而挑选出能快速使低活性节点翻转的测试向量,该测试向量可以有效的激活植入在该低活性节点的硬件木马,从而提高硬件木马的识别水平。

具体步骤进一步细化为:

步骤1:搭建测试验证平台,随机产生测试向量并激励电路:围绕原始电路搭建测试验证平台,根据原始电路的功能和结构特点,利用仿真工具对原始电路进行仿真测试,并保留仿真过程文件;

步骤2:统计电路节点的翻转情况与翻转概率:分析电路的仿真文件,得到的电路各内部节点的翻转信息及节点信息,利用脚本语言统计内部节点的翻转情况和电路运行的相关状态,确定电路内部各节点的翻转概率pi,并剔除重复节点和不动节点;

步骤3:设置临界概率阈值pth,并确定电路低活性节点列表:根据内部节点各节点的翻转概率信息列表,设置临界阈值概率pth,将翻转概率小于临界阈值概率pth的认定为低活性节点,确定电路的低活性节点列表;

步骤4:初始化蚁群:根据测试向量和蚁群的生成规则,随机生成m只蚂蚁的蚁群,每个蚂蚁在搜索之前分配一个解集,即一组测试向量,且每只蚂蚁的解集并不相等;

步骤5:构造信息素矩阵:在初始化阶段,需要产生一个信息素矩阵,且初始化信息素矩阵的元素是相等的。然而在迭代过程中,信息素矩阵根据信息素公式不断更新的;

步骤6:更新蚁群:更新蚁群主要是根据已有的信息素来搜索新的路径,即搜索新的解空间。更新蚁群分为利用已有的知识和开发新的解空间两种方式,两种方式的切换由定义的概率所确定;

步骤7:对前l只蚂蚁进行局部搜索,搜索最优解:局部搜索只要是为了提高搜索局部解的能力,施加当前蚂蚁对应的测试向量到待测电路,进行仿真测试,得到各低活性节点的翻转次数,计算蚁群的各个蚂蚁的适应度函数,对蚁群中的每只蚂蚁对应的适应度函数进行降序排列,取前l只蚂蚁进行变换操作;

步骤8:判断迭代条件是否满足:判断当前迭代过程是否满足迭代要求,如果是则输出当前的位置值为最优测试向量,否则返回步骤5继续进行迭代运算。

对蚁群的更新过程做相应的修改,具体过程如下:

1)预先定义好变异概率p0,并针对每只蚂蚁产生一个0~1的随机数pm;

2)判断变异概率p0和随机数pm之间的大小,如果pm<p0,则将该蚂蚁的对应的测试向量可更新为当前测试向量与p0的积,否则,该蚂蚁对应的测试向量可更新为当前测试向量与pm的积;

选择变换操作,对适应度函数进行降序排列,将排在最前面的前l个测试向量进行变换,具体的变换操作步骤如下:

1)随机产生一个0.9~1的随机数rand;

2)随机数rand与前l只蚂蚁对应的测试向量{v1,v2,…,vl}进行相乘,得到一组新的测试向量,并更新解集{v'1,v'2,...,v'l};

3)对前l只蚂蚁进行计算每只蚂蚁的适应度函数值,如果该蚂蚁的适应度函数值变大,则更新解集,否则保留原有解集,最后得到解集{v”1,v”2,...,v”l};

为了避免陷入随机搜索过程,需要对蚁群的信息素进行调整,蚁群的信息素更新公式如1所示:

其中,ρ为信息蒸发参数,τij(t)为蚂蚁在t时刻下在路径(i,j)的信息素浓度,l为蚂蚁群的个数,δτij表示为路径(i,j)的信息素量的增量。

以低活性的节点翻转次数为适应度函数f(t),如式2所示。

其中n为低活性节点的个数,tci(t)为第i个蚂蚁对应的测试向量在第t次迭代的翻转次数。当蚂蚁对应的适应度函数值越大,则证明该测试向量能使低活性节点快速翻转能力越强,则该测试向量就越优化。

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

本发明结合蚁群算法的局部搜索能力,并以低活性节点的翻转次数作为测试向量是否优化的衡量标准,在全局测试向量空间内进行搜索能使低活性节点快速翻转的优化测试向量,这为测试向量的生成算法提供一种新的思路,另外可以根据蚁群算法的群体搜索能力,在空间内并行搜索,大大提高了测试向量生成算法的性能和效率。另外,生成的优化测试向量可以用于旁路测试和逻辑功能测试,进一步提高硬件木马的识别水平。

附图说明:

图1基于蚁群的硬件木马优化测试向量生成方法的流程图。

图2蚁群算法流程示意图。

图3蚁群算法的变换操作。

具体实施方式

本发明提出一种基于蚁群的硬件木马优化测试向量生成方法,结合蚁群的全局寻优能力,在全局测试向量空间内寻找优化测试向量,并根据低活性节点的翻转率来判断测试向量是否优化,从而挑选出能快速使低活性节点翻转的测试向量,该测试向量可以有效的激活植入在该低活性节点的硬件木马,从而提高硬件木马的识别水平,对于硬件木马显化和旁路信号分析具有一定的实际意义和参考价值。

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

图1为基于蚁群的硬件木马优化测试向量生成方法的流程图,该方法主要包括以下步骤:

步骤1:搭建测试验证平台,随机产生测试向量并激励电路:围绕原始电路搭建测试验证平台,根据原始电路的功能和结构特点,利用仿真工具对原始电路进行仿真测试,并保留仿真过程文件。

步骤2:统计电路节点的翻转情况与翻转概率:分析电路的仿真文件,得到的电路各内部节点的翻转信息及节点信息,利用shell脚本语言统计内部节点的翻转情况和电路运行的相关状态,确定电路内部各节点的翻转概率pi,并剔除重复节点和不动节点。

步骤3:设置临界概率阈值pth,并确定电路低活性节点列表:根据内部节点各节点的翻转概率信息列表,设置临界阈值概率pth,将翻转概率小于临界阈值概率pth的认定为低活性节点,确定电路的低活性节点列表。

步骤4:初始化蚁群:根据测试向量和蚁群的生成规则,随机生成m只蚂蚁的蚁群,每个蚂蚁在搜索之前分配一个解集,即一组测试向量,且每只蚂蚁的解集并不相等。

步骤5:构造信息素矩阵:在初始化阶段,需要产生一个信息素矩阵,且初始化信息素矩阵的元素是相等的。然而在迭代过程中,信息素矩阵根据信息素公式不断更新的。

步骤6:更新蚁群:更新蚁群主要是根据已有的信息素来搜索新的路径,即搜索新的解空间。更新蚁群分为利用已有的知识和开发新的解空间两种方式,两种方式的切换由定义的概率所确定。

步骤7:对前l只蚂蚁进行局部搜索,搜索最优解:局部搜索只要是为了提高搜索局部解的能力,施加当前蚂蚁对应的测试向量到待测电路,进行仿真测试,得到各低活性节点的翻转次数,计算蚁群的各个蚂蚁的适应度函数,对蚁群中的每只蚂蚁对应的适应度函数进行降序排列,取前l只蚂蚁进行变换操作。

步骤8:判断迭代条件是否满足:判断当前迭代过程是否满足迭代要求,如果是则输出当前的位置值为最优测试向量,否则返回步骤5继续进行迭代运算。

蚁群算法是由m.dorigo在1991年提出的一种有效的分布式的随机搜索算法,借鉴蚁群之间的集体行为的启发,来解决离散系统中的优化困难的问题,该算法广泛的应用在求解旅行商问题、指派问题和调度问题等。

下面详细描述蚁群算法的操作流程。

蚁群算法(antcolonyoptimization)是利用真实蚁群之间的信息传递、搜索从蚁群到食物之间的最短路径的集体寻找特征。首先,初始化蚁群参数,设置蚂蚁的数量,初始化搜索路径和信息素矩阵。蚁群中的蚂蚁根据信息素矩阵的先验知识来进行移动,完成一次循环,在蚂蚁移动的时候释放信息素,一次移动完成后,根据适应度函数对蚁群进行评价,实现信息素矩阵的更新,最后判断是否达到终止条件,如果是,输出最优解,否则,继续循环。图2为蚁群算法的流程。

硬件木马是攻击者为了达到某种攻击目的而植入在集成电路中的恶意电路,为了规避硬件木马被传统的功能测试和结构测试技术所检测出来,攻击者一般选择比较隐蔽的激活条件来实现硬件木马的低隐蔽性。当硬件木马处于静默状态下,硬件木马对电路的功能或者侧信道技术的影响更小,很难通过现有的测试技术检测出来。从攻击者的角度出发,为了保证硬件木马的低隐蔽性,攻击者一般会分析电路网表结构,并选择电路的低活性节点作为硬件木马的植入点。随着深亚微米制造工艺和计算机辅助设计技术的发展,集成的功能越来越多,集成电路的门数越来越多,其规模动辄上亿,一旦小面积硬件木马插入在低活性节点,常规的集成电路的测试和验证流程很难有效将硬件木马检测出来。一旦被植入硬件木马的集成电路芯片流入市场,以集成电路为核心的现代信息系统将会受到极大的安全冲击。

电路的低活性节点可能被植入硬件木马,因此针对电路的低活性节点开展硬件木马的激活度的研究是必要的。如何针对低活性节点来筛选优化的向量是提高硬件木马检测效率的关键。

而蚁群算法是是一个群体搜索算法,如何将此算法的搜索能力有效的应用在硬件木马的优化测试向量生成方面是重点。本方法将每只蚂蚁看作是一组测试向量,蚂蚁进行移动就是对测试向量的更改,然而蚂蚁移动的是多维路径,为了迁移该方法,则将对蚁群算法进行改进,选择单个测试向量段,并将测试向量分割成多维子向量空间,蚂蚁可以在多段子向量空间段内移动。

另外,蚁群的更新过程是算法的关键,这直接决定算法的搜索能力。本方法对蚁群的更新过程也做相应的修改,从而保证蚁群算法的实用性,具体过程如下:

1)预先定义好变异概率p0,并针对每只蚂蚁产生一个0~1的随机数pm。

2)判断变异概率p0和随机数pm之间的大小,如果pm<p0,则将该蚂蚁的对应的测试向量可更新为当前测试向量与p0的积,否则,该蚂蚁对应的测试向量可更新为当前测试向量与pm的积。

然而蚁群算法很容易陷入局部搜索,为了进一步提高蚁群算法的局部搜索能力,需要搜索合适的局部搜索操作。本方法选择变换操作,对适应度函数进行降序排列,将排在最前面的前l个测试向量进行变换,具体的变换操作如图3所示,操作步骤如下所示:

1)随机产生一个0.9~1的随机数rand。

2)随机数rand与前l只蚂蚁对应的测试向量{v1,v2,…,vl}进行相乘,得到一组新的测试向量,并更新解集{v'1,v'2,...,v'l}。

3)对前l只蚂蚁进行计算每只蚂蚁的适应度函数值,如果该蚂蚁的适应度函数值变大,则更新解集,否则保留原有解集,最后得到解集{v”1,v”2,...,v”l}。

为了避免陷入随机搜索过程,我们需要对蚁群的信息素进行调整,蚁群的信息素更新公式如1所示:

其中,ρ为信息蒸发参数,τij(t)为蚂蚁在t时刻下在路径(i,j)的信息素浓度。l为蚂蚁群的个数,δτij表示为路径(i,j)的信息素量的增量。

最后,如何评价蚂蚁是本算法的关键,这直接决定了测试向量是否优化。考虑到硬件木马一般会植入在电路的低活性节点上,因此如何有效的增加低活性节点的活性是本算法的重中之重。本算法以低活性的节点翻转次数为适应度函数f(t),如式2所示。

其中n为低活性节点的个数,tci(t)为第i个蚂蚁对应的测试向量在第t次迭代的翻转次数。当蚂蚁对应的适应度函数值越大,则证明该测试向量能使低活性节点快速翻转能力越强,则该测试向量就越优化。

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