发明内容
本发明提供了一种芯片保护方法和系统,解决了使用熔丝进行芯片保护安全性差的问题。
一种芯片保护方法,芯片连接有加密电路,该方法包括:
获取所述加密电路的输出信号和所述芯片的加密运算结果;
比较所述加密电路的输出信号和所述芯片的加密运算结果;
如果所述加密电路的输出信号和所述芯片的加密运算结果不同,则触发芯片安全保护措施。
进一步的,所述获取所述加密电路的输出信号和所述芯片的加密运算结果的步骤之前,还包括:
向所述加密电路和芯片输入验证信息;
所述加密电路根据所述验证信息得到输出信号;
所述芯片根据所述验证信息,按照预置的加密规则进行运算,得到加密运算结果。
进一步的,上述芯片保护方法还包括:
设置加密规则,供所述芯片进行加密运算使用。
进一步的,所述验证信息为一密钥和一随机数,所述验证信息以集成电路信号的形式输入至所述加密电路,所述集成电路信号为数字信号和/或非数字信号,向所述加密电路和芯片输入验证信息的步骤具体为以一路或多路信号向所述加密电路和芯片输入验证信息。
进一步的,所述加密电路由至少一种下述器件组成:
MOS电路、有源器件、无源器件和互联导线。
进一步的,所述加密电路处于所述芯片所处硅圆片划片槽的中心。
本发明还提供了一种芯片保护方法,芯片连接有加密电路,该方法包括:
获取所述加密电路的输出信号;
所述芯片根据所述加密电路的输出信号进行解密运算;
比较所述加密电路的输入信号和所述芯片的解密运算结果;
如果所述加密电路的输入信号和所述芯片的解密运算结果不同,则触发芯片安全保护措施。
进一步的,所述获取所述加密电路的输出信号包括以下步骤:
向所述加密电路输入验证信息;
所述加密电路根据所述验证信息得到输出信号。
进一步的,上述芯片保护方法还包括:
设置解密规则,供所述芯片进行解密运算使用。
进一步的,所述验证信息为一密钥和一随机数,所述验证信息以集成电路信号的形式输入至所述加密电路,所述集成电路信号为数字信号和/或非数字信号,向所述加密电路和芯片输入验证信息的步骤具体为以一路或多路信号向所述加密电路和芯片输入验证信息。
进一步的,所述加密电路由至少一种下述器件组成:
MOS电路、有源器件、无源器件和互联导线。
进一步的,所述加密电路处于所述芯片所处硅圆片划片槽的中心。
本发明还提供了一种芯片保护系统,包括加密电路、芯片内部加密运算模块和运算结果比较模块;
所述加密电路,用于根据输入的验证信息得到输出信号;
所述运算结果比较模块,用于获取所述加密电路的输出信号和所述芯片内部加密运算模块的加密运算结果,比较所述加密电路的输出信号和所述芯片内部加密运算模块的加密运算结果,如果所述加密电路的输出信号和所述芯片的加密运算结果不同,则触发芯片保护措施。
进一步的,上述芯片保护系统还包括中央处理器;
所述中央处理器,用于向所述加密电路和所述芯片内部加密运算模块输入所述验证信息;和,
设置加密规则,供所述芯片内部加密运算模块进行加密运算使用;
所述芯片内部加密运算模块,用于根据所述验证信息,按照预置的加密规则进行运算,得到加密运算结果。
进一步的,所述加密电路由至少一种下述器件组成:
MOS电路、有源器件、无源器件和互联导线。
进一步的,所述加密电路处于所述芯片所处硅圆片划片槽的中心。
本发明还提供了一种芯片保护系统,包括加密电路、芯片内部解密运算模块和运算结果比较模块;
所述加密电路,用于根据输入的验证信息得到输出信号;
所述芯片内部解密运算模块,用于根据所述加密电路的输出信号进行解密运算;
所述运算结果比较模块,用于比较所述加密电路的输入信号和所述芯片内部解密运算模块的解密运算结果,并在所述加密电路的输入信号和所述芯片内部解密运算模块的解密运算结果不同时,触发芯片安全保护措施。
进一步的,上述芯片保护系统,还包括中央处理器;
所述中央处理器,用于向所述加密电路输入所述验证信息;和,
设置加密规则,供所述芯片内部解密运算模块进行解密运算使用。
进一步的,所述加密电路由至少一种下述器件组成:
MOS电路、有源器件、无源器件和互联导线。
进一步的,所述加密电路处于所述芯片所处硅圆片划片槽的中心。
本发明提供的芯片保护方法和系统,在芯片上连接有加密电路,通过获取所述加密电路的输出信号和所述芯片的加密运算结果,比较所述加密电路的输出信号和所述芯片的加密运算结果,对操作的合法性进行验证,并在所述加密电路的输出信号和所述芯片的加密运算结果不同时,触发芯片安全保护措施,解决了使用熔丝进行芯片保护安全性差的问题。
具体实施方式
现有的保险丝技术将熔丝设计在芯片中间和芯片边缘,熔丝通常采用可导电的多晶硅、金属和合金,通常硅片(wafer)上有成千上万的芯片,在减薄之后,通过划片刀将每一颗芯片剪裁出来。每一颗芯片的有效图形之间,留有固定宽度的空间,用于划片刀划片,熔丝在划片槽中,与芯片相连接,在划片之后熔丝即被摧毁。通常划片槽的宽度由集成电路加工工艺和划片技术决定,一般会有100um~10um等多个宽度等级。
包含多芯片的硅片结构如图1所示,在硅片完成测试后对熔丝进行物理切断。常用的手段有:
1、将熔丝设计在芯片边缘处在划片槽内,在硅圆片完成圆片测试后进行划片时直接划断;
2、将熔丝设计在芯片的某一个导电层上,在硅圆片完成圆片测试后通过外部或内部产生高压,致使熔丝上产生很大热量,熔断;
3、将熔丝设计在芯片的接近表面的某一个金属层上,在硅圆片完成圆片测试后通过外部高能激光切断。
由于硅片上熔丝的物理存在痕迹不可消除,即便熔丝已被摧毁,还是可能被定位,并使用聚焦离子束(FIB)等手段重新生长金属,连结已被不导通的熔丝。黑客通常有能力定位和重新连结残余熔丝,进而攻击芯片,安全性较差。
为了解决上述问题,本发明的实施例一提供了一种芯片保护方法,下面结合附图,对该方法进行详细说明。
本发明实施例所使用的芯片保护系统如图2所示,添加了加密电路201,以加密电路替代现有技术中的熔丝,加密电路处于划片槽的中心,且加密电路的宽度以划片时能保证完全摧毁加密电路为准,这样即使划片过程有一定误差也一定会完全摧毁加密电路中的MOS管,因此在每一颗完成生产的芯片都不会暴露加密电路的结构,不会被猜测出信号特征。例如当划片槽宽度为80um时,如果划片刀和划片技术决定了在中线附近会有40um左右的宽度会被切除掉,则需要保证加密电路的宽度大致在10~20um。
加密电路由至少一种下述器件组成:MOS电路、有源器件、无源器件和互联导线。例如,如图3所示,使用一组线性反馈移位寄存器(LFSR),数据、密钥分别从主芯片区域输入,运算结果返回主芯片,一旦LSFR被摧毁,根本无法从残留的金属导线上推导出信号之间的逻辑关系。此外,该芯片保护系统还包括中央处理器(CPU)202、运算结果比较模块203和芯片内部加密运算模块204,其中,运算结果比较模块203和芯片内部加密运算模块204的功能亦可由CPU202完成,本发明实施例对此不作限定。
所述运算结果比较模块203,用于获取所述加密电路201的输出信号和所述芯片内部加密运算模块204的加密运算结果,比较所述加密电路201的输出信号和所述芯片内部加密运算模块204的加密运算结果,如果所述加密电路201的输出信号和所述芯片的加密运算结果不同,则触发芯片保护措施。
进一步的,所述加密电路201,用于根据输入验证信息得到输出信号;
所述芯片内部加密运算模块204,用于根据所述验证信息,按照预置的加密规则进行运算,得到加密运算结果。
所述CPU202,用于向所述加密电路201和所述芯片内部加密运算模块204输入所述验证信息;和,
设置加密规则,供所述芯片进行加密运算使用。
结合上述芯片保护系统,使用本发明的实施例提供的芯片保护方法完成芯片保护的过程如图4所示,包括:
步骤401、设置加密规则,供所述芯片进行加密运算使用;
本发明实施例中,所述加密规则主要包含三部分:
1、加密电路的结构;
2、加密运算的算法;
3、密钥。
加密电路由集成电路工艺中所有可用的MOS电路、有源或无源器件、以及互联导线组成,在加密电路的结构确定后,其内部的逻辑运算也就确定了,对于不同的输入,都会根据内部电路的逻辑运算得到相应的输出,输入和输出的位数可根据实际情况设计调整,输入和输出的位数越多,电路结构越复杂,被恢复的概率就越低。每一个新产品都会对应一个专有的加密电路结构。加密电路接收和返回的信号(即输入和输出)可以是数字信号,也可以是非数字信号,或数字信号与非数字信号的组合。上述信号可以是电信号,也可以是光、磁场或其他集成电路可以产生的信号类型。
芯片内部加密运算模块根据预先规定的加密运算的算法进行加密运算。
密钥作为芯片保护流程的输入,只有输入的密钥为约定的密钥时,加密电路的输出结果与芯片内部加密运算模块的加密运算结果才会相同,这样,也就保证了芯片的安全性。
本发明实施例中,将芯片的部分核心功能和数据与芯片保护系统关联起来,当需要使用上述核心功能或对上述核心数据进行操作时,都会启动芯片保护系统,以确保芯片的安全性。
步骤402、向所述加密电路和芯片输入验证信息;
本步骤中,验证信息为一随机数和步骤401中预置的密钥。
具体的,由外部通过中央处理器向加密电路输入密钥,中央处理器生成并向该加密电路输入随机数。可通过一路和多路信号完成输入,如果通过一路信号输入则依次逐位输入,通过多路信号则可将多位验证信息并行输入。
而芯片内部加密运算模块则由中央处理器输入全部验证信息,可通过一路或多路信号输入,与上述输入方式相同。
步骤403、所述加密电路根据所述验证信息得到输出信号;
本步骤中,在加密电路已被破坏的情况下,是无法进行输出的。
如果已摧毁的加密电路被简单的通过导线连接起来,则会导致即使输入的验证信息正确,输出信号也不正确。
步骤404、所述芯片根据所述验证信息,按照预置的加密规则进行运算,得到加密运算结果;
如果加密电路已被破坏,则输出电平错误,芯片的运算结果比较模块无法输出信号,直接判断触发芯片安全保护措施。
步骤405、获取所述加密电路的输出信号和所述芯片的加密运算结果;
步骤406、比较所述加密电路的输出信号和所述芯片的加密运算结果;
步骤407、如果所述加密电路的输出信号和所述芯片的加密运算结果不同,则触发芯片安全保护措施;
本发明实施例中,芯片安全保护措施具体为拒绝启动请求的操作(如使用核心功能或访问核心数据),甚至也可以为自行摧毁芯片,可视实际的安全需要设置。
步骤405至步骤407由芯片内部加密运算模块完成,该模块也可集成于CPU中,由CPU完成相应功能。
下面结合附图,对本发明的实施例二进行说明。
本发明的实施例二提供了一种芯片保护方法,添加一加密电路,通过该加密电路完成对芯片的保护,本发明实施例所使用的芯片保护系统如图5所示,添加了加密电路501,以加密电路替代现有技术中的熔丝,加密电路处于划片槽的中心,且加密电路的宽度以划片时能保证完全摧毁加密电路为准,这样即使划片过程有一定误差也一定会完全摧毁加密电路中的MOS管,因此在每一颗完成生产的芯片都不会暴露加密电路的结构,不会被猜测出信号特征。例如当划片槽宽度为80um时,如果划片刀和划片技术决定了在中线附近会有40um左右的宽度会被切除掉,则需要保证加密电路的宽度大致在10~20um。
该系统还包括芯片内部解密运算模块502和运算结果比较模块503。
所述芯片内部解密运算模块502,用于根据所述加密电路501的输出信号进行解密运算;
所述运算结果比较模块503,用于比较所述加密电路501的输入信号和所述芯片内部解密运算模块502的解密运算结果,并在所述加密电路501的输出信号和所述芯片的加密运算结果不同时,触发芯片安全保护措施。
进一步的,该系统还包括CPU504,用于向所述加密电路501输入所述验证信息;和,
设置加密规则,供所述芯片内部解密运算模块502进行解密运算使用。
结合上述芯片保护系统,使用本发明的实施例提供的芯片保护方法完成芯片保护的过程如图6所示,包括:
步骤601、设置解密规则,供所述芯片进行解密运算使用;
本发明实施例中,所述解密规则主要包含三部分:
1、加密电路的结构;
2、解密运算的算法;
3、密钥。
加密电路由集成电路工艺中所有可用的MOS电路、有源或无源器件、以及互联导线组成,在加密电路的结构确定后,其内部的逻辑运算也就确定了,对于不同的输入,都会根据内部电路的逻辑运算得到相应的输出,输入和输出的位数可根据实际情况设计调整,输入和输出的位数越多,电路结构越复杂,被恢复的概率就越低。每一个新产品都会对应一个专有的加密电路结构。加密电路接收和返回的信号(即输入和输出)可以是数字信号,也可以是非数字信号,或数字信号与非数字信号的组合。上述信号可以是电信号,也可以是光、磁场或其他集成电路可以产生的信号类型。
芯片内部解密运算模块根据预先规定的解密运算的算法进行解密运算。
密钥作为芯片保护流程的输入,只有输入的密钥为约定的密钥时,加密电路的输入信号与芯片内部解密运算模块的解密运算结果才会相同,这样,也就保证了芯片的安全性。
本发明实施例中,将芯片的部分核心功能和数据与芯片保护系统关联起来,当需要使用上述核心功能或对上述核心数据进行操作时,都会启动芯片保护系统,以确保芯片的安全性。
步骤602、向所述加密电路输入验证信息;
本步骤中,验证信息为一随机数和步骤601中预置的密钥。
具体的,由外部通过中央处理器向加密电路输入密钥,中央处理器生成并向该加密电路输入随机数。可通过一路和多路信号完成输入,如果通过一路信号输入则依次逐位输入,通过多路信号则可将多位验证信息并行输入。
步骤603、所述加密电路根据所述验证信息得到输出信号;
本步骤中,在加密电路已被破坏的情况下,是无法进行输出的。
如果已摧毁的加密电路被简单的通过导线连接起来,则会导致即使输入的验证信息正确,输出信号也不正确。
步骤604、所述芯片根据所述输出信号,按照预置的解密规则进行运算,得到解密运算结果;
步骤605、运算结果比较模块比较所述加密电路的输入信号和所述芯片的解密运算结果;
本发明实施例中,输入信号具体指验证信息中的随机数。
步骤606、如果所述加密电路的输入信号和所述芯片的解密运算结果不同,则触发芯片安全保护措施;
本发明实施例中,芯片安全保护措施具体为拒绝启动请求的操作(如使用核心功能或访问核心数据),甚至也可以为自行摧毁芯片,可视实际的安全需要设置。
步骤605至步骤606由芯片内部加密运算模块完成,该模块也可集成于CPU中,由CPU完成相应功能。
本发明提供的芯片保护方法和系统,在芯片上连接有加密电路,通过在接收到读取芯片内部信息的请求时,获取所述加密电路的输出信号和所述芯片的加密运算结果,比较所述加密电路的输出信号和所述芯片的加密运算结果,对操作的合法性进行验证,并在所述加密电路的输出信号和所述芯片的加密运算结果不同时,触发芯片安全保护措施,解决了使用熔丝进行芯片保护安全性差的问题。也可以获取所述加密电路的输出信号,由所述芯片根据所述加密电路的输出信号进行解密运算,并比较所述加密电路的输入信号和所述芯片内部解密运算模块的解密运算结果,在所述加密电路的输入信号和所述芯片的解密运算结果不同,触发芯片安全保护措施。即使将加密电路的残余部分定位重新连结,加密电路的电路结构也已经缺失,仍然能够保证不能进入加密电路被破坏前的工作状态,从根本上避免了据此进一步攻击的可能。
即使攻击者通过窃取手段得到完整wafer(芯片划片前状态)的情况下,或者说即使将加密电路恢复到被破坏前的状态,攻击者如果得不到正确密钥(key),也会触发芯片安全保护措施。密钥的安全管理有另外的安全控制方式,不会和芯片一起出现。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。