CN114930332A - 基于存储器的加密 - Google Patents

基于存储器的加密 Download PDF

Info

Publication number
CN114930332A
CN114930332A CN202180008155.8A CN202180008155A CN114930332A CN 114930332 A CN114930332 A CN 114930332A CN 202180008155 A CN202180008155 A CN 202180008155A CN 114930332 A CN114930332 A CN 114930332A
Authority
CN
China
Prior art keywords
data
memory
encryption key
physical address
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180008155.8A
Other languages
English (en)
Inventor
T·萨万
A·黑尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114930332A publication Critical patent/CN114930332A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Abstract

本文的实施例描述了具有加密路径和旁路路径的存储器控制器。使用指示符(例如,专用地址范围),外部实体可通知存储器控制器是使用加密路径还是旁路路径。例如,当执行写入请求时使用加密路径意味着存储器控制器在数据被存储之前对其进行加密,而使用旁路路径意味着数据被写入到存储器中而不加密。类似地,当执行读取请求时使用加密路径意味着控制器在数据被传送至请求实体之前对数据进行解密,而使用旁路路径意味着数据在没有被解密的情况下被传送。

Description

基于存储器的加密
技术领域
本发明涉及基于存储器的加密。
背景技术
加密是一种用于数据保护和软件安全的常用方法,但是基于软件的加密很慢并且需要该软件知道加密密钥。使密钥可由软件访问意味着密钥更易于由恶意行为者获得。虽然可替代地执行硬件加密(其中加密密钥不可由软件获得),但基于硬件加速器的加密需要昂贵的系统调用来执行。
现代处理器具有用于对存储在短期存储器(例如,随机存取存储器(RAM))中的数据进行加密的内置加密引擎。这些处理器具有一个用户可配置设置:或者存储在存储器中的所有数据被加密,或者存储在存储器中的数据均未被加密。如果处理器被设置为加密所有数据,则每当数据从短期存储器移动到长期存储(例如,硬盘驱动器或固态驱动器)时,处理器首先在存储数据之前对数据进行解密。因此,数据仅在驻留在短期存储器中时被加密。为了对长期存储器中的数据进行加密,软件应用程序将需要生成另一请求。由此,执行硬件加密的优点受到限制。
发明内容
根据本发明的一个方面,一种处理器包括核和存储器控制器,该存储器控制器被配置成用于接收用于向存储器写入数据的第一写入请求。存储器控制器被配置成识别第一写入请求中的物理地址,其中物理地址指示数据应当存储在存储器中的何处,并且基于物理地址生成用于加密数据的第一加密密钥。
本文所描述的另方面是一种方法,该方法包括:接收将数据写入存储器的第一写入请求;识别该第一写入请求中的物理地址,其中该物理地址指示该数据应被存储在该存储器中的何处;以及基于该物理地址生成用于加密该数据的第一加密密钥。
本文所描述的另一方面是一种集成电路中的存储器控制器。所述存储器控制器包括硬件逻辑,所述硬件逻辑被配置成识别在所述存储器控制器处接收的第一写入请求中的物理地址,其中所述物理地址指示对应于所述第一写入请求的数据应在何处;以及
存储在存储器中并基于所述物理地址生成用于加密所述数据的第一加密密钥。所述存储器控制器还包括加密引擎,所述加密引擎被配置为使用所述第一加密密钥对所述数据进行加密。
附图说明
图1是根据本文描述的一个实施例的用于执行选择性硬件加密的计算系统的框图。
图2是根据本文描述的一个实施例的用于使用加密路径或旁路路径执行写入请求的流程图。
图3是根据本文描述的一个实施例的用于使用加密路径或旁路路径执行读取请求的流程图。
图4是根据本文描述的一个实施例的用于对先前由处理器加密的数据进行解密的流程图。
图5A示出了根据本文描述的一个实施例的当启用镜像时执行写请求以便对数据进行加密。
图5B示出了根据本文描述的一个实施例的当启用镜像时使用旁路路径执行读取请求以取回加密的数据。
图6A示出了根据本文描述的一个实施例的当启用镜像时使用旁路路径执行写入请求来存储加密的数据。
图6B示出了根据本文描述的一个实施例的当启用镜像时使用加密路径执行读取请求以对加密的数据进行解密。
具体实施方式
本文的实施例描述了使用加密密钥在处理器中执行硬件加密,该加密密钥是基于该数据存储在存储器中的地址的。例如,加密密钥可以包括两个部分:一个部分是由制造商提供的处理器外部的任何实体不可访问的唯一ID,并且第二部分是从存储数据的物理地址导出的。处理器可使用这两个部分来生成加密密钥。由此,存储在不同位置的数据具有不同的加密密钥。相比于使用静态密钥(例如,如果整个密钥由制造商分配),具有基于数据地址的加密密钥的动态部分使得加密密钥几乎不可能使用强力方法来破解。
进一步地,相比于将处理器设置成总是对存储在存储器中的数据进行加密/解密或从不对数据进行加密/解密,在一个实施例中,该处理器中的存储器控制器具有加密路径和旁路路径。使用指示符(例如,专用地址范围),外部实体(例如,管理程序或软件应用程序)可以通知存储器控制器是使用加密路径还是旁路路径。例如,当执行写入请求时使用加密路径意味着存储器控制器在数据被存储之前对其进行加密,而使用旁路路径意味着数据被写入到存储器中而不加密。类似地,当执行读取请求时使用加密路径意味着控制器在数据被传送至请求实体之前对数据进行解密,而使用旁路路径意味着数据在没有被解密的情况下被传送。因此,软件应用程序可以指示处理器在执行写入操作时使用加密路径,使得数据在被存储之前首先被加密,并且稍后指示处理器在执行读取操作时使用旁路路径,使得现在被加密的数据在不被解密的情况下被取回(并且可以以加密的状态存储在长期存储器中)。
稍后,软件应用程序可能想要对加密的数据进行解密。软件应用程序可以使用另一个写入请求来指示处理器使用旁路路径将加密的数据存储在RAM中(使得已经加密的数据不被重加密)。然后,读取请求可以用于指示进程使用加密路径从RAM取回加密的数据,使得数据在被返回到软件应用程序之前被解密。以这种方式,仅使用硬件加密,并且软件应用程序可以在不知道加密密钥的情况下加密和解密数据。
图1是根据本文所描述的一个实施例的用于执行选择性硬件加密的计算系统100的框图。计算系统100包括使用总线190通信地耦合的处理器105、管理程序135、存储器150和存储装置180。处理器105包括一个或多个核110以及用作核110与存储器150(例如,诸如RAM的短期或易失性存储器)之间的接口的存储器控制器115。尽管未示出,核心110可以包括一个或多个高速缓存。
存储器控制器115包括加密路径120和旁路路径130,该加密路径用于对存储在存储器150中或从存储器150取回的数据进行加密和解密,在该旁路路径中,数据被存储在存储器150中或从存储器150取回而不被加密或解密。例如,如以下更详细描述的,处理器105可以从管理程序135接收写入请求,其包含加密地址140,该加密地址140充当在将数据写入到存储器150时存储器控制器115的应当使用加密路径120(即,数据应当被加密)的指示符。相反,如果写入请求反而包含旁路地址145,则这向存储器控制器115指示应当使用旁路路径130-即,数据应当在没有被加密的情况下存储在存储器150中。管理程序135还可以在发送读取请求时使用加密地址140和旁路地址145,以指示存储器控制器115使用加密路径120或替代地使用旁路路径130来解密数据。尽管在图1中,存储器控制器115被示为处于形成处理器105的同一集成电路中,但是存储器控制器115可以是单独的集成电路的一部分。
加密路径120包括执行加密和解密的加密引擎125。即,加密引擎125可在使用加密路径120执行写入请求时对数据进行加密,并且还在使用加密路径120执行读取请求时对数据进行解密。然而,在另一实施例中,存储器控制器可以具有专用于加密存储在存储器150中的数据的加密路径和专用于解密从存储器150取回的数据的解密路径(以及旁路路径130)。为了简单起见,图1示出了可以执行加密和解密的单个加密路径120和加密引擎125。
加密引擎125使用加密密钥132对数据进行加密和解密。在一个实施例中,加密密钥132具有至少两个部分:使用由处理器105的制造商设置的唯一子密钥或ID形成的静态部分134和使用数据存储在存储器150中的物理地址形成的动态部分133。由制造商提供的子密钥可能是外部实体不可访问的。即,管理程序135、操作系统(OS)155和应用程序160可能无法从处理器105取回子密钥。
当接收读或写请求时,存储器控制器115使用动态部分133(例如,数据的物理地址)和静态部分134(例如,ID或子密钥)来生成加密密钥132。例如,存储器控制器115可将物理地址的一部分(或全部)与子密钥组合以生成加密密钥132。以此方式,加密密钥132的第一部分是静态的(即,ID或烧录到处理器105中的子密钥),而第二部分是动态的并且根据读或写请求中的物理地址而改变。由此,如果加密的数据被恶意行为者获取,则行为者将必须知道处理器105的唯一子密钥以及该数据在其被加密时被存储在存储器150中的物理地址两者。进一步,存储器150中的加密的数据的每个高速缓存行可以使用不同的加密密钥132加密。这使得使用强力方法来破解不同加密密钥132几乎不可能。
在一个实施例中,加密密钥132基于地址范围(例如,存储块)而不是单个地址。在该示例中,可以使用相同的加密密钥132对存储在相同存储块(或存储器150中的任何其他逻辑数据分区)中的加密的数据进行加密,而使用加密密钥132的不同值对不同存储块中的加密的数据进行加密。
管理程序135可以是固件、硬件、软件、或其组合。在一个实施例中,管理程序135提供被分配给OS155和应用程序160的虚拟地址空间与由处理器105使用的物理地址之间的接口。例如,应用程序160可以基于管理程序135转换成存储器150的物理地址的虚拟地址空间来发送读取和写入请求。这些物理地址可以不同于用于向存储器控制器115指示在服务于读或写请求时是否使用加密路径120和旁路路径130的加密地址140和旁路地址145。如上所述,存储器控制器115可以使用物理地址(或其一部分)来生成加密密钥132。
加密地址140和旁路地址145可以是用于指示存储器控制器115数据是否需要被加密/解密的任何指示符。例如,加密地址140和旁路地址145可以是标志或单个存储器地址、或存储器地址的范围。在一个实施例中,加密地址140可以是基本地址寄存器(BAR)的一部分,而旁路地址145是不同的BAR。取决于在读或写请求中使用哪个BAR值,存储器控制器115可以确定是使用加密路径120还是旁路路径130。
存储器150可以是任何短期存储器元件(例如,易失性存储器),如DRAM、SRAM等。然而,存储器150不必要是短期存储器元件,尽管这是现代计算系统中的典型布置。例如,存储器150可以包含非易失性存储器。
存储器150包括OS 155(其可以是适合于执行本文描述的任务的任何OS)和用户数据165。应用程序160由OS155托管并且可以是任何软件应用程序。应用程序160生成由处理器105执行的任务。这些任务可以包括读和写请求,其中存储器控制器115将用户数据165存储在存储器150中。如上所述,基于来自应用程序160和管理程序135的指令,存储器控制器115可以使用加密路径120将加密的数据170存储在存储器150中,并且使用旁路路径130存储未加密的数据175。加密/解密(或不加密/解密)用户数据165的决定可以由应用程序160在逐个任务的基础上(例如,针对每个读取和写入请求)作出,而不是作为处理器105中的设置,其中处理器105总是对存储在存储器中的用户数据165进行加密,或从不对数据进行加密。
在一个实施例中,存储设备180是包含非易失性存储器元件(例如,硬盘驱动器或固态驱动器)的长期存储设备。在一个实施例中,应用程序160可能想要将经加密的数据170存储在存储装置180中。应用程序160可以向存储器控制器115传输指示旁路路径130应当被用于取回加密的数据170并且将其转发到存储设备180的读取请求。然后,加密的数据170绕过加密引擎125并且以其加密状态存储。由此,如果恶意行为者访问数据(通过物理地窃取存储设备180或者通过电子装置),则数据170是被加密的。如果存储装置180是诸如数据中心或云存储服务的远程数据存储节点的一部分,则这也是有用的。如果远程节点上的安全性失败,则已经使用仅基于计算系统100中的硬件的加密密钥132(例如,分配给处理器105的子密钥和存储器150中的物理地址)对数据进行加密。这样,恶意行为者可以解密数据而不获得对计算系统100的物理控制的可能性极低。
图2是根据本文描述的一个实施例的用于使用加密路径或旁路路径执行写入请求的方法200的流程图。在框205处,处理器从用户应用程序(或管理程序)接收写入请求。在一个实施例中,写入请求包括指示符,该指示符告诉处理器对应于写入请求的数据是否应当在存储在存储器中之前被加密(例如,使用图1中的加密地址140或旁路地址145)。写入请求还可包括其中数据应被写入到存储器中的物理地址(或物理地址的范围)。
在框210,存储器控制器中的硬件逻辑使用写入请求中所包含的指示符来确定是否使用加密路径来存储数据。换言之,存储器控制器使用指示符来确定是否使用加密路径或旁路路径。
如果选择旁路路径,则方法前进到框215,其中,存储器控制器将数据写入存储器,而不首先对数据进行加密。即,存储器控制器使用旁路路径来旁路加密路径中的加密引擎。然而,如果存储器控制器选择加密路径,则在框220,加密引擎使用基于写入地址(例如,加密的数据在被加密之后将被存储在其中的存储器的物理地址)的加密密钥来加密数据。写入地址可以由管理程序或由处理器内的逻辑提供。
除了基于写入地址之外,加密密钥还可以基于由制造商分配给处理器的唯一ID或子密钥。存储器控制器可以使用预定义的技术来组合子密钥和写入地址以形成加密密钥。例如,子密钥的位可与写入地址中的一些或所有位(例如,其最高或最低有效位)串接以形成加密密钥。然而,本文中的实施例不限于用于将静态部分与动态部分组合以便生成加密密钥的任何特定技术。
在框225,管理程序(或存储器控制器中的硬件逻辑)将写入地址提供给用户应用程序。因为在这个示例中,使用基于写入地址的密钥来对数据进行加密,所以需要使用相同的写入地址以使得可以对数据进行解密。用户应用程序可将加密的数据存储在存储器中时的存储器地址记录在表格或其他数据结构中。这样,然后可以将数据从存储器中移除(例如,移动至计算系统或远程计算节点中的存储装置)或移动至存储器中的不同位置,并且然后随后使用相同的加密密钥进行解密。图4中更详细地描述用于解密先前使用方法200加密的数据的过程。
在任何情况下,方法200示出了存储器控制器可以使用写入请求中的指示符来为每个请求确定相应数据是否应在存储在存储器中之前被加密。进一步,存储器控制器可以使用基于写入地址的加密密钥来加密数据,尽管这不是必需的。即,方法200可以与任何加密密钥一起使用(无论是完全静态的、完全动态的还是静态和动态部分的组合)。如果加密密钥是完全静态的(例如,存储器控制器针对其加密的所有数据使用相同的加密密钥),则可以省略框225,因为不存在应当由用户应用程序跟踪的动态部分。
图3是根据本文描述的一个实施例的用于使用加密路径或旁路路径执行读取请求的方法300的流程图。即,虽然方法200描述了使用存储器控制器执行写入请求的计算系统,但是方法300描述了执行读取请求的同一计算系统。
在框305处,处理器从用户应用程序或管理程序接收读取请求。与方法200中类似,读取请求可以包括指示在被取回时是否应当或不应当解密从存储器(例如,RAM)读取的数据的指示符。例如,应用程序可能希望将加密的数据移动到计算系统或远程数据存储节点中的长期存储设备。为了增强安全性,应用程序可能想要以加密状态存储数据。在该示例中,读取请求中的指示符将指示存储器控制器在取回数据时使用旁路路径,因此数据保持加密。
在另示例中,应用程序可以取回数据,这样使得可以将数据发送到不同的第二计算系统以供处理。在这种情况下,因为仅当前计算系统中的处理器能够解密存储器中的加密的数据,所以应用程序指示处理器解密加密的数据,使得第二计算系统能够处理数据。当然,应用程序可以在将数据发送到第二计算系统之前再次对数据进行加密,但是代替使用存储器控制器中的硬件加密密钥,应用程序可以使用与第二计算系统共享的密钥来执行软件加密。这样,第二计算系统可使用共享加密密钥来解密所接收的数据。在任何情况下,应用程序指示处理器使用加密路径,使得任何加密的数据在被传送之前首先被解密。
在框310处,存储器控制器使用读取请求中的指示符来确定是使用加密路径还是旁路路径。如果选择旁路路径,则方法300前进到框315,其中存储器控制器在其当前状态(其可以是加密的或未加密的)从存储器取回数据。不进行解密。
如果选择了加密路径,则方法300反而前进到框320,其中,加密路径中的加密引擎基于读取地址使用加密密钥来解密数据。即,在该实施例中,存储器控制器中的硬件逻辑使用读取地址(即,数据存储在存储器中的物理地址或地址范围)来生成加密密钥以对数据进行解密。只要数据被存储在与当写入存储器时所存储的数据相同的存储器地址,存储器控制器就生成与存储器控制器在在将数据写入存储器时加密数据时所使用的加密密钥相同的加密密钥。换言之,只要从存储器中在被加密时被写入的相同位置取回数据,存储器控制器就生成相同的加密密钥,并且因此可以成功地解密数据。
当然,方法300可以与静态加密密钥一起使用,在这种情况下,正被取回的数据是否被存储在该存储器的与其在被写入(和加密)该存储器时原始存储的位置不同的位置中,将是无关紧要的。在该场景中,当写入存储器时被加密的任何数据使用相同的密钥被加密,并且因此当被解密时该数据的物理地址无关紧要。
在框325处,处理器将数据传送至由用户应用程序指定的目的地。例如,处理器可以将数据转发到本地磁盘驱动器用于存储,或者转发到网络适配器,该网络适配器使用例如网络将数据传输到远程目的地。
图4是根据本文描述的一个实施例的用于对先前由处理器加密的数据进行解密的方法400的流程图。即,方法400假定先前由处理器加密的数据从存储器移除并且仍处于其加密状态存储在其他地方(例如,长期存储设备)。应用程序现在想要对加密的数据进行解密,以例如进行进一步处理,或者将未加密的数据发送到不同的计算设备进行处理。因为在处理器中使用安全加密密钥对数据进行加密,所以在数据可以被进一步处理之前必须使用相同的处理器对数据进行解密。
在框405处,用户应用程序识别先前由处理器加密的加密数据。该数据当前可被存储在计算设备中的除了存储器(例如,RAM)之外的某处。在一个实施例中,使用处理器加密的数据可以由软件或管理程序标记或跟踪,使得用户应用程序可以确定多处理器系统中的哪个处理器对数据加密。这样,应用程序可以识别哪个处理器应当被分派解密数据的任务。
在框410,应用程序(或管理程序)识别在加密时先前存储加密的数据的存储器中的物理地址。如上文在框225处所提及,当加密数据时,处理器可将加密的数据存储在其处的物理地址提供到软件应用程序。该相同的物理地址可以被用作加密密钥的一部分。因此,为了对数据进行解密,存储器控制器需要知道在对数据进行加密时使用的物理地址。然而,在加密密钥不基于存储器的物理地址的实施例中,可以跳过该块。
该应用程序可以使用任何数据结构来跟踪由该处理器加密的数据的物理地址。例如,对于每个加密的数据组块,应用程序可以在表中添加条目,该条目指示哪个处理器执行加密以及当被加密时数据存储在存储器中的物理地址。然而,可以使用用于跟踪此信息的任何技术。
在框415处,管理程序向处理器发送使用旁路路径将加密的数据存储在识别的物理地址处的写入请求。即,因为数据已经被加密,所以管理程序可以使用指示符,该指示符通知存储器控制器使用旁路路径,所以当已经加密的数据存储在存储器中时,不重新加密已经加密的数据。进一步,如果识别的物理地址被其他数据占用,则存储器控制器可以驱逐该数据,或者等待直到其他数据被从存储器移除。再次,在一个实施例中,加密的数据可以被存储在原始加密数据时使用的相同存储器位置中,以使得在解密数据时生成相同的加密密钥。
在框420处,管理程序向处理器发送使用加密路径对加密的数据进行解密的读取请求。作为响应,存储器控制器使用读取请求中的物理地址(本文示例中是当数据先前被处理器加密时使用的相同地址)来生成用于加密数据的相同加密密钥。加密路径中的加密引擎使用加密密钥来解密加密的数据。现在未加密的数据可以再次存储在存储器中(其中,根据用户应用程序的要求,对数据进行进一步处理),或者可以被传输到不同的计算元件(例如,不同的处理器或存储元件,或不同的计算系统)。
以此方式,方法400示出了用于使用硬件加密对数据进行加密的技术,其中,可以将经加密的数据以其经加密的状态存储在长期存储元件中。然后可以将加密的数据返回到相同的处理器并且使用加密密钥进行解密。这样做可以比使用软件加密更快且更安全,其中,使加密密钥可被软件应用程序获得。
图5A示出了根据本文中所描述的一个实施例的当启用镜像时执行写请求以便对数据进行加密。数据镜像是在相同的物理地址指向两个单独的物理存储器元件时。镜像可用于提供数据冗余,使得如果数据的一个副本被损坏,则可从其他物理存储器元件取回数据。在该示例中,存储器150包括至少两个单独的存储器元件或块(P0和P1)。
在图5A中,处理器接收命中镜像BAR的写入请求。在该示例中,镜像BAR是正被写入到存储器150中的数据应当使用加密路径进行加密的指示符。在一个实施例中,镜像BAR不同于加密数据写入存储器150的物理地址。
然后,在加密路径中由加密引擎对数据进行加密。加密的数据的副本被存储在存储器元件P0和P1两者中。
图5B示出了根据本文描述的一个实施例的当启用镜像时使用旁路路径执行读取请求以取回加密的数据。在这个示例中,读取请求命中非镜像BAR,该非镜像BAR是作为读取请求的一部分的、要从存储器150取回数据不应被解密的指示符。照此,存储器控制器使用旁路路径从存储器150取回数据。
此外,因为存储器元件P0和P1中的每一个包含重复的(即,相同的)加密的数据,所以存储器控制器可以从任一元件中取回数据。在该示例中,从存储器元件P0取回数据。一旦被取回,处理器就将数据传送到由生成读取请求的应用程序指示的任何目的地。
图6A示出了根据本文描述的一个实施例的当启用镜像时使用旁路路径执行写入请求来存储加密的数据。类似于图4中的方法400,假设对应于写入请求的数据已经被处理器加密,并且然后从存储器150移动到不同的存储元件中。即,图6A中的写入请求中的数据可以是与图5A中的写入请求加密的数据相同的数据,并且然后通过图5B中的读取请求以其加密状态从存储器移除。
为了对加密的数据进行解密,写入请求命中非镜像BAR。因此,存储器控制器使用旁路路径将加密的数据存储在存储器中。此外,假设在图5A中使用的加密密钥基于对应于P0和P1的物理地址,写入请求可以规定存储器控制器将加密的数据存储在P0或P1中。如果仍然激活数据镜像,则存储器控制器可以将加密的数据存储在P0和P1两者中;然而,仅将数据存储在这些存储器元件中的一个存储器元件处就足够了。
图6B示出了根据本文中所描述的一个实施例的当启用镜像时执行读取请求以使用加密路径对加密的数据进行解密。在如图6A所示的存储的之后,处理器接收对存储在P0或P1(或两者)中的数据的读取请求。该读取请求命中镜像BAR,从而向存储器控制器指示应当使用加密路径来取回数据。作为响应,存储器控制器生成与在图5A中对数据进行加密时使用的相同的加密密钥,并且对数据进行解密。然后,将未加密的数据传送至由生成读取请求的应用程序所指示的目的地。以此方式,上文所讨论的加密/旁路路径和动态硬件加密密钥可用于启用存储器镜像的计算机系统中。
已经出于说明的目的呈现了对本发明的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
在上文中,参考本公开中提出的实施例。然而,本公开的范围不限于具体描述的实施例。相反,无论是否涉及不同实施例,都考虑以上讨论的特征和元件的任何组合来实现和实践所考虑的实施例。此外,尽管本文所公开的实施例可实现优于其他可能的解决方案或优于现有技术的优点,但特定优点是否由给定实施例实现并不限制本公开的范围。由此,本文中的各方面、特征、实施例和优点仅仅是说明性的,并且不被认为是所附权利要求的元素或限制,除非在权利要求中明确陈述。同样,对“本发明”的引用不应被解释为本文所公开的任何发明主题的概括,并且不应被认为是所附权利要求的元素或限制,除非在权利要求中明确陈述。
本发明的多个方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,这些实施例本文可以统称为“电路”、“模块”或“系统”。
本发明可以是系统、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可以是可以保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至相应的计算/处理装置或者下载至外部计算机或外部存储装置。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和常规的过程式程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
本文参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,这样使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
这些计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以便使得在该计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而使得在该计算机、其他可编程装置、或其他设备上执行的指令实现流程图和/或框图的或多个框中所指定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
虽然前述内容针对本发明的实施例,但是可以在不偏离本发明的基本范围的情况下设计本发明的其他和进一步的实施例,并且其范围由所附权利要求确定。

Claims (20)

1.一种处理器,包括:
核;以及
存储器控制器,被配置为接收将数据写入到存储器的第一写入请求;
其中,所述存储器控制器被配置为:
识别所述第一写入请求中的物理地址,其中所述物理地址指示所述数据应存储在所述存储器中何处;以及
基于所述物理地址生成用于加密所述数据的第一加密密钥。
2.根据权利要求1所述的处理器,其中,生成所述第一加密密钥包括:
将所述第一加密密钥的动态部分与所述第一加密密钥的静态部分组合,其中所述动态部分是从所述物理地址导出的。
3.根据权利要求2所述的处理器,其中,所述静态部分是基于在制造期间分配给所述处理器的ID。
4.根据权利要求1所述的处理器,其中,所述第一加密密钥存储在所述处理器中并且不能由所述处理器外部的任何实体读取。
5.根据权利要求1所述的处理器,其中,所述存储器控制器被配置为:
使用所述第一加密密钥加密所述数据;
将所述加密的数据存储在存储器中;
从所述存储器移除所述加密的数据;
在移除所述加密的数据之后,接收将所述加密的数据写入回所述存储器中的第二写入请求;
在执行所述第二写入请求之后,接收从所述存储器取回所述加密的数据的读取请求;
识别所述读取请求中的物理地址以取回所述加密的数据,其中所述读取请求中的所述物理地址指示所述加密的数据存储在所述存储器中的位置;以及
基于所述读取请求中的所述物理地址生成用于解密所述数据的第二加密密钥,其中,所述第一加密密钥和所述第二加密密钥相同。
6.根据权利要求5所述的处理器,其中所述第一写入请求中的所述物理地址和所述读取请求中的所述物理地址必须相同以便使所述第一加密密钥和所述第二加密密钥相同。
7.根据权利要求5所述的处理器,其中,所述存储器控制器包括:
加密路径包括用于加密和解密数据的加密引擎;以及
绕过所述加密引擎执行读和写请求的旁路路径,
其中,使用所述加密路径执行所述第一写入请求和所述读取请求,但是使用所述旁路路径执行所述第二写入请求。
8.根据权利要求1所述的处理器,其中,所述存储器控制器被配置为:
接收用于将第二数据写入所述存储器的第二写入请求;
识别所述第二写入请求中的第二物理地址,其中所述第二物理地址指示所述第二数据应当存储在所述存储器中的何处;以及
基于所述第二物理地址生成用于加密所述数据的第二加密密钥,其中所述第二加密密钥不同于所述第一加密密钥。
9.一种方法,包括:
接收将数据写入到存储器的第一写入请求;
识别所述第一写入请求中的物理地址,其中所述物理地址指示所述数据应存储在所述存储器中何处;以及
基于所述物理地址生成用于加密所述数据的第一加密密钥。
10.根据权利要求9所述的方法,其中,生成所述第一加密密钥包括:
将所述第一加密密钥的动态部分与所述第一加密密钥的静态部分组合,其中所述动态部分是从所述物理地址导出的。
11.根据权利要求10所述的方法,其中,所述静态部分是基于在制造过程中分配的ID。
12.根据权利要求9所述的方法,其中,所述第一加密密钥被存储在集成电路中并且不能被所述集成电路外部的任何实体读取。
13.根据权利要求9所述的方法,进一步包括:
使用所述第一加密密钥加密所述数据;
将所述加密的数据存储在所述存储器中;
从所述存储器移除所述加密的数据;
在移除所述加密的数据之后,接收将所述加密数据写入回所述存储器中的第二写入请求;
在执行所述第二写入请求之后,接收从所述存储器取回所述加密的数据的读取请求;
识别所述读取请求中的物理地址以取回所述加密的数据,其中所述读取请求中的所述物理地址指示所述加密数据存储在所述存储器中的位置;以及
基于所述读取请求中的所述物理地址生成用于解密所述数据的第二加密密钥,其中,所述第一加密密钥和所述第二加密密钥相同。
14.根据权利要求13所述的方法,其中所述第一写入请求中的所述物理地址和所述读取请求中的所述物理地址必须相同以便使所述第一加密密钥和所述第二加密密钥相同。
15.一种集成电路中的存储器控制器,包括:
硬件逻辑,被配置为:
识别在所述存储器控制器处接收的第一写入请求中的物理地址,其中所述物理地址指示对应于所述第一写入请求的数据应存储在存储器中何处;以及
基于所述物理地址生成用于加密所述数据的第一加密密钥;以及
加密引擎,被配置为使用所述第一加密密钥对所述数据进行加密。
16.根据权利要求15所述的存储器控制器,其中,生成所述第一加密密钥包括:
将所述第一加密密钥的动态部分与所述第一加密密钥的静态部分组合,其中所述动态部分是从所述物理地址导出的。
17.根据权利要求16所述的存储器控制器,其中,所述静态部分基于在制造期间分配给所述集成电路的ID。
18.根据权利要求15所述的存储器控制器,其中,所述第一加密密钥被存储在所述集成电路中并且不能被所述集成电路外部的任何实体读取。
19.根据权利要求15所述的存储器控制器,其中,所述存储器控制器被配置为:
将所述加密的数据存储在存储器中;
从所述存储器移除所述加密的数据;
在移除所述加密的数据之后,接收将所述加密数据写入回所述存储器中的第二写入请求;
在执行所述第二写入请求之后,接收从所述存储器取回所述加密的数据的读取请求;
识别所述读取请求中的物理地址以取回所述加密的数据,其中所述读取请求中的所述物理地址指示所述加密的数据存储在所述存储器中的位置;以及
基于所述读取请求中的所述物理地址生成用于解密所述数据的第二加密密钥,其中,所述第一加密密钥和所述第二加密密钥相同。
20.根据权利要求19所述的存储器控制器,其中所述第一写入请求中的所述物理地址和所述读取请求中的所述物理地址必须相同以便使所述第一加密密钥和所述第二加密密钥相同。
CN202180008155.8A 2020-01-15 2021-01-04 基于存储器的加密 Pending CN114930332A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/742,993 2020-01-15
US16/742,993 US11520709B2 (en) 2020-01-15 2020-01-15 Memory based encryption using an encryption key based on a physical address
PCT/IB2021/050005 WO2021144659A1 (en) 2020-01-15 2021-01-04 Memory based encryption

Publications (1)

Publication Number Publication Date
CN114930332A true CN114930332A (zh) 2022-08-19

Family

ID=76761073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180008155.8A Pending CN114930332A (zh) 2020-01-15 2021-01-04 基于存储器的加密

Country Status (6)

Country Link
US (1) US11520709B2 (zh)
JP (1) JP2023510311A (zh)
CN (1) CN114930332A (zh)
DE (1) DE112021000537T5 (zh)
GB (1) GB2607484A (zh)
WO (1) WO2021144659A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11763008B2 (en) 2020-01-15 2023-09-19 International Business Machines Corporation Encrypting data using an encryption path and a bypass path
US20220100871A1 (en) * 2020-09-26 2022-03-31 Intel Corporation Scalable multi-key memory encryption
JP7284796B2 (ja) * 2020-10-30 2023-05-31 銓安智慧科技股▲分▼有限公司 セキュアメモリカード及びその制御方法
US11392705B1 (en) * 2021-07-29 2022-07-19 Netskope, Inc. Disk encryption key management for booting of a device

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002025410A2 (en) * 2000-09-15 2002-03-28 Koninklijke Philips Electronics N.V. Protect by data chunk address as encryption key
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US9432184B2 (en) * 2008-09-05 2016-08-30 Vixs Systems Inc. Provisioning of secure storage for both static and dynamic rules for cryptographic key information
US20100325431A1 (en) * 2009-06-19 2010-12-23 Joseph Martin Mordetsky Feature-Specific Keys for Executable Code
CN102474977B (zh) 2009-07-07 2015-05-27 国际商业机器公司 保护密钥和代码的多层安全结构及其方法
FR2976147B1 (fr) * 2011-05-30 2013-11-22 Maxim Integrated Products Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise
FR2979443B1 (fr) * 2011-08-30 2013-09-27 Maxim Integrated Products Microcontroleur securise a base de mode
US9037869B2 (en) * 2011-11-02 2015-05-19 Intel Corporation Delivering data from a secure execution environment to a display controller
US9448846B2 (en) 2011-12-13 2016-09-20 International Business Machines Corporation Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
US8909942B1 (en) 2012-03-30 2014-12-09 Western Digital Technologies, Inc. MRAM-based security for data storage systems
CN202870835U (zh) 2012-06-13 2013-04-10 福建睿矽微电子科技有限公司 一种芯片片外ram总线接口硬件加密装置
US10038550B2 (en) 2013-08-08 2018-07-31 Intel Corporation Instruction and logic to provide a secure cipher hash round functionality
US9256551B2 (en) * 2013-08-09 2016-02-09 Apple Inc. Embedded encryption/secure memory management unit for peripheral interface controller
US20150095661A1 (en) * 2013-09-30 2015-04-02 Microsoft Corporation Flexible Memory Addressing For Data Security
US10185499B1 (en) 2014-01-07 2019-01-22 Rambus Inc. Near-memory compute module
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US20160308669A1 (en) * 2015-04-20 2016-10-20 Jian Ho Method and System for Real Time Data Protection with Private Key and Algorithm for Transmission and Storage
US20170277898A1 (en) 2016-03-25 2017-09-28 Advanced Micro Devices, Inc. Key management for secure memory address spaces
US9852025B2 (en) * 2016-03-29 2017-12-26 Alibaba Group Holding Limited Protecting data stored on a solid state drive
US20190044922A1 (en) * 2017-08-02 2019-02-07 Rubicon Labs, Inc. Symmetric key identity systems and methods
WO2020000285A1 (en) 2018-06-28 2020-01-02 Intel Corporation Secure virtual machine migration using encrypted memory technologies
CN109670344A (zh) 2018-12-05 2019-04-23 珠海全志科技股份有限公司 加密装置、方法及片上系统
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
CN110213052A (zh) 2019-06-05 2019-09-06 海光信息技术有限公司 数据处理方法与装置
TWI722496B (zh) * 2019-06-20 2021-03-21 慧榮科技股份有限公司 使用者資料的加解密方法及裝置
US11249924B2 (en) * 2019-11-25 2022-02-15 Micron Technology, Inc. Secure data communication with memory sub-system
US20210200880A1 (en) * 2019-12-27 2021-07-01 Intel Corporation Method and apparatus for multi-key total memory encryption based on dynamic key derivation

Also Published As

Publication number Publication date
JP2023510311A (ja) 2023-03-13
WO2021144659A1 (en) 2021-07-22
GB2607484A (en) 2022-12-07
US11520709B2 (en) 2022-12-06
US20210216476A1 (en) 2021-07-15
GB202211296D0 (en) 2022-09-14
DE112021000537T5 (de) 2022-10-27

Similar Documents

Publication Publication Date Title
US11520709B2 (en) Memory based encryption using an encryption key based on a physical address
JP4648687B2 (ja) データストレージシステムにおける暗号化変換の方法と装置
US9792450B2 (en) Preserving redundancy in data deduplication systems by encryption
KR101880075B1 (ko) 중복 제거 기반 데이터 보안
US20170317991A1 (en) Offloading storage encryption operations
JP4941556B2 (ja) 暗号化装置、暗号化方法および暗号化プログラム
JP2019508974A (ja) クライアントによるオブジェクトの組のバックアップを実施するためのコンピュータ実施方法およびクライアントによるオブジェクトの組のバックアップを復元するためのコンピュータ実施方法
JP2015060569A (ja) 情報処理装置、およびプログラム
JP2015513743A (ja) ストレージ装置とホスト間でデータ伝送を保護するためのストレージ・コントローラ・バス・インターフェースの使用
KR101120779B1 (ko) 시스템 페이징 파일의 암호화
US20190215160A1 (en) Managing a set of cryptographic keys in an encrypted system
JP2020528608A5 (zh)
US10733306B2 (en) Write-only limited-read filesystem
CN115061972A (zh) 处理器、数据读写方法、装置和存储介质
US9218296B2 (en) Low-latency, low-overhead hybrid encryption scheme
US9760487B2 (en) Store operations to maintain cache coherence
US20170220464A1 (en) Efficiently managing encrypted data on a remote backup server
US11763008B2 (en) Encrypting data using an encryption path and a bypass path
US20150324301A1 (en) Storage control apparatus and computer-readable storage medium storing computer program
US20190057043A1 (en) Hot encryption support prior to storage device enrolment
CN114186245A (zh) 来自存储系统的加密密钥
JP7431791B2 (ja) ストレージシステム及びデータ処理方法
US9495300B2 (en) Set selection of a set-associative storage container
US20150317254A1 (en) Secure reservation mode for logical unit numbers and persistent reservations
US20180315451A1 (en) Metadata processing for an optical medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination