一种芯片安全性评估方法及装置与流程

文档序号:18941892发布日期:2019-10-23 01:13阅读:350来源:国知局
一种芯片安全性评估方法及装置与流程

本发明涉及芯片信息安全技术领域,尤其涉及一种芯片安全性评估方法及装置。



背景技术:

随着计算机、网络、通讯和集成电路技术的快速发展,以及社会信息化的大势所趋,芯片在各种环境中得到了广泛的应用。但随着信息安全研究的深入,各种旁路攻击手段严重地威胁了芯片的安全特性,一个实际应用的芯片,其硬件部件在运行过程中不可避免要泄露一些信息,而根据泄露信息对芯片进行攻击即为旁路攻击,由此来获取芯片中的敏感信息。为了保证芯片的安全性,通常芯片会在出厂前由生产厂商自身和安全产品检测机构对其旁路安全性进行分析和评估。

目前常用的芯片旁路分析对芯片工作时的功耗泄露曲线或者电磁辐射泄露曲线进行样本采集,然后再借助传统的数理统计方法来分析密钥等敏感信息,但随着安全产品硬件工艺和防护策略的不断提升,目前大多数安全芯片都采用了某些安全防护措施来防护侧信道攻击,比如功耗平滑、随机噪声源等,从而降低了普通方式下采集到的能耗泄露的信噪比,使得上述方式下采集到的波形信噪比很低,从而大多数情况下传统分析方法往往难以全面发现其潜在的安全漏洞。

有鉴于此,业内亟需一种更加全面有效的芯片安全性评估方法来提高实际应用中芯片旁路分析的适用性和准确度。



技术实现要素:

本发明提供了一种芯片安全性评估方法及装置,以解决现有技术中借助传统的数理统计方法来进行芯片旁路分析,所导致的适用性较为局限、准确性较低的技术问题。

为了解决上述技术问题,本发明采用以下技术方案:

本发明提供了一种芯片安全性评估方法,该芯片安全性评估方法包括:

获取待测芯片当前工作时的泄露数据;

根据泄露数据和预设的安全评估模型确定安全评估等级;安全评估模型根据深度学习算法对预设的泄露样本进行训练而得到;

根据安全评估等级判断待测芯片是否泄露敏感数据。

进一步地,泄露数据为多维度泄露数据,多维度泄露数据包括:功耗变化数据、电磁信号数据、指令执行时间数据、差错数据中的至少两种。

进一步地,获取待测芯片当前工作时的泄露数据包括:

获取待测芯片当前工作时的内部走线的泄露数据。

进一步地,在根据泄露数据和预设的安全评估模型确定安全评估等级之前,还包括:

对泄露数据进行预处理;预处理包括:数据去噪处理、数据压缩处理、数据格式转换处理、数据选取处理中的至少一种。

更进一步地,在根据安全评估等级判断待测芯片的敏感数据为泄露时,还包括:

对泄露数据进行分析而确定敏感数据。

本发明提供了一种芯片安全性评估装置,该芯片安全性评估装置包括:数据获取模块、安全评估模块和泄露判断模块;

数据获取模块用于获取待测芯片当前工作时的泄露数据;

安全评估模块用于根据泄露数据和预设的安全评估模型确定安全评估等级;安全评估模型根据深度学习算法对预设的泄露样本进行训练而得到;

泄露判断模块用于根据安全评估等级判断待测芯片是否泄露敏感数据。

进一步地,泄露数据为多维度泄露数据,多维度泄露数据包括:功耗变化数据、电磁信号数据、指令执行时间数据、差错数据中的至少两种。

进一步地,数据获取模块还用于获取待测芯片当前工作时的内部走线的泄露数据。

进一步地,还包括:数据预处理模块;

数据预处理模块用于对泄露数据进行预处理;预处理包括:数据去噪处理、数据压缩处理、数据格式转换处理、数据选取处理中的至少一种。

更进一步地,还包括:数据确定模块;

数据确定模块用于在泄露判断模块根据安全评估等级判断待测芯片的敏感数据为泄露时,对泄露数据进行分析而确定敏感数据。

本发明的有益效果为:

本发明提供了一种芯片安全性评估方法及装置,针对现有技术中借助传统的数理统计方法来进行芯片旁路分析,所导致的适用性较为局限、准确性较低的缺陷,该芯片安全性评估方法包括:获取待测芯片当前工作时的泄露数据;根据泄露数据和预设的安全评估模型确定安全评估等级;安全评估模型根据深度学习算法对预设的泄露样本进行训练而得到;根据安全评估等级判断待测芯片是否泄露敏感数据。通过本发明的实施,将芯片工作时的泄露数据输入到训练后的安全评估模型来获取目标分析对象的安全评估分类标记,再根据安全评估分类标记来对目标分析对象是否泄漏了敏感数据进行预测,尤其适用于对低信噪比的泄露样本、复杂分析对象开展安全性评估,提高了结果的准确性,并能有效降低人力投入。

附图说明

图1为本发明实施例一提供的芯片安全性评估方法的基本流程图;

图2为本发明实施例一提供的获取芯片内部走线的泄露数据的基本流程图;

图3为本发明实施例二提供的芯片安全性评估方法的细化流程图;

图4为本发明实施例三提供的芯片安全性评估装置的结构框图;

图5为本发明实施例三提供的数据获取模块的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明中一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现通过具体实施方式结合附图的方式对本发明做出进一步的诠释说明。

实施例一:

图1为实施例一提供的芯片安全性评估方法的基本流程图,该芯片安全性评估方法具体包括以下步骤:

s101、获取待测芯片当前工作时的泄露数据。

具体的,在实际应用中,芯片在运行时所产生的旁路信号会通过片上供电网络而传导泄露出来,进而可以被外部所检测到,具体所泄露的旁路信号包括:功耗变化数据、电磁信号数据、指令执行时间数据、差错数据等。例如对功耗变化数据的采集的一种常规方式是借助示波器、pc机、通信控制软件及功耗采集电路搭建功耗采集平台,在待测芯片外接一个合适的电阻,再借助示波器采集来外接电阻两端的电压变化曲线,即功耗曲线。

可选的,获取待测芯片当前工作时的泄露数据包括:获取待测芯片当前工作时的内部走线的泄露数据。

图2为本实施例中的获取芯片内部走线的泄露数据的基本流程图,具体包括以下步骤:

s201、识别待测芯片的关键模块和走线,并定位出目标内部走线。

具体的,根据待测芯片的各层特征来识别待测芯片内的关键模块、走线类型及位置,然后确定目标内部走线的位置,通常情况下对功耗变化数据(电流或电压信息)进行采集时,需要通过聚焦离子束进行开孔来露出该内部走线,方便探针搭接进行信号的接触式探测,而若对电磁信号数据(电场或磁场信息)进行采集时,则可以不进行开孔而通过非接触方式来进行探测。优选的,本实施例中的目标内部走线为待测芯片内部的电源支路走线、密码电路信号走线或者其它适当走线。

s202、将探针定位在目标内部走线,并发送指令控制待测芯片执行相应操作。

s203、控制探针实时探测待测芯片目标内部走线的泄露数据。

s204、对探针探测的泄露数据进行采集。

具体的,在待测芯片执行相应操作时,可以选择合适的关键时间点来对探针所获取的内部走线上的泄露数据进行采集。

应当说明的是,目前大多数安全芯片都采用了某些安全防护措施来防护旁路攻击,比如功耗平滑、随机噪声源等,从而降低了普通方式下采集到的能耗泄露的信噪比,使得上述常规方式下所采集到的波形信噪比很低,基于此,本实施例中区别于常规的从芯片外部获取芯片泄露的旁路信号,直接从芯片内部走线来获取泄露的旁路信号,即使对于某些采用低功耗技术及防护措施(尤其是噪声电路)的芯片,也可以提升攻击的精确度和所获泄露曲线的信噪比,并且可以选择性旁路掉某些安全防护措施,实现更加全面的安全性评估,更具有实际可操作性。

可选的,泄露数据为多维度泄露数据,多维度泄露数据包括:功耗变化数据、电磁信号数据、指令执行时间数据、差错数据中的至少两中。

具体的,目前常用的芯片旁路分析只是基于单一的功耗泄露曲线或者电磁辐射泄露曲线来进行样本采集,而为了提高芯片安全性评估的全面性,本实施例则是将多维度泄露数据作为分析对象,多维度泄露数据则至少包括两种泄露数据,例如对功耗变化数据和电磁信号数据同时获取并打包在一起,使得分析对象具有更加充分的信息,相对于分析对象为单一泄露数据时能实现更加全面的安全性评估。

s102、根据泄露数据和预设的安全评估模型确定安全评估等级;安全评估模型根据深度学习算法对预设的泄露样本进行训练而得到。

具体的,本实施例中的安全性评估模型的建立方式包括但不限于以下方式:

首先,准备训练样本s,其中训练样本可以是采集的待测芯片的历史泄露数据而确定的样本,也可以是采集的同类型的其它芯片的泄露数据而确定的样本,当然还可以是事先预置的专家数据,即由工程师经过反复研究后所提供的具有一定科学规律的样本。其中训练样本可以是单一样本,也可以是由多个不同类型样本组成。其中,训练样本s包括特征向量f和对应的分类标记c,特征向量f即芯片工作时的泄露数据,若为多维度泄露数据,则特征向量中则包括多个特征参数;分类标记c则是根据一定的分类标准对各特征向量进行对应分级,在本实施例中则是用于对泄露数据的严重程度进行分级,例如,分为c1、c2等,可以取值c1=1,c2=2等,特征向量f与对应的分类标记c组成一个样本s,可以用下式表示:s=[f,c]。

然后,再通过深度学习算法中的有监督的学习算法,即输入数据有明确的分类标记和输出结果来训练模型,可以采用运算速度较快的logistic回归、adaboost算法等,也可以采用准确度较高的算法,例如现在流行的亚马逊mxnet框架算法等,从而使得本实施例中的安全性评估模型被确立,基于所确立的安全性评估模型,将当前获取到的芯片的泄露数据输入到该模型中,即可输出对应的分类标记,即可表征出当前的安全性评估等级。由于泄露数据与安全评估等级之间的相关性在经过充分训练后可以得到有效总结,从而更加适应于对低信噪比的泄露样本、复杂分析对象开展安全性评估。

可选的,在根据泄露数据和预设的安全评估模型确定安全评估等级之前,还包括:对泄露数据进行预处理;预处理包括:数据去噪处理、数据压缩处理、数据格式转换处理、数据选取处理中的至少一种。

具体的,本实施例中为了进一步提高安全性评估的效率和评估结果的准确度,在将泄露数据输入到安全评估模型之前还会对获取的泄露数据进行预处理,其中,数据去噪处理能够去除数据的基线漂移噪音、工频干扰等,数据压缩处理能够降低泄露数据的数据量,数据格式转换处理能够将获取的泄露数据转换为所期望的数据格式,数据选取处理则是对从获取的泄露数据中只截取出特定数据作为分析对象。

s103、根据安全评估等级判断待测芯片是否泄露敏感数据。

具体的,安全评估等级表征了当前泄露数据对芯片安全性的影响程度,泄露数据的情况的不同对应于不同的芯片安全情况,在一些实施例中,可以将安全评估等级分类为:c1、c2、c3、c4、c5,从c1至c5表征泄露数据对芯片安全性影响程度依次增加,并将c3设置为等级阈值,即c1、c2等级下泄露数据对芯片安全性影响程度还较为轻微,不足以对芯片安全性造成实质影响,即此时泄露的数据并不足以被利用于分析出芯片的敏感数据,芯片的敏感数据包括芯片的密码算法的密钥、芯片当前执行的运算类型等,而c3则为临界点,在这种情况下芯片当前泄露的数据已经可以被尝试分析出敏感数据,即在该等级下泄露数据已经开始威胁芯片的安全性,并且超过该等级阈值,对芯片安全性的威胁逐渐增大。通过深度学习算法来对芯片进行安全性评估,使得最终的芯片是否泄露敏感数据的判断结果的判断精度大大提高,更能代表芯片当前的真实安全状况。

可选的,在根据安全评估等级判断待测芯片的敏感数据为泄露时,还包括:对泄露数据进行分析而确定敏感数据。

具体的,本实施例中在得到芯片是否泄露敏感数据的判断结果后,若当前判断结果为是,则还尝试对具体所泄露的敏感数据进行恢复。对敏感数据的恢复依赖于芯片在运算过程中的泄露曲线与敏感信息如密钥之间的相关性,通常的分组密码算法中,一个长的密钥在实际加密和解密的过程中,会拆分成多个子密钥,例如des实际参与运算的48位密钥,会拆分成8组,每一组6个bits,而128位的aes也类似,128位的密钥会拆分成16组,每组8个bits,和信息异或后参与以后的变换。这一点可以被攻击者所利用,容易遍历6bits或者8bits的子密钥,基于泄露数据进行分析,先获取一部分密钥信息,再逐一遍历分析其余的密钥分组,从而获得整体密钥信息。

本发明提供了一种芯片安全性评估方法,针对现有技术中借助传统的数理统计方法来进行芯片旁路分析,所导致的适用性较为局限、准确性较低的缺陷,该芯片安全性评估方法包括:获取待测芯片当前工作时的泄露数据;根据泄露数据和预设的安全评估模型确定安全评估等级;安全评估模型根据深度学习算法对预设的泄露样本进行训练而得到;根据安全评估等级判断待测芯片是否泄露敏感数据。通过将芯片工作时的泄露数据输入到训练后的安全评估模型来获取目标分析对象的安全评估分类标记,再根据安全评估分类标记来对目标分析对象是否泄漏了敏感数据进行预测,尤其适用于对低信噪比的泄露样本、复杂分析对象开展安全性评估,提高了结果的准确性,并能有效降低人力投入。

实施例二:

图3为本发明实施例二提供的芯片安全性评估方法的细化流程图,具体包括以下步骤:

s301、获取待测芯片当前工作时的内部走线的多维度泄露数据;多维度泄露数据包括:功耗变化数据、电磁信号数据、指令执行时间数据、差错数据中的至少两种。

具体的,本实施例中区别于常规的从芯片外部获取芯片泄露的旁路信号,直接从芯片内部走线来获取泄露的旁路信号,可以提升攻击的精确度和所获泄露曲线的信噪比;并且,本实施例将多维度泄露数据进行采集并作为分析对象,使得分析对象具有更加充分的信息,相对于分析对象为单一泄露数据时能实现更加全面的安全性评估。

s302、对多维度泄露数据进行预处理;预处理包括:数据去噪处理、数据压缩处理、数据格式转换处理、数据选取处理中的至少一种。

具体的,本实施例中为了进一步提高安全性评估的效率和评估结果的准确度,还会对获取的泄露数据进行预处理,然后再将处理后的泄露数据输入到安全评估模型。

s303、根据预处理后的多维度泄露数据和预设的安全评估模型确定安全评估等级;安全评估模型根据深度学习算法对预设的泄露样本进行训练而得到。

具体的,泄露数据与安全评估等级之间的相关性在经过充分训练后可以得到有效总结,从而更加适应于对低信噪比的泄露样本、复杂分析对象开展安全性评估。

s304、根据安全评估等级判断待测芯片是否泄露敏感数据;若是,则执行s305,若否,则执行s301。

通过深度学习算法来对芯片进行安全性评估,使得最终的芯片是否泄露敏感数据的判断结果的判断精度大大提高,更能代表芯片当前的真实安全状况。

s305、对多维度泄露数据进行分析而确定敏感数据。

本发明提供了一种芯片安全性评估方法,该芯片安全性评估方法通过对芯片工作时的多维度泄露数据进行采集,然后对多维度泄露数据进行预处理后输入到训练后的安全评估模型来输出对应的安全评估等级,并根据安全评估等级来对芯片是否泄漏了敏感数据进行预测,在泄露了敏感数据的情况下还对具体的敏感数据进行确定。利用多维度泄露数据作为分析对象来提升安全性评估的全面性,并采用深度学习算法来进行安全性评估,提高了对低信噪比的泄露样本、复杂分析对象进行评估时的适用性和准确性。

实施例三:

本实施例提供了一种芯片安全性评估装置,具体请参见图4,该芯片安全性评估装置包括:数据获取模块41、安全评估模块42和泄露判断模块43;数据获取模块41用于获取待测芯片当前工作时的泄露数据;安全评估模块42用于根据泄露数据和预设的安全评估模型确定安全评估等级;安全评估模型根据深度学习算法对预设的泄露样本进行训练而得到;泄露判断模块43用于根据安全评估等级判断待测芯片是否泄露敏感数据。

具体的,芯片在运行时所产生的旁路信号会通过片上供电网络而传导泄露出来,进而可以被数据获取模块41所检测得到,具体所泄露的旁路信号包括:功耗变化数据、电磁信号数据、指令执行时间数据、差错数据等。

另外,安全评估模块42通过深度学习算法来确定泄露数据对应的安全评估等级。首先,准备训练样本s,其中训练样本可以是采集的待测芯片的历史泄露数据而确定的样本,也可以是采集的同类型的其它芯片的泄露数据而确定的样本,当然还可以是事先预置的专家数据,即由工程师经过反复研究后所提供的具有一定科学规律的样本。其中训练样本可以是单一样本,也可以是由多个不同类型样本组成。其中,训练样本s包括特征向量f和对应的分类标记c,特征向量f即芯片工作时的泄露数据,若为多维度泄露数据,则特征向量中则包括多个特征参数;分类标记c则是根据一定的分类标准对各特征向量进行对应分级,在本实施例中则是用于对泄露数据的严重程度进行分级,特征向量f与对应的分类标记c组成一个样本s,可以用下式表示:s=[f,c]。然后,再通过深度学习算法中的有监督的学习算法,即输入数据有明确的分类标记和输出结果来训练模型,可以采用运算速度较快的logistic回归、adaboost算法等,也可以采用准确度较高的算法,例如现在流行的亚马逊mxnet框架算法等,从而使得本实施例中的安全性评估模型被确立,基于所确立的安全性评估模型,安全评估模块42将当前获取到的芯片的泄露数据输入到该模型中,即可输出对应的分类标记,即可表征出当前的安全性评估等级。由于泄露数据与安全评估等级之间的相关性在经过充分训练后可以得到有效总结,从而更加适应于对低信噪比的泄露样本、复杂分析对象开展安全性评估。

应当说明的是,本实施例中的安全评估等级表征了当前泄露数据对芯片安全性的影响程度,泄露数据的情况的不同对应于不同的芯片安全情况,泄露判断模块43通过安全评估等级来确定泄露数据是否对芯片安全性造成了实质影响,即根据泄露数据是否可以分析出芯片的敏感数据,芯片的敏感数据包括芯片的密码算法的密钥、芯片当前执行的运算类型等。本实施例通过深度学习算法来对芯片进行安全性评估,使得最终的芯片是否泄露敏感数据的判断结果的判断精度大大提高,更能代表芯片当前的真实安全状况。

可选的,泄露数据为多维度泄露数据,多维度泄露数据包括:功耗变化数据、电磁信号数据、指令执行时间数据、差错数据中的至少两种。

具体的,目前常用的芯片旁路分析只是基于单一的功耗泄露曲线或者电磁辐射泄露曲线来进行样本采集,而为了提高芯片安全性评估的全面性,本实施例则是将多维度泄露数据作为分析对象,多维度泄露数据则至少包括两种泄露数据,例如对功耗变化数据和电磁信号数据同时获取并打包在一起,使得分析对象具有更加充分的信息,相对于分析对象为单一泄露数据时能实现更加全面的安全性评估。

可选的,数据获取模块41还用于获取待测芯片当前工作时的内部走线的泄露数据。

如图5所示为本实施例提供的数据获取模块的结构框图,本实施例中的数据获取模块41具体包括:定位子模块411、控制子模块412和采集子模块413。

定位子模块411用于识别待测芯片的关键模块和走线,并定位出目标内部走线;具体的,定位子模块411根据待测芯片的各层特征来识别待测芯片内的关键模块、走线类型及位置,然后确定目标内部走线的位置,通常情况下对功耗变化数据(电流或电压信息)进行采集时,需要通过聚焦离子束进行开孔来露出该内部走线,方便探针搭接进行信号的接触式探测,而若对电磁信号数据(电场或磁场信息)进行采集时,则可以不进行开孔而通过非接触方式来进行探测。优选的,本实施例中的目标内部走线为待测芯片内部的电源支路走线、密码电路信号走线或者其它适当走线。

控制子模块412用于将探针定位在目标内部走线,并发送指令控制待测芯片执行相应操作,以及控制探针实时探测待测芯片目标内部走线的泄露数据。

采集子模块413用于对探针探测的泄露数据进行采集。

本实施例中区别于常规的从芯片外部获取芯片泄露的旁路信号,直接从芯片内部走线来获取泄露的旁路信号,即使对于某些采用低功耗技术及防护措施(尤其是噪声电路)的芯片,也可以提升攻击的精确度和所获泄露曲线的信噪比,并且可以选择性旁路掉某些安全防护措施,实现更加全面的安全性评估,更具有实际可操作性。

可选的,还包括:数据预处理模块;数据预处理模块用于对泄露数据进行预处理;预处理包括:数据去噪处理、数据压缩处理、数据格式转换处理、数据选取处理中的至少一种。

具体的,本实施例中为了进一步提高安全性评估的效率和评估结果的准确度,在将泄露数据输入到安全评估模块之前还会通过数据预处理模块对获取的泄露数据进行预处理,其中,数据去噪处理能够去除数据的基线漂移噪音、工频干扰等,数据压缩处理能够降低泄露数据的数据量,数据格式转换处理能够将获取的泄露数据转换为所期望的数据格式,数据选取处理则是对从获取的泄露数据中只截取出特定数据作为分析对象。

可选的,还包括:数据确定模块;数据确定模块用于在泄露判断模块根据安全评估等级判断待测芯片的敏感数据为泄露时,对泄露数据进行分析而确定敏感数据。

本实施例中在得到芯片是否泄露敏感数据的判断结果后,若当前判断结果为是,则还通过数据确定模块来尝试对具体所泄露的敏感数据进行恢复。对敏感数据的恢复依赖于芯片在运算过程中的泄露曲线与敏感信息如密钥之间的相关性,通常的分组密码算法中,一个长的密钥在实际加密和解密的过程中,会拆分成多个子密钥,例如des实际参与运算的48位密钥,会拆分成8组,每一组6个bits,而128位的aes也类似,128位的密钥会拆分成16组,每组8个bits,和信息异或后参与以后的变换。这一点可以被攻击者所利用,容易遍历6bits或者8bits的子密钥,基于泄露数据进行分析,先获取一部分密钥信息,再逐一遍历分析其余的密钥分组,从而获得整体密钥信息。

本发明提供了一种设芯片安全性评估装置,该芯片安全性评估装置包括:数据获取模块、安全评估模块和泄露判断模块;数据获取模块用于获取待测芯片当前工作时的泄露数据;安全评估模块用于根据泄露数据和预设的安全评估模型确定安全评估等级;安全评估模型根据深度学习算法对预设的泄露样本进行训练而得到;泄露判断模块用于根据安全评估等级判断待测芯片是否泄露敏感数据。通过将芯片工作时的泄露数据输入到训练后的安全评估模型来获取目标分析对象的安全评估分类标记,再根据安全评估分类标记来对目标分析对象是否泄漏了敏感数据进行预测,尤其适用于对低信噪比的泄露样本、复杂分析对象开展安全性评估,提高了结果的准确性,并能有效降低人力投入。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

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