一种芯片顶层覆盖完整性保护方法及装置
技术领域
本发明涉及但不限于芯片物理完整性检测技术领域,尤其涉及一种芯片顶层覆盖完整性保护方法及装置。
背景技术
芯片的侵入式攻击,也称为物理攻击,是指攻击者通过物理手段(如借助特殊的仪器设备),对芯片内部所展开的信息窥探和恶意破坏行为,包括剥离、探针、聚焦离子束(Focused Ion Beam,FIB)等。现阶段对物理攻击的解决办法之一是顶层金属检测。当芯片遭受物理攻击时,顶层金属会遭到破坏,检测装置会检测到顶层金属受到破坏而发出报警信号。
现有顶层金属覆盖完整性逻辑保护电路的设计原理是:在顶层覆盖的多条金属线两端分别增加逻辑门电路,若金属有效连接,则电路逻辑值是应被正确传输的,反之若金属两端逻辑值不等则金属被划断。
现有设计通常将顶层覆盖分为n组,每组m条金属线,如图1所示,每条金属线通过多次折叠走线,将整个芯片顶层覆盖。金属线的两端为约定好的固定值或采用比较有规律的变化(如递增、循环),判断第i条金属线的数据输入din[i]是否等于第i条金属线的数据输出dout[i](i=0,1,2……m),每组金属线在等待保证信号传输完成的时间后,通过比对n*m条金属线两端逻辑值是否相等来判断芯片是否遭到攻击。
但是,如图2所示,如果攻击者通过FIB攻击将某条金属线的输入端口与输出端口短接,金属线未被划断,只要保证重新连接的金属线信号传输时间短于原金属线的信号传输时间,现有的芯片顶层覆盖完整性保护方法就不能检测出此攻击。此时,金属线不能完整覆盖整个芯片顶层,芯片顶层出现大块面积裸露,攻击者易于通过金属覆盖的空白处对芯片进行更深层次的攻击。因此,现有的芯片顶层覆盖完整性保护方法仅能判断金属线是否被划断,防范的攻击比较单一,防攻击能力较弱。
发明内容
为了解决上述技术问题,本发明提供了一种芯片顶层覆盖完整性保护方法及装置,能够准确地判断芯片顶层覆盖的金属线是否遭到短接或划断攻击。
为了达到本发明目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种芯片顶层覆盖完整性保护方法,应用于物理层保护电路,所述物理层保护电路被分为n组,每组m条金属线,所述n、m均为自然数,包括:
产生一组随机二进制数;
将所述随机二进制数输入到每组m条金属线的输入端;
分别在攻击检测周期和检测周期检测所述m条金属线的输出信号,所述检测周期为预先估计的信号在金属线中传输的时间,所述攻击检测周期为预先估计的当金属线被短接时信号在金属线中传输的时间;
如果在攻击检测周期检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数相同,或者,在检测周期检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数不同,则判断芯片遭到短接或划断攻击。
进一步地,所述方法之后还包括:
按照预设变化规律对所述随机二进制数进行变化,并将变化后的随机二进制数输入到所述m条金属线的输入端;
分别在下一次所述攻击检测周期和下一次所述检测周期检测所述m条金属线的输出信号;
如果在下一次攻击检测周期检测出的所述m条金属线的输出信号与所述输入的变化后的随机二进制数相同,或者,在下一次检测周期检测出的所述m条金属线的输出信号与所述输入的变化后的随机二进制数不同,则判断芯片遭到短接或划断攻击。
进一步地,所述预设变化规律为:对所述随机二进制数的每一位全部取反。
进一步地,所述如果在攻击检测周期检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数相同,或者,在检测周期检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数不同,则判断芯片遭到短接或划断攻击,具体包括:
如果在所述攻击检测周期和所述检测周期检测出的所述m条金属线的输出信号均与输入到所述m条金属线的随机二进制数相同,则判断芯片遭到短接攻击;如果在所述攻击检测周期和所述检测周期检测出的所述m条金属线的输出信号均与输入到所述m条金属线的随机二进制数不同,则判断芯片遭到划断攻击。
本发明实施例还提供了一种芯片顶层覆盖完整性保护装置,应用于物理层保护电路,所述物理层保护电路被分为n组,每组m条金属线,所述n、m均为自然数,包括随机数产生单元、控制单元与检测单元,其中:
随机数产生单元,用于产生一组随机二进制数,并将所产生的随机二进制数输出至控制单元;
控制单元,用于将所述随机二进制数输入到每组的m条金属线的输入端;并接收检测单元在攻击检测周期和检测周期检测出的所述m条金属线的输出信号,如果在攻击检测周期检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数相同,或者,在检测周期检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数不同,判断芯片遭到攻击;
所述检测单元,用于分别在攻击检测周期和检测周期检测所述m条金属线的输出信号,所述检测周期为信号在金属线中传输的时间,所述攻击检测周期为当金属线被短接时信号在金属线中传输的时间,将在攻击检测周期和检测周期检测出的所述m条金属线的输出信号输出至控制单元。
进一步地,所述控制单元还用于,按照预设变化规律对所述随机二进制数进行变化,并将变化后的随机二进制数输入到所述m条金属线的输入端;
所述检测单元还用于,分别在下一次攻击检测周期和第二次检测周期检测所述m条金属线的输出信号;如果在下一次攻击检测周期检测出的所述m条金属线的输出信号与所述输入的变化后的随机二进制数相同,或者,在下一次检测周期检测出的所述m条金属线的输出信号与所述输入的变化后的随机二进制数不同,则判断芯片遭到短接或划断攻击。
进一步地,所述预设变化规律为:对所述随机二进制数的每一位全部取反。
进一步地,所述检测单元的判断芯片遭到攻击,包括:
如果在所述攻击检测周期和所述检测周期检测出的所述m条金属线的输出信号均与输入到所述m条金属线的随机二进制数相同,则判断芯片遭到短接攻击;如果在所述攻击检测周期和所述检测周期检测出的所述m条金属线的输出信号均与输入到所述m条金属线的随机二进制数不同,则判断芯片遭到划断攻击。
本发明的技术方案,具有如下有益效果:
本发明提供的芯片顶层覆盖完整性保护方法及装置,通过在每个检测周期内对芯片顶层覆盖的金属线的输入输出信号进行两次对比检测,准确地判断出所述金属线是否遭到短接或划断攻击,在不增加芯片面积、不增加设计复杂度的条件下,增大了芯片顶层金属覆盖的防攻击力度,增大了攻击芯片的难度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为相关技术中的一种芯片顶层覆盖的金属线的折叠结构示意图;
图2为图1中的芯片顶层覆盖的金属线,遭到FIB短接攻击时的结构示意图;
图3为本发明实施例的一种芯片顶层覆盖完整性保护方法的流程示意图;
图4为本发明实施例的一种芯片顶层覆盖完整性保护装置的结构示意图;
图5为本发明优选实施例的一种芯片顶层覆盖完整性保护方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图3所示,根据本发明的一种芯片顶层覆盖完整性保护方法,应用于物理层保护电路,所述物理层保护电路被分为n组,每组m条金属线,所述n、m均为自然数,所述方法包括如下步骤:
步骤301:产生一组随机二进制数;
步骤302:将所述随机二进制数输入到每组的m条金属线的输入端;
步骤303:分别在攻击检测周期TF和检测周期T检测所述m条金属线的输出信号,所述检测周期T为信号在金属线中传输的时间;所述攻击检测周期TF为当金属线被短接时信号在金属线中传输的时间;
步骤304:如果在攻击检测周期TF检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数相同,或者,在检测周期T检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数不同,则判断芯片遭到短接或划断攻击。
进一步地,步骤304具体包括:
如果在攻击检测周期TF和检测周期T检测出的所述m条金属线的输出信号均与输入到所述m条金属线的随机二进制数相同,则判断芯片遭到短接攻击;如果在攻击检测周期TF和检测周期T检测出的所述m条金属线的输出信号均与输入到所述m条金属线的随机二进制数不同,则判断芯片遭到划断攻击。
进一步地,所述方法之后还包括:
按照预设变化规律对所述随机二进制数进行变化,并将变化后的随机二进制数输入到所述m条金属线的输入端;
分别在下一次攻击检测周期TF和第二次检测周期T检测所述m条金属线的输出信号;
如果在下一次攻击检测周期TF检测出的所述m条金属线的输出信号与所述输入的变化后的随机二进制数相同,或者,在下一次检测周期T检测出的所述m条金属线的输出信号与所述输入的变化后的随机二进制数不同,则判断芯片遭到短接或划断攻击。
进一步地,如果在下一次攻击检测周期TF和下一次检测周期T检测出的所述m条金属线的输出信号均与输入到所述输入的变化后的随机二进制数相同,则判断芯片遭到短接攻击;如果在下一次攻击检测周期TF和下一次检测周期T检测出的所述m条金属线的输出信号均与所述输入的变化后的随机二进制数不同,则判断芯片遭到划断攻击。
进一步地,所述预设变化规律为:对所述随机二进制数的每一位全部取反。
进一步地,所述随机二进制数至少包括m位。
进一步地,对应于所述n组金属线的m位随机二进制数相同或者不同。
进一步地,当判断芯片遭到攻击时,产生报警信号。
如图4所示,根据本发明的一种芯片顶层覆盖完整性保护装置,应用于物理层保护电路,所述物理层保护电路被分为n组,每组m条金属线,所述n、m均为自然数,所述装置包括随机数产生单元401、控制单元402与检测单元403,其中:
随机数产生单元401,用于产生一组随机二进制数,并将所产生的随机二进制数输出至控制单元402;
控制单元402,用于将所述随机二进制数输入到每组的m条金属线的输入端;并接收检测单元403在攻击检测周期TF和检测周期T检测出的所述m条金属线的输出信号,如果在攻击检测周期TF检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数相同,或者,在检测周期T检测出的所述m条金属线的输出信号与输入到所述m条金属线的随机二进制数不同,判断芯片遭到攻击;
所述检测单元403,用于分别在攻击检测周期TF和检测周期T检测所述m条金属线的输出信号,所述检测周期T为信号在金属线中传输的时间;所述攻击检测周期TF为当金属线被短接时信号在金属线中传输的时间,将在攻击检测周期TF和检测周期T检测出的所述m条金属线的输出信号输出至控制单元402。
进一步地,所述检测单元403的判断芯片遭到攻击,具体包括:
如果在攻击检测周期TF和检测周期T检测出的所述m条金属线的输出信号均与输入到所述m条金属线的随机二进制数相同,则判断芯片遭到短接攻击;如果在攻击检测周期TF和检测周期T检测出的所述m条金属线的输出信号均与输入到所述m条金属线的随机二进制数不同,则判断芯片遭到划断攻击。
进一步地,所述控制单元402还用于,按照预设变化规律对所述随机二进制数进行变化,并将变化后的随机二进制数输入到所述m条金属线的输入端;
所述检测单元403还用于,分别在下一次攻击检测周期TF和第二次检测周期T检测所述m条金属线的输出信号;如果在下一次攻击检测周期TF检测出的所述m条金属线的输出信号与所述输入的变化后的随机二进制数相同,或者,在下一次检测周期T检测出的所述m条金属线的输出信号与所述输入的变化后的随机二进制数不同,则判断芯片遭到短接或划断攻击。
进一步地,如果在下一次攻击检测周期TF和下一次检测周期T检测出的所述m条金属线的输出信号均与输入到所述输入的变化后的随机二进制数相同,则所述检测单元403判断芯片遭到短接攻击;如果在下一次攻击检测周期TF和下一次检测周期T检测出的所述m条金属线的输出信号均与所述输入的变化后的随机二进制数不同,则所述检测单元403判断芯片遭到划断攻击。
进一步地,所述预设变化规律为:对所述随机二进制数的每一位全部取反。
进一步地,所述随机二进制数至少包括m位。
进一步地,对应于所述n组金属线的m位随机二进制数相同或者不同。
进一步地,当判断芯片遭到攻击时,所述控制单元402产生报警信号。
本发明实施例还提供了几个优选的实施例对本发明进行进一步解释,但是值得注意的是,该优选实施例只是为了更好的描述本发明,并不构成对本发明不当的限定。下面的各个实施例可以独立存在,且不同实施例中的技术特点可以组合在一个实施例中联合使用。
根据本发明的芯片顶层覆盖完整性保护方法,包括如下步骤:
首先,根据芯片顶层金属布线情况,得出信号在金属线中完整传输所需的时间,该时间即为检测周期T;将金属线按照可能受到FIB攻击的方式进行布局布线,仿真得到在此情况下信号在金属线中传输所需的时间,该时间作为攻击的检测时间TF(TF<T)。
然后,在每两个检测周期(2T)内对输入输出信号进行三次对比检测,第一次检测R1在将随机二进制数输入到金属线的输入端后的第一个检测周期T时进行,第二次检测R2在T+TF时间时进行;第三次检测R3在第二个检测周期2T时进行。
最后,进行三次检测结果的判定,若第一次检测R1对比得到的输入输出信号不同,则判定顶层金属线被划断,产生报警;若第一次检测R1和第二次检测R2对比得到的输入输出信号均相同,则判定某条金属线被短接,产生报警;若第一次检测R1和第三次检测R3对比得到的输入输出信号相同,第二次检测R2对比得到的输入输出信号不同,则判定金属线正确连接,未被划断,亦未被短接,不产生报警。
本发明还公开了一种芯片顶层覆盖完整性保护方法,应用于物理层保护电路,所述物理层保护电路被分为n组,每组m条金属线,每两个检测周期进行如下操作:
步骤501:将随机二进制序列输入到每组的m条金属线的输入端,并将此时作为0时刻;
步骤502:在计时到一个检测周期时进行第一次检测R1,检测M条金属线的输出是否与输入的随机二进制序列相同,若相同则令R1=1,若不同则令R1=0(R2、R3数值与R1定义一样);
步骤503:将上述随机二进制序列全部取反,输入到每组的M条金属线的输入端;此处亦可选用另一组随机二进制序列,或者,将步骤501中的随机二进制序列按照预设的变化规律进行变化,此处只是以将步骤501中的随机二进制序列全部取反为例;
步骤504:在第二个检测周期之前T+TF时刻进行第二次检测R2,检测M条金属线的输出信号是否与输入的随机二进制全部取反序列相同,若相同则令R2=1,若不同则令R2=0;
步骤505:在第二个检测周期2T时进行第三次检测R3,检测M条金属线的输出信号是否与输入的随机二进制全部取反序列相同,若相同则令R3=1,若不同则令R3=0;
步骤506:对三次检测结果进行判定:若R1=0,则金属线被划断,遭受到了攻击;若R1=1,R2=1,则金属线未被划断,但已经被短接,同样遭受到了攻击;若R1=1,R2=0,R3=1,则金属线未被划断,也未被短接,金属线连接正常,没有遭受攻击。
本发明提出的芯片顶层覆盖完整性保护方法,通过在每两个检测周期内对输入输出信号进行三次对比检测,通过三次检测后的数据比对,可以准确的判断出覆盖金属线是否被短接、划断,并通过报警形式反馈。本检测方案通过在短于输入信号在金属线中完整传输时间的时刻进行完整性检测,测试在短于检测周期的时间内测试数据从输入端到输出端是否完成传输,由此确认顶层覆盖金属线是否受到FIB攻击而被短接。与现有技术相比,本发明在不增加芯片面积、不增加设计复杂度的条件下,增大了顶层金属覆盖的防攻击力度,增大了攻击芯片的难度。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。