芯片硬件木马检测方法和系统的制作方法

文档序号:10525545阅读:394来源:国知局
芯片硬件木马检测方法和系统的制作方法
【专利摘要】本发明涉及一种芯片硬件木马检测方法和系统,其方法包括:对所有的待测芯片进行参数旁路测试,采集待测芯片在工作状态下的旁路数据;根据旁路数据、采用融合K均值算法的遗传算法对待测芯片进行聚类分析,得到聚类芯片集;提取聚类芯片集中的待测芯片进行反向分析,并根据反向分析的结果将聚类芯片集归为木马类芯片或非木马类芯片。通过利用K均值算法较强的局部搜索能力来提高聚类分析能力,利用遗传算法较强的全局搜索能力,通过不断迭代优化,自动筛选出最优的分类结果,极大减小人工的干预,提高特征的自动识别能力,硬件木马检测能力强、效率高。
【专利说明】
芯片硬件木马检测方法和系统
技术领域
[0001] 本发明涉及电子技术领域,特别是涉及一种芯片硬件木马检测方法和系统。
【背景技术】
[0002] 硬件木马是指在集成电路中嵌入的某种电路结构。随着电子科学技术的发展,芯 片的使用越来越广泛,其使用的安全性也越来越受到重视。然而,芯片在加工过程中不完全 自主可控,攻击者可以很容易的对芯片嵌入硬件木马,当硬件木马激活时,可能造成电路系 统暂时性瘫痪、芯片失效、功能紊乱或信息泄露等问题。
[0003] 为了加强芯片的安全性,需要对芯片进行硬件木马检测。传统的检测方法主要有: 失效分析、逻辑功能检测和旁路信号分析。失效分析主要通过去除芯片封装,研磨芯片层, 借助精密仪器设备反复扫描每一层电路,以便对芯片新路功能进行全面分析,判断是否存 在木马;这种方法需要对芯片进行破坏性检测,过程繁琐且成本高,而且对于高集成度芯片 难以实现。逻辑功能检测是在输入端施加测试向量,观察电路的输出信号与预期的输出之 间的差异,从而判断是否存在硬件木马;该方法需要激活硬件木马,且耗时长;旁路信号分 析主要通过采集芯片在工作时泄露的物理特征信息,利用信号处理技术进行空间变换和压 缩实现特征提取,对基准芯片和待测芯片的物理特征进行刻画与差异判别,根据差异判断 是否存在硬件木马;该方法易受到仪器精度和工艺噪声的影响,难以检测出小面积的硬件 木马。故,传统的硬件木马检测方法检测能力差,效率低。

【发明内容】

[0004] 基于此,有必要针对上述问题,提供一种检测能力强、效率高的芯片硬件木马检测 方法和系统。
[0005] -种芯片硬件木马检测方法,包括如下步骤:
[0006] 对所有的待测芯片进行参数旁路测试,采集所述待测芯片在工作状态下的旁路数 据;
[0007] 根据所述旁路数据、采用融合K均值算法的遗传算法对所述待测芯片进行聚类分 析,得到聚类芯片集;
[0008] 提取所述聚类芯片集中的所述待测芯片进行反向分析,并根据反向分析的结果将 所述聚类芯片集归为木马类芯片或非木马类芯片。
[0009] 一种芯片硬件木马检测系统,包括:
[0010] 参数旁路测试模块,用于对所有的待测芯片进行参数旁路测试,采集所述待测芯 片在工作状态下的旁路数据;
[0011] 聚类分析模块,用于根据所述旁路数据、采用融合K均值算法的遗传算法对所述待 测芯片进行聚类分析,得到聚类芯片集;
[0012] 木马检测模块,用于提取所述聚类芯片集中的所述待测芯片进行反向分析,并根 据反向分析的结果将所述聚类芯片集归为木马类芯片或非木马类芯片。
[0013] 上述芯片硬件木马检测方法和系统,对所有的待测芯片进行参数旁路测试,采集 待测芯片在工作状态下的旁路数据后,根据旁路数据、采用融合K均值算法的遗传算法对待 测芯片进行聚类分析,得到聚类芯片集,然后提取聚类芯片集中的待测芯片进行反向分析, 根据反向分析的结果将聚类芯片集归为木马类芯片或非木马类芯片。通过利用K均值算法 较强的局部搜索能力来提高聚类分析能力,利用遗传算法较强的全局搜索能力,通过不断 迭代优化,自动筛选出最优的分类结果,极大减小人工的干预,提高特征的自动识别能力, 硬件木马检测能力强、效率高。
【附图说明】
[0014] 图1为一实施例中本发明芯片硬件木马检测方法的流程图;
[0015] 图2为一具体实施例中待测芯片的旁路数据的三维结果图;
[0016] 图3为一实施例中根据旁路数据、采用融合K均值算法的遗传算法对待测芯片进行 聚类分析,得到聚类芯片集的具体流程图;
[0017] 图4为一具体实施例中采用本发明芯片硬件木马检测方法的结果图;
[0018] 图5为一实施例中本发明芯片硬件木马检测系统的模块图;
[0019] 图6为一实施例中聚类分析模块的单元图。
【具体实施方式】
[0020] 参考图1,本发明一实施例中的芯片硬件木马检测方法,包括如下步骤。
[0021] S110:对所有的待测芯片进行参数旁路测试,采集待测芯片在工作状态下的旁路 数据。
[0022] 参数旁路测试指对待测芯片进行旁路信号分析,采集待测芯片在工作时泄露的物 理特征信息对应的旁路数据。
[0023] 本实施例中,采集的旁路数据包括全局时钟电压均值、动态功耗电压均值和环形 振荡器的输出频率。即每一个旁路数据为包括三种信息的三维数据。在其中一具体实施例 中,待测芯片有160个,图2为160个待测芯片的全局时钟电压均值(Clk均值)、动态功耗电压 均值(Power均值)和环形振荡器的输出频率(fmax)的三维结果图,可见简单的时域数据分 析并不能有效地区分开木马和非木马芯片。
[0024] S130:根据旁路数据、采用融合K均值算法的遗传算法对待测芯片进行聚类分析, 得到聚类芯片集。
[0025] K均值算法是聚类分析中的一种动态聚类算法,基本思想是以某种距离度量作为 模式间相似性测度,采用迭代更新的方法,将多维特征向量划分成若干个集合,使相同集合 间的特征向量的相似性测度最大。
[0026]遗传算法(Genetic Algorithms)是一种新发展起来的全局搜索最优解方法。它模 拟生命进化机制,其中包括自然选择和遗传进化中发生的繁殖、交配和突变现象,从任意一 个初始种群出发,通过随机选择、交叉和变异操作,产生一群新的更适应环境的个体,采用 迭代更新方法,使群体进化到搜索空间中越来越好的区域,求得问题的最优解。遗传算法对 于复杂的优化问题无须建模和复杂运算,只要利用遗传算法的三个算子(选择算子、交叉算 子和变异算子)就能得到最优解,具有较强的全局搜索能力。
[0027] 在其中一实施例中,参考图3,步骤S130包括步骤S131至步骤S138。
[0028] S132:根据预设聚类数目对所有的待测芯片进行编码得到序列号表示的个体,多 次循环直到个体的数量等于预设个体数,并将个体的集合作为父代群体。
[0029]其中,预设聚类数目指对待测样本进行分类的类别数目。预设聚类数目和预设个 体数可以根据实际情况设置。本实施例中,根据需要解决的问题,设置预设聚类数目为2,可 将待测样本分为两类。本实施例中,预设个体数为200,即父代群体中包括200个个体。
[0030] 本发明所述的编码指对待测样本进行编号分类。
[0031] 在其中一实施例中,步骤S132中根据预设聚类数目对所有的待测芯片进行编码得 到序列号表示的个体的步骤包括:对每个待测芯片随机分配一个类号得到多位类号串成的 个体。
[0032] 其中,类号的种类数等于预设聚类数目,且每一个类号对应一个基因位。本实施例 中,类号包括"1"和"2"。可以理解,在其他的实施例中,类号也可以采用其他数字。
[0033] 一具体实施例中,通过步骤S132对160个待测样本随机分配类号"1"或"2",得到 121121…21的数字串,该数字串组成一个个体,长度为160位(等于待测芯片总数),对应有 160个基因位。得到一个个体后,再重复对待测芯片进行编码,直到得到200个个体作为一个 父代群体。
[0034] 遗传算法中,待测芯片的编码方式有二进制编码、符号编码和浮点数编码等。本实 施例中根据实际的聚类问题,采用符号编码,即设置类号"1"和"2"对待测芯片进行编码,便 于后续对包括用类号表示待测芯片的个体进行聚类分析,能够大大提高遗传算法的效率。
[0035] S133:根据旁路数据获取个体的适应度和选择算子。
[0036] 适应度是整个遗传算法中极为关键的一部分,直接影响到算法收敛的速度和寻找 最优个体的效率。适应度高的个体在进化过程中保留,而适应度低的个体在进化过程中逐 渐被淘汰。
[0037] 选择算子按照某种方法如何从父代群体中选择哪些个体进行复制,遗传到下一 代。
[0038] 在其中一实施例中,步骤S133包括步骤21至步骤23。
[0039]步骤21:根据类号对个体进行分类,并根据旁路数据获取每一个类的聚类中心,根 据聚类中心获取个体的评估值。
[0040] 160位数字串"121121"_21"的个体中,将类号"1"表示的待测芯片作为第一类,类 号"2"表示的待测芯片作为第二类,然后分别根据旁路数据获取第一类和第二类的聚类中 心,并根据聚类中心获取个体的评估值。
[0041]步骤22:对个体的评估值进行大小排序,并根据排序序号和预设影响因子获取对 应个体的适应度。
[0042] 步骤23:根据个体的适应度获取对应个体的选择算子。
[0043] 本实施例中,步骤21中根据旁路数据获取每一个类的聚类中心,根据聚类中心获 取个体的评估值的步骤具体为:

[0046] 步骤22具体为:
[0047] m_pop(k). fitness = (l-a)index_1;
[0048] 步骤23具体为:
[0050] 其中,Xjki表示第k个个体的第i类中第j个待测芯片的旁路数据对应的向量,Ni(k) 表示第k个个体的第i类中待测芯片的数目,X (kn表示第k个个体中第i个类的聚类中心; centerNum表示预设聚类数目,m_pop(k). value表示第k个个体的评估值;a表示预设影响因 子,index表示评估值的排序序号,m_pop(k) .fitness表示第k个个体的适应度;m_pop(m) .fitness表示第m个个体的适应度,m_pop(n).fitness表示第n个个体的适应度,popSize表 示预设个体数,cFi tness (k)表示第k个个体的选择算子。
[0051] 其中,预设影响因子a的取值范围为(〇,1),本实施例中a取0.6。
[0052] 本实施例中,计算评估值的公式中表示第k个个体的第i类中第j个 待测芯片对应的旁路数据到该类的聚类中心的欧氏距离。不同于传统的评估值计算,本实 施例中评估值的计算运用了 K均值算法的模型作为遗传算法的聚类模型、构建遗传算法的 评估函数。对于每个个体,采用类似K均值算法获取评估值,由于K均值算法具有较强的局部 搜索能力,因此融合K均值算法获取的评估值可以表征每个个体的优劣程度,提高聚类分析 能力。评估值越小,则表示分类的误差越小,个体被选择到下一代的几率越高。
[0053] 步骤22通过对个体的评估值进行排序后获取适应度,根据评估值排序方法,引入 新的适应度计算方法,解决局部快速收敛问题。不管评估值的大小如何,个体被选择的几率 只跟评估值排序的序号有关,这样避免了一代群体中过于适应或过于不适应个体的干扰, 提高优化选择个体的准确性。
[0054] S134:根据个体的选择算子从父代群体中选择对应个体,多次循环直到选择的个 体的数量等于预设个体数,并复制选择的个体作为中间群体。
[0055] 通过从父代群体中选择个体进行复制,可以将适应度较高的个体保留到中间群 体,避免基因损失,提尚全局收敛性和计算效率。
[0056] 本实施例中,步骤S134根据个体的选择算子从父代群体中选择对应个体的步骤具 体为:随机生成一个选择参数,从父代群体中将选择参数小于选择算子对应的个体选出,若 选出的个体有多个,则从选出的个体中选择适应度最接近选择参数的个体。即,通过随机产 生的选择参数和选择算子的比较,一次从父代群体中选择一个个体进行复制。
[0057] 一具体实施例中,选择一个个体之后,再次随机生成一个选择参数,重复从父代群 体中选择个体进行复制的步骤,直到中间群体的个体数量等于预设个体数,即完成一次选 择复制,每一次选择复制后得到的群体大小不变。
[0058] S135:根据预设交叉概率和预设变异概率对中间群体中的个体进行交叉和变异, 得到下一代群体,并获取下一代群体中个体的适应度和选择算子。
[0059] 交叉、变异之后得到下一代群体,即完成一次迭代。通过对个体进行交叉,可以保 存个体原始特征,将原有的优良基因遗传给下一代个体,并生成包含更复杂结构的新个体; 通过对交叉之后的个体进行变异,可以克服交叉算子的局部搜索能力,以快速找到最优个 体。
[0060] 在其中一实施例中,步骤S135中根据预设交叉概率和预设变异概率对下一代群体 中的个体进行交叉和变异,得到下一代群体的步骤包括步骤31和步骤32。
[0061] 步骤31:根据预设交叉概率生成个体的交叉基因位,随机不重复地从下一代群体 中选择两个个体,根据交叉基因位对选择的两个个体进行相互交叉,循环直到下一代群体 中的所有个体都完成交叉。
[0062] 预设交叉概率可根据实际情况具体设置。本实施例中,为了使交叉较充分地进行, 交叉概率设置为0.6。
[0063] 本实施例中,根据交叉基因位对选择的两个个体进行相互交叉的步骤具体为:对 选取的两个个体的交叉基因位后的类号进行相互交叉复制。交叉操作一般分为:单点交叉、 多点交叉、一致交叉。本实施例中的交叉采用单点交叉,即以预设交叉概率为生成交叉位, 可以降低计算量。
[0064] 步骤32:遍历交叉后的个体的类号,根据预设变异概率对个体的各类号进行变异, 得到下一代群体。
[0065] 变异概率可以为0.001和0.1之间的数值。本实施例中变异概率为0.05。设置较小 的变异概率,避免破坏很多优良样本而无法得到最优个体。
[0066]本实施例中,根据预设变异概率对个体的各类号进行变异的步骤具体为:对应每 一位类号随机生成一个变异参数,在变异参数小于变异概率时,随机生成一个类号作为对 应基因位的新的类号。
[0067] 一具体实施例中,一个个体对应有160个类号,对应160个待测芯片。交叉概率为 0.6,得到的交叉基因位为第96位,因此,随机不重复地从下一代群体中选择两个个体后,将 选取的两个个体第96位后的类号进行相互复制,即为完成这两个个体的交叉。对于完成交 叉之后的个体,遍历每一位类号,对每一位类号随机生成一个变异参数,在变异参数小于变 异概率时,生成类号"1"或"2"赋值给该位类号,然后对下一个类号随机生成一个类号,如此 循环直到遍历完该个体的所有类号,即为完成该个体的变异。
[0068] 本实施例中,得到下一代群体之后,获取下一代群体中的个体的适应度和选择算 子的步骤与步骤S133相同,在此不做赘述。
[0069] S136:将预设的迭代次数加一得到新的迭代次数,判断新的迭代次数是否等于预 设最大迭代次数;若否,表示还需要继续进行迭代,执行步骤S137;若是,表示已经完成迭代 操作,执行步骤S138。
[0070] 本实施例中,预设的迭代次数为零,最大迭代次数即为需要迭代的次数。
[0071] S137:将下一代群体作为新的父代群体,并返回步骤S134。
[0072] 通过重复步骤S134至步骤S136,以便找到最优个体。
[0073] S138:从下一代群体中选择适应度最大的个体作为最优个体,根据最优个体的编 码对待测芯片进行分类,得到聚类芯片集。
[0074] 例如,选出最优个体后,按照类号"1"和"2"将对应的待测芯片分为第一类和第二 类,得到一个或两个聚类芯片集。同一个聚类芯片集中的待测芯片的旁路数据对应的特征 较为相似,同属于木马芯片或同属于非木马芯片。
[0075] 微小面积的硬件木马产生的旁路数据的信息相比原始电路的旁路数据的信息微 乎其微,很容易被工艺噪声和测量噪声所掩盖;而且木马芯片和非木马芯片的特征差异很 小,如何高效地识别木马芯片和非木马芯片的特征差异是关键问题。本发明通过步骤S131 至步骤S138,采用融合K均值算法的遗传算法,利用K均值算法较强的局部搜索能力来提高 聚类分析能力,实现多维数据的微小特征提取;利用遗传算法较强的全局搜索能力,通过不 断迭代优化,自动筛选出最优的分类结果,极大减小人工的干预,提高特征的自动识别能 力。
[0076] S150:提取聚类芯片集中的待测芯片进行反向分析,并根据反向分析的结果将聚 类芯片集归为木马类芯片或非木马类芯片。
[0077] 反向分析指现有的技术中对待测芯片进行硬件木马检测的一种方法。通过对待测 芯片进行反向分析,可以得知该待测芯片是否存在硬件木马,从而得知与该待测芯片属于 同一聚类芯片集的待测芯片是否为木马芯片。
[0078]在其中一实施例中,聚类芯片集的数量为2个,步骤S150包括:从任一个聚类芯片 集中随机选择一个待测芯片进行反向分析;根据反向分析的结果判断抽取的待测芯片是否 存在硬件木马。若是,将抽取的待测芯片所在的聚类芯片集归为木马类芯片,另一个聚类芯 片集归为非木马类芯片。若否,将抽取的待测芯片所在的聚类芯片集归为非木马类芯片,另 一个聚类芯片集归为木马类芯片。
[0079] 通过在对待测芯片进行分类后,抽取其中的一个待测芯片进行反向分析,根据反 向分析的结果即可判断所有待测芯片是否存在硬件木马,不需要对所有待测芯片进行检 测,操作简单高效。
[0080] 一具体实施例中,目标电路采用18位的Cordic数字IP核电路,硬件木马为1位的计 数器,木马电路与目标电路的面积比值约为5*1(T 4。参考图4,为采用上述芯片硬件木马检测 方法对160个待测芯片进行检测的结果,1~16号芯片为非木马芯片,17~32号芯片为木马 芯片,33~96号芯片为非木马芯片,97~160号芯片为木马芯片,从图中可以看出木马芯片 聚为"1"类,非木马芯片聚为"2"类,可见木马芯片和无木马芯片能够准确地聚成两类,因此 也验证了该方法可以实现1(T 4的硬件木马检测分辨率。
[0081] 上述芯片硬件木马检测方法,对所有的待测芯片进行参数旁路测试,采集待测芯 片在工作状态下的旁路数据后,根据旁路数据、采用融合K均值算法的遗传算法对待测芯片 进行聚类分析,得到聚类芯片集,然后提取聚类芯片集中的待测芯片进行反向分析,并根据 反向分析的结果将聚类芯片集归为木马类芯片或非木马类芯片。通过利用K均值算法较强 的局部搜索能力来提高聚类分析能力,利用遗传算法较强的全局搜索能力,通过不断迭代 优化,自动筛选出最优的分类结果,极大减小人工的干预,提高特征的自动识别能力,硬件 木马检测能力强、效率高。
[0082]参考图5,本发明一实施例中的一种芯片硬件木马检测系统,包括参数旁路测试模 块110、聚类分析模块130和木马检测模块150。
[0083]参数旁路测试模块110用于对所有的待测芯片进行参数旁路测试,采集待测芯片 在工作状态下的旁路数据。
[0084] 参数旁路测试指对待测芯片进行旁路信号分析,采集待测芯片在工作时泄露的物 理特征信息对应的旁路数据。
[0085] 本实施例中,采集的旁路数据包括全局时钟电压均值、动态功耗电压均值和环形 振荡器的输出频率。即每一个旁路数据为包括三种信息的三维数据。在其中一具体实施例 中,待测芯片有160个,图2为160个待测芯片的全局时钟电压均值、动态功耗电压均值和环 形振荡器的输出频率的三维结果图,可见简单的时域数据分析并不能有效地区分开木马和 非木马芯片。
[0086] 聚类分析模块130用于根据旁路数据、采用融合K均值算法的遗传算法对待测芯片 进行聚类分析,得到聚类芯片集。
[0087] K均值算法是聚类分析中的一种动态聚类算法,基本思想是以某种距离度量作为 模式间相似性测度,采用迭代更新的方法,将多维特征向量划分成若干个集合,使相同集合 间的特征向量的相似性测度最大。
[0088]遗传算法(Genetic Algorithms)是一种新发展起来的全局搜索最优解方法。它模 拟生命进化机制,其中包括自然选择和遗传进化中发生的繁殖、交配和突变现象,从任意一 个初始种群出发,通过随机选择、交叉和变异操作,产生一群新的更适应环境的个体,采用 迭代更新方法,使群体进化到搜索空间中越来越好的区域,求得问题的最优解。遗传算法对 于复杂的优化问题无须建模和复杂运算,只要利用遗传算法的三个算子(选择算子、交叉算 子和变异算子)就能得到最优解,具有较强的全局搜索能力。
[0089] 在其中一实施例中,参考图6,聚类分析模块130包括父代群体生成单元132、个体 数据计算单元133、选择复制单元134、交叉变异单元135和优化分类单元136。
[0090] 父代群体生成单元132用于根据预设聚类数目对所有的待测芯片进行编码得到序 列号表示的个体,多次循环直到个体的数量等于预设个体数,并将个体的集合作为父代群 体。
[0091]其中,预设聚类数目指对待测样本进行分类的类别数目。预设聚类数目和预设个 体数可以根据实际情况设置。本实施例中,根据需要解决的问题,设置预设聚类数目为2,可 将待测样本分为两类。本实施例中,预设个体数为200,即父代群体中包括200个个体。
[0092]本发明所述的编码指对待测样本进行编号分类。
[0093] 在其中一实施例中,父代群体生成单元132根据预设聚类数目对所有的待测芯片 进行编码得到序列号表示的个体,具体为:对每个待测芯片随机分配一个类号得到多位类 号串成的个体。
[0094] 其中,类号的种类数等于聚类数目,且每一个类号对应一个基因位。本实施例中, 类号包括"1"和"2"。可以理解,在其他的实施例中,类号也可以采用其他数字。
[0095] -具体实施例中,通过父代群体生成单元132对160个待测样本随机分配类号"1" 或"2",得到121121…21的数字串,该数字串组成一个个体,长度为160位(等于待测芯片总 数),对应有160个基因位。得到一个个体后,再重复对待测芯片进行编码,直到得到200个个 体作为一个父代群体。
[0096] 遗传算法中,待测芯片的编码方式有二进制编码、符号编码和浮点数编码等。本实 施例中通过父代群体生成单元132根据实际的聚类问题,采用符号编码,即设置类号"1"和 "2"对待测芯片进行编码,便于后续对包括用类号表示待测芯片的个体进行聚类分析,能够 大大提高遗传算法的效率。
[0097]个体数据计算单元133用于根据旁路数据获取个体的适应度和选择算子。
[0098]适应度是整个遗传算法中极为关键的一部分,直接影响到算法收敛的速度和寻找 最优个体的效率。适应度高的个体在进化过程中保留,而适应度低的个体在进化过程中逐 渐被淘汰。
[0099] 选择算子按照某种方法如何从父代群体中选择哪些个体进行复制,遗传到下一 代。
[0100] 在其中一实施例中,个体数据计算单元133具体用于:根据类号对个体进行分类, 并根据旁路数据获取每一个类的聚类中心,根据聚类中心获取个体的评估值;对个体的评 估值进行大小排序,并根据排序序号和预设影响因子获取对应个体的适应度;根据个体的 适应度获取对应个体的选择算子。
[0101] 例如,160位数字串"121121 - 21"的个体中,将类号"1"表示的待测芯片作为第一 类,类号"2"表示的待测芯片作为第二类,然后分别根据旁路数据获取第一类和第二类的聚 类中心,并根据聚类中心获取个体的评估值。
[0102] 本实施例中,个体数据计算单元133具体根据:
[0107] 获取评估值、适应度和选择算子。其中,X/1表示第k个个体的第i类中第j个待测芯 片的旁路数据对应的向量,Ni(k)表示第k个个体的第i类中待测芯片的数目,^表示第k 个个体中第i个类的聚类中心;centerNum表示预设聚类数目,m_pop(k). value表示第k个个 体的评估值;a表示预设影响因子,index表示评估值的排序序号,m_pop(k) .fitness表示第 k个个体的适应度;m_pop(m) .fitness表示第m个个体的适应度,m_pop(n) .fitness表示第n 个个体的适应度,popSize表示预设个体数,cFitness(k)表示第k个个体的选择算子。
[0108] 其中,影响因子a的取值范围为(〇,1),本实施例中a取0.6。
[0109]本实施例中,计算评估值的公式中-I(fo>||表示第k个个体的第i类中第j个 待测芯片对应的旁路数据到该类的聚类中心的欧氏距离。不同于传统的评估值计算,本实 施例中评估值的计算运用了 K均值算法的模型作为遗传算法的聚类模型、构建遗传算法的 评估函数。对于每个个体,采用类似K均值算法获取评估值,由于K均值算法具有较强的局部 搜索能力,因此融合K均值算法获取的评估值可以表征每个个体的优劣程度,提高聚类分析 能力。评估值越小,则表示分类的误差越小,个体被选择到下一代的几率越高。
[0110] 通过对个体的评估值进行排序后获取适应度,根据评估值排序方法,引入新的适 应度计算方法,解决局部快速收敛问题。不管评估值的大小如何,个体被选择的几率只跟评 估值排序的序号有关,这样避免了一代群体中过于适应或过于不适应个体的干扰,提高优 化选择个体的准确性。
[0111] 选择复制单元134用于根据个体的选择算子从父代群体中选择对应个体,多次循 环直到选择的个体的数量等于预设个体数,并复制选择的个体作为中间群体。
[0112] 通过从父代群体中选择个体进行复制,可以将适应度较高的个体保留到中间群 体,避免基因损失,提尚全局收敛性和计算效率。
[0113] 本实施例中,选择复制单元134根据个体的选择算子从父代群体中选择对应个体, 具体为:随机生成一个选择参数,从父代群体中将选择参数小于选择算子对应的个体选出, 若选出的个体有多个,则从选出的个体中选择适应度最接近选择参数的个体。即,通过随机 产生的选择参数和选择算子的比较,一次从父代群体中选择一个个体进行复制。
[0114] -具体实施例中,选择复制单元134选择一个个体之后,再次随机生成一个选择参 数,重复选择个体进行复制的步骤,直到中间群体的个体数量等于预设个体数,即完成一次 选择复制,每一次选择复制后得到的群体大小不变。
[0115] 交叉变异单元135用于根据预设交叉概率和预设变异概率对中间群体中的个体进 行交叉和变异,得到下一代群体,并获取下一代群体中个体的适应度和选择算子。
[0116] 交叉、变异之后得到下一代群体,即完成一次迭代。通过对个体进行交叉,可以保 存个体原始特征,将原有的优良基因遗传给下一代个体,并生成包含更复杂结构的新个体; 通过对交叉之后的个体进行变异,可以克服交叉操作的局部搜索能力,以快速找到最优个 体。
[0117] 在其中一实施例中,交叉变异单元135包括交叉子单元(图未示)和变异子单元(图 未不)。
[0118] 交叉子单元用于根据预设交叉概率生成个体的交叉基因位,随机不重复地从下一 代群体中选择两个个体,根据交叉基因位对选择的两个个体进行相互交叉,循环直到下一 代群体中的所有个体都完成交叉。
[0119] 预设交叉概率可根据实际情况具体设置。本实施例中,为了使交叉较充分地进行, 交叉概率设置为0.6。
[0120] 本实施例中,交叉子单元根据交叉基因位对选择的两个个体进行相互交叉,具体 为:对选取的两个个体的交叉基因位后的类号进行相互交叉复制。交叉操作一般分为:单点 交叉、多点交叉、一致交叉。本实施例中的交叉采用单点交叉,即以预设交叉概率生成交叉 位,可以降低计算量。
[0121] 变异子单元用于遍历交叉后的个体的类号,根据预设变异概率对个体的各类号进 行变异,得到下一代群体。
[0122] 变异概率可以为0.001和0.1之间的数值。本实施例中变异概率为0.05。设置较小 的变异概率,避免破坏很多优良样本而无法得到最优个体。
[0123] 本实施例中,变异子单元根据预设变异概率对个体的各类号进行变异,具体为:对 应每一位类号随机生成一个变异参数,在变异参数小于变异概率时,随机生成一个类号作 为对应基因位的新的类号。
[0124] -具体实施例中,一个个体对应有160个类号,对应160个待测芯片。交叉概率为 0.6,得到的交叉基因位为第96位,因此,随机不重复地从下一代群体中选择两个个体后,将 选取的两个个体第96位后的类号进行相互复制,即为完成这两个个体的交叉。对于完成交 叉之后的个体,遍历每一位类号,对每一位类号随机生成一个变异参数,在变异参数小于变 异概率时,生成类号"1"或"2"赋值给该位类号,然后对下一个类号随机生成一个类号,如此 循环直到遍历完该个体的所有类号,即为完成该个体的变异。
[0125] 本实施例中,得到下一代群体之后,交叉变异单元135获取下一代群体中的个体的 适应度和选择算子执行的功能与个体数据计算单元133相同,在此不做赘述。
[0126] 优化分类单元136用于将预设的迭代次数加一得到新的迭代次数,判断新的迭代 次数是否等于预设最大迭代次数;在新的迭代次数不等于最大迭代次数时,将下一代群体 作为新的父代群体,并控制选择复制单元134根据个体的选择算子从父代群体中选择对应 个体,多次循环直到选择的个体的数量等于预设个体数,并复制选择的个体作为中间群体; 在新的迭代次数等于预设最大迭代次数时,从下一代群体中选择适应度最大的个体作为最 优个体,根据最优个体的编码对待测芯片进行分类,得到聚类芯片集。
[0127] 例如,在迭代次数等于最大迭代次数时,选出最优个体后,按照类号"1"和"2"将对 应的待测芯片分为第一类和第二类,得到一个或两个聚类芯片集。同一个聚类芯片集中的 待测芯片的旁路数据对应的特征较为相似,同属于木马芯片或同属于非木马芯片。
[0128] 微小面积的硬件木马产生的旁路数据的信息相比原始电路的旁路数据的信息微 乎其微,很容易被工艺噪声和测量噪声所掩盖;而且木马芯片和非木马芯片的特征差异很 小,如何高效地识别木马芯片和非木马芯片的特征差异是关键问题。本发明通过聚类分析 模块130,采用融合K均值算法的遗传算法,利用K均值算法较强的局部搜索能力来提高聚类 分析能力,实现多维数据的微小特征提取;利用遗传算法较强的全局搜索能力,通过不断迭 代优化,自动筛选出最优的分类结果,极大减小人工的干预,提高特征的自动识别能力。
[0129] 木马检测模块150用于提取聚类芯片集中的待测芯片进行反向分析,并根据反向 分析的结果将聚类芯片集归为木马类芯片或非木马类芯片。
[0130] 反向分析指现有的技术中对待测芯片进行硬件木马检测的一种方法。通过对待测 芯片进行反向分析,可以得知该待测芯片是否存在硬件木马,从而得知与该待测芯片属于 同一聚类芯片集的待测芯片是否为木马芯片。
[0131] 在其中一实施例中,聚类芯片集的数量为2个,木马检测模块150具体用于:从任一 个聚类芯片集中随机选择一个待测芯片进行反向分析;根据反向分析的结果判断抽取的待 测芯片是否存在硬件木马,在存在硬件木马时,将抽取的待测芯片所在的聚类芯片集归为 木马类芯片,另一个聚类芯片集归为非木马类芯片,在不存在硬件木马时,将抽取的待测芯 片所在的聚类芯片集归为非木马类芯片,另一个聚类芯片集归为木马类芯片。
[0132] 通过在对待测芯片进行分类后,抽取其中的一个待测芯片进行反向分析,根据反 向分析的结果即可判断所有待测芯片是否存在硬件木马,不需要对所有待测芯片进行检 测,操作简单高效。
[0133] -具体实施例中,目标电路采用18位的Cordic数字IP核电路,硬件木马为1位的计 数器,木马电路与目标电路的面积比值约为5*1(T 4。参考图4,为采用上述芯片硬件木马检测 方法对160个待测芯片进行检测的结果,1~16号芯片为非木马芯片,17~32号芯片为木马 芯片,33~96号芯片为非木马芯片,97~160号芯片为木马芯片,从图中可以看出木马芯片 聚为"1"类,非木马芯片聚为"2"类,可见木马芯片和无木马芯片能够准确地聚成两类,因此 也验证了该方法可以实现1(T 4的硬件木马检测分辨率。
[0134] 上述芯片硬件木马检测系统,参数旁路测试模块110对所有的待测芯片进行参数 旁路测试,采集待测芯片在工作状态下的旁路数据后,聚类分析模块130根据旁路数据、采 用融合K均值算法的遗传算法对待测芯片进行聚类分析,得到聚类芯片集,木马检测模块 150提取聚类芯片集中的待测芯片进行反向分析,并根据反向分析的结果将聚类芯片集归 为木马类芯片或非木马类芯片。通过利用K均值算法较强的局部搜索能力来提高聚类分析 能力,利用遗传算法较强的全局搜索能力,通过不断迭代优化,自动筛选出最优的分类结 果,极大减小人工的干预,提高特征的自动识别能力,硬件木马检测能力强、效率高。
[0135] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实 施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存 在矛盾,都应当认为是本说明书记载的范围。
[0136] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来 说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护 范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1. 一种芯片硬件木马检测方法,其特征在于,包括如下步骤: 对所有的待测芯片进行参数旁路测试,采集所述待测芯片在工作状态下的旁路数据; 根据所述旁路数据、采用融合K均值算法的遗传算法对所述待测芯片进行聚类分析,得 到聚类芯片集; 提取所述聚类芯片集中的所述待测芯片进行反向分析,并根据反向分析的结果将所述 聚类芯片集归为木马类芯片或非木马类芯片。2. 根据权利要求1所述的芯片硬件木马检测方法,其特征在于,所述根据所述旁路数 据、采用融合K均值算法的遗传算法对所述待测芯片进行聚类分析,得到聚类芯片集的步骤 包括: 根据预设聚类数目对所有的所述待测芯片进行编码得到序列号表示的个体,多次循环 直到所述个体的数量等于预设个体数,并将所述个体的集合作为父代群体; 根据所述旁路数据获取所述个体的适应度和选择算子; 根据所述个体的选择算子从所述父代群体中选择对应个体,多次循环直到选择的个体 的数量等于所述预设个体数,并复制选择的个体作为中间群体; 根据预设交叉概率和预设变异概率对所述中间群体中的个体进行交叉和变异,得到下 一代群体,并获取所述下一代群体中个体的适应度和选择算子; 将预设的迭代次数加一得到新的迭代次数,判断所述新的迭代次数是否等于预设最大 迭代次数; 若否,将所述下一代群体作为新的父代群体,并返回所述根据所述个体的选择算子从 所述父代群体中选择对应个体,多次循环直到选择的个体的数量等于所述预设个体数,并 复制选择的个体作为中间群体的步骤; 若是,则从所述下一代群体中选择适应度最大的个体作为最优个体,根据所述最优个 体的编码对所述待测芯片进行分类,得到所述聚类芯片集。3. 根据权利要求2所述的芯片硬件木马检测方法,其特征在于,所述根据预设聚类数目 对所有的所述待测芯片进行编码得到序列号表示的个体的步骤包括: 对每个所述待测芯片随机分配一个类号得到多位类号串成的个体,其中,所述类号的 种类数等于所述预设聚类数目,且每一个所述类号对应一个基因位。4. 根据权利要求3所述的芯片硬件木马检测方法,其特征在于,所述根据所述旁路数据 获取所述个体的适应度和选择算子的步骤包括: 根据所述类号对所述个体进行分类,并根据所述旁路数据获取每一个类的聚类中心, 根据所述聚类中心获取所述个体的评估值; 对所述个体的评估值进行大小排序,并根据排序的序号和预设影响因子获取对应个体 的适应度; 根据所述个体的适应度获取对应个体的选择算子。5. 根据权利要求4所述的芯片硬件木马检测方法,其特征在于,所述根据所述旁路数据 获取每一个类的聚类中心,根据所述聚类中心获取所述个体的评估值的步骤,具体为:所述对所述个体的评估值进行大小排序,并根据排序的序号和预设影响因子获取对应 个体的适应度的步骤具体为: m_pop(k) .fitness= (l-a)index_1 ; 根据所述个体的适应度获取对应个体的选择算子的步骤具体为:其中,X/1表示第k个个体的第i类中第j个待测芯片的所述旁路数据对应的向量,Ni(k) 表示第k个个体的第i类中所述待测芯片的数目表示第k个个体中第i个类的聚类中 心;centerNum表示所述预设聚类数目,m_pop(k). value表示第k个个体的评估值;a表示所 述预设影响因子,index表示所述评估值的排序序号,m_pop(k). fitness表示第k个个体的 适应度;m_pop(m). fitness表示第m个个体的适应度,m_pop(n). fitness表示第η个个体的 适应度,popSize表示所述预设个体数,cFitness(k)表示第k个个体的选择算子。6. 根据权利要求2所述的芯片硬件木马检测方法,其特征在于,所述根据预设交叉概率 和预设变异概率对所述中间群体中的所述个体进行交叉和变异,得到下一代群体的步骤包 括: 根据所述预设交叉概率生成所述个体的交叉基因位,随机不重复地从所述下一代群体 中选择两个个体,根据所述交叉基因位对选择的两个个体进行相互交叉,循环直到所述下 一代群体中的所有个体都完成交叉; 遍历交叉后的所述个体的类号,根据所述预设变异概率对所述个体的各类号进行变 异,得到下一代群体。7. 根据权利要求1所述的芯片硬件木马检测方法,其特征在于,所述聚类芯片集的数量 为2个,所述提取所述聚类芯片集中的所述待测芯片进行反向分析,并根据反向分析的结果 将所述聚类芯片集归为木马类芯片或非木马类芯片的步骤包括: 从任一个所述聚类芯片集中随机选择一个待测芯片进行反向分析; 根据反向分析的结果判断抽取的所述待测芯片是否存在硬件木马; 若是,将抽取的所述待测芯片所在的聚类芯片集归为木马类芯片,另一个聚类芯片集 归为非木马类芯片; 若否,将抽取的所述待测芯片所在的聚类芯片集归为非木马类芯片,另一个聚类芯片 集归为木马类芯片。8. -种芯片硬件木马检测系统,其特征在于,包括: 参数旁路测试模块,用于对所有的待测芯片进行参数旁路测试,采集所述待测芯片在 工作状态下的旁路数据; 聚类分析模块,用于根据所述旁路数据、采用融合K均值算法的遗传算法对所述待测芯 片进行聚类分析,得到聚类芯片集; 木马检测模块,用于提取所述聚类芯片集中的所述待测芯片进行反向分析,并根据反 向分析的结果将所述聚类芯片集归为木马类芯片或非木马类芯片。9. 根据权利要求8所述的芯片硬件木马检测系统,其特征在于,所述聚类分析模块包 括: 父代群体生成单元,用于根据预设聚类数目对所有的所述待测芯片进行编码得到序列 号表示的个体,多次循环直到所述个体的数量等于预设个体数,并将所述个体的集合作为 父代群体; 个体数据计算单元,用于根据所述旁路数据获取所述个体的适应度和选择算子; 选择复制单元,用于根据所述个体的所述选择算子从所述父代群体中选择对应个体, 多次循环直到选择的个体的数量等于所述预设个体数,并复制选择的个体作为中间群体; 交叉变异单元,用于根据预设交叉概率和预设变异概率对所述中间群体中的个体进行 交叉和变异,得到下一代群体,并获取所述下一代群体中个体的适应度和选择算子; 优化分类单元,用于将预设的迭代次数加一得到新的迭代次数,判断所述新的迭代次 数是否等于预设最大迭代次数;在所述新的迭代次数不等于所述预设最大迭代次数时,将 所述下一代群体作为新的父代群体,并控制所述选择复制单元根据所述个体的所述选择算 子从所述父代群体中选择对应个体,多次循环直到选择的个体的数量等于所述预设个体 数,并复制选择的个体作为中间群体;在所述新的迭代次数等于所述预设最大迭代次数时, 从所述下一代群体中选择适应度最大的个体作为最优个体,根据所述最优个体的编码对所 述待测芯片进行分类,得到所述聚类芯片集。10. 根据权利要求8所述的芯片硬件木马检测系统,其特征在于,所述聚类芯片集的数 量为2个,所述木马检测模块具体用于: 从任一个所述聚类芯片集中随机选择一个待测芯片进行反向分析,并根据反向分析的 结果判断抽取的所述待测芯片是否存在硬件木马,在存在硬件木马时,将抽取的所述待测 芯片所在的聚类芯片集归为木马类芯片,另一个聚类芯片集归为非木马类芯片,在不存在 硬件木马时,将抽取的所述待测芯片所在的聚类芯片集归为非木马类芯片,另一个聚类芯 片集归为木马类芯片。
【文档编号】G06F21/76GK105893876SQ201610188381
【公开日】2016年8月24日
【申请日】2016年3月28日
【发明人】何春华, 恩云飞, 刘燕江, 侯波, 雷登云, 王力纬
【申请人】工业和信息化部电子第五研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1