加密和存储机密数据的制作方法

文档序号:6366999阅读:345来源:国知局
专利名称:加密和存储机密数据的制作方法
技术领域
本发明涉及数据处理领域,尤其涉及在安全数据处理期间对数据提供存储。
背景技术
在处理期间保证数据安全和机密以使得数据及其处理对于外部而言不可见是处理敏感数据的系统中的公知问题。例如,智能卡可以存储用于对用户不能访问的机密数据进行加密的密钥。已经发现,系统在其操作过程中使用诸如差分功率分析或DPA这样的技术可能提供可以允许人们确定关于安全数据(例如系统中存储的密钥)的信息的数据。已经设计了各种技术以试图阻止对系统安全性的这种攻击。例如,May等人的“Random Register Renaming to foil DPA”描述了在寄存器重命名期间使用从可用寄存器的选择随机选择的寄存器如何可能使得DPA的使用不太有效地确定所存储的数据。例如,当向寄存器写入时,使用的功率的量取决于被翻转的位的数量,因此功率签名的分析以及寄存器中最初存储了什么的知识使得用户能够确定关于存储的最终值的信息。如果存储待·覆写的值的寄存器是从多个可用寄存器中随机选择的,被覆写的值不是预先确定的并且不知道该值,则DPA就不太有效。希望在处理机密数据的系统中提供更高的安全性。

发明内容
从第一方面来看,本发明提供一种数据存储电路,包括数据存储库,包括用于存储数据的多个数据存储位置;输入端,用于接收访问数据存储库的请求;重命名电路,用于将访问请求中指定的架构数据存储位置映射到数据存储库中的物理数据存储位置;加密电路,用于在将数据存储于所述数据存储库之前对数据进行加密,所述加密电路被配置为根据数据要被存储的物理数据存储位置来生成加密密钥;以及解密电路,用于对从数据存储库读取的数据进行解密,所述解密电路被配置为根据数据被读物的物理数据存储位置来生成解密密钥。本发明认识到,对存储的数据进行加密帮助提高系统的安全性,如果针对每次加密使用不同的密钥,则不仅数据更难访问而且存储处理将花费不同量的功率,这阻止任何有用的系统差分功率分析。但是,本发明也认识到,针对每次加密生成和存储不同密钥是困难的,特别是在数据存储的时间限制内。本发明认识到,在使用重命名电路的系统中,架构数据存储位置可映射到的物理数据存储位置可对于每次映射改变。这使得关于物理数据存储位置的信息适合于用作加密中的密钥,因为它针对每个存储的值的而改变,并且为了后面访问数据值,在任何情况下都需要被存储。因此,其可用于对值进行解密。因此,提供这样一种系统,其利用系统中已经存在的逻辑提供并存储可用于生成用于加密的密钥的值,从而提供更安全的系统。应当注意,虽然物理存储位置的身份(identity)被用于生成密钥,但是除了此值之外,也可以使用其他信息。
在某些实施例中,虽然数据存储库可采用多种形式,但是所述数据存储库包括寄存器库,并且所述多个数据存储位置包括多个寄存器。在很多处理设备中,寄存器被提供以快速方便地访问数据存储位置。通常,在处理设备中存在多个寄存器,并且多个寄存器通过指令集中的指令指定。为了具有紧凑的编码,大多数处理器指令集具有小集合的可以直接命名的寄存器位置。因此,通常寄存器库中存在的物理寄存器数量多于可通过指令识别的寄存器的数量。因此 ,为了利用硅中存在的所有寄存器,利用寄存器重命名电路在处理期间进行寄存器的重命名。在某些实施例中,物理数据存储位置通过对应的物理地址来识别,加密密钥和解密密钥根据物理地址来生成。虽然数据存储位置可以很多方式来识别并且这种识别可被用于生成加密密钥和解密密钥,但是在某些实施例中,使用的是物理地址。在某些实施例中,所述重命名电路被配置为确定多个物理数据存储位置的哪些可用于存储数据,并且通过根据算法选择可用物理数据存储位置的其中之一执行映射来映射架构数据存储位置,并且存储用于当前存储有效数据的数据存储位置的映射。重命名电路可根据算法确定哪个物理数据存储位置用于映射架构数据存储位置。虽然这是以确定的方式执行的,但是选择的物理数据存储位置会根据算法使用的可用物理数据存储位置而变化。这使得选择的物理数据存储位置仍然适用于生成加密密钥。在其他实施例中,所述重命名电路被配置为确定多个物理数据存储位置的哪些可用于存储数据,并通过根据随机或伪随机处理选择可用物理数据存储位置的其中之一执行映射来映射架构数据存储位置,并且存储用于当前存储有效数据的物理数据存储位置的映射。优选随机或伪随机地选择物理存储位置。应当注意,完全随机地选择值是困难地,并且伪随机选择通常足以提供足够的噪声以阻止差分功率分析。如现有技术部分所述,随机选择用于存储值的寄存器阻止微分功率分析,因此,如果除了对所存储的数据进行加密之外,随机或至少伪随机地选择存储数据存储位置,可进一步提高系统的安全性。随机或伪随机选择可通过利用输入重命名电路的外部生成的信号来完成,或者可通过数据存储电路本身中的随机事件或伪随机事件生成器来完成。在某些实施例中,当选择可用物理数据存储位置时,可用物理存储位置是并非当前存储有效数据的物理数据存储位置。换言之,他们是并非当前映射到架构存储位置并且可自由存储数据的物理数据存储位置。或者,可用物理数据存储位置是数据存储库中的所有物理数据存储位置,重命名电路被配置为如果当前映射的物理数据存储位置被选择,则将存储在当前映射的物理数据存储位置中的数据写入另一个物理数据存储位置并存储用于所述另一个物理数据存储位置的映射。在某些实施例中,不是仅仅利用并非当前存储有效数据的物理数据存储位置,重命名电路可以选择任何物理数据存储位置来存储数据。如果其选择当前映射的物理数据存储位置,那么此处存储的数据必须写入另一个物理数据存储位置,并且映射表被更新以存储此新映射。就这点而言,存储的数据通过从存储位置的物理地址生成的加密密钥被加密。因此,在将数据存储到不同位置之前,必须将其解密,然后通过从新位置的地址生成的密钥加密。然后选择的物理数据存储位置被用于存储已经到达的新数据值,并且其映射也被存储。如果该系统被使用,相比于如果并非当前存储有效数据的物理数据存储位置被使用而言,明显更多的功率被消耗。但是,这确实意味着有更多的噪声引入系统,外部人员更难分析正在发生什么。在某些实施例中,重命名电路被配置为自动执行对当前映射的物理数据存储位置的重映射。生成噪声的另外的方式是重命名电路自动执行对当前映射的物理到架构数据存储位置的重映射。重命名电路可响应于数据访问请求来执行此重映射,或者可以周期性地执行此重映射,或者可配置为根据任何其 他因素执行此重映射。随机重映射引入另外的功率签名,并使得系统更加难以分析。应当注意,如果物理地址变化因此加密密钥变化,则要求对存储的数据进行解密和再加密。在某些实施例中,重命名电路响应于更新当前存储于数据存储库中的值的请求将当前存储要被更新的值的物理数据存储位置标记为不存储有效数据,并删除用于该物理数据存储位置的映射;将通过请求指定的架构数据存储位置映射到可用物理数据存储位置并存储该映射。如果接收到更新值的请求,那么不是将该值写入已经映射到该架构寄存器的物理数据存储位置,而是新映射被执行,并用于该架构寄存器的先前映射被删除。再次,这使得系统难以从外部分析。本发明的第二方面提供一种数据处理设备,包括根据本发明第一方面的数据存储电路,所述数据存储电路包括寄存器物理集合,所述寄存器物理集合通过对应的地址物理集合来识别;处理器,用于响应于来自指令集的指令处理数据,所述指令指定寄存器架构集合;重命名电路将来自架构集合的寄存器映射到物理集合中的寄存器。本发明的第三方面提供一种在包括多个数据存储位置的数据存储库中存储数据的方法,包括以下步骤接收访问数据存储库的请求;如果所述请求是请求存储数据,则将访问请求中指定的架构数据存储位置映射到数据存储库中的物理数据存储位置;在根据映射将数据存储于物理数据存储位置之前,利用根据物理数据存储位置生成的加密密钥对数据进行加密;或者如果所述请求是读取数据,则根据存储的映射来确定与访问请求中指定的架构数据存储位置相对应的物理数据存储位置;利用根据物理数据存储位置生成的解密密钥对根据映射从物理数据存储位置读取的数据进行解密。本发明的第四方面提供一种数据存储电路,包括用于存储数据的装置,包括多个数据存储位置;输入装置,用于接收访问数据存储库的请求;重命名装置,用于将访问请求中指定的架构数据存储位置映射到数据存储库中的物理数据存储位置;加密器件,用于在将数据存储于数据存储库之前对数据进行,以及用于根据数据要被存储的物理数据存储位置来生成加密密钥;以及解密电路,用于对从数据存储库读取的数据进行解密,以及用于根据数据被读取的物理数据存储位置来生成解密密钥。根据以下结合附图阅读说明性实施例的详细描述,本发明的上述及其他目的、特征和优点将更加明显。


图I示出根据本发明实施例的数据存储电路;图2示出根据本发明实施例的数据处理设备;图3示意性地示出根据本发明实施例的重命名表;以及图4示出说明根据本发明实施例的方法的步骤的流程图。
具体实施例方式图I示出数据存储电路10,其包括通过重命名电路18生成的重命名表20。该重命名表存储通过指令指定的架构寄存器到硅中存在的物理寄存器的映射。这些映射由重命名电路18响应于从外部随机事件发生器输入的随机事件产生。随机事件信号用于随机地从寄存器库中选择寄存器,以响应于访问该寄存器的指令映射架构寄存器。 因此,响应于写入请求,在重命名电路18的写入端口地址输入端接收指示架构寄存器的写入地址。该地址被映射到寄存器库30中的物理寄存器的地址,并且映射被存储在重命名表20中。然后该物理地址被传输到寄存器库数据存储控制电路32以及加密电路35。对应于写入请求的写入数据以及作为重映射的物理地址的写入地址被输入加密电路35,并且写入数据利用根据此物理地址生成的加密密钥被加密。该加密密钥可以直接从物理地址产生,或者从物理地址的至少一部分产生,或者,加密密钥可以从许多事件产生,例如物理的和架构的或虚拟的地址,或者物理地址和数据本身。加密通常是很简单的加密处理,从而它不会延迟寄存器库中的数据存储。然后,存储控制电路32进行动作以将经加密的数据写入由物理地址识别的寄存器。如果接收到读取请求,则在重命名表20接收待读取的架构寄存器的虚拟地址,并根据存储在该重命名表中的映射确定寄存器库30中该寄存器的对应物理地址。然后该地址被传输到读取控制电路42以及解密电路45。读取控制电路42选择由地址指示的寄存器并将选择的寄存器中存储的数据输出到解密电路45。解密电路45接收该数据并根据从重命名表20输入的读取地址生成解密密钥。然后,读取数据被从数据存储电路10输出。如上所述,加密密钥和解密密钥根据重命名表中存储的数据生成。此数据对于每个寄存器是不同的并且需要被存储,以便使得在寄存器库中数据能够被访问。因此,重命名表是加密密钥的理想源。因为重命名电路18响应于随机事件选择物理寄存器,所以选择是随机的,因此,对于每次加密来说加密密钥也是随机变化的。这样向系统引入噪声,并使得试图侵入系统的某些人难以获得有用信息。因此,虽然为了不延迟数据的存储,加密系统可能是简单的,但是由于寄存器选择的随机特性,大大增加了安全性。应当注意,虽然在本情况下随机事件被用于选择可用寄存器,但是在某些实施例中可利用算法以确定性的方式来实现此。这样还可以提供可接受等级的安全性,因为物理寄存器的位置将随着算法以及可用寄存器而变化,因此,噪声将被添加到系统。也可以响应于伪随机事件实现此。这样的事件是不完全随机的事件,因为真正的完全随机事件难以产生,但是,它在性质上是非常随机的事件,因此很难预测。
当选择寄存器以存储数据时,重命名电路可以从并非当前被映射的寄存器中选择,或者它可以选择存在的任何寄存器。如果是后者,那么数据需要从当前映射的寄存器被移动到不同的寄存器,并且新的映射需要被存储。下面参照图3更详细地说明。图2示出根据本发明实施例的数据处理设备50。数据处理设备50具有处理器60,处理器60包括获取阶段、解码阶段和执行阶段。获取阶段从指令缓存70获取指令,并且解码阶段对这些指令进行解码。然后,执行阶段经执行经解码的指令。执行阶段也可以从寄存器库30接收数据。执行阶段还可以向寄存器库30输出数据,或者可将数据输出到外部输出端口 52。数据处理设备50包括重命名电路80,重命名电路80具有信号发生器82和重命名表20。重命名电路从处理器60的执行阶段接收虚拟或架构地址。这些地址是在处理器60处理的指令中指定的地址。然后,重命名电路80将这些虚拟地址映射到寄存器库30中的寄存器的物理地址。它将当前映射存储在重命名表20中。然后,来自这些映射的地址被输出到寄存器库30,进而被输出到加密电路35和解密电路45。如果数据访问请求是存储请求,那么待存储的数据从执行阶段输出,并输入到加密电路35。重命名电路将来自映射的物 理地址输出,并且加密电路利用该地址生成加密密钥,并对它接收的数据进行加密。然后,此经加密的数据被存储在寄存器库30中的由从重命名电路80输出的地址指定的地址处。如果被执行的数据访问请求是读取请求,那么用于此的地址被输入重命名电路80,然后,利用重命名表20找到对应于虚拟地址的物理地址。然后,该地址被输出到解密电路45以及寄存器库30。然后,寄存器库30将存储于该地址的数据输出,同时解密电路45根据此物理地址生成解密密钥。然后,从寄存器库输出的数据被利用解密密钥被解密并被输出。该数据可以被返回输出给处理器60的执行阶段,或者可以经由输出端口 52被输出。图3非常示意性地示出根据本发明实施例的重命名表20。该重命名表可存储当前映射的列表,并且可存储并非当前映射的寄存器,或者它可以根据当前映射的列表确定这一点。当响应于存储请求选择寄存器以映射虚拟地址时,重命名电路可以从并非当前映射的寄存器选择,也可以从所有寄存器选择。如果它从作为当前映射一部分的寄存器选择,则下面的示例示出发生了什么。如果将数据存储在寄存器R5中的存储请求被接收到,并且响应于随机发生器81选择的物理寄存器是P1,那么需要进行另一映射以将RO映射到另外的物理寄存器。因此,另外的寄存器响应于随机发生器被选择,并且假设此寄存器并非当前映射的寄存器,然后,当前存储在Pl中的数据利用从Pl地址生成的密钥被解密,然后此数据利用从选择的另外的寄存器的地址生成的密钥被加密,然后经加密的数据被写入该寄存器并且该映射被存储。例如,如果新选择的寄存器是P6,则Pl中存储的数据(遵循解密和再加密)将被写入P6,并且映射P6 RO被存储。然后,新接收的数据将被写入P1,并且映射PlR5将被存储。在某些实施例中,重命名电路也可以配置为周期性地交换某些映射。因此,响应于重映射信号,它可以随机选择当前映射的其中之一,将其重映射到不同的物理寄存器,并将数据存储于该不同的物理寄存器。例如,它可以选择当前映射P4 R3和物理寄存器P15,然后它可以将P4中存储的值写入P15(具有利用从物理地址生成密钥被加密并再加密的数据),然后将P4 R3映射从表中删除并存储P15 R3映射。通过这种方式,噪声被添加到系统,使得系统更加难以分析。除了这种周期性重映射之外,重命名电路也可以配置为响应于更新存储的值的请求执行重映射,以使得物理寄存器中存储的值不被覆写,而是新的物理寄存器被选择并且所存储的映射以及值被写入该寄存器。例如,以下两个指令说明这一点。LDR R0, addrADDS r0, r0, #0第一指令将加法器的内容写入架构寄存器r0,其归因于重命名是P3,并通过P3的地址将数据加密。第二指令需要更新r0,但是,我们现在将rO重映射到另一寄存器,即P6,然后通过P6的地址将数据加密。在这种情况下,由于不同的加密密钥,P6中包含的数据不 同于P3中包含的数据。然后可以删除r0到P3的映射。如上所述,虽然可以从物理地址本身生成加密密钥和解密密钥,但是它们也可以从数据和物理地址的组合生成,或者从数据和虚拟地址的组合生成,或者只是从这些中的每个的一部分产生。图4示出说明根据本发明实施例的方法的步骤的流程图。在该方法中,访问架构寄存器的数据访问请求被接收。该数据访问可以是载入或存储访问请求。如果它是存储数据的请求,那么确定架构寄存器是否是当前映射的。如果不是,那么根据随机事件选择可用寄存器的其中之一并存储映射。本实施例中,可用寄存器是并非当前映射的寄存器。如上所述,可以所有寄存器都选择,在这种情况下,如果选择是当前映射的一部分的寄存器,那么需要进行本方法中的其他步骤。但是,在本实施例中,自由寄存器被选择并且映射被存储。如果架构寄存器是当前映射的,那么删除该映射,并将删除的映射的物理寄存器标记为可用。接下来的步骤包括根据选择的寄存器的地址生成加密密钥,然后数据利用该加密密钥被加密。然后,经加密的数据被存储在选择的寄存器中。如果数据访问不是存储访问,而是读取访问,则从重命名表中存储的映射中检索当前存储数据的物理寄存器。然后,从该物理寄存器检索数据,然后,根据该物理地址生成解密密钥。然后,利用该解密密钥对从物理寄存器检索的数据进行解密。虽然这里参照附图详细描述了本发明的说明性实施例,但是应当理解,本发明不限于这些确定实施例,在不脱离所附权利要求书限定的本发明的范围和精神的情况下,本领域技术人员可以实现各种变化和修改。
权利要求
1.一种数据存储电路,包括 数据存储库,包括用于存储数据的多个数据存储位置; 输入端,用于接收访问所述数据存储库的请求; 重命名电路,用于将所述访问请求中指定的架构数据存储位置映射到所述数据存储库中的物理数据存储位置; 加密电路,用于在将数据存储于所述数据存储库之前对数据进行加密,所述加密电路被配置为根据数据要被存储的物理数据存储位置来生成加密密钥;以及 解密电路,用于对从所述数据存储库读取的数据进行解密,所述解密电路被配置为根据数据被读取的物理数据存储位置来生成解密密钥。
2.根据权利要求I的数据存储电路,其中,所述数据存储库包括寄存器库,并且所述多个数据存储位置包括多个寄存器。
3.根据权利要求I的数据存储电路,其中,所述物理数据存储位置通过对应的物理地址来识别,所述加密密钥和所述解密密钥根据所述物理地址来生成。
4.根据权利要求I的数据存储电路,其中,所述重命名电路被配置为确定所述多个物理数据存储位置中的哪些可于存储数据,并通过根据算法来选择可用物理数据存储位置的其中之一执行所述映射来映射所述架构数据存储位置,并且存储用于当前存储有效数据的数据存储位置的映射。
5.根据权利要求I的数据存储电路,其中,所述重命名电路被配置为确定所述多个物理数据存储位置的哪些可用于存储数据,并通过根据随机或伪随机处理选择可用物理数据存储位置的其中之一执行所述映射来映射所述架构数据存储位置,并且存储用于当前存储有效数据的物理数据存储位置的映射。
6.根据权利要求5的数据存储电路,其中,所述重命名电路进一步包括用于接收随机或伪随机生成的信号的输入端,所述重命名电路被配置为根据所述随机或伪随机生成的信号来选择所述可用物理数据存储位置的其中之一。
7.根据权利要求5的数据存储电路,其中,所述数据存储电路进一步包括随机或伪随机事件发生器,所述数据存储电路被配置为根据通过所述随机或伪随机事件发生器产生的事件来选择所述可用物理数据存储位置的其中之一。
8.根据权利要求5的数据存储电路,其中,所述可用物理数据存储位置是并非当前存储有效数据的物理数据存储位置。
9.根据权利要求5的数据存储电路,其中,所述可用物理数据存储位置是所述数据存储库中的所有物理数据存储位置,所述重命名电路被配置为如果当前映射的物理数据存储位置被选择,则将存储在当前映射的物理数据存储位置的数据写入另一个物理数据存储位置,并且存储用于所述另一个物理数据存储位置的映射。
10.根据权利要求I的数据存储电路,其中,所述重命名电路被配置为自动执行当前映射的物理数据存储位置的重映射。
11.根据权利要求I的数据存储电路,其中,所述重命名电路响应于更新当前存储于所述数据存储库中的值的请求 将当前存储要被更新的值的物理数据存储位置标记为不存储有效数据,并删除用于该物理数据存储位置的映射;将通过所述请求指定的述架构数据存储位置映射到可用物理数据存储位置并存储该映射。
12.—种数据处理设备,包括 根据前述任一项权利要求的数据存储电路,所述数据存储库包括寄存器物理集合,所述寄存器物理集合通过对应的地址物理集合来识别; 处理器,用于响应于来自指令集的指令处理数据,所述指令指定寄存器架构集合; 所述重命名电路将来自所述架构集合的寄存器映射到所述物理集合内的寄存器。
13.—种在包括多个数据存储位置的数据存储库中存储数据的方法,包括以下步骤 接收访问所述数据存储库的请求; 如果所述请求是请求存储数据,则 将所述访问请求中指定的架构数据存储位置映射到所述数据存储库中的物理数据存储位置; 在根据所述映射将数据存储于所述物理数据存储位置之前,利用加密密钥将数据加密,所述加密密钥根据所述物理数据存储位置生成;或者如果所述请求是读取数据,则 根据存储的映射来确定与所述访问请求中指定的架构数据存储位置相对应的物理数据存储位置; 利用根据所述物理数据存储位置生成的解密密钥,对根据所述映射从所述物理数据存储位置读取的数据进行解密。
14.根据权利要求13的方法,其中,如果所述请求是存储数据的请求,则 确定所述多个物理数据存储位置的哪些可用于存储数据,并通过根据算法选择可用物理数据存储位置的其中之一执行所述映射来映射所述架构数据存储位置。
15.根据权利要求13的方法,其中,如果所述请求是存储数据的请求,则 确定所述多个物理数据存储位置的哪些可用于存储数据,并通过随机选择可用物理数据存储位置的其中之一执行所述映射来映射所述架构数据存储位置。
16.根据权利要求14的方法,其中,所述可用物理数据存储位置是并非当前存储有效数据的物理数据存储位置。
17.根据权利要求14的方法,其中,所述可用物理数据存储位置是所有物理存储位置,其中,响应于当前存储有效数据的物理数据存储位置被选择,则如下进一步的步骤被执行将所述有效数据写入另一个物理存储位置并存储用于所述另一个物理存储位置的映射。
18.根据权利要求13的方法,其中,响应于更新所述数据存储库中当前存储的值的请求,所述方法执行以下步骤 将当前存储要被更新的值的物理数据存储位置标记为不存储有效数据,并删除用于所述物理数据存储位置的映射; 将通过所述请求指定的架构数据存储位置映射到可用物理数据存储位置; 存储所述映射。
19.一种数据存储电路,包括 用于存储数据的装置,包括多个数据存储位置; 输入装置,用于接收访问数据存储库的请求;重命名装置,用于将所述访问请求中指定的架构数据存储位置映射到所述数据存储库中的物理数据存储位置; 加密装置,用于在将数据存储于所述数据存储库之前对数据进行加密,以及用于根据数据要被存储的物理数据存储位置来生成加密密钥;以及 解密装置,用于对从所述数据存储库读取的数据进行解密,以及用于根据数据被读取的物理数据存储位置 来生成解密密钥。
全文摘要
本发明涉及加密和存储机密数据。公开了一种用于安全存储机密数据的数据存储电路以及用于处理和存储数据的数据处理设备和方法。所述数据存储电路包括数据存储库,包括用于存储数据的多个数据存储位置;输入端,用于接收访问数据存储库的请求;重命名电路,用于将访问请求中指定的架构数据存储位置映射到数据存储库中的物理数据存储位置;加密电路,用于在将数据存储于数据存储库之前加密数据,所述加密电路被配置为根据数据要被存储的物理数据存储位置来生成加密密钥;以及解密电路,用于解密从数据存储库读取的数据,所述解密电路被配置为根据数据被读取的物理数据存储位置来生成解密密钥。
文档编号G06F12/14GK102750233SQ20121008359
公开日2012年10月24日 申请日期2012年3月22日 优先权日2011年3月22日
发明者吉恩-博迪斯特·布雷罗特, 柯德克·丹尼斯·罗伯特·艾罗 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1