CN108875431B - 防止集成电路知识产权剽窃的动态混淆封装接口控制单元 - Google Patents

防止集成电路知识产权剽窃的动态混淆封装接口控制单元 Download PDF

Info

Publication number
CN108875431B
CN108875431B CN201810581099.7A CN201810581099A CN108875431B CN 108875431 B CN108875431 B CN 108875431B CN 201810581099 A CN201810581099 A CN 201810581099A CN 108875431 B CN108875431 B CN 108875431B
Authority
CN
China
Prior art keywords
integrated circuit
core
test
fingerprint
input
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
Application number
CN201810581099.7A
Other languages
English (en)
Other versions
CN108875431A (zh
Inventor
张东嵘
苏东林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201810581099.7A priority Critical patent/CN108875431B/zh
Publication of CN108875431A publication Critical patent/CN108875431A/zh
Application granted granted Critical
Publication of CN108875431B publication Critical patent/CN108875431B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/75Protecting 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 by inhibiting the analysis of circuitry or operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

一种防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于,包括:指纹生成器(20A)、线性移位寄存器(20B)、结果验证单元(20C)、内部密钥寄存器(20D)和外部密钥寄存器(20E);对动态混淆封装接口(1A)进行控制,并验证IP核或者集成电路的测试结果;动态混淆封装接口(1A)受到内部密钥寄存器(20D)和外部密钥寄存器(20E)的控制,只有当来自内部密钥寄存器(20D)和外部密钥寄存器(20E)的信号使得动态混淆封装接口(1A)输入输出信号完全一致时,所设计的动态混淆封装接口(1A)才会被正确解锁,使用者才能使用IP核或集成电路进行测试或者激活。

Description

防止集成电路知识产权剽窃的动态混淆封装接口控制单元
技术领域
本发明涉及一种在集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口的控制单元,更确切的说,是一种用于控制在集成电路供应链中防止攻击者通过过量生产或者非法使用知识产权造成集成电路和知识产权核被剽窃的动态混淆封装接口的单元,属于集成电路芯片知识产权及安全性保护技术领域。
背景技术
集成电路(integrated circuit)是一种微型电子器件或部件。它是经过氧化、光刻、扩散、外延、蒸铝等半导体制造工艺,把构成具有一定功能的电路所需的半导体、电阻、电容等元件及它们之间的连接导线全部集成在一小块硅片上,然后焊接封装在一个管壳内的电子器件;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗、智能化和高可靠性方面迈进了一大步。集成电路具有体积小,重量轻,引出线和焊接点少,寿命长,可靠性高,性能好等优点,同时成本低,便于大规模生产。集成电路按其功能、结构的不同,可以分为模拟集成电路、数字集成电路和数/模混合集成电路三大类。
在集成电路设计中,知识产权(IP)核指的是用于专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)或者现场可编程门阵列(Field-Programmable GateArray,FPGA)中的预先设计好的电路功能模块。IP核有三种不同的存在形式:硬件描述语言形式,网表形式、版图形式,即软核、固核和硬核。专门设计IP核的厂商称之为IP核设计者,他们通常主要设计集成电路中的某些模块,而不进行整个芯片的整合。
在现代半导体产业中,产品研发到上市的时间对于最终产品的价格有直接的影响。因此,为了节约时间并降低成本,集成电路设计者通常会尽可能的复用IP核。类似的,半导体制造的开销在集成电路成本中也占很大的比重。建立一条生产22纳米以下工艺的半导体生产线需要50亿美元以上,随着半导体工艺节点不断进步,这一成本还在不断上升。因此,多数半导体公司无法同时进行半导体设计和制造。为了在全球市场竞争,集成电路设计者通常把他们设计好的集成电路外包给外部的工厂进行制造。
现代集成电路产业链起始于IP核设计者,他们设计IP核并以软核、固核和硬核的形式外包给其他集成电路设计者。集成电路设计者主要是对整个集成电路进行功能设计规划,然后将不同的IP核以及其他集成电路功能模块进行整合,形成最终的集成电路芯片设计。最终的集成电路芯片设计有时候也会以硬件描述语言的形式,外包给第三方公司进行逻辑综合和布局布线,以节省开发成本。之后,第三方公司会把最终生成的版图文件返回给集成电路设计者或者直接发送给代工厂进行制造和测试。但是,这一制造流程存在着安全隐患,主要包括IP核和集成电路被窃取、伪造等。例如,集成电路设计者可以在未经IP核设计者允许的情况下私自使用IP核。集成电路制造厂商可能重复使用掩模来制造过量的集成电路、将原始集成电路私自售卖给第三方厂家、以售卖未通过出厂测试的集成电路以获取非法的收入。更进一步,通过逆向工程,攻击者可以提取IP核或者集成电路的网表信息,以便进行伪造。
集成电路测试是用来验证所制造的芯片是否能够正常工作以及是否合格。不幸的是,现有的由代工厂主导的集成电路测试无法避免有缺陷的电路或者侵权的电路进入市场。这些芯片流入市场可能会造成严重的经济和安全隐患。因此,集成电路设计者必须保证芯片的生产和流通的可控性,为了达到这一目的,常见的措施有:
分离制造集成电路:2017年,Wang Yujie等人在Asia and South Pacific DesignAutomation Conference(亚洲和南太平洋自动化设计会议)发表了论文“Routingperturbation for enhanced security in split manufacturing”(在布局时进行混淆以增强分离制造的安全性),其中提到的分离制造集成电路是通过将集成电路的一部分交由不受信任的代工厂来制造,来用来保证芯片制造的可信性。使用这一方法,集成电路的制造通常被分为两个阶段:集成电路的较低层级交由不受信任的代工厂完成,这样集成电路设计者不需要告知代工厂集成电路全部的信息,防止代工厂进行伪造;之后集成电路的较高层级交由受到信任的代工厂完成,并进行测试。这样就可以防止不受信任的代工厂过量生产集成电路。但是这一方法不能防止集成电路设计者窃取IP核的信息,同时根据集成电路较低层级的信息,代工厂可以推断出某些较高层级的信息进而进行伪造。
集成电路加密:在2017年,Xie Yang等人在Proceedings of the 54th AnnualDesign Automation Conference(第54届自动设计会议)上发表了论文“Delay locking:Security enhancement of logic locking against ic counterfeiting andoverproduction”(延迟锁定:通过逻辑锁定防止集成电路伪造和过量制造的安全增强技术),其中提到集成电路设计者可以通过集成电路内部的私有密钥来加密集成电路,只有通过集成电路设计者认证的才能被揭密,这样就防止了集成电路的伪造和过量制造。
分离测试:在2014年,Md.Tauhidur Rahman等人在Defect and Fault Tolerancein VLSI and Nanotechnology Systems(超大规模集成电路和纳米系统中的缺陷和故障容错设计会议)发表了论文“CSST:Preventing Distribution of Unlicensed and RejectedICs by Untrusted Foundry and Assembly”(CSST:防止未经授权和被代工厂拒绝激活的集成电路进入市场),其中提到让集成电路设计者参与到集成电路测试中来,代工厂在测试集成电路之前,必须要将集成电路生成的独一无二的密钥发送给集成电路设计者以获取临时激活密钥,然后使用临时激活密钥激活集成电路进行测试,之后将测试生成的所有数据都发送给集成电路设计者进行验证,验证通过后方可拿到集成电路的最终激活密钥进行激活。但是这一测试方法只能用于结构性功能测试,而无法验证集成电路是否进行了正确的功能性测试。
目前针对IP核和集成电路进行的侵权主要有以下几种类型:
未经授权使用IP核:由于现代集成电路非常的复杂,因此集成电路在设计过程中大量依赖于第三方的IP核来降低开发成本。集成电路设计者可能在未经IP核设计者授权的情况下私自使用IP核。
过量生产集成电路:不受信任的代工厂可能私自生产多余约定的集成电路芯片用于销售,从而损害了集成电路设计者的利益。
出售有缺陷的集成电路:集成电路设计者不能保证代工厂正确且完整的进行了所有的测试。一些存在缺陷的电路可能在极少数条件下不能正常的工作,这些电路在实际使用中是很难被检测出来的,只有出厂进行的结构性测试能够很好的检测这些问题。存在缺陷的集成电路应当被丢弃,但是不受信任的代工厂可能将这些集成电路以集成电路设计者的名义出售给其他人,获取不正当利益,同时损害了集成电路设计者的名誉。
出售未达标的集成电路:未达标的集成电路指的是芯片不能在指定的频率或者电压范围工作,但是在比较宽松的条件下能够正常运行,即质量比较差的集成电路。不受信任的代工厂有可能出售这些集成电路获取不正当利益。
逆向工程:代工厂能够接触到集成电路的设计文件,从而使用逆向工程来提取所要生产的集成电路的网表信息,通常用于窃取IP核的知识产权。
随着集成电路制造工艺的不断进步,集成电路芯片内部的逻辑单元数目剧增,而集成电路芯片的引脚个数却被大大限制,为了尽可能的测试集成电路,以保证产品质量,在集成电路芯片中通常采用可测试性(DFT,Design for Testability)设计技术。该技术通过在芯片原始设计中插入各种用于提高芯片可测试性的硬件逻辑,使得芯片变得容易测试,从而大幅度降低测试成本。扫描设计是一种当前工业界广泛采用的可测试性设计技术,它可以获得很高的故障覆盖率,实际上已经成为现代芯片设计流程中必不可少的环节。这种设计的基本思想是将待测电路内部的寄存器单元改造为可扫描的寄存器单元(即扫描单元),并分组串接在一起构成扫描链;电路中除去寄存器单元剩余的部分均为组合逻辑单元,称之为组合逻辑网表。在测试状态下从测试设备传输过来的测试激励逐拍进入扫描链中的扫描触发器,全部扫描触发器单元填充完毕后电路进入正常功能状态,捕获电路状态值,捕获到的触发器状态值称为测试响应,测试响应将被串行的移出扫描触发器到达芯片引脚通过和已存储的期望结构进行比较,确定芯片是否包含故障。
集成电路的测试主要分为功能性测试和结构性测试。功能性测试主要是让集成电路模拟正常运行时的状态,检测集成电路在给定的条件下能否按照所设计的目标正常工作;结构性测试主要是利用扫描链,将对集成电路的测试向量扫描输入,进而进行测试。
由于大规模集成电路芯片中扫描链的数目可能远多余芯片外部管脚的数目,因此通常会把测试向量和响应进行压缩,节约外部端口的需求。外部扫描输入的测试向量首先经过芯片内部的解压器,将被压缩的测试向量解压到每条扫描链上;每条扫描链的测试响应经过一个压缩器后由外部管脚输出。因为压缩器和解压器对本发明结构的影响可以忽略,因此在本发明中不予以讨论。
一般来说,集成电路综合工具会自动平衡集成电路芯片中扫描链的长度,使得所有扫描链的长度尽可能接近。
有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑又可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。
数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。而时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。
物理不可克隆函数(即Physical unclonable function,PUF)是一种“数字指纹”,利用内在的物理构造来对其进行唯一性标识,输入任意激励都会输出一个唯一且不可预测的响应。物理不可克隆函数基于在半导体制造过程的工艺误差,不同电路得到的物理不可克隆函数参数各不相同。物理不可克隆函数通常用于对安全性要求较高的应用中。
一次性可编程存储器(即Onetimeprogrammablememory),一种存储器类型,意思是一次性可编程,数据写入这类存储器后,将不可再次更改和清除。
线性反馈移位寄存器(Linear feedback shift register,LFSR)是指给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。赋给寄存器的初始值叫做“种子”,因为线性反馈移位寄存器的运算是确定性的,所以,由寄存器所生成的数据流完全决定于寄存器当时或者之前的状态。线性反馈移位寄存器可以用来生成伪随机数。
非线性反馈移位寄存器(Nonlinear feedback shift register,NLFSR)是相对于反馈移位寄存器(Linear feedback shift register,LFSR)而言的。它们的大体电路逻辑相似,仅仅在于NLFSR的反馈逻辑是由异或门和与门构成的,而LFSR中仅存在异或门。从代数表达式来看,异或门是加法,而与门是乘法。由加法构成的反馈逻辑,其反馈表达式的最高项次数不会增长,而由乘法参与的反馈表达式项次数会增长、并可能超过定义多项式的最高项。
卷积压缩器(Convolutionalcompactor)是一种数据压缩结构,可以把多位数据压缩为少数几位,支持压缩比率超过100倍,能够检测输出错误,具有较低的压缩错误比率。
目前基于扫描链的攻击有如下几种:
暴力攻击(Brute Force Attack):通过遍历的手段,猜测芯片内部的敏感信息所保存的位置以及值,经过不断尝试从而得到想要的数据。
复位攻击(Resetting Attack):对于某些通过混淆扫描链来保护扫描信息的方法,使用复位攻击,将所有的寄存器值都清零,然后扫描输出,可以初步判断某些混淆方法的结构。
冲刷攻击(Flushing Attack):通过不断向扫描链中扫描输出特定测试向量,如全为1或者全为0,根据扫描输出的值,来判断扫描链是否被混淆以及混淆的方法。
发明内容
本发明的目的是设计一种在集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口控制单元,更确切的说,是一种适用于控制在集成电路供应链中防止攻击者通过过量生产或者非法使用知识产权造成集成电路和知识产权核被剽窃的动态混淆封装接口的单元。该结构内嵌在集成电路中,能够对集成电路的输入输出接口加密,使得测试者只有在拿到测试密钥的时候才能对集成电路进行测试,只有在拿到激活密钥的时候才能激活集成电路使其正常工作。测试密钥和激活密钥都是集成电路设计者或者IP核设计者分发的,因此能够保证所有的集成电路测试、激活都在集成电路设计者或者IP核设计者的控制之下。
本发明设计一种在集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口控制单元,所述的集成电路芯片包含组合逻辑单元网表(1C)和N 条扫描链,扫描链1D1、扫描链1D2……扫描链1DX……扫描链1DN,它们共同构成一个扫描链集合{1D1,1D2...1DN},即扫描链集合1D,其中,扫描链的最大长度为λ;
所述的动态混淆封装接口控制单元,其特征在于:
动态混淆封装接口控制单元(1B)由指纹生成器(20A)、线性移位寄存器(20B)、结果验证单元(20C)、内部密钥寄存器(20D)和外部密钥寄存器(20E)构成,主要对动态混淆封装接口(1A)进行控制,并验证IP核或者集成电路的测试结果。
指纹生成器(20A)由老化敏感物理不可克隆函数(30A)、解析器(30B)、一次性可编程存储器(30C)和种子选择器(30D)。
老化敏感物理不可克隆函数(30A)用于生成集成电路或IP核的临时指纹,作为集成电路或者IP核的唯一标识,集成电路或者IP核设计者可以根据临时指纹生成集成电路或者IP核测试所需要的测试密钥,来临时解锁所述混淆封装接口,进行测试。在经过一段时间使用或者老化之后,老化敏感物理不可克隆函数(30A)生成的临时指纹失效,变为与临时指纹大不相同的老化后指纹,原本基于临时指纹的测试密钥失效,不能用于解锁集成电路或者IP核。
老化敏感物理不可克隆函数(30A)由振荡环阵列(50A)、指纹替换器(50B)和老化指示器(50C)构成。
振荡环阵列(50A)包含2M个由反相器和与门构成的振荡环,可以振荡产生不同频率的方波,计数器用来统计不同振荡环在固定时间生成的上升沿数目。
指纹替换器(50B)中包含M个比较器,比较器可以比较两个计数器的值,当左侧计数器的值较大时输出1否则输出0,在老化指示器(50C)输出的老化指示信号为0时,比较器生成的0,1序列就成为临时的指纹;在老化指示器(50C)输出的老化指示信号为1时,所有比较器的比较对象随机发生改变,重新输出比较后的结果,与原来的序列大不相同,即成为老化后的指纹。
老化指示器(50C)由老化路径组(60A)、老化余量缓冲器(60B)、启动触发器及捕捉触发器构成。当老化路径组(60A)由老化敏感路径(60A1)和可调节的老化不敏感路径(60A2)构成,在初始状态即未老化时,可调节的老化不敏感路径(60A2) 可以通过调节使得它的路径延时等于老化敏感路径(60A1)的路径延时,在老化之后,当老化敏感路径(60A1)和可调节的老化不敏感路径(60A2)的路径延时差大于老化余量缓冲器(60B)的延时时,老化指示信号就变为1,否则保持为0.
解析器(30B)可以对老化敏感物理不可克隆函数(30A)生成的临时指纹进行处理,得到一个和临时指纹完全不一样的指纹,称之为永久指纹,这一指纹用于在集成电路或者IP核激活正常使用时配合激活密钥使用。解析器(30B)的功能只有集成电路或者IP核设计者知道。
一次性可编程存储器(30C)用于存储解析器(30B)生成的永久指纹,永久指纹只有集成电路或者IP核设计者可以通过老化敏感物理不可克隆函数(30A)生成的临时指纹和解析器(30B)的功能计算得到,其他用户无法获得一次性可编程存储器(30C) 中存储的数据。
种子选择器(30D)用于在不同的测试模式下切换指纹生成器(20A)输出的数据,在集成电路或者IP核处于测试模式时,指纹生成器(20A)输出临时指纹给线性移位寄存器(20B)作为种子;在集成电路或者IP核处于激活模式时,指纹生成器(20A) 输出永久指纹给线性移位寄存器(20B)作为种子。
线性移位寄存器(20B)是一个β位的线性反馈移位寄存器构成的,该线性反馈移位寄存器由指纹生成器(20A)输出的临时/永久指纹作为种子,输出一个0、1构成的序列到内部密钥寄存器(20D)作为内部密钥。
结果验证单元(20C)由非线性移位寄存器(40A)、检测结果选择器(40B)和卷积压缩器(40C)构成。卷积压缩器(40C)可以将扫描链集合(1E)输出的N位数据压缩为1位,输入到检测结果选择器(40B)中。检测结果选择器(40B)根据集成电路或IP核的测试模式选择输出的数据,在结构测试时输出压缩后的扫描链输出数据,在功能测试时输出的时功能测试相关的传感器的数据。非线性移位寄存器(40A)以一次性可编程存储器(30C)中的永久指纹为种子,输出一个0,1序列,这个序列与检测结果选择器(40B)的输出进行异或运算,以混淆测试结果数据,混淆后的数据输出到集成电路或者IP核之外。
内部密钥寄存器(20D)是一个长度为λ的寄存器,可以存储线性移位寄存器(20B)生成的临时或者激活密内部钥。
外部密钥寄存器(20E)是一个长度为λ的寄存器,可以存储外部输入的临时或者激活密钥。只有内部密钥和外部密钥同时满足一定条件,才能解锁动态混淆封装接口(1A),使得集成电路或者IP核处于临时或者永久解锁的状态。
所述的动态混淆封装接口,其特征在于:
动态混淆封装接口(1A)由功能单元输入封装接口(10A)、功能单元输出封装接口(10B)、扫描链输入封装接口(10C)、扫描链输出封装接口(10D)、有限状态机集合(10E)和混淆逻辑单元集合(10F)构成。
功能单元输入封装接口(10A)和扫描链输入封装接口(10C)分别对集成电路或者IP核功能/扫描输入端口进行加密,在未解密时,外部数据无法正确的通过功能单元输入封装接口(10A)或扫描链输入封装接口(10C)输入到集成电路或者IP核内部;功能单元输出封装接口(10B)和扫描链输出封装接口(10D)分别对集成电路或者IP核功能/扫描输出端口进行加密,在未解密时,集成电路或者IP核内部的数据无法正确的通过功能单元输出封装接口(10B)或扫描链输出封装接口(10D)输出到集成电路或者IP核外部。
有限状态机集合(10E)合包含M个有限状态机,即{10E1,10E2...10EM},这些有限状态机的功能被设计为:连续接收α个正确的输入后就会被解锁,使得输入数据直接通过有限状态机,否则输入数据就无法通过有限状态机。M个有限状态机被随机的插入到功能单元输入封装接口(10A)和集成电路或者IP核输入端口之间,用于增加攻击者破解所述混淆封装接口的难度。
混淆逻辑单元集合(10F)包含P个组合逻辑单元,即{10F1,10F2...10FP},这些组合逻辑单元被随机的插入到集成电路或者IP核内部,用于混淆电路。
本发明设计的是一种在集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口控制单元,优点在于:
①所提出的结构可以根据IP核或者集成电路的老化程度生成两种不同的指纹,分别用于测试和激活。
②所提出的结构支持临时解锁集成电路或者IP核用于测试,在测试过后重新加密集成电路或者IP核。
③所提出的结构支持IP核或者集成电路设计者验证IP核或者集成电路的测试结果,只有通过验证的IP核或者集成电路才能得到用于激活的密钥,防止代工厂伪造测试结果。
④所提出的结构同时适用于集成电路和IP核。
⑤所提出的结构具有很小的面积开销,易于实现。
附图说明
图1是本发明设计的集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口的总体示意图。
图2是本发明设计的集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口的详细示意图。
图3是本发明设计的老化敏感物理不可克隆函数(30A)的示意图。
图4A是本发明设计老化敏感物理不可克隆函数(30A)中老化敏感路径组(60A) 中的两条路径时延随时间变化的仿真结果。
图4B是本发明设计不同制造参数下的测试电路测试时间分布直方图。
图5A是本发明设计防止冲刷攻击的波形仿真图。
图5B是本发明设计防止复位攻击的波形仿真图。
具体实施方式
下面将结合附图和实施例对本发明做进一步的详细说明。
对于集成电路的编程控制采用了Synopsys公司的Design Compiler2014,Primetime2014和ICCompiler2014软件。Design Compiler是Synopsys公司的逻辑综合优化工具,可以把硬件描述语言(HDL)描述的电路综合为跟工艺相关的门级电路。并且根据用户的设计要求,在时序和面积,时序和功耗上取得最佳的效果。它可以接受多种输入格式,如硬件描述语言、原理图和网表等,并产生多种性能报告,在缩短设计时间的同时提高读者设计性能。PrimeTime是Synopsys公司的静态时序和功耗分析软件,常被用来分析大规模、同步、数字ASIC的时序以及静态动态功耗。 IC Compiler是Synopsys公司下一代布局布线系统,通过将物理综合扩展到整个布局和布线过程以及签核驱动的设计收敛,来保证卓越的质量并缩短设计时间。上一代解决方案由于布局、时钟树和布线独立运行,有其局限性。ICCompiler的扩展物理综合(XPS)技术突破了这一局限,将物理综合扩展到了整个布局和布线过程。IC Compiler采用基于TCL的统一架构,实现了创新并利用了Synopsys公司的若干最为优秀的核心技术。作为一套完整的布局布线设计系统,它包括了实现下一代设计所必需的一切功能,如物理综合、布局、布线、时序、信号完整性(SI)优化、低功耗、可测性设计(DFT)和良率优化。
参见图1所示,本发明所设计的一种集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口,可内嵌在现有集成电路芯片上,动态混淆封装接口 (1A)对IP核或者集成电路的输入输出接口加密,使得未经授权的使用者无法正常使用IP核或者集成电路,动态混淆封装接口控制单元(1B)用以控制动态混淆封装接口(1A)加密和解密。本发明所设计的结构同时适用于集成电路和IP核,能够防止IP核或者集成电路被非法生产、使用。
(一)动态混淆封装接口(1A):
动态混淆封装接口(1A)由功能单元输入封装接口(10A)、功能单元输出封装接口(10B)、扫描链输入封装接口(10C)、扫描链输出封装接口(10D)、有限状态机集合(10E)和混淆逻辑单元集合(10F)构成。参见图2所示,IP核或集成电路每个输入输出端口都有一个三输入异或门,分别属于功能单元输入封装接口(10A)、功能单元输出封装接口(10B)、扫描链输入封装接口(10C)和扫描链输出封装接口(10D)。其中,功能单元输入封装接口(10A)和扫描链输入封装接口(10C)中的三输入异或门的三个输入信号分别来自内部密钥寄存器(20D)中的一位、外部密钥寄存器(20E) 中的一位和IP核或者集成电路实际的外部输入信号,功能单元输入封装接口(10A) 和扫描链输入封装接口(10C)中的三输入异或门的输出信号为实际输入到IP核或者集成电路中的信号。功能单元输出封装接口(10B)和扫描链输出封装接口(10D)中的三输入异或门的三个输入信号分别来自内部密钥寄存器(20D)中的一位、外部密钥寄存器(20E)中的一位和IP核或者集成电路产生的要输出的外部输入信号,功能单元输出封装接口(10B)和扫描链输出封装接口(10D)中的三输入异或门的输出信号为IP核或者集成电路实际输出到外部的信号。有限状态机集合(10E)合包含M 个有限状态机,即{10E1,10E2...10EM},这M个有限状态机被随机的插入到功能单元输入封装接口(10A)和IP核或者集成电路之间,用于增加攻击者破解所述混淆封装接口的难度。这些有限状态机的功能被设计为:连续接收α个正确的输入后就会被解锁,使得输入数据直接通过有限状态机,否则输入数据就无法通过有限状态机。混淆逻辑单元集合(10F)包含Y个反相器单元,这Y个反相器单元被随机的插入到功能单元输入封装接口(10A)和IP核或者集成电路之间,或功能单元输出封装接口(10B) 和IP核或者集成电路之间,同时为了防止这些反相器被识别出来,本设计推荐使用德摩根定律,将这些反相器移动到更深的逻辑层次。
动态混淆封装接口(1A)受到内部密钥寄存器(20D)和外部密钥寄存器(20E) 的控制,只有当来自内部密钥寄存器(20D)和外部密钥寄存器(20E)的信号使得动态混淆封装接口(1A)输入输出信号完全一致时,所设计的动态混淆封装接口(1A) 才会被正确解锁,使用者才能使用IP核或集成电路进行测试或者激活。
(二)指纹生成器(20A):
参见图2所示,指纹生成器(20A)由老化敏感物理不可克隆函数(30A)、解析器(30B)、一次性可编程存储器(30C)和种子选择器(30D)。所设计的动态混淆封装接口的操作主要基于两种控制信号:临时指纹和永久指纹。指纹生成器(20A)主要的作用就是生成这两种信号。通常,IP核或者集成电路在制造出来之后,基于临时指纹进行测试,基于永久指纹进行激活。临时指纹由老化敏感物理不可克隆函数 (30A)生成,老化敏感物理不可克隆函数(30A)的结构参加图3所示。在IP核或者集成电路开始测试之前,老化敏感物理不可克隆函数(30A)生成一个m位的临时指纹,同时这个临时指纹经过解析器(30B)的处理变化为永久指纹,并存储在一次性可编程存储器(30C)中。种子选择器(30D)可以在IP核或者集成电路进行测试时输出临时指纹,在IP核或者集成电路激活时选择输出永久指纹。解析器(30B)的结构功能只有IP核或者集成电路设计者知道。代工厂会收集每个IP核或者集成电路的临时指纹,并发送给IP核或者集成电路设计者。但是代工厂无法获取每个IP 核或者集成电路的永久指纹,永久指纹只有IP核或者集成电路设计者可以根据临时指纹和解析器(30B)的功能结构计算得知。在经过一段给定的测试时间之后,IP核或者集成电路被老化,老化敏感物理不可克隆函数(30A)的输出发生改变,由临时指纹变为差异很大的老化后的指纹。代工厂或者测试人员无法继续基于临时指纹来临时激活IP核或者集成电路进行使用测试。
参加图3所示,老化敏感物理不可克隆函数(30A)由振荡环阵列(50A)、指纹替换器(50B)和老化指示器(50C)构成。振荡环阵列(50A)中每个振荡环都会产生一个不同频率的方波,然后由计数器在给定时间统计每个振荡环生成的上升沿数目,计数器的计数值正比与所统计的振荡环的频率。指纹替换器(50B)中的比较器通过两两比较计数器的技术值,输出一个m位的0,1序列,作为临时或者老化后的指纹。在未老化状态时,指纹替换器(50B)直接输出临时指纹,在经过一段给定的测试时间后,指纹替换器(50B)会随机改变比较器的比较对象,从而输出一个和临时指纹差异很大的0,1序列,即老化后的指纹。老化指示器(50C)是通过比较老化敏感路径组(60A)中两条路径的时延差异,来判断IP核或者集成电路是否已经经过一段给定的测试时间,即达到给定的老化阈值。路径的老化敏感程度取决于构成路径的逻辑单元的大小、初始阈值电压等因素。研究表明,较小的、阈值电压较高的逻辑单元对老化更加敏感,通常被用于构建老化敏感路径(60A1);而较大的、阈值电压较低的逻辑单元对老化不太敏感,通常用于构建可调节的老化不敏感路径(60A2)。当老化敏感路径组(60A)中的路径时延差达到老化余量缓冲器(60B)的时延时,老化指示器(50C)的输出老化指示信号就变为高电平,指示指纹替换器(50B)将输出由临时指纹改变为老化后的指纹;否则维持低电平。
(三)线性移位寄存器(20B):
线性移位寄存器(20B)用来生成动态混淆封装接口控制单元(1B)内部密钥。在IP核或者集成电路进行测试时,线性移位寄存器(20B)使用指纹生成器(20A) 输出的临时指纹作为种子;在IP核或者集成电路通过验证进行激活时,线性移位寄存器(20B)使用指纹生成器(20A)输出的永久指纹作为种子。在IP核或者集成电路进行扫描测试时,线性移位寄存器(20B)生成的密钥与外部的测试向量分别同步输入到内部密钥寄存器(20D)和扫描链集合(1D)中。在IP核或者集成电路进行最终激活或者功能测试时,线性移位寄存器(20B)生成的密钥直接输入到内部密钥寄存器(20D)。需要注意的是,线性移位寄存器(20B)的结构功能只有IP核或者集成电路设计者知道,也就意味着即便攻击者得到了临时指纹,也无法推测输入到内部密钥寄存器(20D)中的内部密钥。
(四)内部密钥寄存器(20D)和外部密钥寄存器(20E):
对于每个制造出来的IP核或者集成电路,由线性移位寄存器(20B)基于临时指纹生成的内部密钥是独一无二的,这个内部密钥被用于锁定动态混淆封装接口(1A)。要解锁动态混淆封装接口(1A),就必须输入一个与内部密钥对应的外部密钥。内部密钥寄存器(20D)和外部密钥寄存器(20E)是用来存储内部密钥和外部密钥的。假定扫描链集合(1D)中最长的扫描链的长度为λ,则内部密钥寄存器(20D)和外部密钥寄存器(20E)均为λ位。在IP核或者集成电路进行扫描测试时,内部密钥和外部密钥随着测试向量的输入分别同步扫描输入到内部密钥寄存器(20D)和外部密钥寄存器(20E)中。参加图2所示,内部密钥寄存器(20D)和外部密钥寄存器(20E) 的第一位分别连接到扫描链输入封装接口(10C)中的三端口异或门的两个输入端口;内部密钥寄存器(20D)和外部密钥寄存器(20E)的最后一位分别连接到扫描链输出封装接口(10D)中的三端口异或门的两个输入端口。内部密钥寄存器(20D)和外部密钥寄存器(20E)除第一位和最后一位,剩余的位分别随机连接到功能单元输入封装接口(10A)和功能单元输出封装接口(10B)中的三端口异或门的两个输入端口。需要注意的是功能单元输入封装接口(10A)和扫描链输入封装接口(10C)中的三端口异或门的三个输入分别来自内部密钥寄存器(20D)、外部密钥寄存器(20E)和IP 核或者集成电路外部输入管脚。功能单元输出封装接口(10B)和扫描链输出封装接口(10D)中的三端口异或门的三个输入分别来自内部密钥寄存器(20D)、外部密钥寄存器(20E)和IP核或者集成电路输出数据。
内部密钥寄存器(20D)和外部密钥寄存器(20E)有三种工作模式:扫描测试、功能测试和激活模式。
扫描测试模式:IP核或者集成电路中的内部密钥被用于锁定动态混淆封装接口(1A)。要对IP核或者集成电路进行扫描测试,必须要解锁扫描链输入封装接口(10C) 和扫描链输出封装接口(10D),就必须输入一个与内部密钥对应的外部密钥。内部密钥和外部密钥共同作用解锁扫描链输入封装接口(10C)和扫描链输出封装接口(10D) 需要满足的条件为:内部测试向量/响应(Iw/Ow)=外部测试向量/响应(I/O)
Figure DEST_PATH_FDA0001688571910000051
(内部密钥
Figure DEST_PATH_FDA0001688571910000052
外部密钥),其中内部测试向量/响应指的是IP核或者集成电路实际接收到的测试向量或者生成的测试响应,外部测试向量/响应指的是测试人员输入给扫描链输入封装接口(10C)的测试向量,或者从扫描链输出封装接口(10D)接收到的测试响应,
Figure BDA0001688571920000133
代表进行异或操作。根据上述条件,IP核或者集成电路设计者可以基于临时指纹计算出IP核或者集成电路的内部密钥,然后根据内部密钥计算得到对应的外部密钥,并发送给测试人员,用以解锁扫描链输入封装接口(10C)和扫描链输出封装接口(10D)进而实施扫描测试。根据上述条件,IP核或者集成电路设计者可以保证外部测试向量对所有的IP核或者集成电路保持一致,只需要改变外部密钥即可解锁不同的IP核或者集成电路。这样可以降低IP核或者集成电路设计者和测试人员的数据交换量和测试的复杂程度。
功能测试模式:在通过扫描测试后,IP核或者集成电路需要进行功能测试,如速度分级测试等,保证IP核或者集成电路能够在给定的条件下正常工作,没有缺陷。在功能测试模式下,需要解锁功能单元输入封装接口(10A)和功能单元输出封装接口(10B)进行测试,此时被测IP核或者集成电路的内部密钥与扫描测试测内部密钥相同,但是需要输入一个新的外部密钥。参见图2所示,功能单元输入封装接口(10A) 和功能单元输出封装接口(10B)中的任意一个三输入端口的异或门都同时被内部密钥寄存器(20D)和外部密钥寄存器(20E)中随机的一位控制,例如,功能单元输入封装接口(10A)中的第H个三输入端口异或内部密钥寄存器(20D)第i位和外部密钥寄存器(20E)中的第j位共同控制,其中1≤i,j≤λ。内部密钥寄存器(20D)和外部密钥寄存器(20E)与功能单元输入封装接口(10A)和功能单元输出封装接口(10B) 中的异或门的连接方式只有IP核或者集成电路设计者知道。考虑到混淆逻辑单元集合(10F)的存在,要解锁功能单元输入封装接口(10A)和功能单元输出封装接口(10B) 中由内部密钥的第i位和外部密钥的第j位所控制的异或门,需要满足以下条件:内部密钥的第i位
Figure DEST_PATH_FDA0001688571910000061
外部密钥的第j位
Figure DEST_PATH_FDA0001688571910000062
OL=1,其中1≤i,j≤λ,OL指得是内部密钥的第i位和外部密钥的第j位所控制的异或门对应的输入/输出端口上是否有混淆单元,如果有,则OL=1,如果没有,则OL=0。因此,只要内部密钥和外部密钥共同满足功能单元输入封装接口(10A)和功能单元输出封装接口(10B)中所有的异或门的解锁条件,即可解锁功能单元输入封装接口(10A)和功能单元输出封装接口(10B)。基于临时指纹、内部密钥寄存器(20D)和外部密钥寄存器(20E)与单元输入封装接口(10A)和功能单元输出封装接口(10B)的连接方式,IP核或者集成电路设计者总是可以计算出响应的外部密钥。
激活模式:在通过扫描测试和功能测试,同时测试结果通过IP核或者集成电路设计者的验证之后,被测IP核或者集成电路就可以进行最终的激活。线性移位寄存器(20B)使用永久指纹作为种子生成一个新的内部密钥,IP核或者集成电路设计者基于临时指纹计算出永久密钥和新的内部密钥,并根据功能单元输入封装接口(10A) 和功能单元输出封装接口(10B)的解锁条件计算出最终用于激活的外部密钥。测试人员或者代工厂将用于激活的外部密钥输入对应的IP核或者集成电路中,IP核或者集成电路就能够被最终激活进行正常使用。需要注意的是,在激活模式下,用于激活的外部密钥被存放在IP核或者集成电路中的只能写入一次的安全存储器中,测试人员只有一次写入外部密钥的机会,可以有效防止攻击者多次写入外部密钥,尝试猜出正确的外部密钥。
(五)结果验证单元(20C):
结果验证单元(20C)用于防止代工产谎报IP核或者集成电路的测试结果,从而骗取多余的用于激活的外部密钥,将有缺陷和不符合规范的IP核或者集成电路售卖出去。在扫描测试模式下,扫描链输出封装接口(10D)的输入被卷积压缩器(40C) 压缩成宽度为1位的0、1序列,然后与非线性移位寄存器(40A)产生的序列依次做异或运算进行混淆,成为结构测试印迹并输出到IP核或者集成电路之外。结构测试印迹包含了IP核或者集成电路是否通过扫描测试,以及缺陷存在的情况,只有IP 核或者集成电路设计者可以根据卷积压缩器(40C)和非线性移位寄存器(40A)的结构,从结构测试印迹中解密得到实际的测试结果,代工厂或者测试人员无法从结构测试印迹中获取测试结果的信息。在功能测试模式下,来自功能测试相关传感器的测试结果与非线性移位寄存器(40A)产生的序列依次做异或运算进行混淆,成为功能测试印迹。功能测试印迹包含了IP核或者集成电路是否通过功能测试,以及不合格的情况,只有IP核或者集成电路设计者可以根据卷积压缩器(40C)和非线性移位寄存器(40A)的结构,从功能测试印迹中解密得到实际的测试结果,代工厂或者测试人员无法从功能测试印迹中获取测试结果的信息。如此,代工厂或测试人员无法伪造测试结果以索要过量的用于激活的外部密钥。
(六)基于动态混淆封装接口的测试流程:
集成了本发明所涉及的动态混淆封装接口的IP核或集成电路的测试流程如下:
测试准备:在测试之前,IP核或者集成电路设计者首先针对要测试的IP核或者集成电路生成对应的测试向量,例如检测固定型故障、桥接故障等的扫描测试向量和进行速度分级的功能测试向量。然后扫描测试向量进行混淆,连同功能测试向量一起发送给代工厂。所有的IP核或者集成电路测试用的测试向量都是通用的。在IP核或者集成电路制造出来之后,IP核或者集成电路被动态混淆封装接口(1A)锁定,每个IP核或者集成电路都有一个独一无二的临时指纹。代工厂将这些临时指纹收集起来发送给IP核或者集成电路设计者。IP核或者集成电路设计者根据临时指纹和动态混淆封装接口控制单元(1B)的结构,计算出对应的测试用的外部密钥,并发送给代工厂。
扫描测试:代工厂在接收到测试用的外部密钥后,就针对IP核或者集成电路进行测试。在扫描测试中,代工厂将通用的扫描测试向量输入到IP核或者集成电路,与此同时,对应的扫描测试用的外部密钥同步的输入IP核或者集成电路,用来解锁扫描链输入封装接口(10C)和扫描链输出封装接口(10D)。若是IP核或者集成电路通过了扫描测试,则可继续进行功能测试,否则有故障的IP核或者集成电路就被丢弃。在这个过程中,每个IP核或者集成电路都会生成一个独一无二的扫描测试印迹。
功能测试:在功能测试中,代工厂将功能测试用的外部密钥输入到对应的IP核或者集成电路,临时解锁功能单元输入封装接口(10A)和功能单元输出封装接口(10B),然后施加通用的功能测试向量进行测试,这些测试包含速度分级测试、电压分级测试等。在这个过程中,每个IP核或者集成电路都会生成一个独一无二的功能测试印迹。
最终激活:在通过所有的测试之后,代工厂将合格的IP核或者集成电路的编号、临时指纹、扫描测试印迹和功能测试印迹一起发送给IP核或者集成电路设计者进行验证。如果验证结果显示代工厂没有谎报测试结果,则IP核或者集成电路设计者可以给每个合格的IP核或者集成电路计算一个用于激活的外部密钥,发送给代工厂,用于永久激活IP核或者集成电路;否则,不予以激活。
测试时间之后:每个IP核或者集成电路在制造出来之后,都有一段时间用于测试,称之为测试时间,在这段时间,IP核或者集成电路可以基于临时指纹进行临时激活,以便测试。但是,在过了测试时间之后,指纹生成器(20A)生成的临时指纹失效,转变未老化后的指纹,基于临时指纹进行激活的外部密钥失效,无法用于IP 核或者集成电路的解锁。此时,只能使用基于永久指纹激活的外部密钥才能正确解锁 IP核或者集成电路。未通过测试或者未通过IP核或者集成电路设计者验证的IP核或者集成电路无法得到用于永久激活的外部密钥,在测试时间之后,即被锁定,无法再次被使用,杜绝代工厂过量生产或者将有缺陷的产品售卖到市场。
实施例1
应用本发明设计的在集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口,进行测试:
本发明所提出的在集成电路内部的用来防止集成电路和知识产权核被剽窃的动态混淆封装接口被插入到了若干测试电路中,如OpenSPARCT2处理器中的FGU (FloatingPoint and Graphic Unit,浮点运算和图像处理模块)模块,和Gaisler 芯片中的Leon3、Leon3mp和VGA-LCD模块中,所有的测试电路在综合时设置的功能时钟为100MHz,扫描时钟为10MHz,其扫描链的最大长度为64(即λ=64),需要指出,由于集成电路芯片中的扫描单元的数目不一定是64的整数倍,综合工具会自动平衡各扫描链的长度,使其最大长度为64,且各扫描链的长度接近。上述被插入片上调节结构的电路都在32nm的技术节点上经过了仿真验证。
首先估算本发明的面积、功耗和测试向量计算时间的开销。面积开销指的是新插入集成电路芯片的结构的面积与芯片原有面积之比,功耗开销指新插入集成电路芯片的结构在测试过程中产生的功耗与原来芯片在测试过程中的功耗之比,计算时间开销指将原来的测试向量进行混淆,得到实际交付测试者的混淆后的向量,这个混淆过程所需要的时间。在实施所设计的动态混淆封装接口时,采用能生成16位临时指纹的老化敏感物理不可克隆函数(30A)、16比特的线性移位寄存器(20B)。在不同测试电路中的功耗和面积开销如下表所示,面积开销在0.959%-2.267%之间,功耗开销在 1.012%-1.892%之间。使用一台配备20个2.4GHz CPU的Linux工作站,采用一个单线程的Python语言写成的计算脚本,对于不同测试电路,混淆一个测试向量所需要的时间在59.3-234.9μs,计算开销也是可接受的。
Figure BDA0001688571920000161
表1
IP核或者集成电路设计者和代工厂之间的数据交换量如下表所示,考虑到每个功能传感器产生一个5比特的结果,结果验证单元(20C)产生的功能测试印迹的数据量在230-1020比特之间。结果验证单元(20C)产生的结构测试印迹的长度等于所有扫描测试的测试向量的长度,位宽为1位,即结构测试印迹的总的数据量为所有扫描测试向量的1/N,其中N为测试电路的扫描链集合(1D)中包含的扫描链的数目。可以看出,因为所设计的动态混淆封装接口所产生的额外数据量较小,可以接受。
Figure BDA0001688571920000171
表2
本发明设计的动态混淆封装接口给与代工厂一段时间进行测试,这段时间称之为测试时间,在测试时间中,IP核或者集成电路可以基于临时指纹进行临时激活,在这段时间之外,IP核或者集成电路无法基于临时指纹激活,只能基于永久指纹进行激活。为了保证不同IP核或者集成电路都具有相近的测试时间,我们在模拟IP核或者集成电路在制造过程中的不确定性,对同一个测试电路的100个具有不同制造参数的模型进行老化仿真,其中老化敏感物理不可克隆函数(30A)中的老化敏感路径组 (60A)中的两条路径的时延随着时间变化的结果如图4A所示,不同模型的测试时间分布直方图如图4B所示,可以看到95%的模型的测试时间在2-3个月,所有的模型的测试时间均在4个月之内。
下面对本发明进行安全性分析,代工厂或者攻击者可能会侵犯IP核或者集成电路设计者对IP核或者集成电路的所有权,或者攻破本发明设计的动态混淆封装接口进而窃取IP核或者集成电路的知识产权。
过量生产/使用IP核或者集成电路:不可信的代工厂和集成电路设计者可能在未经IP核设计者的允许下,私自将IP核用在未经授权的集成电路中。同样,不可信的代工厂可以私自制造超过协议数目的集成电路。但是,通过集成本发明设计的动态混淆封装接口,只有通过测试结果验证的IP核或者集成电路才能得到激活用的外部密钥,非法生产使用的IP核或者集成电路无法被激活正常使用。因此,本发明设计的动态混淆封装接口可以防止过量生产/使用IP核或者集成电路。
售卖有故障的IP核或者集成电路:代工厂可能会把没有通过扫描测试的IP核或者集成电路,即有故障的IP核或者集成电路,售卖到市场上。这样代工厂就得到了不法利益,同时损害了IP核或者集成电路设计者的名声。通过集成本发明设计的动态混淆封装接口,扫描测试的结果通过结果验证单元(20C)的处理生产结构测试印迹,其中包含了IP核或者集成电路的扫描测试的结果,代工厂无法获取扫描测试印迹中的信息,也就无法谎报测试结果。只有通过了IP核或者集成电路设计者的验证,代工厂才能得到对应的激活用的外部密钥。
售卖不合格的IP核或者集成电路:不合格的IP核或者集成电路是指IP核或者集成电路在特定条件下不能正常工作,即没有通过功能测试,例如,可以在较低频率下工作,但是在较高频率下无法正常工作。为了获取利益,代工厂也可能将这些不合格的IP核或者集成电路售卖到市场。通过集成本发明设计的动态混淆封装接口,功能测试的结果通过结果验证单元(20C)的处理生产功能测试印迹,其中包含了IP 核或者集成电路功能测试的结果,代工厂无法获取功能测试印迹中的信息,也就无法谎报测试结果。只有通过了IP核或者集成电路设计者的验证,代工厂才能得到对应的激活用的外部密钥。
针对密钥的攻击:攻击者为了得到用于激活的外部密钥,可以通过两种方式,1)窃取内部密钥寄存器(20D)中的内部密钥,通过已经激活的IP核或者集成电路的内部密钥和外部密钥的关系,可以计算任何未激活的IP核或者集成电路对应的外部密钥;2)直接通过暴力攻击,猜测激活用的外部密钥。
攻击者希望使用冲刷攻击将内部密钥寄存器(20D)中的内部密钥直接输出到IP核或者集成电路外部。但是扫描链输入封装接口(10C)被内部密钥寄存器(20D)和外部密钥寄存器(20E)中的第一位控制;扫描链输出封装接口(10D)被内部密钥寄存器(20D)和外部密钥寄存器(20E)中的最后一位控制。在进行扫描测试时,扫描测试的向量、外部密钥和内部密钥同步的分别输入到扫描链集合(1D)、内部密钥寄存器(20D)和外部密钥寄存器(20E)中。在进行冲刷攻击时,扫描输入的测试向量和扫描输出响应的关系为:实际扫描输入(Iw)=外部扫描输入(I)
Figure 476193DEST_PATH_FDA0001688571910000061
(内部密钥寄存器第一位
Figure 393333DEST_PATH_FDA0001688571910000061
外部密钥寄存器第一位);外部扫描输出(O)=实际扫描输入(Iw)
Figure 173070DEST_PATH_FDA0001688571910000062
(内部密钥寄存器第一位
Figure 568280DEST_PATH_FDA0001688571910000061
外部密钥寄存器第一位)=外部扫描输入(I)。即在进行冲刷攻击时,无论内部密钥、外部密钥是何值,扫描链中扫描输出的数据和λ个时钟周期前扫描输入的数据总是相同的,其中λ为扫描链的长度。针对冲刷攻击的仿真波形图参见图5A所示,其中λ为64。
攻击者可能使用复位攻击,通过观测在IP核或者集成电路复位之后,扫描链的输出,来获取内部密钥寄存器(20D)中的内部密钥。但是,线性移位寄存器(20B)、内部密钥寄存器(20D)和外部密钥寄存器(20E)会随着IP核或者集成电路同步复位,在复位后的λ个时钟周期内,扫描链的输出保持为0不变,因而无法观测到与内部密钥相关的信息。针对复位攻击的仿真波形图参见图5B所示,其中λ为64。
针对暴力攻击,由于IP核或者集成电路的用于激活的外部密钥只能输入一次,攻击者只有一次机会去尝试正确的外部密钥,因而几乎不可能一次性猜对正确的外部密钥。
布尔可满足性攻击(Boolean Satisfiability attack):攻击者可以利用已经激活的IP核或者集成电路,给定输入数据,到的正确的输出数据。然后利用这个信息,在未激活的IP核或者集成电路上不断尝试新的用于激活的外部密钥,直到所尝试的激活用的外部密钥能够使得给定的输入对应的输出与已经激活的IP核或者集成电路相同。但是,由于IP核或者集成电路的用于激活的外部密钥只能输入一次,攻击者只有一次机会去尝试正确的外部密钥,因而攻击者无法使用布尔可满足性攻击。

Claims (8)

1.一种防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于,包括:指纹生成器(20A)、线性移位寄存器(20B)、结果验证单元(20C)、内部密钥寄存器(20D)和外部密钥寄存器(20E);对动态混淆封装接口(1A)进行控制,并验证IP核或者集成电路的测试结果;
指纹生成器(20A)由老化敏感物理不可克隆函数(30A)、解析器(30B)、一次性可编程存储器(30C)和种子选择器(30D)组成;
老化敏感物理不可克隆函数(30A)用于生成集成电路或IP核的临时指纹,作为集成电路或者IP核的唯一标识,集成电路或者IP核设计者根据临时指纹生成集成电路或者IP核测试所需要的测试密钥,来临时解锁所述混淆封装接口,进行测试;在经过使用或者老化之后,老化敏感物理不可克隆函数(30A)生成的临时指纹失效,变为与临时指纹大不相同的老化后指纹,原本基于临时指纹的测试密钥失效,不能用于解锁集成电路或者IP核;
老化敏感物理不可克隆函数(30A)由振荡环阵列(50A)、指纹替换器(50B)和老化指示器(50C)构成;
振荡环阵列(50A)包含2M个由反相器和与门构成的振荡环,振荡产生不同频率的方波,计数器用来统计不同振荡环在固定时间生成的上升沿数目;
指纹替换器(50B)中包含M个比较器,比较器比较两个计数器的值,当左侧计数器的值较大时输出1否则输出0,在老化指示器(50C)输出的老化指示信号为0时,比较器生成的0,1序列就成为临时的指纹;在老化指示器(50C)输出的老化指示信号为1时,所有比较器的比较对象随机发生改变,重新输出比较后的结果,与原来的序列大不相同,即成为老化后的指纹;
老化指示器(50C)由老化路径组(60A)、老化余量缓冲器(60B)、启动触发器及捕捉触发器构成;当老化路径组(60A)由老化敏感路径(60A1)和可调节的老化不敏感路径(60A2)构成,在初始状态即未老化时,可调节的老化不敏感路径(60A2)通过调节使得它的路径延时等于老化敏感路径(60A1)的路径延时,在老化之后,当老化敏感路径(60A1)和可调节的老化不敏感路径(60A2)的路径延时差大于老化余量缓冲器(60B)的延时时,老化指示信号就变为1,否则保持为0;
解析器(30B)对老化敏感物理不可克隆函数(30A)生成的临时指纹进行处理,得到一个和临时指纹完全不一样的指纹,称之为永久指纹,这一指纹用于在集成电路或者IP核激活正常使用时配合激活密钥使用;解析器(30B)的功能只有集成电路或者IP核设计者知道;
一次性可编程存储器(30C)用于存储解析器(30B)生成的永久指纹,永久指纹只有集成电路或者IP核设计者通过老化敏感物理不可克隆函数(30A)生成的临时指纹和解析器(30B)的功能计算得到,其他用户无法获得一次性可编程存储器(30C)中存储的数据;
种子选择器(30D)用于在不同的测试模式下切换指纹生成器(20A)输出的数据,在集成电路或者IP核处于测试模式时,指纹生成器(20A)输出临时指纹给线性移位寄存器(20B)作为种子;在集成电路或者IP核处于激活模式时,指纹生成器(20A)输出永久指纹给线性移位寄存器(20B)作为种子;
线性移位寄存器(20B)是一个β位的线性反馈移位寄存器构成的,该线性反馈移位寄存器由指纹生成器(20A)输出的临时/永久指纹作为种子,输出一个0、1构成的序列到内部密钥寄存器(20D)作为内部密钥;
结果验证单元(20C)由非线性移位寄存器(40A)、检测结果选择器(40B)和卷积压缩器(40C)构成;卷积压缩器(40C)将扫描链集合(1E)输出的N位数据压缩为1位,输入到检测结果选择器(40B)中;检测结果选择器(40B)根据集成电路或IP核的测试模式选择输出的数据,在结构测试时输出压缩后的扫描链输出数据,在功能测试时输出的时功能测试相关的传感器的数据;非线性移位寄存器(40A)以一次性可编程存储器(30C)中的永久指纹为种子,输出一个0,1序列,这个序列与检测结果选择器(40B)的输出进行异或运算,以混淆测试结果数据,混淆后的数据输出到集成电路或者IP核之外;
内部密钥寄存器(20D)是一个长度为λ的寄存器,存储线性移位寄存器(20B)生成的临时或者激活密内部钥;
外部密钥寄存器(20E)是一个长度为λ的寄存器,存储外部输入的临时或者激活密钥;内部密钥和外部密钥解锁动态混淆封装接口(1A),使得集成电路或者IP核处于临时或者永久解锁的状态;
动态混淆封装接口(1A)由功能单元输入封装接口(10A)、功能单元输出封装接口(10B)、扫描链输入封装接口(10C)、扫描链输出封装接口(10D)、有限状态机集合(10E)和混淆逻辑单元集合(10F)构成;
功能单元输入封装接口(10A)和扫描链输入封装接口(10C)分别对集成电路或者IP核功能/扫描输入端口进行加密,在未解密时,外部数据无法正确的通过功能单元输入封装接口(10A)或扫描链输入封装接口(10C)输入到集成电路或者IP核内部;功能单元输出封装接口(10B)和扫描链输出封装接口(10D)分别对集成电路或者IP核功能/扫描输出端口进行加密,在未解密时,集成电路或者IP核内部的数据无法正确的通过功能单元输出封装接口(10B)或扫描链输出封装接口(10D)输出到集成电路或者IP核外部;
有限状态机集合(10E)合包含M个有限状态机,即{10E1,10E2...10EM},这些有限状态机的功能被设计为:连续接收α个正确的输入后就会被解锁,使得输入数据直接通过有限状态机,否则输入数据就无法通过有限状态机;M个有限状态机被随机的插入到功能单元输入封装接口(10A)和集成电路或者IP核输入端口之间,用于增加攻击者破解所述混淆封装接口的难度;
混淆逻辑单元集合(10F)包含P个组合逻辑单元,即{10F1,10F2...10FP},这些组合逻辑单元被随机的插入到集成电路或者IP核内部,用于混淆电路;
线性移位寄存器(20B)用来生成动态混淆封装接口控制单元(1B)内部密钥;在IP核或者集成电路进行测试时,线性移位寄存器(20B)使用指纹生成器(20A)输出的临时指纹作为种子;在IP核或者集成电路通过验证进行激活时,线性移位寄存器(20B)使用指纹生成器(20A)输出的永久指纹作为种子;在IP核或者集成电路进行扫描测试时,线性移位寄存器(20B)生成的密钥与外部的测试向量分别同步输入到内部密钥寄存器(20D)和扫描链集合(1D)中;在IP核或者集成电路进行最终激活或者功能测试时,线性移位寄存器(20B)生成的密钥直接输入到内部密钥寄存器(20D);线性移位寄存器(20B)的结构功能只有IP核或者集成电路设计者知道,即便攻击者得到了临时指纹,也无法推测输入到内部密钥寄存器(20D)中的内部密钥;
对于每个制造出来的IP核或者集成电路,由线性移位寄存器(20B)基于临时指纹生成的内部密钥是独一无二的,这个内部密钥被用于锁定动态混淆封装接口(1A);要解锁动态混淆封装接口(1A),就必须输入一个与内部密钥对应的外部密钥;内部密钥寄存器(20D)和外部密钥寄存器(20E)是用来存储内部密钥和外部密钥的;设扫描链集合(1D)中最长的扫描链的长度为λ,则内部密钥寄存器(20D)和外部密钥寄存器(20E)均为λ位;在IP核或者集成电路进行扫描测试时,内部密钥和外部密钥随着测试向量的输入分别同步扫描输入到内部密钥寄存器(20D)和外部密钥寄存器(20E)中;内部密钥寄存器(20D)和外部密钥寄存器(20E)的第一位分别连接到扫描链输入封装接口(10C)中的三端口异或门的两个输入端口;内部密钥寄存器(20D)和外部密钥寄存器(20E)的最后一位分别连接到扫描链输出封装接口(10D)中的三端口异或门的两个输入端口;内部密钥寄存器(20D)和外部密钥寄存器(20E)除第一位和最后一位,剩余的位分别随机连接到功能单元输入封装接口(10A)和功能单元输出封装接口(10B)中的三端口异或门的两个输入端口;功能单元输入封装接口(10A)和扫描链输入封装接口(10C)中的三端口异或门的三个输入分别来自内部密钥寄存器(20D)、外部密钥寄存器(20E)和IP核或者集成电路外部输入管脚;功能单元输出封装接口(10B)和扫描链输出封装接口(10D)中的三端口异或门的三个输入分别来自内部密钥寄存器(20D)、外部密钥寄存器(20E)和IP核或者集成电路输出数据。
2.根据权利要求1所述的防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于:动态混淆封装接口的操作基于两种控制信号:临时指纹和永久指纹;指纹生成器(20A)的作用就是生成这两种信号;IP核或者集成电路在制造出来之后,基于临时指纹进行测试,基于永久指纹进行激活;临时指纹由老化敏感物理不可克隆函数(30A)生成,在IP核或者集成电路开始测试之前,老化敏感物理不可克隆函数(30A)生成一个m位的临时指纹,同时这个临时指纹经过解析器(30B)的处理变化为永久指纹,并存储在一次性可编程存储器(30C)中;种子选择器(30D)在IP核或者集成电路进行测试时输出临时指纹,在IP核或者集成电路激活时选择输出永久指纹;解析器(30B)的结构功能只有IP核或者集成电路设计者知道;代工厂会收集每个IP核或者集成电路的临时指纹,并发送给IP核或者集成电路设计者;但是代工厂无法获取每个IP核或者集成电路的永久指纹,永久指纹只有IP核或者集成电路设计者根据临时指纹和解析器(30B)的功能结构计算得知;在经过测试时间之后,IP核或者集成电路被老化,老化敏感物理不可克隆函数(30A)的输出发生改变,由临时指纹变为差异很大的老化后的指纹;代工厂或者测试人员无法继续基于临时指纹来临时激活IP核或者集成电路进行使用测试。
3.根据权利要求1所述的防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于:振荡环阵列(50A)中每个振荡环都会产生一个不同频率的方波,然后由计数器在给定时间统计每个振荡环生成的上升沿数目,计数器的计数值正比与所统计的振荡环的频率;指纹替换器(50B)中的比较器通过两两比较计数器的技术值,输出一个m位的0,1序列,作为临时或者老化后的指纹;在未老化状态时,指纹替换器(50B)直接输出临时指纹,在经过一段给定的测试时间后,指纹替换器(50B)会随机改变比较器的比较对象,从而输出一个和临时指纹差异很大的0,1序列,即老化后的指纹;老化指示器(50C)是通过比较老化敏感路径组(60A)中两条路径的时延差异,来判断IP核或者集成电路是否已经经过一段给定的测试时间,即达到给定的老化阈值;路径的老化敏感程度取决于构成路径的逻辑单元的大小、初始阈值电压的因素;当老化敏感路径组(60A)中的路径时延差达到老化余量缓冲器(60B)的时延时,老化指示器(50C)的输出老化指示信号就变为高电平,指示指纹替换器(50B)将输出由临时指纹改变为老化后的指纹;否则维持低电平。
4.根据权利要求1所述的防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于:内部密钥寄存器(20D)和外部密钥寄存器(20E)有三种工作模式:扫描测试、功能测试和激活模式;
扫描测试模式:IP核或者集成电路中的内部密钥被用于锁定动态混淆封装接口(1A);要对IP核或者集成电路进行扫描测试,必须要解锁扫描链输入封装接口(10C)和扫描链输出封装接口(10D),就必须输入一个与内部密钥对应的外部密钥;内部密钥和外部密钥共同作用解锁扫描链输入封装接口(10C)和扫描链输出封装接口(10D)需要满足的条件为:
Figure FDA0002966139440000051
Figure FDA0002966139440000052
其中,内部测试向量/响应指的是IP核或者集成电路实际接收到的测试向量或者生成的测试响应,外部测试向量/响应指的是测试人员输入给扫描链输入封装接口(10C)的测试向量,或者从扫描链输出封装接口(10D)接收到的测试响应,
Figure FDA0002966139440000053
代表进行异或操作;IP核或者集成电路设计者基于临时指纹计算出IP核或者集成电路的内部密钥,然后根据内部密钥计算得到对应的外部密钥,并发送给测试人员,用以解锁扫描链输入封装接口(10C)和扫描链输出封装接口(10D)进而实施扫描测试;根据上述条件,IP核或者集成电路设计者保证外部测试向量对所有的IP核或者集成电路保持一致,只需要改变外部密钥就能解锁不同的IP核或者集成电路;降低IP核或者集成电路设计者和测试人员的数据交换量和测试的复杂程度;
功能测试模式:在通过扫描测试后,IP核或者集成电路需要进行功能测试,保证IP核或者集成电路能够在给定的条件下正常工作,没有缺陷;在功能测试模式下,需要解锁功能单元输入封装接口(10A)和功能单元输出封装接口(10B)进行测试,此时被测IP核或者集成电路的内部密钥与扫描测试测内部密钥相同,但是需要输入一个新的外部密钥;功能单元输入封装接口(10A)和功能单元输出封装接口(10B)中的任意一个三输入端口的异或门都同时被内部密钥寄存器(20D)和外部密钥寄存器(20E)中随机的一位控制,功能单元输入封装接口(10A)中的第H个三输入端口异或内部密钥寄存器(20D)第i位和外部密钥寄存器(20E)中的第j位共同控制,其中,1≤i,j≤λ;内部密钥寄存器(20D)和外部密钥寄存器(20E)与功能单元输入封装接口(10A)和功能单元输出封装接口(10B)中的异或门的连接方式只有IP核或者集成电路设计者知道;考虑到混淆逻辑单元集合(10F)的存在,要解锁功能单元输入封装接口(10A)和功能单元输出封装接口(10B)中由内部密钥的第i位和外部密钥的第j位所控制的异或门,需要满足以下条件:内部密钥的第i位
Figure FDA0002966139440000061
外部密钥的
Figure FDA0002966139440000062
其中1≤i,j≤λ,OL指得是内部密钥的第i位和外部密钥的第j位所控制的异或门对应的输入/输出端口上是否有混淆单元,如果有,则OL=1,如果没有,则OL=0;因此,只要内部密钥和外部密钥共同满足功能单元输入封装接口(10A)和功能单元输出封装接口(10B)中所有的异或门的解锁条件,即解锁功能单元输入封装接口(10A)和功能单元输出封装接口(10B);基于临时指纹、内部密钥寄存器(20D)和外部密钥寄存器(20E)与单元输入封装接口(10A)和功能单元输出封装接口(10B)的连接方式,IP核或者集成电路设计者总是计算出响应的外部密钥;
激活模式:在通过扫描测试和功能测试,同时测试结果通过IP核或者集成电路设计者的验证之后,被测IP核或者集成电路就进行最终的激活;线性移位寄存器(20B)使用永久指纹作为种子生成一个新的内部密钥,IP核或者集成电路设计者基于临时指纹计算出永久密钥和新的内部密钥,并根据功能单元输入封装接口(10A)和功能单元输出封装接口(10B)的解锁条件计算出最终用于激活的外部密钥;测试人员或者代工厂将用于激活的外部密钥输入对应的IP核或者集成电路中,IP核或者集成电路就能够被最终激活进行正常使用;在激活模式下,用于激活的外部密钥被存放在IP核或者集成电路中的只能写入一次的安全存储器中,测试人员只有一次写入外部密钥的机会,有效防止攻击者多次写入外部密钥,尝试猜出正确的外部密钥。
5.根据权利要求1所述的防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于:结果验证单元(20C)用于防止代工产谎报IP核或者集成电路的测试结果,从而骗取多余的用于激活的外部密钥,将有缺陷和不符合规范的IP核或者集成电路售卖出去;在扫描测试模式下,扫描链输出封装接口(10D)的输入被卷积压缩器(40C)压缩成宽度为1位的0、1序列,然后与非线性移位寄存器(40A)产生的序列依次做异或运算进行混淆,成为结构测试印迹并输出到IP核或者集成电路之外;结构测试印迹包含了IP核或者集成电路是否通过扫描测试,以及缺陷存在的情况,只有IP核或者集成电路设计者根据卷积压缩器(40C)和非线性移位寄存器(40A)的结构,从结构测试印迹中解密得到实际的测试结果,代工厂或者测试人员无法从结构测试印迹中获取测试结果的信息;在功能测试模式下,来自功能测试相关传感器的测试结果与非线性移位寄存器(40A)产生的序列依次做异或运算进行混淆,成为功能测试印迹;功能测试印迹包含了IP核或者集成电路是否通过功能测试,以及不合格的情况,只有IP核或者集成电路设计者根据卷积压缩器(40C)和非线性移位寄存器(40A)的结构,从功能测试印迹中解密得到实际的测试结果,代工厂或者测试人员无法从功能测试印迹中获取测试结果的信息。
6.根据权利要求1所述的防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于:动态混淆封装接口的IP核或集成电路的测试流程如下:
测试准备:在测试之前,IP核或者集成电路设计者首先针对要测试的IP核或者集成电路生成对应的测试向量,检测固定型故障、桥接故障的扫描测试向量和进行速度分级的功能测试向量;然后扫描测试向量进行混淆,连同功能测试向量一起发送给代工厂;所有的IP核或者集成电路测试用的测试向量都是通用的;在IP核或者集成电路制造出来之后,IP核或者集成电路被动态混淆封装接口(1A)锁定,每个IP核或者集成电路都有一个独一无二的临时指纹;代工厂将这些临时指纹收集起来发送给IP核或者集成电路设计者;IP核或者集成电路设计者根据临时指纹和动态混淆封装接口控制单元(1B)的结构,计算出对应的测试用的外部密钥,并发送给代工厂;
扫描测试:代工厂在接收到测试用的外部密钥后,就针对IP核或者集成电路进行测试;在扫描测试中,代工厂将通用的扫描测试向量输入到IP核或者集成电路,与此同时,对应的扫描测试用的外部密钥同步的输入IP核或者集成电路,用来解锁扫描链输入封装接口(10C)和扫描链输出封装接口(10D);若是IP核或者集成电路通过了扫描测试,则继续进行功能测试,否则有故障的IP核或者集成电路就被丢弃;在这个过程中,每个IP核或者集成电路都会生成一个独一无二的扫描测试印迹;
功能测试:在功能测试中,代工厂将功能测试用的外部密钥输入到对应的IP核或者集成电路,临时解锁功能单元输入封装接口(10A)和功能单元输出封装接口(10B),然后施加通用的功能测试向量进行测试,这些测试包含速度分级测试、电压分级测试;在这个过程中,每个IP核或者集成电路都会生成一个独一无二的功能测试印迹;
最终激活:在通过所有的测试之后,代工厂将合格的IP核或者集成电路的编号、临时指纹、扫描测试印迹和功能测试印迹一起发送给IP核或者集成电路设计者进行验证;如果验证结果显示代工厂没有谎报测试结果,则IP核或者集成电路设计者给每个合格的IP核或者集成电路计算一个用于激活的外部密钥,发送给代工厂,用于永久激活IP核或者集成电路;否则,不予以激活;
测试时间之后:每个IP核或者集成电路在制造出来之后,都有一段时间用于测试,称之为测试时间,在这段时间,IP核或者集成电路基于临时指纹进行临时激活,以便测试;但是,在过了测试时间之后,指纹生成器(20A)生成的临时指纹失效,转变未老化后的指纹,基于临时指纹进行激活的外部密钥失效,无法用于IP核或者集成电路的解锁;此时,只能使用基于永久指纹激活的外部密钥才能正确解锁IP核或者集成电路;未通过测试或者未通过IP核或者集成电路设计者验证的IP核或者集成电路无法得到用于永久激活的外部密钥,在测试时间之后,即被锁定,无法再次被使用,杜绝代工厂过量生产或者将有缺陷的产品售卖到市场。
7.根据权利要求1所述的防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于:IP核或集成电路每个输入输出端口都有一个三输入异或门,分别属于功能单元输入封装接口(10A)、功能单元输出封装接口(10B)、扫描链输入封装接口(10C)和扫描链输出封装接口(10D);其中,功能单元输入封装接口(10A)和扫描链输入封装接口(10C)中的三输入异或门的三个输入信号分别来自内部密钥寄存器(20D)中的一位、外部密钥寄存器(20E)中的一位和IP核或者集成电路实际的外部输入信号,功能单元输入封装接口(10A)和扫描链输入封装接口(10C)中的三输入异或门的输出信号为实际输入到IP核或者集成电路中的信号;功能单元输出封装接口(10B)和扫描链输出封装接口(10D)中的三输入异或门的三个输入信号分别来自内部密钥寄存器(20D)中的一位、外部密钥寄存器(20E)中的一位和IP核或者集成电路产生的要输出的外部输入信号,功能单元输出封装接口(10B)和扫描链输出封装接口(10D)中的三输入异或门的输出信号为IP核或者集成电路实际输出到外部的信号。
8.根据权利要求1所述的防止集成电路知识产权剽窃的动态混淆封装接口控制单元,其特征在于:动态混淆封装接口(1A)受到内部密钥寄存器(20D)和外部密钥寄存器(20E)的控制,只有当来自内部密钥寄存器(20D)和外部密钥寄存器(20E)的信号使得动态混淆封装接口(1A)输入输出信号完全一致时,所设计的动态混淆封装接口(1A)才会被正确解锁,使用者才能使用IP核或集成电路进行测试或者激活。
CN201810581099.7A 2018-06-07 2018-06-07 防止集成电路知识产权剽窃的动态混淆封装接口控制单元 Active CN108875431B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810581099.7A CN108875431B (zh) 2018-06-07 2018-06-07 防止集成电路知识产权剽窃的动态混淆封装接口控制单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810581099.7A CN108875431B (zh) 2018-06-07 2018-06-07 防止集成电路知识产权剽窃的动态混淆封装接口控制单元

Publications (2)

Publication Number Publication Date
CN108875431A CN108875431A (zh) 2018-11-23
CN108875431B true CN108875431B (zh) 2021-04-16

Family

ID=64337336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810581099.7A Active CN108875431B (zh) 2018-06-07 2018-06-07 防止集成电路知识产权剽窃的动态混淆封装接口控制单元

Country Status (1)

Country Link
CN (1) CN108875431B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022517964A (ja) * 2019-01-10 2022-03-11 エムアッシュエム・ミクロテクニク・ソシエテ・ア・レスポンサビリテ・リミテ ネットワーク接続可能な感知装置
CN109858287B (zh) * 2019-01-28 2021-04-16 北京航空航天大学 一种基于互连线的物理不可克隆结构及自加扰电路结构
CN109946595B (zh) * 2019-03-25 2022-01-04 中国科学院微电子研究所 一种扫描测试执行方法、装置及系统
TWI727308B (zh) * 2019-04-17 2021-05-11 國立成功大學 測試電路之動態密鑰防禦架構與方法
CN110633583A (zh) * 2019-09-02 2019-12-31 卓尔智联(武汉)研究院有限公司 集成电路芯片、集成电路及电子装置
GB201919297D0 (en) 2019-12-24 2020-02-05 Aronson Bill Temperature sensing physical unclonable function (puf) authenication system
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
CN112685754A (zh) * 2020-12-25 2021-04-20 珠海零边界集成电路有限公司 一种调试接口的解锁电路及解锁方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106485131A (zh) * 2016-11-02 2017-03-08 黄松柏 互动式混淆型动态加密锁控体系
CN106646203A (zh) * 2016-12-16 2017-05-10 北京航空航天大学 一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106485131A (zh) * 2016-11-02 2017-03-08 黄松柏 互动式混淆型动态加密锁控体系
CN106646203A (zh) * 2016-12-16 2017-05-10 北京航空航天大学 一种防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构

Also Published As

Publication number Publication date
CN108875431A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108875431B (zh) 防止集成电路知识产权剽窃的动态混淆封装接口控制单元
CN108875430B (zh) 防止集成电路和知识产权核剽窃的动态混淆封装接口
Chiu et al. A secure test wrapper design against internal and boundary scan attacks for embedded cores
CN106646203B (zh) 防止利用扫描链攻击集成电路芯片的动态混淆扫描链结构
Wang et al. IIPS: Infrastructure IP for secure SoC design
US11222098B2 (en) Protecting obfuscated circuits against attacks that utilize test infrastructures
Shakya et al. Introduction to hardware obfuscation: Motivation, methods and evaluation
Karmakar et al. A new logic encryption strategy ensuring key interdependency
Zhang et al. An on-chip dynamically obfuscated wrapper for protecting supply chain against IP and IC piracies
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
Jain et al. Atpg-guided fault injection attacks on logic locking
Wang et al. DOST: Dynamically obfuscated wrapper for split test against IC piracy
Rahman et al. Ll-atpg: logic-locking aware test using valet keys in an untrusted environment
Chandran et al. SS-KTC: A high-testability low-overhead scan architecture with multi-level security integration
SLPSK et al. Treehouse: A secure asset management infrastructure for protecting 3dic designs
Agila et al. Resilient DFS architecture for enabling trust in IC manufacturing and testing
Kan et al. IJTAG integrity checking with chained hashing
Karmakar et al. A cellular automata guided obfuscation strategy for finite-state-machine synthesis
Lee et al. A dynamic-key based secure scan architecture for manufacturing and in-field IC testing
Bhakthavatchalu et al. Verilog design of programmable JTAG controller for digital VLSI IC’s
Naidu et al. Secured Test Pattern Generators for BIST
Kumar et al. PUF-based secure test wrapper for SoC testing
Rakotomalala et al. Private circuits II versus fault injection attacks
US20230116607A1 (en) Integrated circuit protections against removal and oracle-guided attacks

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