您好, 访客   登录/注册

基于功耗特征的硬件木马检测方法

来源:用户上传      作者:张毅军 张晓 林少锋 赵源

  摘要:芯片功耗数据采集时会存在多种噪声,为了保证数据可靠,采用国际上通用的AES电路,在FPGA中写入带木马逻辑的电路,并对其进行功耗数据提取。针对噪声对硬件木马检测的影响,结合功耗数据的特性提出了基于小波变换的功耗降噪算法,选取了最优的小波降噪参数,有效优化各种噪声影响。针对芯片正常性检测与硬件木马识别过程中,特征识别模型对检测精度影响较大的问题,提出了基于神经网络的硬件木马特征识别算法,能够很好地区分数据之间的细微差别,对去噪后的数据进行硬件木马检测,大量实验结果表明,对芯片中的硬件木马识别率大于90%,可以识别规模大于0.05%的硬件木马功耗数据。
  关键词:硬件木马;小波降噪;神经网络
  中图分类号:TP393 文献标识码:A
  文章编号:1009-3044(2019)31-0015-02
  1概述
  硬件木马是指为了达到改变电路功能或工作状态等目的而在集成电路中插入的恶意逻辑。通常硬件木马在电路中处于隐蔽状态,激活后进行信息窃取、旁路泄漏、失效加速、逻辑破坏、物理摧毁、资源强占等攻击。目前我国的高端、高档集成电路主要依赖进口。硬件木马检测对于工业应用进口芯片进行严格把关,杜绝问题芯片流入我国航空、军工等工业市场具有重要意义。
  目前,硬件木马的检测技术包括:失效分析技术、逻辑功能测试技术、侧信道分析技术。由于侧信道分析技术拥有不会对芯片造成破坏、检测效率高且检测成本低、可以对一批芯片中的大量芯片进行检测的优点,因此,侧信道分析技术成为了主流的硬件木马检测技术。但是,在利用侧信道分析技术对硬件木马进行检测的过程中,芯片以及检测设备会受到外界以及系统内部噪声的影响。噪声的存在会削弱甚至淹没硬件木马对电路的影响,这使得硬件木马的检出率大大地降低。本文提出了一种基于小波变换的数据降噪预处理,并结合神经网络算法进行硬件木马的检测方法。
  2木马设计
  硬件木马FPGA的设计主要目的是进行木马芯片功耗数据的采集。通过对FPGA的逻辑设计,使木马的功耗数据更加真实,从而使得木马芯片功耗数据的特征更明显。在采集时会得到携带噪声的数据,相比于模拟数据而言,噪声数据更自然,这也会使之后的去噪效果更好。
  3功耗数据采集
  首先完成攻击电路和硬件木马的Verilog设计,并对设计电路进行功能验证;随后利用ISE综合工具对原始电路和植入硬件木馬电路进行综合,生成FPGA的配置bitstream文件;通过JTAG将bit流文件烧写到FPGA中,施加合适的测试向量是FP-GA执行加密操作;通过FPGA功耗采集平台采集芯片的工作电流得到芯片的工作功耗波形,并将功耗数据传输至PC上位机存储。
  4小波降噪模块设计
  4.1小波去噪原理
  小波分析被称为“数学显微镜”,是一种时频域局部化分析方法。它将时域的一维信号转换到时频域的二位空间。小波变换不同于傅里叶变换,它的窗口面积固定但形状是可变的。通过窗口的平移和伸缩,使其在信号低频部分具有较高的频率分辨率和较低的时间分辨率,在信号高频部分则反之。因此,小波变换具有对信号的任意细节进行时频分析的能力,即多分辨率分析。
  功耗采集平台获取的功耗数据记为r(t),信号r(t)的连续小波变换为WTr(a,τ):
  a和τ分别为伸缩和平移因子,其中,ψaτ(t)被称为小波基函数:
  小波分解函数是由同一母函数经过伸缩平移变换而成的一系列函数。小波变换就是利用小波基对原函数进行分解重构,无限逼近原函数的过程。
  小波变换使得信号在不同尺度进行分解,并由将各种不同频率组成的混合信号分解成不同频带的子信号。而噪声分布一般都存在于高频部分。因此,通过选取合理的阈值就可以有效去除高频部分的噪声。小波去噪流程如下:
  (1)信号的小波分解:选择合适的小波基和分解层次,对信号进行分解,计算出小波分解系数。
  (2)高频系数的阈值量化处理:对不同分解层次选取合适的阈值,对高频系数进行处理,去除噪声。
  (3)信号的小波重构:将低频系数和阈值化处理后的高频系数进行小波重构,还原出消除噪声的信号。
  若rk为功耗信号r(t)的离散采样数据,且rk=cok,则信号r(t)的正交小波变换分解公式为:
  4.2小波去噪关键因素
  (1)小波基
  理论上来说小波变换可以刻画信号的任何细节,但是在实际应用中,对目标信号的去噪效果很大程度上取决于小波基的选择。与傅里叶变换不同,小波基不是唯一的,不同的小波基波形差别很大,且其支撑长度、正交性、紧支性等都不尽相同。因此,对同一个信号选用不同的小波基进行处理所得的结果往往不同。因此,小波基函数的选择就成了小波分析在实际应用中的一个十分重要的问题。
  (2)重构阈值
  阈值去噪是一种非线性去噪方法,具有实现简单,计算量小的优点。正交小波变换具有很强的数据相关性,信号的能量在小波域集中在一些大的有限的系数中。即小波分解后,信号的系数相对于噪声的系数要大。这样就可以设定一个合适阈值,来滤除低于阈值的噪声系数。为了保持信号的整体形状,尽量少的损失有效信号,小波分解后应保留低频系数,对1至N层的高频系数采用阈值法进行量化处理。
  5神经网络算法
  5.1BP神经网络算法网络训练过程
  BP神经网络预测前首先要训练网络,通过训练网络使网络具有联想记忆和预测能力。BP神经网络训练过程包括以下几个步骤。
  步骤1:网络初始化。根据系统输入输出序列(x,Y)确定网络输入层节点数n、隐含层节点数1,输出层节点数m,初始化输入层、隐含层和输出层神经元之间的连接权值Wij、Wjk,初始化隐含层阈值a,输出层阈值b,给定学习速率和神经元激励函数。   步骤2:隐含层输出计算。根据输入向量x,输入层和隐含层间连接权值wij以及隐含层阈值a,计算隐含层输出H。
  步骤6:阈值更新。根据网络预测误差e更新网络节点阈值a,b。
  步骤7:判断算法迭代是否结束,若没有结束,返回步骤2。
  5.2芯片正常性检测的实现
  取4组母本电路功耗数据A、B、C、D,每组数据12000个,将A组数据从头至尾每隔500个数据截为一段,分为24段,将每段数据第一个数据组为1组,第二个数据同样组为第2组,以此类推形成500组数据,每组数据含数据24个。将B、c、D照此法同样处理。
  A:将500组来自数据组A的数据均在开头加上标识1得到大数组E;
  B:将500组来自数据组B的数据均在开头加上标识2得到大数组F;
  c:将500组来自数据组c的数据均在开头加上标识3得到大数组G;
  D:将500组来自数据组D的数据均在开头加上标识4得到大数组H。
  將重新处理后的E、F、G、H四组数据放入神经网络中训练,取一待测电路功耗数据D,它同样包含数据1200个。照A组数据处理方法做同样处理得到数据N,将大数组N放入神经网络中进行处理,神经网络识别数组细微差别,进行分类。每个大数据中的500个数据组可看作大数据的500个细微特征共同组成大数据的整体特征,4组输入训练的大数据因其均为正常数据故其整体特征极为相似,其500个细微特征也均极为相似。若待测数据为正常数据,则其整体特征与4组输入大数据整体特征也极为相似,神经网络将每组数据(每个细微特征)分类为1、2、3、4类的可能性均等,均为近25%,故整体500组数据的分类情况是极为离散的,而若待测数据中为含有木马程序的数据,则其整体特征与4组输人大数据整体特征极为不同,但其总是与4组大数据中1组数据整体特征的相似度要高于其他3组。故其500组细微特征中大部分细微特征也与该组输人数据的对应细微特征更相似,故神经网络进行分类时会将大部分组数据分为该类,成归一态势,以此来区分正常芯片与问题芯片。
  6结论
  本文通过对功耗数据中隐藏噪声的分析,提出了基于小波变换的旁路信息降噪算法,基于大量实测功耗数据进行实验,分析得到了最适合的一系列小波去噪参数。并结合神经网络算法的后数据处理,判别电路中是否含有硬件木马。实验结果表明,通过小波变换的降噪预处理,侧信道数据中的噪声含量明显地降低,神经网络算法可判别占母本电路面积为0.05%的硬件木马,误差率小于0.5%。
转载注明来源:https://www.xzbu.com/8/view-15074503.htm