CN112464297B - 硬件木马检测方法、装置及存储介质 - Google Patents
硬件木马检测方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112464297B CN112464297B CN202011495410.XA CN202011495410A CN112464297B CN 112464297 B CN112464297 B CN 112464297B CN 202011495410 A CN202011495410 A CN 202011495410A CN 112464297 B CN112464297 B CN 112464297B
- Authority
- CN
- China
- Prior art keywords
- power consumption
- consumption data
- preprocessed
- training set
- hardware trojan
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 title claims abstract description 95
- 238000001514 detection method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 230000002159 abnormal effect Effects 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000007781 pre-processing Methods 0.000 claims abstract description 28
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 23
- 238000003064 k means clustering Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000012549 training Methods 0.000 claims description 76
- 238000012360 testing method Methods 0.000 claims description 64
- 239000011159 matrix material Substances 0.000 claims description 44
- 238000009825 accumulation Methods 0.000 claims description 19
- 238000000513 principal component analysis Methods 0.000 claims description 17
- 239000013598 vector Substances 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 9
- 238000012935 Averaging Methods 0.000 claims description 8
- 230000005856 abnormality Effects 0.000 claims description 7
- 230000009467 reduction Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- RKQKLZMMOQWTGB-HYBUGGRVSA-N diphenyl-[(1R,2S)-2-(phenylsulfanylmethyl)cyclopentyl]phosphane Chemical compound C([C@@H]1[C@@H](CCC1)P(C=1C=CC=CC=1)C=1C=CC=CC=1)SC1=CC=CC=C1 RKQKLZMMOQWTGB-HYBUGGRVSA-N 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 11
- 230000007613 environmental effect Effects 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及集成电路技术领域,具体涉及一种硬件木马检测方法、装置及存储介质,解决了相关技术中由于难以获取标准集成电路导致现有侧信道分析方法难以大范围普及的问题。该方法包括:将预处理后的功耗数据输入预先完成训练的分类器中,得到预处理后的功耗数据的异常得分;采用K‑means聚类算法计算得到异常得分的分类阈值;将异常得分与分类阈值作比较,若异常得分大于分类阈值,则判定待测集成电路中含有硬件木马。本申请通过对功耗数据进行预处理的方式,减少了环境和工艺噪声的同时,放大了硬件木马对功耗信息的影响,提高了检测准确性,并且,本申请对标准集成电路依赖性低,大幅提高检测方法的适用范围。
Description
技术领域
本申请涉及集成电路技术领域,特别地涉及一种硬件木马检测方法、装置及存储介质。
背景技术
随着信息产业的不断发展,越来越多的集成电路产品出现在人们生活中,人们在追求集成电路产品性能提升的过程中往往忽视了集成电路产品本身的安全可靠性。硬件木马是众多硬件安全隐患中的典型代表,其可被定义为在集成电路设计及制造各阶段被恶意攻击者植入的微小电路模块,当它被植入集成电路后可能会引起某些不正常行为,如拒绝服务、功能错误、信息泄漏或性能下降。如今集成电路产业链中,集成电路设计和制造分离的趋势愈发明显,这给不可信第三方晶圆代工厂在芯片制造过程中植入硬件木马提供了可乘之机。
硬件木马一般拥有三个特征:1、硬件木马的植入往往带有恶意目的,2、硬件木马的逃避检测性,3、硬件木马的触发条件很难出现。上述特性导致植入集成电路中的硬件木马使用常规的测试手段通常无法发现。因此,如何检测出硬件木马逐渐成为集成电路安全技术领域的研究热点。
目前常见的硬件木马检测方法是侧信道信号分析方法,通过分析集成电路的侧信道信号来判断其是否被植入硬件木马,但由于硬件木马电路的规模通常十分小,其对集成电路侧信道信号的影响很容易被环境或工艺噪声所隐藏,很容易影响现有侧信道分析方法的准确性;此外,侧信道信号检测通常需要不含木马的标准集成电路进行对比,由于标准集成电路通常难以获取,导致现有侧信道分析方法难以大范围普及。
发明内容
针对上述问题,本申请提供一种硬件木马检测方法、装置及存储介质,解决了相关技术中由于难以获取标准集成电路导致现有侧信道分析方法难以大范围普及的技术问题。
第一方面,本申请提供了一种硬件木马检测方法,所述方法包括:
采集待测集成电路的功耗数据;
对所述功耗数据进行预处理,得到预处理后的功耗数据;所述预处理包括功耗数据差值累积和功耗数据主成分分析;
将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分;
根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;
将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。
可选的,所述分类器的获取过程,包括:
获取不含硬件木马的集成电路的功耗数据和包含硬件木马的集成电路的功耗数据,得到功耗数据集;
将所述功耗数据集按照预设比例分成功耗数据训练集和功耗数据测试集;
对所述功耗数据训练集取均值,得到取均值后的功耗数据训练集;
将所述取均值后的功耗数据训练集和所述功耗数据测试集进行预处理,得到预处理后的功耗数据训练集和预处理后的功耗数据测试集;所述预处理包括功耗数据差值累积和功耗数据主成分分析;
根据所述预处理后的功耗数据训练集使用孤立森林模型进行训练,得到所述分类器。
可选的,所述功耗数据主成分分析,包括:
根据公式:
xc.i=xi-μi(i=1,2,…,m)
对所述功耗数据进行去中心化处理,得到去中心化后的功耗数据;其中,xi为第i个特征的功耗数据向量,μi为第i个特征的功耗数据均值,xc.i为第i个特征的去中心化功耗数据向量,m为特征个数;
根据公式:
计算所述去中心化后的功耗数据的协方差矩阵;其中,Xc为去中心化的功耗数据矩阵;
根据公式:
PTCP=Λ
计算所述协方差矩阵的特征值和特征向量;其中,P是C的特征向量矩阵,Λ是特征值矩阵;
根据所述特征向量和特征值生成功耗数据投影矩阵;
根据公式:
Y=X×P′
计算得到降维后的功耗数据矩阵,其中,P′是投影矩阵,X(X={x1,x2,x3…,xm})是原始功耗数据矩阵。
可选的,所述根据所述预处理后的功耗数据训练集使用孤立森林模型进行训练,得到所述分类器,包括:
将所述预处理后的功耗数据训练集随机且有交叠地选取t个子样本集;
根据所述t个子样本集建立t棵孤立树,得到所述分类器。
可选的,所述将所述预处理后的功耗数据测试集输入所述分类器中,得到所述预处理后的功耗数据测试集的异常得分,包括:
计算所述预处理后的功耗数据测试集中的每一个样本在所述t棵孤立树中每棵孤立树上的路径长度;
根据所述路径长度计算得到所述预处理后的功耗数据测试集的异常得分。
可选的,所述根据所述预处理后的功耗数据测试集的异常得分,采用K-means聚类算法计算得到所述分类阈值,包括:
根据所述K-means聚类算法将所述预处理后的功耗数据测试集的异常得分分为两个簇族;
计算所述两个簇族的聚类中心的距离;
根据所述两个簇族包含的功耗数据样本个数和所述两个簇族的聚类中心的距离计算得到所述分类阈值。
可选的,所述对所述功耗数据训练集取均值,得到取均值后的功耗数据训练集,包括:
根据公式:
计算所述功耗数据训练集的均值,得到取均值后的功耗数据训练集;其中,其中nb_tr表示所述功耗数据训练集中样本的个数,nb_tr≥2000,tr.i为训练集中第i个样本。
可选的,所述功耗数据差值累积,包括:
将所述取均值后的功耗数据训练集和所述功耗数据测试集按照预设采样数进行分组;
根据公式:
计算得到所述功耗数据差值累积;其中,nb_sample表示每组的采样数,nb_sample≥10,Dtr.m表示所述取均值后的功耗数据训练集中第m组的累计差,Dte.n表示所述功耗数据测试集中第n组的累计差,nb_trg表示所述取均值后的功耗数据训练集的分组数,其值为nb_tr除以nb_sample,nb_teg表示所述功耗数据测试集的分组数,其值为nb_te除以nb_sample,nb_te表示所述功耗数据测试集中样本的个数,nb_te≥500。
第二方面,一种硬件木马检测装置,所述装置包括:
采集单元,用于采集待测集成电路的功耗数据;
处理单元,用于对所述功耗数据进行预处理,得到预处理后的功耗数据;所述预处理包括功耗数据差值累积和功耗数据主成分分析;
输入单元,用于将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分;
计算单元,用于根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;
比较单元,用于将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。
第三方面,一种存储介质,该存储介质存储的计算机程序,可被一个或多个处理器执行,可用来实现如上述第一方面所述的硬件木马检测方法。
本申请提供的一种硬件木马检测方法、装置及存储介质,包括:采集待测集成电路的功耗数据;对所述功耗数据进行预处理,得到预处理后的功耗数据;所述预处理包括功耗数据差值累积和功耗数据主成分分析;将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分;根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。本申请通过对功耗数据进行预处理的方式,减少了环境和工艺噪声的同时,放大了硬件木马对功耗信息的影响,提高了检测准确性,并且,本申请对标准集成电路依赖性低,大幅提高检测方法的适用范围。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种硬件木马检测方法的流程示意图;
图2为本申请实施例提供的分类器的获取流程示意图;
图3为本申请实施例提供的检测结果示意图;
图4为本申请实施例提供的一种硬件木马检测装置的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本申请的实施方式,借此对本申请如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本申请的保护范围之内。
由背景技术可知,目前常见的硬件木马检测方法是侧信道信号分析方法,通过分析集成电路的侧信道信号来判断其是否被植入硬件木马,但由于硬件木马电路的规模通常十分小,其对集成电路侧信道信号的影响很容易被环境或工艺噪声所隐藏,很容易影响现有侧信道分析方法的准确性;此外,侧信道信号检测通常需要不含木马的标准集成电路进行对比,由于标准集成电路通常难以获取,导致现有侧信道分析方法难以大范围普及。
有鉴于此,本申请提供一种硬件木马检测方法、装置及存储介质,解决了相关技术中由于难以获取标准集成电路导致现有侧信道分析方法难以大范围普及的技术问题。
实施例一
图1为本申请实施例提供的一种硬件木马检测方法的流程示意图,如图1所示,本方法包括:
S101、采集待测集成电路的功耗数据。
需要说明的是,具体的,根据侧信道分析原理,搭建集成电路测试平台,在同样的测试环境下(即温度、湿度、测试设备等条件相同)对集成电路输入同样的测试向量(如:对加密电路输入同样的明文与密钥),使得集成电路正常工作,随后在工作状态下使用示波器采集侧信道功耗数据。
S102、对所述功耗数据进行预处理,得到预处理后的功耗数据。
在步骤S102中,所述预处理包括功耗数据差值累积和功耗数据主成分分析。
需要说明的是,差值累积是将功耗数据按照预设采样数进行分组,然后将所有组中的每一条功耗曲线与均值曲线做差并求和,得到功耗数据差值累积。主成分分析(principal components analysis,PCA)是利用降维的思想,对得到的差值累积进行降维,把多指标转化为少数几个综合指标,进一步凸显硬件木马的影响。
S103、将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分。
S104、根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;
S105、将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。
可选的,如图2所示,为本申请实施例公开的所述分类器的获取过程,包括:
S201、获取不含硬件木马的集成电路的功耗数据和包含硬件木马的集成电路的功耗数据,得到功耗数据集。
S202、将所述功耗数据集按照预设比例分成功耗数据训练集和功耗数据测试集。
需要说明的是,在拆分功耗数据集时,一般按照训练集和测试集的比例大于7比3的比例拆分为最优,具体的,可以选择8比2的比例进行拆分。
需要说明的是,功耗数据训练集中不含硬件木马的集成电路功耗数据占大多数,含有硬件木马的集成电路功耗数据占少数。
S203、对所述功耗数据训练集取均值,得到取均值后的功耗数据训练集。
需要说明的是,对训练集的功耗数据进行取均值处理可以减小来自噪声的影响,最终得到的均值曲线可近似为无噪声影响的功耗数据,提高硬件木马检测的准确性。
S204、将所述取均值后的功耗数据训练集和所述功耗数据测试集进行预处理,得到预处理后的功耗数据训练集和预处理后的功耗数据测试集。
在步骤S204中,所述预处理包括功耗数据差值累积和功耗数据主成分分析。
S205、根据所述预处理后的功耗数据训练集使用孤立森林模型进行训练,得到所述分类器。
需要说明的是,在完成分类器的训练后,用功耗数据测试集对分类器性能或准确度的测试,将所述预处理后的功耗数据测试集输入所述分类器中,得到所述预处理后的功耗数据测试集的异常得分。根据所述预处理后的功耗数据测试集的异常得分,采用K-means聚类算法计算得到分类阈值。将所述预处理后的功耗数据测试集的异常得分和所述分类阈值进行比较,若异常得分大于所述分类阈值,则判定所述集成电路中含有硬件木马,若异常得分小于所述分类阈值,则判定所述集成电路中不含有硬件木马,由于我们用已知是否包含硬件木马的集成电路进行测试,因此可以相应的验证检测结果。
可选的,所述功耗数据主成分分析,包括:
根据公式:
xc.i=xi-μi(i=1,2,…,m)
对所述功耗数据进行去中心化处理,得到去中心化后的功耗数据;其中,xi为第i个特征的功耗数据向量,μi为第i个特征的功耗数据均值,xc.i为第i个特征的去中心化功耗数据向量,m为特征个数;
需要说明的是,将每一个数据特征减去所有特征的均值,即可完成去中心化。
根据公式:
计算所述去中心化后的功耗数据的协方差矩阵;其中,Xc为去中心化的功耗数据矩阵;
需要说明的是,通过计算协方差矩阵以消除样本数据集中不同维度数据间的相关性。表示Xc矩阵的转置,下文中PT同理。
根据公式:
PTCP=Λ
计算所述协方差矩阵的特征值和特征向量;其中,P是C的特征向量矩阵,Λ是特征值矩阵;
需要说明的是,特征向量表示着变换方向,特征值表示着伸缩尺度。
根据所述特征向量和特征值生成功耗数据投影矩阵;
根据公式:
Y=X×P′
计算得到降维后的功耗数据矩阵,其中,P′是投影矩阵,X(X={x1,x2,x3…,xm})是原始功耗数据矩阵。
具体的,将特征向量按照对应特征值大小从上到下按行排列成矩阵,取前k(k≥2)行便形成对应的投影矩阵。将投影矩阵与原始数据矩阵相乘便得到降维后的数据矩阵。
可选的,所述根据所述预处理后的功耗数据训练集使用孤立森林模型进行训练,得到所述分类器,包括:
将所述预处理后的功耗数据训练集随机且有交叠地选取t个子样本集;
根据所述t个子样本集建立t棵孤立树,得到所述分类器。
其中,为了更加准确的训练分类器,t选择大于或等于100的正整数。
可选的,所述将所述预处理后的功耗数据测试集输入所述分类器中,得到所述预处理后的功耗数据测试集的异常得分,包括:
计算所述预处理后的功耗数据测试集中的每一个样本在所述t棵孤立树中每棵孤立树上的路径长度;
根据所述路径长度计算得到所述预处理后的功耗数据测试集的异常得分。
可选的,所述根据所述预处理后的功耗数据测试集的异常得分,采用K-means聚类算法计算得到所述分类阈值,包括:
根据所述K-means聚类算法将所述预处理后的功耗数据测试集的异常得分分为两个簇族;
计算所述两个簇族的聚类中心的距离;
根据所述两个簇族包含的功耗数据样本个数和所述两个簇族的聚类中心的距离计算得到所述分类阈值。
需要说明的是,当两个簇族中样本数量一致时,则分类阈值为两个聚类中心的中点,若两个簇族中样本数量不一致时,按照数量比例进行选取,例如数量比为3:2时,则为两者连线的3/5处;2:3则为两者连线的2/5处。
可选的,所述对所述功耗数据训练集取均值,得到取均值后的功耗数据训练集,包括:
根据公式:
计算所述功耗数据训练集的均值,得到取均值后的功耗数据训练集;其中,其中nb_tr表示所述功耗数据训练集中样本的个数,nb_tr≥2000,tr.i为训练集中第i个样本。
可选的,所述功耗数据差值累积,包括:
将所述取均值后的功耗数据训练集和所述功耗数据测试集按照预设采样数进行分组;
根据公式:
计算得到所述功耗数据差值累积;其中,nb_sample表示每组的采样数,nb_sample≥10,Dtr.m表示所述取均值后的功耗数据训练集中第m组的累计差,Dte.n表示所述功耗数据测试集中第n组的累计差,nb_trg表示所述取均值后的功耗数据训练集的分组数,其值为nb_tr除以nb_sample,即nb_tr/nb_sample,nb_teg表示所述功耗数据测试集的分组数,其值为nb_te除以nb_sample,即nb_te/nb_sample,nb_te表示所述功耗数据测试集中样本的个数,nb_te≥500。
为了便于理解本申请硬件木马检测方法,以下通过具体实例描述本申请的硬件木马检测方法。
具体的,本发明提出了一种基于孤独森林模型和K-means聚类算法的硬件木马检测方法。该方法有效的解决了由于环境噪声、工艺偏差等影响导致基于侧信道信息的硬件木马检测精度不高的问题,同时本方法还有着成本低,算法易于实现,对标准集成电路依赖性低等优点。
本实施例中选择FPGA作为硬件实现平台,使用的是Xilinx公司的SAKURA-G开发板,此开发板上设置有两块SPARTAN-6系列的FPGA芯片,具体型号分别是XC6SLX75和XC6SLX9,其中XC6SLX75用于实现主集成电路(包含硬件木马集成电路),XC6SLX9用于实现控制电路。
本实施例中使用的主集成电路为AES-128加密电路,高级加密标准(AES)是最为常见的一种对称加密算法,主要步骤包括:轮密相加、字节代换、行移位、列混合等。后面的数字128是指其密钥的长度为128位。
本实施例中使用的硬件木马电路被称为T100,其原理基于码多分址(CDMA)理论。首先,CDMA列是由伪随机数生成器(PRNG)生成的,随后,通过异或调制将生成的代码序列更改为秘密信息位,最后,通过将调制后的序列将转发到泄漏电路(LC)以在功率侧信道中建立隐蔽的CDMA信道以窃取密码电路的密钥。此硬件木马占AES-128电路面积约为1.1%。
本申请的硬件木马检测方法具体如下:
步骤一,功耗数据采集与分组。
将不含硬件木马的AES-128电路和含硬件木马的AES-128电路分别使用SAKURA-G实现,通过电脑对SAKURA-G进行操作使其开始加密,随后将SAKURA-G的功耗采集口连接至示波器,通过示波器可观测加密过程中的功耗波形并完成功耗信息采集工作,提取功耗信息后,按照一定比例将数据分为训练集和测试集。本实例共采集功耗信息10000条,每条有10000个采样点,同时设置训练集和测试集的比例为4:1,即训练集功耗信息8000条,测试集功耗信息2000条。由于需要设置不含硬件木马的集成电路功耗数据占功耗数据集中的大多数,所以在训练集中,仅有400条功耗信息是来自含硬件木马的AES-128电路。
步骤二,功耗数据的预处理。
步骤2.1、功耗数据训练集取均值。
对训练集数据采用取均值的方式减小来自噪声的影响,所得的均值曲线可近似为无噪声影响的功耗信息,其计算如下:
其中,公式中各元素含义已在上一部分描述,具体请参见上一部分的内容,以下公式同理。
步骤2.2、功耗数据差值累计。
将功耗数据集(包含功耗数据训练集和功耗数据测试集)按照预设采样数进行分组,随后将所有分组中的每一条功耗曲线与均值曲线做差并求和,以此放大来自硬件木马对功耗数据产生的影响,其具体计算公式如下所示。本实施例中每组样本数量为20,结果得到大小为400×1000的训练集矩阵和大小为100×10000测试集数据;
步骤2.3、功耗数据主成分分析。
使用主成分分析对得到的累计差矩阵进行降维,进一步放大来自硬件木马对功耗产生的影响。
具体操作为:首先对功耗数据集(维度:10000)进行中心化操作,即将每一个数据特征减去所有特征的均值;接下来,计算处理后数据的协方差矩阵,并计算矩阵的特征值和特征向量;获得所有特征值后,将它们从大到小排序,然后选择前2个特征值及其对应的特征向量,以生成特征向量矩阵。最后,将原始数据投影到特征向量矩阵上即可获得降维数据。本实施例中,经过PCA处理后的主成分训练集矩阵大小为400×2,主成分测试集矩阵大小为100×2,具体计算公式如下:
(PCtr,PCte)=PCA(Dtr,Dte);
步骤三,根据预处理后的功耗数据集生成孤立森林模型分类器并计算异常得分。
本实施例中,孤立森林模型由100颗孤立树组成。对于给定的功耗数据训练集PCtr={PCtr.1,PCtr.2,…,PCtr.400},PCtr.i∈R2,一颗孤立树生成的具体步骤为
(1)从功耗数据训练集中随机选取由256个功耗数据组成的子数据集
(2)随机选择某一特征其中Q={q1,q2};
其中,在降维处理后只有两维,每一个维度具有一个代表特征,q1代表第一个特征,q2代表第二个特征,Q为特征集合。
(3)随机选择一个分割值p,该值的大小在所选特征的最小值和最大值之间;
(4)对于PCtr′中的每一个数据进行分类,如果数据特征值小于p,则将其放入左子节点,否则放入右子节点;
(5)递归步骤(2)到(4),直至所有子节点满足以下条件之一:
子节点中只有一个样本点;其中,所述样本点是指功耗数据,前面得到的PCA处理后的主成分训练集矩阵400*2的矩阵可以理解为训练集有400个样本点,每个样本点包含2个特征,每个特征分别有自己的取值,即特征值。
孤立树已经达到指定高度;
子节点中所有样本点都具有相同的特征值。
在生成孤立森林模型后,计算功耗数据测试集中每个样本的异常得分,其具体步骤为:
(1)计算功耗数据测试集PCte.j在每个孤立树上的路径长度(PCte.j),计算公式如下所示:
(PCte.j)=e+C(T.size)
其中,e表示PCte.j从孤立树的根节点到叶节点所经过的边数,C(T.size)为修正值,表示用T个样本数据构造二叉树的平均路径长度。其具体计算公式为:
c(T.size)=2H(T.size-1)-(2(T.size-1)/T.size)
其中H(T.size)≈In(T.size)+0.5772156649,0.5772156649为欧拉常数。
(2)根据所得到的路径长度,计算异常得分,其计算公式为:
其中,E(h(PCte.j))为平均路径长度,L为功耗数据测试集的样本大小,在本实施例中取L=100。一般来说,来自异常样本(即含硬件木马的集成电路的功耗数据)的路径长度会较短,所以异常得分会比正常样本高,根据此便可以分辨出集成电路中是否含有硬件木马。
步骤四,使用K-means聚类算法计算分类阈值并完成木马检测。
使用K-means聚类算法可以实现分类阈值动态变化,根据不同情况确定阈值,本实施例中的具体算法如下:
一般来说,来自异常样本(即含硬件木马的集成电路的功耗数据)的路径长度会较短,所以异常得分会比正常样本高,根据此便可以分辨出集成电路中是否含有硬件木马。所以根据所得的分类阈值sth,若si≥sth则可以判断第i个样本来自于含硬件木马的集成电路,反之可判断此样本来自正常集成电路。
此外,本实施例还通过准确率(accuracy)和召回率(recall)作为指标参数,来判断此方法的硬件木马的检测性能,两者的计算公式分别为:
其中真阳性(TP)是正确预测含硬件木马集成电路的样本个数;假阳性(FP)是错误预测含硬件木马集成电路的样本个数;假阴性(FN)是错误预测不含硬件木马集成电路的样本个数;真阴性(TN)是正确预测不含硬件木马集成电路的数量。
本实施例中的检测结果如图3所示,为本申请实施例提供的检测结果示意图。其中,星点代表测试集中实际含硬件木马的AES电路,而小圆圈代表测试集中实际的正常AES电路,可以看出所有含硬件木马的样本点起异常得分均较高,符合预期。具体数据而言,本实施例中的分类阈值为0.531,准确率为94%,召回率为100%,说明本发明中提出的方法可以高精度地检测出集成电路中的硬件木马。
综上所述,本申请实施例提供了一种硬件木马检测方法,包括:采集待测集成电路的功耗数据;对所述功耗数据进行预处理,得到预处理后的功耗数据;所述预处理包括功耗数据差值累积和功耗数据主成分分析;将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分;根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。本申请通过对功耗数据进行预处理的方式,减少了环境和工艺噪声的同时,放大了硬件木马对功耗信息的影响,提高了检测准确性,并且,本申请对标准集成电路依赖性低,大幅提高检测方法的适用范围。
实施例二
基于上述本发明实施例公开的硬件木马检测方法,图4具体公开了应用该硬件木马检测方法的硬件木马检测装置。
如图4所示,本发明实施例公开了一种硬件木马检测装置,该装置包括:
采集单元401,用于采集待测集成电路的功耗数据;
处理单元402,用于对所述功耗数据进行预处理,得到预处理后的功耗数据;所述预处理包括功耗数据差值累积和功耗数据主成分分析;
输入单元403,用于将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分;
计算单元404,用于根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;
比较单元405,用于将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。
以上本发明实施例公开的硬件木马检测装置中的数据采集单元401、处理单元402、输入单元403、计算单元404和比较单元404的具体工作过程,可参见本发明上述实施例公开的硬件木马检测方法中的对应内容,这里不再进行赘述。
综上所述,本申请实施例提供了一种硬件木马检测装置,包括:采集待测集成电路的功耗数据;对所述功耗数据进行预处理,得到预处理后的功耗数据;所述预处理包括功耗数据差值累积和功耗数据主成分分析;将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分;根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。本申请通过对功耗数据进行预处理的方式,减少了环境和工艺噪声的同时,放大了硬件木马对功耗信息的影响,提高了检测准确性,并且,本申请对标准集成电路依赖性低,大幅提高检测方法的适用范围。
实施例三
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如实施例一的方法步骤,本实施例在此不再重复赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的方法,也可以通过其它的方式实现。以上所描述的方法实施例仅仅是示意性的。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然本申请所揭露的实施方式如上,但上述的内容只是为了便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属技术领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种硬件木马检测方法,其特征在于,所述方法包括:
采集待测集成电路的功耗数据;
对所述功耗数据进行预处理,得到预处理后的功耗数据;所述预处理包括功耗数据差值累积和功耗数据主成分分析;
将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分;
根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;
将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。
2.根据权利要求1所述的方法,其特征在于,所述分类器的获取过程,包括:
获取不含硬件木马的集成电路的功耗数据和包含硬件木马的集成电路的功耗数据,得到功耗数据集;
将所述功耗数据集按照预设比例分成功耗数据训练集和功耗数据测试集;
对所述功耗数据训练集取均值,得到取均值后的功耗数据训练集;
将所述取均值后的功耗数据训练集和所述功耗数据测试集进行预处理,得到预处理后的功耗数据训练集和预处理后的功耗数据测试集;所述预处理包括功耗数据差值累积和功耗数据主成分分析;
根据所述预处理后的功耗数据训练集使用孤立森林模型进行训练,得到所述分类器。
3.根据权利要求1所述的方法,其特征在于,所述功耗数据主成分分析,包括:
根据公式:
xc.i=xi-μi(i=1,2,…,m)
对所述功耗数据进行去中心化处理,得到去中心化后的功耗数据;其中,xi为第i个特征的功耗数据向量,μi为第i个特征的功耗数据均值,xc.i为第i个特征的去中心化功耗数据向量,m为特征个数;
根据公式:
计算所述去中心化后的功耗数据的协方差矩阵;其中,Xc为去中心化的功耗数据矩阵;
根据公式:
PTCP=Λ
计算所述协方差矩阵的特征值和特征向量;其中,P是C的特征向量矩阵,Λ是特征值矩阵;
根据所述特征向量和特征值生成功耗数据投影矩阵;
根据公式:
Y=X×P′
计算得到降维后的功耗数据矩阵,其中,P′是投影矩阵,X(X={x1,x2,x3…,xm})是原始功耗数据矩阵。
4.根据权利要求2所述的方法,其特征在于,所述根据所述预处理后的功耗数据训练集使用孤立森林模型进行训练,得到所述分类器,包括:
将所述预处理后的功耗数据训练集随机且有交叠地选取t个子样本集;
根据所述t个子样本集建立t棵孤立树,得到所述分类器。
5.根据权利要求4所述的方法,其特征在于,所述将所述预处理后的功耗数据测试集输入所述分类器中,得到所述预处理后的功耗数据测试集的异常得分,包括:
计算所述预处理后的功耗数据测试集中的每一个样本在所述t棵孤立树中每棵孤立树上的路径长度;
根据所述路径长度计算得到所述预处理后的功耗数据测试集的异常得分。
6.根据权利要求2所述的方法,其特征在于,所述根据所述预处理后的功耗数据测试集的异常得分,采用K-means聚类算法计算得到所述分类阈值,包括:
根据所述K-means聚类算法将所述预处理后的功耗数据测试集的异常得分分为两个簇族;
计算所述两个簇族的聚类中心的距离;
根据所述两个簇族包含的功耗数据样本个数和所述两个簇族的聚类中心的距离计算得到所述分类阈值。
7.根据权利要求2所述的方法,其特征在于,所述对所述功耗数据训练集取均值,得到取均值后的功耗数据训练集,包括:
根据公式:
计算所述功耗数据训练集的均值,得到取均值后的功耗数据训练集;其中,其中nb_tr表示所述功耗数据训练集中样本的个数,nb_tr≥2000,tr.i为训练集中第i个样本。
8.根据权利要求2所述的方法,其特征在于,所述功耗数据差值累积,包括:
将所述取均值后的功耗数据训练集和所述功耗数据测试集按照预设采样数进行分组;
根据公式:
计算得到所述功耗数据差值累积;其中,nb_sample表示每组的采样数,nb_sample≥10,Dtr.m表示所述取均值后的功耗数据训练集中第m组的累计差,Dte.n表示所述功耗数据测试集中第n组的累计差,nb_trg表示所述取均值后的功耗数据训练集的分组数,其值为nb_tr除以nb_sample,nb_teg表示所述功耗数据测试集的分组数,其值为nb_te除以nb_sample,nb_te表示所述功耗数据测试集中样本的个数,nb_te≥500,Ptr.i表示训练集中第i个样本的值,Pte.j表示测试集中第j个样本的值,Pmean表示功耗数据训练集的均值。
9.一种硬件木马检测装置,其特征在于,所述装置包括:
采集单元,用于采集待测集成电路的功耗数据;
处理单元,用于对所述功耗数据进行预处理,得到预处理后的功耗数据;所述预处理包括功耗数据差值累积和功耗数据主成分分析;
输入单元,用于将所述预处理后的功耗数据输入预先完成训练的分类器中,得到所述预处理后的功耗数据的异常得分;
计算单元,用于根据所述预处理后的功耗数据的异常得分,采用K-means聚类算法计算得到所述异常得分的分类阈值;
比较单元,用于将所述预处理后的功耗数据的异常得分与所述分类阈值作比较,若所述预处理后的功耗数据的异常得分大于所述分类阈值,则判定所述待测集成电路中含有硬件木马。
10.一种存储介质,其特征在于,该存储介质存储的计算机程序,可被一个或多个处理器执行,可用来实现如权利要求1~8任意一项所述的硬件木马检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495410.XA CN112464297B (zh) | 2020-12-17 | 2020-12-17 | 硬件木马检测方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495410.XA CN112464297B (zh) | 2020-12-17 | 2020-12-17 | 硬件木马检测方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112464297A CN112464297A (zh) | 2021-03-09 |
CN112464297B true CN112464297B (zh) | 2024-06-04 |
Family
ID=74803176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011495410.XA Active CN112464297B (zh) | 2020-12-17 | 2020-12-17 | 硬件木马检测方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112464297B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11579185B2 (en) * | 2019-07-01 | 2023-02-14 | University Of Florida Research Foundation, Inc. | Maximization of side-channel sensitivity for trojan detection |
CN113553630B (zh) * | 2021-06-15 | 2023-06-23 | 西安电子科技大学 | 基于无监督学习的硬件木马检测***和信息数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062477A (zh) * | 2017-12-12 | 2018-05-22 | 北京电子科技学院 | 基于侧信道分析的硬件木马检测方法 |
CN108898034A (zh) * | 2018-06-27 | 2018-11-27 | 天津大学 | 基于分治算法的硬件木马侧信道检测方法 |
CN109948374A (zh) * | 2019-03-14 | 2019-06-28 | 中国科学院微电子研究所 | 一种硬件木马的检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9606167B2 (en) * | 2011-08-03 | 2017-03-28 | President And Fellows Of Harvard College | System and method for detecting integrated circuit anomalies |
-
2020
- 2020-12-17 CN CN202011495410.XA patent/CN112464297B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062477A (zh) * | 2017-12-12 | 2018-05-22 | 北京电子科技学院 | 基于侧信道分析的硬件木马检测方法 |
CN108898034A (zh) * | 2018-06-27 | 2018-11-27 | 天津大学 | 基于分治算法的硬件木马侧信道检测方法 |
CN109948374A (zh) * | 2019-03-14 | 2019-06-28 | 中国科学院微电子研究所 | 一种硬件木马的检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112464297A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491914B (zh) | 基于不平衡学习策略高影响缺陷报告预测方法 | |
CN112464297B (zh) | 硬件木马检测方法、装置及存储介质 | |
US11003754B2 (en) | Method and apparatus for user authentication based on feature information | |
CN112837069B (zh) | 基于区块链与大数据的安全支付方法及云平台*** | |
CN111753290B (zh) | 软件类型的检测方法及相关设备 | |
CN105718795B (zh) | Linux下基于特征码的恶意代码取证方法及*** | |
CN110414277B (zh) | 基于多特征参数的门级硬件木马检测方法 | |
Salazar et al. | Surrogate techniques for testing fraud detection algorithms in credit card operations | |
CN109145030B (zh) | 一种异常数据访问的检测方法和装置 | |
CN112632609B (zh) | 异常检测方法、装置、电子设备及存储介质 | |
CN112866292B (zh) | 一种面向多样本组合攻击的攻击行为预测方法和装置 | |
CN110855635B (zh) | Url识别方法、装置及数据处理设备 | |
US11977633B2 (en) | Augmented machine learning malware detection based on static and dynamic analysis | |
CN117992953A (zh) | 基于操作行为跟踪的异常用户行为识别方法 | |
CN113420777A (zh) | 异常日志检测方法、装置存储介质及设备 | |
Ghan et al. | Clustering and pattern matching for an automatic hotspot classification and detection system | |
CN110808947B (zh) | 一种自动化的脆弱性量化评估方法及*** | |
CN106936561B (zh) | 一种侧信道攻击防护能力评估方法和*** | |
CN116383814A (zh) | 一种神经网络模型后门检测方法和*** | |
CN113886765B (zh) | 错误数据注入攻击的检测方法及装置 | |
CN114510720A (zh) | 一种基于特征融合和NLP技术的Android恶意软件分类方法 | |
CN111309584A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115134153A (zh) | 安全评估方法、装置和模型训练方法、装置 | |
CN108563950B (zh) | 基于SVM的Android恶意软件检测方法 | |
KR101907443B1 (ko) | 구성 요소 기반 악성 파일 유사성 분석 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |