CN106646203B - 防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构 - Google Patents
防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构 Download PDFInfo
- Publication number
- CN106646203B CN106646203B CN201611168906.XA CN201611168906A CN106646203B CN 106646203 B CN106646203 B CN 106646203B CN 201611168906 A CN201611168906 A CN 201611168906A CN 106646203 B CN106646203 B CN 106646203B
- Authority
- CN
- China
- Prior art keywords
- scan chain
- chip
- xor gate
- chain
- key
- 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
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/3167—Testing of combined analog and digital circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31718—Logistic aspects, e.g. binning, selection, sorting of devices under test, tester/handler interaction networks, Test management software, e.g. software for test statistics or test evaluation, yield analysis
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31719—Security aspects, e.g. preventing unauthorised access during test
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,该结构由控制单元(1A),线性反馈移位寄存器(1B),遮蔽链(1C)和异或门集合(1D)构成。该结构是纯数字元器件构成,内嵌在集成电路中,能够混淆集成电路芯片中的扫描链结构,从而测试者拿到的输入激励和输出响应都是经过混淆的,攻击者难以得知真正的测试输入输出以及扫描链结构,达到保护集成电路芯片的目的。本发明所公开的结构可以保护集成电路芯片免受基于扫描链的非破坏芯片式的攻击,防止芯片内部敏感信息泄露,同时其所需要的额外面积和功耗很低,对原有集成电路芯片的设计及测试流程影响很小,不会增加测试时间。
Description
技术领域
本发明涉及一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,更确切的说,是一种适用于防止在供应链中攻击者利用扫描链路攻击集成电路芯片的动态混淆扫描链路结构,属于集成电路芯片知识产权及安全性保护技术领域。
背景技术
集成电路(integrated circuit)是一种微型电子器件或部件。它是经过氧化、光刻、扩散、外延、蒸铝等半导体制造工艺,把构成具有一定功能的电路所需的半导体、电阻、电容等元件及它们之间的连接导线全部集成在一小块硅片上,然后焊接封装在一个管壳内的电子器件;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗、智能化和高可靠性方面迈进了一大步。集成电路具有体积小,重量轻,引出线和焊接点少,寿命长,可靠性高,性能好等优点,同时成本低,便于大规模生产。集成电路按其功能、结构的不同,可以分为模拟集成电路、数字集成电路和数/模混合集成电路三大类。
随着集成电路制造工艺的不断进步,集成电路芯片内部的逻辑单元数目剧增,而集成电路芯片的引脚个数却被大大限制,为了尽可能的测试集成电路,以保证产品质量,在集成电路芯片中通常采用可测试性(DFT,Design for Testability)设计技术。该技术通过在芯片原始设计中插入各种用于提高芯片可测试性的硬件逻辑,使得芯片变得容易测试,从而大幅度降低测试成本。扫描设计是一种当前工业界广泛采用的可测试性设计技术,它可以获得很高的故障覆盖率,实际上已经成为现代芯片设计流程中必不可少的环节。这种设计的基本思想是将待测电路内部的寄存器单元改造为可扫描的寄存器单元(即扫描单元),并分组串接在一起构成扫描链。在测试状态下从测试设备传输过来的测试激励逐拍进入扫描链中的扫描触发器,全部扫描触发器单元填充完毕后电路进入正常功能状态,捕获电路状态值,捕获到的触发器状态值称为测试响应,测试响应将被串行的移出扫描触发器到达芯片引脚,通过和已存储的期望结构进行比较,确定芯片是否包含故障。
通过扫描链,测试者可以快速准确的得到集成电路芯片中每一个寄存器存储的值。因此,通过扫描链,攻击者可以获取芯片中的密钥、芯片的内部结构等信息,或者操控芯片。经过对现有的技术文献进行检索发现,已经有学者利用扫描链成功攻破了现有的多种加密算法新芯片。如2005年D.Mukhopadhyay等人在Asian Test Symposium(亚洲测试会议)发表了“Cryptoscan:A secured scan chain architecture(加密扫描:一种安全的扫描链结构)”,其中提到通过在功能模式下运行集成电路芯片,然后将其切换到测试模式下获得每个寄存器存储的值,来获取流密码加密芯片的密钥。B.Yang等人于2004年在International Test Conference(国际测试会议)上发表的“Scan based side channelattack on dedicated hardware implementations of data encryption standard(针对数据加密标准进行的基于扫描链的测信道攻击)”,展示了利用扫描链攻击专用于数据加密标准(DES)芯片以获取其密钥的方法。D.Hely等人于2004年在International OnlineTesting Symposium(国际线上测试会议)上发表了“Scan design and secure chip(扫描设计和安全芯片)”,其中指出,在已知集成电路芯片某些结构功能的条件下,攻击者可以通过扫描输入非法控制信号来干扰芯片的正常工作。
由于以上所述的基于扫描链的攻击,保证安全的进行扫描测试已经成为设计者和工厂非常关注的问题,许多对策被提了出来。如D.Hely等人于2006年在InternationalOnline Testing Symposium(国际线上测试会议)上发表了“Secure scan techniques:acomparison(安全扫描技术对比)”中提到通过精心设计的测试控制器,当集成电路芯片进入测试模式时,所有的寄存器和存储器中的值会被清零。2009年M.Inoue等人在EuropeanTest Symposium(欧洲测试研讨会)上发表的“Partial scan approach for secretinformation protection(通过部分扫描来保护敏感信息)”,展示了改变扫描链结构,来混淆扫描输入输出向量,保护敏感信息。G.Sengar等人于2007年在IEEE Transactions onComputer-Aided Design of Integrated Circuits and Systems(计算机辅助设计集成电路和系统)上发表了“Secured flipped scan-chain model for crypto-architecture(用于加密结构中的安全触发扫描链)”,其中通过在扫描链中插入反相器来混淆扫描链的结构,防止攻击者得到扫描链的具体结构。但是随着新技术的不断发展,这些方法都存在被攻破的可能性。
目前基于扫描链的攻击有如下几种:
暴力攻击(Brute Force Attack):通过遍历的手段,猜测芯片内部的敏感信息所保存的位置以及值,经过不断尝试从而得到想要的数据。
普通差分攻击(Differential Attack):通过在普通模式下输入不同的测试激励,并运行集成电路芯片一段时间后,切换到测试模式,扫描输出响应数据,比较输出的测试响应,定位关键的触发器位置,来获取某些敏感信息。
仅测试模式下的差分攻击(Test Mode Only Differential Attack):因为某些集成电路芯片在由普通模式切换到测试模式时,会把所有的寄存器和存储器的值都清零,普通差分攻击无法起作用,因此近年有人提出了仅测试模式下的差分攻击。在测试模式下,通过输入全为0和只有一位为1的测试向量,比较测试响应输出,观测值发生变化的寄存器的位置,以此定位某些包含敏感信息的寄存器,进而获取敏感信息,如密钥等。
复位攻击(Resetting Attack):对于某些通过混淆扫描链来保护扫描信息的方法,使用复位攻击,将所有的寄存器值都清零,然后扫描输出,可以初步判断某些混淆方法的结构。
冲刷攻击(Flushing Attack):通过不断向扫描链中扫描输出特定测试向量,如全为1或者全为0,根据扫描输出的值,来判断扫描链是否被混淆以及混淆的方法。
位识别攻击(Bit-Role Identification Attack):某些扫描链保护结构,以扫描链中的一些寄存器作为关键位,只有这些寄存器的值满足一定条件时,才能正常进行扫描测试。位识别攻击就是针对这种保护措施,攻击者根据设计者给出的正确的测试向量,依次改变测试向量中的某一位,若所改变的恰好是关键位的寄存器,则输出的测试响应会发生较大的改变。依据这一方法,可以确定所有的关键位,进而破解对扫描链的保护。
由于大规模集成电路芯片中扫描链的数目可能远多余芯片外部管脚的数目,因此通常会把测试向量和响应进行压缩,节约外部端口的需求。外部扫描输入的测试向量首先经过芯片内部的解压器,将被压缩的测试向量解压到每条扫描链上;每条扫描链的测试响应经过一个压缩器后由外部管脚输出。因为压缩器和解压器对本发明结构的影响可以忽略,因此在本发明中不予以讨论。
一般来说,集成电路综合工具会自动平衡集成电路芯片中扫描链的长度,使得所有扫描链的长度尽可能接近。
线性反馈移位寄存器(Linear feedback shift register,LFSR)是指给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。赋给寄存器的初始值叫做“种子”,因为线性反馈移位寄存器的运算是确定性的,所以,由寄存器所生成的数据流完全决定于寄存器当时或者之前的状态。线性反馈移位寄存器可以用来生成伪随机数。
发明内容
本发明的目的是设计了一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,更确切的说,是一种适用于防止在供应链中攻击者利用扫描链攻击集成电路芯片以获取集成电路芯片的知识产权或者敏感信息的动态混淆扫描链结构。该结构内嵌在集成电路中,能够混淆集成电路芯片中的扫描链结构,从而测试者拿到的输入激励和输出响应都是经过混淆的,攻击者难以得知真正的测试输入输出以及扫描链结构,达到保护集成电路芯片的目的。
本发明所设计的一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,所述的集成电路芯片包含N条扫描链,扫描链1E1、扫描链1E2……扫描链1EX……扫描链1EN,它们共同构成一个扫描链集合{1E1,1E2...1EN},即扫描链集合1E;
所述的动态混淆扫描链结构,其特征在于:
集成电路芯片的动态混淆扫描链结构由控制单元(1A),线性反馈移位寄存器(1B),遮蔽链(1C)和异或门集合(1D)构成。
控制单元(1A)由时钟控制模块(10C)、n比特寄存器(10A)和n比特测试向量计数器(10B)构成,控制单元(1A)对输入集成电路芯片的测试向量数目进行计数,当输入的测试向量的数目达到p组时,就输出一个混淆密钥更新信号给线性反馈移位寄存器(1B)模块,以更改整个混淆结构的混淆密钥。
线性反馈移位寄存器(1B)是一个λ位的线性反馈移位寄存器构成的,该线性反馈移位寄存器由控制单元(1A)输出的混淆密钥更新信号驱动,输出λ位的混淆密钥,此密钥是一0、1构成的序列。
遮蔽链(1C)由若干串联在一起的触发器、两种类型的与门(A类和B类)构成,触发器和A类与门的数目等于扫描链集合(1E)中最长的扫描链的长度,B类与门的数目等于扫描链集合(1E)中扫描链的数目N。遮蔽链(1C)的作用为防止因为复位攻击而泄露混淆密钥,混淆密钥经过遮蔽链(1C)转变为经保护的混淆密钥,输入到扫描链集合(1E)中。当集成电路芯片遭受复位攻击时,经保护的混淆密钥均置零,扫描链集合(1E)未被混淆,攻击者无法得到混淆结构的信息,只有其扫描输入一组测试向量后,混淆结构才正常工作,此时攻击者亦无法得到混淆密钥的信息。
异或门集合(1D)包含M个异或门,即异或门1D1、异或门1D2……异或门1DX、异或门1DX+1……异或门1DM,它们共同构成异或门集合1D={1D1,1D2......1DM},这些异或门分别插入到扫描链集合{1E1,1E2...1EN}中的每条扫描链中,且受到经保护的混淆密钥控制,每位混淆密钥控制一个或者多个异或门,当该位密钥为高电平时,经过受控异或门的信号就会发生翻转,即被混淆,否则不翻转,即不混淆。
其中,时钟控制模块(10C)由一个反相器、一个控制触发器和一个与门构成,扫描控制信号经过反相器输入到控制触发器的数据输入端和与门的一个输入端,控制触发器的输出与与门的另一个输入端相连接,控制触发器的时钟为功能时钟(功能时钟为集成电路芯片处于正常工作状态下所使用的时钟,频率一般高于扫描时钟)。
其中,遮蔽链(1C)的触发器相互串联,每个触发器的输出都与一个A类与门的一个输入端口连接;每个A类与门的另一个端口作为遮蔽链(1C)的输入端口,与线性反馈移位寄存器(1B)的输出端口相连接,成一一对应的关系;第1个触发器的输入端口连接在电源上,即当芯片处于扫描测试状态下,且有扫描时钟时,该等触发器输出的值按照时钟的节拍依次变为高电平;在扫描链集合1E中的每条扫描链输出端口均放置一个B类与门,扫描链的输出数据均需经过B类与门才能输出到外部管脚,所有B类与门的另一个输入端口与遮蔽链(1C)中最后一个触发器的输出相连接,即受到触发器链中最后一个触发器的控制。
其中,遮蔽链(1C)的输出为位的经保护的混淆密钥,每一位经保护的密钥都连接到一个异或门的一个输入端,其中α为异或门在每条扫描链中的插入比例,N为扫描链的总条数,λ是扫描链集合1E中扫描链的最大长度;任意一个异或门(1DX)都被随机插入到扫描链相邻两个扫描单元之间,异或门(1DX)一个输入端口接前一个扫描单元的输出端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接后一个扫描单元的输入端口。若异或门(1DX)被插入到扫描链的末端,则异或门(1DX)一个输入端口接所插入扫描链的最后一个扫描单元的输出端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接B类与门的一个输入端口;若异或门(1DX)被插入到扫描链的起始位置,则异或门(1DX)一个输入端口接所插入扫描链的扫描输入端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接所插入扫描链的第一个扫描单元的输入端口。
其中,本发明所述的结构能够应用于数字集成电路和数/模混合集成电路。
本发明设计的一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构的优点在于:
①所提出的结构可以保护集成电路芯片免受基于扫描链的非破坏芯片式的攻击,同时还能保证芯片的可测试性和测试向量输入的灵活性。
②所提出的结构可以防止芯片内部敏感信息(如加密芯片中的密钥,芯片中的知识产权等)被恶意用户窃取,如供应链中的生产和测试厂商。
③所提出的结构所需要的额外面积和功耗很低,对原有集成电路芯片的设计及测试流程影响很小,同时不会增加测试时间。
附图说明
图1是本发明设计的集成电路芯片动态混淆扫描链结构的总体示意图。
图2是本发明设计运行时内部信号的时序图。
图3A是本发明设计受到普通差分攻击时各信号的时序图。
图3B是本发明设计防止仅测试模式下的差分攻击的示意图。
图3C是本发明设计受到复位攻击时各信号的时序图。
图3D是本发明设计受到冲刷攻击时各信号的时序图。
图4是本发明设计中插入不同数目异或门时,原始测试响应于混淆后的测试响应之间的汉明距离的示意图。
具体实施方式
下面将结合附图和实施例对本发明做进一步的详细说明。
对于集成电路的编程控制采用了Synopsys公司的Design Compiler2014,Primetime2014和ICCompiler2014软件。Design Compiler是Synopsys公司的逻辑综合优化工具,可以把硬件描述语言(HDL)描述的电路综合为跟工艺相关的门级电路。并且根据用户的设计要求,在时序和面积,时序和功耗上取得最佳的效果。它可以接受多种输入格式,如硬件描述语言、原理图和网表等,并产生多种性能报告,在缩短设计时间的同时提高读者设计性能。PrimeTime是Synopsys公司的静态时序和功耗分析软件,常被用来分析大规模、同步、数字ASIC的时序以及静态动态功耗。IC Compiler是Synopsys公司下一代布局布线系统,通过将物理综合扩展到整个布局和布线过程以及签核驱动的设计收敛,来保证卓越的质量并缩短设计时间。上一代解决方案由于布局、时钟树和布线独立运行,有其局限性。ICCompiler的扩展物理综合(XPS)技术突破了这一局限,将物理综合扩展到了整个布局和布线过程。IC Compiler采用基于TCL的统一架构,实现了创新并利用了Synopsys公司的若干最为优秀的核心技术。作为一套完整的布局布线设计系统,它包括了实现下一代设计所必需的一切功能,如物理综合、布局、布线、时序、信号完整性(SI)优化、低功耗、可测性设计(DFT)和良率优化。
参见图1所示,本发明所设计的一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,可内嵌在现有集成电路芯片上,并对原有集成电路芯片的扫描链进行混淆。线性反馈移位寄存器(1B)产生的混淆密钥经过遮蔽链(1C)的保护后,输入到不同的异或门(1D),对扫描链进行混淆。每条扫描链包含的异或门的数目和位置各不相同,因而其对应的经保护的混淆密钥也各不相同。控制模块(1A)控制混淆密钥的更新周期,每输入p组测试向量,混淆密钥更新一次。本发明设计的集成电路芯片动态混淆扫描链结构简单,易于集成到现有的集成电路芯片中,同时能够有效的混淆测试数据,防止常见的基于扫描链的攻击。
(一)线性反馈移位寄存器(1B):
线性反馈移位寄存器(1B)是用来产生λ位的混淆密钥(λ是扫描链集合1E中扫描链的最大长度),其作用是混淆扫描测试的输入输出向量。混淆密钥受到遮蔽链(1C)的保护。线性反馈移位寄存器(1B)由控制模块(1A)驱动,当控制模块发出混淆密钥更新信号时,线性反馈移位寄存器(1B)的输出才发生变化。线性反馈移位寄存器(1B)的初始种子值存储在芯片内部的只读存储器中,由存储器写控制信号控制,当开始测试以后,在该信号的控制下,种子的值被载入到线性反馈移位寄存器(1B)中。
(二)遮蔽链(1C)和异或门集合(1D):
参见图1所示,遮蔽链(1C)包含λ个触发器,λ个A类与门和N个B类与门。其中λ个触发器相互串联,由扫描控制信号控制的扫描时钟驱动;每个触发器的输出都与一个A类与门的一个输入端口连接;每个A类与门的另一个端口作为遮蔽链(1C)的输入端口,与线性反馈移位寄存器(1B)的输出端口相连接,成一一对应的关系。第1个触发器(触发器1)的输入端口连接在电源(VDD)上,即当芯片处于扫描测试状态(扫描控制信号为高电平)下,且有扫描时钟时,这λ个触发器输出的值按照时钟的节拍依次变为高电平。在扫描链集合1E中的每条扫描链输出端口均放置一个B类与门,扫描链的输出数据均需经过B类与门才能输出到外部管脚,所有B类与门的另一个输入端口与遮蔽链(1C)中第λ个触发器(触发器λ)的输出相连接,即受到触发器链中最后一个触发器的控制。
遮蔽链(1C)的输出为位的经保护的混淆密钥,每一位经保护的密钥都连接到一个异或门的一个输入端,其中α为异或门在每条扫描链中的插入比例,N为扫描链的总条数。任意一个异或门(1DX)都被随机插入到扫描链相邻两个扫描单元之间,异或门(1DX)一个输入端口接前一个扫描单元的输出端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接后一个扫描单元的输入端口。若异或门(1DX)被插入到扫描链的末端,则异或门(1DX)一个输入端口接所插入扫描链的最后一个扫描单元的输出端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接B类与门的一个输入端口;若异或门(1DX)被插入到扫描链的起始位置,则异或门(1DX)一个输入端口接所插入扫描链的扫描输入端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接所插入扫描链的第一个扫描单元的输入端口。
需要指出,遮蔽链中第i个A类与门(即连接在触发器i的输出端口的A类与门),其输出端口所连接的M个异或门(即这M个异或门都受到第i个A类与门输出的经保护的混淆密钥控制)都应当处于扫描链中第i个扫描单元与第i+1个扫描单元之间。
遮蔽链(1C)设计的目的为:1)防止线性反馈移位寄存器(1B)输出的混淆密钥因复位攻击而泄露;2)防止攻击者有意的扫描输入某些值。遮蔽链(1C)可起到:1)在复位之后,锁定扫描链前λ位输出,使其均为“0”(低电平);2)在复位之后,当第i个扫描时钟到来之时,解锁第i位混淆密钥,使得扫描链中第i位的值有可能被混淆。混淆的条件为:1)扫描链第i个与第i+1个扫描单元之间插入了异或门;2)遮蔽链(1C)输入到该异或门的值为1,此时由第i个扫描单元输出到第i+1个扫描单元的值将会发生翻转,即被混淆。
遮蔽链(1C)和异或门集合(1D)具体的工作过程如下所示:
当集成电路芯片整体复位之后,芯片内部所有的寄存器、触发器的值都变为0。由于遮蔽链(1C)中的λ个触发器输出也均为0,因此所有A类和B类与门的输出也都为0,即混淆密钥不能施加在扫描链中,扫描链的输出都被锁定为0。之后,集成电路芯片切换到扫描测试模式,当扫描控制信号为高电平时,芯片在扫描时钟的驱动下开始扫描输入输出数据,同时遮蔽链(1C)中的λ个触发器输出按照时钟的节拍依次变为1,直到第λ个扫描时钟周期,遮蔽链(1C)中所有的触发器输出均为1,此时遮蔽链(1C)中的A类和B类与门都不再起作用,混淆密钥可以施加在扫描链中,同时扫描链的输出不再被锁定。在这个过程中,第i个扫描时钟周期时,遮蔽链(1C)中第i个触发器(触发器i)的输出变为1,第i位混淆密钥可以通过遮蔽链(1C),扫描链集合(1E)中的扫描链第i个扫描单元有可能被混淆。在λ个扫描时钟周期以后,扫描链中的每一位只要符合混淆条件,都可能被混淆。
将一条扫描链表示为a={a1,a2,...,aλ}(ai=1,0|i=1,2,...,λ),其中ai表示扫描链中第i个扫描单元,若第i个扫描单元之后插入了异或门,且遮蔽链(1C)输入到该异或门的值为1,则ai=1,否则ai=0。设在原来的测试输入向量(即未插入扫描混淆结构时)为P={P1,P2,...Pλ}(Pi=1,0|i=1,2,...,λ),当存在混淆结构时,混淆后的测试向量为SP={SP1,SP2,...SPλ}(SPi=1,0|i=1,2,...,λ),则二者的关系为同理,设原来的测试输出响应为R={R1,R2,...Rλ}(Ri=1,0|i=1,2,...,λ),当存在混淆结构时,混淆后的输出响应为SR={SR1,SR2,...SRλ}(SRi=1,0|i=1,2,...,λ),其二者之间的关系为依据上述关系以及已知的混淆密钥(只有设计者知道混淆密钥),设计者可以对原来未经混淆的测试输入向量和输出响应进行混淆,然后将混淆后的测试向量和输出响应交付给制造者,制造者使用混淆后的测试数据进行测试,将扫描输出的响应与已知的响应进行比对,判断集成电路芯片是否存在故障。制造者只能知道芯片是否存在故障,而无法根据测试向量以及响应来获取芯片的其他敏感信息,从而达到保护芯片的目的。其余攻击者由于无法得知芯片中的混淆密钥,以及异或门的插入位置,也无法获取有用的信息。
(三)控制模块(1A)
本发明设计中的控制模块(1A)由n比特寄存器(10A)、n比特测试向量计数器(10B)和时钟控制模块(10C)构成。其中,时钟控制模块(10C)由一个反相器、一个控制触发器和一个与门构成,扫描控制信号经过反相器输入到控制触发器的数据输入端和与门的一个输入端,控制触发器的输出与与门的另一个输入端相连接,控制触发器的时钟为功能时钟(功能时钟为集成电路芯片处于正常工作状态下所使用的时钟,频率一般高于扫描时钟)。
集成电路芯片在处于测试模式时,其测试流程为:1)使扫描控制信号为高电平,然后通过外部管脚,扫描输入配置芯片内部扫描链中的寄存器的值;2)使扫描控制信号为低电平,芯片进行正常运行一个或几个时钟周期;3)使扫描控制信号为高电平,扫描输出各个扫描链中的值,即测试响应,同时输入下一组测试向量,对扫描链重新进行配置。如此不断循环,即可完成测试。
利用上述原理,当扫描控制信号为高电平,即扫描输入输出状态时,时钟控制模块(10C)中的与门的两个输入均为低电平,则与门的输出也为低电平,即时钟控制模块(10C)的输出为低电平;当扫描控制信号由高电平变为低电平,芯片处于正常运行状态,即意味着已经输入了一组测试向量,此时与门的两个输入端均为高电平,与门输出由低电平翻转为高电平,产生一个上升沿,n比特测试向量计数器(10B)内部计数值加一。此设计的优点在于,当扫描控制信号值发生变化之后,必须提供一个时钟上升沿,才能改变时钟控制模块(10C)的输出值,因为时钟控制模块(10C)中的时钟为芯片运行所用时钟,因此经过一个时钟周期之后,芯片内部的寄存器的值会发生一定运算,从而产生变化,防止攻击者单纯改变扫描控制信号的值,而不提供时钟给芯片,从而探索混淆结构的密钥及其更新周期。
在实际工作过程中,首先进行系统初始化,从芯片内部的只读非易失性存储器中读取控制混淆结构的控制向量,该控制向量包含线性反馈移位寄存器(1B)λ位的种子和n位的值p,p被加载进n比特寄存器(10A)中,决定了混淆密钥的更新周期,当n比特测试向量计数器(10B)的计数值到达p,即测试者向集成电路芯片输入了p组测试向量后,控制模块(1A)发出混淆密钥更新信号给线性反馈移位寄存器(1B),使其更新混淆密钥。这一设计的目的在于在实际生产测试中,设计者的测试向量往往不能一次性交付给制造者,这个特性为设计者更新测试向量提供了一定得灵活性同时保证了安全性,即不同批次的测试向量可以使用不同的混淆密钥。
(四)集成电路芯片动态混淆扫描链结构工作时序图
图2展示了所发明的集成电路芯片动态混淆扫描链结构具体的时序图。在复位初始化之后,混淆密钥1生成(如波形(c)所示),同时每输入p组测试向量,控制模块(1A)就产生一个混淆密钥控制信号(如波形(f)所示),混淆密钥就变化一次。同时,在复位之后,由遮蔽链(1C)输出的经保护的混淆密钥随着扫描时钟,按时钟周期一位一位的产生,在λ个扫描时钟周期之后全部产生保持不变,直到混淆密钥发生变化(如波形(g)所示)。另外,在复位之后,所有的扫描链在前λ个扫描时钟周期的输出均为0,即被遮蔽链(1C)中的B类与门锁定,波形(h)展示了任一扫描链1EX的扫描输出。
如上文所述,本发明所提出的集成电路芯片动态混淆扫描链结构可以在被集成到现有的集成电路芯片中,不影响原有的测试流程,同时可保护芯片不受基于扫描链的攻击。
实施例1
应用本发明设计的集成电路芯片动态混淆扫描链结构进行测试:
本发明所提出的集成电路芯片动态混淆扫描链结构被插入到了若干测试电路中,如OpenSPARCT2处理器中的FGU(Floating Point and Graphic Unit,浮点运算和图像处理模块)模块,ITC’99中最大的电路b19,一个128位的AES加密模块,和Gaisler芯片中的Leonprocessor、Leon3s和VGA-LCD模块中,所有的测试电路在综合时设置的功能时钟为100MHz,扫描时钟为10MHz,其扫描链的最大长度为64(即λ=64),需要指出,由于集成电路芯片中的扫描单元的数目不一定是64的整数倍,综合工具会自动平衡各扫描链的长度,使其最大长度为64,且各扫描链的长度接近。上述被插入片上调节结构的电路都在32nm的技术节点上经过了仿真验证。
首先估算本发明的面积、功耗和计算时间的开销。面积开销指的是新插入集成电路芯片的结构的面积与芯片原有面积之比,功耗开销指新插入集成电路芯片的结构在测试过程中产生的功耗与原来芯片在测试过程中的功耗之比,计算时间开销指将原来的测试向量和响应进行混淆,得到实际交付测试者的混淆后的向量和响应,这个混淆过程所需要的时间。由图1可知,本发明的结构面积开销主要来自于线性反馈移位寄存器(1B),遮蔽链(1C)和异或门集合(1D)。在实际仿真中,分别插入10%和30%的异或门(即α=10%,30%)。在不同测试电路中的功耗和面积开销如下表所示,在插入10%和30%的异或门的条件下,面积开销分别位0.76%-1.93%和2.02%-4.05%,功耗开销分别为0.35%-1.02%和1.73%-2.26%。若假设一个测试电路包含10000条长度位64的扫描链,即远远大于下表1中的几个测试电路,使用一台配备20个2.4GHz CPU的Linux工作站,混淆10000组该电路的测试向量和响应所需要的时间位15.897s,计算开销也是可接受的。
表1
下面对本发明进行安全性分析,主要针对现有的基于扫描链的攻击。需要申明的是,本发明仅针对非破坏性的基于扫描链的攻击,即不考虑攻击者使用对芯片进行拆解等破坏性的手段。
针对普通差分攻击(Differential Attack),在复位之后,攻击者需要先在正常模式下运行集成电路芯片若干时钟周期,然后将其切换到扫描模式,扫描输出各个扫描链中的值。因为本发明中存在遮蔽链(1C),会锁住扫描链前λ=64个扫描时钟周期的输出。图3A显示了任一扫描链(长度为64)受到普通差分攻击时的波形图,扫描链前64个时钟周期的输出均为0.
针对仅测试模式下的差分攻击(Test Mode Only Differential Attack),在多数工业设计中,当集成电路芯片由正常模式切换到扫描模式时,会自动复位扫描链中所有的扫描单元,普通差分攻击无法起到作用。为此,目前出现了一种仅测试模式下的差分攻击,这种攻击方式在测试模式下,通过向芯片扫描输入全为0或者只有一位为1的测试向量(独热码),通过比较测试响应,来定位某些关键的扫描单元的位置,进而获取敏感信息。对于本发明的结构,因为攻击者无法得知混淆密钥以及异或门的插入位置,攻击者不能准确的控制实际扫描进入扫描链中的值,则其输入的值也就不能用来进行仅测试模式下的差分攻击。如图3B所示,如果攻击者想要输入64’h4000000000000000(十六进制表示的64位二进制数),扫描链表示为64’h0010101000101010(1表示该位被混淆,0表示该位未被混淆),则实际扫描输入到扫描链中的测试向量位64’h400FF00FFFF00FF0。因此本发明所提出的结构可以抵抗仅测试模式下的差分攻击。
针对复位攻击(Resetting Attack),在集成电路芯片复位之后,攻击者可以直到扫描链中每个扫描单元中的值(均为0),如果直接将其扫描输出,可能泄露混淆结构的某些信息。但是由于存在遮蔽链(1C),复位之后扫描链的前λ=64位输出均为0,如图3C所示,可以保护混淆结构信息不被泄露。
针对冲刷攻击(Flushing Attack)因为遮蔽链(1C)保证了混淆密钥被同步的施加到扫描链上,当对集成电路芯片进行冲刷攻击时,每位扫描输入的数据都经历了相同次数的翻转,取决于翻转的次数时奇数还是偶数,扫描输出的数据为原来数据取反或者保持不变。如图3D所示,攻击者持续扫描输入0,扫描链可以被表示为64’h0010001000101010,则扫描输出全部为1.因此,攻击者只能知道数据在扫描链中经历了奇数还是偶数次翻转,无法得到如异或门的位置等信息。
针对暴力攻击(Brute Force Attack)如果攻击者想要通过暴力攻击来得到每条扫描链中的异或门的位置以及是否对扫描链进行混淆,则这个概率为1/2λ+1,因为理论上每条扫描链(长度为λ)中有λ+1个位置可以插入异或门。若攻击者通过冲刷攻击知道了扫描链中起混淆作用的异或门的个数为奇数或者偶数,则其准确猜测出扫描链中其混淆作用的异或门的位置的概率为(设为λ偶数,奇数同理)进一步,即便攻击者得知异或门的插入比例,其猜测出扫描链中其混淆作用的异或门的位置的概率为其中为从λ+1个位置选择出个位置的组合数,为位密钥可能的组合数。下表展示了不同长度的扫描链在不同的异或门插入比例下,准确猜测出扫描链中其混淆作用的异或门的位置的概率。需要指出的是,下表2仅仅展示了攻击者准确猜出一条扫描链中起混淆作用的异或门位置的概率,若要有效进行攻击,一般需要猜测出所有扫描链中起混淆作用的异或门位置的概率,因为敏感信息可能隐藏在不同的扫描链中,若设集成电路芯片有N条扫描链,准确猜测一条扫描链状况的概率位P,则猜测到所有扫描链的概率为PN,可见通过暴力攻击基本不可能攻破本结构。
表2
针对位识别攻击(Bit-Role Identification Attack),本结构中的扫描输入输出各位均独立,不存在关联,因此改变某一位的数据,不会使输出发生较大的异常,攻击者不能据此判断关键的位,如存在异或门的位。
图4是在一条扫描链中随机插入异或门并随机选择异或门是否起混淆作用,施加10000组测试向量,混淆前后的汉明距离的分布。可以看出,当看出当插入30%(α=30%)的异或门时,汉明距离大于0.4的概率位88.94%,即测试向量混淆前后差异较大,难以复原。
Claims (6)
1.一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,该集成电路芯片包含N条扫描链,扫描链1E1、扫描链1E2……扫描链1EX……扫描链1EN,它们共同构成一个扫描链集合{1E1,1E2...1EN},即扫描链集合1E;
所述的动态混淆扫描链结构,其特征在于:
动态混淆扫描链结构由控制单元(1A),线性反馈移位寄存器(1B),遮蔽链(1C)和异或门集合(1D)构成;
控制单元(1A)由时钟控制模块(10C)、n比特寄存器(10A)和n比特测试向量计数器(10B)构成,控制单元(1A)对输入集成电路芯片的测试向量数目进行计数,当输入的测试向量的数目达到p组时,就输出一个混淆密钥更新信号给线性反馈移位寄存器(1B),以更改整个混淆扫描链结构的混淆密钥;
线性反馈移位寄存器(1B)是一个λ位的线性反馈移位寄存器构成的,该线性反馈移位寄存器由控制单元(1A)输出的混淆密钥更新信号驱动,输出λ位的混淆密钥,此密钥是一0、1构成的序列;
遮蔽链(1C)由若干串联在一起的触发器、两种类型的与门——即A类与门和B类与门构成,触发器和A类与门的数目等于扫描链集合1E中最长的扫描链的长度,B类与门的数目等于扫描链集合1E中扫描链的数目N;遮蔽链(1C)的作用为防止因为复位攻击而泄露混淆密钥,混淆密钥经过遮蔽链(1C)转变为经保护的混淆密钥,输入到扫描链集合1E中;当集成电路芯片遭受复位攻击时,经保护的混淆密钥均置零,扫描链集合1E未被混淆,攻击者无法得到混淆扫描链结构的信息,只有其扫描输入一组测试向量后,混淆扫描链结构才正常工作,此时攻击者亦无法得到混淆密钥的信息;
异或门集合(1D)包含M个异或门,即异或门1D1、异或门1D2……异或门1DX、异或门1DX+1……异或门1DM,它们共同构成异或门集合1D={1D1,1D2......1DM},这些异或门分别插入到扫描链集合{1E1,1E2...1EN}中的每条扫描链中,且受到经保护的混淆密钥控制,每位混淆密钥控制一个或者多个异或门,当该位密钥为高电平时,经过受控异或门的信号就会发生翻转,即被混淆,否则不翻转,即不混淆。
2.根据权利要求1所述的防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,其特征在于:其中,时钟控制模块(10C)由一个反相器、一个控制触发器和一个与门构成,扫描控制信号经过反相器输入到控制触发器的数据输入端和与门的一个输入端,控制触发器的输出与与门的另一个输入端相连接,控制触发器的时钟为功能时钟。
3.根据权利要求1所述的防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,其特征在于:其中,遮蔽链(1C)的触发器相互串联,每个触发器的输出都与一个A类与门的一个输入端口连接;每个A类与门的另一个端口作为遮蔽链(1C)的输入端口,与线性反馈移位寄存器(1B)的输出端口相连接,成一一对应的关系;第1个触发器的输入端口连接在电源上,即当芯片处于扫描测试状态下,且有扫描时钟时,该些触发器输出的值按照时钟的节拍依次变为高电平;在扫描链集合1E中的每条扫描链输出端口均放置一个B类与门,扫描链的输出数据均需经过B类与门才能输出到外部管脚,所有B类与门的另一个输入端口与遮蔽链(1C)中最后一个触发器的输出相连接,即受到触发器链中最后一个触发器的控制。
4.根据权利要求1所述的防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,其特征在于:其中,遮蔽链(1C)的输出为位的经保护的混淆密钥,每一位经保护的密钥都连接到一个异或门的一个输入端,其中α为异或门在每条扫描链中的插入比例,N为扫描链的总条数,λ是扫描链集合1E中扫描链的最大长度;任意一个异或门(1DX)都被随机插入到扫描链相邻两个扫描单元之间,异或门(1DX)一个输入端口接前一个扫描单元的输出端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接后一个扫描单元的输入端口。
5.根据权利要求4所述的防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,其特征在于:若异或门(1DX)被插入到扫描链的末端,则异或门(1DX)一个输入端口接所插入扫描链的最后一个扫描单元的输出端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接B类与门的一个输入端口;若异或门(1DX)被插入到扫描链的起始位置,则异或门(1DX)一个输入端口接所插入扫描链的扫描输入端口,另一个输入端口接一位经保护的混淆密钥,异或门(1DX)的输出接所插入扫描链的第一个扫描单元的输入端口。
6.根据权利要求1所述的防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构,其特征在于:所述的结构能够应用于数字集成电路和数/模混合集成电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611168906.XA CN106646203B (zh) | 2016-12-16 | 2016-12-16 | 防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611168906.XA CN106646203B (zh) | 2016-12-16 | 2016-12-16 | 防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106646203A CN106646203A (zh) | 2017-05-10 |
CN106646203B true CN106646203B (zh) | 2019-03-05 |
Family
ID=58822685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611168906.XA Active CN106646203B (zh) | 2016-12-16 | 2016-12-16 | 防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106646203B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783028A (zh) * | 2017-10-16 | 2018-03-09 | 苏州国芯科技有限公司 | 一种芯片进入测试模式的控制方法及系统 |
CN108875431B (zh) * | 2018-06-07 | 2021-04-16 | 北京航空航天大学 | 防止集成电路知识产权剽窃的动态混淆封装接口控制单元 |
CN108875430B (zh) * | 2018-06-07 | 2021-04-16 | 北京航空航天大学 | 防止集成电路和知识产权核剽窃的动态混淆封装接口 |
CN112997089A (zh) * | 2018-08-22 | 2021-06-18 | 康姆索利德有限责任公司 | 扩展jtag控制器和使用扩展jtag控制器进行功能调试的方法 |
CN109946595B (zh) * | 2019-03-25 | 2022-01-04 | 中国科学院微电子研究所 | 一种扫描测试执行方法、装置及系统 |
CN111130754B (zh) * | 2019-12-16 | 2022-02-18 | 西安电子科技大学 | 一种扫描链的加密解密电路及集成电路 |
CN111898150A (zh) * | 2020-08-07 | 2020-11-06 | 长沙理工大学 | 基于测试授权验证的低开销加密芯片可测试性设计结构 |
CN112000996B (zh) * | 2020-10-28 | 2021-06-18 | 南京邮电大学 | 一种阻止差分密码分析攻击的方法 |
CN112557887A (zh) * | 2020-11-17 | 2021-03-26 | Oppo广东移动通信有限公司 | 片上时钟控制装置、芯片、芯片测试系统和测试方法 |
CN114113989B (zh) * | 2022-01-26 | 2022-05-06 | 成都爱旗科技有限公司 | 一种dft测试装置、测试系统以及测试方法 |
CN117825908A (zh) * | 2022-09-28 | 2024-04-05 | 深圳市中兴微电子技术有限公司 | 故障定位电路、方法、芯片及计算机可读存储介质 |
CN115357949B (zh) * | 2022-10-24 | 2023-02-10 | 南京邮电大学 | 基于环形振荡器puf的加密测试电路 |
CN117825936B (zh) * | 2024-03-04 | 2024-05-10 | 南京邮电大学 | 基于改进的线性反馈移位寄存器的安全测试电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1305226A (zh) * | 1999-09-03 | 2001-07-25 | 索尼公司 | 具有扫描路径电路的半导体电路 |
CN101238381A (zh) * | 2005-08-10 | 2008-08-06 | Nxp股份有限公司 | 测试包含秘密信息的集成电路的方法 |
CN102305912A (zh) * | 2011-07-29 | 2012-01-04 | 清华大学 | 数据可压缩的低功耗集成电路测试装置及其方法 |
CN105334452A (zh) * | 2015-11-30 | 2016-02-17 | 张释文 | 一种边界扫描测试系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9222973B2 (en) * | 2011-01-20 | 2015-12-29 | International Business Machines Corporation | Protecting chip settings using secured scan chains |
US9818000B2 (en) * | 2014-03-23 | 2017-11-14 | Southern Methodist University | Protecting hidden content in integrated circuits |
-
2016
- 2016-12-16 CN CN201611168906.XA patent/CN106646203B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1305226A (zh) * | 1999-09-03 | 2001-07-25 | 索尼公司 | 具有扫描路径电路的半导体电路 |
CN101238381A (zh) * | 2005-08-10 | 2008-08-06 | Nxp股份有限公司 | 测试包含秘密信息的集成电路的方法 |
CN102305912A (zh) * | 2011-07-29 | 2012-01-04 | 清华大学 | 数据可压缩的低功耗集成电路测试装置及其方法 |
CN105334452A (zh) * | 2015-11-30 | 2016-02-17 | 张释文 | 一种边界扫描测试系统 |
Non-Patent Citations (1)
Title |
---|
基于MTM总线的测试系统设计方法;徐进 等;《计量与测试技术》;20091231;第27-29页,第33页 |
Also Published As
Publication number | Publication date |
---|---|
CN106646203A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106646203B (zh) | 防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构 | |
Karmakar et al. | Encrypt flip-flop: A novel logic encryption technique for sequential circuits | |
Cui et al. | Static and dynamic obfuscations of scan data against scan-based side-channel attacks | |
Guin et al. | Robust design-for-security architecture for enabling trust in IC manufacturing and test | |
Da Rolt et al. | Test versus security: Past and present | |
Chiu et al. | A secure test wrapper design against internal and boundary scan attacks for embedded cores | |
Wang et al. | IIPS: Infrastructure IP for secure SoC design | |
CN108875431B (zh) | 防止集成电路知识产权剽窃的动态混淆封装接口控制单元 | |
Zhang et al. | Dynamically obfuscated scan for protecting IPs against scan-based attacks throughout supply chain | |
Das et al. | PUF-based secure test wrapper design for cryptographic SoC testing | |
Guin et al. | A novel design-for-security (DFS) architecture to prevent unauthorized IC overproduction | |
Kamali et al. | On designing secure and robust scan chain for protecting obfuscated logic | |
Hu et al. | Why you should care about don't cares: Exploiting internal don't care conditions for hardware Trojans | |
CN108875430A (zh) | 防止集成电路和知识产权核剽窃的动态混淆封装接口 | |
Rahman et al. | Dynamically obfuscated scan chain to resist oracle-guided attacks on logic locked design | |
Karmakar et al. | Hardware IP protection using logic encryption and watermarking | |
Shamsi et al. | Circuit obfuscation and oracle-guided attacks: Who can prevail? | |
Rahman et al. | Ll-atpg: logic-locking aware test using valet keys in an untrusted environment | |
Agila et al. | Resilient DFS architecture for enabling trust in IC manufacturing and testing | |
Hu et al. | SANSCrypt: A sporadic-authentication-based sequential logic encryption scheme | |
Kumar et al. | Physical unclonable functions for on-chip instrumentation: Enhancing the security of the internal joint test action group network | |
Karmakar et al. | On securing scan obfuscation strategies against ScanSAT attack | |
Nara et al. | State-dependent changeable scan architecture against scan-based side channel attacks | |
Lee et al. | A dynamic-key based secure scan architecture for manufacturing and in-field IC testing | |
CN110456260A (zh) | 一种密钥隔离安全扫描链电路 |
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 |