本发明专利技术属于集成电路设计领域的芯片安全防护领域,具体涉及一种采用深度学习网络对隐藏的芯片硬件木马进行全时检测的方法,采用以下步骤:首先利用深度学习神经网络对芯片在执行各种指令集组合而成的程序时产生的功耗分布曲线,进行深度学习,使之能够区分出硬件木马是否在运行;其次,将经过训练后的深度学习神经网络对芯片运行时的功耗进行实时监测,当硬件木马在运行时产生异常的功耗时,向系统报警。本发明专利技术的有益效果,在不破坏芯片的情况下来对芯片进行实时监控,及时发现被隐藏或激活的硬件木马,起到保护和隔离的效果,从而起到保护敏感信息和系统安全的目的。
【技术实现步骤摘要】
对硬件木马进行实时监控和检测的方法
本专利技术涉及一种采用深度学习网络对隐藏的芯片硬件木马进行全时检测的方法,属于集成电路设计领域的芯片安全防护领域。
技术介绍
近年来随着斯诺登事件的发生,各国对信息安全越来越重视。通常人们对软件的安全已经有了比较清楚的认识并有相应的技术手段来对付软件相关的安全问题。比如防病毒软件,专门用来对软件病毒进行防护。由于软件可以通过反汇编等技术手段来分析软件的源代码,从而发现影藏在软件源代码中的木马程序。但是我们通常对于芯片中硬件木马电路则是无能为力,随着芯片的集成度越来越高,一个普通的SOC芯片集成了上百万乃至上亿的晶体管,因此我们基本上不可能通过全面分析芯片中的硬件电路,比如像分析软件源代码那样精准地定位和分析出硬件木马电路,但是芯片中的硬件木马,它的破坏力往往更为巨大,有可能导致整个系统运行瘫痪,甚至被远程操控。除非我们能及时发现硬件木马的运行,否则很难发现潜伏的硬件木马,并对之进行防范和隔离。一旦有需要,黑客可以通过远程激活芯片中的硬件木马从而实现不可告人的目的。为此急需要找到一种高效的方法,在不破坏芯片的情况下来对芯片进行高效实时监控,及时发现被激活的硬件木马,从而起到保护敏感信息和系统的目的。
技术实现思路
为了实时监控芯片,及时发现被正在运行或激活的木马程序,本专利技术提供了一种采用深度学习神经网络对硬件木马进行实时监控和检测的方法,从而起到保护和隔离的效果。本专利技术是通过以下措施来实现的本专利技术公开了一种采用深度学习神经网络对硬件木马进行实时监控和检测的方法,其特征在于采用以下步骤:首先利用深度学习神经网络对芯片在执行各种指令集组合而成的程序时,产生的功耗分布曲线,作为输入数据,对深度学习神经网络进行训练和测试,使之能区分硬件木马在运行前后芯片运行时的功耗变化,使之能够区分出硬件木马是否在运行;其次,将经过训练后的深度学习神经网络对芯片运行时的功耗进行实时监测,当硬件木马在运行时产生异常的功耗时,向系统报警。因为硬件木马只有在有需要或者满足一定条件下才会激活,硬件木马在没有激活时芯片的各种指令组合程序运行时的功耗分布曲线和有硬件木马运行时的功耗曲线一定会有差异,我们通过对深度学习网络进行训练,使之能够区分出硬件木马是否在运行。上述的实时监控和检测的方法,所述的芯片为SOC芯片,包括:用来给SOC芯片工作提供所需的电源管理模块、用来下载SOC芯片运行软件程序并对程序进行调试的编程/调试接口,用于控制和管理SOC芯片运行的中央处理器MCU核;所述的芯片运行时的功耗是指SOC芯片正常工作时,所需电源输入到电源管理模块的电压和电流的积。上述的实时监控和检测的方法,所述深度学习神经网络由一层输入层、一层以上的隐藏层和一层输出层组成。上述的实时监控和检测的方法,所述深度学习神经网络对SOC芯片功耗输入的图像进行训练方法是通过检测SOC芯片的各种不同指令集组合运行时形成的功耗分布图作为训练数据集和测试数据集进行深度学习网络的训练和测试的,指令集形成10万到100万的指令组合。上述的实时监控和检测的方法,所述深度学习神经网络经过训练和测试后其应用中的推算精度为95%以上,即其检测硬件木马是否在运行的准确率为95%以上。本专利技术的有益效果,即采用深度学习神经网络对硬件木马进行实时监控和检测的方法,在不破坏芯片的情况下来对芯片进行实时监控,及时发现被隐藏或激活的木马程序,起到保护和隔离的效果,从而起到保护敏感信息和系统的目的。附图说明。图1是SOC芯片系统框图图2是深度学习神经网络的结构图图3是深度学习网络硬件木马监测系统图图4是深度学习网络硬件木马监测流程图。具体实施方式下面结合附图1-4对本专利技术做具体的说明。根据图1所示SOC芯片系统框图,通常SOC芯片由如下组成部分。包括电源管理模块用来给SOC芯片工作提供所需的电源;编程和调试接口用来下载SOC芯片运行程序并对程序进行调试;MCU核即SOC芯片的中央处理器。图2是深度学习神经网络的结构图。深度学习网络通常由输入层,隐藏层和输出层来组成。通常输入层和输出层都只有各一层。隐藏层可以有多层,隐藏层的层次由输出层的输出结果分类精度来决定,如果精度没有达到预期,可以适当来增加隐藏层的层数,从而提高分类精度。图3是利用深度学习网络对SOC芯片功耗输入的图像进行训练,测试和实时监控。深度学习网络训练,测试和监控的对象是SOC芯片运行时的功耗分布曲线。而SOC芯片运行时的功耗产生是通过运行SOC芯片的指令集。通过典型指令的分类和不同组合可以形成多达20万到200万条的指令组合,从而产生两组10万到100万的不同功耗分布图,其中一组用来训练,另外一组用来测试。10万到100万的数据可以根据不同的硬件木马、不同的指令集以及采用不同类型的深度神经网络,这些因素的共同作用下获得的分类结果精度来选取训练和测试数据集的大小。图4是深度学习网络硬件木马监测流程图。首先用训练好的深度学习神经网络对SOC芯片运行时的功耗分布图进行实时监控,一旦有硬件木马通过远程激活而开始运行,必然导致细微的功耗分布发生变化,这种变化对训练好的深度神经网络来说能够以比较高的精确度被分辨出来,从而发现硬件木马的启动和运行。深度学习网络对硬件木马的监测只有两种输出,即用于硬件木马监测的深度学习神经网络是一个二分类网络,即要么有硬件木马在运行,要么没有硬件木马在运行,后者表明了芯片当前运行是安全的。表1是SOC芯片训练和测试深度学习网络的指令集。SOC芯片指令集,不管是8位,16位,32位还是64位,通常都可以分为以下几种,即数据传输,算术运算,逻辑运算,串指令,程序转移,伪指令和控制指令。这些指令可以进行不同的组合,SOC芯片运行这些不同指令的组合就能形成有效的训练和测试数据集,从而对深度学习神经网络进行有效地训练并测试训练的效果直到达到很高的精度,从而实现监控硬件木马的目的。首先根据表格1中的任意SOC芯片指令集分类情况,对指令进行随机组合组成两组10万个至100万个指令组合而成的执行程序,执行程序的数量取决于SOC芯片的类型,硬件木马的类型和深度学习神经网络的类型,这三者的结合决定了经过训练和测试后的神经网络对硬件木马监测的精度,如果发现硬件木马的精度不够,则增加用来训练和测试的指令集组成的训练和测试程序来提高硬件木马的检测精度。根据图3所示,给SOC芯片正常工作提供所需电源输入到SOC的电源管理模块,同时在供电电源上连接电压表V1和电流表I1;同时从SOC的编程和调试接口输入根据表1指令集组合而成的训练指令集程序和测试指令集程序I0。其次,执行每个训练指令集程序,实时监测芯片运行时的功耗P=V1*I1,每个训练或测试程序都对应一个功耗分布曲线图,作为深度学习神经网络的训练和测试数据。可以选择合适的深度神经网络的结构和层数,取决于训练后的精度是否达到监测硬件木马的精度,如果精度不够可以增加网络的层数或选择其他结构的深度学习网络,直至精度达到要求为止(比如大于95%),深度学习神经网络可以用现场可编程芯片FPGA来实现。通过10万-100万条功耗曲线分布图来确定深度学习神经网络的参数,训练过程中,会将图2所示的合适的深度学习神经网络的每一层参数或权重都确定好,包括输入层,隐含层本文档来自技高网...
【技术保护点】
1.一种采用深度学习神经网络对硬件木马进行实时监控和检测的方法,其特征在于采用以下步骤:首先利用深度学习神经网络对芯片在执行各种指令集组合而成的程序时,产生的功耗分布曲线,作为输入数据,对深度学习神经网络进行训练和测试,使之能区分硬件木马在运行前后芯片运行时的功耗变化,使之能够区分出硬件木马是否在运行;其次,将经过训练后的深度学习神经网络对芯片运行时的功耗进行实时监测,当硬件木马在运行时产生异常的功耗时,向系统报警。
【技术特征摘要】
1.一种采用深度学习神经网络对硬件木马进行实时监控和检测的方法,其特征在于采用以下步骤:首先利用深度学习神经网络对芯片在执行各种指令集组合而成的程序时,产生的功耗分布曲线,作为输入数据,对深度学习神经网络进行训练和测试,使之能区分硬件木马在运行前后芯片运行时的功耗变化,使之能够区分出硬件木马是否在运行;其次,将经过训练后的深度学习神经网络对芯片运行时的功耗进行实时监测,当硬件木马在运行时产生异常的功耗时,向系统报警。2.根据权利要求1所述的实时监控和检测的方法,其特征在于:所述的芯片为SOC芯片,包括:用来给SOC芯片工作提供所需的电源管理模块、用来下载SOC芯片运行软件程序并对程序进行调试的编程/调试接口、用于控制和管理SOC芯片运...
【专利技术属性】
技术研发人员:王明宇,
申请(专利权)人:复旦大学,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。