CN103502960B - 用于加密存储器设备的方法和系统 - Google Patents
用于加密存储器设备的方法和系统 Download PDFInfo
- Publication number
- CN103502960B CN103502960B CN201280021201.9A CN201280021201A CN103502960B CN 103502960 B CN103502960 B CN 103502960B CN 201280021201 A CN201280021201 A CN 201280021201A CN 103502960 B CN103502960 B CN 103502960B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- encrypted
- memory devices
- memory position
- 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.)
- Active
Links
Classifications
-
- 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
-
- 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
-
- 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
-
- 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/80—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 storage media based on magnetic or optical technology, e.g. disks with sectors
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
用于带损耗均衡的存储器设备的加密的、包括编码于计算机存储器介质之上的计算机程序的方法、系统和装置。在一方面,方法包括访问存储器设备的地址映射,所述地址映射指向所述存储器设备的第一存储器位置和第二存储器位置,其中第一存储器位置存储将由所述存储器设备上的全盘加密操作来加密的数据;将第二存储器位置指定为经加密的而不需在第二存储器位置上执行加密操作;以及仅对所述存储器设备的第一存储器位置中存储的数据进行加密使得第一存储器位置和第二存储器位置的数据被指定为经盘加密的。
Description
相关申请的交叉引用
本申请要求2011年4月5日提交的美国专利申请第13/079889号的优先权权益,该申请的全部内容并入本申请。
背景
本说明书涉及加密。
全盘加密是将硬盘驱动器上的所有数据进行加密的技术。对大多数文件系统,将数据从硬盘驱动器删除并非真地将数据从硬盘驱动器消除。相反,数据所占据的存储器位置被标记为未使用,而实际的数据仍保持。因此,全盘加密技术将硬盘驱动器使用和未使用的部分都进行加密以保证没有数据未被加密。
将数据写到硬盘驱动器是对于物理存储介质相对非破坏性的过程,即数据可以写到硬盘驱动器的存储器位置非常多次而不会造成存储介质的降级。然而,一些类型的计算机存储设备就硬盘驱动器就读和写操作而言具有相对有限的生命期。固态驱动器和USB闪盘驱动器是其中存储器单元最终因重复的编程和擦除而耗尽的可擦除计算机存储设备的示例。为了扩展这样的存储器设备的总体生命,存储器设备的可定址区诸如块或页可以通过损耗均衡而以相似的速率编程和/或擦除。损耗均衡保证了存储器设备的存储器单元均衡地损耗,例如对存储器单元的编程和/或擦除在存储器设备的生命内对所有存储器单元以相似的速率发生。
因为全盘加密将存储器设备的使用和未使用部分都进行加密以保证没有数据未被加密,全盘加密过早地老化固态驱动器并过早地展开用于损耗均衡操作的损耗均衡表。这会不必要地缩短存储设备的生命并使读和写访问次数降级。
概要
一般而言,本说明书中所描述的主题的一个发明性方面可以通过方法来实现,该方法包括以下动作:由计算机访问存储器设备的地址映射,所述地址映射指向所述存储器设备的第一存储器位置和第二存储器位置,其中第一存储器位置存储将由所述存储器设备上的全盘加密操作来加密的数据;由所述计算机将第二存储器位置指定为经加密的而不需在第二存储器位置上执行加密操作;以及由所述计算机仅将所述存储器设备的第一存储器位置中存储的数据进行加密使得第一存储器位置和第二存储器位置的数据被指定为经盘加密。这个方面的其它各实施例包括被配置为执行编码于计算机存储器设备之上的所述方法的动作的相对应的系统、装置和计算机程序。
本说明书中所描述的主题的特定实施例可以实现为实施以下优点的一个或多个。通过不对空存储器位置进行加密避免了对所述位置的编程,由此减少了所述位置上读和写周期的数目并进一步避免了损耗表的不必要的展开。这还会导致对于其中每个位置由全盘加密进行了编程的固态存储器设备的读和写次数的性能提升,因为损耗表没有在复杂性上不必要地展开。
本说明书中所描述的主题的一个或多个实施例的细节在附图和以下描述中阐明。通过描述、附图和权利要求,所述主题的其他特征、方面和优点将变得显而易见。
附图简述
图1是逻辑存储器地址到固态驱动器中的物理存储器地址的示例映射的框图。
图2是将实现损耗均衡的存储器设备进行加密的示例的框图。
图3是将带损耗均衡的存储器设备上的数据进行加密的示例过程的流程图。
图4是将带损耗均衡的存储器设备上的数据进行加密的另一示例过程的流程图。
图5是将带损耗均衡的存储器设备上的数据进行解密的示例过程的流程图。
图6是可以用来实现参考以上图1-5所描述的过程和系统的示例计算机系统的框图。
各个附图中相同的附图标记和指派指示相同的元素。
详细描述
图1是逻辑存储器地址到固态驱动器存储器设备130中的物理存储器地址的示例映射的框图。存储器设备130由固态存储器设备(例如闪盘)组成。逻辑到物理的映射102,诸如逻辑阵列,将逻辑存储器位置映射到存储器设备130中的物理地址。例如,操作系统可以被配置为访问硬盘驱动器的逻辑存储器位置,例如,逻辑位置被定址为一组连续的逻辑块,诸如取决于所使用的定址方案的512字节或4096字节的数据块。然而,由于存储器设备130的物理晶体管阵列架构,可以是例如NOR或NAND闪存的存储器设备130实现了不同的定址方案。因此,逻辑到物理的映射102将硬盘立面(facade)110的逻辑地址映射到存储器设备130的物理地址。
在许多硬盘驱动器架构中,数据在被存储时可以重写到同一位置。由于相比较于存储器设备130的晶体管硬盘驱动器的磁性介质可以承受许多读和写周期而无损伤,使用了损耗均衡结合逻辑到物理的映射102来遍及存储器设备130中的位置地均匀地分布编程和擦除操作。一般而言,损耗均衡是通过在存储器设备内的物理存储器位置中均匀地分布写操作来扩展固态存储器设备的生命的任何技术。
一个简单的损耗均衡操作反映在逻辑到物理的映射102中。例如,假定存储器设备存储三个文件,由相应的数据105、110和115表示。为了便于说明,数据存储在由逻辑地址和物理地址定义的连续位置中。第一文件的数据105存储在第一组连续逻辑存储器位置中,其对应于存储器设备130中的第一组连续物理存储器位置。第二和第三文件的数据110和115存储在连续逻辑存储器位置中。然而第一文件的数据110存储在存储器设备130的第一组连续物理存储器位置中,且第二文件的数据115存储在存储器设备130的第二组连续物理存储器位置中。
使用了指针120来指向存储器设备130中将用来在写操作过程中存储数据的下一位置(例如,存储器位置、存储器块)。指针120和映射102由与存储器设备130相关联的存储器控制逻辑112来控制。二者都部分地用来完成损耗均衡操作。
假定第二文件的数据是由用户更新的,且第二文件的数据115的逻辑存储器位置没有变更。然而,用来存储该数据115的物理存储器位置变更了。例如,假定文件的大小是大致20兆字节。更新过的数据115被写到存储器设备130中,从存储器设备130的上一图中的指针120的位置处开始。在写操作结束时,指针120相对于所述指针的之前位置已前进了用来存储数据115的20MB所必须的数量,且之前存储在由虚框116所指示的存储器位置中的修改过的数据115现在保存在虚框116的末尾和指针120之间的范围中的位置中。
另一普遍使用的过程和计算机设备是全盘加密。全盘加密将硬盘驱动器的所有存储器位置进行加密。在一些全盘加密技术中,主引导记录保持未加密;然而一些其它的全盘加密技术也可以将主引导记录加密。在实际的硬盘驱动器中,当文件被删除时,实际的底层数据仍存储在硬盘驱动器上的存储器位置中。因此,使用全盘加密来禁止对存储在还未擦除的文件中的数据,以及已删除的文件的数据的部分和存储在硬盘驱动器上的其它数据两者的访问。
因为全盘加密将整个硬盘进行加密,所以使用全盘加密导致由逻辑地址定义的每个位置被写入经加密的数据。这一逻辑硬盘驱动器的整个加密140由此导致对存储器设备130的几乎全部存储器位置的映射和使用。这会显著地增加存储器设备130中的每个存储器位置经历的编程周期的数目,由此过早地老化存储器设备130和/或使逻辑到物理的映射102前进到可以使关于读和写操作次数的性能降级的高级状态。
在一些实现中,存储器设备130可以实现“刷新(flush)”操作,该刷新操作在数据存储在存储器设备中的其它位置时擦除原始位置中的残留数据。例如,如由虚框116所指示地原始存储数据115的存储器位置在数据115被保存到新位置之后被擦除。因此,在数据115被保存之后由虚框116所指示的存储器位置是空的(例如,所有的值是逻辑0或所有的值是逻辑1)。因此,不存在将其中没有存储数据的设备130的实际物理存储器位置的数据进行加密的实践需求。因此,设备逻辑112可以实现减少在全盘加密过程期间存储器设备130上的编程操作数量的损耗均衡技术。
在其它实现中,存储器设备130可以不实现刷新操作。相应地,残留数据可以保持在一些存储器位置中。然而,由于这些物理存储器位置不再逻辑地映射为其中存储数据的逻辑位置,因此损害的风险是相对小的。因此,也可以跳过对设备130中存储残留数据的实际物理存储器位置的数据进行加密。再一次,设备逻辑112可以实现减少在全盘加密过程中存储器设备130上的编程操作数量的损耗均衡技术。
图2是对实现损耗均衡的存储器设备进行加密的示例的框图。如前所述,全盘加密对整个硬盘加密以保护硬盘上的所有数据。然而不同于硬盘,存储器设备不在用于存储数据105、110和115的位置之外的位置中存储数据(或者替换性地,存储在这些其它位置中的数据没有逻辑地映射到存储数据的逻辑位置。)。因此,存储器设备130只需要将数据105、110和115加密以便基本达到全盘加密的目标。
参考图3描述了在存储器设备130上加密数据105、110和115的一个示例过程,图3是在带损耗均衡的存储器设备上加密数据的示例过程300的流程图。所述过程由存储在计算机设备上的软件所实现。图3的一个限制示例,所述过程在引导前和引导后环境中都会发生。如此处使用的,引导前环境是在引导主操作系统之前计算机设备上的环境。
过程300实例化引导前环境(302)。例如,运行在计算机上的程序可以导致操作系统重新引导并设置导致计算机在引导前环境中执行以下步骤中的几个的标记。
过程300生成了指示对有解密初始状态的卷进行加密的映射(304)。例如,过程300可以访问设备130的逻辑到物理的映射102并将所有逻辑位置及由此的所有物理位置指定为未加密的。
过程300标识了空存储器位置(306)。空存储器位置是可用来存储数据的位置。例如,过程300可以将被指示为未分配的存储器位置的盘立面110表示的逻辑位置标识为空存储器位置。这些逻辑位置对应于存储器设备130中被指示为可用来存储数据的物理位置(即,空位置或其中在数据写到另一位置之后仍存储着数据的位置)。
过程300将空存储器位置指定为加密的(310)。例如,被指定为空的逻辑位置也被指定为经加密的,如图2的盘立面110表示中的“UE->E”操作所指示的。分配可以由每个未使用的扇区详述,或者在某些实现中,可以由覆盖未使用的块的范围详述未使用的空间的连续块。无需实际加密操作的执行而将位置指定为经加密的。
因为未使用的范围没有数据存储在它们所对应的存储器位置中,所以很可能主机操作系统不会读取它们,或者存储在它们上面的数据没有值(例如,是空位置或可用于存储的位置)。通过仅指示所述范围是加密的,主机操作系统加密过程不对这些位置加密。这进而防止了损耗均衡表的增长并防止了对存储器设备130中的实际物理存储器位置的不必要的编程。
过程300从引导前环境引导到主机操作系统环境(312)。例如,在所述过程完成了通过将其指定为经加密的来标识空存储器位置之后,过程300导致计算机设备引导进入主机操作系统。
过程300对没有指定为经加密的存储器位置进行加密(314)。例如,运行在主机操作系统上的加密过程访问指示空存储器位置的加密的映射。因此,这些位置没有被加密。相反,仅有的被加密的位置是被指示为存储实际数据的位置。在图2的示例中,存储实际数据的位置是对应于数据105、110和115的存储的逻辑存储器位置。在加密过程期间,将数据105、110和115加密以生成经加密的数据105’、110’和115’。
加密的数据从指针120的位置开始写入。例如,假定存储器设备130是100GB的固态驱动器,且指针指向大致50GB位置处的物理存储器位置。还假定数据105、110和115总共25GB。作为全盘加密的结果,指针将前进到大概75GB的位置(即,前进了对应于加密的数据105'、110'和115'的大小的25GB)。
以上示例用三个连续数据块描述。在实际中,指针120可以一次或多次循环通过存储器设备130的所有存储器位置,从而导致存储器设备130的物理位置内的部分碎片化的文件。不管怎样,当文件在存储器设备130内碎片化时,应用创建将空存储器位置指定为经加密的映射的相同过程。在这样的情形中,加密的数据可以不形成如图2所示的连续块,但损耗均衡表的展开和存储器设备130中的物理存储器位置上的不必要的读取和写入操作仍会减少。
图4是在带损耗均衡的存储器设备上加密数据的另一示例过程400的流程图。过程400与过程300的不同之处在于,过程400可以但不需要在引导前和引导后环境之间分区。例如,假定实现过程400的计算机设备配备有固态驱动器。尽管操作系统和程序可以实现依赖于盘立面110和逻辑到物理的映射102的定址过程,数据也可以存储在指示在全盘加密操作的过程期间空存储器位置可以自动地被指定为加密的计算机中。
过程400访问指向存储器设备的第一和第二位置的存储器映射(402)。第一存储器位置存储将由存储器设备上的全盘加密操作加密的数据,例如,第一存储器位置可以对应于逻辑存储器位置,以及由此的用来存储数据105、110和115的物理存储器位置。第二存储器位置对应于可用于写入操作的存储器位置,例如存储器设备130中的空存储器位置或存储器设备130中存储残留数据的位置。
过程400将第二存储器位置指定为经加密的(404)。例如,被指派为空的逻辑位置也被指定为经加密的,如盘立面110表示中的“UE->E”操作所指示的。指定不涉及实际加密操作的使用。
过程400仅将存储器设备的第一存储器位置中存储的数据进行加密(406)。通过这样做,第一存储器位置和第二存储器位置的数据被指定为经盘加密的(disk encrypted)。
过程400将整个存储器设备指定为经加密的(408)。例如,过程400将整个存储器设备130指定为经加密的,由此完成全盘加密操作。
然后,可以从存储器设备130中读数据,且随机存取存储器中的解密是常规操作的一部分。同样,数据在写入到存储器设备130之前可以在随机存取存储器中加密。
图5是在带损耗均衡的存储器设备上解密数据的示例过程500的流程图。过程500有与过程300和400相同的目标,即减少损耗均衡表的展开并减少存储器设备130的物理存储器位置上的不必要的编程操作的数目。
过程500访问指向存储器设备的第一和第二位置的存储器映射(502)。第一存储器位置存储将由存储器设备上的全盘解密操作进行解密的数据,例如,第一存储器位置可以对应于逻辑存储器位置,以及由此的用来存储图2的经加密的数据105'、110'和115'的物理存储器位置。第二存储器位置对应于可用于写入操作的存储器位置,例如存储器设备130中的空存储器位置。
过程500将第二存储器位置指定为未加密的(504)。例如,被指定为空的逻辑位置也被指定为经加密的。
过程500仅解密第一存储器位置中的数据(506),然后将整个存储器设备指定为解密的(508)。
本说明书中所描述的主题和操作的各实施例可以以数字电子电路、或以包括本说明书中公开的结构和其结构等效方案的计算机软件、固件或硬件、或以它们中的一个或多个的组合来实现。本说明书中所描述的主题的各实施例可以实现为一个或多个计算机程序,即一个或多个计算机程序指令模块,编码于计算机存储介质之上用于由数据处理装置执行或控制数据处理装置的操作。
计算机存储介质可以是或被包括于,计算机可读存储设备、计算机可读存储基座、随机或顺序存取存储器阵列或设备、或它们中的一个或多个的组合。计算机存储介质还可以是或被包括于,一个或多个独立的物理组件或介质(例如,多个CD、盘或其它存储设备)。
本说明书中所描述的各操作可以实现为由数据处理装置在存储在一个或多个计算机可读存储设备上或从其它源接收的数据上执行的操作。
术语“数据处理装置”包含用于处理数据的各种装置、设备和机器,作为示例包括可编程处理器、计算机、片上系统、或前述多个、或前述的组合。装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置还可以包括为所述计算机程序创造执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可以实施各种不同的计算模型基础架构,诸如web服务、分布式计算和网格(gird)计算基础架构。
计算机程序(也称为程序、软件、软件应用、脚本或代码)能以任何形式的编程语言,包括编译或解释语言、声明性或过程化语言撰写,并能以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或其它适于在计算环境中使用的单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以保存在保持其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、在专用于所述程序的单个文件中、或者多个协调的文件中(例如存储一个或多个模块、子程序或代码部分的文件)。计算机程序可被部署为在一个计算机或位于一个站上或跨多个站分布并由通信网络互连的多个计算机上执行。
本说明书中所描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程处理器执行以通过在输入数据上操作和生成输出来执行动作。过程和逻辑流还可以通过专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以被实现为专用逻辑线路。
适于计算机程序的执行的处理器包括,作为示例,通用和专用微处理器二者以及任何种类的数字计算机的任意一个或多个处理器。一般而言,处理器接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的基本元素是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还会包括一个或多个大容量存储设备例如,磁性、磁光盘、或光盘,或被操作地耦合以接收来自该一个或多个大容量存储设备的数据或将数据传送到该一个或多个大容量存储设备以供存储数据,或两者。然而计算机不需要有这样的设备。而且,计算机可以嵌入在另一设备中,例如,仅举几个例子,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或便携存储设备(例如通用串行总线(USB)闪盘)。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括,作为示例,半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或被合并到专用逻辑电路中。
图6中示出了一个示例计算机系统,图6是可以用来实现参考以上图1-5所描述的过程和系统的示例计算机系统600的框图。系统600包括处理器610、存储器620、存储设备630和输入/输出设备640。组件610、620、630和640的每一个可以例如使用系统总线650互连。处理器610能够处理用于在系统600内执行的指令。处理器610能够处理存储在存储器620中或存储设备630之上的指令。
存储器620存储系统600内的信息。在一个实现中,存储器620是计算机可读介质。在一个实现中,存储器620是易失性存储器单元。在另一实现中,存储器620是非易失性存储器单元。
存储设备630能够为系统600提供大容量存储。在一个实现中,存储设备630是计算机可读介质。在各种不同的实现中,存储设备630可以,例如包括硬盘设备、光盘设备、固态驱动器和/或其它大容量存储设备。
输入/输出设备640为系统600提供输入/输出操作。在一个实现中,输入/输出设备640可以包括一个或多个网络接口设备例如以太网卡、串行通信设备例如RS-232口和/或无线接口设备例如802.11卡。在另一实现中,输入/输出设备可以包括被配置为接收输入数据并向其它输入/输出设备例如键盘、打印机和显示器设备660发送输出数据的驱动器设备。
尽管本说明书包含许多具体实现细节,这些不应被解释为任何发明或任何将被声明的内容的范围的限制,而是特定于特定发明的特定实施例的特征的描述。本说明书中在独立实施例的上下文中所描述的某些特征也可以组合在单个实施例中实现。相反,在单个实施例的上下文中所描述的各种特征也可以在多个实施例中独立地或在任何合适的子组合中实现。而且,尽管以上可以将特征描述为在某些组合中操作或甚至初始声明为如此,来自所声明的组合的一个或多个特征也可以在一些情况下从组合中删去,且所声明的组合可以被导向子组合或子组合的变体。
类似地,尽管各操作在图中以特定次序描绘,这不应被理解为要求以所示的特定次序或以顺序次序来执行这样的操作、或执行所有示出的操作以达到所要求的结果。在某些情况下,多任务和并行处理可以是有利的。而且,以上描述的各实施例中各种系统组件的独立不应被理解为在所有实施例中要求这样的独立,且应理解所描述的程序组件和系统可以基本整合进单个软件产品或封装进多个软件产品。
因此,描述了所述主题的特定实施例。其它实施例也在以下权利要求的范围之内。在一些情况中,权利要求中所述的动作可以以不同的次序执行而仍达到所需要的结果。另外,附图中描绘的过程不必要求所示的特定次序、或顺序次序来达到所需要的结果。在某些实现中,多任务和并行处理可以是有利的。
Claims (17)
1.一种用于加密存储器设备的方法,所述方法包括:
由计算机访问存储器设备的地址映射,所述地址映射指向所述存储器设备的第一存储器位置和第二存储器位置,其中所述第一存储器位置存储将由所述存储器设备上的全盘加密操作来加密的数据;
由所述计算机将所述第二存储器位置指定为经加密的而无需在所述第二存储器位置上执行加密操作;以及
由所述计算机仅对所述存储器设备的所述第一存储器位置中存储的数据加密使得所述第一存储器位置和所述第二存储器位置的数据被指定为经盘加密的。
2.如权利要求1所述的方法,其特征在于,将所述第二存储器位置指定为经加密的包括:
确定一组或多组连续的第二存储器位置;
对每一组连续的第二存储器位置:
确定相对应的位置范围,所述相对应的位置范围指定开始逻辑地址和结束逻辑地址;以及
将所述相对应的位置范围指定为经加密的。
3.如权利要求1所述的方法,其特征在于,所述地址映射通过盘驱动器的逻辑地址指向所述存储器设备的第一存储器位置和第二存储器位置。
4.如权利要求1所述的方法,其特征在于,所述存储器设备是固态存储器设备,且包括物理地址映射,其中所述物理地址映射将逻辑地址映射到物理地址。
5.如权利要求4所述的方法,其特征在于,所述固态存储器设备是闪存设备。
6.如权利要求1-5中任一项所述的方法,其特征在于,还包括:
由所述计算机在加密所述数据之后访问存储器设备的逻辑地址映射;
由所述计算机将所述第二存储器位置指定为解密的;以及
由所述计算机仅对所述存储器设备的所述第一存储器位置中存储的数据解密使得所述第一存储器位置和所述第二存储器位置的数据被指定为解密的。
7.如权利要求6所述的方法,其特征在于:
将所述第二存储器位置指定为经加密的包括从引导前环境将所述第二存储器位置指定为经加密的;以及
仅对所述存储器设备的所述第一存储器位置中存储的数据加密包括从主机操作系统环境中仅对所述存储器设备的所述第一存储器位置中存储的数据加密。
8.如权利要求6所述的方法,其特征在于:
访问所述地址映射包括访问所述存储器设备的逻辑地址映射,所述逻辑地址映射通过逻辑地址指向所述存储器设备的第一存储器位置和第二存储器位置,且其中所述第一和第二存储器位置相对应于由映射到映射表中的逻辑地址的物理地址所定址的物理存储器位置;以及
将所述第二存储器位置指定为经加密的包括将第二存储器位置对应的逻辑地址所在的位置指定为经加密的。
9.如权利要求6所述的方法,其特征在于,所述第二存储器位置包括空存储器位置。
10.一种用于加密存储器设备的系统,所述系统包括:
用于访问所述存储器设备的地址映射的装置,所述地址映射指向所述存储器设备的第一存储器位置和第二存储器位置,其中所述第一存储器位置存储将由所述存储器设备上的全盘加密操作来加密的数据;
用于将所述第二存储器位置指定为经加密的而无需在所述第二存储器位置上执行加密操作的装置;以及
用于仅对所述存储器设备的所述第一存储器位置中存储的数据加密使得所述第一存储器位置和所述第二存储器位置的数据被指定为经盘加密的装置。
11.如权利要求10所述的系统,其特征在于,所述用于将所述第二存储器位置指定为经加密的而无需在所述第二存储器位置上执行加密操作的装置包括:
用于确定一组或多组连续的第二存储器位置的装置;
对每一组连续的第二存储器位置:
用于确定相对应的位置范围的装置,所述相对应的位置范围指定开始逻辑地址和结束逻辑地址;以及
用于将所述相对应的位置范围指定为经加密的装置。
12.如权利要求10所述的系统,其特征在于,所述地址映射通过盘驱动器的逻辑地址指向所述存储器设备的第一存储器位置和第二存储器位置。
13.如权利要求10所述的系统,其特征在于,所述存储器设备是固态存储器设备,且包括物理地址映射,其中所述物理地址映射将逻辑地址映射到物理地址。
14.如权利要求13所述的系统,其特征在于,所述固态存储器设备是闪存设备。
15.如权利要求10-14中任何一项所述的系统,还包括:
用于在加密所述数据之后访问存储器设备的逻辑地址映射的装置;
用于将所述第二存储器位置指定为解密的装置;以及
用于仅对所述存储器设备的所述第一存储器位置中存储的数据解密使得所述第一存储器位置和所述第二存储器位置的数据被指定为解密的装置。
16.如权利要求15所述的系统,其特征在于:
所述用于将所述第二存储器位置指定为经加密的装置包括用于从引导前环境将所述第二存储器位置指定为经加密的装置;以及
所述用于仅对所述存储器设备的所述第一存储器位置中存储的数据加密的装置包括用于从主机操作系统环境中仅对所述存储器设备的所述第一存储器位置中存储的数据加密的装置。
17.如权利要求15所述的系统,其特征在于:
所述用于访问所述地址映射的装置包括用于访问所述存储器设备的逻辑地址映射的装置,所述逻辑地址映射通过逻辑地址指向所述存储器设备的第一存储器位置和第二存储器位置,且其中所述第一和第二存储器位置对应于由映射到映射表中的逻辑地址的物理地址所定址的物理存储器位置;以及
所述用于将所述第二存储器位置指定为经加密的装置包括用于将第二存储器位置对应的逻辑地址所在的位置指定为经加密的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/079,889 US8495386B2 (en) | 2011-04-05 | 2011-04-05 | Encryption of memory device with wear leveling |
US13/079,889 | 2011-04-05 | ||
PCT/US2012/032330 WO2012138865A1 (en) | 2011-04-05 | 2012-04-05 | Encryption of memory device with wear leveling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103502960A CN103502960A (zh) | 2014-01-08 |
CN103502960B true CN103502960B (zh) | 2017-02-15 |
Family
ID=46025916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280021201.9A Active CN103502960B (zh) | 2011-04-05 | 2012-04-05 | 用于加密存储器设备的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8495386B2 (zh) |
EP (1) | EP2695067B1 (zh) |
JP (1) | JP5721901B2 (zh) |
KR (1) | KR101502718B1 (zh) |
CN (1) | CN103502960B (zh) |
WO (1) | WO2012138865A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862902B2 (en) * | 2011-04-29 | 2014-10-14 | Seagate Technology Llc | Cascaded data encryption dependent on attributes of physical memory |
CN103870770A (zh) * | 2014-02-20 | 2014-06-18 | 北京深思数盾科技有限公司 | 一种对磁盘进行保护的方法及系统 |
US8990589B1 (en) | 2014-09-18 | 2015-03-24 | Kaspersky Lab Zao | System and method for robust full-drive encryption |
US10296354B1 (en) * | 2015-01-21 | 2019-05-21 | Pure Storage, Inc. | Optimized boot operations within a flash storage array |
US10162537B2 (en) * | 2015-09-10 | 2018-12-25 | Samsung Electronics Co., Ltd. | Methods and systems to detect silent corruption of data |
US11036651B2 (en) | 2018-06-29 | 2021-06-15 | Micron Technology, Inc. | Host side caching security for flash memory |
CN112597071B (zh) * | 2020-12-09 | 2024-03-26 | 北京地平线机器人技术研发有限公司 | 数据存储方法、获取方法、装置、电子设备以及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1316087A (zh) * | 1999-04-27 | 2001-10-03 | 松下电器产业株式会社 | 半导体存储卡和数据读取装置 |
CN1720590A (zh) * | 2002-10-28 | 2006-01-11 | 桑迪士克股份有限公司 | 非易失性存储系统中的自动磨损平衡 |
CN101398790A (zh) * | 2007-09-30 | 2009-04-01 | 联想(新加坡)私人有限公司 | 以全盘加密整合外部nvram |
CN101410850A (zh) * | 2006-04-18 | 2009-04-15 | 国际商业机器公司 | 加密存储系统中的数据 |
US8266449B2 (en) * | 2009-03-31 | 2012-09-11 | Lenovo (Singapore) Pte. Ltd. | Security for storage devices |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073142A (en) | 1997-06-23 | 2000-06-06 | Park City Group | Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments |
US5987610A (en) | 1998-02-12 | 1999-11-16 | Ameritech Corporation | Computer virus screening methods and systems |
CN1312593C (zh) * | 1999-09-01 | 2007-04-25 | 松下电器产业株式会社 | 分布系统、半导体存储卡、接收装置、计算机可读记录介质和接收方法 |
US6460050B1 (en) | 1999-12-22 | 2002-10-01 | Mark Raymond Pace | Distributed content identification system |
US6901519B1 (en) | 2000-06-22 | 2005-05-31 | Infobahn, Inc. | E-mail virus protection system and method |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
JP4074057B2 (ja) * | 2000-12-28 | 2008-04-09 | 株式会社東芝 | 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法 |
US7036020B2 (en) * | 2001-07-25 | 2006-04-25 | Antique Books, Inc | Methods and systems for promoting security in a computer system employing attached storage devices |
GB2385951A (en) * | 2001-09-21 | 2003-09-03 | Sun Microsystems Inc | Data encryption and decryption |
US7660959B2 (en) * | 2006-09-28 | 2010-02-09 | International Business Machines Corporation | Managing encryption for volumes in storage pools |
JP4829979B2 (ja) * | 2007-01-24 | 2011-12-07 | ハミングヘッズ株式会社 | 記憶媒体上のデータ変換方法、装置およびプログラム |
WO2008149458A1 (ja) * | 2007-06-08 | 2008-12-11 | Fujitsu Limited | 暗号化装置、暗号化方法および暗号化プログラム |
JP2009015357A (ja) * | 2007-06-29 | 2009-01-22 | Toshiba Corp | ディスク制御プログラム、ディスク制御装置、及びディスク制御方法 |
JP2009151401A (ja) * | 2007-12-19 | 2009-07-09 | Hitachi Ltd | 暗号機能を有するストレージ装置におけるボリューム管理方法 |
US8176295B2 (en) * | 2009-04-20 | 2012-05-08 | Imation Corp. | Logical-to-physical address translation for a removable data storage device |
US8281154B2 (en) * | 2009-07-23 | 2012-10-02 | International Business Machines Corporation | Encrypting data in volatile memory |
-
2011
- 2011-04-05 US US13/079,889 patent/US8495386B2/en active Active
-
2012
- 2012-04-05 JP JP2014503983A patent/JP5721901B2/ja active Active
- 2012-04-05 WO PCT/US2012/032330 patent/WO2012138865A1/en active Application Filing
- 2012-04-05 EP EP12718485.1A patent/EP2695067B1/en active Active
- 2012-04-05 KR KR1020137028885A patent/KR101502718B1/ko active IP Right Grant
- 2012-04-05 CN CN201280021201.9A patent/CN103502960B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1316087A (zh) * | 1999-04-27 | 2001-10-03 | 松下电器产业株式会社 | 半导体存储卡和数据读取装置 |
CN1720590A (zh) * | 2002-10-28 | 2006-01-11 | 桑迪士克股份有限公司 | 非易失性存储系统中的自动磨损平衡 |
CN101410850A (zh) * | 2006-04-18 | 2009-04-15 | 国际商业机器公司 | 加密存储系统中的数据 |
CN101398790A (zh) * | 2007-09-30 | 2009-04-01 | 联想(新加坡)私人有限公司 | 以全盘加密整合外部nvram |
US8266449B2 (en) * | 2009-03-31 | 2012-09-11 | Lenovo (Singapore) Pte. Ltd. | Security for storage devices |
Also Published As
Publication number | Publication date |
---|---|
WO2012138865A1 (en) | 2012-10-11 |
EP2695067A1 (en) | 2014-02-12 |
JP5721901B2 (ja) | 2015-05-20 |
EP2695067B1 (en) | 2017-09-27 |
CN103502960A (zh) | 2014-01-08 |
JP2014516438A (ja) | 2014-07-10 |
KR101502718B1 (ko) | 2015-03-13 |
US20120260101A1 (en) | 2012-10-11 |
US8495386B2 (en) | 2013-07-23 |
KR20140033362A (ko) | 2014-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103502960B (zh) | 用于加密存储器设备的方法和系统 | |
US9842030B2 (en) | Data storage device and flash memory control method | |
CN111090388B (zh) | 使用主机存储器缓冲器的数据存储设备及其操作方法 | |
KR101624007B1 (ko) | 비휘발성 메모리를 갖는 시스템에 대한 효율적인 버퍼링 | |
CN103999038B (zh) | 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备 | |
US9396107B2 (en) | Memory system having memory controller with cache memory and NVRAM and method of operating same | |
CN103677666B (zh) | 处理连续拍摄图像数据的装置和方法 | |
KR101556870B1 (ko) | 솔리드 스테이트 드라이브 내의 메모리 장치로의 논리 주소의 적응적 매핑 | |
US20090164696A1 (en) | Physical block addressing of electronic memory devices | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
US7949851B2 (en) | Translation management of logical block addresses and physical block addresses | |
CN105739915A (zh) | 存储系统中执行的条带重建方法和存储系统 | |
US9928166B2 (en) | Detecting hot spots through flash memory management table snapshots | |
CN102792381B (zh) | 用于多电平存储器单元(mlc)快闪存储器的防数据破坏的保护 | |
CN104813408A (zh) | 跟踪对非易失性存储器的区域的读访问 | |
CN104011689B (zh) | 非易失性存储器损耗管理 | |
CN103635968A (zh) | 包含存储器系统控制器的设备和相关方法 | |
CN106681652B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TW201234892A (en) | Apparatus and methods for recordation of device history across multiple software emulations | |
CN101283335A (zh) | 闪存管理 | |
TW201730741A (zh) | 資料儲存裝置及其操作方法 | |
CN110347330A (zh) | 存储器系统及其操作方法 | |
CN110534151B (zh) | 实现写入前擦除的方法、装置、计算机设备及存储介质 | |
US20170004071A1 (en) | Bidirectional counter in a flash memory | |
KR20170108334A (ko) | 메모리 시스템 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: McAfee limited liability company Address before: American California Patentee before: Mcafee, Inc. |