一种基于支持向量机的AES电路硬件木马检测方法与流程

文档序号:20702507发布日期:2020-05-12 15:55阅读:540来源:国知局
一种基于支持向量机的AES电路硬件木马检测方法与流程

本发明涉及电路安全技术领域,特别涉及一种基于支持向量机的aes电路硬件木马检测方法。



背景技术:

随着集成电路设计技术的发展,能够满足更高性能要求的片上系统soc设计技术已成为超大规模集成电路设计的发展趋势。为缩短开发周期,可复用的ip核在soc设计的各个模块中都被广泛应用。

目前,市场上提供的ip软核质量参差不齐,而且第三方ip软核的供应也缺乏相关的制度约束和安全监管,这都使得硬件木马攻击者有可乘之机。攻击者可以利用ip软核固有的设计缺陷和安全漏洞进行攻击,或者通过控制第三方ip软核供应方直接向芯片设计公司提供植入硬件木马的ip软核,造成电路系统的功能瘫痪或者是泄露信息等威胁。针对硬件木马这种新兴威胁对ip软核带来的安全挑战,需要强有力的检测手段确保第三方ip软核的可信性。因此,对ip软核硬件木马检测方法的研究成为了当前研究的一项重要课题。

目前,针对ip软核的检测方法,主要有基于测试和形式化验证方法。基于测试的方法是通过构造自动化功能测试平台,生成测试向量进行ip核功能测试,同时结合覆盖率作为量化指标衡量测试验证的进度,保证验证工作的完备性。由于测试向量并不能遍历所有可能输入向量,所以对于特殊状态下触发的电路功能改变并不能准确地检测到,因此具有一定局限性。形式化验证方法有三种类型:模型验证、等价验证和属性验证。模型验证时需要将电路状态转化关系表示为一个状态转移模型表示,当电路规模较大时存在空间爆炸问题,不适合用于大规模电路。等价验证常用于验证rtl级电路和综合后电路之间的相等性。属性验证用于第三方ip核的信号安全性验证,但是由于电路的需求说明大多数包含的是功能需求,对系统安全性以及后门漏洞方面的说明包含的过少,所以需要结合电路的安全属性进行安全性验证。

针对芯片级的硬件木马检测,已广泛结合支持向量机算法、主成分分析、线性回归等算法进行电路的功耗电流等旁路信息数据分析识别木马芯片,已取得较多成果,为rtl级电路中进行木马检测提供了新的思路。支持向量机作为一种有监督的机器学习算法,在算法复杂度和运算内存方面都较小,在分类和回归运用中都能取得较好的效果。



技术实现要素:

本发明的目的在于提供一种基于支持向量机的aes电路硬件木马检测方法,以实现针对rtl级的aes电路进行识别是否含有木马电路。

为解决上述技术问题,本发明提供一种基于支持向量机的aes电路硬件木马检测方法,包括:

将已知是否含木马的aes电路的原始数据集,转化为特征值描述;

采用支持向量机算法训练得到分类器,并运用所述分类器预测所述aes电路是否含木马。

可选的,将已知是否含木马的aes电路的原始数据集,转化为特征集描述包括:

构造用于描述aes电路的特征集,所述特征集包括至少两个特征标签,其中最后一位特征为木马类别特征,对应的特征值表示aes电路中是否含有木马;

将所述原始数据集采用特征集表示为特征值集合,然后分成训练集和测试集。

可选的,采用支持向量机算法训练得到分类器,并运用所述分类器预测所述rtl级aes电路是否含木马包括:

通过所述训练集进行支持向量机算法参数运算,获得分类器之后采用所述测试集进行性能估计,直至获得最优性能时,确定支持向量机算法参数获得分类器;

对所述aes电路采用所述特征集表示,运用所述分类器进行预测是否为木马电路。

可选的,用于描述aes电路的特征集包括每轮的加密模块数量、密钥的路径和密钥到达输出的距离;特征集中的特征数量随着加密密钥位数的不同而不同。

可选的,将所述原始数据集采用特征集表示为特征值集合包括:

将所述原始数据集中每个aes电路转化为一组特征集对应的特征值表示,生成一组数据,组成所述特征值集合。

可选的,分成训练集和测试集,是分成多组训练集和测试集,每组训练集和测试集都是所述原始数据集的特征值表示的集合。

可选的,所述aes电路采用所述特征集表示,最后一位特征为木马类别特征,设置特征值为“0”;通过分类器预测后,若木马类别特征值变为“1”,表示电路含木马,否则为不含木马电路。

与现有技术相比,本发明具有以下有益效果:

本发明针对rtl级电路内的硬件木马,通过已知是否含木马的rtl级aes电路的原始数据集,转化为特征集描述,采用支持向量机算法训练得到分类器,并运用分类器进行预测待测aes电路是否含木马,相对于测试和形式化验证的方法,是通过学习已有数据库中的木马来构造一个分类器函数,能够直接进行预测,大大缩短了试验时间,能够快速有效的检测出硬件木马,保证工作效率。

附图说明

图1是本发明提供的基于支持向量机的aes电路硬件木马检测方法示意图。

具体实施方式

以下结合附图和具体实施例对本发明提出的一种基于支持向量机的aes电路硬件木马检测方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

实施例一

本发明提供了一种基于支持向量机的aes电路硬件木马检测方法,将已知是否含木马的aes电路的原始数据集,转化为特征集描述;采用支持向量机算法训练得到分类器,并运用所述分类器预测所述aes电路是否含木马。

本发明的检测方法流程如图1所示,包括如下步骤:

步骤1,构造用于描述aes电路的特征集,特征集包含至少两个特征标签;其中最后一位特征为木马类别特征,设置特征值为“0”表示电路中不含有木马,特征值“1”表示电路中含有木马。特征的选择应该是能够有助于区分是否含木马的类别信息,而不是特征与特征之间的区别。根据aes电路的加密性质和原理,用于描述aes电路的特征集,包括每轮的加密模块数量、密钥的路径和密钥到达输出的距离。例如aes-128电路,指密钥长度为128位,开始有一个的密钥加法层,然后加密算法共迭代10轮,aes-128电路的密钥扩展密钥的路径特征数量有11个,密玥到达输出的距离为一个特征,加上最后一位木马类别特征,所以128位的aes电路采用的特征为24个。

加密电路随着加密密钥位数的不同特征数量会不同。如aes-192电路,表示密钥的长度为192位,加密算法迭代次数为12轮。对比aes-128电路多了两轮加密,所以子密钥也加了两个,特征增加了4个,特征集共26个特征。当然后续也可以通过特征提取方法对特征集进行降维,减少数量,使特征能够更精简,能够更高效的进行分类。

步骤2,将已知是否含木马的rtl级aes电路的原始数据集转化为一组特征集对应的特征值表示,组成所述特征值集合,然后分成训练集和测试集。每组训练集和测试集都是所述原始数据集特征值表示的集合。

已知类别的rtl级aes电路,可以运用自有开发的ip核,也可以在开源ip网站下载,如trust-hub网站提供了aes算法的内容,每一个文件对应了木马描述,没有木马和有木马的rtl电路代码,可进行运用。将已知类别的aes电路的原始数据集表示为特征值集合,并按比例分成训练集和测试集。比例分配时训练集中电路数量大于测试集数量,常采用8:2的比例分配数据集。训练集和测试集都以一个文档保存进行训练过程和测试过程,文档中一组特征值数据表示一个电路。

步骤3,通过训练集进行支持向量机算法参数运算,获得分类器之后采用测试集进行性能估计,直至获得最优性能时,确定支持向量机算法参数获得分类器。

根据支持向量机的原理,训练过程是将训练集数据进行二分类,构造一个决策平面能够最大程度将两类数据分隔开,离决策面最近的测试数据称为支持向量,这样能够用这个决策平面对数据进行类别预测。决策面用公式表示为:f(x)=sign(σ(wi×xi)+b),其中:w表示支持向量的权重向量,x表示特征值,b是常数表示偏移。分类器的训练过程也是一个不断优化权重向量的过程。

步骤4,对待测aes电路采用所述特征集表示,运用上述步骤获得的分类器进行预测是否为木马电路。待测aes电路采用特征集表示,最后一位特征为木马类别特征,设置特征值为“0”;通过分类器预测后,若木马类别特征值变为“1”,表示电路含木马,否则为不含木马电路。

例如,我们针对密钥为128位的aes电路进行分析,数据集采用trust-hub网站提供了aes算法的电路,共下载了42个电路,包含有木马和非木马电路各21个。

首先进行特征集构造,aes-128电路指密钥长度为128位,开始有一个的密钥加法层,然后加密算法共迭代10轮,前面9轮都包含字节替换、行移位、列混淆和轮密钥加,最后一轮缺少列混淆,所以每轮的加密模块数量有11个特征值,依次是1::4::4::4::4::4::4::4::4::4::3。开始一个的密钥加法层需要一个密钥,十轮加密算法迭代需要10个字密钥,aes-128电路的密钥扩展密钥的路径特征数量有11个,值依次是r0::r1::r2::r3::r4::r5::r6::r7::r8::r9::r10。密玥到达输出的距离为一个特征,用经过的密钥加法层数量表示,128位密钥的距离为11。最后一位特征没有木马时特征值标记为“0”,有木马时标记为“1”。所以128位的aes电路采用的特征为24个。

然后进行训练集和测试集构造,将原始数据集中的电路采用特征值描述。如trust-hub网站aes库中aes-t100文件的tjfree电路为不含木马,转化为特征表示该电路是1::4::4::4::4::4::4::4::4::4::3::r0::r1::r2::r3::r4::r5::r6::r7::r8::r9::r10::11::0。tjin电路为含有泄露信息型木马电路,密钥第一轮进入两个模块,并多一路输出,木马特征为1,转化为特征表示该电路是1::4::4::4::4::4::4::4::4::4::3::r0+::r1::r2::r3::r4::r5::r6::r7::r8::r9::r10::12::1。通过这种标记特征值方法将已知类别的aes电路转化为特征值描述,并按比例8:2分成训练集和测试集。

下一步是进行运用训练集进行分类器训练过程。现阶段已有一些公开的支持向量机算法工具,如libsvm,只需要将构造好的训练集和测试集作为输入,可直接进行参数迭代和测试,生成分类器可直接用于分类。采用交叉验证技术当获得最高准确率时采用固定分类器参数。

最后运用分类器进行预测待测电路是否为木马电路。待测aes电路采用特征集表示,最后一位木马类别特征设置特征值为“0”;通过分类器预测后,若木马类别特征值变为“1”,表示电路含木马,否则为不含木马电路。

上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

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