基于环形振荡器网络的局部测试向量生成与优化方法与流程

文档序号:12456203阅读:404来源:国知局
基于环形振荡器网络的局部测试向量生成与优化方法与流程

本发明涉及集成电路可信任性检测技术领域,具体涉及一种基于环形振荡器网络的局部测试向量生成与优化方法。



背景技术:

随着电子设计自动化技术和半导体制造工艺的飞速发展,单个集成电路芯片集成的晶体管数目越来越多,其功能越来越强大,从而集成电路芯片广泛的应用于现代科技的各个领域,特别在金融设备,移动通信,交通运输,政府和能源等敏感领域,集成电路对社会的进步和经济的发展起着越来越大的推动作用。

在商业全球化的今天,为了缩减集成电路的设计周期、减少制造成本,集成电路的设计与制造逐渐分离,集成电路芯片的设计与制造逐渐趋于全球化。在设计环节,随着芯片的集成度越来越高、功能越来越复杂、电路规模越来越大,芯片设计者为了降低芯片成本、缩短芯片上市时间,各类IP(Intellectual Property)得到广泛应用,而大部分IP核均由第三方提供,因为芯片设计者对外来IP核不完全自主可控,从而导致安全隐患,例如密码芯片的设计中内嵌恶意木马电路,将会导致芯片密码外泄。在制造环节,一般设计者完成版图设计后,首先由掩膜版(mask)厂家完成生产工艺所需要的几十块掩膜版的制作,再由芯片制造厂(foundry)完成加工。在掩膜制作和芯片制造中,攻击者可能会利用版图中存在的空余空间恶意植入木马电路或者对芯片的功能进行修改和增加,实现对芯片信息窃取和控制。

硬件木马可能存在于集成电路全生命周期的各个阶段,硬件木马问题正在成为集成电路的重要安全隐患,一旦被硬件木马影响的芯片被广泛应用于军用装备及国民经济核心领域中,将会带来巨大的安全隐患。研究有效的硬件木马检测技术,不仅关系到个人隐私、商业秘密的安全,更关系到航空航天、国防等与国家安全直接相关的领域的信息安全。关于硬件木马的检测技术已经获得了较为丰富的研究,主要包括基于失效分析、逻辑测试以及旁路信号分析等检测方法。1)失效分析是一种破坏性分析方法,它应用成熟的失效分析技术,去除芯片封装,研磨芯片的芯片层,借助于精密仪器(扫描光学显微镜(SOM)、扫描电子显微镜(SEM)等),反复扫描每一层电路,重构待测芯片电路信息,并将该待测芯片与原始芯片进行比较,判断电路是否被篡改。该方法只能用于抽样检查,在实际测试过程中不能遍历测试每一块芯片,因此该方法只能用于验证待测芯片的安全性,另外该方法测试成本偏高,尤其是超大规模集成电路,往往无能无力。2)逻辑测试是传统的集成电路功能测试方法,利用在输入端口施加测试激励向量,通过观察电路的输出响应信号与预期响应信号之间的差异,从而判断硬件电路是否存在缺陷。该方法可以有效的检测出小面积的硬件木马,且不受工艺噪声、测量噪声和环境噪声的影响,但是对于激活条件难以满足、有效载荷是隐性的硬件木马检测精度却大大降低。3)旁路信号分析是是目前使用较多的检测方法,主要是通过检测分析电路中的旁路信号,通过对比待测电路和原始电路之间的差异,来判断待测电路中是否含存在木马。旁路信号分析具有较低的实施成本、较高的检测精度,较好的移植性和延展性,一经提出就展示出来了较为乐观的应用前景,成为了当前的检测方法的主流。由于器件和芯片间都存在工艺偏差,测量过程易受到环境噪声的影响,测量设备的严苛精度要求严重限制该方法的检测效率和普适性。

目前最为有效的方法是结合逻辑测试和旁路信号分析的优点,利用逻辑测试方法生成优化的测试向量,最大程度的激活硬件木马,提高木马与整体旁路信号的信噪比,采集待测电路在工作状态下的旁路信号,利用统计分析方法降低工艺噪声和环境噪声的影响,识别旁路信号之间的特征差异,从而提高硬件木马的检测效率。因此,优化的测试向量是该方法的关键,目前尚罕见成熟技术报道。

参考文献

[1]Chakraborty R S,Wolff F,Paul S,et al.MERO:A Statistical Approach for Hardware Trojan Detection[M]//Cryptographic Hardware and Embedded Systems-CHES 2009.Springer Berlin Heidelberg,2009:51-57.

[2]Wang X,Salmani H,Tehranipoor M,et al.Hardware Trojan Detection and Isolation Using Current Integration and Localized Current Analysis.[C]//IEEE International Symposium on Defect and Fault Tolerance of Vlsi Systems.IEEE Computer Society,2008:87-95.

[3]Rad R,Plusquellic J,Tehranipoor M.Sensitivity analysis to hardware Trojans using power supply transient signals[C]//IEEE International Workshop on Hardware-Oriented Security and Trust.IEEE,2008:3-7.

[4]Zhang X,Tehranipoor M.RON:An on-chip ring oscillator network for hardware Trojan detection[J].2011:1638-1643.

[5]Ferraiuolo A,Zhang X,Tehranipoor M.Experimental analysis of a ring oscillator network for hardware Trojan detection in a 90nm ASIC[J].2012:37-42.

[6]Lecomte M,Fournier J J A,Maurine P.Thoroughly analyzing the use of ring oscillators for on-chip hardware trojan detection[C]//International Conference on Reconfigurable Computing and Fpgas.IEEE,2015。



技术实现要素:

为克服现有技术的不足,本发明旨在实现有效的增强局部区域的电路活动,进一步的增加硬件木马的活性,在一定程度上提高在工艺噪声的影响下硬件木马影响的信噪比,可结合旁路信号分析方法,大大的提高硬件木马的测试效率。为此,本发明采用的技术方案是,基于环形振荡器网络的局部测试向量生成与优化方法,保持原始版图不变,在版图的空余区间植入局部区域活动性感知单元,生成测试电路,再针对测试电路进行局部测试向量的生成与优化,步骤如下:

步骤一:测试电路的生成:在原始版图的空余空间植入长度优化的区域活动性感知单元,组成活动性感知网络,重新综合生成测试电路,生成比特文件和FLASH文件并下载;

步骤二:局部测试向量生成与优化系统初始化:在虚拟仪器图形化编程软件LabVIEW的前面板上设置待测向量的长度、测试测试向量集的组长、测试向量的文件保存路径、响应的文件保存路径、优化测试向量集的保存路径、计数器的计数值的保存路径和设备名称;

步骤三:随机产生N组测试向量集:LabVIEW软件随机产生一系列测试向量集,根据步骤二的测试向量集的组长的设置,将一系列测试向量集分配成N个测试向量组;

步骤四:区域活动性感知单元选择:选择活动性感知网络中的一个活动性感知单元并使其工作,同时选择该活动性感知单元的输出端作为计数器的输入;

步骤五:当前区域的组内测试:LabVIEW软件调用其VISA函数,通过通用串行总线接口将一组测试向量集施加到可编程逻辑阵列FPGA芯片上,激励待测电路工作,并接收待测电路的响应值,并保存,同时判断组内的测试向量集是否全部施加到待测电路上,如果组内的测试向量集全部施加到待测电路上,则组内测试完毕,返回计数器的当前计数值,并将计数值置零,否则,继续返回步骤五,继续进行组内测试;

步骤六:当前区域的组间测试完成判断:判断步骤二产生全部的测试向量集组是否都施加到测试电路中,如果条件满足,该区域的优化测试向量筛选结束,否则返回步骤五继续进行组间测试。

步骤七:当前区域的优化测试向量的筛选:对所有的测试向量集的对应的计数值进行比较,取最大的计数值和对应的一组测试向量集,即为该区域的优化的测试向量集。

步骤八:所有区域测试完成判断:判断是否所有区域测试完成,如果所有区域测试完成,则优化测试向量筛选结束,否则返回步骤三继续进行测试。

区域活动性感知单元的一个实例采用如下结构,由一个若干级环形振荡器、计数器和定时器组成;定时器用于确定在某一段时间内来操作,利用计数器来对环形振荡器的输出脉冲进行计数;EN为环形振荡器的初始振荡位,与电路的复位端连接,在电路复位后,环形振荡器监测到一个电压扰动,开始振荡,从而驱动计数器开始计数,Clk为芯片的全局时钟,驱动定时器工作,EN_n为组内测试完成标志位,当组内测试完成后,EN_n端拉低,将计数器的当前计数值输出给管脚text_out[0:15],并复位计数器。

本发明的特点及有益效果是:

(1)本发明提出一种局部测试向量生成与优化方法,在设计阶段植入环形振荡器网络,根据实际电路的结构划分区域,可以有效的解决区域覆盖率的问题,另外利用建立的测试系统可以直观有效的筛选出局部电路的优化测试向量,有效降低了优化测试向量生成算法的复杂度,大大提高了自动化测试水平和实际应用能力。

(2)本发明生成的基于区域的优化测试向量,可以结合旁路信号分析方法,可以重点观察局部电路的旁路信号的异常,提高硬件木马的检测效率,实现硬件木马的粗略定位,同时也会大大降低硬件安全验证的测试成本。

附图说明:

图1局部区域活动性感知单元结构。

图2环形振荡器网络在芯片上的拓扑结构。

图3基于环形振荡器网络的局部测试向量生成与优化系统框图。

图4局部测试向量生成与优化系统流程图。

具体实施方式

本发明为了降低优化测试向量的生成效率,生成精简高效的测试向量集,提出一种基于环形振荡器网络的局部测试向量生成系统,可以生成局部区域的优化测试向量,提高局部区域的电路活性,用于硬件木马测试与粗略定位。

对于一个n级的环形振荡器进行分析,如果一个反相器的延迟为td(t,L,VDD),它随着时间t,测试向量L和电源VDD的变化也发生变化,则一个n级环形振荡器的总体延迟为n*td(t,L,VDD),当环形振荡器开始振荡,则振荡周期T如下式1所示。

T=2*n*td(t,L,VDD) (1)

如果在固定的某一段时间K内,计数器的计数值C如下式2所示。

对于一个固定测试向量,反相器的延迟td(t,L,VDD)与测试向量L无关,而与电源的电压变化直接相关,当电源的电压减小,反相器的延迟增大,则由可以用下式3表示,其中α为速度饱和率,ug为载流子的迁移率,kg为门级常数。

然而对于不同的测试向量集L1,L2,反相器的延迟分别为td1(t,L1,VDD1)和td2(t,L2,VDD2),待测电路在L1,L2的激励下,电路的活动性也不尽一致,对应的供应电压分别为VDD1和VDD2,且VDD1≠VDD2,由式3可知,td1(t,L1,VDD1)≠td2(t,L2,VDD2),由式2可知,在测试向量集L1、L2的激励下的计数器的计数值分别为C1和C2,如式4,5可知。

假定测试向量L1比L2激励电路的引起的电路活动性大,即在测试向量L1下电路消耗功率更大,因此VDD1<VDD2,由式3可推断出td1(t,L1,VDD1)>td2(t,L2,VDD2),将此大小关系代入式4,5种,可得C1>C2。因此可得出测试向量越优化,电路的活动性越大,消耗的电压就越大,在单位时间段内的计数器的计数值就越大。

因此本发明利用计数器的计数值来推断区域电路的活动性,计数器的值越大,则区域的活动性就越强,相对应的区域的测试向量就越优化。

集成电路的设计与制造过程中由于掺杂浓度的差异、环境和设备等差异,容易出现片间的工艺偏差,另外在电路正常工作过程中,电路之间存在耦合效应,这些都会环形振荡器产生影响,从而造成震荡频率漂移,为了降低噪声的影响,进一步提高识别效率,需要考虑最短的定时时间。如果定时时间太短,计数器无法判别环形振荡器的频率漂移,从而出现一定的误差。但是如果时间太长,会产生大量的功耗和面积开销,不利于实际的应用。下面我们讨论测试时间与测试效率之间的关系,如式6所示,p为计数值识别差异值,TRO为环形振荡器的周期,n表示环形振荡器的计数个数,TCK为全局时钟的周期,则测试时间如式6所示,ΔTRO为噪声引起的最小的时间漂移。

K=n*TCK (7)

本发明的完整技术路线如下:

图1为局部区域活动性感知单元结构,它由一个5级环形振荡器、计数器counter和定时器Timer组成。定时器用于确定在某一段时间内进行操作,利用计数器来对环形振荡器的输出脉冲进行计数。EN为环形振荡器的初始振荡位,一般与电路的复位端连接,在电路复位后,环形振荡器监测到一个电压扰动,开始振荡,从而驱动计数器开始计数。Clk为芯片的全局时钟,驱动定时器Timer工作。EN_n为组内测试完成标志位,当组内测试完成后,EN_n端拉低,将计数器counter的当前计数值输出给text_out[0:15],并复位计数器。

图2为环形振荡器网络在芯片上的拓扑结构,根据原始电路的版图设计,合理划分电路区域,保持原始版图不变,在版图的空余区间植入局部区域活动性感知单元,组成活动性感知网络,综合并优化电路结构,生成待测电路。其中RO1,RO2,RO3,RO4,RO5,RO6为5级环形振荡器组成的活动性感知单元,MUX1为选择器,根据输入端EN的值的大小对区域活动性感知单元进行选择,EN1,EN2,EN3,EN4,EN5,EN6为环形振荡器的初始振荡位。OUT1,OUT2,OUT3,OUT4,OUT5,OUT6为环形振荡器的输出端,输出端经过选择器MUX2选择输出。MUX2的选择端与MUX1的选择端相连,实现同一个时间段内对活动性感知网络中的某个环形振荡器的控制选择与输出。定时器Timer用于确定在某一段时间内进行操作,利用计数器couner计数器来对环形振荡器的输出脉冲进行计数,计数值通过text_out[0:15]输出。

图3为基于环形振荡器网络的局部测试向量生成与优化系统框图,它是由PC机和SAKURA-G开发板两部分组成。各部分的详细说明如下:

(1)PC机:PC机为普通的电脑,电脑必须安装以下软件:ISE(集成软件环境)软件、装有VISA(Virtual Instruments Software Architecture虚拟仪器软件体系结构)函数的NI Labview软件和NI-VISA Driver Wizard(NI-VISA驱动向导)。ISE软件用于综合、编译代码,生成可下载到FPGA内部的比特(bit)文件和FLASH(闪存)内部的文件并通过JTAG口烧录。利用Labview软件开发上位机软件,通过USB接口实现PC与FPGA之间的通信,发送测试向量并接收环形振荡器网络的计数值,比较测试向量集之间计数值的大小实现各区域之间优化测试向量的生成与优化。NI-VISA Driver Wizard是为实现LabVIEW与USB设备直接通信,利用NI-VISA生成VISA驱动,从而电脑和LabVIEW软件可以正确识别的USB设备。

(2)SAKURA-G开发板:包括两块FPGA芯片,一块是控制FPGA,实现PC机与主FPGA数据的过渡,一块是主FPGA,用于模拟ASIC环境。USB接口用于PC与开发板之间的数据通信,JTAG接口用于FPGA芯片的编程,I/O口用于环形振荡器网络的选择使能。

图4为局部测试向量生成与优化系统流程图,该方法主要包括以下几个步骤:

步骤一:测试电路的生成:在原始版图的空余空间植入长度优化的区域活动性感知单元,组成活动性感知网络,重新综合生成测试电路,生成比特文件和FLASH文件并下载;

步骤二:局部测试向量生成与优化系统初始化:在虚拟仪器图形化编程软件LabVIEW的前面板上设置待测向量的长度、测试测试向量集的组长、测试向量的文件保存路径、响应的文件保存路径、优化测试向量集的保存路径、计数器的计数值的保存路径和设备名称等;

步骤三:随机产生N组测试向量集:LabVIEW软件随机产生一系列测试向量集,根据步骤二的测试向量集的组长的设置,将一系列测试向量集分配成N个测试向量组。

步骤四:区域活动性感知单元选择:选择活动性感知网络中的一个活动性感知单元并使其工作,同时选择该活动性感知单元的输出端作为计数器的输入。

步骤五:当前区域的组内测试:LabVIEW软件调用其VISA函数,通过通用串行总线接口将一组测试向量集施加到可编程逻辑阵列FPGA芯片上,激励待测电路工作,并接收待测电路的响应值,并保存,同时判断组内的测试向量集是否全部施加到待测电路上,如果组内的测试向量集全部施加到待测电路上,则组内测试完毕,返回计数器的当前计数值,并将计数值置零,否则,继续返回步骤五,继续进行组内测试;

步骤六:当前区域的组间测试完成判断:判断步骤二产生全部的测试向量集组是否都施加到测试电路中,如果条件满足,该区域的优化测试向量筛选结束,否则返回步骤五继续进行组间测试。

步骤七:当前区域的优化测试向量的筛选:对所有的测试向量集的对应的计数值进行比较,取最大的计数值和对应的一组测试向量集,即为该区域的优化的测试向量集。

步骤八:所有区域测试完成判断:判断是否所有区域测试完成,如果所有区域测试完成,则优化测试向量筛选结束,否则返回步骤三继续进行测试。

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