用于混淆半导体装置中的操作码命令的系统和方法制造方法及图纸

技术编号:30678284 阅读:44 留言:0更新日期:2021-11-06 09:07
一种用于保护集成电路芯片的方法,包括:从所述芯片中的第一存储区域获得第一值,从所述芯片中的第二存储区域获得第二值,基于所述第一值和所述第二值生成第三值,以及基于所述第三值将混淆为第二操作码命令的第一操作码命令转换成所述第一操作码命令的未混淆形式。所述第一值对应于所述芯片的物理不可克隆功能(PUF)。所述第二值为包括指示将所述第一操作码命令混淆为所述第二操作码命令所执行的混淆类型的信息的密钥。所述第三值可以为指示将所述第一操作码命令混淆为所述第二操作码命令所执行的混淆类型的反转标志。命令所执行的混淆类型的反转标志。命令所执行的混淆类型的反转标志。

【技术实现步骤摘要】
用于混淆半导体装置中的操作码命令的系统和方法


[0001]本文中所公开的示例实施例涉及用于半导体装置的保护措施。

技术介绍

[0002]防止黑客获得对集成电路的未授权访问权是芯片设计者的重点。一些黑客技术会尝试对芯片的网表进行逆向工程。网表指示芯片上的电子电路的组件的逻辑和/或物理连通性,所述连通性可以例如根据电路组件的实例、节点、连接点、电线和属性来指示。一旦获得访问权,黑客就可能会尝试使用网表来复制芯片的硬件,以窃取专属机密或出售伪造芯片。其它黑客技术会尝试访问芯片软件,以插入恶意软件、木马或软件后门,或寻找现有软件后门用于进一步入侵。其它技术则侧重于复制芯片软件。针对这些和其它黑客技术的现有对策存在显著缺点,并且已证实所述对策在减少资金和名誉损失以及充分保护半导体装置制造商的专属权益方面是不成功的。

技术实现思路

[0003]根据一个或多个实施例,一种用于保护半导体装置的方法包括:接收用于芯片的第一操作码命令;将所述第一操作码命令混淆为第二操作码命令;基于所述芯片的物理不可克隆功能(PUF)生成密钥;以及控制混淆为所述第二操作码命令的所述第一操作码命令和所述密钥的传送以使之存储在所述芯片中,其中混淆为所述第二操作码命令的所述第一操作码命令具有与所述第二操作码命令相同的语法并且执行与所述第二操作码命令不同的功能,并且其中所述密钥包括指示将所述第一操作码命令混淆为所述第二操作码命令所执行的混淆类型的值。所述方法代表了对如何实现使恶意攻击者更难以对代码执行逆向工程问题的解决方案。
[0004]生成所述密钥可以包括:逻辑地组合第一值和第二值,其中所述第一值对应于所述PUF的值,并且其中所述第二值基于指示将所述第一操作码命令混淆为所述第二操作码命令所执行的所述混淆类型的所述值。所述第一操作码命令可以为第一条件分支命令,并且所述第二操作码命令可以为第二条件分支命令。所述第二条件分支命令可以为第一条件分支命令的反转。所述第一操作码命令可以为若不等于则分支(BNE)命令,并且所述第二操作码命令可以为若等于则分支(BEQ)命令。所述混淆类型可以为反转。
[0005]生成所述密钥可以包括:生成对应于所述反转的值的反转标志;并且逻辑地组合所述反转标志和所述PUF的值。所述反转标志和所述PUF的所述值可以是基于异或运算逻辑地组合的。所述方法可以包括:将所述PUF的所述值存储在存储位置中;以及控制指令指针到所述芯片的传送,其中所述指令指针指示所述芯片中的存储区域中的位置,可以在所述位置检索所述密钥,用于将混淆为所述第二操作码命令的所述第一操作码命令转换成所述第一操作码命令的未混淆形式以供执行。
[0006]根据一个或多个实施例,一种用于控制集成电路芯片的方法包括:从所述芯片中的第一存储区域获得第一值;从所述芯片中的第二存储区域获得第二值;基于所述第一值
和所述第二值生成第三值;基于所述第三值将混淆为第二操作码命令的第一操作码命令转换成所述第一操作码命令的未混淆形式以供执行,其中所述第一值对应于所述芯片的物理不可克隆功能(PUF),并且其中所述第二值为包括指示将所述第一操作码命令混淆为所述第二操作码命令所执行的混淆类型的信息的密钥,混淆为所述第二操作码命令的所述第一操作码命令具有与所述第二操作码命令相同的语法并且执行与所述第二操作码命令不同的功能。所述方法代表了对如何实现使恶意攻击者更难以对代码执行逆向工程问题的替代性解决方案。
[0007]生成所述第三值可以包括:逻辑地组合所述第一值和所述第二值,其中所述第一值和所述第二值的所述逻辑组合恢复所述密钥,所述密钥用于将混淆为所述第二操作码命令的所述第一操作码命令转换成所述第一操作码命令的未混淆形式。所述第一操作码命令可以为第一条件分支命令,并且所述第二操作码命令可以为第二条件分支命令。所述第二条件分支命令可以为第一条件分支命令的反转。所述第一操作码命令可以为若不等于则分支(BNE)命令,并且所述第二操作码命令可以为若等于则分支(BEQ)命令。所述混淆类型可以为反转。所述逻辑组合可以包括异或运算。获得所述第二值可以包括:从所述芯片上的第一存储区域检索所述密钥,所述第一存储区域对应于由生成混淆为所述第二操作码命令的所述第一操作码命令的控制器指示的指令指针。
[0008]根据一个或多个实施例,一种集成电路芯片包括:存储器,所述存储器被配置成存储指令;以及处理器,所述处理器被配置成执行所述指令以:从所述芯片中的第一存储区域获得第一值;从所述芯片中的第二存储区域获得第二值;基于所述第一值和所述第二值生成第三值;基于所述第三值将混淆为第二操作码命令的第一操作码命令转换成所述第一操作码命令的未混淆形式以供执行,其中所述第一值对应于所述芯片的物理不可克隆功能(PUF),并且其中所述第二值为包括指示将所述第一操作码命令混淆为所述第二操作码命令所执行的混淆类型的信息的密钥,混淆为所述第二操作码命令的所述第一操作码命令具有与所述第二操作码命令相同的语法并且执行与所述第二操作码命令不同的功能。
[0009]所述处理器可以:基于所述第一值和所述第二值的逻辑组合生成所述第三值,所述第一值和所述第二值的所述逻辑组合可以恢复所述密钥,所述密钥用于将混淆为所述第二操作码命令的所述第一操作码命令转换成所述第一操作码命令的未混淆形式以供执行。所述第一操作码命令可以为第一条件分支命令,并且所述第二操作码命令可以为第二条件分支命令。
附图说明
[0010]结合图式,本专利技术的额外目标和特征将从以下详细描述和所附权利要求书变得更显而易见。尽管示出并描述了若干示例实施例,但在每个附图中,相同的附图标记标识相同的部分,在附图中:
[0011]图1示出了用于为半导体装置提供保护的系统的实施例;
[0012]图2示出了半导体装置中的操作码转换逻辑的实施例;
[0013]图3示出了用于为半导体装置提供保护的方法的实施例;
[0014]图4示出了包括转换逻辑的集成电路芯片的实施例;
[0015]图5示出了用于生成和存储保护信息的实施例;
[0016]图6示出了根据实施例的操作码命令转换的例子;
[0017]图7示出了根据一个或多个实施例的操作码命令转换的例子;
[0018]图8示出了指令指针查找表的例子;
[0019]图9示出了用于选择性地控制操作码命令转换的逻辑的例子;
[0020]图10示出了用于转换受保护的半导体装置中的操作码命令的方法的实施例;并且
[0021]图11示出了半导体装置中的操作码转换逻辑的实施例。
具体实施方式
[0022]应理解,附图仅为示意性的并且未按比例绘制。还应理解,贯穿各附图使用相同的附图标记指示相同或类似的部分。
[0023]描述和图式示出了各种示例实施例的原理。因此,将了解,本领域的技术人员将能够设计各种布置,尽管本文中未明确地描述或示出所述布置,但所述布置体现本专利技术的原理且包括在本专利技术的范围内。此外,本文中所引述的所有例子主要旨在明确地用于教学目本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于保护半导体装置的方法,其特征在于,包括:接收用于芯片的第一操作码命令;将所述第一操作码命令混淆为第二操作码命令;基于所述芯片的物理不可克隆功能PUF生成密钥;以及控制混淆为所述第二操作码命令的所述第一操作码命令和所述密钥的传送以使之存储在所述芯片中,其中混淆为所述第二操作码命令的所述第一操作码命令具有与所述第二操作码命令相同的语法并且执行与所述第二操作码命令不同的功能,并且其中所述密钥包括指示将所述第一操作码命令混淆为所述第二操作码命令所执行的混淆类型的值。2.根据权利要求1所述的方法,其特征在于,生成所述密钥包括:逻辑地组合第一值和第二值,其中所述第一值对应于所述PUF的值,并且其中所述第二值基于指示将所述第一操作码命令混淆为所述第二操作码命令所执行的所述混淆类型的所述值。3.根据权利要求2所述的方法,其特征在于:所述第一操作码命令为第一条件分支命令,并且所述第二操作码命令为第二条件分支命令。4.根据权利要求3所述的方法,其特征在于,所述第二条件分支命令为所述第一条件分支命令的反转。5.根据权利要求4所述的方法,其特征在于:所述第一操作码命令为若不等于则分支BNE命令,并且所述第二操作码命令为若等于则分支BEQ命令。6.根据权利要求4或5所述的方法,其特征在于,所述混淆类型为反转。7.根据权利要求6所述的方法,其特征在于,生成所述密钥包括:生成对应于所述反转的值的反转标志;并且逻辑地组合所述反转标志和所述PUF的值。8.根据权利要求7...

【专利技术属性】
技术研发人员:简彼得
申请(专利权)人:恩智浦有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1