本发明属于电子电路领域,具体涉及一种soc芯片物理防护单元、电路及防护方法。
背景技术:
随着与个人信息相关电子产品的日益广泛应用,针对存储个人信息、隐私、密码等数据的芯片的安全设计技术逐步受到重视。目前的芯片中,有一大部分为内嵌mcu内核的soc芯片,同时soc芯片也是芯片发展的一个趋势。在soc芯片中,有相当一部分功能是通过mcu的软件来实现。由于soc芯片内的数据存储必须依赖与内部的物理介质,而针对这些芯片存储介质的一些物理攻击技术,也逐渐被一些非法攻击者掌握,使得芯片的安全性受到严重挑战。
目前一种有效的攻击方式是侵入式攻击:攻击者使用激光技术或者聚焦离子束(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进行破坏,而不影响到版图保护电路的校验位最终结果。
技术实现要素:
鉴于以上存在的技术问题,本发明提供了一种适用于soc芯片的物理防护,由一个版图保护的基本单元,基本单元构成电路和版图物理防护方法组成,避免非法攻击者采用简单的fib技术以较低的代价对soc芯片进行破坏,实现真正的对soc芯片防物理攻击。
采用如下的技术方案:
一种soc芯片物理防护单元,包括输入数据锁存器、信号通路反向器、异或门和输出数据锁存器,其中,输入信号记为sd_in输入所述输入数据锁存器的d端,输入数据锁存器的q端输出分别连接soc芯片的顶层金属网线和信号通路反向器,通过顶层金属网线后的输出和信号通路反向器后的输出作为所述异或门的输入,异或门的输出为输入信号的数据校验位,记为sd_chk;通过顶层金属网线后的输出输入所述输出数据锁存器的d端,输出数据锁存器的q端为输出信号记为sd_out。
优选地,所述异或门为二输入型。
基于上述目的,本发明还提供了一种soc芯片物理防护电路,包括n个上述soc芯片物理防护单元,还包括n/4个一级与门、n/16个二级与门、n/32个三级与门和总锁存器,所述一级与门的输入与n个soc芯片物理防护单元输出的数据校验位sd_chk连接,所述二级与门的输入与一级与门的输出连接,所述三级与门的输入与二级与门的输出连接,所述总锁存器的d端记为check_d与三级与门的输出连接,总锁存器的q端输出记为check_q。
优选地,所述一级与门为四输入型,所述二级与门为四输入型,所述三级与门为二输入型。
优选地,顶层金属网线正常工作时,check_d为“1”,check_q为“1”;顶层金属网线异常时,check_d为“0”,check_q为“0”。
基于上述目的,本发明还提供了一种soc芯片物理防护方法,采用上述soc芯片物理防护电路,包括以下步骤:
s10,soc芯片的mcu内核产生n位随机数,作为输入数据锁存器的d端输入,记为sd_in[n-1:0];
s20,经过若干个时钟,读取输出数据锁存器的q端输出,记为sd_out[n-1:0];
s30,sd_in[n-1:0]==sd_out[n-1:0]?
s40,否,则soc芯片被破坏,进行异常处理;
s31,是,则将n位随机数取反,再次作为输入数据锁存器的d端输入,记为sd_in[n-1:0];
s32,经过若干个时钟,再次读取输出数据锁存器的q端输出,记为sd_out[n-1:0];
s33,再次判断sd_in[n-1:0]==sd_out[n-1:0]?
s34,是,则判断soc芯片工作正常;否,则soc芯片被破坏,进行异常处理。
优选地,所述check_d为“1”,check_q为“1”时,soc芯片工作正常。
优选地,所述check_d为“0”,check_q为“0”时,soc芯片被破坏。
优选地,所述异常处理为soc芯片自动复位。
优选地,所述异常处理为soc芯片自动损毁。
采用本发明具有如下的有益效果:极大的增加了芯片物理防护能力,第一,设计了一个顶层金属网线版图保护基本单元,电路简单,易于实现,同时不会增加芯片电路复杂度;第二,该基本单元易于并联扩展实现,尤其适用于有mcu的soc芯片中,可以实现多位并行数据读取和校验;第三,提供了一个顶层金属网线数据校验方法,实现严谨的版图保护电路安全校验。通过上述处理,让非法攻击者在采用芯片逆向分析技术、fib和激光技术进行修补电路的方式进行物理攻击时,不能仅修改一两处电路便可以废除版图电路防护功能。如果在32条顶层金属网线级别上,攻击者至少需要进行64切32连的成功fib操作,才能获取部分版图区域的操作空间,这个要求极大的增加了攻击者操作难度和成本。
附图说明
图1为现有技术的soc芯片防护电路结构图;
图2为本发明实施例的soc芯片物理防护单元结构图;
图3为本发明实施例的soc芯片物理防护电路结构图;
图4为本发明实施例的soc芯片物理防护方法的步骤流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
防护单元实施例
参见图2,本发明实施例公开了一种soc芯片物理防护单元,包括输入数据锁存器11、信号通路反向器13、异或门14和输出数据锁存器12,其中,输入信号记为sd_in输入所述输入数据锁存器11的d端,输入数据锁存器11的q端输出分别连接soc芯片的顶层金属网线15和信号通路反向器13,通过顶层金属网线15后的输出和信号通路反向器13后的输出作为所述异或门14的输入,异或门14的输出为输入信号的数据校验位,记为sd_chk;通过顶层金属网线15后的输出输入所述输出数据锁存器12的d端,输出数据锁存器12的q端为输出信号记为sd_out。
具体实施例中,异或门14为二输入型。
防护电路实施例
参见图3,一种soc芯片物理防护电路,以32条顶层金属网线15的保护电路为例,包括32个上述soc芯片物理防护单元10,还包括8个一级与门21、2个二级与门22、1个三级与门23和总锁存器30,每级单元10,产生两个锁存数据,并产生一个数据校验位,其32个数据校验位sd_chk[31:0]通过一级与门21、二级与门22和三级与门23完成全部相与,产生一个总的校验位check_d,并被总锁存器30锁存产生check_q。check_d信号在顶层金属网线15没有异常时为“1”,通过总锁存器30锁存,得到总锁存器30输出check_q,为“1”。如果某条顶层金属网线15出现异常,则check_d会出现“0”值,通过时钟锁存,会得到异常值check_q为“0”,此时,需要进行异常处理,或芯片自动复位,或芯片进行自动损毁。
具体实施例中,一级与门21为四输入型,二级与门22为四输入型,三级与门23为二输入型,这样设置将32个防护单元10的输出完全相与。
方法实施例
参见图4,一种soc芯片物理防护方法,采用上述soc芯片物理防护电路,包括以下步骤:
s10,soc芯片的mcu内核产生n位随机数,作为输入数据锁存器的d端输入,记为sd_in[n-1:0];
s20,经过若干个时钟,读取输出数据锁存器的q端输出,记为sd_out[n-1:0];
s30,sd_in[n-1:0]==sd_out[n-1:0]?
s40,否,则soc芯片被破坏,进行异常处理;
s31,是,则将n位随机数取反,再次作为输入数据锁存器的d端输入,记为sd_in[n-1:0];
s32,经过若干个时钟,再次读取输出数据锁存器的q端输出,记为sd_out[n-1:0];
s33,再次判断sd_in[n-1:0]==sd_out[n-1:0]?
s34,是,则判断soc芯片工作正常;否,则soc芯片被破坏,进行异常处理。
具体实施例中,check_d为“1”,check_q为“1”时,soc芯片工作正常。
check_d为“0”,check_q为“0”时,soc芯片被破坏。
异常处理为soc芯片自动复位或soc芯片自动损毁。
两次写入相反的sd_in[31:0],并依次读取sd_out[31:0],进行比较,可以检测出任意一条顶层金属网线是否完全受控制,这样在遭受到外部非法攻击,可以准确的检测出那条网线或那些网线出现异常。因此这一个数据校验算法,可以检测出多种版图保护电路非法攻击的情况。
上述实施例采用了32条顶层金属网线为具体实施例,可以简单的类推,扩展到64条或者更多条顶层金属网线。在采用32条顶层金属网线级别或32条以上,采用fib等芯片修补技术进行简单顶层金属修补,攻击者至少需要进行64切32连的成功fib操作,才能获取部分版图区域的操作空间。基于fib的定位精度以及操作时长,其对去掉上述物理保护功能的电路修补成功率已经非常低。因此这个物理防护方法极大的增加了攻击者操作难度和成本。
应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。
1.一种soc芯片物理防护单元,其特征在于,包括输入数据锁存器、信号通路反向器、异或门和输出数据锁存器,其中,输入信号记为sd_in输入所述输入数据锁存器的d端,输入数据锁存器的q端输出分别连接soc芯片的顶层金属网线和信号通路反向器,通过顶层金属网线后的输出和信号通路反向器后的输出作为所述异或门的输入,异或门的输出为输入信号的数据校验位,记为sd_chk;通过顶层金属网线后的输出输入所述输出数据锁存器的d端,输出数据锁存器的q端为输出信号记为sd_out。
2.根据权利要求1所述的一种soc芯片物理防护单元,其特征在于,所述异或门为二输入型。
3.一种soc芯片物理防护电路,包括n个权利要求1或2所述的soc芯片物理防护单元,其特征在于,还包括n/4个一级与门、n/16个二级与门、n/32个三级与门和总锁存器,所述一级与门的输入与n个soc芯片物理防护单元输出的数据校验位sd_chk连接,所述二级与门的输入与一级与门的输出连接,所述三级与门的输入与二级与门的输出连接,所述总锁存器的d端记为check_d与三级与门的输出连接,总锁存器的q端输出记为check_q。
4.根据权利要求3所述的soc芯片物理防护电路,其特征在于,所述一级与门为四输入型,所述二级与门为四输入型,所述三级与门为二输入型。
5.根据权利要求3所述的soc芯片物理防护电路,其特征在于,顶层金属网线正常工作时,check_d为“1”,check_q为“1”;顶层金属网线异常时,check_d为“0”,check_q为“0”。
6.一种soc芯片物理防护方法,采用权利要求3-5之一所述soc芯片物理防护电路,其特征在于,包括以下步骤:
s10,soc芯片的mcu内核产生n位随机数,作为输入数据锁存器的d端输入,记为sd_in[n-1:0];
s20,经过若干个时钟,读取输出数据锁存器的q端输出,记为sd_out[n-1:0];
s30,sd_in[n-1:0]==sd_out[n-1:0]?
s40,否,则soc芯片被破坏,进行异常处理;
s31,是,则将n位随机数取反,再次作为输入数据锁存器的d端输入,记为sd_in[n-1:0];
s32,经过若干个时钟,再次读取输出数据锁存器的q端输出,记为sd_out[n-1:0];
s33,再次判断sd_in[n-1:0]==sd_out[n-1:0]?
s34,是,则判断soc芯片工作正常;否,则soc芯片被破坏,进行异常处理。
7.根据权利要求6所述的soc芯片物理防护方法,其特征在于,所述check_d为“1”,check_q为“1”时,soc芯片工作正常。
8.根据权利要求6所述的soc芯片物理防护方法,其特征在于,所述check_d为“0”,check_q为“0”时,soc芯片被破坏。
9.根据权利要求6所述的soc芯片物理防护方法,其特征在于,所述异常处理为soc芯片自动复位。
10.根据权利要求6所述的soc芯片物理防护方法,其特征在于,所述异常处理为soc芯片自动损毁。
技术总结