CN108713190B - 用于加速安全存储能力的技术 - Google Patents

用于加速安全存储能力的技术 Download PDF

Info

Publication number
CN108713190B
CN108713190B CN201680082961.9A CN201680082961A CN108713190B CN 108713190 B CN108713190 B CN 108713190B CN 201680082961 A CN201680082961 A CN 201680082961A CN 108713190 B CN108713190 B CN 108713190B
Authority
CN
China
Prior art keywords
data
cpu
offload
scheduling
tasks
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
Application number
CN201680082961.9A
Other languages
English (en)
Other versions
CN108713190A (zh
Inventor
王俊元
杨子夜
S.沈
N.M.史密斯
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN108713190A publication Critical patent/CN108713190A/zh
Application granted granted Critical
Publication of CN108713190B publication Critical patent/CN108713190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Retry When Errors Occur (AREA)

Abstract

提供用于加速安全存储能力的技术。具体来说,卸载调度器可配置成接收对数据的压缩、解压缩、加密或解密的数据请求。卸载调度器可确定所接收数据请求的一个或多个特性,例如它是否涉及压缩、解压缩或地理特定密码。基于所确定特性,卸载调度器可向多个处理元件之一调度一个或多个数据任务。

Description

用于加速安全存储能力的技术
技术领域
本文所述的实施例一般涉及用于分布式计算或云计算环境中的加速安全存储能力的技术。
背景技术
公共和私人数据中心越来越多地用于安全通信、数据操作和数据存储。随着更多公共和私人团体已经依靠这些数据中心,需要安全管理的数据量已迅速增加。数据压缩和加密用来有效并且安全地存储数据,然而,压缩和加密操作可不利地影响数据中心性能,特别是在与数据的快速增加结合使用时。已开发了若干技术以改进数据的压缩和加密的性能,但是最有效的技术可能不一定总在数据中心环境中使用。相应地,适当选择最有效的压缩和加密技术可提供快速增长的公共和私人数据中心的增强性能和可缩放性。
附图说明
图1示出按照实施例的系统的框图。
图2示出按照实施例的系统的框图。
图3示出按照实施例的系统的框图。
图4示出按照实施例的系统的框图。
图5示出按照实施例的系统的框图。
图6示出按照实施例的逻辑流程。
图7示出按照实施例的逻辑流程。
图8示出按照实施例的逻辑流程。
图9示出按照实施例的逻辑流程。
图10示出计算机可读存储介质的实施例。
图11示出处理架构的实施例。
图12示出计算系统的实施例。
具体实施方式
各种实施例通常针对用于加速安全存储能力的技术。具体来说,一些实施例针对基于各种标准来动态调度压缩和加密操作,使得采用有效的方式执行操作。在基于云的数据存储环境中,数据可在虚拟机、非虚拟主机或者后端存储系统上存储的同时使用加密来压缩和保护。每种存储方法可具有性能和安全性方面的折衷。
在示例中,保护虚拟机上的数据可使用性能优化压缩和加密模块的部署。这类模块可以是访客操作系统或虚拟主机可访问的。然而,在基于云的系统中,计算任务可跨许多不同的中央处理单元(CPU)、存储器和存储装置来分布。因此,在基于云的系统中,性能优化策略基于调度成执行工作负荷任务的特定节点上的加速硬件的可用性可有所不同。
在本文所述的实施例中,压缩和加密操作可采用各种方式优化。在第一示例中,CPU可专门优化以增加特定加密算法的性能,例如高级加密标准(AES)或高级加密标准新指令(AES-NI)。为这些指令集所优化的CPU的使用可使用基于AES的加密来改进操作的性能,然而在一些情况下,可优选或要求其它加密标准,其将不会看到增加的性能。在某些地理位置(例如中国),可优选或要求除了AES之外的加密标准。在这些情况下,为某些类型的加密专门优化的CPU可能不提供性能方面的增加。因此,用于增加压缩和加密操作的性能的其它技术是优选的。
在优化压缩和加密技术的第二示例中,压缩和加密操作可卸载到例如集群底板上的专用特制计算节点。这种技术有时称作快速辅助技术(QAT)。在第三示例中,压缩和加密操作可卸载到I/O控制器的IP块。在第四示例中,存储装置(例如固态驱动器(SSD))可提供内置压缩和加密模块。使用这类SSD的网络附连存储(NAS)系统可从SSD构建块来构成,该SSD构建块支持数据中心存储加密,但是在使用中时使数据畅通无阻。在第五示例中,具有集成现场可编程门阵列(FPGA)的特殊类的服务器可用来卸载压缩和加密操作,并且可对例如中国之内的地理特定约束来定制。虽然已经提供了这些示例以提供所述实施例的上下文,但是它们不应当以限制性的方式来理解,并且用于优化压缩和加密操作的其它技术可通过本文所述的实施例来采用。
在中国的地理特定示例中,以上所述的卸载选项的一些可以不配置成优化优选或所要求加密标准。虽然已将中国用作示例,但是优选或所要求加密技术可基于多种因素(作为一些示例包括地理、数据类型、数据的请求方或拥有者或者公司偏好)存在。当优选或要求加密技术时,本文所述的实施例可动态确定压缩和加密操作的最有效选项,并且相应地调度任务。压缩和加密需要的确定可基于访问、存储或者以其它方式修改数据的请求,并且可动态和大体上实时地执行,从而确保每个压缩和加密操作采用有效的方式来操控。动态调度压缩和加密操作可极大地增加基于云的数据中心环境的性能,并且允许增加的可缩放性,特别是当在全局规模上使用时。
一般参照本文所使用的符号和术语,以下详细描述的部分可根据计算机或者计算机网络上执行的程序过程来呈现。这些过程描述和表示由本领域的技术人员用来向本领域的其他技术人员最有效地传达其工作主旨。过程在这里以及通常被认为是产生期望结果的自相一致操作序列。这些操作是要求物理量的物理操纵的那些操作。这些量通常但不一定采取能够被存储、传递、组合、比较以及以其它方式操纵的电、磁或光信号的形式。主要由于普遍使用的原因,将这些信号表示为位、值、元素、符号、字符、术语、数字等有时证明是便利的。然而应当注意,所有这些及类似术语均要与适当的物理量关联,并且只是应用于那些量的便捷标签。
此外,常常采用诸如“添加”或“比较”的术语来提到这些操纵,其通常与由人类操作员所执行的心理操作关联。然而,在本文所述操作(其形成一个或多个实施例的部分)的任一个中,没有人类操作员的这种能力是必要的或者在大多数情况下是期望的。相反,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机,如通过其中存储的、按照本文教导所编写的计算机程序有选择地激活或配置,和/或包括专门构造用于所需目的的设备。各种实施例还涉及用于执行这些操作的设备或系统。这些设备可为所要求目的专门构成,或者可结合通用计算装置。多种这些机器的所要求结构由所给出的描述将是明显的。
现在参照附图,其中相似附图标记通篇用来指代相似元件。为了说明目的,以下描述中提出大量具体细节,以便提供对其的透彻理解。然而可显然的是,在没有这些具体细节的情况下也能够实践新实施例。在其它实例中,已知结构和装置采取框图形式示出以便促进其描述。目的是提供全面描述,使得充分描述权利要求书的范围之内的全部修改、等同物和备选。
另外,可参照变量(例如“a”、“b”、“c”),其用来表示组件,其中可实现多于一个组件。重要的是要注意,不一定需要存在多个组件,以及此外,在实现多个组件的情况下,它们无需是相同的。相反,变量用来引用附图中的组件是为了呈现的便利和清楚起见而进行。
图1示出按照实施例的系统100的框图。系统100可配置成基于在给定时间的最佳可用吞吐量来动态管线化压缩和密码操作。最佳可用吞吐量可基于存储器的可用性和处理能力来确定。在一些实施例中,一个或多个密码处理技术可对特定类型的数据请求(例如某些压缩和加密操作)来优化。
系统100包括虚拟机监测器(VMM)104(有时称作管理程序),其可配置成通过网络122来监测一个或多个访客虚拟机(VM)102-a-n的操作。访客VM 102可包括具体计算机系统的一个或多个仿真和/或操作系统(OS),作为一些非限制性示例,例如Linuxdistribution、Windows、Mac OSX或Unix。VM 102可基于物理机器的功能和计算机架构进行操作。VM 102可包括系统VM或过程VM。系统VM可包括完整系统平台,其支持OS的执行,如上所述。系统VM可用来例如在基于云的平台上有效地运行相同OS的多个实例或者不同OS的实例。过程VM可用来运行应用或程序的单个实例,并且可提供采用有效和跨平台方式来运行软件的能力。虽然一些实施例可包括一个或多个过程VM,但是本文所述的实施例为了说明目的而将使用系统VM。
VMM 104可采用硬件和/或软件来实现,并且配置成创建和运行VM 102的一个或多个。VMM 104可在主机上操作,而VM 102可作为访客机器进行操作。换言之,VM 102可作为虚拟化硬件进行操作,并且VMM 104可通过代表VM 102与物理硬件直接通信来管理物理硬件上的VM 102,包括但不限于处理、连网、存储器管理和密码操作。VM 102和VMM 104可配置成使用数据处理引擎114的一个或多个处理元件(包括硬件安全模块(HSM)116、CPU 118和/或专用片上系统(SOC)120,其各自在以下更详细描述)进行操作。具体来说,密码操作(例如加密和解密)和压缩操作可基于由HSM加速引擎(HAE)106和后续调度进行的确定来使用硬件HSM 116、CPU 118或专用SOC 120其中之一来处理,如本文所述的。
在实施例中,VMM 104包括HAE 106连同为了清楚起见已经省略的其它组件。HAE106可采用硬件和/或软件来实现,并且可至少含有卸载调度器108、环形缓冲器池110和密钥管理器112。卸载调度器108可配置成分析数据请求,并且调度数据请求以用于由数据处理引擎114的适当组件基于各种标准的一个或多个进行处理,针对图2更详细论述。一般来说,卸载调度器112可确定数据请求是针对压缩/解压缩、地理特定密码操作还是另一种类型的操作(例如基于AES的加密)。在压缩/解压缩操作或地理特定密码操作的情况下,卸载调度器112可向HSM 116调度对应数据处理任务。在其它操作(包括基于AES的加密)的情况下,卸载调度器可向CPU 118调度对应数据处理任务。在CPU 118正经历比正常工作负荷更高的工作负荷的一些状况中,卸载调度器112可配置成使用专用SOC 120来调度操作,或者将操作延迟直到CPU 118为可用的这种时间。卸载调度器112的逻辑流程在下面针对图7-8更详细描述。
在实施例中,HAE 106可包括环形缓冲器池110,其可提供数据缓冲和装置虚拟化能力。环形缓冲器池110可包括使用位于运行VMM 104的物理服务器上的DRAM或者本文所述的其它类型的存储器的物理存储器空间。环形缓冲器池110可组织成包括组织为环形缓冲器对的DRAM的一个或多个束。每对环形缓冲器可包括用于请求的一个环形缓冲器和用于响应的另一个环形缓冲器,以及每对可被指配给VM 102的每个。在一些实施例中,每个环形缓冲器可被指配唯一物理DRAM空间,并且可被指配给VM 102的每个的虚拟盘总线。环形缓冲器池110在下面针对图3更详细描述。
在实施例中,HAE 106可包括专用密钥管理器112。密钥管理器112可提供密钥管理能力,其允许卸载调度器108经由接口(图1中未示出,但是针对图4详细描述)来执行密钥相关操作,包括但不限于添加、删除、查找和密钥生成。密钥管理器112可由一个或多个物理存储器位置(例如数据寄存器)来组成,并且可包括与环形缓冲器池110内的每个环形缓冲器对关联的内部数据库,其又可与VM 102关联。数据库可用来存储与VM 102关联的一个或多个密钥。密钥管理器112在一些实施例中可使用安全飞地(secure enclave)来实现,以及来自数据处理引擎114的组件可在执行所调度数据任务时被提供对密钥管理器112的内容的访问。
数据处理引擎114可包括一个或多个处理元件的集合,其可提供对不同类型的压缩和加密操作的优化支持。数据处理引擎114可包括一个或多个处理元件,所述一个或多个处理元件的每个在处理压缩或加密操作时可能提供某些优点或缺点。数据处理引擎114可配置成利用不同硬件能力,以便采用有效和加速方式来执行压缩和加密操作。数据处理引擎114的每个组件可具有一个或多个特性,其可由卸载调度器108在调度数据操作时考虑。特性的非限制性示例可包括速度、可用性和/或操作优化的类型。例如,组件(例如硬件安全模块(HSM)116)可配置并且优化成使用一个或多个压缩或加密标准来执行数据操作。当卸载调度器108从请求来确定例如要求地理特定加密算法时,它可使用适当HSM 116来调度这类操作,以用于增加的性能。当卸载调度器108从请求来确定要求数据操作(例如基于AES的加密)时,它可使用CPU 118(其可对于这类操作被优化)来调度这类操作。如果CPU 118被确定为在预定阈值或以上繁忙,则卸载调度器108可使用专用SOC 120来调度数据任务。示例并不局限于这个上下文。
数据处理引擎114可包括HSM 116,其可以是被优化以执行密码或压缩操作的物理计算装置。HSM 116可包括一个或多个安全密码处理器。HSM 116可采取插件卡或者外部装置(其能够插入服务器)的形式。照这样,当开发、要求和/或优选新压缩和加密标准时,HSM116可提供随时间推移可升级的优点。在一些实施例中,数据处理引擎114可包括多个HSM,其各自优化成执行一个或多个密码或压缩操作。备选地,单个HSM可包括一个或多个模块,每个模块专用于某些操作。在示例中,HSM 116可优化成例如相对于与中国关联的加密标准(包括SMS4或ZUC)来执行地理特定加密。数据处理引擎114可包括多个特定地理区域的每个的HSM,或者基于特定密码和压缩标准,或者两者。同样,代替多个HSM,单个HSM可包括多个专用模块。通过使用HSM 116调度密码和压缩操作,卸载调度器可在卸载操作完成中实现增加的性能,同时释放CPU 118以执行其它任务,这可引起系统性能的显著总体增加。
在一些实施例中,HSM 116可使用基于SSD的解决方案(其可提供内置压缩和加密模块)来替代或补充。此外,在一些实施例中,使用这类SSD的NAS系统在一些实现中可由SSD构建块来构成,该SSD构建块支持数据中心存储加密,其在使用中时使数据畅通无阻。能够意识到,这类基于NAS和/或SSD的解决方案或者专用于特定处理功能的其它模块可用来补充或替代本文所述的基于HSM的解决方案。实施例并不局限于此上下文。
数据处理引擎114还可包括CPU 118。CPU 118可以是本文所述处理元件其中之一,以及在一些实施例中可包括QAT,以加速一些压缩和密码操作。例如,基于AES或AES-NI的加密操作可由CPU 118以优化方式并且比使用HSM 116更为有效地执行。因此,卸载调度器108在从请求来确定要求AES加密时可向CPU 118调度这类数据任务。在一些实施例中,卸载调度器108可在调度之前确定CPU 118的工作负荷,以及如果工作负荷在处理能力或时间方面满足或超过预定阈值,则可采用专用SOC 120(其可包括本领域内所使用的SOC的一个或多个)来调度任务。
图2示出卸载调度器200的框图,其可对应于针对图1所述的卸载调度器108。卸载调度器200可配置成分析数据请求202,并且调度与数据请求202关联的一个或多个数据任务,以用于由数据处理引擎114的适当组件基于各种标准的一个或多个进行处理。数据请求202可包括与要访问数据有关的信息,例如虚拟或物理存储器中的地址以及针对请求的类型的其它信息。例如,数据请求202可指示数据与特定地理、加密标准或压缩标准关联,其可显式地识别或者使用例如存储器地址的信息来确定。
一般来说,卸载调度器112可执行实时性能评估204,并且确定数据请求202是针对压缩/解压缩、地理特定密码操作还是另一种类型的操作(例如基于AES的加密)。另外,实时性能评估204可确定数据处理引擎114的一个或多个处理元件的工作负荷。例如,如果处理元件具有比预定阈值(基于时间和/或效率)更高的工作负荷,则数据任务可被调度给能够更快和/或更有效地执行任务的另一个处理元件。实时性能评估可使用来自处理器或者能够追踪处理器性能的模块的信息的一个或多个请求来确定。
在一些实施例中,卸载调度器112可使用一个或多个过程来确定和/或得到特定处理元件和特定处理元件相对特定数据任务的性能特性。在第一示例中,设置或配置用户界面可由管理员或另一用户用来输入期望的性能参数。这些性能参数可根据平均或峰加密速率、平均或峰解密速率、平均或峰数据压缩速率和/或平均或峰数据解压缩速率来表达。这类性能参数可存储在由卸载调度器112可访问的数据库(未示出)中。在第二示例中,驱动器界面可展示性能设定,其已由加密卸载处理器供应商预先配置。在第三示例中,驱动器/可管理性界面可运行基准,以便动态地以及(在一些实施例中)周期地评估各种处理元件相对于本文所述的各种数据任务的基准性能。结果可存储在数据库内并且是卸载调度器112可访问的。卸载调度器112可使用所存储基准值(其已使用上述示例的一个或多个来得到)来计算给定当前系统负荷的情况下的性能降级估计。
执行计划206可由卸载调度器200来确定,其中与数据请求202相关的数据任务基于实时性能评估204来调度。在压缩/解压缩操作或地理特定密码操作的情况下,卸载调度器200可向HSM 116调度对应数据处理任务。在其它操作(包括基于AES的加密)的情况下,卸载调度器可向CPU 118调度对应数据处理任务。在CPU 118正经历比正常工作负荷更高的工作负荷的一些状况中,卸载调度器200可配置成使用专用SOC 120来调度其它操作,或者将操作延迟直到CPU 118为可用的这种时间。卸载调度器112的逻辑流程在下面针对图7-8更详细描述。
图3示出环形缓冲器池300,其可对应于环形缓冲器池110。环形缓冲器池300可提供数据缓冲和装置虚拟化能力。环形缓冲器池300可包括使用位于运行VMM的物理服务器上的DRAM或者本文所述的其它类型的存储器的物理存储器空间。环形缓冲器池300可组织成包括组织为环形缓冲器对(又称作圆形缓冲器、圆形队列或循环缓冲器(cyclic buffer))的DRAM的一个或多个束。每对环形缓冲器可包括用于请求的一个环形缓冲器和用于响应的另一个环形缓冲器,以及每对可被指配给上述VM(例如VM 102)。在一些实施例中,每个环形缓冲器可被指配唯一物理DRAM空间,并且可被指配给VM的虚拟盘总线。
环形缓冲器池300可包括多个束,其可被指配DRAM的唯一部分。虽然仅示出两个束(302、312),但是可创建更多或更少束。束302、312的每个可包括一对环形缓冲器(304、306)和(314、316)。每对可包括请求环(301、314)和响应环(306、316)。请求环可用来缓冲对数据的压缩和/或加密/解密的明文请求。响应环可用来缓冲密文,其是完成压缩和/或加密/解密操作的结果。虽然实施例公开环形缓冲器池的使用,但是能够意识到,在其它实施例中,可基于特定系统的设计和性能考虑来使用能够缓冲数据的不同数据结构。
图4示出按照实施例的系统400。具体来说,图4示出密钥管理器404(其可与图1的密钥管理器112对应)、卸载调度器402和密码引擎418之间的交互。密钥管理器404可提供密钥管理能力,其允许卸载调度器402经由接口406来执行密钥相关操作,包括但不限于添加、删除、查找和密钥生成。接口406可以是安全接口,其允许密钥管理器404、卸载调度器402和密码引擎418之间的数据和密钥的传递。访问接口406和访问控制408可以是采用硬件和/或软件所实现的组件,并且可提供对密钥数据库410内存储的密钥的匹配和访问。
密钥数据库410可存储与由VMM所管理的访客VM关联的一个或多个密码密钥。密钥数据库可使用计算机可读存储介质来实现,以及在一些实施例中可使用安全飞地和安全执行环境(例如INTEL®安全防护扩展(SGX))来实现。密钥可服从由访问控制408所存储和管理的访问策略,以及密钥数据库410可将每个密钥与一个或多个访问级别关联。例如,访问控制408可基于指配给某些访客VM的访问级别来限制对密钥的访问。在示例中,密钥数据库410中存储的特定密钥可与分类访问级别关联。在实施例中,访问接口406可接收使用密钥来访问数据的请求,以及仅在通过访问控制408的请求访客VM具有对密钥的正确访问级别的检验时,密钥才将是从密钥数据库410对我们可用的。
在一些实施例中,密钥管理器404可包括随机数生成器TRNG 412。TRNG 412可以是真随机数生成器,其可利用INTEL®数字随机数发生器(DRNG)技术。TRNG 412可包括在密钥管理器404内,以提供对密码功能以及密钥管理和生成的随机数的快速和安全访问。
密钥管理器404可通过总线414与密码引擎418进行通信。总线414可以是安全通道或接口,其允许密钥在密钥管理器404与密码引擎418之间传递。密码引擎418可包括本文所述处理元件的一个或多个(例如HSM或CPU),并且可利用环形缓冲器416来存储加密密钥或数据,同时执行由卸载调度器402所指配的压缩或密码操作。
图5示出按照实施例的系统500的框图。系统500包括应用502,其可通过API 504与OS驱动器506进行交互。应用502可以是可用来在一个或多个VM上运行的各种软件应用之一,以及OS驱动器506可以是可用来在应用与OS之间进行通信的各种OS驱动器之一。OS驱动器506可通过IO/存储器访问接口508(其可以是本文所述的各种接口之一)与HSM 530的数据/控制接口510进行通信。
在实施例中,HSM 530可包括控制器522、存储器524和非易失性存储设备526,其中的每个可与本文所述的一个或多个控制器和存储器一致。策略528可基于与VM关联的一个或多个访问策略来限制对HSM 530的访问。例如,某些VM可以能够访问HSM 530,而其它则不可以。策略528可采用硬件和/或软件来实现,以及访问各种VM之间的存储的关系并且访问限制对HSM 530的访问的策略。
在实施例中,HSM 530可包括专用密码处理器512,其可优化成执行特定标准或标准集合(例如,地理特定标准,像SMS4和/或ZUC)的加密/解密操作。在一些实施例中,一个或多个密码处理器可包括在HSM 530内,然而为了说明目的而仅在HSM 530内示出一个。压缩处理器514也可包括在HSM 530内,其可优化成执行某些压缩操作。能够意识到,多于一个或者完全没有压缩处理器514可包括在HSM 530内。在各种实施例中,密码处理和压缩处理可使用单独HSM来执行,或者可组合为单个HSM(例如HSM 530)。密码处理器512和压缩处理器514可有权访问加密/解密引擎518和密钥生成组件518,其可在某些操作期间用来执行密码和密钥操作。
本文所述的装置可以是多种类型的计算装置的任一种,非限制性地包括服务器、工作站、数据中心、膝上型计算机、Ultrabook®计算机、平板计算机、智能电话等。
在各种实施例中,上述处理器可包括广泛的各种市场销售处理器的任一种,非限制性地包括:AMD® Athlon®、Duron®或Opteron®处理器;ARM®应用、嵌入式或安全处理器;IBM®和/或Motorola® DragonBall®或PowerPC®处理器;IBM和/或Sony® Cell处理器;或者Intel® Celeron®、Core (2) Duo®、Core (2) Quad®、Core i3®、Core i5®、Core i7®、Atom®、Itanium®、Pentium®、Xeon®或XScale®处理器。此外,这些处理器元件的一个或多个可包括多核处理器(无论是相同还是单独管芯上共存的多个核)和/或通过其采用某种方式链接多个物理分开的处理器的另外某个种类的多处理器架构。此外,在各种实施例中,任何数量的处理器元件110、210和/或410可包括置信执行环境(例如IntelCSE®、Intel ME®、Intel VT®、Intel SGX®、ARM TrustedZone®等),以提供敏感信息的处理和/或存储。置信执行环境可用于本文所述的各种实施例,包括用于密钥管理以及密码保护数据的存储和传递。
在各种实施例中,上述存储装置可基于广泛的各种信息存储技术的任一种,可能包括要求电力的不间断提供的易失性技术,以及可能包括需要使用可以是或者可以不是可移除的机器可读存储介质的技术。因此,这些存储设备的每个可包括存储装置的广泛的各种类型的任一种(或者类型的组合),非限制性地包括只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储器、聚合物存储器(例如铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁或光卡、一个或多个单独铁磁盘驱动器或者组织为一个或多个阵列的多个存储装置(例如组织为独立磁盘冗余阵列的阵列或RAID阵列的多个铁磁盘驱动器)。应当注意,虽然这些存储装置的每个描绘为单个块,但是这些的一个或多个可包括可基于不同存储技术的多个存储装置。因此,例如,这些描绘的存储设备的每个的一个或多个可表示光驱动器或闪速存储卡读取器(通过其可以在某种形式的机器可读存储介质上存储和输送程序和/或数据)、铁磁盘驱动器(将程序和/或数据本地存储相对延长的周期)以及一个或多个易失性固态存储器装置(使能对程序和/或数据的相对快访问,例如SRAM或DRAM)的组合。还应当注意,这些存储设备的每个可由基于相同存储技术的多个存储组件来组成,但是其可作为用途的专门化(例如,一些DRAM装置用作主存储设备,而其它DRAM装置用作图形控制器的不同帧缓冲器)的结果而单独保持。
在各种实施例中,网络可以是可能限制到在单个大楼或者其它相对受限的区域内延伸的单个网络、可能延伸相当大的距离的连接网络的组合,和/或可包括因特网。因此,网络可基于通过其可以交换信号的多种通信技术的任一种(或组合),非限制性地包括采用电和/或光传导线缆布线的有线技术以及采用红外、射频或其它形式的无线传输的无线技术。相应地,上述接口可包括提供必要功能性的至少一些功能性以实现这种耦合的电路。然而,上述接口也可至少部分采用由处理器元件执行(例如以实现协议栈或其它特征)的指令序列来实现。在网络的一个或多个部分可采用电和/或光传导线缆布线的情况下,接口可采用符合多种工业标准的任一种的信令和/或协议,非限制性地包括RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。备选地或另外地,在网络的一个或多个部分需要使用无线信号传输的情况下,这些接口的对应接口可采用符合多种工业标准的任一种的信令和/或协议,非限制性地包括IEEE 802.11a、802.11b、802.11g、802.16、802.20(通常称作“移动宽带无线接入”);蓝牙;ZigBee或者蜂窝无线电话服务(例如采用通用分组无线电业务的GSM(GSM/GPRS)、CDMA/1xRTT、增强全球演进数据速率(EDGE)、仅演进数据/优化(EV-DO)、数据和语音的演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4G LTE等)。应当注意,虽然接口描绘为单个块,但是它可包括可基于不同信令技术的多个接口。特别是在这些接口的一个或多个将组件耦合到多于一个网络(其各自采用不同通信技术)的情况下,情况可以是这样。
以下附图的一些可包括逻辑流程。虽然本文呈现的这类附图可包括具体逻辑流程,但是能够理解,逻辑流程只提供如何能够实现如本文所述的一般功能性的示例。此外,给定逻辑流程不一定必须采用所呈现顺序来执行,除非以其它方式指示。另外,给定逻辑流程可通过硬件元件、由处理器所执行的软件元件或者它们的任何组合来实现。例如,逻辑流程可通过处理器组件执行制品(例如存储介质)上存储的指令来实现。存储介质可包括任何非暂时计算机可读介质或机器可读介质,例如光、磁或半导体存储设备。存储介质可存储各种类型的计算机可执行指令,例如实现一个或多个所公开逻辑流程的指令。计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦或不可擦存储器、可写或可重写存储器等。计算机可执行指令的示例可包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码等。实施例并不局限于此上下文。
图6示出按照实施例的逻辑流程600。逻辑流程600陈述按照实施例的初始化过程。初始化可在VM引导之前进行,以及初始化过程可初始化一个或多个模块。在框602,主机按照众所周知的主机引导过程进行引导。
在框604,若干初始化步骤可对本文所述的模块或组件进行。例如,在框604-a,可加载和初始化数据处理引擎,其可使一个或多个处理元件是主机可用的,并且随后经由VMM来创建VM。在框604-b,可初始化密钥管理模块,其可包括准备用于访问的密钥数据库,并且初始化任何安全存储器或接口,使得它们在压缩和/或密码操作期间可被访问。如上所述,在框604-c,可创建环形缓冲器池,其可初始化成含有每个VM的环形缓冲器对。
在框606,可创建虚拟机,其可由VMM来管理,使得VM被提供对主机的访问。在框608,来自环形缓冲器池的环形束可被指配给VM,并且来自环形束的每个环形缓冲器(每个环形束包括一对环形缓冲器,如上所述)可由VMM来映射到虚拟盘总线。
在框610,密码密钥和密钥映射可在密钥管理模块中生成。密码密钥和密钥映射可用来将VM与密钥管理模块内的一个或多个密钥关联,并且可基于一个或多个访问策略来允许对某些密钥的访问。
图7-8示出按照实施例的逻辑流程700和800。逻辑流程700示出外出或加密情形,以及逻辑流程800示出进入或解密情形。两种情形均可使用如本文所述的卸载调度器来执行。在框702/802,可进行对加密(702)或解密(802)的数据请求。请求可陈述请求的一个或多个特性,包括要访问的数据、使用存储器地址的数据的位置、要使用的密码标准、是否请求压缩或者识别请求的性质的其它信息。
在框704/804,可确定请求是否涉及压缩或地理特定加密/解密。虽然这些示例用于说明目的,但是能够意识到,加密/解密可以不需要是地理特定的,并且可确定某些压缩和密码标准的标识(尽管地理)。在框706/806,可确定已请求了压缩或地理特定加密/解密操作,并且该请求可使用HSM来调度,从而提供增加的优化和性能。
在框708/808,可确定已请求了非地理特定密码标准(例如AES或AES-NI加密/解密操作)。在这种情况下,CPU可已经优化成执行这类操作,并且可以不期望HSM的使用。然而,在一些情况下,CPU可繁忙,并且可存在向CPU指配这类操作中涉及的延迟。因此,在框708/808,可确定CPU是否具有超过预定阈值的工作负荷(其可以是性能或时间的单位),并且可通过直接从CPU、从性能确定模块或从基础系统进行对数据的一个或多个请求来确定。如果CPU不太繁忙,则请求可在712/812采用CPU来调度。如果CPU繁忙,则可在710/810以请求来调度SOC。同样,可确定与将CPU用于任务所关联的延迟是否高于阈值,并且如果情况是那样,则专用SOC可用于一个或多个任务。此外,当使用专用SOC的完成的估计时间低于使用CPU的完成的估计时间时,一个或多个数据任务可被调度给专用SOC。实施例并不局限于此上下文。
图9示出按照实施例的逻辑流程900。逻辑流程900可如本文所述由卸载调度器来执行。在框902,卸载调度组件可接收对数据的压缩或加密的数据请求。在一些实施例中,数据请求还可包括解密。数据请求可包括与要访问数据有关的信息,例如虚拟或物理存储器中的地址以及针对请求的类型的其它信息。例如,数据请求202可指示数据与特定地理、加密标准或压缩标准关联。
在框904,卸载调度组件可确定所接收数据请求的一个或多个特性,例如数据请求是否涉及压缩或特定密码标准。特性可基于数据请求内的信息来确定,并且能够从与特定数据存储的位置或者始发请求的位置有关的信息来得出。例如,如果请求从源于与特定加密通道关联的地理(例如中国)的VM进行,则数据请求可确定为与中国加密标准关联。实施例并不局限于此上下文。
在框906,卸载调度组件可基于所确定的一个或多个特性将一个或多个数据任务调度给多个处理元件之一。一般来说,卸载调度器可执行实时性能评估,并且确定数据请求是针对压缩/解压缩、地理特定密码操作还是另一种类型的操作(例如基于AES的加密)。另外,实时性能评估可确定数据处理引擎的一个或多个处理元件的工作负荷。例如,如果处理元件具有比预定阈值(基于时间和/或效率)更高的工作负荷,则数据任务可被调度给能够更快和/或更有效地执行任务的另一个处理元件。
执行计划可由卸载调度器来确定,其中与数据请求相关的数据任务基于实时性能评估来调度。在压缩/解压缩操作或地理特定密码操作的情况下,卸载调度器可例如向HSM调度对应数据处理任务。在其它操作(包括基于AES的加密)的情况下,卸载调度器可向CPU调度对应数据处理任务。在CPU正经历比正常工作负荷更高的工作负荷的一些状况中,卸载调度器可配置成使用专用SOC来调度其它操作,或者将操作延迟直到CPU为可用的这种时间。
图10示出存储介质1000的实施例。存储介质1000可包括制品。在一些示例中,存储介质1000可包括任何非暂时计算机可读介质或机器可读介质,例如光、磁或半导体存储设备。存储介质1000可存储各种类型的计算机可执行指令(例如1002)。例如,存储介质1000可存储各种类型的计算机可执行指令,以使用本文所述的一个或多个处理器和组件来实现逻辑流程600/700/800/900。
计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦或不可擦存储器、可写或可重写存储器等。计算机可执行指令的示例可包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码等。示例并不局限于此上下文。
图11示出适合于实现如先前所述的各种实施例的示范处理架构1100的实施例。更具体来说,处理架构1100(或者其变体)可实现为本文针对图1-5所述的系统和/或装置的部分。
处理架构1100包括在数字处理中常用的各种元件,非限制性地包括一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如本申请所使用的,术语“系统”和“组件”预计指代其中执行数字处理的计算装置的实体,那个实体是硬件、硬件和软件的组合、软件、或者执行中的软件,其示例通过这种描绘的示范处理架构来提供。例如,组件能够是(但不限于)运行在处理器元件上的过程、处理器元件本身、可采用光和/或磁存储介质的存储装置(例如硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、指令的可执行序列、执行的线程、程序和/或整个计算装置(例如整个计算机)。作为说明,在服务器上运行的应用和服务器两者均能够是组件。一个或多个组件能够驻留在过程和/或执行线程内,以及组件能够定位在一个计算装置上和/或分布在两个或更多计算装置之间。此外,组件可通过各种类型的通信介质通信地相互耦合,以协调操作。协调可涉及信息的单向或双向交换。例如,组件可采取通过通信介质所传递的信号的形式来传递信息。信息能够实现为分配给一个或多个信号线的信号。每个消息可以是信号或者串行或大体上并行传送的多个信号。
如描绘的,在实现处理架构1100中,计算装置至少结合处理器元件1110、存储设备1130、到其它装置的接口1190和耦合1115。取决于实现处理架构1100的计算装置的各种方面、包括其预计用途和/或使用条件,这种计算装置还可结合附加组件(非限制性地例如计数器元件1115)。
耦合1115结合一个或多个总线、点对点互连、收发器、缓冲器、交叉点开关和/或通信地至少将处理器元件1110耦合到存储设备1130的其它导体和/或逻辑。耦合1115还可将处理器元件1110耦合到接口1190和显示器接口1155中的一个或多个(取决于这些和/或其它组件中的哪些也存在)。随着处理器元件1110通过耦合1115这样耦合,处理器元件1110能够执行以上对于处理架构1100的详细描述的任务的各种任务。耦合1115可采用多种技术或者技术的组合(通过其来光和/或电传达信号)的任一种来实现。此外,耦合1115的至少部分可采用符合广泛的各种工业标准的任一种的定时和/或协议,非限制性地包括加速图形端口(AGP)、CardBus、扩展工业标准架构(E-ISA)、微通道架构(MCA)、NuBus、外设组件互连(扩展)(PCI-X)、PCI高速(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、HyperTransport™、QuickPath等。
如先前所讨论的,处理器元件1110可包括采用广泛的各种技术的任一种并且采用以多种方式的任一种物理结合的一个或多个核的大量市场销售处理器中的任一种。
如先前所讨论的,存储设备1130可包括基于广泛的各种技术或者技术组合的任一种的一个或多个不同存储装置。更具体来说,如描绘的,存储设备1130可包括易失性存储设备1131(例如基于RAM技术的一种或多种形式的固态存储设备)、非易失性存储设备1132(例如不要求电力的恒定提供以保存其内容的固态、铁磁或其它存储设备)以及可移除介质存储设备1133(例如可移除盘或固态存储卡存储设备,通过其可以在计算装置之间传送信息)。存储设备1130的此描绘为可能包括多种不同类型的存储设备是按照计算装置中多于一种类型的存储装置的平常使用,其中一种类型提供相对快的读取和写入能力,从而使能由处理器元件1110对数据的更快操控(但是可能使用不断要求电力的“易失性”技术),而另一种类型提供非易失性存储的相对高的密度(但是可能提供相对慢的读取和写入能力)。
给定采用不同技术的不同存储装置的经常不同的特性,对于这类不同存储装置还平常的是经过不同存储控制器(其经过不同接口耦合到其不同存储装置)来耦合到计算装置的其它部分。作为例子,在易失性存储设备1131存在并且基于RAM技术的情况下,易失性存储设备1131可通信地经过存储控制器1135a耦合到耦合1115,从而提供到易失性存储设备1131(其也许采用行和列寻址)的适当接口,并且其中存储控制器1135a可执行行刷新和/或其它维护任务以帮助保存易失性存储设备1131内存储的信息。作为另一个示例,在非易失性存储设备1132存在并且包括一个或多个铁磁和/或固态盘驱动器的情况下,非易失性存储设备1132可通信地经过存储控制器1135b耦合到耦合1115,从而提供到非易失性存储设备1132(其也许采用信息块和/或柱面和扇区的寻址)的适当接口。作为又一个示例,在可移除介质存储设备1133存在并且包括采用一件或多件可移除机器可读存储介质1139的一个或多个光和/或固态盘驱动器的情况下,可移除介质存储设备1133可通信地经过存储控制器1135c耦合到耦合1115,从而提供到可移除介质存储设备1133(其也许采用信息块的寻址)的适当接口,并且其中存储控制器1135c可采用延长机器可读存储介质1139的使用期限的特定的方式来协调读取、擦除和写入操作。
取决于作为每个的基础的技术,易失性存储设备1131或者非易失性存储设备1132中的一个或另一个可包括采取机器可读存储介质(其上可存储包括由处理器元件1110可执行的指令序列的例程)的形式的制品。作为示例,在非易失性存储设备1132包括基于铁磁的盘驱动器(例如所谓的“硬盘驱动器”)的情况下,每个这种盘驱动器典型地采用一个或多个旋转盘片,其上沉积并且采用各种图案磁性定向了磁性响应微粒的涂层,以便采用与例如软盘等的可移除存储介质类似的方式来存储信息,例如指令序列。作为另一个示例,非易失性存储设备1132可由固态存储装置组来组成,以便采用与致密闪存卡类似的方式来存储信息,例如指令序列。再次平常的是在不同时间、在计算装置中采用不同类型的存储装置来存储可执行例程和/或数据。因此,包括将要由处理器元件1110所执行的指令序列的例程最初可存储在机器可读存储介质1139上,以及可移除介质存储设备1133随后可用于将那个例程复制到非易失性存储设备1132,以用于不要求机器可读存储介质1139和/或易失性存储设备1131的持续存在的较长期存储,以便在那个例程被执行时,使能通过处理器元件1110的更快访问。
如先前所讨论的,接口1190可采用与可用来通信地将计算装置耦合到一个或多个其它装置的多种通信技术的任一种对应的多种信令技术的任一种。各种形式的有线或无线信令中的一个或两者再次可用来使处理器元件1110能够可能经过网络(例如网络1199)或者网络的互连集合与输入/输出装置(例如,所描绘的示例键盘1140或打印机1145)和/或其它计算装置进行交互。按照常常必须由任一个计算装置来支持的多个类型的信令和/或协议的经常极为不同特性,接口1190描绘为包括多个不同接口控制器1195a、1195b和1195c。接口控制器1195a可采用多种类型的有线数字串行接口或射频无线接口的任一种来从用户输入装置(例如所描绘的键盘1140)来接收串行传送的消息。接口控制器1195b可采用多种基于线缆布线或无线信令、定时和/或协议的任一种、经过所描绘的网络1199(也许包括一个或多个链路的网络、较小网络或者也许因特网)来访问其它计算装置。接口1195c可采用多种电气导电线缆布线的任一个,从而使能将数据传达到所描绘的打印机1145的串行或并行信号传输的使用。可通信地经过接口1190的一个或多个接口控制器耦合的装置的其它示例非限制性地包括话筒、遥控、记录笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板、操纵杆、其它键盘、视网膜扫描仪、触摸屏的触摸输入组件、轨迹球、各种传感器、激光打印机、喷墨打印机、机械机器人、铣床等。
在计算装置通信地耦合到(或者也许实际上结合)显示器(例如所描绘的示例显示器1150)的情况下,实现处理架构1100的这种计算装置还可结合显示器接口1155。虽然更一般类型的接口可用于通信地耦合到显示器,但是在显示器上可视地显示内容的各种形式通常所要求的略微专门化的附加处理以及所使用的基于线缆布线的接口的略微专门化性质常常使不同显示器接口的提供是期望的。可由显示器接口1155用于显示器1150的通信耦合中的有线和/或无线信令技术可利用符合多种工业标准的任一种的信令和/或协议,非限制性地包括多种模拟视频接口、数字视频接口(DVI)、DisplayPort等的任一种。
图12示出系统1200的一个实施例。在各种实施例中,系统1200可表示适合供本文所述的一个或多个实施例使用的系统或架构。
如图12中所示,系统1200可包括多个元件。按照设计或性能限制的给定集合的需要,一个或多个元件可使用一个或多个电路、组件、寄存器、处理器、软件子例程、模块或者它们的任何组合来实现。虽然图12作为示例示出采用某种拓扑的有限数量的元件,但是能够意识到,按照给定实现的需要,在系统1200中可使用采用任何适当拓扑的或更多或更少的元件。实施例并不局限于此上下文。
在各种实施例中,系统1200可包括计算装置1205,其可以是任何类型的计算机或处理装置,包括个人计算机、桌上型计算机、平板计算机、上网本计算机、笔记本计算机、膝上型计算机、服务器、服务器群、刀片服务器或者任何其它类型的服务器等。
计算装置的示例还可包括布置成供人佩戴的计算机,例如手腕计算机、手指计算机、指环计算机、眼镜计算机、皮带夹计算机、臂章计算机、鞋计算机、服饰计算机和其它可佩戴计算机。在实施例中,例如,移动计算装置可实现为智能电话,其能够执行计算机应用以及进行语音通信和/或数据通信。虽然作为示例可采用实现为智能电话的移动计算装置来描述一些实施例,但是可意识到,其它实施例也可使用其它无线移动计算装置来实现。实施例并不局限于此上下文。
在各种实施例中,计算装置1205可包括处理器电路1202。处理器电路1202可使用任何处理器或逻辑装置来实现。处理电路1202可以是任何类型的计算元件的一个或多个,例如(但不限于)微处理器、处理器、中央处理单元、数字信号处理单元、双核处理器、移动装置处理器、桌上型处理器、单核处理器、片上系统(SoC)装置、复杂指令集计算(CISC)微处理器、简化指令集(RISC)微处理器、超长指令字(VLIW)微处理器或者单个芯片或集成电路上的任何其它类型的处理器或处理电路。处理电路1202可经由互连1253(例如一个或多个总线、控制线和数据线)连接到计算系统的其它元件并且与其通信。
在一个实施例中,计算装置1205可包括耦合到处理器电路1202的存储器单元1204。按照给定实现的需要,存储器单元1204可经由通信总线1253或者通过处理器电路1202与存储器单元1204之间的专用通信总线来耦合到处理器电路1202。存储器单元1204可使用能够存储数据的任何机器可读或计算机可读介质来实现,包括易失性和非易失性存储器两者。在一些实施例中,机器可读或计算机可读介质可包括非暂时介质。实施例并不局限于此上下文。
在各种实施例中,计算装置1205可包括图形处理单元(GPU)1206。GPU 1206可包括优化成执行图形有关操作的任何处理单元、逻辑或电路以及视频解码器引擎和帧相关引擎。GPU 906可用来渲染各种应用(例如视频游戏、图形、计算机辅助设计(CAD)、模拟和虚拟化工具、成像等)的2维(2-D)和/或3维(3-D)图像。各种实施例并不局限于这种方式;GPU1206可处理任何类型的图形数据,例如图片、视频、程序、动画、3D、2D、对象图像等。
在一些实施例中,计算装置1205可包括显示控制器1208。显示控制器1208可以是用于处理图形信息并且显示图形信息的任何类型的处理器、控制器、电路、逻辑等。显示控制器1208可从一个或多个缓冲器接收或检索图形信息。在处理信息之后,显示控制器1208可将图形信息发送给显示器,其可有线地(例如显示器1245)或者使用收发器无线地耦合到计算装置1205,下面进行描述。
在各种实施例中,系统1200可包括收发器1244。收发器1244可包括一个或多个无线电设备,其能够使用各种适当的无线通信技术来传送和接收信号。这类技术可涉及跨一个或多个无线网络的通信。示范无线网络包括(但不限于)无线局域网(WLAN)、无线个人区域网络(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这类网络的通信中,收发器1244可按照任何版本的一个或多个适用标准进行操作。实施例并不局限于此上下文。
在各种实施例中,计算装置1205可包括显示器1245。显示器1245可组成能够显示从处理器电路1202、图形处理单元1206和显示控制器1208所接收的信息的任何显示装置。
在各种实施例中,计算装置1205可包括存储设备1246。存储设备1246可实现为非易失性存储设备,例如(但不限于)磁盘驱动器、光盘驱动器、磁带驱动器、内部存储装置、附连存储装置、闪速存储器、电池备用SDRAM(同步DRAM)和/或网络可访问存储装置。在实施例中,例如,存储设备1246可包括在包括多个硬盘驱动器时增加有价值数字媒体的存储性能增强保护的技术。存储设备1246的另外示例可包括硬盘、软盘、致密盘只读存储器(CD-ROM)、可记录致密盘(CD-R)、可重写致密盘(CD-RW)、光盘、磁介质、磁光介质、可移除存储卡或盘、各种类型的DVD装置、磁带装置、盒式磁带装置等。实施例并不局限于此上下文。
在各种实施例中,计算装置1205可包括一个或多个I/O适配器1247。I/O适配器1247的示例可包括通用串行总线(USB)端口/适配器、IEEE 1394火线端口/适配器等。实施例并不局限于此上下文。
更一般来说,本文所述装置的各种元件可包括各种硬件元件、软件元件或者两者的组合。硬件元件的示例可包括装置、逻辑装置、组件、处理器、微处理器、电路、处理器元件、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑装置(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体装置、芯片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者它们的任何组合。然而,确定实施例是否使用硬件元件和/或软件元件来实现可按照任何数量的因素而改变,按照给定实现的需要,所述因素是例如期望的计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计和性能限制。
一些实施例可使用表达“一个实施例”或“实施例”连同其派生来描述。这些术语表示结合该实施例所述的特定特征、结构或特性包括在至少一个实施例中。短语“在一个实施例中”在说明书的各个位置的出现不一定全部指相同实施例。此外,一些实施例可使用表达“耦合”和“连接”连同其派生来描述。这些术语不一定意在作为彼此的同义词。例如,一些实施例可使用术语“连接”和/或“耦合”来描述,以指示两个或更多元件相互直接物理或电接触。然而,术语“耦合”还可表示两个或更多元件不是相互直接接触,而仍然相互配合或交互。
要强调,提供本公开的摘要以允许读者快速确定技术公开的性质。它在应理解它将不用来解释或限制权利要求书的范围或含意的情况下被提交。另外,在以上详细描述中能够看到,各种特征集中到单个实施例中,用于简化本公开的目的。公开的这种方法不是要被解释为反映了要求保护的实施例要求比每个权利要求中明确记载的更多特征的意图。相反,如以下权利要求书所反映,发明主题在于少于单个所公开实施例的全部特征。因此,以下权利要求书结合到详细描述中,其中每个权利要求本身代表单独实施例。在所附权利要求书中,术语“包括”和“其中”分别用作相应术语“包含”和“在其中”的易懂英语等效体。此外,术语“第一”、“第二”、“第三”等只用作标号,而不是意在对其对象强加数字要求。
以上已描述的包括所公开架构的示例。当然,不可能描述组件和/或方法的每一个可设想组合,但是本领域的普通技术人员可承认,许多另外组合和置换是可能的。相应地,新架构意在包含全部这类改变、修改和变更,其落入所附权利要求书的精神和范围之内。本公开现在转向提供各种示例实现。
示例1. 一种设备,包括逻辑,其一部分采用硬件来实现,该逻辑包括要执行下列步骤的卸载调度组件:接收包括要对数据进行压缩、解压缩、加密或解密的指示的数据请求;确定所接收数据请求的一个或多个特性;以及基于所确定的一个或多个特性向多个处理元件之一调度一个或多个数据任务。
示例2. 示例1的设备,多个处理元件是数据处理引擎的组件,数据处理引擎包括硬件安全模块、CPU或SOC中的一个或多个。
示例3. 示例1的设备,一个或多个特性包括数据请求是否针对压缩、解压缩或地理特定密码操作。
示例4. 示例3的设备,卸载调度组件要向硬件安全模块调度压缩、解压缩或地理特定密码操作。
示例5. 示例2的设备,一个或多个特性包括数据请求是否针对AES或AES-NI操作。
示例6. 示例5的设备,卸载调度组件要执行下列步骤:确定CPU的工作负荷是否处于或高于阈值;以及基于CPU的工作负荷处于或高于阈值的确定来向SOC调度一个或多个数据任务;或者基于关于CPU的工作负荷不处于或高于阈值的确定来向CPU调度一个或多个数据任务。
示例7. 示例5的设备,卸载调度组件要执行下列步骤:确定与CPU关联的延迟是否处于或高于阈值;以及基于与CPU关联的延迟处于或高于阈值的确定来向SOC调度一个或多个数据任务;或者基于与CPU关联的延迟不处于或高于阈值的确定来向CPU调度一个或多个数据任务。
示例8. 示例5的设备,卸载调度组件基于使用SOC的完成的估计时间低于使用CPU的完成的估计时间的确定来向SOC调度一个或多个数据任务。
示例9. 示例1的设备,卸载调度组件要接收来自一个或多个虚拟机的数据请求。
示例10. 示例1的设备,卸载调度组件对虚拟机监测器进行操作。
示例11. 示例1的设备,卸载调度组件要存储和接收来自环形缓冲器池的数据。
示例12. 示例11的设备,环形缓冲器池包括一个或多个环形缓冲器对,每个环形缓冲器对对应于多个虚拟机之一。
示例13. 示例1的设备,多个处理元件访问密钥管理器,以执行与一个或多个数据任务关联的密码操作。
示例14. 示例13的设备,密钥管理器包括专用随机数发生器。
示例15. 示例13的设备,密钥管理器包括安全飞地内存储的密钥数据库。
示例16. 示例13的设备,密钥管理器包括确定对所请求密钥的访问是否符合一个或多个访问策略的访问控制组件。
示例17. 至少一个机器可读存储介质,包括指令,所述指令在由处理器执行时使该处理器执行下列步骤:由卸载调度组件接收包括对数据的压缩、解压缩、加密或解密的指示的数据请求;由卸载调度组件确定所接收数据请求的一个或多个特性;以及由卸载调度组件基于所确定的一个或多个特性来向多个处理元件之一调度一个或多个数据任务。
示例18. 示例17的至少一个机器可读存储介质,多个处理元件是数据处理引擎的组件,数据处理引擎包括硬件安全模块、CPU或SOC中的一个或多个。
示例19. 示例17的至少一个机器可读存储介质,一个或多个特性包括数据请求是否针对压缩、解压缩或地理特定密码操作。
示例20. 示例19的至少一个机器可读存储介质,卸载调度组件向硬件安全模块调度压缩、解压缩或地理特定密码操作。
示例21. 示例18的至少一个机器可读存储介质,一个或多个特性包括数据请求是否针对AES或AES-NI操作。
示例22. 示例20的至少一个机器可读存储介质,卸载调度组件要执行下列步骤:确定CPU的工作负荷是否处于或高于阈值;以及基于CPU的工作负荷处于或高于阈值的确定来向SOC调度一个或多个数据任务;或者基于CPU的工作负荷不处于或高于阈值的确定来向CPU调度一个或多个数据任务。
示例23. 示例20的至少一个机器可读存储介质,卸载调度组件要执行下列步骤:确定与CPU关联的延迟是否处于或高于阈值;以及基于与CPU关联的延迟处于或高于阈值的确定来向SOC调度一个或多个数据任务;或者基于与CPU关联的延迟不处于或高于阈值的确定来向CPU调度一个或多个数据任务。
示例24. 示例20的至少一个机器可读存储介质,卸载调度组件基于使用SOC的完成的估计时间低于使用CPU的完成的估计时间的确定来向SOC调度一个或多个数据任务。
示例25. 示例的至少一个机器可读存储介质,卸载调度组件要接收来自一个或多个虚拟机的数据请求。
示例26. 示例17的至少一个机器可读存储介质,卸载调度组件要对虚拟机监测器进行操作。
示例27. 示例的至少一个机器可读存储介质,卸载调度组件要存储和接收来自环形缓冲器池的数据。
示例28. 示例27的至少一个机器可读存储介质,环形缓冲器池包括一个或多个环形缓冲器对,每个环形缓冲器对对应于多个虚拟机之一。
示例29. 示例17的至少一个机器可读存储介质,多个处理元件访问密钥管理器,以执行与一个或多个数据任务关联的密码操作。
示例30. 示例29的至少一个机器可读存储介质,密钥管理器包括专用随机数发生器。
示例31. 示例29的至少一个机器可读存储介质,密钥管理器包括安全飞地内存储的密钥数据库。
示例32. 示例29的至少一个机器可读存储介质,密钥管理器包括确定对所请求密钥的访问是否符合一个或多个访问策略的访问控制组件。
示例33. 一种计算机实现方法,包括:由卸载调度组件接收包括对数据的压缩、解压缩、加密或解密的指示的数据请求;由卸载调度组件确定所接收数据请求的一个或多个特性;以及由卸载调度组件基于所确定的一个或多个特性来向多个处理元件之一调度一个或多个数据任务。
示例34. 示例33的计算机实现方法,多个处理元件是包括硬件安全模块、CPU或SOC中的一个或多个的数据处理引擎的组件。
示例35. 示例33的计算机实现方法,一个或多个特性包括数据请求是否针对压缩、解压缩或地理特定密码操作。
示例36. 示例35的计算机实现方法,卸载调度组件要向硬件安全模块调度压缩、解压缩和地理特定密码操作。
示例37. 示例34的计算机实现方法,一个或多个特性包括数据请求是否针对AES或AES-NI操作。
示例38. 示例36的计算机实现方法,卸载调度组件要执行下列步骤:确定CPU的工作负荷是否处于或高于阈值;以及基于CPU的工作负荷处于或高于阈值的确定来向SOC调度一个或多个数据任务;或者基于关于CPU的工作负荷不处于或高于阈值的确定来向CPU调度一个或多个数据任务。
示例39. 示例36的计算机实现方法,卸载调度组件要执行下列步骤:确定与CPU关联的延迟是否处于或高于阈值;以及基于与CPU关联的延迟处于或高于阈值的确定来向SOC调度一个或多个数据任务;或者基于与CPU关联的延迟不处于或高于阈值的确定来向CPU调度一个或多个数据任务。
示例40. 示例36的计算机实现方法,卸载调度组件要基于使用SOC的完成的估计时间低于使用CPU的完成的估计时间的确定来向SOC调度一个或多个数据任务。
示例41. 示例的计算机实现方法,卸载调度组件接收来自一个或多个虚拟机的数据请求。
示例42. 示例33的计算机实现方法,卸载调度组件对虚拟机监测器进行操作。
示例43. 示例33的计算机实现方法,卸载调度组件要存储和接收来自环形缓冲器池的数据。
示例44. 示例43的计算机实现方法,环形缓冲器池包括一个或多个环形缓冲器对,每个环形缓冲器对对应于多个虚拟机之一。
示例45. 示例33的计算机实现方法,多个处理元件要访问密钥管理器,以执行与一个或多个数据任务关联的密码操作。
示例46. 示例45的计算机实现方法,密钥管理器包括专用随机数发生器。
示例47. 示例45的计算机实现方法,密钥管理器包括安全飞地内存储的密钥数据库。
示例48. 示例45的计算机实现方法,密钥管理器包括确定对所请求密钥的访问是否符合一个或多个访问策略的访问控制组件。
示例49. 一种用于装置的设备,该设备包括用于执行示例33-48的任一个的方法的部件。
示例50. 一种设备,包括:用于由卸载调度组件接收包括对数据的压缩、解压缩、加密或解密的指示的数据请求的部件;用于由卸载调度组件确定所接收数据请求的一个或多个特性的部件;以及用于由卸载调度组件基于所确定的一个或多个特性来向多个处理元件之一调度一个或多个数据任务的部件。

Claims (27)

1.一种数据中心中的设备,所述设备包括逻辑,所述逻辑的一部分采用硬件来实现,所述逻辑要包括:
卸载调度组件,所述卸载调度组件要执行下列步骤:
接收包括对数据进行压缩、解压缩、加密或解密的指示的数据请求;
确定所接收数据请求的一个或多个特性,所述一个或多个特性包括所述数据请求是否针对压缩、解压缩或地理特定密码操作;以及
基于所确定的一个或多个特性来向多个处理元件之一调度一个或多个数据任务;
其中,当所述数据请求针对所述压缩、解压缩或地理特定密码操作时,所述卸载调度组件向硬件安全模块调度数据任务,所述硬件安全模块被优化以执行密码或压缩操作。
2.如权利要求1所述的设备,所述多个处理元件是数据处理引擎的组件,所述数据处理引擎包括所述硬件安全模块、CPU或专用SOC中的一个或多个。
3.如权利要求2所述的设备,所述一个或多个特性包括所述数据请求是否针对AES或AES-NI操作。
4.如权利要求3所述的设备,所述卸载调度组件要:
确定所述CPU的工作负荷是否处于或高于阈值;以及
基于所述CPU的所述工作负荷处于或高于所述阈值的确定来向所述专用SOC调度所述一个或多个数据任务;或者
基于所述CPU的所述工作负荷不处于或高于所述阈值的确定来向所述CPU调度所述一个或多个数据任务。
5.如权利要求3所述的设备,所述卸载调度组件要:
确定与所述CPU关联的延迟是否处于或高于阈值;以及
基于与所述CPU关联的所述延迟处于或高于所述阈值的确定来向所述专用SOC调度所述一个或多个数据任务;或者
基于与所述CPU关联的所述延迟不处于或高于所述阈值的确定来向所述CPU调度所述一个或多个数据任务。
6.如权利要求3所述的设备,所述卸载调度组件要基于使用所述专用SOC的完成的估计时间低于使用所述CPU的完成的估计时间的确定来向所述专用SOC调度所述一个或多个数据任务。
7.如权利要求1所述的设备,所述卸载调度组件要接收来自一个或多个虚拟机的所述数据请求。
8.如权利要求1所述的设备,所述卸载调度组件要对虚拟机监测器进行操作。
9.一种数据中心中的设备,包括:
用于接收包括对数据进行压缩、解压缩、加密或解密的指示的数据请求的部件;
用于确定所接收数据请求的一个或多个特性的部件,所述一个或多个特性包括所述数据请求是否针对压缩、解压缩或地理特定密码操作;以及
用于基于所确定的一个或多个特性来向多个处理元件之一调度一个或多个数据任务的部件;
其中,当所述数据请求针对所述压缩、解压缩或地理特定密码操作时,所述用于调度一个或多个数据任务的部件向硬件安全模块调度数据任务,所述硬件安全模块被优化以执行密码或压缩操作。
10.如权利要求9所述的设备,所述多个处理元件是数据处理引擎的组件,所述数据处理引擎包括所述硬件安全模块、CPU或专用SOC中的一个或多个。
11.如权利要求10所述的设备,所述一个或多个特性包括所述数据请求是否针对AES或AES-NI操作。
12.如权利要求11所述的设备,用于调度的所述部件要:
确定所述CPU的工作负荷是否处于或高于阈值;以及
基于所述CPU的所述工作负荷处于或高于所述阈值的确定来向所述专用SOC调度所述一个或多个数据任务;或者
基于所述CPU的所述工作负荷不处于或高于所述阈值的确定来向所述CPU调度所述一个或多个数据任务。
13.如权利要求11所述的设备,用于调度的所述部件要:
确定与所述CPU关联的延迟是否处于或高于阈值;以及
基于与所述CPU关联的所述延迟处于或高于所述阈值的确定来向所述专用SOC调度所述一个或多个数据任务;或者
基于与所述CPU关联的所述延迟不处于或高于所述阈值的确定来向所述CPU调度所述一个或多个数据任务。
14.如权利要求11所述的设备,用于调度的所述部件要基于使用所述专用SOC的完成的估计时间低于使用所述CPU的完成的估计时间的确定来向所述专用SOC调度所述一个或多个数据任务。
15.如权利要求9所述的设备,用于调度的所述部件要接收来自一个或多个虚拟机的数据请求。
16.如权利要求9所述的设备,用于调度的所述部件要对虚拟机监测器进行操作。
17.一种用于数据中心的计算机实现方法,包括:
由卸载调度组件接收包括对数据进行压缩、解压缩、加密或解密的指示的数据请求;
由所述卸载调度组件确定所接收数据请求的一个或多个特性,所述一个或多个特性包括所述数据请求是否针对压缩、解压缩或地理特定密码操作;以及
由所述卸载调度组件基于所确定的一个或多个特性来向多个处理元件之一调度一个或多个数据任务;
其中,当所述数据请求针对所述压缩、解压缩或地理特定密码操作时,所述卸载调度组件向硬件安全模块调度数据任务,所述硬件安全模块被优化以执行密码或压缩操作。
18.如权利要求17所述的计算机实现方法,所述多个处理元件是数据处理引擎的组件,所述数据处理引擎包括所述硬件安全模块、CPU和专用SOC中的一个或多个。
19.如权利要求18所述的计算机实现方法,所述一个或多个特性包括所述数据请求是否针对AES或AES-NI操作。
20.用于数据中心的至少一个机器可读存储介质,所述至少一个机器可读存储介质包括指令,所述指令在由处理器执行时使所述处理器:
由卸载调度组件接收包括对数据进行压缩、解压缩、加密或解密的指示的数据请求;
由所述卸载调度组件确定所接收数据请求的一个或多个特性,所述一个或多个特性包括所述数据请求是否针对压缩、解压缩或地理特定密码操作;以及
由所述卸载调度组件基于所确定的一个或多个特性来向多个处理元件之一调度一个或多个数据任务;
其中,当所述数据请求针对所述压缩、解压缩或地理特定密码操作时,所述卸载调度组件向硬件安全模块调度数据任务,所述硬件安全模块被优化以执行密码或压缩操作。
21.如权利要求20所述的至少一个机器可读存储介质,所述多个处理元件是数据处理引擎的组件,所述数据处理引擎包括所述硬件安全模块、CPU或SOC中的一个或多个。
22.如权利要求21所述的至少一个机器可读存储介质,所述一个或多个特性包括所述数据请求是否针对AES或AES-NI操作。
23.如权利要求22所述的至少一个机器可读存储介质,所述卸载调度组件要:
确定所述CPU的工作负荷是否处于或高于阈值;以及
基于所述CPU的所述工作负荷处于或高于所述阈值的确定来向所述SOC调度所述一个或多个数据任务;或者
基于所述CPU的所述工作负荷不处于或高于所述阈值的确定来向所述CPU调度所述一个或多个数据任务。
24.如权利要求22所述的至少一个机器可读存储介质,所述卸载调度组件要:
确定与所述CPU关联的延迟是否处于或高于阈值;以及
基于与所述CPU关联的所述延迟处于或高于所述阈值的确定来向所述SOC调度所述一个或多个数据任务;或者
基于与所述CPU关联的所述延迟不处于或高于所述阈值的确定来向所述CPU调度所述一个或多个数据任务。
25.如权利要求22所述的至少一个机器可读存储介质,所述卸载调度组件要基于使用所述SOC的完成的估计时间低于使用所述CPU的完成的估计时间的确定来向所述SOC调度所述一个或多个数据任务。
26.如权利要求20所述的至少一个机器可读存储介质,所述卸载调度组件要接收来自一个或多个虚拟机的数据请求。
27.如权利要求20所述的至少一个机器可读存储介质,所述卸载调度组件要对虚拟机监测器进行操作。
CN201680082961.9A 2016-03-31 2016-03-31 用于加速安全存储能力的技术 Active CN108713190B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/078136 WO2017166206A1 (en) 2016-03-31 2016-03-31 Techniques for accelerated secure storage capabilities

Publications (2)

Publication Number Publication Date
CN108713190A CN108713190A (zh) 2018-10-26
CN108713190B true CN108713190B (zh) 2024-03-01

Family

ID=59962446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680082961.9A Active CN108713190B (zh) 2016-03-31 2016-03-31 用于加速安全存储能力的技术

Country Status (3)

Country Link
CN (1) CN108713190B (zh)
DE (1) DE112016006318T5 (zh)
WO (1) WO2017166206A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110176988B (zh) * 2019-04-25 2022-04-08 中国人民解放军战略支援部队信息工程大学 保证冗余执行体加密行为一致的装置及方法
CN111190733B (zh) * 2019-12-27 2023-11-17 华为技术有限公司 用于进行rsa计算的计算资源调度方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1895331A2 (fr) * 2006-08-30 2008-03-05 Angel Ramiro Mur Güerri Instrument pour l'étude de la neige, méthode de mesure du manteau neigeux, méthode de recharge des batteries et méthode pour transformer un corps flexible en corps rigide vertical
CN101154169A (zh) * 2006-09-27 2008-04-02 株式会社东芝 多处理器系统
CN103019856A (zh) * 2012-11-23 2013-04-03 上海寰创通信科技股份有限公司 一种多核处理器的非对称调度方法
CN103645954A (zh) * 2013-11-21 2014-03-19 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统
US8799554B1 (en) * 2010-10-27 2014-08-05 Amazon Technologies, Inc. Methods and system for swapping memory in a virtual machine environment
CN104904161A (zh) * 2012-12-31 2015-09-09 F5网络公司 预建流量管理系统组件虚拟机的弹性卸载
CN104995633A (zh) * 2013-04-05 2015-10-21 国际商业机器公司 利用下游解密器进行端到端加密情况下实现存储效率

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8675875B2 (en) * 2010-05-18 2014-03-18 International Business Machines Corporation Optimizing use of hardware security modules
KR20150084098A (ko) * 2014-01-13 2015-07-22 한국전자통신연구원 스트림 데이터 분산 처리 시스템 및 그 방법
US20150317176A1 (en) * 2014-05-02 2015-11-05 Cavium, Inc. Systems and methods for enabling value added services for extensible storage devices over a network via nvme controller
US9571279B2 (en) * 2014-06-05 2017-02-14 Cavium, Inc. Systems and methods for secured backup of hardware security modules for cloud-based web services

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1895331A2 (fr) * 2006-08-30 2008-03-05 Angel Ramiro Mur Güerri Instrument pour l'étude de la neige, méthode de mesure du manteau neigeux, méthode de recharge des batteries et méthode pour transformer un corps flexible en corps rigide vertical
CN101154169A (zh) * 2006-09-27 2008-04-02 株式会社东芝 多处理器系统
US8799554B1 (en) * 2010-10-27 2014-08-05 Amazon Technologies, Inc. Methods and system for swapping memory in a virtual machine environment
CN103019856A (zh) * 2012-11-23 2013-04-03 上海寰创通信科技股份有限公司 一种多核处理器的非对称调度方法
CN104904161A (zh) * 2012-12-31 2015-09-09 F5网络公司 预建流量管理系统组件虚拟机的弹性卸载
CN104995633A (zh) * 2013-04-05 2015-10-21 国际商业机器公司 利用下游解密器进行端到端加密情况下实现存储效率
CN103645954A (zh) * 2013-11-21 2014-03-19 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于组件的密码学虚拟实验平台的设计与实现;段桂华等;《吉首大学学报(自然科学版)》;20070525(第03期);全文 *

Also Published As

Publication number Publication date
CN108713190A (zh) 2018-10-26
DE112016006318T5 (de) 2018-11-15
WO2017166206A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
US20230110230A1 (en) Technologies for secure i/o with memory encryption engines
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
US11061710B2 (en) Virtual machine exit support by a virtual machine function
US9553853B2 (en) Techniques for load balancing in a packet distribution system
US10404674B1 (en) Efficient memory management in multi-tenant virtualized environment
US10810138B2 (en) Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME)
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
US11239997B2 (en) Techniques for cipher system conversion
EP3757848A1 (en) Converged cryptographic engine
CN114077733A (zh) 用于存储器保护的柔性计数器系统
US10691627B2 (en) Avoiding redundant memory encryption in a cryptographic protection system
US11893144B2 (en) System and method for slice virtual disk encryption
US10467052B2 (en) Cluster topology aware container scheduling for efficient data transfer
US20230070125A1 (en) Preventing unauthorized translated access using address signing
CN112434326B (zh) 一种基于数据流的可信计算方法及装置
CN113836543A (zh) 数据加密或解密的方法、装置和系统
CN108713190B (zh) 用于加速安全存储能力的技术
CN114422237B (zh) 数据传输方法及装置、电子设备和介质
KR20140138800A (ko) 네트워크 장치에서 프로세싱 요소를 위한 공유 버퍼
US20150195236A1 (en) Techniques for implementing a secure mailbox in resource-constrained embedded systems
US11005896B2 (en) Service chaining for multiple uplink bridges in a virtualization environment
US20220311594A1 (en) Multi-tenancy protection for accelerators
WO2024050184A1 (en) Support for additional cryptographic algorithms using an inline cryptographic hardware component
JP6471456B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN114389833A (zh) 用于供应边缘计算应用程序的基于令牌的零接触注册

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
GR01 Patent grant
GR01 Patent grant