本发明属于电子电路领域,具体涉及一种芯片物理防护电路及方法。
背景技术:
随着与个人信息相关电子产品的日益广泛应用,针对存储个人信息、隐私、密码等数据的芯片的安全设计技术逐步受到重视。由于芯片内的数据存储必须依赖与内部的物理介质,而针对这些芯片存储介质的一些物理攻击技术,也逐渐被一些非法攻击者掌握,使得芯片的安全性受到严重挑战。
目前一种有效的攻击方式是侵入式攻击:攻击者使用激光技术或者聚焦离子束(fib:focusedionbeam)等方法和技术,将芯片的内部信号暴露到表面,使用探针技术,将信号引到接收设备上,然后攻击者就可以读取内部机密信息,或者将修改的数据注入芯片。
为了防止上述物理攻击,芯片设计厂商提出了版图保护电路的概念,即在有效电路的版图金属层次上,再增加一层防护层金属(shield)和相关版图保护电路,该防护层的信号线受到持续的监控,一旦该信号被破坏,芯片会自动开启报警电路,实行电路自我毁坏,防止非法操控数据。
图1所示的是一个常用的版图保护电路结构,以8条顶层金属网线15结构为例,数据经8个锁存器1的q端输出,如果某条顶层金属网线15受到破坏,则该网线对应通路上的锁存异或门2会输出“1”,经过或门3,校验位寄存器4的d端和q端出现“1”信号,设计者常用该校验位寄存器4的q信号来复位芯片,保护内部信息不被非法窃取。
由于芯片逆向技术的发展,以及攻击手段和技术的的进一步提升和更新,针对安全芯片的物理攻击技术的逐渐被非法攻击者掌握,使得这种版图保护电路的安全性受到严重挑战。针对图1这种版图保护电路结构,攻击者在分析清楚电路结构后,可以使用先进的激光技术或者fib技术,进行实时修补电路,使版图保护电路失去保护功能,此后攻击者就可以随心所欲的将需要的芯片内部信号进行操控。图1所示的版图保护电路,攻击者只要采用先进fib技术,将校验位寄存器4的d端或q端,固定接到“0”上,则可以任意对顶层金属网线15进行破坏,而不影响到版图保护电路的校验位最终结果。
技术实现要素:
鉴于以上存在的技术问题,本发明提供了一种适用于芯片的物理防护,避免非法攻击者采用简单的fib技术,以较低的代价对芯片进行破坏,实现真正的对芯片防物理攻击。
采用如下的技术方案:
一种芯片物理防护单元,包括n个移位寄存器、n个反向器、n个异或门、n个异或非门、m个与门和总锁存器,其中,
前一个移位寄存器的q端与下一个移位寄存器的d端连接,n个移位寄存器形成串联结构,排在首位的移位寄存器的d端输入数据;每个移位寄存器的q端均连接一个反向器和一条顶层金属网线;每个异或门的输入连接反向器的输出和一条顶层金属网线的输出,异或门的输出连接与门的输入;每个异或非门的输入连接一条顶层金属网线的输出、反向器的输出和芯片关键工作信号,记为ksig_i[i],i=0~n-1,异或非门的输出记为ksig_o[i],i=0~n-1;所述与门将n个异或门的输出相与后输入所述总锁存器的d端,记为check_d,总锁存器的q端记为check_q。
优选地,输入不同异或门的顶层金属网线处于不同级电路。
优选地,所述顶层金属网线为乱序布线。
优选地,所述与门的输出与总锁存器的d端采用底层金属连线。
优选地,所述异或非门的输入和输出金属连线均采用底层金属连线。
优选地,所述顶层金属网线正常工作时,check_d为“1”,check_q为“1”;顶层金属网线异常时,check_d为“0”,check_q为“0”。
基于上述目的,本发明还提供了一种芯片物理防护方法,采用上述芯片物理防护电路,包括以下步骤:
s10,芯片的mcu内核产生n位随机数,作为第一个移位锁存器的d端输入,芯片关键工作信号ksig_i[i]输入异或非门;
s20,经过若干个时钟,读取异或非门的输出ksig_o[i];
s30,ksig_i[i]==ksig_o[i]?
s40,否,则芯片被破坏,进行异常处理;
s31,是,则判断check_d=1,check_q=1?;
s32,是,则判断芯片工作正常;否,则芯片被破坏,进行异常处理。
优选地,所述顶层金属网线为乱序布线。
优选地,所述异常处理为芯片自动复位。
优选地,所述异常处理为芯片自动损毁。
采用本发明具有如下的有益效果:极大的增加了物理防护能力。第一,同一级的顶层金属网线和其输入信号的反进行异或比较,避免攻击者在每个异或门的输入端进行电路修补,导致检测失效;第二,每一级顶层金属网线与其输入信号的反,同时与芯片内部一个关键工作信号进行异或非运算,在遭受非法攻击时,会导致芯片工作异常,避免被非法窃取正常数据;第三,顶层金属网线进行乱序布线,增加fib和激光修补电路的定位和操作难度;第四,对总锁存器输入输出连接的器件,都采用最底层金属连线;通过上述处理,可以让非法攻击者,在采用fib和激光技术进行修补电路的方式进行物理攻击时,不能仅修改一两处电路的方法,就可以废除版图电路防护功能。如果在32条顶层金属网线级别上,攻击者至少需要进行64切32连的成功fib操作,才能获取部分版图区域的操作空间,这个要求极大的增加了攻击者操作难度和成本。
附图说明
图1为现有技术的芯片防护电路结构图;
图2为本发明实施例的芯片物理防护电路结构图;
图3为本发明实施例的芯片物理防护方法的步骤流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
防护电路实施例
参见图2,一种芯片物理防护电路,以8条顶层金属网线15的保护电路为例,包括8个移位寄存器11、8个反向器12、8个异或门13、8个异或非门14、3个与门16和总锁存器17,其中,
前一个移位寄存器11的q端与下一个移位寄存器11的d端连接,n个移位寄存器11形成串联结构,排在首位的移位寄存器11的d端输入数据;每个移位寄存器11的q端均连接一个反向器12和一条顶层金属网线15;每个异或门13的输入连接反向器12的输出和一条顶层金属网线15的输出,异或门13的输出连接与门16的输入;每个异或非门14的输入连接一条顶层金属网线15的输出、反向器12的输出和芯片关键工作信号,记为ksig_i[i],i=0~n-1,异或非门14的输出记为ksig_o[i],i=0~n-1;所述与门16将n个异或门13的输出相与后输入所述总锁存器17的d端,记为check_d,总锁存器17的q端记为check_q。
通过上述设置,移位寄存器11用于输入数据的移位,产生可持续变化的监控信号。同一级电路的顶层金属网线15输出和其输入信号的反进行异或比较,不同级电路的异或门13输出相与,产生监控信号的总锁存器17输出的校验位寄存器信号,避免每个异或门13的输入端进行被非法攻击者进行电路修补,导致检测失效。每一级电路的顶层金属网线15输出与其输入信号的反,与芯片内部一个关键工作信号进行异或非运算,这样在遭受非法攻击时,使芯片工作异常,避免被非法窃取正常数据。
具体实施例中,输入不同异或门13的顶层金属网线15处于不同级电路。
顶层金属网线15为乱序布线。芯片关键工作信号为芯片中的数据传输信号或状态转移信号。
与门16的输出与总锁存器17的d端采用底层金属连线;异或非门14的输入和输出金属连线均采用底层金属连线。采用底层技术连线可以避免被非法攻击者轻易使用fib和激光技术等电路修补技术来修改电路功能。
顶层金属网线15正常工作时,check_d为“1”,check_q为“1”;顶层金属网线15异常时,check_d为“0”,check_q为“0”。
异或非门14连接一条顶层金属网线15的输出、反向器12的输出和芯片关键工作信号,将一条顶层金属网线15的输出、反向器12的输出引入到芯片关键信号通路上。
方法实施例
参见图3,一种芯片物理防护方法,采用上述芯片物理防护电路,包括以下步骤:
s10,芯片的mcu内核产生n位随机数,作为第一个移位锁存器的d端输入,芯片关键工作信号ksig_i[i]输入异或非门;
s20,经过若干个时钟,读取异或非门的输出ksig_o[i];
s30,ksig_i[i]==ksig_o[i]?
s40,否,则芯片被破坏,进行异常处理;
s31,是,则判断check_d=1,check_q=1?;
s32,是,则判断芯片工作正常;否,则芯片被破坏,进行异常处理。
通过双重判定芯片是否遭到攻击,双重保险。
具体实施例中,顶层金属网线为乱序布线。
s40中异常处理为芯片自动复位或芯片自动损毁。
上述实施例采用了8条顶层金属网线为具体实施例,可以简单的类推,扩展到32条或者64条顶层金属网线。在采用32条顶层金属网线级别或32条以上,采用fib等芯片修补技术进行简单顶层金属修补,攻击者至少需要进行64切32连的成功fib操作,才能获取部分版图区域的操作空间。基于fib的定位精度以及操作时长,其对去掉版图保护功能的电路修补成功率已经非常低。因此这个物理防护方法极大的增加了攻击者操作难度和成本。
应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。
1.一种芯片物理防护电路,其特征在于,包括n个移位寄存器、n个反向器、n个异或门、n个异或非门、m个与门和总锁存器,其中,
前一个移位寄存器的q端与下一个移位寄存器的d端连接,n个移位寄存器形成串联结构,排在首位的移位寄存器的d端输入数据;每个移位寄存器的q端均连接一个反向器和一条顶层金属网线;每个异或门的输入连接反向器的输出和一条顶层金属网线的输出,异或门的输出连接与门的输入;每个异或非门的输入连接一条顶层金属网线的输出、反向器的输出和芯片关键工作信号,记为ksig_i[i],i=0~n-1,异或非门的输出记为ksig_o[i],i=0~n-1;所述与门将n个异或门的输出相与后输入所述总锁存器的d端,记为check_d,总锁存器的q端记为check_q。
2.根据权利要求1所述的一种芯片物理防护电路,其特征在于,输入不同异或门的顶层金属网线处于不同级电路。
3.根据权利要求1所述的一种芯片物理防护电路,其特征在于,所述顶层金属网线为乱序布线。
4.根据权利要求1所述的一种芯片物理防护电路,其特征在于,所述与门的输出与总锁存器的d端采用底层金属连线。
5.根据权利要求1所述的一种芯片物理防护电路,其特征在于,所述异或非门的输入和输出金属连线均采用底层金属连线。
6.根据权利要求1所述的一种芯片物理防护电路,其特征在于,所述顶层金属网线正常工作时,check_d为“1”,check_q为“1”;顶层金属网线异常时,check_d为“0”,check_q为“0”。
7.一种芯片物理防护方法,采用权利要求1-6之一所述芯片物理防护电路,其特征在于,包括以下步骤:
s10,芯片的mcu内核产生n位随机数,作为第一个移位锁存器的d端输入,芯片关键工作信号ksig_i[i]输入异或非门;
s20,经过若干个时钟,读取异或非门的输出ksig_o[i];
s30,ksig_i[i]==ksig_o[i]?
s40,否,则芯片被破坏,进行异常处理;
s31,是,则判断check_d=1,check_q=1?;
s32,是,则判断芯片工作正常;否,则芯片被破坏,进行异常处理。
8.根据权利要求7所述的一种芯片物理防护方法,其特征在于,所述顶层金属网线为乱序布线。
9.根据权利要求7所述的一种芯片物理防护方法,其特征在于,所述异常处理为芯片自动复位。
10.根据权利要求7所述的一种芯片物理防护方法,其特征在于,所述异常处理为芯片自动损毁。
技术总结