一种硬件木马的检测方法及装置制造方法及图纸

技术编号:21478505 阅读:23 留言:0更新日期:2019-06-29 05:00
本申请提供了一种硬件木马的检测方法及装置,获取目标电路的指令集功耗数据;对指令集功耗数据进行预处理,并计算预处理后的指令集功耗数据的中位数;判断预处理后的指令集功耗数据的中位数是否大于预设无木马电路功耗值;若是,将预处理后的指令集功耗数据输入到线性SVM训练上边界模型中进行处理,得到目标电路的硬件木马检测结果;若否,将预处理后的指令集功耗数据输入到线性SVM训练下边界模型中进行处理,得到目标电路的硬件木马检测结果。本发明专利技术使用SVM机器学习算法对指令集功耗数据进行分类以检测硬件木马,提高了硬件木马检测的准确率。

【技术实现步骤摘要】
一种硬件木马的检测方法及装置
本专利技术涉及集成电路安全
,更具体的,涉及一种硬件木马的检测方法及装置。
技术介绍
集成电路(IC)全球化与设计制造分离已成为IC工业界的趋势,随之而来的是攻击者可以在设计或制造阶段植入恶意的电路——硬件木马(HardwareTrojans,HTs),以窃取保密信息、监视或控制核心功能或使系统失效,而且由于硬件木马仅在特定条件下被触发,极难被检测,因此近年来硬件木马受到了广泛的关注。2005年起研究人员相继提出了上百种检测硬件木马的技术方法,其中非破坏性方法,特别是旁路检测手段最为瞩目。但在特定模式下触发的硬件木马所产生的影响,可能小到被工艺偏差(processvariation,PV)和正常功能掩盖;一些违反运行时间操作的秘密木马甚至可以基于设计规则绕过验证,从而严重降低旁路检测手段的性能。
技术实现思路
有鉴于此,本专利技术提供了一种硬件木马的检测方法及装置,使用SVM机器学习算法对指令集功耗数据进行分类以检测硬件木马,提高硬件木马检测的准确率。为了实现上述专利技术目的,本专利技术提供的具体技术方案如下:一种硬件木马的检测方法,包括:获取目标电路的指令集功耗数据;对指令集功耗数据进行预处理,并计算预处理后的指令集功耗数据的中位数;判断预处理后的指令集功耗数据的中位数是否大于预设无木马电路功耗值;若是,将预处理后的指令集功耗数据输入到线性SVM训练上边界模型中进行处理,得到目标电路的硬件木马检测结果;若否,将预处理后的指令集功耗数据输入到线性SVM训练下边界模型中进行处理,得到目标电路的硬件木马检测结果。可选的,所述目标电路的硬件木马检测结果为无硬件木马或有硬件木马,当所述目标电路的硬件木马检测结果为有硬件木马时,所述目标电路的硬件木马检测结果还包括木马类型。可选的,所述对指令集功耗数据进行预处理,包括:对指令集功耗数据进行去离群点处理,并对去离群点处理后的指令集功耗数据进行归一化处理。可选的,所述方法还包括:获取训练集和验证集,所述训练集和所述验证集分别包括不同指令、不同操作数和不同木马类型对应的功耗数据组;分别计算所述训练集和所述验证集中每个功耗数据组的中位数;利用中位数大于所述预设无木马电路功耗值的所述训练集中的功耗数据组对SVM模型进行训练,得到所述线性SVM训练上边界模型,并利用中位数不大于所述预设无木马电路功耗值的所述训练集中的功耗数据组对SVM模型进行训练,得到所述线性SVM训练下边界模型;利用中位数大于所述预设无木马电路功耗值的所述验证集中的功耗数据组对所述线性SVM训练上边界模型进行验证,利用中位数不大于所述预设无木马电路功耗值的所述验证集中的功耗数据组对所述线性SVM训练下边界模型进行验证;对所述线性SVM训练上边界模型和所述线性SVM训练下边界模型的准确率进行计算,并当准确率大于第一预设值时停止对模型的训练。可选的,所述获取训练集和验证集,包括:对多个不同指令、不同操作数和不同木马类型对应的功耗数据组预处理;对预处理后的功耗数据组进行标记,标记结果包括木马组数据和正常组数据;对标记后的功耗数据组进行分组抽样,每次抽出一组木马组数据作为验证集,其余的作为训练集。可选的,所述对所述线性SVM训练上边界模型和所述线性SVM训练下边界模型的准确率进行计算,包括:对于每一次验证,当标记结果为正常组数据,检测结果为正常组数据时,将验证结果标记为真正类;当标记结果为正常组数据,检测结果为木马组数据时,将验证结果标记为假负类;当标记结果为木马组数据,检测结果为正常组数据时,将验证结果标记为假正类;当标记结果为木马组数据,检测结果为木马组数据时,将验证结果标记为真负类;计算所述线性SVM训练上边界模型的真正类数量和真负类数量、以及所述线性SVM训练下边界模型的真正类数量和真负类数量的和值,得到第一和值;计算所述线性SVM训练上边界模型的真正类数量、假负类数量、假正类数量和真负类数量、以及所述线性SVM训练下边界模型的真正类数量、假负类数量、假正类数量和真负类数量的和值,得到第二和值;计算所述第一和值和所述第二和值的比值,得到所述线性SVM训练上边界模型和所述线性SVM训练下边界模型的准确率。一种硬件木马的检测装置,包括:检测数据获取单元,用于获取目标电路的指令集功耗数据;预处理单元,用于对指令集功耗数据进行预处理,并计算预处理后的指令集功耗数据的中位数;判断单元,用于判断预处理后的指令集功耗数据的中位数是否大于预设无木马电路功耗值;若是,触发第一检测单元,用于将预处理后的指令集功耗数据输入到线性SVM训练上边界模型中进行处理,得到目标电路的硬件木马检测结果;若否,触发第二检测单元,用于将预处理后的指令集功耗数据输入到线性SVM训练下边界模型中进行处理,得到目标电路的硬件木马检测结果。可选的,所述目标电路的硬件木马检测结果为无硬件木马或有硬件木马,当所述目标电路的硬件木马检测结果为有硬件木马时,所述目标电路的硬件木马检测结果还包括木马类型。可选的,所述预处理单元,具体用于对指令集功耗数据进行去离群点处理,并对去离群点处理后的指令集功耗数据进行归一化处理。可选的,所述装置还包括:训练数据获取单元,用于获取训练集和验证集,所述训练集和所述验证集分别包括不同指令、不同操作数和不同木马类型对应的功耗数据组;中位数计算单元,用于分别计算所述训练集和所述验证集中每个功耗数据组的中位数;模型训练单元,用于利用中位数大于所述预设无木马电路功耗值的所述训练集中的功耗数据组对SVM模型进行训练,得到所述线性SVM训练上边界模型,并利用中位数不大于所述预设无木马电路功耗值的所述训练集中的功耗数据组对SVM模型进行训练,得到所述线性SVM训练下边界模型;模型验证单元,用于利用中位数大于所述预设无木马电路功耗值的所述验证集中的功耗数据组对所述线性SVM训练上边界模型进行验证,利用中位数不大于所述预设无木马电路功耗值的所述验证集中的功耗数据组对所述线性SVM训练下边界模型进行验证;准确率计算单元,用于对所述线性SVM训练上边界模型和所述线性SVM训练下边界模型的准确率进行计算,并当准确率大于第一预设值时停止对模型的训练。可选的,所述训练数据获取单元,具体用于对多个不同指令、不同操作数和不同木马类型对应的功耗数据组预处理;对预处理后的功耗数据组进行标记,标记结果包括木马组数据和正常组数据;对标记后的功耗数据组进行分组抽样,每次抽出一组木马组数据作为验证集,其余的作为训练集。可选的,所述准确率计算单元,具体用于对于每一次验证,当标记结果为正常组数据,检测结果为正常组数据时,将验证结果标记为真正类;当标记结果为正常组数据,检测结果为木马组数据时,将验证结果标记为假负类;当标记结果为木马组数据,检测结果为正常组数据时,将验证结果标记为假正类;当标记结果为木马组数据,检测结果为木马组数据时,将验证结果标记为真负类;计算所述线性SVM训练上边界模型的真正类数量和真负类数量、以及所述线性SVM训练下边界模型的真正类数量和真负类数量的和值,得到第一和值;计算所述线性SVM训练上边界模型的真正类数量、假负类数量、假正类数量和真负类数量、以及所述线性SVM训练下边界模型的真正类数量、假负类数量、假正类数量和真负类本文档来自技高网...

【技术保护点】
1.一种硬件木马的检测方法,其特征在于,包括:获取目标电路的指令集功耗数据;对指令集功耗数据进行预处理,并计算预处理后的指令集功耗数据的中位数;判断预处理后的指令集功耗数据的中位数是否大于预设无木马电路功耗值;若是,将预处理后的指令集功耗数据输入到线性SVM训练上边界模型中进行处理,得到目标电路的硬件木马检测结果;若否,将预处理后的指令集功耗数据输入到线性SVM训练下边界模型中进行处理,得到目标电路的硬件木马检测结果。

【技术特征摘要】
1.一种硬件木马的检测方法,其特征在于,包括:获取目标电路的指令集功耗数据;对指令集功耗数据进行预处理,并计算预处理后的指令集功耗数据的中位数;判断预处理后的指令集功耗数据的中位数是否大于预设无木马电路功耗值;若是,将预处理后的指令集功耗数据输入到线性SVM训练上边界模型中进行处理,得到目标电路的硬件木马检测结果;若否,将预处理后的指令集功耗数据输入到线性SVM训练下边界模型中进行处理,得到目标电路的硬件木马检测结果。2.根据权利要求1所述的方法,其特征在于,所述目标电路的硬件木马检测结果为无硬件木马或有硬件木马,当所述目标电路的硬件木马检测结果为有硬件木马时,所述目标电路的硬件木马检测结果还包括木马类型。3.根据权利要求1所述的方法,其特征在于,所述对指令集功耗数据进行预处理,包括:对指令集功耗数据进行去离群点处理,并对去离群点处理后的指令集功耗数据进行归一化处理。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取训练集和验证集,所述训练集和所述验证集分别包括不同指令、不同操作数和不同木马类型对应的功耗数据组;分别计算所述训练集和所述验证集中每个功耗数据组的中位数;利用中位数大于所述预设无木马电路功耗值的所述训练集中的功耗数据组对SVM模型进行训练,得到所述线性SVM训练上边界模型,并利用中位数不大于所述预设无木马电路功耗值的所述训练集中的功耗数据组对SVM模型进行训练,得到所述线性SVM训练下边界模型;利用中位数大于所述预设无木马电路功耗值的所述验证集中的功耗数据组对所述线性SVM训练上边界模型进行验证,利用中位数不大于所述预设无木马电路功耗值的所述验证集中的功耗数据组对所述线性SVM训练下边界模型进行验证;对所述线性SVM训练上边界模型和所述线性SVM训练下边界模型的准确率进行计算,并当准确率大于第一预设值时停止对模型的训练。5.根据权利要求4所述的方法,其特征在于,所述获取训练集和验证集,包括:对多个不同指令、不同操作数和不同木马类型对应的功耗数据组预处理;对预处理后的功耗数据组进行标记,标记结果包括木马组数据和正常组数据;对标记后的功耗数据组进行分组抽样,每次抽出一组木马组数据作为验证集,其余的作为训练集。6.根据权利要求5所述的方法,其特征在于,所述对所述线性SVM训练上边界模型和所述线性SVM训练下边界模型的准确率进行计算,包括:对于每一次验证,当标记结果为正常组数据,检测结果为正常组数据时,将验证结果标记为真正类;当标记结果为正常组数据,检测结果为木马组数据时,将验证结果标记为假负类;当标记结果为木马组数据,检测结果为正常组数据时,将验证结果标记为假正类;当标记结果为木马...

【专利技术属性】
技术研发人员:佟鑫闫华钰李莹陈岚
申请(专利权)人:中国科学院微电子研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1