浙江大学学报(工学版), 2019, 53(8): 1546-1551 doi: 10.3785/j.issn.1008-973X.2019.08.013

计算机与控制工程

基于遗传算法的少态节点活性提升方法

刘尚典,, 赵毅强,, 刘燕江, 何家骥, 原义栋, 于艳艳

A rare node activity improvement method based on genetic algorithm

LIU Shang-dian,, ZHAO Yi-qiang,, LIU Yan-jiang, HE Jia-ji, YUAN Yi-dong, YU Yan-yan

通讯作者: 赵毅强,男,教授. orcid.org/0000-0002-4564-952X. E-mail: yq_zhao@tju.edu.cn

收稿日期: 2018-07-7  

Received: 2018-07-7  

作者简介 About authors

刘尚典(1993—),男,硕士生,从事硬件安全检测研究.orcid.org/0000-0003-1032-3922.E-mail:2541901827@qq.com , E-mail:2541901827@qq.com

摘要

为了进一步提高对硬件木马的识别水平,利用遗传算法的全局搜索能力,提出基于遗传算法的少态节点活性提升方法,以少态节点的翻转次数代表活性,寻找能提升少态节点活性的测试向量集. 在测试向量激励下,将被测电路中少态节点的翻转次数作为适应度,在整个测试向量空间内进行选择、交叉和变异操作,并比较父代与子代适应度,保留适应度较大的向量集,最终达到迭代终止条件,生成优化的测试向量集.以ISCAS'85基准电路c3540为研究对象进行仿真验证,实验结果表明,在算法运行前,以1 000个向量为输入时,电路所有非少态节点的翻转次数之和为155 158,少态节点的翻转次数之和为117;在算法运行后,以1 000个向量为输入时,电路所有非少态节点的翻转次数之和为157 146,少态节点的翻转次数之和为882. 遗传算法生成的测试向量组将少态节点的翻转率提高了7.54倍,并将相对翻转率提升了7.44倍.

关键词: 硬件木马 ; 翻转率 ; 少态节点 ; 木马检测 ; 逻辑测试

Abstract

In order to improve the identification level of hardware Trojan, a rare node activity improvement method based on genetic algorithm was proposed, by using the global searching ability of genetic algorithm. The proposed method was used to search the test vector sets which could improve the activity of rare nodes, by taking the toggle count of rare nodes as activity. Under the excitation of the test vector, the transition count of rare nodes in device under test (DUT) was taken as fitness, and the operations of selection, crossover and mutation were conducted during the whole test vector space. The fitness of parent and the fitness of offspring were compared, and the higher fitness test vector sets were saved, and eventually the optimized test vector set was generated by iteration when the iteration termination condition was reached. Simulation verification was conducted with the ISCAS'85 benchmark circuit c3540 as research object. Results showed that before the operation of the algorithm, when 1 000 vectors were used as input, the sum of the transition times of the un-rare nodes was 155 158, and the sum of the transition times of the rare nodes was 117. After the operation of the algorithm, when 1 000 vectors were used as input, the sum of the transition times of the un-rare nodes was 157 146, and the sum of the transition times of the rare nodes was 882. The test vectors generated by genetic algorithm improved the transition rate of rare nodes up to 7.54 times, and increased the relative transition rate of rare nodes up to 7.44 times.

Keywords: hardware Trojan ; transition rate ; rare node ; Trojan detection ; logic test

PDF (1184KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

刘尚典, 赵毅强, 刘燕江, 何家骥, 原义栋, 于艳艳. 基于遗传算法的少态节点活性提升方法. 浙江大学学报(工学版)[J], 2019, 53(8): 1546-1551 doi:10.3785/j.issn.1008-973X.2019.08.013

LIU Shang-dian, ZHAO Yi-qiang, LIU Yan-jiang, HE Jia-ji, YUAN Yi-dong, YU Yan-yan. A rare node activity improvement method based on genetic algorithm. Journal of Zhejiang University(Engineering Science)[J], 2019, 53(8): 1546-1551 doi:10.3785/j.issn.1008-973X.2019.08.013

随着现代半导体制造工艺和集成电路设计水平的不断提升,集成电路广泛应用于金融、航天和国防等领域.集成电路行业的激烈竞争促使集成电路设计与制造实现全球化,这导致集成电路的设计与制造过程不能实现自主可控,进而无法确保生产出的集成电路的安全可信性.攻击者可以针对集成电路设计与制造过程中的多个环节植入硬件木马[1-2],修改原始电路的工作状态来实现物理摧毁、逻辑破坏和信息泄露等目的[3-5]. 理论上无法将硬件木马从被感染的集成电路中去除,其危害比软件木马更大,对集成电路的安全构成了极其严重的威胁.

硬件木马包括触发逻辑和有效载荷两部分.攻击者为了保证硬件木马的隐蔽性,通常会选择电路中的多个少态节点作为植入节点,以其稀有逻辑作为触发逻辑[6]的激励信号.当多个少态节点的稀有逻辑值同时出现时,触发逻辑结构被激活,有效载荷开始工作.传统的功能检测难以覆盖电路所有功能,难以使少态节点达到其稀有值,所以通过传统的功能检测较难识别出硬件木马.须以少态节点为导向生成能够提高其翻转率的测试向量.

Chakraborty等[7]提出多次激活少态事件(multiple excitation of rare occurrence, MERO)算法,以1个比特为单位筛选能快速激活少态节点的测试向量. Wang等[8]提出针对组合型硬件木马的测试向量生成方法,利用自动测试向量生成方法(automatic test pattern generation, ATPG)产生使少态节点处于稀有逻辑值的测试向量,但该测试向量难以激活时序型硬件木马. Xue等[9]提出基于活性驱动的测试向量生成算法,以汉明距离最大的原则重新排序测试向量,重排后得到的测试向量提升了电路的整体翻转率,但难以提升少态节点的相对翻转率,导致硬件木马显化效果不佳.

本研究提出基于遗传算法的少态节点活性提升方法,利用遗传算法的全局搜索能力,在整个向量空间内寻找能有效提升少态节点相对翻转率的测试向量.

1. 电路节点翻转率分析

1.1. 节点翻转率定义

节点翻转率包括静态翻转率和动态翻转率.静态翻转率表征节点逻辑状态的变化情况,假设在m个时钟周期内节点出现逻辑0的概率为P0,逻辑1的概率为P1,那么此节点的静态翻转率PS=P0P1,静态翻转率的最大值为1/4.动态翻转率表征节点的翻转情况,假设在m个时钟周期内节点的翻转次数为n,则其动态翻转率为n/m.静态翻转率与动态翻转率均可表征电路节点活性,节点翻转率越高,节点的活性越高,反之,节点的活性越低,难以翻转或者达到稀有状态值.在通常情况下,当节点的翻转率低于某个阈值(例如,Ye等[10]定义为0.02),则认定其为少态节点.

以一个例子简单介绍节点翻转率与少态节点判定标准,如图1所示. 图中,L为节点A的逻辑值,T为节点A的时钟周期,该图表示节点A在6个时钟周期内的逻辑状态转移. 由图可知,节点A出现逻辑值1和0的概率均为1/2,所以静态翻转率为1/4;节点A在6个时钟周期内仅翻转1次,所以动态翻转率为1/6. 静态翻转率是基于逻辑值的活性判断方法,只适用于判定组合电路的节点活性;动态翻转率是基于状态跳变的活性判断方法,不仅适用于判定组合电路的节点活性,也适用于判定时序电路的节点活性.

图 1

图 1   节点A的逻辑状态转移图

Fig.1   Logic state transition diagram of node A


为了规避传统的功能测试和结构测试,少态节点是硬件木马的理想植入位置,其难以翻转或者达到稀有状态值的特点,能够保证硬件木马难以被激活并被发现.组合型硬件木马以电路内部节点的逻辑值作为硬件木马的激活条件;时序型硬件木马监测电路内部节点的状态跳变. 当内部节点的逻辑组合值和状态跳变满足激活条件时,硬件木马被触发.因此,本研究利用动态翻转率作为电路节点的衡量标准,寻找并定位电路中所有少态节点,利用遗传算法筛选能快速提升少态节点活性的测试向量集.

1.2. 节点的相对翻转率

Xue等[9]提出的节点活性提升方法在提高少态节点翻转率的同时,也提升了电路的整体翻转率.少态节点的翻转引起的影响很容易被整体电路的翻转所淹没,不能凸显少态节点的活性提升效率.因此,引入相对翻转率表征少态节点在电路中的相对活性,表达式为

${P_{\rm x}} = {{{S_{\rm c}}} / {{S_{\rm z}}}}.$

式中:Px为相对翻转率;Sc为少态节点的翻转次数之和;Sz为电路所有非少态节点翻转次数之和.少态节点的相对翻转率增大,表明少态节点在电路中的翻转次数所占比重增加.

2. 算法原理分析与实现

2.1. 遗传算法

遗传算法是模拟自然选择和遗传进化的计算模型[11],以随机个体为出发点,无需任何先验知识,利用适应度函数评估个体的优劣,通过选择、交叉和变异3个算子在整个搜索空间内寻找最优个体.适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定.这一特点使得遗传算法的应用范围大大扩展.在搜索空间上寻找能快速使少态节点翻转的测试向量,该过程类似于在解空间中搜索最优解,而遗传算法具有收敛速度快和全局搜索能力强的特点,所以本研究使用遗传算法在向量空间内搜索能有效提升少态节点相对翻转率的测试向量.遗传算法有5个构成要素,分别为染色体的编码、适应度函数、选择算子、交叉算子和变异算子.

2.1.1. 染色体的编码

编码就是将问题的解空间转换成遗传算法所能处理的搜索空间,对问题的解空间进行编码,使其能够被遗传算法的算子操作[12]. 测试向量均为二值符号串,所以采用二进制编码方法进行遗传算法的编码操作. 二进制编码是遗传算法中常用的编码算法. 编码符号集是二值符号集{0,1},其个体基因是二值符号串.

2.1.2. 适应度函数

在遗传算法中个体适应度反映每个个体相对于整个群体的相对适应性,其大小决定了其是否能继续繁衍,适应度高的个体被复制到下一代的可能性高于适应度低的个体[13]. 本研究须生成可提高少态节点相对翻转率的测试向量,所以用所有少态节点的翻转次数之和表示每个个体的适应度,将遗传算法的搜索方向设为寻找能提高少态节点翻转率的个体. 个体适应度的表达式为

$ f = \mathop \sum \nolimits_{k = 1}^N {R_{\rm{count}}}\left( k \right). $

式中:Rcount为少态节点的翻转次数;k为相应的少态节点;N为少态节点总数.

2.1.3. 选择算子

选择算子模拟自然选择过程,依据适应度选择个体生存或淘汰. 若使用轮盘赌选择方法进行选择操作,每个个体被选择的概率与其适应度成正比,种群中适应度过高的个体会被迅速选择、复制遗传,导致算法提前收敛于局部最优解. 因此,对个体使用排序选择法进行选择操作. 具体操作方法如下:在计算每个个体的适应度后,根据其适应度大小对种群中的个体排序,再将事先设计好的概率表分配给各个个体,所有个体按适应度大小排序,选择概率Ps (i)与适应度的取值无关,仅与序号相关. 个体被选择的概率的表达式[14]

$ P_{\rm{s}}\left( i \right) = a{(1 - a)^{i - 1}}. $

式中:a为选择参数,a∈(0,1.0),根据文献[14],取a=0.236;i为个体适应度由大到小的排序序号.

2.1.4. 交叉算子

交叉算子模仿基因重组过程,依据交叉概率决定两个体是否进行交叉操作,其作用在于将父代的优良基因遗传给下一代,并生成包含更复杂结构的新个体. 对于符号串较长的个体,单点交叉不能保证种群的多样性,所以本研究使用多点交叉. 多点交叉是指在一对父代个体中随机选择多个交叉点,在交叉点间进行基因交换得到子代个体. 如图2所示,交叉点在第4、7、10位,将交叉点之间的符号串相互交换,最终得到2个新的个体.交叉概率越高,探索新的解空间的能力越强,但优良基因的丢失概率也相应提高;交叉概率过低则可能导致搜索阻滞[15]. 一般交叉概率Pc∈(0.6,1.0),本研究须保留种群中的优良个体,而搜索阻滞会影响算法效率,所以取Pc=0.6.

图 2

图 2   遗传算法的交叉操作

Fig.2   Crossover operation of genetic algorithm


2.1.5. 变异算子

利用变异算子模拟基因突变现象,如图3所示. 以变异概率选择基因符号串中的第2、7、11位,并改变该基因值. 变异概率太小会造成种群多样性差,易出现早熟问题;若变异概率过高,算法就会变成随机搜索. 一般变异概率Pm的取值范围为0.005~0.050,早熟问题会导致算法收敛于局部最优解[16],而随机搜索虽然会降低算法效率,但是仍可以找到最优测试向量,所以取Pm=0.05.

图 3

图 3   遗传算法的变异操作

Fig.3   Mutation operation of genetic algorithm


2.2. 翻转率提升流程

使用遗传算法对测试向量进行迭代. 以随机生成的测试向量组作为初始化种群,以少态节点的翻转次数作为适应度,具体步骤如下:1)搭建测试平台,产生随机测试向量,并使其激励电路. 围绕原始电路搭建测试平台,使用模拟器编译器(verilog compiler simulator, VCS)仿真工具对原始电路进行仿真测试并保存仿真过程文件(saif文件). 2)统计电路节点的翻转率. 根据电路的仿真过程saif文件,使用shell编程脚本统计电路节点的翻转次数,进而确定各个节点的翻转概率. 3)设定临界概率阈值Pth,并确定电路中的少态节点. 设定Pth,将翻转概率小于Pth的节点认定为少态节点,同时去除重复节点和不活动节点. 4)初始化测试向量组. 生成随机测试向量组作为初始种群,并设定交叉概率、变异概率和最大迭代次数等参数. 5)计算每个个体的适应度. 根据少态节点的翻转次数计算每个个体的适应度.当所有个体适应度之和大于设定阈值时停止算法,并输出这一代测试向量组;否则继续算法. 6)对种群中的个体进行选择、交叉和变异操作. 根据每个个体的适应度对种群中的个体进行选择操作,舍弃适应度较低的个体,对适应度较高的个体进行交叉和变异操作,产生下一代个体. 7)判断种群适应度是否提升,若种群适应度减小,则保留父代个体,并返回步骤6);否则保留子代个体. 8)判断迭代终止条件是否满足. 判断当前迭代次数是否大于最大迭代次数,如果大于则输出这一代测试向量组;否则返回步骤5)继续进行迭代操作.

3. 仿真结果与分析

本研究以与Chakraborty等[7]的研究中相同的ISCAS'85基准电路中的c3540为研究对象. 将100 000个随机向量输入到电路中,根据Ye等[10]的研究设定Pth=0.02,以此为标准寻找少态节点. 筛选出的8个节点如表1所示. 表中,P为翻转概率. 在随机生成的100 000个测试向量中,8个少态节点共翻转了11 656次,平均每1 000个向量使少态节点翻转了117次.

表 1   少态节点的动态翻转率

Tab.1  Dynamic transition rate of rare nodes

节点名称 逻辑0时间 逻辑1时间 P
G3537 421 99 579 0.008 36
n456 747 99 253 0.014 86
n651 99 242 758 0.015 10
n641 99 232 768 0.015 22
n415 99 226 774 0.015 36
n457 774 99 226 0.015 38
n433 99 200 800 0.015 92
n471 825 99 175 0.016 36

新窗口打开| 下载CSV


本研究以100个向量为一个体,10个个体为一种群进行遗传算法运算. 设最大迭代次数为500,种群的适应度随每代的变化如图4所示. 图中,K为种群代数,F为种群适应度之和. 可以看出,种群在第310代时开始收敛. 最终生成的10组测试向量的适应度之和为678,而算法运行前10组向量适应度为117,平均每组向量适应度为原有向量的5.79倍. 适应度最大的向量组的适应度为97,原有向量组的适应度为12,遗传算法得到的最优解将少态节点的翻转次数提高了8.08倍.

图 4

图 4   种群适应度随运算次数的变化

Fig.4   Variation of population fitness with calculation times


本研究共用遗传算法对10个种群进行迭代,在从这10个不同种群中找出适应度最大的10个个体向量输入到c3540电路后,8个少态节点的翻转概率如表2所示. 对比表12表2中少态节点的翻转率平均增大了7.53倍,其中n651节点的翻转率提高了12.18倍.

表 2   优化后少态节点的动态翻转率

Tab.2  Dynamic transition rate of rare nodes after optimization

节点名称 逻辑0时间 逻辑1时间 P
G3537 11 989 0.022
n456 24 976 0.048
n651 908 92 0.184
n641 915 85 0.170
n415 911 89 0.176
n457 25 975 0.050
n433 907 93 0.186
n471 23 977 0.046

新窗口打开| 下载CSV


图5所示为算法运行前后电路节点翻转率的分布情况. 图中,N'为节点个数. 可以看出,在算法运行后,电路中原有的少态节点的翻转率提高,这些节点已经属于非少态节点;电路中翻转率大于0.4的节点个数减小;翻转率为0.1~0.4的节点数量增加. 电路整体翻转率没有明显提高,具体的定量分析如下:在算法运行前,当以每1 000个向量为输入时,电路中所有非少态节点的翻转次数之和为155 158,少态节点翻转次数之和为117;在算法运行后,当以每1 000个向量为输入时,电路所有非少态节点的翻转次数之和为157 146,少态节点翻转次数之和为882. 少态节点的翻转次数提高了7.54倍,电路整体翻转率仅提高了1.02倍,少态节点的相对翻转率提升了7.44倍.

图 5

图 5   算法运行前后电路节点翻转率分布

Fig.5   Distribution of nodes' transition rate before and after algorithm operation


本研究搭建FPGA测试平台,验证向量对少态节点的活性的提升效果. 将优化向量存储在FPGA内部的ROM中,逐次读取ROM内数据作为c3540电路的激励向量. 为了有效计算少态节点的翻转次数,将电路中的少态节点与计数器相连,利用在线逻辑分析仪ChipScope统计计数器的计数值,该计数值代表少态节点的翻转次数. 实验结果表明,当以每1 000个向量为输入时,电路少态节点翻转次数之和为882,与仿真结果一致,证明了优化向量的有效性.

4. 结 语

针对电路中易被攻击者利用而植入硬件木马的少态节点,提出基于遗传算法的少态节点活性提升方法,利用遗传算法的全局寻优能力,将电路中所有少态节点的翻转次数之和作为适应度,并对测试向量进行选择、交叉和变异操作生成能有效提升少态节点活性的测试向量. 仿真结果表明,该方法能将电路中的少态节点活性提高到原来的7.54倍,同时少态节点的相对翻转率提升了7.44倍. 本研究仅以ISCAS'85基准电路中的c3540为研究对象进行仿真验证,须在今后的研究中增加待测电路的多样性,对一些更加复杂的电路进行仿真验证,如AES电路等.

参考文献

AGRAWAL D, BAKTIR S, KARAKOYUNLU D, et al. Trojan detection using IC fingerprinting [C]// IEEE Symposium on Security and Privacy. [S.l.]: IEEE, 2007: 296-310.

[本文引用: 1]

TEHRANIPOOR M, KOUSHANFAR F

A survey of hardware Trojan taxonomy and detection

[J]. IEEE Design and Test of Computers, 2010, 27 (1): 10- 25

DOI:10.1109/MDT.2010.7      [本文引用: 1]

BHUNIA S, HSIAO M S, BANGA M, et al

Hardware Trojan attacks: threat analysis and countermeasures

[J]. Proceedings of the IEEE, 2014, 102 (8): 1229- 1247

DOI:10.1109/JPROC.2014.2334493      [本文引用: 1]

SAAD W, SANJAB A, WANG Y, et al

Hardware Trojan detection game: a prospect-theoretic approach

[J]. IEEE Transactions on Vehicular Technology, 2017, 66 (9): 7697- 7710

DOI:10.1109/TVT.2017.2686853     

JACOB N, MERLI D, HEYSZL J, et al

Hardware Trojans: current challenges and approaches

[J]. IET Computers and Digital Techniques, 2014, 8 (6): 264- 273

DOI:10.1049/iet-cdt.2014.0039      [本文引用: 1]

CHAKRABORTY R S, PAGLIARINI S, MATHEW J, et al

A flexible online checking technique to enhance hardware Trojan horse detectability by reliability analysis

[J]. IEEE Transactions on Emerging Topics in Computing, 2017, 5 (2): 260- 270

[本文引用: 1]

CHAKRABORTY R S, WOLFF F, PAUL S, et al. MERO: a statistical approach for hardware Trojan detection [C]// International Workshop on Cryptographic Hardware and Embedded Systems. Berlin : Springer, 2009: 396-410.

[本文引用: 2]

WANG S J, WEI J Y, HUANG S H, et al. Test gene-ration for combinational hardware Trojans [C]// Hardware-Oriented Security and Trust. [S.l.]: IEEE, 2016: 1-6.

[本文引用: 1]

XUE M, HU A, LI G. Detecting hardware Trojan through heuristic partition and activity driven test pattern generation [C]// Communications Security Conference. [S.l.]: IET, 2014: 1-6.

[本文引用: 2]

YE X, FENG J, GONG H, et al. An anti-Trojans design approach based on activation probability analysis [C]// Electron Devices and Solid-state Circuits. [S.l.]: IEEE, 2015: 443-446.

[本文引用: 2]

HAN C, WANG L, ZHANG Z, et al

A multi-objective genetic algorithm based on fitting and interpolation

[J]. IEEE Access, 2018, 6: 22920- 22929

DOI:10.1109/ACCESS.2018.2829262      [本文引用: 1]

MICHALEWICZ Z

A non-standard genetic algorithm for the nonlinear transportation problem

[J]. Informs Journal on Computing, 2017, 3 (4): 307- 316

[本文引用: 1]

LIN C T, PRASAD M, SAXENA A

An improved polynomial neural network classifier using real-coded genetic algorithm

[J]. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2017, 45 (11): 1389- 1401

[本文引用: 1]

MASMOUDI M A, BRAEKERS K, MASMOUDI M, et al

A hybrid genetic algorithm for the heterogeneous dial-a-ride problem

[J]. Computers and Operations Research, 2017, 81: 1- 13

[本文引用: 2]

FRIEDRICH T, KÖTZING T, KREJCA M S, et al

The compact genetic algorithm is efficient under extreme Gaussian noise

[J]. IEEE Transactions on Evolutionary Computation, 2017, 21 (3): 477- 490

[本文引用: 1]

HOU Y, WU N Q, ZHOU M C, et al

Pareto-optimization for scheduling of crude oil operations in refinery via genetic algorithm

[J]. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2017, 47 (3): 517- 530

DOI:10.1109/TSMC.2015.2507161      [本文引用: 1]

/