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

文档序号:14950552发布日期:2018-07-17 22:27阅读:112来源:国知局

与示例实施例相一致的方法涉及一种用于操作半导体装置的方法。



背景技术:

当在半导体装置或系统的操作期间发生故障时,存储在存储器中的信息可用于识别故障的原因并执行调试。为了获取这样的信息,内存转储(ramdump)技术用于按原样提取存储在存储器中的数据。

然而,存储器可存储安全数据和非安全数据二者。在故障的情况下,系统可允许第三方对非安全数据执行内存转储,但是系统可以不允许未授权的第三方对包含(例如)个人信息的安全数据执行内存转储。尽管如此,为了确定故障的确切原因,可存在期望通过对安全数据执行内存转储来分析安全数据的情况。

因此,在仅将安全数据提供给授权人员以保持安全稳定性的同时,期望对安全数据和非安全数据二者执行内存转储。



技术实现要素:

一个或多个示例实施例提供一种用于操作半导体装置的方法,所述方法能够在保持安全稳定性的同时对包括安全数据的数据执行内存转储。

一个或多个示例实施例还提供一种用于操作半导体装置的方法,所述方法能够在不使用另外资源的情况下执行简单且稳定的内存转储。

然而,本公开的多个方面不限于这里阐述的一个方面。通过参考下面给出的本公开的详细描述,本公开的以上和其他方面对本公开所属领域的普通技术人员而言将变得更加清楚。

根据示例实施例的一方面,提供一种操作半导体装置的方法,所述方法包括:响应于检测到系统故障,将安全数据存储在存储器的安全区域中;通过使用随机密钥对存储在安全区域中的安全数据进行加密以产生加密的安全数据;将加密的安全数据存储在安全区域中;对存储器的安全区域和非安全区域进行转储。

根据示例实施例的另一方面,提供一种操作半导体装置的方法,所述方法包括:响应于检测到系统故障,检查一次可编程(otp)禁用位;响应于otp禁用位被禁用,将安全数据存储在存储器的安全区域中,其中,存储器包括安全区域和非安全区域;通过使用随机密钥对存储在安全区域中的安全数据进行加密以产生加密的安全数据;将加密的安全数据存储在安全区域中;将安全区域设置为非安全区域;对存储器进行转储;响应于otp禁用位被启用,保持存储器的安全区域并对存储器进行转储。

根据示例实施例的另一方面,提供一种操作半导体装置的方法,所述方法包括:将安全内存转储代理加载到存储器的安全区域,其中,存储器包括安全区域和非安全区域;将诊断和内存转储组件加载到存储器的非安全区域;通过诊断和内存转储组件来监视是否检测到系统故障;响应于通过诊断和内存转储组件检测到系统故障,通过安全内存转储代理将安全数据存储在安全区域中;通过使用随机密钥,通过安全内存转储代理对存储在安全区域中的安全数据进行加密以产生加密的安全数据;通过安全内存转储代理,将加密的安全数据存储在安全区域中;通过安全内存转储代理,将安全区域设置为非安全区域;对存储器转储。

根据示例实施例的另一方面,提供一种操作半导体装置的方法,所述方法包括:响应于检测到系统故障,通过使用随机密钥对存储在存储器中的安全数据进行加密;将加密的安全数据存储在存储器中;对包括安全数据的存储器进行转储。

根据示例实施例的另一方面,提供一种操作半导体装置的方法,所述方法包括:响应于检测到系统故障,启用一次可编程(otp)禁用位以防止存储器的安全区域被转储;响应于检测到系统故障,禁用otp禁用位以允许存储器的安全区域改变为非安全区域并被转储,其中,响应于检测到系统故障,存储在安全区域中的安全数据通过使用随机密钥被加密,并且在安全区域改变为非安全区域并被转储之前被重写到安全区域。

附图说明

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

图1是示出根据示例实施例的使用半导体装置的半导体系统的示意图;

图2是示出根据示例实施例的使用半导体装置的半导体系统的操作的流程图;

图3a至图3d是示出根据示例实施例的用于操作半导体装置的方法的示例的示图;

图4是示出根据示例实施例的用于操作半导体装置的方法的另一示例的示图;

图5a至图5d是示出根据图3a至图3d和图4的示例实施例的用于操作半导体装置的方法中的存储器的改变的示图;

图6是示出根据示例实施例的用于操作半导体装置的方法中的随机密钥的加密的示图;

图7是示出根据示例实施例的用于操作半导体装置的方法中的加密的随机密钥的解密的示图;

图8是示出根据示例实施例的用于操作半导体装置的方法的流程图。

具体实施方式

下面,将详细描述示例实施例。

图1是示出根据示例实施例的使用半导体装置的半导体系统的示意图。

参考图1,根据示例实施例的使用半导体装置的半导体系统包括片上系统100、外部存储器200以及诊断系统300。

根据示例实施例的片上系统100包括应用处理器110、加密引擎120、一次可编程(otp)禁用位130、通信接口140、访问控制器150、访问权限管理器160以及存储器控制器170。然而,对本领域技术人员来说清楚的是,图1中示出的片上系统100的配置仅仅是示例并且它的详细配置可根据实现的目的以各种方式修改。

应用处理器110可处理片上系统100的整体操作并且可包括多个中央处理器(cpu)核。加密引擎120可用于对外部存储器200中的安全数据240进行加密,这将在后面进行详细描述。otp禁用位130用于防止对外部存储器200的安全区域b执行内存转储。通信接口140使片上系统100能够与诊断系统300交换数据。当对外部存储器200执行内存转储时,访问控制器150和访问权限管理器160允许安全状态和非安全状态之间的改变,这将参考图2进行详细描述。存储器控制器170控制外部存储器200。

外部存储器200包括非安全区域a和安全区域b。在各种示例实施例中,当在半导体系统中发生故障并且内存转储被执行时,将被执行内存转储的内存转储区域c不仅包括非安全区域a,还包括安全区域b。

诊断和内存转储组件210可被加载到非安全区域a上。不具有安全顾虑的各种数据可被加载到非安全区域a的剩余区域上。将参考图2详细描述诊断和内存转储组件210。

安全内存转储代理220、加密的随机密钥230以及安全数据240可被加载到安全区域b上。加密的随机密钥230可包括用于加密的初始向量。安全数据240包括用户的个人信息或者必须在系统上保持安全的各种数据。例如,安全数据240可包括涉及安全软件的代码或数据、关于安全硬件的执行信息等。将参考图2详细描述安全内存转储代理220和加密的随机密钥230。

在一些示例实施例中,外部存储器200可被实现为易失性存储器(例如,动态随机存取存储器(dram)),但是范围不限于此。

当在系统中发生故障时,例如,当发生系统故障时,诊断系统300接收外部存储器200的内存转储历史并分析它们的内容。诊断系统300包括密钥解密单元310、内存转储解密单元320、私钥(privatekey)340以及分析工具330,其中,密钥解密单元310、内存转储解密单元320、私钥340用于对外部存储器200的安全区域b的加密的内存转储历史进行解密,分析工具330用于从解密的内存转储历史中分析故障的原因。将参考图7描述密钥解密单元310、内存转储解密单元320和私钥340。

图2是示出根据示例实施例的使用半导体装置的半导体系统的操作的流程图。

参考图2,安全内存转储代理220在系统启动(即,启动系统时)检查otp禁用位130(s201)。

如果otp禁用位130被禁用(disabled),则安全内存转储代理220产生随机密钥221(s203)。随机密钥用于对外部存储器200的安全数据240进行加密。

安全内存转储代理220对产生的随机密钥221进行加密并将加密的随机密钥230存储在外部存储器200的安全区域b中(s205)。当未来发生系统故障时,存储在安全区域b中的加密的随机密钥230能够用于对外部存储器200的安全数据240进行加密。

在一些示例实施例中,安全内存转储代理220可使用预先产生的公钥(publickey)223对随机密钥221进行加密。公钥223可存储在外部存储器200的安全区域b中的被安全内存转储代理220占用的区域中。与公钥223配对的私钥340可以存储在诊断系统300中。

在一些示例实施例中,每当系统启动时,安全内存转储代理220可新产生随机密钥221,从而提高安全等级。

另一方面,在操作s201中,如果otp禁用位被启用(enabled),则安全内存转储代理220不执行上述操作s203和s205。

然后,诊断和内存转储组件210监视是否发生系统故障。如果检测到系统故障的发生(s207),则诊断和内存转储组件210通知安全内存转储代理220系统故障的发生,并发送用于对外部存储器200执行内存转储的请求(s209)。

响应于从诊断和内存转储组件210接收到通知和请求,安全内存转储代理220检查otp禁用位130(s211)。

如果otp禁用位130被禁用,则安全内存转储代理220将安全数据240存储在外部存储器200的安全区域b中(s213)。

在一些示例实施例中,将安全数据240存储在安全区域b中的步骤还包括将硬件信息存储在安全区域b中。

接下来,安全内存转储代理220可启用软件复位(s215)以在将外部存储器200上的数据按原样保持的同时,初始化可导致系统故障的其他硬件,例如,加密引擎120、通信接口140等。然而,根据示例实施例,可省略操作s215。

接下来,安全内存转储代理220通过使用在操作s203中产生的随机密钥221来对存储在安全区域b中的安全数据240进行加密,并将加密的安全数据250(参考图5b)再次存储在安全区域b中(s217)。

应注意的是,虽然图2中示出在操作s203中在启动系统时安全内存转储代理220产生随机密钥221,然后,当在操作s207中检测到系统故障的发生时,使用随机密钥221来执行加密,但是本公开的范围不限于随机密钥221的产生以及系统故障的发生的检测的示出的顺序。

也就是说,在一些其他示例实施例中,诊断和内存转储组件210可监视系统故障是否已经发生并检测系统故障的发生(s207)。然后,安全内存转储代理220检查otp禁用位130(s211),并且如果在操作s211中otp禁用位130被禁用,则安全内存转储代理220可产生随机密钥221。此外,在操作s211中,安全内存转储代理220可对产生的随机密钥进行加密,并将加密的随机密钥230存储在外部存储器200的安全区域b中。

也就是说,根据一些示例实施例,可在启动半导体系统时或在启动半导体系统之后新产生随机密钥221。此外,根据一些示例实施例,随机密钥230可在启动时或响应于检测系统故障的发生而新产生。

在一些示例实施例中,将加密的安全数据250存储在安全区域b中的步骤可包括在与外部存储器200上已经存储安全数据240的位置相同的位置上重写加密的安全数据250。

接下来,安全内存转储代理220将外部存储器200的安全区域b设置为非安全区域(s219),使得能够对安全区域b执行内存转储。

在示例实施例中,在加密的安全数据250被重写之后并在安全内存转储代理220将外部存储器200的安全区域b设置为非安全区域之前,删除存储在外部存储器200中的随机密钥221。因此,即使在操作s219中安全内存转储代理220将外部存储器200的安全区域b设置为非安全区域,随机密钥221也不以非安全状态暴露。

安全内存转储代理220执行上述操作s213至s219,并将控制权返回给诊断和内存转储组件210(s221)。

另一方面,如果在操作s211中otp禁用位被启用,则安全内存转储代理220将控制权返回给诊断和内存转储组件210(s221),而不执行操作s213至s219。这种情况与防止对安全区域b执行内存转储的情况对应,并且在内存转储结果中,对应于安全区域b的部分被填充无意义的值。

在安全内存转储代理220将控制权返回给诊断和内存转储组件210之后,诊断系统300将内存转储请求发送到诊断和内存转储组件210(s223)。响应于内存转储请求,诊断和内存转储组件210转储对应于非安全区域a的数据208以及对应于安全区域b的加密的数据250(s225),并将结果发送到诊断系统300(s227)。

接下来,在诊断系统300中,密钥解密单元310使用私钥340对加密的随机密钥230进行解密(s229),并且内存转储解密单元320使用解密的随机密钥221对加密的安全数据250进行解密(s231)。因此,诊断系统300能够使用分析工具330来分析关于外部存储器200的安全区域b的信息,以确定系统故障的原因。

根据示例实施例,在安全数据240被加密之后,加密的安全数据250被重写在外部存储器200上的相同位置。因此,不需要用于存储加密的安全数据250的另外的存储空间。此外,在系统故障的情况下,不仅可转储非安全区域a的数据,而且可转储安全区域b的数据。如果安全区域b的数据没有被转储,则可通过使用otp禁用位130来防止对安全区域b的转储以便容易地保持安全性。此外,由于使用每次启动时新产生的随机密钥221对安全数据240进行加密,所以能够提高安全等级。

图3a至图3d是示出根据示例实施例的用于操作半导体装置的方法的示例的示图。图3a至图3d基于otp禁用位130被禁用的假设。

参考图3a,在操作(1)中,安全内存转储代理220在启动系统时或者当被加载到外部存储器200中时检查otp禁用位130。

在操作(2)中,安全内存转储代理220产生随机密钥221,对产生的随机密钥221进行加密,并将加密的随机密钥230存储在外部存储器200的安全区域b中。公钥223可用于对产生的随机密钥221进行加密。

参考图3b,在操作(3)中,诊断和内存转储组件210通知安全内存转储代理220系统故障的发生,并将用于对外部存储器单元200执行内存转储的请求发送到安全内存转储代理220。

然而,如以上参考图2所述,随机密钥221可响应于检测到系统故障的发生而产生,而不是在启动半导体系统时产生。也就是说,随机密钥230在启动半导体系统时或在启动半导体系统之后(例如,在启动时或在检测到系统故障的发生之后)新产生。

因此,如操作(4)中,安全内存转储代理220通过使用加密引擎120对存储在安全区域b中的安全数据240进行加密。因此,安全数据240的区域中的纯文本数据122可以被转换成加密的文本数据123。

此外,安全内存转储代理220在与已经存储安全数据240的位置相同的位置重写加密的安全数据250。

参考图3c,在操作(5)中,通过使用访问控制器150和访问权限管理器160,外部存储器200的安全区域b被设置为非安全区域。由于对非安全区域执行内存转储,所以将安全区域b设置为非安全区域允许将对外部存储器200的包括非安全区域a和安全区域b的整个区域执行内存转储。

在操作(6)中,安全内存转储代理220将控制权返回给诊断和内存转储组件210。

参考图3d,在操作(7)中,诊断系统300提取加密的内存转储并执行解密。

由诊断系统300提取的结果被示出为内存转储400。内存转储400包括与外部存储器200的非安全区域a对应的第一区域410以及与外部存储器200的安全区域b对应的第二区域420。尽管第一区域410的内容可立即识别,但是第二区域420的内容被加密并且不能被立即识别。授权的诊断系统能够使用私钥340对加密的随机密钥230进行解密,并使用解密的随机密钥221对第二区域420的内容进行解密。

根据示例实施例,安全数据240被加密并且加密的安全数据250(参考图5b)被重写在外部存储器200上的相同位置。因此,不需要用于存储加密的安全数据250的另外的存储空间。此外,当发生系统故障时,不仅非安全区域a的数据而且安全区域b的数据可被安全地转储。此外,由于使用在每次启动时新产生的随机密钥221对安全数据240进行加密,所以能够提高安全等级。

图4是示出根据示例实施例的用于操作半导体装置的方法的另一示例的示图。图4基于otp禁用位130被启用(也就是说,防止对外部存储器200的安全区域b执行内存转储)的假设。

参考图4,在操作(1)中,安全内存转储代理220在启动系统时或当被加载到外部存储器200中时检查otp禁用位130。

由于otp禁用位130被启用,所以安全内存转储代理220不产生随机密钥221,并且不对存储在安全区域b中的安全数据240进行加密。

在操作(2)中,诊断和内存转储组件210通知安全内存转储代理220系统故障的发生,并且将用于对外部存储器200执行内存转储的请求发送到安全内存转储代理220。

然而,由于otp禁用位130被启用,所以安全内存转储代理220不对安全区域b执行内存转储,并且在操作(3)中,将控制权返回给诊断和内存转储组件210。

接下来,在操作(4)中,诊断系统300提取内存转储。在这种情况下,由诊断系统300提取的结果被示出为内存转储400。内存转储400包括与外部存储器200的非安全区域a对应的第一区域410以及与外部存储器200的安全区域b对应的第二区域420。第一区域410的内容可立即识别,但是第二区域420的内容被填充无意义的值,使得不可能掌握内容。

因此,在安全区域b的数据没有被转储的情况下,可容易地通过使用otp禁用位130来防止转储,以便保持安全区域b的安全性。

图5a至图5d是示出根据图3a至图3d和图4的示例实施例的用于操作半导体装置的方法中的存储器的改变的示图。

图5a示出在安全内存转储代理220对安全数据240进行加密之前的外部存储器200的状态。图5b示出在安全内存转储代理220对安全数据240进行加密之后的外部存储器200的状态。

比较图5a和图5b,能够看出,使用预先产生的公钥223对由安全内存转储代理220产生的随机密钥221进行加密并将其存储为加密的随机密钥230,并且通过随机密钥221对安全数据240进行加密并将其存储为加密的安全数据250。特别地,能够看出,加密的安全数据250被重写在与已经存储安全数据240的位置相同的位置。

图5c示出安全内存转储代理220将外部存储器200的安全区域b设置为非安全区域。因此,可看出,外部存储器200的全部区域变成新的非安全区域d,其中,可对非安全区域d执行内存转储。如以上参考图2所述,在外部存储器200的安全区域b变成非安全区域之前,删除存储在外部存储器200中的随机密钥221,使得随机密钥221不以非安全状态暴露。

图5d示出当otp禁用位130被启用时(也就是说,当防止对外部存储器200的安全区域b执行内存转储时)的内存转储结果。区域208和区域210的内容可立即识别,但是区域260的内容被填充无意义的值,使得不可能掌握内容。

图6是示出根据示例实施例的用于操作半导体装置的方法中的随机密钥的加密的示图。

参考图6,安全内存转储代理220使用随机数发生器225等来产生随机密钥221,并使用预先产生的公钥223来产生非对称加密算法229,以产生加密的随机密钥230。

接下来,安全内存转储代理220使用随机密钥221通过加密引擎120对安全数据240进行加密。

图7是示出根据示例实施例的用于操作半导体装置的方法中的加密的随机密钥的解密的示图。

参考图7,诊断系统300在密钥解密单元310中使用私钥340通过第一非对称解密算法327对加密的随机密钥230进行解密以获得随机密钥321,并且使用随机密钥321通过第二非对称解密算法329来对加密的安全数据250进行解密以获得安全数据240。诊断系统300可通过使用分析工具330来分析安全数据240以确定系统故障的原因。

图8是示出根据示例实施例的用于操作半导体装置的方法的流程图。

在操作s801中,预先产生私钥340和公钥223的配对,并且公钥223存储在安全内存转储代理220中。私钥340可由诊断系统300保存。

在操作s803中,在外部存储器200上设置安全区域a和非安全区域b。

在操作s805中,安全内存转储代理220产生随机密钥221。随机密钥221用于对外部存储器200的安全数据240进行加密。

安全内存转储代理220对产生的随机密钥221进行加密并将加密的随机密钥230存储在外部存储器200的安全区域b中。存储在安全区域b中的加密的随机密钥230可用于未来在系统故障的情况下对外部存储器200的安全数据240进行加密。

在一些示例实施例中,安全内存转储代理220可使用操作s801中预先产生的公钥223来对随机密钥221进行加密。

在一些示例实施例中,每次系统启动时,安全内存转储代理220可新产生随机密钥221,从而提高安全等级。

在操作s807中,诊断和内存转储组件210监视是否已发生系统故障(例如,装置失灵)。如果检测到系统故障的发生,则诊断和内存转储组件210通知安全内存转储代理220系统故障的发生并将用于对外部存储器200执行内存转储的请求发送到安全内存转储代理220。

然而,如以上参考图2所述,随机密钥221可在检测到系统故障的发生之后而不是在启动半导体系统时产生。也就是说,随机密钥221在启动半导体系统时或在启动半导体系统之后(例如,在启动时或在检测到系统故障的发生之后)新产生。

在操作s809中,安全内存转储代理220将安全数据240存储在外部存储器200的安全区域b中。

在本发明的一些示例实施例中,将安全数据240存储在安全区域b中的步骤还可包括将硬件信息存储在安全区域b中。

接下来,在操作s811中,安全内存转储代理220启用软件复位(s215)。在操作s813中,使用操作s805中产生的随机密钥对存储在安全区域b中的安全数据240进行加密,并将加密的安全数据250再次存储在安全区域b中。

在一些示例实施例中,将加密的安全数据250存储在安全区域b中的步骤可包括在与外部存储器200上已经存储安全数据240的位置相同的位置重写加密的安全数据250。

然后,在操作s815中,安全内存转储代理220将外部存储器200的安全区域b设置为非安全区域,从而甚至可对原本的安全区域b执行内存转储。

在安全内存转储代理220将控制权返回给诊断和内存转储组件210之后,诊断系统300将内存转储请求发送到诊断和内存转储组件210。响应于内存转储请求,诊断和内存转储组件210将通过转储对应于非安全区域a的数据208以及对应于安全区域b的加密的安全数据250而获得的结果发送到诊断系统300(操作s817)。

接下来,在诊断系统300中,在操作s819中,密钥解密单元310使用私钥340对加密的随机密钥230进行解密,并且在操作s821中,内存转储解密单元320使用解密的随机密钥221对加密的安全数据250进行解密。因此,诊断系统300可使用分析工具330来分析关于外部存储器200的安全区域b的信息以确定系统故障的原因。

根据示例实施例,安全数据240被加密并且加密的安全数据250被重写在外部存储器200上的相同位置。因此,不需要用于存储加密的安全数据250的另外的存储空间。此外,在系统故障的情况下,不仅可以转储非安全区域a的数据而且可转储安全区域b的数据。如果安全区域b的数据没有被转储,则可通过使用otp禁用位130来防止转储,从而可容易地保持安全区域b的安全性。此外,由于使用每次启动时新产生的随机密钥221对安全数据240进行加密,所以能够提高安全等级。

根据示例性实施例,如附图中所示由块表示的组件、元件、模块或单元中的至少一个可被实现为执行上述各个功能的各种数量的硬件、软件和/或固件结构。例如,这些组件、元件或单元中的至少一个可使用可通过对一个或多个微处理器或其他控制设备的控制来执行各个功能的直接电路结构(诸如存储器、处理器、逻辑电路、查找表等)。此外,这些组件、元件或单元中的至少一个可通过包含用于执行指定的逻辑功能的一个或多个可执行指令的模块、程序或一部分代码来具体实现并由一个或多个微处理器或其他控制设备执行。此外,这些组件、元件或单元中的至少一个还可包括或由处理器(诸如,执行各个功能的中央处理器(cpu)、微处理器等)来实现。这些组件、元件或单元中的两个或更多个可被组合成执行组合的两个或更多个组件、元件或单元的所有操作或功能的一个单独组件、元件或单元。此外,这些组件、元件或单元中的至少一个的至少部分功能可由这些组件、元件或单元中的另一个来执行。此外,虽然上述框图中未示出总线,但是组件、元件或单元之间的通信可通过总线执行。上述示例性实施例的功能方面可以以在一个或多个处理器上执行的算法来实现。此外,由块或处理步骤表示的组件、元件或单元可采用用于电子配置、信号处理和/或控制、数据处理等的任何数量的相关领域技术。

这里使用的“单元”可以是硬件组件(诸如,处理器或电路)和/或由硬件组件(诸如,处理器)执行的软件组件。

尽管已经参考附图描述了一个或多个示例性实施例,但是本领域普通技术人员将理解,在不脱离由权利要求限定的本发明构思的精神和范围的情况下,可在其中进行形式和细节上的各种改变。

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