CN107533514A - 存储器内容的基于密码的初始化 - Google Patents
存储器内容的基于密码的初始化 Download PDFInfo
- Publication number
- CN107533514A CN107533514A CN201580078981.4A CN201580078981A CN107533514A CN 107533514 A CN107533514 A CN 107533514A CN 201580078981 A CN201580078981 A CN 201580078981A CN 107533514 A CN107533514 A CN 107533514A
- Authority
- CN
- China
- Prior art keywords
- memory
- region
- cache line
- data
- random number
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2125—Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
Abstract
技术包括接收用于对存储器的区域进行初始化的请求。被存储在区域中的内容至少部分地基于所存储的随机数值和密钥而被加密。技术包括,响应于请求,执行存储器的基于密码的初始化,其包括更改所存储的随机数值来对存储器的区域进行初始化。
Description
背景技术
出于分析相对大的数据集(通常被称为“大数据”)的目的,计算机系统具有越来越大的主存储器。一种类型的存储器是易失性存储器,例如动态随机存取存储器(DRAM)。在功率损耗的事件中,易失性存储器丢失其内容。此外,诸如DRAM之类的某些易失性存储器的存储器单元,常常被刷新以免数据丢失。另一个类型的存储器是非易失性存储器(NVM),其在功率损耗的事件中保持其数据。NVM的存储器单元保持它们所存储的数据而无需被刷新。
存储器可以位于电子系统的不安全的区域。如此,被存储在存储器中的数据可以被加密以防止对底层信息进行未授权的存取。
附图说明
图1是根据示例实现的计算机系统的示意图。
图2A是根据示例实现的由计算机系统的存储器控制器执行的用于将内容存储在系统的加密的存储器中的操作的示出。
图2B是根据示例实现的由存储器控制器执行的用于从加密的存储器中读取内容的操作的示出。
图3是根据示例实现的由存储器控制器执行的用于将被存储在存储器中的内容碎片化的操作的示出。
图4是根据示例实现的描述用于对存储器内容进行初始化的基于密码的技术的流程图。
图5A是根据示例实现的用于从加密的存储器中读取内容的操作的示出。
图5B是根据示例实现的用于对存储器的区域进行初始化的操作的示出。
图6是根据示例实现的用于将存储器内容碎片化的基于密码的技术的流程图。
图7是根据示例实现的初始化向量(IV)的示出。
具体实施方式
计算机系统可以采用措施来保护与在系统上执行的应用相关联的数据不被暴露于内部或外部的对手。用于保护来自一个应用的数据不被另一个应用可视的一个方法包括在单元被分配至新的应用之前清除,或者“置零”存储器的单元(例如,存储器的页)。以该方式,计算机系统可以通过将零写入单元的所有可编址的位置来将给定的存储器单元置零。由于置零,存储器的新分配的单元不包括由单元先前被分配至的其它应用留下的数据痕迹。
非易失性存储器(NVM)越来越多地被用作易失性存储器的替代。作为示例,NVM包括闪存、忆阻器、相变存储器、铁电随机存取存储器(FRAM)以及磁阻随机存取存储器(MRAM),仅举几例。一般而言,NVM可以具有优于易失性存储器的优点。例如,NVM与易失性存储器相比可以较可扩展,因此提供较高的存储密度。其它优点可以是NVM单元不用刷新(因此不消耗刷新功率);在功率损耗时NVM不丢失其内容;并且NVM允许有持久性数据的可能性。
然而,伴随使用置零来保护基于NVM的计算机系统中的应用数据的可能的挑战是NVM可能具有相对大的写入延时(即,NVM设备与易失性存储器设备相比可能用相对较长的时间来存储数据)。因此,例如,与将易失性存储器的页置零相比将NVM页置零可能消耗较多的时间。将NVM置零中的另一个可能的挑战是在单元不在可用之前NVM单元可能被写入有限数量的次数。因此,以上所描述的置零方法可能影响NVM的寿命。
根据示例实现,存储器控制器被构建为改变与密钥一起使用的随机数作为解密过程的一部分以解密来自区域的内容,而不是向给定的存储器区域写入零来对区域进行初始化。因此,实际上,存储器控制器“碎片化”包括在被初始化的存储器区域中的内容,不真正向区域写入。
较具体地说,根据示例实现,计算机系统包括被构建为将内容存储在加密的存储器中并且从存储器取回内容的存储器控制器。以该方式,存储器控制器对将被存储在存储器中的明文数据进行加密并且对从存储器取回的加密的数据进行解密以生成相应的明文数据。
根据示例实现,出于对区域进行初始化的目的,存储器控制器改变用于对被存储在给定存储器区域(例如,具有与高速缓存行对齐的边界的区域)中的数据进行加密的随机数值。较具体地说,存储器控制器基于所存储的随机数值和密钥(例如,与存储器控制器相关联的密钥)对被存储在存储器的给定区域中的明文数据进行加密。就此而言,存储器控制器使用密钥和随机数值以便1.)出于将内容存储在存储器区域中的目的对明文数据进行加密;并且2.)出于从区域读取内容的目的对从存储器区域取回的加密的数据进行解密。每次数据被写入存储器区域中,存储器控制器改变随机数值。根据示例实现,出于另一个目的,存储器控制器改变随机数值:响应于用于对给定的存储器区域进行初始化的请求(例如,用于对区域进行碎片化或者对区域进行置零的请求),存储器控制器改变随机数值以便通过防止区域的内容被恢复来有效地对区域进行初始化。
作为较具体的示例,图1描述了根据示例实现的计算机系统100。计算机系统100包括实际的硬件和实际的机器可执行指令或者“软件”。以该方式,计算机系统100可以包括如一个或多个受信任的处理器124、存储器控制器130以及存储器164的这样的硬件。作为示例,机器可执行指令可以包括当由一个或多个处理器(例如,受信任的处理器124)执行时形成操作系统的指令;一个或多个设备驱动器;一个或多个应用等。根据示例实现,存储器164可以是NVM,但是根据进一步的示例实现,存储器164可以是易失性存储器。
计算机系统100包括受信任的、安全区域120,其包括受信任的组件,例如,受信任的处理器124和存储器控制器130。因为这些组件是受信任的,所以受信任的处理器124与存储器控制器130之间的通信不加密。一般而言,受信任的处理器124生成针对存储器164的存储器请求126,并且这些请求由存储器控制器130处理。
例如,存储器请求126可以是用于从存储器164的特定区域(例如,与高速缓存行边界对齐的区域)读取数据的读取请求,并且读取请求识别区域的地址。作为另一个示例,存储器请求126可以是用于将明文数据写入存储器164的特定区域的写入请求,并且写入请求包括明文数据并且识别区域的地址。作为另一个示例,存储器请求126可以是初始化请求,例如,碎片化请求,用于对存储器的特定区域进行初始化以便被初始化的区域可以被分配至应用的。
以该方式,初始化请求可以是针对存储器控制器130的用于将预先确定的数据模式(例如,所有零)存储在存储器的区域中的请求(例如,填零请求)。初始化请求可以是针对存储器控制器130的用于将存储器的区域的内容进行碎片化的请求,即,用于在请求时更改当前被存储在区域中的内容以便内容可以不被恢复的请求。
初始化请求可以许多不同的方式被传递至存储器控制器130,取决于特定的实现。例如,根据一些实现,可以通过受信任的处理器124执行使得使用系统呼叫用户级处理将虚拟地址传递至操作系统的内核的机器可执行指令将初始化请求与存储器控制器130进行通信;并且响应于系统呼叫,操作系统内核可以将即将被初始化的页的物理地址写入存储器控制器130的存储器映射的输入/输出(I/O)寄存器131。应该注意的是,可以使用这样的机制,代替将应用直接写入到寄存器131,因为这样的应用存取可以引入安全弱点。
如图1中所描述的,存储器控制器130还可以向受信任的处理器124提供响应128。作为示例,响应128可以包括针对向存储器164的读取请求的响应,该响应包括被读取的明文数据。响应128还可以包括写入和碎片化请求已由控制器130处理的由存储器控制器130进行的确认。
一般而言,响应于由诸如受信任的处理器124之类的计算机系统100的请求者提供的请求,存储器控制器130控制数据流入和流出存储器164。其它请求者可以包括其它受信任的处理器、直接存储器存取(DMA)控制器、图形控制器等。
存储器控制器130将加密数据155与存储器164进行通信,存储器164与用于传递数据155的存储器总线162一起,可以位于计算机系统100的被认为是不受信任的或者不安全的区域160。根据示例实现,为了处理包含将数据写入存储器164或者从存储器164读取数据的请求126,存储器控制器130在存储器总线162上生成适当的总线信号。例如,为了将数据写入存储器164,存储器控制器130提供将总线操作识别为写入操作的控制信号、表示加密数据155被存储到其中的存储器120的地址的地址信号以及表示加密数据155的数据信号。存储器164通过将数据存储在与地址相关联的存储器单元中来进行响应。
为了从存储器164中读取数据,存储器控制器130向存储器总线162提供信号,例如,将总线操作识别为读取操作的控制信号以及表示从其取回加密数据155的存储器164的物理地址的地址信号。存储器130通过向存储器总线162提供数据信号来响应,该数据信号表示被存储在与地址相关联的存储器单元中的加密数据155。
根据示例实现,存储器控制器130可以是集成电路(IC)。此外,根据示例实现,存储器控制器130可以是IC的一部分,其包括与受信任的处理器124分离的桥(例如,北桥)。根据进一步的示例实现,存储器控制器130可以是包括受信任的处理器124的半导体封装的一部分。根据一些实现,受信任的处理器124和存储器控制器130可以是受信任的平台单元(TPM)的一部分。
出于对被传递至存储器164的数据进行加密以及对从存储器164接收到的数据进行解密的目的,存储器控制器130包括密码引擎136。根据示例实现,出于对数据进行加密和解密的目的,密码引擎136使用具有操作的计数器模式的分组密码(例如,基于高级加密标准(AES)的密码)。如图1中所描述的,根据示例实现,控制器130进一步包括碎片化引擎150,出于对存储器164的区域进行初始化(例如,碎片化)的目的,该碎片化引擎对初始化(例如,碎片化请求)进行响应,如本文中进一步所描述的。
在存储器控制器的其它特征之中,存储器控制器130可以包括本地存储器140,其存储随机数值144,该随机数值出于向和从存储器164存储和取回内容的目的出于对数据进行加密和解密的目的而被使用,如本文中进一步所描述的。根据一些实现,存储器140可以是易失性存储器,例如,静态随机存取存储器(SRAM)。此外,根据示例实现,出于在电力故障的事件中允许从存储器164恢复内容(使用被存储在NVM中的随机数值)的目的,存储器控制器130可以将存储器140的内容备份至安全区域120的NVM(未示出)。
图2A是根据示例实现的由存储器控制器130执行的用于将内容存储在存储器164中的操作的示出200。结合图1参考图2A,根据示例实现,密码引擎136使用计数器模式中的基于AES的分组密码,该计数器模式继而使用具有相关联的计数器值的计数器,该计数器值在本文中被称为“初始化向量(IV)206”。为了与被指向存储器164的与高速缓存行边界对齐的区域(本文中被称为“高速缓存行区域”)的写入请求相关地将内容存储在存储器164中,密码引擎136基于密钥204、高速缓存行地址202以及IV 206对被提供作为请求的一部分的明文数据201进行加密。
根据示例实现,密钥204是与存储器控制器130相关联并且出于对其所有数据进行加密和解密的目的由存储器控制器130使用的密钥。根据进一步的示例实现,密钥可以是与存储器140的特定区域相关联的密钥,并且如此,存储器控制器130可以基于正在被存取的特定存储器区域选择密钥。IV 206取决于由高速缓存行计数器210提供的计数器值,该计数器与关联于写入操作的高速缓存行区域相关联。以该方式,根据示例实现,存储器140存储多个计数器210,其中,每个计数器210与存储器164的相应的高速缓存行区域相关联。
根据示例实现,每当存储器控制器130将数据写入给定的高速缓存行区域,密码引擎136使相应的高速缓存行计数器210递增以便递增相应的IV 206。计数器210的递增在图2A中通过密码引擎201的计数器递增输出207-A来描述。以该方式,根据示例实现,密码引擎136具有计数器递增输出207,当存储器控制器对数据进行加密以用于存储在存储器164的相关联的高速缓存行区域中时,该计数器递增输出使得相关联的计数器201递增。根据示例实现,密码引擎136基于密钥204、高速缓存地址202以及IV 206对明文数据201进行加密以便生成由存储器控制器130向存储器164写入的加密数据214。
图2B描述了由存储器控制器130执行的用于响应于将区域作为目标的读取请求从高速缓存行区域取回内容的操作240。结合图1参考图2B,如果新数据不被写入高速缓存行区域,则IV 206,即,计数器210的值不改变。因此,为了从存储器164取回对应于高速缓存行区域的数据,出于产生相应的明文数据250的目的,密码引擎136应用用于对数据进行加密(在将加密数据存储在区域中之前)的相同的IV 206来对从存储器164取回的数据244进行解密。
图3总体上描述了响应于接收到碎片化命令301以将存储器164的给定的页进行碎片化的由存储器控制器130执行的操作300。页与多个高速缓存行区域相关联。结合图1参考图3,代替将零或者其它内容写入存储器164的给定的页,碎片化引擎150改变对应于被碎片化的页的高速缓存行区域的高速缓存行计数器310(例如,并且改变相应的IV 206)。以该方式,图3描述了碎片化引擎150提供使与正在被碎片化的页相关联的计数器311递增的计数器递增输出311;并且图3还描述了不与正在被碎片化的页相关联的其它高速缓存行计数器312。通过改变计数器值,当存储器控制器130不再存储用于对页的内容进行解密的IV 206时,被碎片化的页的内容被有效地呈现为“垃圾”。
因此,参考图4,根据示例实现,技术400包括接收(框404)用于对存储器的区域进行初始化的请求,其中,被存储在区域中的内容至少部分地基于一个或多个所存储的随机数值和密钥被加密。依照框408,技术400包括响应于请求,执行存储器的基于密码的初始化,其包括更改所存储的随机数值来对存储器的区域进行初始化。
结合图1参考图5A,因此,根据示例实现,响应于读取请求514,存储器控制器510应用所存储的随机数值516作为密码515的一部分来对读取请求514以存储器535的区域524中的加密数据520作为目标的进行解密以便提供相应的解密内容530。结合图5A参考图5B,响应于接收到用于对存储器区域524进行初始化的初始化请求554,存储器控制器510更改所存储的随机数值516来生成被更改的随机数值560。由于随机数值的该更改,区域524中的加密数据520可能不能被恢复。
参考图6,根据示例实现,技术600包括接收(框604)用于对被存储为存储器的页中的加密数据的内容进行碎片化的请求。页与一组向高速缓存行边界对齐的区域相关联。技术600包括改变(框608)与该组向高速缓存行边界对齐的区域相关联的初始化向量以便将内容碎片化。
根据示例实现,初始化请求可以是零页或者填零请求,并且如此,计算机系统100的操作系统可以期望从被初始化的页中返回零块(而不是返回被碎片化的“垃圾”)。因此,根据一些实现,存储器控制器130可以在不真正与存储器通信的情况下向操作系统返回零块。针对这些实现,存储器控制器可以使用高速缓存行区域计数器来追踪哪些页被碎片化。较具体地说,根据示例实现,高速缓存行区域计数器可以提供具有诸如图7中所描述的格式之类的格式的IV 700。
参考图7,IV 700包括主计数器部分702和次计数器部分704。一般而言,IV 700的主计数器部分702追踪页并且针对存储器的不同的页而递增;并且IV 700的次计数器部分704对应于被递增以生成针对页的高速缓存行区域的不同的IV或者随机数值的计数器位。
根据示例实现,存储器控制器130将次计数器部分704设置为预先确定的位值以便指示相应的页是否为被碎片化的页。例如,根据一些实现,存储器控制器130可以将次计数器部分704置零,或者将次计数器部分704的所有位设置为零。因此,针对这些示例实现,当存储器控制器130将给定的页碎片化时,存储器控制器130可以清除次计数器部分704;并且随后,当存储器控制器对给定的页进行存取并且确定其相关联的次计数器部分704为零时,则存储器控制器向操作系统返回零块。
根据一些实现,存储器控制器130使被碎片化的高速缓存行区域无效。例如,根据一些实现,在碎片化命令之后可以执行PCOMMIT和SFENCE指令。针对该方法假设寄存器131(图1)的地址范围被声明为持久性的,并且当所有无效已被公布时存储器控制130将碎片化命令写入标记为刷新。根据进一步的示例实现,存储器控制器130可以循环持续地读取寄存器131直到寄存器131返回零值。在发送出所有无效之后存储器控制器130然后可以将被存储在寄存器131的值设置为零。这样的等待循环不生成存储器总线162上的任意通信量。
可以预期在所附权利要求的范围之内的其它实现。例如,虽然如本文中所描述的将计算机系统的主存储器碎片化,但是本文中所描述的碎片化技术和系统可以被应用于其它存储器。例如,根据进一步的示例实现,存储器可以是存储系统的存储装置存储器。作为另一个示例,根据进一步的示例实现,密码引擎136可以使用另一个基于分组的加密方案,该加密方案使用IV,例如,加密块链(CBC)加密方案或者密文反馈(CFB)加密方案。
虽然已关于有限数量的实施例对本发明进行描述,但是本领域技术人员,得益于本公开,将由此认识到许多修改和变型。本发明旨在所附权利要求覆盖落在本发明的真正精神和范围内的所有这样的修改和变型。
Claims (15)
1.一种方法,其包括:
接收用于对存储器的区域进行初始化的请求,其中,被存储在所述区域中的内容至少部分地基于存储的随机数值和密钥而被加密;并且
响应于所述请求,执行对所述存储器的基于密码的初始化,包括更改所述存储的随机数值来对所述存储器的所述区域进行初始化。
2.根据权利要求1所述的方法,其中,所述存储的随机数值包括计数器值,并且更改所述存储的随机数值包括递增所述计数器值。
3.根据权利要求1所述的方法,其中,所述区域与高速缓存行相关联,并且更改所述存储的随机数值包括改变与所述高速缓存行相关联的计数值。
4.根据权利要求1所述的方法,其中,所述区域与多个高速缓存行相关联,并且所述存储的随机数值是多个存储的随机数值中的一个,所述方法进一步包括:
更改所述多个存储的随机数值来对所述内容进行碎片化。
5.根据权利要求1所述的方法,其进一步包括:
在接收到所述请求之前,至少部分地基于所述存储的随机数值、所述密钥以及高速缓存行地址来对所述内容进行加密以便提供加密的数据。
6.一种装置,其包括:
第一存储器,其用于存储与多个高速缓存行相关联的初始化向量;
存储器控制器,其用于:
接收用于对第二存储器的区域进行碎片化的请求,所述区域与所述多个高速缓存行中的一组高速缓存行相关联;并且
改变与所述一组高速缓存行相关联的所述初始化向量以便对所述区域进行碎片化。
7.根据权利要求6所述的装置,其中,所述区域包括所述第二存储器的页。
8.根据权利要求6所述的装置,其中,所述第一存储器包括易失性存储器,并且所述存储器控制器将所述第一存储器的内容备份至非易失性存储器。
9.根据权利要求6所述的装置,其中,所述存储器控制器:
响应于与除所述一组高速缓存行之外的多个高速缓存行中的给定的高速缓存行相关联的读取请求,取回与所述给定的高速缓存行相关联的初始化向量;
从与所述给定的高速缓存行相关联的第二存储器中取回数据;并且
至少部分地基于与所述给定的高速缓存行相关联的初始化向量来对取回的数据进行解码。
10.根据权利要求6所述的装置,其中,所述存储器控制器进一步地至少部分地基于所述取回的数据的地址和密钥,对所述取回的数据进行解码。
11.根据权利要求6所述的装置,其中,所述存储器控制器进一步改变所述初始化向量以便指示零值高速缓存行。
12.根据权利要求6所述的装置,其中,所述存储器控制器响应于用于对所述区域进行碎片化的所述请求,使所述高速缓存行无效。
13.一种系统,其包括:
存储器,其用于将加密的数据存储在所述存储器中,所述加密的数据与至少部分地基于随机数值而被加密的内容相关联;
处理器,其用于提供与包含所述加密的数据的存储器的区域相关联的请求;以及
存储器控制器,其用于:
响应于包括读取请求的所述请求,使用所述随机数来对所述加密的数据进行解密以便提供所述内容;并且
响应于包括用于对所述区域进行初始化的请求的所述请求,改变所述随机数值。
14.根据权利要求13所述的系统,其中:
所述区域包括页;
所述页包括多个高速缓存行区域;
所述随机数值与所述多个高速缓存行区域中的给定的高速缓存行区域相关联;并且
所述加密的数据被存储在所述给定的高速缓存行区域中。
15.根据权利要求14所述的系统,其中,所述存储器控制器响应于用于对所述区域进行初始化的所述请求而改变与除所述给定的高速缓存行区域之外的所述一个或多个高速缓存行区域相关联的其它随机数值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/053320 WO2017058221A1 (en) | 2015-09-30 | 2015-09-30 | Cryptographic-based initialization of memory content |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107533514A true CN107533514A (zh) | 2018-01-02 |
Family
ID=58424316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580078981.4A Pending CN107533514A (zh) | 2015-09-30 | 2015-09-30 | 存储器内容的基于密码的初始化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10671546B2 (zh) |
EP (1) | EP3262515B1 (zh) |
CN (1) | CN107533514A (zh) |
WO (1) | WO2017058221A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020093290A1 (zh) * | 2018-11-07 | 2020-05-14 | 华为技术有限公司 | 一种存储控制器、文件处理方法、装置及系统 |
CN111506891A (zh) * | 2019-01-31 | 2020-08-07 | 金东贤 | 设置在可初始化的再生暗盒的认证用存储模块 |
WO2021102729A1 (zh) * | 2019-11-27 | 2021-06-03 | 深圳市大疆创新科技有限公司 | 内存访问方法、微处理器、客户端及计算机存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10585809B2 (en) * | 2016-04-01 | 2020-03-10 | Intel Corporation | Convolutional memory integrity |
KR20190075363A (ko) * | 2017-12-21 | 2019-07-01 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈 |
CN111566987B (zh) * | 2018-12-12 | 2023-05-02 | 深圳市汇顶科技股份有限公司 | 数据处理方法、电路、终端设备及存储介质 |
US10582000B1 (en) * | 2019-04-04 | 2020-03-03 | Cloudflare, Inc. | Using post-cache edge computing to re-populate nonce values in cached content |
US10817424B1 (en) | 2019-12-20 | 2020-10-27 | Cloudflare, Inc. | Using post-cache edge computing to re-populate dynamic content in cached content |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5915025A (en) * | 1996-01-17 | 1999-06-22 | Fuji Xerox Co., Ltd. | Data processing apparatus with software protecting functions |
WO2005036406A1 (de) * | 2003-09-30 | 2005-04-21 | Infineon Technologies Ag | Entschlüsselung bzw. verschlüsselung bei schreibzugriffen auf einen speicher |
US20120278564A1 (en) * | 2011-04-29 | 2012-11-01 | Seagate Technology Llc | Secure erasure of data from a non-volatile memory |
CN103026347A (zh) * | 2010-05-27 | 2013-04-03 | 思科技术公司 | 多核架构中的虚拟机内存划分 |
US20140247944A1 (en) * | 2009-12-04 | 2014-09-04 | Cryptography Research, Inc. | Cryptographic device with resistance to differential power analysis and other external monitoring attacks |
US20150002900A1 (en) * | 2013-06-28 | 2015-01-01 | Lexmark International, Inc. | Imaging Device Including Wear Leveling for Non-Volatile Memory and Secure Erase of Data |
US20150074426A1 (en) * | 2013-09-10 | 2015-03-12 | Sebastien A. Jean | Generating and Using an Enhanced Initialization Vector |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08249895A (ja) * | 1995-03-10 | 1996-09-27 | Nec Corp | 不輝発性半導体記憶装置 |
WO2003079196A2 (en) * | 2002-03-20 | 2003-09-25 | Research In Motion Limited | System and method of secure garbage collection on a mobile device |
US6931133B2 (en) * | 2002-09-03 | 2005-08-16 | Verisign, Inc. | Method and system of securely escrowing private keys in a public key infrastructure |
US7509684B2 (en) * | 2004-10-09 | 2009-03-24 | Microsoft Corporation | Strategies for sanitizing data items |
US8190917B2 (en) * | 2006-09-12 | 2012-05-29 | International Business Machines Corporation | System and method for securely saving and restoring a context of a secure program loader |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
US8892823B2 (en) | 2007-12-28 | 2014-11-18 | Emulex Corporation | Data bus efficiency via cache line usurpation |
US8812871B2 (en) * | 2010-05-27 | 2014-08-19 | Cisco Technology, Inc. | Method and apparatus for trusted execution in infrastructure as a service cloud environments |
US8478974B2 (en) | 2010-06-23 | 2013-07-02 | Assured Information Security, Inc. | Method and system for reducing an impact of malware during a booting sequence |
US20120079289A1 (en) | 2010-09-27 | 2012-03-29 | Skymedi Corporation | Secure erase system for a solid state non-volatile memory device |
US8625798B2 (en) * | 2011-01-10 | 2014-01-07 | Samsung Electronics Co., Ltd. | Method and apparatus for encrypting short data in a wireless communication system |
US20140068277A1 (en) | 2012-09-04 | 2014-03-06 | Markus T. Metzger | Secure Deletion of Data Stored in a Memory |
US9690953B2 (en) | 2013-03-14 | 2017-06-27 | Apple Inc. | Generating efficient reads for a system having non-volatile memory |
US9940286B2 (en) | 2013-03-14 | 2018-04-10 | Nvidia Corporation | PCIE traffic tracking hardware in a unified virtual memory system |
US20140281587A1 (en) * | 2013-03-14 | 2014-09-18 | Ologn Technologies Ag | Systems, methods and apparatuses for using a secure non-volatile storage with a computer processor |
EP2797003A1 (en) * | 2013-04-26 | 2014-10-29 | Giesecke & Devrient GmbH | Method for flash memory management of a secure element |
US9311493B2 (en) * | 2013-07-30 | 2016-04-12 | Battelle Memorial Institute | System for processing an encrypted instruction stream in hardware |
-
2015
- 2015-09-30 CN CN201580078981.4A patent/CN107533514A/zh active Pending
- 2015-09-30 WO PCT/US2015/053320 patent/WO2017058221A1/en active Application Filing
- 2015-09-30 EP EP15905603.5A patent/EP3262515B1/en active Active
- 2015-09-30 US US15/573,597 patent/US10671546B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5915025A (en) * | 1996-01-17 | 1999-06-22 | Fuji Xerox Co., Ltd. | Data processing apparatus with software protecting functions |
WO2005036406A1 (de) * | 2003-09-30 | 2005-04-21 | Infineon Technologies Ag | Entschlüsselung bzw. verschlüsselung bei schreibzugriffen auf einen speicher |
US20140247944A1 (en) * | 2009-12-04 | 2014-09-04 | Cryptography Research, Inc. | Cryptographic device with resistance to differential power analysis and other external monitoring attacks |
CN103026347A (zh) * | 2010-05-27 | 2013-04-03 | 思科技术公司 | 多核架构中的虚拟机内存划分 |
US20120278564A1 (en) * | 2011-04-29 | 2012-11-01 | Seagate Technology Llc | Secure erasure of data from a non-volatile memory |
US20150002900A1 (en) * | 2013-06-28 | 2015-01-01 | Lexmark International, Inc. | Imaging Device Including Wear Leveling for Non-Volatile Memory and Secure Erase of Data |
US20150074426A1 (en) * | 2013-09-10 | 2015-03-12 | Sebastien A. Jean | Generating and Using an Enhanced Initialization Vector |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020093290A1 (zh) * | 2018-11-07 | 2020-05-14 | 华为技术有限公司 | 一种存储控制器、文件处理方法、装置及系统 |
CN111512308A (zh) * | 2018-11-07 | 2020-08-07 | 华为技术有限公司 | 一种存储控制器、文件处理方法、装置及系统 |
CN111506891A (zh) * | 2019-01-31 | 2020-08-07 | 金东贤 | 设置在可初始化的再生暗盒的认证用存储模块 |
WO2021102729A1 (zh) * | 2019-11-27 | 2021-06-03 | 深圳市大疆创新科技有限公司 | 内存访问方法、微处理器、客户端及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017058221A1 (en) | 2017-04-06 |
US20180137062A1 (en) | 2018-05-17 |
EP3262515A1 (en) | 2018-01-03 |
EP3262515B1 (en) | 2019-08-07 |
EP3262515A4 (en) | 2018-05-23 |
US10671546B2 (en) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533514A (zh) | 存储器内容的基于密码的初始化 | |
US10691620B2 (en) | Encryption of executables in computational memory | |
CN105373486B (zh) | 计算系统中动态存储器地址的重新映射 | |
US20170046281A1 (en) | Address dependent data encryption | |
US9734357B2 (en) | Process authenticated memory page encryption | |
EP3355232B1 (en) | Input/output data encryption | |
CN101311913B (zh) | 高速缓冲存储器内的控制数据修改 | |
CN103383667B (zh) | 存储器保护电路、处理单元和存储器保护方法 | |
CN105339912B (zh) | 测量安全区域 | |
US20120246489A1 (en) | Encrypting and storing confidential data | |
CN107451072B (zh) | 具有即时加密器的计算系统及其操作方法 | |
CN105389265B (zh) | 当加密参数改变时在垃圾数据上生成零内容的方法和装置 | |
US10303621B1 (en) | Data protection through address modification | |
CN103778075A (zh) | 安全管理单元、包括它的主机控制器接口及其操作方法 | |
US9418220B1 (en) | Controlling access to memory using a controller that performs cryptographic functions | |
EP2990953B1 (en) | Periodic memory refresh in a secure computing system | |
JP2022512051A (ja) | メモリ完全性チェックのための完全性ツリー | |
US11783055B2 (en) | Secure application execution in a data processing system | |
US10970401B2 (en) | Secure asset management system | |
KR20180072723A (ko) | 메모리 액세스 명령 | |
KR102588733B1 (ko) | 온-더-플라이 인크립터를 갖는 집적회로, 그것을 포함하는 컴퓨팅 시스템 및 그것의 동작 방법 | |
Kurdziel et al. | Minimizing performance overhead in memory encryption | |
Balasubramonian | Memory Security | |
WO2015157842A1 (en) | Secured memory system and method therefor |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180102 |