CN108496159A - 数据密码引擎 - Google Patents

数据密码引擎 Download PDF

Info

Publication number
CN108496159A
CN108496159A CN201680079717.7A CN201680079717A CN108496159A CN 108496159 A CN108496159 A CN 108496159A CN 201680079717 A CN201680079717 A CN 201680079717A CN 108496159 A CN108496159 A CN 108496159A
Authority
CN
China
Prior art keywords
data
resource
memory
access
cipher engine
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
CN201680079717.7A
Other languages
English (en)
Inventor
T·马切塞
C·佩罗恩
D·拉恩梅达利亚
W·斯泰勒
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN108496159A publication Critical patent/CN108496159A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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
    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

示例包括包含处理资源和存储器资源的系统。示例包括与处理资源和存储器资源成列布置的密码引擎。密码引擎要在由处理资源对存储器资源的读取访问期间选择性地解密数据。

Description

数据密码引擎
背景技术
对于诸如个人计算机、便携式计算设备、服务器等的系统,可以为不同目的实现各种类型的存储器资源。在存储器资源中,可以加密敏感数据以促进敏感数据的安全性。
附图说明
图1是可以利用本公开的示例系统的框图。
图2是可以利用本公开的示例系统的框图。
图3是示例系统的一些组件的框图。
图4是图示可以由示例系统执行的示例操作序列的流程图。
图5是图示可以由示例系统执行的示例操作序列的流程图。
图6是图示可以由示例系统执行的示例操作序列的流程图。
图7是图示可以由示例系统执行的示例操作序列的流程图。
图8是图示示例系统的一些组件的示例操作的框图。
图9是图示示例系统的一些组件的示例操作的框图。
遍及附图,相同的附图标记指定相似但不一定相同的元件。此外,附图提供了与描述一致的示例和/或实现;然而,描述不限于附图中提供的示例和/或实现。
具体实施方式
示例计算系统可以包括至少一个处理资源、存储器资源、以及连接在处理资源和存储器资源之间的密码引擎。在这样的示例中,密码引擎可以被描述为与处理资源和存储器资源“成列(in-line)”。如本文使用的计算系统可以包括例如个人计算机、便携式计算设备(例如,膝上型电脑、平板计算机、智能电话)、服务器、服务器的刀片、服务器的处理节点、片上系统(SOC)计算设备、SOC设备的处理节点、智能设备、和/或其他这样的计算设备/系统。如本文所使用的,计算系统可以简称为系统。
在一些示例系统中,密码引擎可以与处理资源和存储器资源成列布置,使得在处理资源和存储器资源之间传送的数据通过密码引擎并且可以由密码引擎对其操作。例如,密码引擎可以在由处理资源对存储器资源的读取访问期间选择性地解密数据。作为另一示例,密码引擎可以在由处理资源对存储器资源的写入访问期间选择性地加密数据。如将理解的,选择性加密和解密是指密码引擎加密/解密一些数据同时不加密/解密其他数据。因此,在一些示例中,系统确定是否要加密/解密数据以用于相应存储器访问。本文提供的示例可以实现各种类型的密码/密码系统以加密/解密数据。可以实现的一些示例类型的密码/密码系统包括高级加密标准(AES)加密、三重数据加密标准(DES)、RSA密码系统、河豚(Blowfish)密码系统、双鱼(Twofish)密码系统、数字签名算法(DSA)密码系统、ELGamal密码系统、椭圆密码系统、NTRUEncrypt、Rivest密码4密码系统、微型加密算法(TEA)密码系统、国际数据加密算法(IDEA)密码系统。
此外,如本文所述,示例可以包括各种引擎,诸如密码引擎。如本文所使用的,引擎可以是硬件和编程的任何组合,以实现相应引擎的功能。在本文描述的一些示例中,硬件和编程的组合可以以多种不同方式实现。例如,用于引擎的编程可以是存储在非暂时性机器可读存储介质上的处理器可执行指令,并且用于引擎的硬件可以包括处理和执行那些指令的处理资源。在一些示例中,实现这样的引擎的系统可以包括存储指令的机器可读存储介质和处理指令的处理资源,或者机器可读存储介质可以由系统和处理资源单独存储和可访问。在一些示例中,引擎可以在电路中实现。此外,用于实现引擎的处理资源可以包括至少一个中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)、专用控制器(例如,存储器控制器)和/或可以被实现以用于数据处理的其他这样的类型的逻辑组件。
在本文描述的示例中,处理资源可以包括至少一个基于硬件的处理器。此外,处理资源可以包括一个处理器或多个处理器,其中处理器可以被配置在单个系统中或跨本地和/或远程连接的多个系统分布。如将理解的,处理资源可以包括一个或多个通用数据处理器和/或一个或多个专用数据处理器。例如,处理资源可以包括中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)和/或用于数据处理的逻辑组件的其他这样的配置。在一些示例中,处理资源包括多个计算核,其可以并行、同步、并发、以交织方式、和/或以其他这样的指令执行安排来处理/执行指令。
本文描述的示例存储器资源可以包括各种类型的易失性和/或非易失性存储器。易失性存储器的示例可以包括各种类型的随机存取存储器(RAM)(例如,SRAM、DRAM、DDRSDRAM、T-RAM、Z-RAM)、以及在断电时丢失所存储的信息的其他存储器设备/模块。非易失性存储器(NVM)的示例可以包括只读存储器(ROM)(例如,掩模ROM、PROM、EPROM、EEPROM等)、闪速存储器、固态存储器、非易失性状态RAM(nvSRAM)、电池支持的静态RAM、铁电RAM(FRAM)、磁阻RAM(MRAM)、相变存储器(PCM)、磁带、光学驱动器、硬盘驱动器、3D交叉点存储器(3DXPoint)、可编程金属化单元(PCM)存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、电阻RAM(RRAM)、畴壁存储器(DWM)、纳米RAM、浮动结栅极RAM(FJG RAM)、忆阻器存储器、自旋转移矩RAM(STT-RAM)、以及跨功率周期(例如,关/开)维持所存储的信息的其他存储器设备/模块。跨功率周期存储数据的非易失性存储器也可以称为持久数据存储器。
在一些示例中,非易失性存储器对应于被称为存储类存储器(SCM)的一类非易失性存储器。在这些示例中,SCM非易失性存储器是可字节寻址的、与处理资源同步的、并且在处理资源相干(coherent)域中。此外,与其他类型的非易失性存储器(诸如硬盘驱动器或磁带存储器设备)相比,SCM非易失性存储器可以包括具有相对较高的读取/写入速度的存储器类型。SCM非易失性存储器的示例包括一些类型的闪速存储器、RRAM、忆阻器、PCM、MRAM、STT-RAM、以及其他类型的较高读取/写入速度持久数据存储器设备。如将理解的,由于一些类型的非易失性存储器(诸如旋转硬盘驱动器、NAND闪存、磁带驱动器)的相对低的读取和写入速度,处理资源可能不直接利用这些类型的非易失性存储器处理指令和数据。然而,处理资源可以直接利用SCM非易失性存储器处理指令和数据。因此,如将理解的,在其中非易失性存储器用于存储系统存储器的示例中,敏感数据可以跨功率周期保留在非易失性存储器中。
如本文所使用的,存储器资源可以包括一个设备和/或模块或者设备和/或模块的组合。此外,存储器设备/模块可以包括各种组件。例如,对应于动态随机存取存储器(DRAM)模块的易失性存储器可以包括多个DRAM集成电路、存储器控制器、电容器和/或安装在印刷电路板上的其他这样的组件。类似地,非易失性存储器可以包括多个存储器电路、存储器控制器和/或其他这样的组件。在本文描述的示例中,存储器资源可以包括易失性和/或非易失性存储器模块/设备的组合。
现在转到附图,并且特别是转到图1A和1B,这些图提供了图示系统100的示例的框图。如本文公开的系统的示例包括个人计算机、便携式电子设备(例如,智能电话、平板电脑、膝上型电脑、可穿戴设备等)、工作站、智能设备、服务器、服务器的处理节点、包括多个服务器的数据中心、和/或任何其他这样的数据处理设备。在示例中,系统100包括处理资源102、存储器资源104和与存储器资源104和处理资源102成列的密码引擎106。
如所讨论的,在诸如图1A和1B的示例系统100的示例中,密码引擎106可以在由处理资源102对存储器资源104的读取访问期间选择性地解密数据。此外,在一些示例中,密码引擎106可以在由处理资源102对存储器资源104的写入访问期间选择性地加密数据。因此,在由处理资源102对存储器资源104的一些存储器访问(例如,以读取或写入数据)期间,密码引擎106可以加密或解密在它们之间传送的数据。类似地,在由处理资源102对存储器资源104的一些访问期间,密码引擎106可以不加密或解密数据;作为代替,在这些示例中,密码引擎106可以在没有加密或解密的情况下读取或写入数据。在图1A的示例中,密码引擎106被图示为连接在处理资源102和存储器资源104之间的单独组件。在图1B的示例中,密码引擎106被图示为存储器资源104的组件。如将理解的,密码引擎106与处理资源102和存储器资源104成列地布置包括图1A和1B中所图示的密码引擎106的示例布置。此外,存储器资源104可以包括存储器模块,并且在这样的示例中,系统100可以包括耦合到每个存储器模块并且形成每个存储器模块的部分/组件的密码引擎。例如,密码引擎可以嵌入在每个相应的存储器模块中。
图2提供了图示示例系统200的框图。在该示例中,系统200包括至少一个处理资源202和机器可读存储介质204。机器可读存储介质204可以表示随机访问存储器(RAM)设备或包括示例系统200的主存储的其他类似存储器设备,以及任何补充级别的存储器,例如高速缓存存储器、非易失性或备用存储器(例如,可编程或闪速存储器)、只读存储器等。此外,机器可读存储介质204可以被认为包括物理上位于其他地方的存储器存储(例如微处理器中的任何高速缓存存储器),以及用作虚拟存储器的任何存储容量,例如如存储在大容量存储设备或与示例系统200通信的另一系统上。
此外,机器可读存储介质204可以是非暂时性的。在一些示例中,机器可读存储介质204可以是压缩盘、蓝光盘或其他这样的类型的可移除介质。在一些示例中,处理资源202和机器可读存储介质204可以对应于布置在至少一个服务器中的处理单元和存储器设备。在其他示例中,处理资源202和机器可读存储介质可以布置在片上系统设备中。在一些示例中,处理资源202和机器可读存储介质可以布置在便携式计算设备(诸如膝上型电脑、智能电话、平板计算机等)中。
此外,机器可读存储介质204可以用指令来编码和/或存储指令,所述指令可以由处理资源202可执行,其中这样的指令的执行可以使得处理资源202和/或系统200执行本文描述的功能、过程和/或操作序列。在图2的示例中,机器可读存储介质204包括用于存储器资源的读取访问的指令206。如所示,对于存储器资源的读取访问206,机器可读存储介质204包括用于确定是否要在将数据发送到处理资源之前解密从存储器资源读取的数据的指令208。此外,对于存储器资源的读取访问206,机器可读存储介质204包括用于响应于确定要解密读取的数据而利用密码引擎来解密从存储器资源读取的数据并将经解密的数据从密码引擎发送到处理资源的指令210。此外,对于存储器资源的读取访问,机器可读存储介质204包括用于响应于确定不要解密读取的数据而将数据从密码引擎发送到处理资源的指令212。
此外,机器可读存储介质204包括用于写入访问的指令214。用于写入访问的指令214包括用于确定是否要在将数据写入到存储器资源之前加密从处理资源发送的数据的指令216。此外,对于写入访问214,机器可读存储介质包括用于响应于确定要加密数据而利用密码引擎加密数据并将经加密的数据从密码引擎写入到存储器资源的指令218。此外,对于写入访问214,机器可读存储介质204包括用于响应于确定不要加密数据而将数据从密码引擎写入到存储器资源的指令220。
虽然未在图1A、1B和2中示出,但是对于与用户或操作者的接口,一些示例系统可以包括并入一个或多个用户输入/输出设备(例如一个或多个按钮、显示器、触摸屏、扬声器等)的用户接口。因此,用户接口可以将数据传送到处理资源并从处理资源接收数据。例如,用户可以经由用户接口输入一个或多个选择,并且处理资源可以使得数据在屏幕或用户接口的其他输出设备上输出。此外,系统可以包括网络接口设备。如将理解的,网络接口设备包括通过一个或多个通信网络传送数据的一个或多个硬件设备(诸如网络接口卡)。此外,系统可以包括存储在存储器资源中的应用、过程和/或操作系统。应用、过程和/或操作系统可以由系统执行,使得处理资源处理应用、过程和/或操作系统的指令,其中系统存储器存储在存储器资源中。
图3提供了图示示例系统300的一些组件的框图。如所讨论的,在一些示例中,处理资源包括中央处理单元(CPU),其包括至少一个处理核。在该示例中,系统300包括处理资源302,其包括至少一个核304。在一些示例中,处理资源302可以包括一个核304,并且在其他示例中,CPU 302可以包括两个核304(称为双核配置)、四个核(称为四核配置)等。如将理解的,在作为服务器实现的示例系统中,系统可以包括数百甚至数千个核304。如所示,处理资源302还包括至少一个存储器管理单元(MMU)306。在一些示例中,处理资源302包括用于每个核304的至少一个MMU 306。此外,在该示例中,处理资源包括高速缓存存储器308,其中高速缓存存储器308可以包括一个或多个高速缓存存储器级别,其可以用于存储经解码的指令、取出/读取的数据和结果。此外,处理资源302包括至少一个转换后备缓冲器(TLB)310,其包括页表条目(PTE)312。
转换后备缓冲器可以对应于专门用于促进虚拟地址转换的高速缓存。特别地,TLB存储将虚拟地址映射到中间地址和/或物理存储器地址的页表条目。存储器管理单元306可以用虚拟地址搜索TLB以确定对应的中间地址和/或物理存储器地址。TLB在大小方面受限,从而不是所有必需的PTE都可以存储在TLB中。因此,在一些示例中,附加的PTE可以存储在存储器(诸如易失性存储器和/或非易失性存储器)的其他区域中。如将理解的,TLB表示非常高速的存储器存储单元,使得基于存储在TLB中的数据而执行的地址转换将比利用位于其他地方的PTE而执行的转换快。
在该示例中,处理资源302连接到密码引擎314,并且密码引擎314继而连接到存储器资源316。在该示例中,存储器资源316包括第一存储器模块318和第二存储器模块320。第一存储器模块318包括非易失性存储器322,并且第二存储器模块320包括易失性存储器模块324。
虽然未在示例中示出,但是非易失性存储器322可以包括与只读存储器(ROM)相关联的部分和与存储相关联的部分。系统存储器可以存储在易失性存储器320和/或非易失性存储器322中。在与图3的示例类似的示例中,在写入访问期间要写入到存储器资源的数据可以存储在高速缓存308中并且经由密码引擎314从处理资源302发送到存储器资源316。密码引擎314可以在将数据写入到存储器资源316之前选择性地加密从处理资源302接收的数据。类似地,在存储器资源316的读取访问期间从存储器资源316检索的数据可以经由密码引擎314发送到处理资源302。密码引擎314可以在将数据发送到处理资源302的高速缓存308之前选择性地解密从存储器资源316读取的数据。
如将理解的,处理资源302的核304执行操作以实现指令周期,其也可以称为取出-解码-执行周期。如本文所使用的,处理指令可以指代执行对指令和相关联数据的取出、解码和/或执行。在指令周期期间,处理资源302对要执行的指令进行解码,其中解码的指令包括用于要在其上执行指令的操作的数据的存储器地址(称为源操作数)以及执行这样的操作的结果要被存储的存储器地址(称为目标操作数)。如将理解的,解码的指令的存储器地址是虚拟地址。此外,虚拟地址可以指代可以分配给过程/应用的虚拟地址空间的存储单元。虚拟地址不直接与存储器设备(诸如易失性存储器324或非易失性存储器322)的特定存储器存储单元相联系。虚拟地址空间也可以称为过程地址空间。因此,当准备执行指令时,核304可以将虚拟地址传送到相关联的MMU 306以用于转换为物理存储器地址,使得可以取出存储在物理存储器地址334处的数据以用于执行。物理存储器地址可以直接与特定物理存储器存储单元(诸如易失性存储器324和/或非易失性存储器322的特定存储单元)相关。因此,如图3所示,在核304级别处,存储器地址对应于虚拟地址332。
MMU 306基于可以存储在一个或多个页表条目312中的虚拟地址到物理存储器地址的映射来将虚拟地址332转换为物理存储器地址334。如将理解的,在该示例中,处理资源302包括存储页表条目312的TLB 310,MMU 306可以利用页表条目312来转换虚拟地址。在图3所图示的示例实现中,存储器资源316包括易失性存储器324和非易失性存储器322两者。
在与图3的示例类似的示例中,系统300可以将与系统存储器328相关联的虚拟地址332转换为易失性存储器320或非易失性存储器322的物理存储器地址334。如将理解的,在由核304处理指令期间,可以从存储器资源316读取数据以及可以将数据写入到存储器资源316。在诸如图3的示例的示例中,密码引擎选择性地加密/解密在处理资源302和存储器资源316之间发送的数据。
图4-7提供了流程图,所述流程图提供了可以由示例系统和/或其处理资源执行以执行示例过程和方法的示例操作序列。在一些示例中,流程图中包括的操作可以以指令的形式体现在存储器资源(诸如图2的示例机器可读存储介质204)中,该指令可以被处理资源执行以使得系统(例如,图1A-B的系统100、图2的系统200)执行与指令对应的操作。此外,图4-7中提供的示例可以体现在系统、机器可读存储介质、过程和/或方法中。在一些示例中,在图4-7的流程图中公开的示例过程和/或方法可以通过系统中实现的一个或多个引擎来执行。
图4提供了流程图400,流程图400图示了可以由示例系统执行的示例操作序列。在该示例中,系统在由处理资源对存储器资源的读取访问期间利用密码引擎选择性地解密从存储器资源读取的数据(框402)。此外,系统在由处理资源对存储器资源的写入访问期间利用密码引擎选择性地加密从处理资源发送到存储器资源的数据(框404)。
现在转到图5,该图提供了流程图500,流程图500图示了可以由示例系统执行的示例操作序列。如前所述,系统可以选择性地解密用于由处理资源对存储器资源的读取访问的数据。因此,在该示例中,对于特定读取访问(框502),系统确定是否要解密用于特定读取访问的数据(框504)。响应于确定不要解密用于特定读取访问的数据(框504的“否”分支),系统在不解密数据的情况下将读取的数据从密码引擎发送到处理资源(框506)。响应于确定要解密用于特定读取访问的数据(框504的“是”分支),系统利用密码引擎解密数据(框508),并且系统将经解密的数据从密码引擎发送到处理资源(框510)。因此,基于图5的示例,如将理解的,系统可以针对不同的读取访问以不同的方式对数据进行操作。例如,对于第一读取访问,系统可以在将数据发送到处理资源之前利用密码引擎解密从存储器资源检索的数据。对于第二读取访问,系统可以不解密从存储器资源检索的数据,并且密码引擎可以在不执行解密的情况下将所述数据发送到处理资源。
图6提供了流程图550,流程图550图示了可以由示例系统执行的示例操作序列。如前所述,系统可以选择性地加密用于由处理资源对存储器资源的写入访问的数据。因此,在该示例中,对于特定写入访问(框552),系统确定是否要加密用于特定写入访问的数据(框554)。响应于确定不要加密用于特定写入访问的数据(框554的“否”分支),系统在不解密数据的情况下利用密码引擎将数据写入到存储器资源(框556)。响应于确定要加密用于特定写入访问的数据(框554的“是”分支),系统利用密码引擎加密数据(框558),并且系统将经加密的数据从密码引擎写入到存储器资源(框560)。因此,基于图6的示例,如将理解的,系统可以针对不同的写入访问以不同的方式对数据进行操作。例如,对于第一写入访问,系统可以在将数据写入到存储器资源之前利用密码引擎加密从处理资源接收的数据。对于第二写入访问,系统可以不加密从处理资源接收的数据,并且密码引擎可以在不执行加密的情况下将数据写入到存储器资源。
图7提供了流程图600,流程图600图示了可以由示例系统执行的示例操作序列。示例系统可以至少部分地基于要读取/写入的数据来确定是否要加密/解密用于特定存储器访问的数据。例如,对于存储器访问(框602),系统可以至少部分地基于与存储器访问对应的物理存储器地址来确定是否要加密/解密数据(框604)。因此,在该示例中,当访问与物理存储器地址对应的存储器存储单元时,系统基于物理存储器地址来确定是否要加密/解密数据。例如,对于与第一物理存储器地址相关联的第一读取访问,系统可以确定要解密从第一物理存储器地址检索的数据。对于与第二物理存储器地址相关联的第二读取访问,系统可以确定不要解密从第二物理存储器地址检索的数据。
此外,在一些示例中,对于存储器访问(框602),系统可以至少部分地基于与存储器访问对应的虚拟存储器地址来确定是否要加密/解密数据(框606)。例如,对于与第一虚拟存储器地址相关联的第一写入访问,系统可以确定要加密要被写入到存储器资源的数据。作为另一示例,对于与第二虚拟存储器地址相关联的第二写入访问,系统可以确定不要加密要被写入到存储器资源的数据。
在一些示例中,对于存储器访问(框602),系统可以至少部分地基于与存储器访问对应的过程来确定是否要加密/解密数据(框608)。如所讨论的,当利用处理资源来处理指令时,示例可以访问存储器资源的物理存储器存储单元。此外,由处理资源处理的指令可以对应于可以利用处理资源执行的至少一个过程。在与图6的示例类似的示例中,在其执行期间导致存储器访问的过程可以影响系统是否加密/解密与过程相关联的数据。如将理解的,由过程对其操作的和/或由过程生成的一些数据可以是敏感数据。在一些示例系统中,操作系统和/或这样的操作系统的内核可以向密码引擎指示是否要加密/解密要针对过程被读取或写入的数据。
在一些示例中,对于存储器访问(框602),系统可以至少部分地基于与存储器访问相关联的页表条目来确定是否要加密/解密数据(框610)。如前所述,在一些示例中,可以在处理资源处实现页表条目以促进将虚拟地址映射到物理存储器地址。在一些示例中,页表条目还可以指示与虚拟地址和/或物理存储器地址相关联的数据是否是敏感的。在这样的示例中,与特定虚拟地址和/或物理存储器地址相关联的页表条目可以指示是否要加密或解密要从其读取或向其写入的数据。
如将理解的,在一些示例系统中,确定是否要加密用于特定写入访问的数据可以至少部分地基于图7中提供的示例的组合。类似地,确定是否要解密用于特定读取访问的数据可以至少部分地基于图7中提供的示例的组合。
图8A和8B提供了图示示例系统700的一些组件的示例操作的框图。在示例中,系统700包括处理资源702和存储器资源704。此外,系统700包括与处理资源702和存储器资源704成列的密码引擎706。如先前示例中所述,处理资源702包括至少一个核708,并且如所示,至少一个核708可以执行至少一个操作系统710和至少一个过程712。如所示,虚拟地址空间714在处理资源702级别处实现。如将理解的,虚拟地址空间714可以利用高速缓存、转换后备缓冲器、和/或存储器管理单元来实现。在图8所示的示例中,虚拟地址空间714可以包括敏感页面715(即,敏感数据的虚拟块)。此外,存储器资源704包括由至少一个存储器模块实现的物理存储器地址空间716。如所示,虚拟地址空间714的敏感页面715可以对应于存储在存储器资源704中的加密的页面718(即,加密的数据块)。在图8A和8B的示例中,当处理用于至少一个过程712的指令时,对于读取访问,密码引擎706可以在将数据发送到处理资源702之前解密存储在存储器资源的加密的页面718中的数据。类似地,对于写入访问,密码引擎706可以在将数据写入到存储器资源704之前加密敏感数据715。
如先前所讨论的,在一些示例中,密码引擎可以至少部分地基于物理存储器地址来确定要解密存储在存储器资源704的物理存储器地址处的数据。例如,操作系统710或其内核可以向密码引擎706指示特定物理存储器地址处的数据被加密,使得可以在将这样的数据发送到处理资源702之前执行解密。作为另一示例,存储在转换后备缓冲器的页表条目中的数据可以指示特定虚拟地址的数据是敏感的,使得操作系统710或其内核可以向密码引擎706指示在将数据写入到存储器资源704之前要加密与特定虚拟地址相关联的数据。在其他示例中,操作系统710和/或其内核可以直接指示基于针对其检索或生成数据的过程数据对于对应的存储器访问是否为敏感的/经加密的。
在图8B的示例中,可以分配730物理存储器地址空间716的部分以用于在操作系统710和/或内核级别处存储加密数据。因此,在图8B中,系统加密要写入到被分配用于存储加密数据的物理存储器地址的所有数据,并且系统解密从被分配用于存储加密数据的物理存储器地址所读取的所有数据。相比而言,系统不加密要写入到未被分配用于存储加密数据的物理存储器地址的数据,并且系统不解密从未被分配用于存储加密数据的物理存储器地址所读取的数据。
因此,系统、过程、方法和/或计算机程序产品(被实现为存储在本文描述的非暂时性机器可读存储介质上的可执行指令)的示例可以在将数据发送到处理资源之前利用成列的密码引擎来选择性地解密从存储器资源读取的数据。此外,示例可以在将数据写入到存储器资源之前利用成列的密码引擎来选择性地加密要写入到存储器资源的数据。如将理解的,本文描述的示例的实现可以促进存储器资源中的安全数据存储,其中这样的数据安全性可以与系统的处理资源和存储器资源成列实现。
此外,虽然本文描述了各种示例,但是可以组合和/或移除元件和/或元件的组合以得到由此预期的各种示例。例如,本文在图4-7的流程图中提供的示例操作可以顺序地、并发地、或以不同的次序执行。此外,可以将流程图的一些示例操作添加到其他流程图,和/或可以从流程图中移除一些示例操作。此外,在一些示例中,可以移除图1A、1B和2的示例系统的各种组件,和/或可以添加其他组件。类似地,在一些示例中,可以移除图2的示例存储器和/或机器可读存储介质的各种指令,和/或可以添加其他指令(诸如与图4-7的示例操作对应的指令)。
已经呈现了前面的描述以说明和描述所描述的原理的示例。本描述并不旨在是穷举的或将示例限制为所公开的任何精确形式。根据本描述,许多修改和变化是可能的。

Claims (15)

1.一种系统,包括:
处理资源;
存储器资源;和
密码引擎,与存储器资源和处理资源成列布置,密码引擎要在由处理资源对存储器资源的读取访问期间选择性地解密数据。
2.根据权利要求1所述的系统,其中密码引擎要在存储器资源的读取访问期间选择性地解密数据包括密码引擎要:
针对存储器的相应读取访问,确定是否要在将数据发送到处理资源之前解密从存储器资源读取的数据。
3.根据权利要求2所述的系统,其中密码引擎要至少部分地基于与相应读取访问对应的物理存储器地址、与相应读取访问对应的虚拟存储器地址、与相应读取访问对应的相应过程、与相应读取访问相关联的页表条目、或其任何组合来确定是否要在将数据发送到处理资源之前解密从存储器资源读取的数据。
4.根据权利要求1所述的系统,其中密码引擎要在由处理资源对存储器资源的读取访问期间选择性地解密数据包括密码引擎要:
针对由处理资源对存储器资源的第一读取访问:
解密从存储器资源读取的数据,
将经解密的数据发送到处理资源;和
针对由处理资源对存储器资源的第二读取访问,在不解密数据的情况下将数据发送到处理资源。
5.根据权利要求1所述的系统,其中密码引擎还要:
在由处理资源对存储器资源的写入访问期间选择性地加密数据。
6.根据权利要求5所述的系统,其中密码引擎要在由处理资源对存储器资源的写入访问期间选择性地加密数据包括密码引擎要:
针对存储器的相应读取访问,确定是否要在将数据写入到存储器资源之前加密要被写入到存储器资源的数据。
7.根据权利要求6所述的系统,其中密码引擎要至少部分地基于与相应写入访问对应的物理存储器地址、与相应写入访问对应的虚拟存储器地址、与相应写入访问对应的相应过程、与相应写入访问相关联的页表条目、或其任何组合来确定是否要在将数据发送到存储器资源之前加密要被写入到存储器资源的数据。
8.根据权利要求5所述的系统,其中密码引擎要在由处理资源对存储器资源的写入访问期间选择性地加密数据包括密码引擎要:
针对由处理资源对存储器资源的第一写入访问:
加密从处理资源发送的数据,
将经加密的数据写入到存储器资源;和
针对由处理资源对存储器资源的第二写入访问,在不加密数据的情况下将从处理资源发送的数据写入到存储器资源。
9.根据权利要求1所述的系统,还包括:
连接在处理资源和密码引擎之间的存储器管理单元,
其中密码引擎是存储器资源的组件。
10.一种用于包括处理资源、存储器资源、以及与处理资源和存储器资源成列布置的密码引擎的系统的方法,所述方法包括:
在由处理资源对存储器资源的读取访问期间,利用密码引擎选择性地解密从存储器资源读取的数据;和
在由处理资源对存储器资源的写入访问期间,利用密码引擎选择性地加密从处理资源发送到存储器资源的数据。
11.根据权利要求10所述的方法,其中选择性地解密从存储器资源读取的数据包括:
针对第一读取访问,利用密码引擎解密所读取的数据,并将经解密的数据从密码引擎发送到处理资源,和
针对第二读取访问,在不解密数据的情况下将所读取的数据从密码引擎发送到处理资源。
12.根据权利要求10所述的方法,其中选择性地加密从处理资源发送到存储器资源的数据包括:
针对第一写入访问:
利用密码引擎加密所发送的数据,
利用密码引擎将经加密的数据写入到存储器资源,和
针对第二写入访问,在不加密数据的情况下利用密码引擎将从处理资源接收的数据写入到存储器资源。
13.根据权利要求10所述的方法,其中至少部分地基于与相应访问对应的物理存储器地址、与相应访问对应的虚拟存储器地址、与相应访问对应的相应过程、与相应访问相关联的页表条目、或其任何组合来选择性地解密以及选择性地加密数据。
14.一种包括指令的非暂时性机器可读存储介质,所述指令可由系统的处理资源执行以使得所述系统:
针对存储器资源的读取访问:
确定是否要在将读取的数据发送到处理资源之前解密从存储器资源读取的数据;
响应于确定要解密读取的数据,利用密码引擎解密读取的数据,将经解密的数据从密码引擎发送到处理资源;
响应于确定不要解密读取的数据,将读取的数据从密码引擎发送到处理资源;和
针对存储器资源的写入访问:
确定是否要在将数据写入到存储器资源之前加密从处理资源发送的数据;
响应于确定要在写入数据之前加密数据,利用密码引擎加密数据,并将经加密的数据写入到存储器资源;
响应于确定不要在写入数据之前加密数据,利用密码引擎将数据写入到存储器资源。
15.根据权利要求14所述的非暂时性机器可读存储介质,其中至少部分地基于与相应读取访问对应的物理存储器地址、与相应读取访问对应的虚拟存储器地址、与相应读取访问对应的相应过程、与相应读取访问相关联的页表条目、或其任何组合来确定是否要解密数据,和
其中至少部分地基于与相应写入访问对应的物理存储器地址、与相应写入访问对应的虚拟存储器地址、与相应写入访问对应的相应过程、与相应写入访问相关联的页表条目、或其任何组合来确定是否要加密数据。
CN201680079717.7A 2016-01-21 2016-01-21 数据密码引擎 Pending CN108496159A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/014317 WO2017127084A1 (en) 2016-01-21 2016-01-21 Data cryptography engine

Publications (1)

Publication Number Publication Date
CN108496159A true CN108496159A (zh) 2018-09-04

Family

ID=59362818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680079717.7A Pending CN108496159A (zh) 2016-01-21 2016-01-21 数据密码引擎

Country Status (4)

Country Link
US (1) US20180285575A1 (zh)
EP (1) EP3345094A4 (zh)
CN (1) CN108496159A (zh)
WO (1) WO2017127084A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220327052A1 (en) * 2021-04-12 2022-10-13 Meta Platforms, Inc. Systems and methods for transforming data in-line with reads and writes to coherent host-managed device memory

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250097A1 (en) * 2003-03-14 2004-12-09 Francis Cheung Method and system for data encryption and decryption
US20050276413A1 (en) * 2004-06-14 2005-12-15 Raja Neogi Method and apparatus to manage heterogeneous cryptographic operations
CN101072097A (zh) * 2006-05-11 2007-11-14 美国博通公司 用于受信数据处理的方法和系统
US20070280475A1 (en) * 2003-12-19 2007-12-06 Stmicroelectronics Limited Monolithic Semiconductor Integrated Circuit And Method for Selective Memory Encryption And Decryption
US20130191649A1 (en) * 2012-01-23 2013-07-25 International Business Machines Corporation Memory address translation-based data encryption/compression
US20130297948A1 (en) * 2012-05-04 2013-11-07 Samsung Electronic Co., Ltd. System on chip, method of operating the same, and devices including the system on chip
US20150046702A1 (en) * 2013-08-09 2015-02-12 Apple Inc. Embedded Encryption/Secure Memory Management Unit for Peripheral Interface Controller
US20150248357A1 (en) * 2014-02-28 2015-09-03 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385727B1 (en) * 1998-09-25 2002-05-07 Hughes Electronics Corporation Apparatus for providing a secure processing environment
US7826614B1 (en) * 2003-11-05 2010-11-02 Globalfoundries Inc. Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation
US6954450B2 (en) * 2003-11-26 2005-10-11 Cisco Technology, Inc. Method and apparatus to provide data streaming over a network connection in a wireless MAC processor
JP4344750B2 (ja) * 2003-11-26 2009-10-14 シスコ テクノロジー,インコーポレイテッド 無線局の暗号化及び復号化をインラインする方法及び装置
KR101484110B1 (ko) * 2008-02-29 2015-01-28 삼성전자주식회사 메모리 컨트롤러 및 그에 따른 메모리 장치
US8601258B2 (en) * 2008-05-05 2013-12-03 Kip Cr P1 Lp Method for configuring centralized encryption policies for devices
US20140310536A1 (en) * 2013-04-16 2014-10-16 Qualcomm Incorporated Storage device assisted inline encryption and decryption
US20160239685A1 (en) * 2013-07-31 2016-08-18 Hewlett-Packard Development Company, L.P. Hybrid secure non-volatile main memory
US10615967B2 (en) * 2014-03-20 2020-04-07 Microsoft Technology Licensing, Llc Rapid data protection for storage devices
US9954681B2 (en) * 2015-06-10 2018-04-24 Nxp Usa, Inc. Systems and methods for data encryption

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250097A1 (en) * 2003-03-14 2004-12-09 Francis Cheung Method and system for data encryption and decryption
US20070280475A1 (en) * 2003-12-19 2007-12-06 Stmicroelectronics Limited Monolithic Semiconductor Integrated Circuit And Method for Selective Memory Encryption And Decryption
US20050276413A1 (en) * 2004-06-14 2005-12-15 Raja Neogi Method and apparatus to manage heterogeneous cryptographic operations
CN101072097A (zh) * 2006-05-11 2007-11-14 美国博通公司 用于受信数据处理的方法和系统
US20130191649A1 (en) * 2012-01-23 2013-07-25 International Business Machines Corporation Memory address translation-based data encryption/compression
US20130297948A1 (en) * 2012-05-04 2013-11-07 Samsung Electronic Co., Ltd. System on chip, method of operating the same, and devices including the system on chip
US20150046702A1 (en) * 2013-08-09 2015-02-12 Apple Inc. Embedded Encryption/Secure Memory Management Unit for Peripheral Interface Controller
US20150248357A1 (en) * 2014-02-28 2015-09-03 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system

Also Published As

Publication number Publication date
EP3345094A4 (en) 2019-04-17
US20180285575A1 (en) 2018-10-04
EP3345094A1 (en) 2018-07-11
WO2017127084A1 (en) 2017-07-27

Similar Documents

Publication Publication Date Title
US10936226B2 (en) Memory system and method of controlling nonvolatile memory
US9483664B2 (en) Address dependent data encryption
CN107750363B (zh) 保护与硬件加速器的通信以增加工作流安全性
US20240095189A1 (en) Key Management in Computer Processors
US10896267B2 (en) Input/output data encryption
US20230139330A1 (en) Storage device for a blockchain network based on proof of space and system including the same
CN107924367A (zh) 计算存储器中可执行项的加密
CN107451072B (zh) 具有即时加密器的计算系统及其操作方法
KR20110134339A (ko) 비휘발성 메모리에 데이터를 기록하고 이로부터 데이터를 판독하기 위한 데이터 화이트닝
US8886963B2 (en) Secure relocation of encrypted files
US11126404B2 (en) Random number generator using multiple entropy sources and a method for generating random numbers
CN111090869A (zh) 一种数据加密方法、处理器及计算机设备
CN111967065B (zh) 一种数据保护方法、处理器及电子设备
CN113420308A (zh) 用于加密存储器的数据访问控制方法及控制系统
US11907120B2 (en) Computing device for transceiving information via plurality of buses, and operating method of the computing device
CN108496159A (zh) 数据密码引擎
CN107533516A (zh) 用于管理对在装置的芯片上的系统的安全模块的多次访问的设备
US10785031B2 (en) Data encryption of a storage area
US20240078322A1 (en) Memory system, memory controller and operation method thereof
EP3579135B1 (en) Methods and devices for hardware characterization of computing devices
CN115544587A (zh) 加密方法、解密方法、芯片和计算机可读存储介质
US10176342B2 (en) Protecting memory storage content

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: 20180904