半导体装置和操作半导体装置的方法与流程

文档序号:18198236发布日期:2019-07-17 05:59阅读:137来源:国知局
半导体装置和操作半导体装置的方法与流程

本公开的示例性实施例涉及半导体装置和操作半导体装置的方法。



背景技术:

能够执行包括安全应用的安全软件的半导体装置将密钥存储在其中并永久地编程由安全软件使用的密钥。例如,在制造将被安装在半导体装置上的芯片或芯片组的过程期间,密钥的值可被融合在诸如包括在半导体装置中的一次可编程(otp)存储器的元件中。

然而,当在完成制造过程之后将芯片分发到另一个地方或者使用该芯片开发产品时,未授权的第三方可在未经许可的情况下访问融合在芯片中的密钥并泄露密钥。



技术实现要素:

本公开的示例性实施例提供一种防止融合在一次可编程(otp)存储器中的密钥在安全特征被启用之前泄露的半导体装置。

本公开的示例性实施例还提供一种操作防止融合在otp存储器中的密钥在安全特征被启用之前泄露的半导体装置的方法。

根据本公开的示例性实施例,一种半导体装置,包括包含密钥编程区和多个密钥保护设置区的otp存储器。密钥被存储在密钥编程区,保护存储在密钥编程区的密钥的多个设置值被编程在多个密钥保护设置区中。所述半导体装置还包括密钥寄存器和密钥保护控制逻辑电路。密钥寄存器被配置为加载存储在otp存储器中的密钥。当密钥被加载到密钥寄存器中时,密钥能够被安全软件访问。密钥保护控制逻辑电路被配置为基于编程在otp存储器的所述多个密钥保护设置区中的所述多个设置值将存储在otp存储器中的密钥加载到密钥寄存器中。

所述多个密钥保护设置区包括存储密钥保护使能位的密钥保护使能设置区。当密钥保护使能位被编程时,密钥保护控制逻辑电路不将存储在otp存储器中的密钥加载到密钥寄存器中。

所述多个密钥保护设置区还包括存储安全启动使能位的安全启动使能设置区。所述半导体装置还包括:只读存储器(rom),被配置为对在启动时执行的二进制文件执行签名验证,其中,rom根据安全启动使能位的值执行或不执行签名验证。

当密钥保护使能位和安全启动使能位被编程时,密钥保护控制逻辑电路将存储在otp存储器中的密钥加载到密钥寄存器中。

所述多个密钥保护设置区还包括存储调试端口保护使能位的调试端口保护使能设置区。所述半导体装置还包括:调试端口,被配置为向用户提供调试接口,其中,调试端口根据调试端口保护使能位的值允许或禁止用户的访问。

当密钥保护使能位和调试端口保护使能位被编程时,密钥保护控制逻辑电路将存储在otp存储器中的密钥加载到密钥寄存器中。

所述半导体装置还包括:密钥保护使能寄存器,其中,设定值通过安全软件被写入到密钥保护使能寄存器中。当密钥保护使能寄存器被编程时,密钥保护控制逻辑电路不将存储在otp存储器中的密钥加载到密钥寄存器中。

存储在密钥保护使能寄存器中的设定值在所述半导体装置的操作期间仅能够改变一次。根据本公开的示例性实施例,一种半导体装置,包括包含密钥编程区和多个密钥保护设置区的otp存储器。密钥被存储在密钥编程区,保护存储在密钥编程区中的密钥的多个设置值被存储在所述多个密钥保护设置区中。所述半导体装置还包括密钥寄存器和密钥保护控制逻辑电路。密钥寄存器被配置为加载存储在otp存储器中的密钥。当密钥被加载到密钥寄存器中时,密钥能够被安全软件访问。密钥保护控制逻辑电路被配置为对存储在otp存储器的所述多个密钥保护设置区中的所述多个设置值执行一个或多个逻辑运算。密钥保护控制逻辑电路基于执行所述一个或多个逻辑运算的结果来确定是否将存储在otp存储器中的密钥加载到密钥寄存器中。

所述多个密钥保护设置区包括存储密钥保护使能位的密钥保护使能设置区。当密钥保护使能位具有第一值时,密钥保护控制逻辑电路使存储在otp存储器中的密钥被加载到密钥寄存器中;当密钥保护使能位具有第二值时,密钥保护控制逻辑电路使存储在otp存储器中的密钥不被加载到密钥寄存器中。

所述多个密钥保护设置区还包括存储安全启动使能位的安全启动使能设置区和存储调试端口保护使能位的调试端口保护使能设置区。所述半导体装置还包括:只读存储器(rom),被配置为对在启动时执行的二进制文件执行签名验证,其中,rom根据安全启动使能位的值执行或不执行签名验证;调试端口,被配置为向用户提供调试接口,其中,调试端口根据调试端口保护使能位的值允许或禁止用户的访问。

密钥保护控制逻辑电路对安全启动使能位和调试端口保护使能位执行第一逻辑运算,并对第一逻辑运算的结果和密钥保护使能位执行第二逻辑运算。密钥保护控制逻辑电路基于第二逻辑运算的结果来确定是否将存储在otp存储器中的密钥加载到密钥寄存器中。

所述半导体装置还包括:密钥保护使能寄存器,其中,设定值通过安全软件被写入到密钥保护使能寄存器中。密钥保护控制逻辑电路对第二逻辑运算的结果和写入到密钥保护使能寄存器中的值执行第三逻辑运算。密钥保护控制逻辑电路基于第三逻辑运算的结果来确定是否将存储在otp存储器中的密钥加载到密钥寄存器中。

存储在密钥保护使能寄存器中的设定值在所述半导体装置的操作期间仅能够改变一次。

所述半导体装置还包括:密钥保护使能寄存器,其中,设定值通过安全软件被写入到密钥保护使能寄存器中。当密钥保护使能寄存器被编程时,密钥保护控制逻辑电路不将存储在otp存储器中的密钥加载到密钥寄存器中。

根据本公开的示例性实施例,一种操作半导体装置的方法,包括:通过包括在半导体装置中的密钥保护控制逻辑电路,从包括在半导体装置的otp存储器的一个或多个密钥保护设置区接收一个或多个设置值。所述方法还包括:通过密钥保护控制逻辑电路,对所述一个或多个设置值执行一个或多个逻辑运算。所述方法还包括:通过密钥保护控制逻辑电路,基于执行所述一个或多个逻辑运算的结果来确定是否将存储在otp存储器中的密钥加载到包括在半导体装置中的密钥寄存器。

所述一个或多个设置值包括密钥保护使能位。确定是否将存储在otp存储器中的密钥加载到密钥寄存器中的步骤包括:当密钥保护使能位具有第一值时,使密钥被加载到密钥寄存器中;当密钥保护使能位具有第二值时,使密钥不被加载到密钥寄存器中。

所述一个或多个设置值还包括安全启动使能位和调试端口保护使能位。执行所述一个或多个逻辑运算的步骤包括:对安全启动使能位和调试端口保护使能位执行第一逻辑运算,随后对第一逻辑运算的结果和密钥保护使能位执行第二逻辑运算。基于第二逻辑运算的结果来确定是否将存储在otp存储器中的密钥加载到密钥寄存器中。

所述方法还包括:从包括在半导体装置中的密钥保护使能寄存器接收设定值,其中,设定值通过安全软件被写入到密钥保护使能寄存器。执行所述一个或多个逻辑运算的步骤还包括:对第二逻辑运算的结果和从密钥保护使能寄存器接收的设定值执行第三逻辑运算。基于第三逻辑运算的结果来确定是否将存储在otp存储器中的密钥加载到密钥寄存器中。

所述方法还包括:从包括在半导体装置中的密钥保护使能寄存器接收设定值,其中,设定值通过安全软件被写入到密钥保护使能寄存器。确定是否将存储在otp存储器中的密钥加载到密钥寄存器中的步骤包括:当从密钥保护使能寄存器接收的设定值具有编程的值而不是默认值时,使密钥不被加载到密钥寄存器中。

根据本公开的示例性实施例,一种半导体装置包括:包含密钥编程区和多个密钥保护设置区的otp存储器。密钥被存储在密钥编程区,保护存储在密钥编程区中的密钥的多个设置值被编程在所述多个密钥保护设置区中。所述半导体装置还包括:密钥寄存器,被配置为加载存储在otp存储器中的密钥。otp存储器的密钥编程区不能够被安全软件访问,密钥寄存器能够被安全软件访问,当密钥被存储在密钥编程区并且未被加载到密钥寄存器中时,密钥不能够被安全软件访问;当密钥被加载到密钥寄存器中时,密钥能够被安全软件访问。所述半导体装置还包括:密钥保护控制逻辑电路,被配置为基于编程在otp存储器的所述多个密钥保护设置区中的所述多个设置值将存储在otp存储器中的密钥加载到密钥寄存器中。

附图说明

通过参照附图详细描述本公开的示例性实施例,本公开的以上特征和其他特征将变得更清楚,其中:

图1是根据本公开的示例性实施例的半导体装置的框图。

图2是示出根据本公开的示例性实施例的半导体装置的框图。

图3是示出根据本公开的示例性实施例的半导体装置的框图。

图4是示出根据本公开的示例性实施例的半导体装置的框图。

图5是示出根据本公开的示例性实施例的半导体装置的框图。

图6是示出根据本公开的示例性实施例的半导体装置的框图。

图7是示出根据本公开的示例性实施例的半导体装置的框图。

图8是示出根据本公开的示例性实施例的操作半导体装置的方法的流程图。

图9是示出根据本公开的示例性实施例的操作半导体装置的方法的流程图。

图10是示出根据本公开的示例性实施例的操作半导体装置的方法的流程图。

具体实现方式

在下文中,将参照附图更充分地描述本公开的示例性实施例。贯穿附图,相同的参考标号可表示相同的元件。

将理解,术语“第一”、“第二”、“第三”等可在此用于将一个元件与另一元件区分开,并且这些元件不被这些术语限制。因此,一个示例性实施例中的“第一”元件可被描述为另一示例性实施例中的“第二”元件。

本公开的示例性实施例提供一种方案,该方案保护在安装在半导体装置中的芯片中融合的安全密钥免受第三方影响,直到安全特征(诸如,安全启动特征和调试端口保护特征)被启用为止。

图1是示出根据本公开的示例性实施例的半导体装置的框图。图2是示出根据本公开的示例性实施例的半导体装置的框图。

参照图1和图2,根据本公开的示例性实施例的半导体装置1可包括应用处理器5、一次可编程(otp)存储器10、otp存储器控制器20、访问控制器30、只读存储器(rom)40、调试端口保护逻辑50、调试端口60、密钥保护控制逻辑100以及密钥寄存器110。

此外,根据本公开的示例性实施例,半导体装置1还可包括密钥保护使能寄存器120。

应用处理器5可控制半导体装置1的各种元件并可执行各种类型的软件。例如,应用处理器5可运行用于仅执行根据预定标准认证的任务的安全软件,并可运行用于执行无需被认证的任务的非安全软件。例如,应用处理器5可执行二进制文件(诸如,在半导体装置1的启动期间认证的启动图像)。

根据本公开的示例性实施例,应用处理器5可包括但不限于多个中央处理器(cpu)核。

在示例性实施例中,otp存储器10存储将被应用处理器5用于执行安全软件的密钥。根据本公开的示例性实施例,可在制造半导体装置1的过程期间用预定的值将密钥永久地编程到otp存储器10中。

根据本公开的示例性实施例,otp存储器10包括密钥编程区12和密钥保护设置区14、16和18。

密钥编程区12是将用于通过应用处理器5执行安全软件的密钥被编程的区。通过应用处理器5执行的软件不能直接访问密钥编程区12。为了访问密钥,通过应用处理器5执行的软件必须使用密钥寄存器110,这将在下面更详细地描述。

密钥保护设置区14、16和18是用于保护存储在密钥编程区12中的密钥的设置值被编程的区。密钥保护设置区14、16和18可分别存储密钥保护使能位、安全启动使能位和调试端口保护使能位。因此,密钥保护设置区14还可被称为密钥保护使能设置区14,密钥保护设置区16还可被称为安全启动使能设置区16,密钥保护设置区18还可被称为调试端口保护使能设置区18。虽然图1中示出的密钥保护设置区的数量为三,但是,应理解,密钥保护设置区的数量不限于此。例如,根据需要,密钥保护设置区的数量可以是一个或多个。

密钥保护控制逻辑100确定是否将在otp存储器10的密钥编程区12中编程的密钥加载到密钥寄存器110中。一旦密钥被加载到密钥寄存器110中,通过应用处理器5执行的软件可基于密钥保护设置区14、16和18中的编程的值来访问密钥。

下面将参照图3至图7提供关于密钥保护设置区14、16和18以及通过密钥保护控制逻辑100基于密钥保护设置区14、16和18中的编程的值确定是否将密钥加载到密钥寄存器110中的详细的描述。

密钥保护设置区14、16和18不能由软件访问。相反,密钥保护设置区14、16和18可由被实现为硬件元件的密钥保护控制逻辑100访问。

otp存储器控制器20基于由密钥保护控制逻辑100进行的确定来执行将存储在otp存储器10中的密钥加载到密钥寄存器110中的操作。otp存储器控制器20可仅由安全软件控制。

密钥寄存器110是可将加载的密钥提供给安全软件的硬件接口。例如,安全软件可读取加载到密钥寄存器110中的密钥。此外,密钥寄存器110不能被调试端口60访问,这将在下面更详细地描述。

如上所述,密钥保护控制逻辑100基于编程在otp存储器10的密钥保护设置区14、16和18中的值来确定是否将存储在otp存储器10中的密钥加载到密钥寄存器110中。

例如,密钥保护控制逻辑100可对存储在密钥保护设置区14、16和18中的设置值执行一个或多个逻辑运算,并可基于一个或多个逻辑运算的结果来确定是否将存储在otp存储器10中的密钥加载到密钥寄存器110中。

访问控制器30阻止非安全软件对密钥寄存器110的访问。此外,访问控制器30阻止非安全软件对需要被保护的元件(诸如,otp存储器控制器20、密钥保护控制逻辑100和密钥保护使能寄存器120)的访问。

rom40可存储在启动半导体装置1时将被执行的二进制文件,并可对二进制文件执行签名验证。在示例性实施例中,rom40可根据存储在安全启动使能设置区16中的安全启动使能位的值对二进制文件执行或不执行签名验证。例如,在一个示例性实施例中,当存储在安全启动使能设置区16中的安全启动使能位具有一个值时,rom40对二进制文件执行签名验证;当存储在安全启动使能设置区中的安全启动使能位具有另一值时,rom40对二进制文件不执行签名验证。

调试端口60向用户提供调试接口。例如,在调试端口保护逻辑50的控制下,调试端口60可根据存储在otp存储器10的调试端口保护使能设置区18中的调试端口保护使能位的值来允许或禁止用户的访问。例如,在一个示例性实施例中,当存储在调试端口保护使能设置区18中的调试端口保护使能位具有一个值时,调试端口60允许用户的访问;当存储在调试端口保护使能设置区18中的调试端口保护使能位具有另一值时,调试端口60禁止用户的访问。例如,在示例性实施例中,在调试端口保护逻辑50的控制下,调试端口60可根据存储在otp存储器10的调试端口保护使能设置区18中的调试端口保护使能位的值来允许或禁止用户访问密钥寄存器110。

密钥保护使能寄存器120可被安全软件访问。密钥保护控制逻辑100可基于密钥保护使能寄存器120中的编程的值来确定是否将otp存储器10的密钥编程区12中的编程的密钥加载到密钥寄存器110中。例如,当安全软件将不是指示访问应被准许的值的预定值编程在密钥保护使能寄存器120中时,密钥保护控制逻辑100不将存储在otp存储器10中的密钥加载到密钥寄存器110中。相反,当安全软件将指示访问应被准许的值的预定值编程在密钥保护使能寄存器120中时,密钥保护控制逻辑100将存储在otp存储器10中的密钥加载到密钥寄存器110中,从而准许安全软件访问密钥。

根据本公开的示例性实施例,密钥保护使能寄存器120被实现为使得可在半导体装置1的操作期间仅被改变一次。例如,存储在密钥保护使能寄存器120中的设置值可在半导体装置1被重新启动之前的半导体装置1的操作期间仅被改变一次。

在下文中,将详细地描述半导体装置1的用于防止融合在otp存储器10中的密钥在安全特征被启用之前泄露的操作。

图3是示出根据本公开的示例性实施例的半导体装置的框图。

参照图3,假设otp存储器10的密钥保护设置区14、16和18中的每个具有第一值(例如,0)作为默认值。此外,假设存储在密钥保护使能寄存器120中的设置值也具有第一值(例如,0)作为默认值。将理解,这些默认值是示例性的并且是为了便于描述而被引用,默认值不限于此。

此外,虽然在此第一值和第二值以二进制数0和1表示,但是这仅是出于示例性的目的而引用的实现方式,并且示例性实施例不限于此。

例如,在一些实现方式中,第一值和第二值可分别用二进制数1和0表示。此外,在一些实现方式中,密钥保护使能位的第一值、安全启动使能位的第一值和调试端口保护使能位的第一值可以不是同一值。例如,在示例性实施例中,当密钥保护使能位的第一值是二进制数0时,安全启动使能位的第一值或调试端口保护使能位的第一值可以是二进制数1。

将理解,在此,当存储在otp存储器10的密钥保护设置区14、16和18中的使能位或存储在密钥保护使能寄存器120中的设置值被描述为具有默认值(例如,第一值)时,使能位不被编程。此外,当存储在otp存储器10的密钥保护设置区14、16和18中的使能位或存储在密钥保护使能寄存器120中的设置值被描述为被编程时,使能位从默认值(例如,第一值)被改变为非默认值(例如,第二值)。为了便于解释,在在此描述的示例中,默认值(例如,非编程的值)(例如,第一值)为0,编程的值(例如,第二值)为1。然而,本公开的示例性实施例不限于此。

返回参考图3,在根据本公开的示例性实施例的半导体装置1中,密钥“0x123456789abc……”被编程在otp存储器10的密钥编程区12中。密钥“0x123456789abc……”在制造半导体装置1的过程期间被融合在otp存储器10中。

根据这个示例性实施例,存储在otp存储器10的密钥保护设置区14中的密钥保护使能位是作为默认值的第一值(例如,0)。当存储在otp存储器10的密钥保护设置区14中的密钥保护使能位是第一值时,密钥保护控制逻辑100确定将存储在otp存储器10的密钥编程区12中的密钥加载到密钥寄存器110中。

例如,密钥保护控制逻辑100将具有第二值(例如,1)的输出信号提供给密钥寄存器110,使得密钥寄存器110暴露存储在密钥编程区12中的密钥。密钥保护控制逻辑100的具有第二值的输出信号对应于指示密钥被加载到密钥寄存器110中的信号,这指示安全软件可读取密钥(“keyenable=on”)。

因此,在图3中,可以看出密钥“0x123456789abc……”被加载到密钥寄存器110中。也就是说,在这个示例中,对密钥的保护被禁用。

虽然图2至图7示出在密钥保护控制逻辑100内部包括反相器、与(and)逻辑门和或(or)逻辑门从而形成作为硬件元件的密钥保护控制逻辑电路100的逻辑电路图,但是这些逻辑电路图仅是为了示意性地示出密钥保护控制逻辑100的操作的示例。例如,根据示例性实施例,密钥保护控制逻辑100的实现方式不限于描绘的逻辑图,也不必包括图2至图7中示出的配置中的物理地描绘的逻辑电路。

图4是示出根据本公开的示例性实施例的半导体装置的框图。

参照图4,在根据本公开的示例性实施例的半导体装置1中,存储在otp存储器10的密钥保护使能设置区14中的密钥保护使能位可用第二值(例如,1)来编程。存储在密钥保护设置区16和18以及密钥保护使能寄存器120中的设置值保持它们的默认值。

当存储在密钥保护使能设置区14中的密钥保护使能位是第二值(例如,1)时,密钥保护控制逻辑100确定不将存储在otp存储器10的密钥编程区12中的密钥加载到密钥寄存器110中。

例如,密钥保护控制逻辑100将具有第一值(例如,0)的输出信号提供给密钥寄存器110,使得密钥寄存器110不暴露存储在密钥编程区12中的密钥。密钥保护控制逻辑100的具有第一值的输出信号对应于指示密钥不被加载到密钥寄存器110中的信号,这指示安全软件不能读取密钥(“keyenable=off”)。

结果,可以看出,在图4的otp存储器10的密钥编程区12中编程的密钥“0x123456789abc……”未被加载到密钥寄存器110中。因此,在这个示例中,对密钥的保护被启用。

根据本公开的示例性实施例,在此描述的密钥保护方案通过将密钥保护控制逻辑100实施为硬件元件(例如,包括例如逻辑门的密钥保护控制逻辑电路100)来实现。结果,示例性实施例能够完全防止软件(甚至包括安全软件)读取密钥,导致对传统的半导体装置密钥保护方案的改进。例如,在传统的半导体装置密钥保护方案中,融合在otp存储器中的密钥可能在安全特征被启用之前泄露。相反,根据示例性实施例,将密钥保护控制逻辑100实施为硬件元件(例如,硬件电路)防止融合在otp存储器10中的密钥在安全特征被启用之前泄露。根据示例性实施例,由于密钥保护控制逻辑100被实施为硬件电路,所以密钥保护控制逻辑100在此还可被称为密钥保护控制逻辑电路100。

将理解,虽然在对密钥的保护被启用时附图中的密钥寄存器110中指示“0x000000000000……”,但是这仅是示意性的说明,并且密钥寄存器110的实现方式不限于此。例如,在一些实现方式中,当对密钥的保护被启用时,密钥寄存器110可具有无意义的垃圾值代替“0x000000000000……”。

图5是示出根据本公开的示例性实施例的半导体装置的框图。

参照图5,在根据本公开的示例性实施例的半导体装置1中,存储在otp存储器10的密钥保护使能设置区14中的密钥保护使能位、存储在otp存储器10的安全启动使能设置区16中的安全启动使能位和存储在otp存储器10的调试端口保护使能设置区18中的调试端口保护使能位可用第二值(例如,1)来编程。存储在密钥保护使能寄存器120中的设置值保持默认值。

当密钥保护使能位和安全启动使能位被分别编程在密钥保护使能设置区14和安全启动使能设置区16中时,密钥保护控制逻辑100识别出作为多个安全特征中的一个安全特征的安全启动特征被启用。因此,存储在otp存储器10的密钥编程区12中的密钥可被加载到密钥寄存器110中。

此外,当密钥保护使能位和调试端口保护使能位被分别编程在密钥保护使能设置区14和调试端口保护使能设置区18中时,密钥保护控制逻辑100识别出作为多个安全特征中的一个安全特征的调试端口保护特征被启用。因此,存储在otp存储器10的密钥编程区12中的密钥可被加载到密钥寄存器110中。

例如,如图5中所示,密钥保护控制逻辑100可对存储在安全启动使能设置区16中的安全启动使能位和存储在调试端口保护使能设置区18中的调试端口保护使能位执行第一逻辑运算,并可对第一逻辑运算的结果和存储在密钥保护使能设置区14中的密钥保护使能位执行第二逻辑运算,以基于第二逻辑运算的结果来确定是否将存储在otp存储器10的密钥编程区12中的密钥加载到密钥寄存器110中。也就是说,密钥保护控制逻辑100可检查安全启动特征和调试端口保护特征二者是否被启用,并且可在这些安全特征都被启用时允许安全软件访问密钥。

例如,在本公开的示例性实施例中,调试端口保护特征可永久地或暂时地阻止调试端口(例如,可永久地或暂时地禁止调试端口的使用)。当调试端口保护特征暂时地阻止调试端口时,包括例如安全认证(安全jtag)的用户认证可被应用。

在本公开的示例性实施例中,第一逻辑运算可包括但不限于由and逻辑门执行的and逻辑运算,第二逻辑运算可包括但不限于由or逻辑门执行的or逻辑运算。

例如,仍参照图5,存储在安全启动使能设置区16中的安全启动使能位和存储在调试端口保护使能设置区18中的调试端口保护使能位具有第二值(例如,1),并且密钥保护控制逻辑100对安全启动使能位和调试端口保护使能位执行and逻辑运算。

然后,密钥保护控制逻辑100对and逻辑运算的结果(例如,1)和具有第二值(例如,1)的密钥保护使能位的反相值执行or逻辑运算。

然后,密钥保护控制逻辑100对or逻辑运算的结果(例如,1)和存储在密钥保护使能寄存器120中的设置值的反相值(例如,1)执行and逻辑运算,并根据and逻辑运算的结果(例如,1)将具有第二值(例如,1)的输出信号提供给密钥寄存器110,使得密钥寄存器110暴露存储在密钥编程区12中的密钥。

结果,可以看出,编程在图5的otp存储器10的密钥编程区12中的密钥“0x123456789abc……”被加载到密钥寄存器110中。也就是说,这个示例示出对密钥的保护被禁用但安全特征已在运行。

因此,在示例性实施例中,半导体装置1根据由被实现为硬件元件的密钥保护控制逻辑100实现的密钥保护方案仅执行允许的软件并禁止调试端口60的使用,从而安全地保护存储在otp存储器10中的密钥。

图6是示出根据本公开的示例性实施例的半导体装置的框图。

参照图6,在根据本公开的示例性实施例的半导体装置1中,密钥保护使能寄存器120以及存储在otp存储器10的密钥保护使能设置区14中的密钥保护使能位、存储在otp存储器10的安全启动使能设置区16中的安全启动使能位和存储在otp存储器10的调试端口保护使能设置区18中的调试端口保护使能位可用第二值(例如,1)来编程。

当密钥保护使能寄存器120被编程时,即使安全特征中的安全启动特征和调试端口保护特征被启用,密钥保护控制逻辑100也不将存储在otp存储器10的密钥编程区12中的密钥加载到密钥寄存器110中。

例如,密钥保护控制逻辑100可对存储在安全启动使能设置区16中的安全启动使能位和存储在调试端口保护使能设置区18中的调试端口保护使能位执行第一逻辑运算,可对第一逻辑运算的结果和存储在密钥保护使能设置区14中的密钥保护使能位执行第二逻辑运算,并可对第二逻辑运算的结果和从密钥保护使能寄存器120提供的设置值执行第三逻辑运算,以基于第三逻辑运算的结果来确定是否将存储在otp存储器10的密钥编程区12中的密钥加载到密钥寄存器110中。因此,在一个示例性实施例中,即使在密钥保护控制逻辑100确定安全启动特征和调试端口保护特征二者已被启用之后,如果需要,密钥保护控制逻辑100也可禁止安全软件访问密钥。

在本公开的示例性实施例中,第一逻辑运算和第三逻辑运算可包括但不限于由and逻辑门执行的and逻辑运算,而第二逻辑运算可包括但不限于由or逻辑门执行的or逻辑运算。

例如,仍参照图6,存储在安全启动使能设置区16中的安全启动使能位和存储在调试端口保护使能设置区18中的调试端口保护使能位具有第二值(例如,1),并且密钥保护控制逻辑100对这些位执行and逻辑运算。

然后,密钥保护控制逻辑100对and逻辑运算的结果(例如,1)和存储在密钥保护使能设置区14中的具有第二值(例如,1)的密钥保护使能位的反相值执行or逻辑运算。

然后,密钥保护控制逻辑100对or逻辑运算的结果(例如,1)和存储在密钥保护使能寄存器120中的具有第二值(例如,1)的设置值的反相值执行and逻辑运算。

然后,密钥保护控制逻辑100根据and逻辑运算的结果(例如,0)将具有第一值(例如,0)的输出信号提供给密钥寄存器110,使得密钥寄存器110不暴露存储在密钥编程区12中的密钥。

结果,可以看出,编程在图6的otp存储器10的密钥编程区12中的密钥“0x123456789abc……”不被加载到密钥寄存器110中。也就是说,这个示例示出如果需要,即使安全特征正在运行,对密钥的保护也被启用。

根据本公开的示例性实施例,密钥保护使能寄存器120被实现为使得在半导体装置1的操作期间仅可被改变一次。例如,存储在密钥保护使能寄存器120中的设置值可在半导体装置1被重新启动之前的半导体装置1的操作期间仅被改变一次。

根据本公开的示例性实施例,在此描述的密钥保护方案由被实施为硬件元件的密钥保护控制逻辑100(例如,包括例如多个逻辑门的密钥保护控制逻辑电路100)来实现。结果,在半导体装置1在启动时使用存储在otp存储器10的密钥之后,对密钥的保护被启用,使得密钥不再能够被使用,直到半导体装置1被复位为止。结果,存储在otp存储器10中的密钥的保护水平被提高。

图7是示出根据本公开的示例性实施例的半导体装置的框图。

参照图7,在根据本公开的示例性实施例的半导体装置1中,存储在otp存储器10的密钥保护使能设置区14中的密钥保护使能位、存储在otp存储器10的安全启动使能设置区16中的安全启动使能位和存储在otp存储器10的调试端口保护使能设置区18中的调试端口保护使能位都可以是作为默认值的第一值(例如,0)。因此,这个示例与对密钥的保护被禁用的图3中的示例相同。

在这个示例中,即使存储在otp存储器10的密钥保护使能设置区14中的密钥保护使能位、存储在otp存储器10的安全启动使能设置区16中的安全启动使能位和存储在otp存储器10的调试端口保护使能设置区18中的调试端口保护使能位未被编程,密钥保护使能寄存器120也可根据用户的请求用第二值(例如,1)来编程,以启用对密钥的保护。

如上所述,基于密钥保护使能位、安全启动使能位和调试端口保护使能位确定是否保护密钥的密钥保护控制逻辑100是硬件元件,然而密钥保护使能寄存器120是被安全软件访问且其内容可被改变的元件。

因此,对密钥的保护可根据安全软件的策略来启用,而不管半导体装置1的安全特征。

根据本公开的示例性实施例,密钥保护使能寄存器120被实现为使得在半导体装置1的操作期间仅可被改变一次。例如,存储在密钥保护使能寄存器120中的设置值可在半导体装置1被重新启动之前的半导体装置1的操作期间仅被改变一次。

是否保护密钥的确定可在安全软件的控制下进行。例如,在用户仅在特定时间点使用存储在otp存储器10中的密钥之后,对密钥的保护被启用,使得密钥不再能够被使用直到半导体装置1被复位为止,从而保护存储在otp存储器10中的密钥。

图8是根据本公开的示例性实施例的操作半导体装置的方法的流程图。

参照图8,根据本公开的示例性实施例的操作半导体装置1的方法从将用于通过应用处理器5执行安全软件的密钥融合在otp存储器10的密钥编程区12中(s801)开始。

随后,该方法包括将密钥保护使能位融合在otp存储器10的密钥保护使能设置区14中(s803)。结果,对密钥的保护可被启用。

随后,该方法包括将安全启动使能位融合在otp存储器10的安全启动使能设置区16并将调试端口保护使能位融合在otp存储器10的调试端口保护使能设置区18中(s805)。因此,当安全启动特征和调试端口保护特征二者被启用时,安全软件可被允许访问密钥。

图9是示出根据本公开的示例性实施例的操作半导体装置的方法的流程图。

参照图9,根据本公开的示例性实施例的操作半导体装置1的方法从将用于通过应用处理器5执行安全软件的密钥融合在otp存储器10的密钥编程区12(s901)开始。

随后,该方法包括将密钥保护使能位融合在otp存储器10的密钥保护使能设置区14中(s903)。结果,对密钥的保护可被启用。

随后,该方法包括将安全启动使能位融合在otp存储器10的安全启动使能设置区16中并将调试端口保护使能位存储在otp存储器10的调试端口保护使能设置区18中(s905)。因此,当安全启动特征与调试端口保护特征二者被启用时,安全软件可被允许访问密钥。

随后,该方法包括在安全软件的控制下对密钥保护使能寄存器120进行编程(s907)。因此,即使在已经确定安全启动特征和调试端口保护特征二者被启用之后,如果需要,安全软件可仍然被禁止访问密钥。

图10是示出根据本公开的示例性实施例的操作半导体装置的方法的流程图。

参照图10,根据本公开的示例性实施例的操作半导体装置1的方法从将用于通过应用处理器5执行安全软件的密钥融合在otp存储器10的密钥编程区12(s1001)开始。

随后,该方法包括在安全软件的控制下对密钥保护使能寄存器120进行编程(s1003)。通过这样做,对密钥的保护可根据安全软件的策略来启用,而不管半导体装置1的安全特征。

例如,根据上述参照图8至图10描述的方法,从otp存储器10的密钥保护设置区14、16和18接收一个或多个设置值,对一个或多个设置值执行一个或多个逻辑运算,并基于一个或多个逻辑运算的结果确定是否加载存储在otp存储器10中的密钥。上面已参照图3至图7详细地描述了为实现此而实施的方案。

根据在此描述的由根据本公开的示例性实施例的密钥保护控制逻辑100提供的密钥保护方案,在需要时可完全防止软件(甚至包括安全软件)读取密钥。

此外,由于半导体装置1可根据以上方案仅执行允许的软件并且可禁止调试端口60的使用,因此存储在otp存储器10中的密钥可被安全地保护。

此外,在半导体装置1在启动时使用存储在otp存储器10中的密钥之后,对密钥的保护被启用,使得密钥不再能够被使用直到半导体装置1被复位为止,从而进一步提高存储在otp存储器10中的密钥的保护水平。

此外,在用户在特定时间点使用存储在otp存储器10中的密钥之后,对密钥的保护被启用,使得密钥不再能够被使用直到半导体装置1被复位为止,从而安全地保护存储在otp存储器10中的密钥。

结果,当在完成融合芯片的过程之后将芯片分发到另一个地方或者当随后使用该芯片开发器件时,本公开的示例性实施例有效地防止融合在芯片中的密钥在未经允许的情况下被读取以及被未授权的第三方泄露,直到安全特征(诸如,安全启动特征和调试端口保护特征)被启用为止。

根据本公开的领域中的惯例,在附图中就功能块、单元和/或模块方面描述并示出了示例性实施例。本领域技术人员将理解,这些块、单元和/或模块通过可使用基于半导体的制造技术或其他制造技术形成的电子(或光学)电路(诸如,逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接件等)物理地实现。

尽管已经参照本发明的示例性实施例具体示出并描述了本公开,但是本领域普通技术人员将理解,在不脱离如权利要求所限定的本公开的精神和范围的情况下,可对其进行形式和细节上的各种改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1