CN110618947A - 用于利用存储器加密引擎的安全i/o的技术 - Google Patents

用于利用存储器加密引擎的安全i/o的技术 Download PDF

Info

Publication number
CN110618947A
CN110618947A CN201910418576.2A CN201910418576A CN110618947A CN 110618947 A CN110618947 A CN 110618947A CN 201910418576 A CN201910418576 A CN 201910418576A CN 110618947 A CN110618947 A CN 110618947A
Authority
CN
China
Prior art keywords
memory
encryption engine
encrypted data
data
encrypted
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
CN201910418576.2A
Other languages
English (en)
Inventor
L·基达
S·查伯拉
R·拉尔
P·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 CN110618947A publication Critical patent/CN110618947A/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/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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/28Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3215Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a plurality of channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

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

Abstract

用于安全I/O数据传输的技术包括具有处理器和加速器的计算设备。处理器和加速器中的每一个包括存储器加密引擎。计算设备利用共享加密密钥来配置两个存储器加密引擎,并且经由I/O链路将经加密的数据从源组件传输到目的地组件。源可以是处理器而目的地可以是加速器,反之亦然。计算设备可以利用存储器加密引擎之一执行密码操作并且绕过另一存储器加密引擎。计算设备可以从源的存储器读取经加密的数据,绕过源存储器加密引擎,并且将经加密的数据传输到目的地。目的地可以接收经加密的数据,绕过目的地存储器加密引擎,并且将经加密的数据存储在目的地的存储器中。描述并要求保护其他实施例。

Description

用于利用存储器加密引擎的安全I/O的技术
相关申请的交叉引用
本申请要求享有于2018年6月20日提交的美国临时专利申请第62/687,403号的权益。
背景技术
当前的处理器可以提供对诸如安全飞地之类的可信执行环境的支持。安全飞地包括由处理器保护以防止未经授权的访问的存储器区段(包括代码和/或数据),未经授权的访问包括未经授权的读取和写入。特别地,某些处理器可能包括软件保护扩展(SGX)以提供安全飞地支持。特别地,在安全飞地数据驻留在平台存储器中时,SGX为该数据提供机密性、完整性和重放保护,从而提供针对软件攻击和硬件攻击的保护。片上边界形成了自然的安全边界,其中数据和代码可以以明文形式存储并假设是安全的。SGX不保护跨片上边界移动的I/O数据。
现代计算设备可以包括通用处理器核心以及用于卸载计算密集型工作负载或执行专门任务的各种硬件加速器。硬件加速器可以包括例如一个或多个现场可编程门阵列(FPGA),其可以包括可以由终端用户或系统集成商配置的可编程数字逻辑资源。硬件加速器还可以包括一个或多个专用集成电路(ASIC)。硬件加速器可以体现为通过I/O互连与处理器核心通信的I/O设备。
某些计算设备支持总体存储器加密以防止某些硬件攻击。例如,平台可以在到存储器的路径上包括存储器加密引擎,当数据移入和移出存储器时,存储器加密引擎对数据进行加密或解密。类似地,某些I/O设备或其他组件可以包括集成链路加密,其在数据经过I/O链路时保护数据。因此,对于存储器加密和链路加密两者,某些计算设备可以对某些数据执行两个加密操作。
附图说明
本文描述的概念通过示例的方式而非通过限制的方式在附图中示出。为了说明的简单和清楚,附图中示出的元件不一定按比例绘制。在认为合适的情况下,在附图中重复使用附图标记来指示对应或类似的元件。
图1是用于利用存储器加密引擎的安全I/O的计算设备的至少一个实施例的简化框图;
图2是图1的计算设备的环境的至少一个实施例的简化框图;
图3是可以由图1-2的计算设备执行的用于利用存储器加密引擎进行安全I/O传输的方法的至少一个实施例的简化流程图;
图4是可以由图1-2的计算设备执行的用于源组件传输的方法的至少一个实施例的简化流程图;以及
图5是可以由图1-2的计算设备执行的用于目的地组件传输的方法的至少一个实施例的简化流程图。
具体实施方式
虽然本公开的概念易于进行各种修改和替换形式,但是其具体实施例已经通过示例的方式在附图中示出并且将在本文中详细描述。然而,应该理解,不旨在将本公开的概念限制于所公开的特定形式,相反,意图是涵盖与本公开和所附权利要求一致的所有修改、等同物和替代方案。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以包括或可以不一定包括该特定特征、结构或特性。此外,这些短语不一定是指同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例实现这样的特征、结构或特性在本领域技术人员的知识范围内,而无论是否明确描述。另外,应当认识到,以“至少一个A,B和C”的形式包括在列表中的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。类似地,以“A,B或C中的至少一个”的形式列出的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由暂时性或非暂时性的机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,该指令可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读形式存储或传输信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
在附图中,一些结构或方法特征可以以特定布置和/或排序示出。然而,应该认识到,可能不要求这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以与说明性附图中所示的方式和/或顺序不同的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都要求这样的特征,并且在一些实施例中,可以不包括这些特征或者可以将这些特征与其他特征组合。
现在参考图1,用于利用加速器设备的安全I/O的计算设备100包括处理器120和加速器134,例如,现场可编程门阵列(FPGA)。处理器120和加速器134中的每一个包括或以其他方式使用存储器加密引擎,例如,多密钥总体存储器加密(MKTME)引擎。在使用中,如下面进一步描述的,处理器120和加速器134中的每一个的存储器加密引擎编程有共享加密密钥。通过可能暴露给物理攻击者的I/O链路(例如,快速PCI(PCIe)链路、Intel加速器链路(IAL)链路或其他物理链路)在处理器120与加速器134之间传输数据。为了防止物理攻击,通过链路传输的数据由存储器加密引擎进行加密。计算设备100可以绕过处理器120或加速器134的存储器加密引擎之一,以避免对相同数据执行两次解密和加密,或者以其他方式改进性能。另外,尽管被示为保护在处理器120与加速器134之间传输的数据,但是应该理解,本文公开的技术可以利用存储器加密引擎来保护组件之间的任何I/O链路。因此,计算设备100可以高效地保护通过I/O链路传输的数据,而无需对相同数据执行多个加密/解密操作。例如,与执行单独的存储器加密操作和链路加密操作的典型系统相比,计算设备100可以每个数据传输节省至少一个加密操作和一个解密操作。此外,通过绕过存储器加密引擎,计算设备100可以避免通过I/O链路发送密码调整(tweak)信息,这可以减少带宽使用。另外,通过使用存储器加密引擎执行链路加密,链路加密不需要由应用软件执行。因此,计算设备100可以通过从软件移除某些密码操作来改进性能/功耗和/或降低处理器利用率。
计算设备100可以体现为能够执行本文描述的功能的任何类型的设备。例如,计算设备100可以体现为但不限于计算机、膝上型计算机、平板计算机、笔记本计算机、移动计算设备、智能电话、可穿戴计算设备、多处理器系统、服务器、工作站和/或消费者电子设备。如图1所示,说明性计算设备100包括处理器120、I/O子系统124、存储器128和数据存储设备130。另外,在一些实施例中,说明性组件中的一个或多个可以并入另一组件或以其他方式构成另一组件的一部分。例如,在一些实施例中,存储器128或其部分可以并入处理器120。
处理器120可以体现为能够执行本文描述的功能的任何类型的处理器。例如,处理器120可以体现为(多个)单核心或多核心处理器、数字信号处理器、微控制器或者其他处理器或处理/控制电路。如所示出的,处理器120说明性地包括安全飞地支持件122,其允许处理器120建立称为安全飞地的可信执行环境,其中可以测量、验证和/或以其他方式确定执行代码是可信的。另外,包括在安全飞地中的代码和数据可以被加密或以其他方式受保护以免于被在安全飞地外执行的代码访问。例如,包括在安全飞地中的代码和数据可以在执行时或者在存储在处理器120的某些受保护的高速缓冲存储器中时由处理器120的硬件保护机制保护。包括在安全飞地中的代码和数据可以在存储在共享高速缓存或主存储器128中时被加密。安全飞地支持件122可以体现为一组处理器指令扩展,其允许处理器120在存储器128中建立一个或多个安全飞地。例如,安全飞地支持件122可以体现为软件保护扩展(SGX)技术。
存储器128可以体现为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器128可以存储在计算设备100的操作期间使用的各种数据和软件,例如,操作系统、应用、程序、库和驱动程序。如所示出的,存储器128经由多密钥总体存储器加密引擎(MKTME)126耦合到处理器120和/或I/O子系统124,MKTME 126可以包括在存储器控制器、集成存储器控制器中心或其他存储器接口中,或者以其他方式耦合到存储器控制器、集成存储器控制器中心或其他存储器接口。MKTME 126允许计算设备100透明地对存储器128的内容进行加密。MKTME 126维护具有多个加密密钥的表或其他内部的受保护结构,多个加密密钥用于在数据被存储到存储器128中以及从存储器128中读取数据时分别对数据进行加密和解密。加密密钥说明性地是128位AES XTS密钥,但是可以体现为任何对称加密密钥、非对称加密密钥或其他加密密钥。加密密钥可以由MKTME 126基于每页来选择,例如,基于包括在用于特定存储器访问的物理存储器页地址的一个或多个以其他方式未使用的高位中的密钥标识符。在这些实施例中,计算设备100的操作系统、虚拟存储器监视器或其他监督组件可以通过利用适当的密钥标识符配置一个或多个页表和/或扩展页表来控制对特定存储器页的访问。MKTME密钥可以由MKTME 126生成,在这种情况下,它们不在SoC之外公开,或者可以由软件提供。在一些实施例中,MKTME 126可以包括对Intel可信域扩展(TDX)的支持。利用TDX,MKTME 126可以接受外部“域”密钥,也称为“用户”或“租户”密钥。MKTME 126还可以使用自生成的默认密钥来保护MKTME和Intel SGX以及Intel TDX使用的存储器。尽管示出为耦合在存储器128与处理器120以及I/O子系统124之间,但应理解,在一些实施例中,MKTME 126可以包括在处理器120中,包括在I/O子系统124中,或包括在计算设备100的其他组件中。
如所示出的,处理器120通信地耦合到I/O子系统124,I/O子系统124可以体现为促进与处理器120、存储器128和计算设备100的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统124可以体现为或以其他方式包括存储器控制器中心、输入/输出控制中心、传感器中心、主机控制器、固件设备、通信链路(即,点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等)和/或促进输入/输出操作的其他组件和子系统。如所示出的,存储器128可以直接耦合到处理器120,例如,经由集成存储器控制器中心。另外,在一些实施例中,I/O子系统124可以形成片上系统(SoC)的一部分,并且与处理器120、存储器128、加速器134和/或计算设备100的其他组件一起合并在单个集成电路芯片上。另外或可替代地,在一些实施例中,处理器120可以包括集成存储器控制器和系统代理,其可以体现为逻辑块,来自处理器核心和I/O设备的数据流量在被发送到存储器128之前在该逻辑块中汇聚。
数据存储设备130可以体现为被配置用于对数据进行短期或长期存储的任何类型的设备或多个设备,例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器、非易失性闪速存储器或其他数据存储设备。计算设备100还可以包括通信子系统132,其可以体现为能够通过计算机网络(未示出)在计算设备100与其他远程设备之间实现通信的任何通信电路、设备或其集合。通信子系统132可以被配置为使用任何一种或多种通信技术(例如,有线或无线通信)和相关联的协议(例如,以太网、 WiMAX、3G、4G LTE等)来实现这种通信。
加速器134可以体现为现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理器单元(GPU)、协处理器、I/O设备或能够执行加速功能(例如,加速应用功能、加速网络功能或其他加速功能)的其他数字逻辑设备。说明性地,加速器134是FPGA,其可以体现为包括可以在制造之后配置的可编程数字逻辑资源的集成电路。FPGA可以包括例如通过可配置数据交换进行通信的可配置逻辑块阵列。
如所示出的,说明性加速器134还包括MKTME 136。类似于MKTME 126,MKTME 136允许加速器134透明地对耦合到加速器134的存储器138的内容进行加密。因此,对MKTME 126的描述也适用于MKTME 136,并且不再重复。可以体现为内部或外部DRAM、VRAM或其他存储器的存储器138耦合到加速器134。类似于存储器128,存储器138的内容被透明地加密,这可以防止某些硬件攻击。在一些实施例中,存储器128和存储器138可以包括在统一地址空间中。
如所示出的,计算设备100还可以包括一个或多个外围设备140。外围设备140可以包括任何数量的附加输入/输出设备、接口设备、硬件加速器和/或其他外围设备。例如,在一些实施例中,外围设备140可以包括触摸屏、图形电路、图形处理单元(GPU)和/或处理器图形、音频设备、麦克风、相机、键盘、鼠标、网络接口和/或其他输入/输出设备、接口设备和/或外围设备。
如图1所示,加速器134可以经由链路142耦合到处理器120,链路142可以体现为高速连接接口,例如,外围总线(例如,快速PCI总线或Intel加速器链路(IAL)总线(例如,IAL.io或IAL.mem))或处理器间互连(例如,管芯内互连(IDI)或快速路径互连(QPI))或任何其他适当的互连。链路142可以包括一个或多个总线、点对点链路、通道、交换机或其他板级组件。因此,通过链路142以明文传输的数据可能易受某些物理攻击。
现在参考图2,在说明性实施例中,计算设备100在操作期间建立环境200。说明性环境200包括传输管理器202、绕过控制逻辑204、包括存储器加密引擎208的源206以及包括存储器加密引擎216的目的地214。环境200的各种组件可以体现为硬件、固件、软件或其组合。因此,在一些实施例中,环境200的组件中的一个或多个组件可以体现为电子设备的电路或集合(例如,传输管理器电路202、绕过控制逻辑电路204和/或存储器加密引擎电路208、216)。应当认识到,在这样的实施例中,传输管理器电路202、绕过控制逻辑电路204和/或存储器加密引擎电路208、216中的一个或多个可以形成处理器120、I/O子系统124、加速器134、MKTME 126、136和/或计算设备100的其他组件的一部分。另外,在一些实施例中,说明性组件中的一个或多个可以形成另一组件的一部分和/或说明性组件中的一个或多个可以彼此独立。
传输管理器202可以体现为或以其他方式包括可信应用、使用安全飞地支持件122建立的一个或多个安全飞地或其他可信执行环境。传输管理器202被配置为利用共享加密密钥来配置存储器加密引擎208、216。传输管理器202还被配置为使得经由这些组件206、214之间的I/O链路(例如,I/O链路142)将经加密的数据从源组件206传输到目的地组件214。经加密的数据是利用共享加密密钥进行加密的。
源206和目的地214可以体现为计算设备100中的由I/O链路连接的任何组件,例如,处理器120和加速器134。在一些实施例中,处理器120和加速器134中的每一个能够执行源206和目的地214两者的功能,这取决于数据通过I/O链路传输的方向。因此,MKTME 126、136两者都能够执行存储器加密引擎208、216两者的功能,这取决于数据传输的方向。例如,对于通过I/O链路142从处理器120到加速器134的传输,源206可以体现为处理器120,存储器加密引擎208可以体现为MKTME 126,目的地214可以体现为加速器134,并且存储器加密引擎216可以体现为MKTME 136。作为另一示例,对于通过I/O链路142从加速器134到处理器120的传输,源206可以体现为加速器134,存储器加密引擎208可以体现为MKTME 136,目的地214可以体现为处理器120,并且存储器加密引擎216可以体现为MKTME 126。
如所示出的,源206和目的地214中的每一个分别包括明文存储器210、218。明文存储器210、218可以体现为组件206、214的任何寄存器、高速缓存、私有存储器或其他存储器,其可以以明文形式(即,未加密的)安全地存储数据。明文存储器210、218可以是私有存储器,其不能被其他组件214、206寻址并且不能被物理攻击访问,例如,集成到组件206、214中的存储器。明文存储器210、218也可以是可寻址存储器,其通过硬件访问控制保护以免于未经授权的访问并且不能被物理攻击访问,例如,集成到组件206、214中的高速缓存或寄存器。例如,明文存储器210、218可以体现为处理器120的寄存器、寄存器文件或高速缓存。作为另一示例,明文存储器210、218可以体现为加速器134的一个或多个寄存器或私有存储器。
另外,源206和目的地214中的每一个分别耦合到经加密的存储器212、220。经加密的存储器212、220可以体现为任何存储器或其他存储装置,其在静止时例如由存储器加密引擎208、216加密以免受某些硬件攻击。例如,经加密的存储器212、220可以体现为耦合到处理器120并由MKTME 126保护的主存储器128。作为另一示例,经加密的存储器212、220可以体现为耦合到加速器134并由MKTME 136保护的存储器138(例如,DRAM或VRAM)。如下面进一步描述的,存储在经加密的存储器212、220中的数据可以是源206和目的地214两者可寻址或以其他方式可访问的。在一些实施例中,经加密的存储器212、220可以包括在统一地址空间中。
绕过控制逻辑204被配置为确定是否绕过存储器加密引擎208、216中的任一个,并且如果是,则绕过该存储器加密引擎208、216。绕过控制逻辑204可以基于对应的源206或目的地214的设备配置和/或基于与对经加密的数据的传输相关联的存储器地址来确定是否绕过存储器加密引擎208、216。绕过控制逻辑204可以基于数据源是明文存储器210还是经加密的存储器212以及数据目的地是明文存储器218还是经加密的存储器220来确定是否绕过存储器加密引擎208、216。绕过控制逻辑204可以基于源地址调整或目的地地址调整是否可用于存储器加密引擎208、216来确定是否绕过存储器加密引擎208、216。绕过控制逻辑204被配置为,如果绕过存储器加密引擎208,则从源206的经加密的存储器212读取经加密的数据。绕过控制逻辑204被配置为,如果绕过存储器加密引擎216,则将经加密的数据写入目的地214的经加密的存储器220。
存储器加密引擎208、216中的每一个被配置为执行与经由I/O链路传输的经加密的数据有关的密码操作(即,加密或解密)。所执行的特定操作取决于传输方向,源和目的地存储器位置(例如,在私有存储器或可寻址存储器中),以及是否绕过存储器加密引擎208、216中的任一个。
存储器加密引擎208可以被配置为从耦合到源206的经加密的存储器212读取经加密的数据,使用共享加密密钥和与源206相关联的调整(例如,源地址)对经加密的数据进行解密以恢复明文数据。存储器加密引擎208可以被配置为从源206的明文存储器210读取明文数据。存储器加密引擎208可以被配置为使用共享加密密钥和与目的地214相关联的调整(例如,目的地地址)或与源206相关联的调整(例如,源地址)对明文数据进行加密。
存储器加密引擎216可以被配置为使用共享加密密钥和与源206相关联的调整(例如,源地址)或与目的地214相关联的调整(例如,目的地地址)对经由I/O链路接收的经加密的数据进行解密,以恢复明文数据。存储器加密引擎216可以被配置为将明文数据存储在目的地214的明文存储器218中。存储器加密引擎216还可以被配置为使用共享加密密钥和与目的地214相关联的调整对明文数据进行加密,并且将经加密的数据存储在耦合到目的地214的经加密的存储器220中。
现在参考图3,在使用中,计算设备100可以执行用于利用存储器加密引擎进行安全I/O传输的方法300。应当认识到,在一些实施例中,方法300的操作可以由如图2所示的计算设备100的环境200中的一个或多个组件执行。方法300开始于框302,其中计算设备100枚举并激活加速器134的MKTME 126和MKTME 136中的适当的单向绕过模式(OWM)。在单向模式中,数据可以在具有兼容密码能力的组件206、214之间关于某些事务绕过存储器加密引擎208、216。可信软件可以以用于兼容设备的单向模式配置存储器加密引擎208、216。例如,MKTME 126、136的OWM能力可以在处理器120的模型特定寄存器中枚举(例如,IA32_TME_CAPABILITY),并且由计算设备100的BIOS或另一固件环境激活。可以通过软件(例如,驱动程序软件、操作系统软件或其他软件)配置OWM模式,例如,使用PFCONFIG指令。在OWM中的操作可能在I/O链路的任一端上要求兼容设备(例如,在链路142的两端上的MKTME 126、136)。兼容设备可以启用OWM模式以用于去往或来自某些设备或某些预定存储器地址或地址范围的传输。
在框304中,计算设备100利用加密密钥来配置MKTME 126。加密密钥可以是处理器120(例如,通过可信应用或其他可信组件)和加速器134已知的任何适当的加密密钥。例如,加密密钥可以体现为计算设备100的信任域(TD)的私钥。可以使用诸如XBIND、PCONFIG.UNWRAP和/或其他指令之类的一个或多个专用处理器指令将加密密钥安全地编程到MKTME 126。MKTME 126可以由计算设备100的可信应用或其他可信组件配置。在框306中,计算设备100利用与MKTME 126相同的加密密钥来配置加速器134的MKTME 136。类似地,可以使用诸如XBIND、PCONFIG.UNWRAP和/或其他指令之类的一个或多个专用处理器指令将加密密钥安全地编程到MKTME 136。
在框308中,计算设备100经由处理器120与加速器134之间的I/O链路142安全地传输数据。数据可以在任一方向上传输(例如,从处理器120到加速器134,或从加速器134到处理器120)。在一些实施例中,数据传输可以由处理器120或加速器134中的任一个发起。例如,处理器120可以发起对加速器134的写入并且发起从加速器134读取,反之亦然。使用共享加密密钥和调整对通过I/O链路142传输的数据进行加密。调整可以是传输的数据的源存储器地址或目的地存储器地址,例如,主机物理地址或其他地址。如下面进一步描述的,MKTME 126、136用于对经加密的数据执行密码操作(例如,加密或解密)。对于某些传输,可以(例如,通过直接利用经加密的存储器128、138读取或写入经加密的数据)绕过MKTME126、136中的一个。如下面描述的,被绕过的特定MKTME 126、136可以取决于数据传输的发起者,以及在每个MKTME 126、136处适当的调整是否可用。
在一些实施例中,在框310中,计算设备100可以将数据从源明文存储器210传输到目的地经加密的存储器220。如上面描述的,源明文存储器210可以体现为源组件206(例如,处理器120或加速器134)的任何存储器,其以明文形式存储数据,即不进行加密。目的地经加密的存储器220可以体现为包括在目的地组件214中或耦合到目的地组件214的任何存储器(例如,耦合到处理器120的存储器128或耦合到加速器134的存储器138),其存储经加密的数据。在传输期间,计算设备100可以绕过目的地214的存储器加密引擎216(例如,MKTME126、136中的一个)。
在一些实施例中,在框312中,计算设备100可以将数据从源206的经加密的存储器212传输到目的地214的明文存储器218。在传输期间,计算设备100可以绕过源206的存储器加密引擎208(例如,MKTME 126、136中的一个)。
在一些实施例中,在框314中,计算设备100可以将数据从源206的经加密的存储器212传输到目的地214的经加密的存储器220。在传输期间,计算设备100可以绕过源206或目的地214的存储器加密引擎208、216(例如,MKTME 126、136中的一个)。另一组件的存储器加密引擎208、216可以执行两个密码操作(例如,利用正确的调整来解密然后重新加密)。
在一些实施例中,在框316中,计算设备100可以将数据从源206的明文存储器210传输到目的地214的明文存储器218。在传输期间,计算设备100可以利用源206和目的地214的每个存储器加密引擎208、216(例如,MKTME 126、136中的每一个)执行一个加密操作。因此,使用存储器加密引擎208、216来保护通过I/O链路传输的经加密的数据。在执行传输之后,方法300循环回到框308以继续传输经加密的数据。
现在参考图4,在使用中,计算设备100可以执行用于源组件传输的方法400。应当认识到,在一些实施例中,方法400的操作可以由如图2所示的计算设备100的环境200中的一个或多个组件(例如,源206(例如,处理器120或加速器134,这取决于传输的方向))来执行。方法400开始于框402,其中源206确定存储器读取是来自源206的明文存储器210还是来自源206的经加密的存储器212。存储器读取可以识别地址、寄存器名称或其他位置作为要传输的数据的源。如上面描述的,明文存储器210可以体现为源206(例如,处理器120或加速器134)的任何寄存器、高速缓存、私有存储器或其他存储器,其可以以明文形式(即,未加密的)安全地存储数据。经加密的存储器212可以体现为耦合到源206的任何存储器或其他存储装置,其在静止时被加密以防止某些硬件攻击(例如,耦合到处理器120的存储器128或耦合到加速器134的存储器138)。在框404中,源206检查读取是来自明文存储器210还是经加密的存储器212。如果读取来自经加密的存储器212,则方法400分支到下面描述的框416。如果读取来自明文存储器210,则方法400分支到框406。
在框406中,存储器加密引擎208从源206的明文存储器210读取明文数据。存储器加密引擎208可以例如从内部总线、数据端口、安全结构、边带网络或存储器加密引擎208与明文存储器210之间的其他安全接口读取明文数据。路由控制可以防止明文数据从明文存储器210行进到目的地214而不首先通过存储器加密引擎208。只有某些不安全(传统的)传输可以以明文形式从明文存储器210通过I/O链路行进。
在框408中,存储器加密引擎208确定目的地地址调整是否可用于数据传输。调整可以体现为例如经加密的数据在目的地214的经加密的存储器220中的主机物理地址。源206的存储器加密引擎208是否已知目的地调整可以取决于相对于源206和目的地214而言数据传输的发起者,例如从源206和目的地214的角度来看,操作是“读取”还是“写入”。例如,如果数据传输是“写入”(由源206发起),则源206可能知道目的地地址调整。如果传输是“读取”(由目的地214发起),则源206可能不知道与传输相关联的任何目的地地址。
如果目的地地址调整可用,则方法400分支到框410,其中存储器加密引擎208使用共享加密密钥和目的地地址调整对明文数据进行加密。在对数据进行加密之后,方法400前进到框414,其中源206通过I/O链路142将经加密的数据传输到目的地214(例如,传输到处理器120或加速器134)。经加密的数据可以利用存储器映射I/O(MMIO)事务、直接存储器访问(DMA)事务或其他数据传输来传输。如下面结合图5进一步描述的,目的地存储器加密引擎216可以对经加密的数据进行解密,或者可以绕过目的地存储器加密引擎216。在传输经加密的数据之后,方法400循环回到框402以继续处理数据传输。
返回参考框408,如果目的地地址调整不可用,则方法400分支到框412,其中存储器加密引擎208使用共享加密密钥和源地址调整对明文数据进行加密。在对数据进行加密之后,方法400前进到框414,以通过I/O链路142将经加密的数据传输到目的地214,如上面描述的。在传输经加密的数据之后,方法400循环回到框402以继续处理数据传输。
返回参考框404,如果读取来自经加密的存储器212,则方法400分支到框416,其中源206从经加密的存储器212读取经加密的数据。源206可以从存储器控制器、存储器总线、数据端口、安全结构、边带网络或存储器加密引擎208与经加密的存储器212之间的其他通信链路读取经加密的数据。
在框418中,源206确定是否绕过存储器加密引擎208。对是否绕过存储器加密引擎208的确定可以取决于源206和/或目的地214中的哪一个知道与数据传输相关联的源地址调整和/或目的地地址调整。如上面描述的,源调整或目的地调整是否可用于源206或目的地214可以取决于相对于源206和目的地214而言数据传输的发起者。例如,对于“读取”,目的地214可能知道数据传输的源地址,因此可以绕过源存储器加密引擎208。作为另一示例,对于“写入”,源206可能知道数据传输的目的地地址,因此可以绕过目的地存储器加密引擎216。因此,在一些实施例中,对于从源206的经加密的存储器212到目的地214的明文存储器218的传输可以绕过存储器加密引擎208,并且对于从源206的经加密的存储器212到目的地214的经加密的存储器220的传输可以不绕过存储器加密引擎208。
在框420中,源206检查是否绕过存储器加密引擎208。如果是,则方法400分支到框414,其中源206通过I/O链路142将经加密的数据从经加密的存储器212传输到目的地214,如上面描述的。存储器加密引擎208被绕过,并且不对从经加密的存储器212读取的经加密的数据执行密码操作。经加密的数据可以由目的地214使用共享密钥和源地址调整来解密,如下面结合图5描述的。在传输经加密的数据之后,方法400循环回到框402以继续处理数据传输。
返回参考框420,如果源206确定不绕过存储器加密引擎208,则方法400分支到框422,其中存储器加密引擎208使用共享加密密钥和源地址调整对经加密的数据进行解密,这恢复明文数据。源地址调整可以体现为例如经加密的数据在经加密的存储器212中的主机物理地址。在框424中,存储器加密引擎208使用共享加密密钥和目的地地址调整对明文数据进行加密。调整可以体现为例如经加密的数据在目的地214的经加密的存储器220中的主机物理地址。另外或可替代地,尽管示出为包括在框422、424中执行两个密码操作的单个存储器加密引擎208,但是应当理解,在一些实施例中,源206可以包括两个存储器加密引擎以执行这些操作。在对数据进行加密之后,方法400前进到框414,其中源206通过I/O链路142将经加密的数据传输到目的地214,如上面描述的。经加密的数据可以由目的地214使用共享密钥和目的地地址调整来解密,或者解密可以由目的地214绕过,如下面结合图5描述的。在传输经加密的数据之后,方法400循环回到框402以继续处理数据传输。
现在参考图5,在使用中,计算设备100可以执行用于目的地组件传输的方法500。应当认识到,在一些实施例中,方法500的操作可以由如图2所示的计算设备100的环境200中的一个或多个组件(例如,目的地214(例如,处理器120或加速器134))来执行。方法500开始于框502,其中目的地214通过I/O链路142从源206接收经加密的数据。如上面结合图4描述的,利用源206和目的地214共享的加密密钥和调整对经加密的数据进行加密。调整可以是源地址调整(例如,当源206的存储器加密引擎208被绕过时),或者可以是目的地地址调整。经加密的数据可以包括在存储器映射I/O事务、直接存储器访问(DMA)事务或其他数据传输中。
在框504中,目的地214确定存储器传输是对目的地214的明文存储器218的写入还是对目的地214的经加密的存储器220的写入。如上面描述的,明文存储器218可以体现为目的地214(例如,处理器120或加速器134)的任何寄存器、高速缓存、私有存储器或其他存储器,其可以以明文形式(即,未加密的)安全地存储数据。经加密的存储器220可以体现为耦合到目的地214的任何存储器或其他存储装置,其在静止时被加密以免受某些硬件攻击(例如,耦合到处理器120的存储器128或耦合到加速器134的存储器138)。在框506中,目的地214检查写入是针对明文存储器218的还是针对经加密的存储器220的。如果写入是针对经加密的存储器220的,则方法500分支到下面描述的框516。如果写入是针对明文存储器218的,则方法500分支到框508。
在框508中,存储器加密引擎216确定源地址调整是否可用于数据传输。调整可以体现为例如经加密的数据在源206的经加密的存储器212中的主机物理地址。目的地214的存储器加密引擎216是否已知源调整可以取决于相对于源206和目的地214而言数据传输的发起者,例如,从源206和目的地214的角度来看,操作是“读取”还是“写入”。例如,如果数据传输是“写入”(由源206发起),则目的地214可能不知道源地址调整。如果传输是“读取”(由目的地214发起),则目的地214可能知道与传输相关联的源地址。
如果源地址调整可用,则方法500分支到框510,其中存储器加密引擎216使用共享加密密钥和源地址调整对经加密的数据进行解密,这恢复明文数据。例如,源地址调整可以是源206处的经加密的存储器的主机物理地址。当绕过存储器加密引擎208并且直接从经加密的存储器212读取经加密的数据时,可以使用源调整,这与不绕过存储器加密引擎208相比,可以节省至少一个加密操作和一个解密操作。作为另一示例,如果数据源自源206处的明文存储器210并且由存储器加密引擎208利用源调整进行加密以提供链路加密,则可以使用源调整。在对数据进行解密之后,方法500前进到下面描述的框514。
返回参考框508,如果源地址调整不可用,则方法500分支到框512,其中存储器加密引擎216使用共享加密密钥和目的地地址调整(例如,目的地214处的经加密的存储器的主机物理地址)对经加密的数据进行解密。例如,如果数据源自源206处的明文存储器210但是由存储器加密引擎208利用目的地调整进行加密以提供链路加密,则可以使用目的地调整。在对数据进行解密之后,方法500前进到框514。
在框514中,在解密之后,存储器加密引擎216将明文数据转发到目的地214(例如,处理器120或加速器134)的明文存储器218。可以将明文数据提供给目的地214的高速缓冲存储器、寄存器或另一私有存储器。因此保护明文数据免于未经授权地向计算设备100的其他组件公开。在明文数据被存储在明文存储器218中之后,由计算设备100执行的应用可以访问明文数据而无需进一步的解密操作。例如,由处理器120执行的应用软件可以从处理器120的一个或多个寄存器或高速缓存访问明文数据。作为另一示例,应用功能单元或加速器134的其他部分可以从加速器134的一个或多个寄存器或私有存储器访问明文数据。在转发明文数据之后,方法500循环回到框502以处理附加的经加密的数据传输。
返回参考框506,如果写入是针对经加密的存储器220的,则方法500分支到框516,其中目的地214确定是否绕过存储器加密引擎216。如上面描述的,对是否要绕过存储器加密引擎216的确定可以取决于源206和/或目的地214中的哪一个知道与数据传输相关联的源地址调整和/或目的地地址调整。如上面描述的,源调整或目的地调整是否可用于源206或目的地214可以取决于相对于源206和目的地214而言数据传输的发起者。例如,对于“读取”,目的地214可能知道数据传输的源地址,因此可以绕过源存储器加密引擎208。作为另一示例,对于“写入”,源206可能知道数据传输的目的地地址,因此可以绕过目的地存储器加密引擎216。因此,在一些实施例中,对于从源206的经加密的存储器212到目的地214的明文存储器218的传输可以不绕过存储器加密引擎216,并且对于从源206的经加密的存储器212到目的地214的经加密的存储器220的传输(例如,DMA传输)可以绕过存储器加密引擎216。
在框518中,目的地214检查是否绕过存储器加密引擎216。如果是,则方法500分支到框524,其中目的地214将经加密的数据存储在目的地214的经加密的存储器220中。经加密的数据可以存储在例如耦合到加速器134的存储器128或存储器138中。所存储的经加密的数据通过共享加密密钥和目的地地址调整进行加密。因此,由源存储器加密引擎208利用目的地地址调整执行加密,这允许绕过目的地存储器加密引擎216,并且节省至少一个加密操作和一个解密操作。在存储经加密的数据之后,目的地214可以使用存储器加密引擎216访问经加密的数据,如在对经加密的存储器的典型访问中那样(例如,使用MKTME 126、136)。在存储经加密的数据之后,方法500循环回到框502以处理附加的经加密的数据传输。
返回参考框518,如果目的地214确定不绕过存储器加密引擎216,则方法500前进到框520。在框520中,存储器加密引擎216使用共享加密密钥和源地址调整对经加密的数据进行解密,这恢复明文数据。源地址调整可以体现为例如经加密的数据在源206的经加密的存储器212中的主机物理地址。通过在目的地214处执行解密,源206可能已经能够绕过存储器加密引擎208,如上面描述的。在框522中,存储器加密引擎216使用共享加密密钥和目的地地址调整对明文数据进行加密。调整可以体现为例如经加密的数据在目的地214的经加密的存储器220中的主机物理地址。另外或可替代地,尽管示出为包括在框520、522中执行两个加密操作的单个存储器加密引擎216,但是应当理解,在一些实施例中,目的地214可以包括两个存储器加密引擎以执行这些操作。在对数据进行加密之后,方法500前进到框524,其中目的地214将经加密的数据存储在目的地214的经加密的存储器220中,如上面描述的。在存储经加密的数据之后,方法500循环回到框502以处理附加的经加密的数据传输。
应当认识到,在一些实施例中,方法300、400和/或500可以体现为存储在计算机可读介质上的各种指令,该指令可以由处理器120、I/O子系统124、加速器134、MKTME 126、136和/或计算设备100的其他组件执行,以使计算设备100执行相应的方法300、400和/或500。计算机可读介质可以体现为能够被计算设备100读取的任何类型的介质,包括但不限于存储器128、数据存储设备130、固件设备、计算设备100的其他存储器或数据存储设备、计算设备100的外围设备140可读的便携式介质和/或其他介质。示例
下面提供本文公开的技术的说明性示例。这些技术的实施例可以包括下面描述的示例中的任何一个或多个以及其任何组合。
示例1包括一种用于安全数据传输的计算设备,该计算设备包括:第一存储器加密引擎和第二加密引擎;传输管理器,其用于(i)利用第一加密密钥来配置第一存储器加密引擎和第二存储器加密引擎,以及(ii)经由在源组件与目的地组件之间的I/O链路将经加密的数据从源组件传输到目的地组件,其中,经加密的数据是利用第一加密密钥进行加密的;以及绕过控制逻辑,其用于绕过第二存储器加密引擎;其中,第一存储器加密引擎用于使用第一加密密钥来执行与经加密的数据有关的密码操作。
示例2包括示例1的主题,并且其中:源组件包括第一存储器加密引擎;目的地组件包括第二存储器加密引擎;传输经加密的数据包括响应于执行密码操作,传输经加密的数据;并且绕过第二存储器加密引擎包括响应于传输经加密的数据,绕过第二存储器加密引擎。
示例3包括示例1和2中任一项的主题,并且其中:第一存储器加密引擎还用于从源组件的明文存储器读取明文数据;绕过控制逻辑还用于响应于绕过第二存储器加密引擎,将经加密的数据存储在耦合到目的地组件的经加密的存储器中;并且执行密码操作包括响应于读取明文数据,使用第一加密密钥和与目的地组件相关联的调整对明文数据进行加密。
示例4包括示例1-3中任一项的主题,并且其中:第一存储器加密引擎还用于(i)从耦合到源组件的经加密的存储器读取经加密的数据,以及(ii)响应于执行密码操作,使用第一加密密钥来执行与经加密的数据有关的第二密码操作;绕过控制逻辑还用于响应于绕过第二存储器加密引擎,将经加密的数据存储在耦合到目的地组件的经加密的存储器中;执行密码操作包括响应于读取经加密的数据,使用第一加密密钥和与源组件相关联的调整对经加密的数据进行解密以恢复明文数据;执行第二密码操作包括使用第一加密密钥和与目的地组件相关联的调整对明文数据进行加密;并且传输经加密的数据包括响应于执行第二密码操作,传输经加密的数据。
示例5包括示例1-4中任一项的主题,并且其中:源组件包括第二存储器加密引擎;目的地组件包括第一存储器加密引擎;传输经加密的数据包括响应于绕过第二存储器加密引擎,传输经加密的数据;并且执行密码操作包括响应于传输经加密的数据,执行密码操作。
示例6包括示例1-5中任一项的主题,并且其中:绕过控制逻辑用于从耦合到源组件的经加密的存储器读取经加密的数据;第一存储器加密引擎还用于响应于执行密码操作,将明文数据存储在目的地组件的明文存储器中;绕过第二存储器加密引擎包括响应于读取经加密的数据,绕过第二存储器加密引擎;并且执行密码操作包括使用第一加密密钥和与源组件相关联的调整对经加密的数据进行解密以恢复明文数据。
示例7包括示例1-6中任一项的主题,并且其中:绕过控制逻辑用于从耦合到源组件的经加密的存储器读取经加密的数据;第一存储器加密引擎用于(i)响应于执行密码操作,使用第一加密密钥来执行与经加密的数据有关的第二密码操作,以及(ii)响应于执行第二密码操作,将经加密的数据存储在耦合到目的地组件的经加密的存储器中;绕过第二存储器加密引擎包括响应于读取经加密的数据,绕过第二存储器加密引擎;执行密码操作包括使用第一加密密钥和与源组件相关联的调整对经加密的数据进行解密以恢复明文数据;并且执行第二密码操作包括使用第一加密密钥和与目的地组件相关联的调整对明文数据进行加密。
示例8包括示例1-7中任一项的主题,并且其中:绕过控制逻辑用于确定是否绕过第二存储器加密引擎;并且第二存储器加密引擎用于响应于确定不绕过第二存储器加密引擎,使用第一加密密钥来执行与经加密的数据有关的第二密码操作;源组件包括第一存储器加密引擎;目的地组件包括第二存储器加密引擎;并且传输经加密的数据包括响应于执行密码操作,传输经加密的数据。
示例9包括示例1-8中任一项的主题,并且其中:第一存储器加密引擎还用于从源组件的明文存储器读取明文数据;第二存储器加密引擎还用于响应于执行第二密码操作,将明文数据存储在目的地组件的明文存储器中;执行密码操作包括响应于读取明文数据,使用第一加密密钥对明文数据进行加密;并且执行第二密码操作包括使用第一加密密钥对经加密的数据进行解密以恢复明文数据。
示例10包括示例1-9中任一项的主题,并且其中:执行密码操作还包括使用第一加密密钥和与源组件相关联的调整对明文数据进行加密;并且执行第二密码操作包括使用第一加密密钥和与源组件相关联的调整对经加密的数据进行解密。
示例11包括示例1-10中任一项的主题,并且其中:执行密码操作还包括使用第一加密密钥和与目的地组件相关联的调整对明文数据进行加密;并且执行第二密码操作包括使用第一加密密钥和与目的地组件相关联的调整对经加密的数据进行解密。
示例12包括示例1-11中任一项的主题,并且其中:绕过控制逻辑还用于确定是否绕过第二存储器加密引擎;并且绕过第二存储器加密引擎包括响应于确定绕过第二存储器加密引擎,绕过第二存储器加密引擎。
示例13包括示例1-12中任一项的主题,并且其中,确定是否绕过第二存储器加密引擎包括:基于源组件的设备配置或目的地组件的设备配置来确定是否绕过第二存储器加密引擎。
示例14包括示例1-13中任一项的主题,并且其中,确定是否绕过第二存储器加密引擎包括:基于与经加密的数据相关联的存储器地址来确定是否绕过第二存储器加密引擎。
示例15包括示例1-14中任一项的主题,并且其中,确定是否绕过第二存储器加密引擎包括:确定与经加密的数据相关联的调整是否可用于第一存储器加密引擎。
示例16包括示例1-15中任一项的主题,并且其中:计算设备包括处理器和加速器,其中,I/O链路耦合在处理器与加速器之间;源组件包括处理器或加速器;目的地组件包括处理器或加速器;第一存储器加密引擎包括处理器的存储器加密引擎或加速器的存储器加密引擎;并且第二存储器加密引擎包括不同于第一存储器加密引擎的、处理器的存储器加密引擎或加速器的存储器加密引擎。
示例17包括示例1-16中任一项的主题,并且其中,I/O链路包括PCI链路或加速器设备链路。
示例18包括一种用于安全数据传输的方法,该方法包括:由计算设备利用第一加密密钥来配置计算设备的第一存储器加密引擎和计算设备的第二存储器加密引擎;由计算设备经由在源组件与目的地组件之间的I/O链路将经加密的数据从源组件传输到目的地组件,其中,经加密的数据是利用第一加密密钥进行加密的;由第一存储器加密引擎使用第一加密密钥来执行与经加密的数据有关的密码操作;以及由计算设备绕过第二存储器加密引擎。
示例19包括示例18的主题,并且其中:源组件包括第一存储器加密引擎;目的地组件包括第二存储器加密引擎;传输经加密的数据包括响应于执行密码操作,传输经加密的数据;并且绕过第二存储器加密引擎包括响应于传输经加密的数据,绕过第二存储器加密引擎。
示例20包括示例18和19中任一项的主题,并且还包括:由计算设备从源组件的明文存储器读取明文数据;以及由计算设备响应于绕过第二存储器加密引擎,将经加密的数据存储在耦合到目的地组件的经加密的存储器中;其中,执行密码操作包括响应于读取明文数据,使用第一加密密钥和与目的地组件相关联的调整对明文数据进行加密。
示例21包括示例18-20中任一项的主题,并且还包括:由计算设备从耦合到源组件的经加密的存储器读取经加密的数据;由第一存储器加密引擎响应于执行密码操作,使用第一加密密钥来执行与经加密的数据有关的第二密码操作;以及由计算设备响应于绕过第二存储器加密引擎,将经加密的数据存储在耦合到目的地组件的经加密的存储器中;其中,执行密码操作包括响应于读取经加密的数据,使用第一加密密钥和与源组件相关联的调整对经加密的数据进行解密以恢复明文数据;其中,执行第二密码操作包括使用第一加密密钥和与目的地组件相关联的调整对明文数据进行加密;并且其中,传输经加密的数据包括响应于执行第二密码操作,传输经加密的数据。
示例22包括示例18-21中任一项的主题,并且其中:源组件包括第二存储器加密引擎;目的地组件包括第一存储器加密引擎;传输经加密的数据包括响应于绕过第二存储器加密引擎,传输经加密的数据;并且执行密码操作包括响应于传输经加密的数据,执行密码操作。
示例23包括示例18-22中任一项的主题,并且还包括:由计算设备从耦合到源组件的经加密的存储器读取经加密的数据;由计算设备响应于执行密码操作,将明文数据存储在目的地组件的明文存储器中;其中,绕过第二存储器加密引擎包括响应于读取经加密的数据,绕过第二存储器加密引擎;并且其中,执行密码操作包括使用第一加密密钥和与源组件相关联的调整对经加密的数据进行解密以恢复明文数据。
示例24包括示例18-23中任一项的主题,并且还包括:由计算设备从耦合到源组件的经加密的存储器读取经加密的数据;由第一存储器加密引擎响应于执行密码操作,使用第一加密密钥来执行与经加密的数据有关的第二密码操作;以及由计算设备响应于执行第二密码操作,将经加密的数据存储在耦合到目的地组件的经加密的存储器中;其中,绕过第二存储器加密引擎包括响应于读取经加密的数据,绕过第二存储器加密引擎;其中,执行密码操作包括使用第一加密密钥和与源组件相关联的调整对经加密的数据进行解密以恢复明文数据;并且其中,执行第二密码操作包括使用第一加密密钥和与目的地组件相关联的调整对明文数据进行加密。
示例25包括示例18-24中任一项的主题,并且还包括:由计算设备确定是否绕过第二存储器加密引擎;以及由第二存储器加密引擎响应于确定不绕过第二存储器加密引擎,使用第一加密密钥来执行与经加密的数据有关的第二密码操作;其中,源组件包括第一存储器加密引擎;其中,目的地组件包括第二存储器加密引擎;并且其中,传输经加密的数据包括响应于执行密码操作,传输经加密的数据。
示例26包括示例18-25中任一项的主题,并且还包括:由计算设备从源组件的明文存储器读取明文数据;以及由计算设备响应于执行第二密码操作,将明文数据存储在目的地组件的明文存储器中;其中,执行密码操作包括响应于读取明文数据,使用第一加密密钥对明文数据进行加密;并且其中,执行第二密码操作包括使用第一加密密钥对经加密的数据进行解密以恢复明文数据。
示例27包括示例18-26中任一项的主题,并且其中:执行密码操作还包括使用第一加密密钥和与源组件相关联的调整对明文数据进行加密;并且执行第二密码操作包括使用第一加密密钥和与源组件相关联的调整对经加密的数据进行解密。
示例28包括示例18-27中任一项的主题,并且其中:执行密码操作还包括使用第一加密密钥和与目的地组件相关联的调整对明文数据进行加密;并且执行第二密码操作包括使用第一加密密钥和与目的地组件相关联的调整对经加密的数据进行解密。
示例29包括示例18-28中任一项的主题,并且还包括:由计算设备确定是否绕过第二存储器加密引擎;其中,绕过第二存储器加密引擎包括响应于确定绕过第二存储器加密引擎,绕过第二存储器加密引擎。
示例30包括示例18-29中任一项的主题,并且其中,确定是否绕过第二存储器加密引擎包括:基于源组件的设备配置或目的地组件的设备配置来确定是否绕过第二存储器加密引擎。
示例31包括示例18-30中任一项的主题,并且其中,确定是否绕过第二存储器加密引擎包括:基于与经加密的数据相关联的存储器地址来确定是否绕过第二存储器加密引擎。
示例32包括示例18-31中任一项的主题,并且其中,确定是否绕过第二存储器加密引擎包括:确定与经加密的数据相关联的调整是否可用于第一存储器加密引擎。
示例33包括示例18-32中任一项的主题,并且其中:计算设备包括处理器和加速器,其中,I/O链路耦合在处理器与加速器之间;源组件包括处理器或加速器;目的地组件包括处理器或加速器;第一存储器加密引擎包括处理器的存储器加密引擎或加速器的存储器加密引擎;并且第二存储器加密引擎包括不同于第一存储器加密引擎的、处理器的存储器加密引擎或加速器的存储器加密引擎。
示例34包括示例18-33中任一项的主题,并且其中,I/O链路包括PCI链路或加速器设备链路。
示例35包括一种计算设备,该计算设备包括:处理器;以及其中存储有多个指令的存储器,该多个指令当由处理器执行时,使得计算设备执行示例18-34中任一项的方法。
示例36包括一种或多种非暂时性计算机可读存储介质,包括存储在其上的多个指令,该多个指令响应于被执行而使得计算设备执行示例18-34中任一项的方法。
示例37包括一种计算设备,该计算设备包括用于执行示例18-34中任一项的方法的模块。

Claims (25)

1.一种用于安全数据传输的计算设备,所述计算设备包括:
第一存储器加密引擎和第二存储器加密引擎;
传输管理器,其用于(i)利用第一加密密钥来配置所述第一存储器加密引擎和所述第二存储器加密引擎,以及(ii)经由在源组件与目的地组件之间的I/O链路将经加密的数据从所述源组件传输到所述目的地组件,其中,所述经加密的数据是利用所述第一加密密钥进行加密的;以及
绕过控制逻辑,其用于绕过所述第二存储器加密引擎;
其中,所述第一存储器加密引擎用于使用所述第一加密密钥来执行与所述经加密的数据有关的密码操作。
2.如权利要求1所述的计算设备,其中:
所述源组件包括所述第一存储器加密引擎;
所述目的地组件包括所述第二存储器加密引擎;
传输所述经加密的数据包括响应于执行所述密码操作,传输所述经加密的数据;并且
绕过所述第二存储器加密引擎包括响应于传输所述经加密的数据,绕过所述第二存储器加密引擎。
3.如权利要求2所述的计算设备,其中:
所述第一存储器加密引擎还用于从所述源组件的明文存储器读取明文数据;
所述绕过控制逻辑还用于响应于绕过所述第二存储器加密引擎,将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中;并且
执行所述密码操作包括响应于读取所述明文数据,使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密。
4.如权利要求2所述的计算设备,其中:
所述第一存储器加密引擎还用于(i)从耦合到所述源组件的经加密的存储器读取所述经加密的数据,以及(ii)响应于执行所述密码操作,使用所述第一加密密钥来执行与所述经加密的数据有关的第二密码操作;
所述绕过控制逻辑还用于响应于绕过所述第二存储器加密引擎,将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中;
执行所述密码操作包括响应于读取所述经加密的数据,使用所述第一加密密钥和与所述源组件相关联的调整对所述经加密的数据进行解密以恢复明文数据;
执行所述第二密码操作包括使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密;并且
传输所述经加密的数据包括响应于执行所述第二密码操作,传输所述经加密的数据。
5.如权利要求1所述的计算设备,其中:
所述源组件包括所述第二存储器加密引擎;
所述目的地组件包括所述第一存储器加密引擎;
传输所述经加密的数据包括响应于绕过所述第二存储器加密引擎,传输所述经加密的数据;并且
执行所述密码操作包括响应于传输所述经加密的数据,执行所述密码操作。
6.如权利要求5所述的计算设备,其中:
所述绕过控制逻辑用于从耦合到所述源组件的经加密的存储器读取所述经加密的数据;
所述第一存储器加密引擎还用于响应于执行所述密码操作,将明文数据存储在所述目的地组件的明文存储器中;
绕过所述第二存储器加密引擎包括响应于读取所述经加密的数据,绕过所述第二存储器加密引擎;并且
执行所述密码操作包括使用所述第一加密密钥和与所述源组件相关联的调整对所述经加密的数据进行解密以恢复所述明文数据。
7.如权利要求5所述的计算设备,其中:
所述绕过控制逻辑用于从耦合到所述源组件的经加密的存储器读取所述经加密的数据;
所述第一存储器加密引擎用于(i)响应于执行所述密码操作,使用所述第一加密密钥来执行与所述经加密的数据有关的第二密码操作,以及(ii)响应于执行所述第二密码操作,将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中;
绕过所述第二存储器加密引擎包括响应于读取所述经加密的数据,绕过所述第二存储器加密引擎;
执行所述密码操作包括使用所述第一加密密钥和与所述源组件相关联的调整对所述经加密的数据进行解密以恢复明文数据;并且
执行所述第二密码操作包括使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密。
8.如权利要求1所述的计算设备,其中:
所述绕过控制逻辑用于确定是否绕过所述第二存储器加密引擎;并且
所述第二存储器加密引擎用于响应于确定不绕过所述第二存储器加密引擎,使用所述第一加密密钥来执行与所述经加密的数据有关的第二密码操作;
所述源组件包括所述第一存储器加密引擎;
所述目的地组件包括所述第二存储器加密引擎;并且
传输所述经加密的数据包括响应于执行所述密码操作,传输所述经加密的数据。
9.如权利要求8所述的计算设备,其中:
所述第一存储器加密引擎还用于从所述源组件的明文存储器读取明文数据;
所述第二存储器加密引擎还用于响应于执行所述第二密码操作,将所述明文数据存储在所述目的地组件的明文存储器中;
执行所述密码操作包括响应于读取所述明文数据,使用所述第一加密密钥对所述明文数据进行加密;并且
执行所述第二密码操作包括使用所述第一加密密钥对所述经加密的数据进行解密以恢复所述明文数据。
10.如权利要求1所述的计算设备,其中:
所述绕过控制逻辑还用于确定是否绕过所述第二存储器加密引擎;并且
绕过所述第二存储器加密引擎包括响应于确定绕过所述第二存储器加密引擎,绕过所述第二存储器加密引擎。
11.如权利要求10所述的计算设备,其中,确定是否绕过所述第二存储器加密引擎包括:基于与所述经加密的数据相关联的存储器地址来确定是否绕过所述第二存储器加密引擎。
12.如权利要求10所述的计算设备,其中,确定是否绕过所述第二存储器加密引擎包括:确定与所述经加密的数据相关联的调整是否可用于所述第一存储器加密引擎。
13.如权利要求1所述的计算设备,其中:
所述计算设备包括处理器和加速器,其中,所述I/O链路耦合在所述处理器与所述加速器之间;
所述源组件包括所述处理器或所述加速器;
所述目的地组件包括所述处理器或所述加速器;
所述第一存储器加密引擎包括所述处理器的存储器加密引擎或所述加速器的存储器加密引擎;并且
所述第二存储器加密引擎包括不同于所述第一存储器加密引擎的、所述处理器的存储器加密引擎或所述加速器的存储器加密引擎。
14.一种用于安全数据传输的方法,所述方法包括:
由计算设备利用第一加密密钥来配置所述计算设备的第一存储器加密引擎和所述计算设备的第二存储器加密引擎;
由所述计算设备经由在源组件与目的地组件之间的I/O链路将经加密的数据从所述源组件传输到所述目的地组件,其中,所述经加密的数据是利用所述第一加密密钥进行加密的;
由所述第一存储器加密引擎使用所述第一加密密钥来执行与所述经加密的数据有关的密码操作;以及
由所述计算设备绕过所述第二存储器加密引擎。
15.如权利要求14所述的方法,其中:
所述源组件包括所述第一存储器加密引擎;
所述目的地组件包括所述第二存储器加密引擎;
传输所述经加密的数据包括响应于执行所述密码操作,传输所述经加密的数据;并且
绕过所述第二存储器加密引擎包括响应于传输所述经加密的数据,绕过所述第二存储器加密引擎。
16.如权利要求15所述的方法,还包括:
由所述计算设备从所述源组件的明文存储器读取明文数据;以及
由所述计算设备响应于绕过所述第二存储器加密引擎,将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中;
其中,执行所述密码操作包括响应于读取所述明文数据,使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密。
17.如权利要求15所述的方法,还包括:
由所述计算设备从耦合到所述源组件的经加密的存储器读取所述经加密的数据;
由所述第一存储器加密引擎响应于执行所述密码操作,使用所述第一加密密钥来执行与所述经加密的数据有关的第二密码操作;以及
由所述计算设备响应于绕过所述第二存储器加密引擎,将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中;
其中,执行所述密码操作包括响应于读取所述经加密的数据,使用所述第一加密密钥和与所述源组件相关联的调整对所述经加密的数据进行解密以恢复明文数据;
其中,执行所述第二密码操作包括使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密;并且
其中,传输所述经加密的数据包括响应于执行所述第二密码操作,传输所述经加密的数据。
18.如权利要求14所述的方法,其中:
所述源组件包括所述第二存储器加密引擎;
所述目的地组件包括所述第一存储器加密引擎;
传输所述经加密的数据包括响应于绕过所述第二存储器加密引擎,传输所述经加密的数据;并且
执行所述密码操作包括响应于传输所述经加密的数据,执行所述密码操作。
19.如权利要求18所述的方法,还包括:
由所述计算设备从耦合到所述源组件的经加密的存储器读取所述经加密的数据;
由所述第一存储器加密引擎响应于执行所述密码操作,使用所述第一加密密钥来执行与所述经加密的数据有关的第二密码操作;以及
由所述计算设备响应于执行所述第二密码操作,将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中;
其中,绕过所述第二存储器加密引擎包括响应于读取所述经加密的数据,绕过所述第二存储器加密引擎;
其中,执行所述密码操作包括使用所述第一加密密钥和与所述源组件相关联的调整对所述经加密的数据进行解密以恢复明文数据;并且
其中,执行所述第二密码操作包括使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密。
20.一种用于安全数据传输的计算设备,所述计算设备包括:
用于利用第一加密密钥来配置所述计算设备的第一存储器加密引擎和所述计算设备的第二存储器加密引擎的模块;
用于经由在源组件与目的地组件之间的I/O链路将经加密的数据从所述源组件传输到所述目的地组件的模块,其中,所述经加密的数据是利用所述第一加密密钥进行加密的;
用于由所述第一存储器加密引擎使用所述第一加密密钥来执行与所述经加密的数据有关的密码操作的模块;以及
用于绕过所述第二存储器加密引擎的模块。
21.如权利要求20所述的计算设备,其中:
所述源组件包括所述第一存储器加密引擎;
所述目的地组件包括所述第二存储器加密引擎;
用于传输所述经加密的数据的模块包括用于响应于执行所述密码操作而传输所述经加密的数据的模块;并且
用于绕过所述第二存储器加密引擎的模块包括用于响应于传输所述经加密的数据而绕过所述第二存储器加密引擎的模块。
22.如权利要求21所述的计算设备,还包括:
用于从所述源组件的明文存储器读取明文数据的模块;以及
用于响应于绕过所述第二存储器加密引擎而将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中的模块;
其中,用于执行所述密码操作的模块包括用于响应于读取所述明文数据而使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密的模块。
23.如权利要求21所述的计算设备,还包括:
用于从耦合到所述源组件的经加密的存储器读取所述经加密的数据的模块;
用于由所述第一存储器加密引擎响应于执行所述密码操作而使用所述第一加密密钥来执行与所述经加密的数据有关的第二密码操作的模块;以及
用于响应于绕过所述第二存储器加密引擎而将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中的模块;
其中,用于执行所述密码操作的模块包括用于响应于读取所述经加密的数据而使用所述第一加密密钥和与所述源组件相关联的调整对所述经加密的数据进行解密以恢复明文数据的模块;
其中,用于执行所述第二密码操作的模块包括用于使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密的模块;并且
其中,用于传输所述经加密的数据的模块包括用于响应于执行所述第二密码操作而传输所述经加密的数据的模块。
24.如权利要求20所述的计算设备,其中:
所述源组件包括所述第二存储器加密引擎;
所述目的地组件包括所述第一存储器加密引擎;
用于传输所述经加密的数据的模块包括用于响应于绕过所述第二存储器加密引擎而传输所述经加密的数据的模块;并且
用于执行所述密码操作的模块包括用于响应于传输所述经加密的数据而执行所述密码操作的模块。
25.如权利要求24所述的计算设备,还包括:
用于从耦合到所述源组件的经加密的存储器读取所述经加密的数据的模块;
用于由所述第一存储器加密引擎响应于执行所述密码操作而使用所述第一加密密钥来执行与所述经加密的数据有关的第二密码操作的模块;以及
用于响应于执行所述第二密码操作而将所述经加密的数据存储在耦合到所述目的地组件的经加密的存储器中的模块;
其中,用于绕过所述第二存储器加密引擎的模块包括用于响应于读取所述经加密的数据而绕过所述第二存储器加密引擎的模块;
其中,用于执行所述密码操作的模块包括用于使用所述第一加密密钥和与所述源组件相关联的调整对所述经加密的数据进行解密以恢复明文数据的模块;并且
其中,用于执行所述第二密码操作的模块包括用于使用所述第一加密密钥和与所述目的地组件相关联的调整对所述明文数据进行加密的模块。
CN201910418576.2A 2018-06-20 2019-05-20 用于利用存储器加密引擎的安全i/o的技术 Pending CN110618947A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862687403P 2018-06-20 2018-06-20
US62/687,403 2018-06-20
US16/236,074 2018-12-28
US16/236,074 US20190155754A1 (en) 2018-06-20 2018-12-28 Technologies for secure i/o with memory encryption engines

Publications (1)

Publication Number Publication Date
CN110618947A true CN110618947A (zh) 2019-12-27

Family

ID=66244403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910418576.2A Pending CN110618947A (zh) 2018-06-20 2019-05-20 用于利用存储器加密引擎的安全i/o的技术

Country Status (3)

Country Link
US (11) US11169935B2 (zh)
CN (1) CN110618947A (zh)
DE (1) DE102019113352A1 (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3050847B1 (fr) * 2016-05-02 2019-04-05 Morpho Procede d'optimisation d'ecritures en memoire dans un dispositif
EP3688647B1 (en) 2017-09-25 2023-06-14 Telefonaktiebolaget LM Ericsson (PUBL) Enclave handling on an execution platform
US11502948B2 (en) 2017-10-16 2022-11-15 Mellanox Technologies, Ltd. Computational accelerator for storage operations
US11704442B2 (en) 2018-03-27 2023-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Instance handling of a trusted execution environment
US11416605B2 (en) * 2018-03-27 2022-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Trusted execution environment instances licenses management
US10979232B2 (en) * 2018-05-31 2021-04-13 Motorola Solutions, Inc. Method for provisioning device certificates for electronic processors in untrusted environments
US11169935B2 (en) 2018-06-20 2021-11-09 Intel Corporation Technologies for low-latency cryptography for processor-accelerator communication
DE102018127330A1 (de) * 2018-11-01 2020-05-07 Infineon Technologies Ag System-on-Chip und Verfahren zum Betreiben eines System-on-Chip
US11409534B2 (en) * 2019-01-04 2022-08-09 Baidu Usa Llc Attestation protocol between a host system and a data processing accelerator
US11693970B2 (en) * 2019-01-04 2023-07-04 Baidu Usa Llc Method and system for managing memory of data processing accelerators
WO2020140268A1 (en) 2019-01-04 2020-07-09 Baidu.Com Times Technology (Beijing) Co., Ltd. Method and system for providing secure communications between a host system and a data processing accelerator
EP3794444A4 (en) 2019-01-04 2022-01-12 Baidu.com Times Technology (Beijing) Co., Ltd. METHOD AND SYSTEM FOR THE PROTECTION OF DATA PROCESSED BY DATA PROCESSING ACCELERATORS
EP3811557A4 (en) 2019-01-04 2022-04-13 Baidu.com Times Technology (Beijing) Co., Ltd. METHOD AND SYSTEM FOR DERIVING A SESSION KEY TO SECURE AN INFORMATION EXCHANGE CHANNEL BETWEEN A HOST SYSTEM AND A DATA PROCESSING ACCELERATOR
EP3794477B1 (en) * 2019-01-04 2023-05-10 Baidu.com Times Technology (Beijing) Co., Ltd. Method and system for validating kernel objects to be executed by a data processing accelerator of a host system
CN112334902A (zh) * 2019-01-04 2021-02-05 百度时代网络技术(北京)有限公司 建立主机系统与数据处理加速器之间的安全信息交换信道的方法
EP3794772A4 (en) 2019-01-04 2021-12-29 Baidu.com Times Technology (Beijing) Co., Ltd. Data processing accelerator having security unit to provide root trust services
CN112352242B (zh) * 2019-01-04 2024-03-22 百度时代网络技术(北京)有限公司 具有本地时间单元以生成时间戳的数据处理加速器
US11374734B2 (en) * 2019-01-04 2022-06-28 Baidu Usa Llc Method and system for key distribution and exchange for data processing accelerators
ES2872101T3 (es) 2019-04-26 2021-11-02 Advanced New Technologies Co Ltd Gestión de claves distribuidas para entornos de ejecución confiables
FR3098319A1 (fr) * 2019-07-05 2021-01-08 Commissariat à l'énergie atomique et aux énergies alternatives Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur
EP3966721A1 (en) * 2019-07-11 2022-03-16 Huawei Technologies Co., Ltd. Apparatus and method for disk attestation
US11593529B2 (en) * 2019-07-29 2023-02-28 Intel Corporation Device interface security management for computer buses
CN110677240B (zh) * 2019-08-29 2020-07-10 阿里巴巴集团控股有限公司 通过证书签发提供高可用计算服务的方法、装置及介质
US10790979B1 (en) 2019-08-29 2020-09-29 Alibaba Group Holding Limited Providing high availability computing service by issuing a certificate
CN110601830B (zh) * 2019-09-16 2021-08-31 腾讯科技(深圳)有限公司 基于区块链的密钥管理方法、装置、设备及存储介质
US11775692B2 (en) * 2019-10-10 2023-10-03 Baidu Usa Llc Method and system for encrypting data using a kernel
US11496314B2 (en) * 2019-12-18 2022-11-08 Intel Corporation Integrity protected command buffer execution
US11019033B1 (en) 2019-12-27 2021-05-25 EMC IP Holding Company LLC Trust domain secure enclaves in cloud infrastructure
US11281579B2 (en) * 2020-01-28 2022-03-22 Intel Corporation Cryptographic separation of MMIO on device
US11347875B2 (en) 2020-01-28 2022-05-31 Intel Corporation Cryptographic separation of memory on device with use in DMA protection
US11586458B2 (en) * 2020-02-26 2023-02-21 Red Hat, Inc. Fast device discovery for virtual machines
US11265144B2 (en) * 2020-03-09 2022-03-01 International Business Machines Corporation Consistent ciphertext creation
CN111476596B (zh) * 2020-03-19 2023-05-02 深圳市酷开网络科技股份有限公司 基于同源设备的家庭人口数据处理方法、系统及存储介质
US11205003B2 (en) * 2020-03-27 2021-12-21 Intel Corporation Platform security mechanism
WO2021213691A1 (en) * 2020-04-23 2021-10-28 NEC Laboratories Europe GmbH Tee-based mining pools for pow-cryptocurrencies
US11368287B2 (en) 2020-05-19 2022-06-21 International Business Machines Corporation Identification of a creator of an encrypted object
US11489661B2 (en) * 2020-06-23 2022-11-01 Intel Corporation High throughput post quantum AES-GCM engine for TLS packet encryption and decryption
US11575505B2 (en) 2020-07-27 2023-02-07 Samsung Electronics Co., Ltd. Systems, methods, and devices for key per input/output security
IL276538B2 (en) * 2020-08-05 2023-08-01 Mellanox Technologies Ltd A cryptographic device for data communication
CN114095153A (zh) * 2020-08-05 2022-02-25 迈络思科技有限公司 密码数据通信装置
US11651111B2 (en) 2020-09-25 2023-05-16 Intel Corporation Enabling secure state-clean during configuration of partial reconfiguration bitstreams on FPGA
US11853793B2 (en) 2020-10-09 2023-12-26 Samsung Electronics Co., Ltd. Methods and system for on-device AI model parameter run-time protection
CN112100638B (zh) * 2020-11-03 2021-03-09 北京微智信业科技有限公司 基于硬件安全隔离区域的图像数据处理方法、装置和设备
US20210141658A1 (en) * 2020-11-11 2021-05-13 Ravi Sahita Method and apparatus for trusted devices using trust domain extensions
US20210110070A1 (en) * 2020-12-22 2021-04-15 Anjo Lucas Vahldiek-Oberwagner Reducing latency of hardware trusted execution environments
US11763018B2 (en) * 2021-02-22 2023-09-19 Imperva, Inc. System and method for policy control in databases
US20230017231A1 (en) * 2021-07-17 2023-01-19 International Business Machines Corporation Securely executing software based on cryptographically verified instructions
US20220012095A1 (en) * 2021-09-22 2022-01-13 Intel Corporation Metrics and security-based accelerator service rescheduling and auto-scaling using a programmable network device
US20230138906A1 (en) * 2021-10-29 2023-05-04 Texas Instruments Incorporated Trim configuration of analog modules
US11698869B1 (en) * 2022-03-10 2023-07-11 Nvidia Corporation Computing an authentication tag for partial transfers scheduled across multiple direct memory access (DMA) engines
US20240072995A1 (en) * 2022-08-31 2024-02-29 Red Hat, Inc. Secured peripheral device communication via bridge device in virtualized computer system

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2634812C (en) * 1997-09-16 2010-03-30 Safenet, Inc. Cryptographic co-processor
JP2003281071A (ja) * 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US7194627B2 (en) * 2003-03-14 2007-03-20 Broadcom Corporation Method and system for data encryption and decryption
US7523097B1 (en) * 2004-01-13 2009-04-21 Juniper Networks, Inc. Restoration of archived configurations for a network device
JP4982031B2 (ja) * 2004-01-16 2012-07-25 株式会社日立製作所 コンテンツ送信装置、コンテンツ受信装置およびコンテンツ送信方法、コンテンツ受信方法
KR100675837B1 (ko) * 2004-12-13 2007-01-29 한국전자통신연구원 고속 gcm-aes 블록 암호화 장치 및 방법
US7716389B1 (en) * 2006-03-17 2010-05-11 Bitmicro Networks, Inc. Direct memory access controller with encryption and decryption for non-blocking high bandwidth I/O transactions
US7986786B2 (en) * 2006-11-30 2011-07-26 Hewlett-Packard Development Company, L.P. Methods and systems for utilizing cryptographic functions of a cryptographic co-processor
JP4347350B2 (ja) * 2007-02-15 2009-10-21 富士通株式会社 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法
US8768843B2 (en) * 2009-01-15 2014-07-01 Igt EGM authentication mechanism using multiple key pairs at the BIOS with PKI
US8411867B2 (en) * 2009-04-06 2013-04-02 Broadcom Corporation Scalable and secure key management for cryptographic data processing
US9141831B2 (en) * 2010-07-08 2015-09-22 Texas Instruments Incorporated Scheduler, security context cache, packet processor, and authentication, encryption modules
MY164093A (en) * 2011-12-02 2017-11-30 Mimos Berhad A system and method foe establishing mutual remote attestation in internet protocol security (ipsec) based virtual private network (vpn)
JP2015511050A (ja) * 2012-03-20 2015-04-13 クリメニ テクノロジーズ, インコーポレイテッド プロセス作業セット隔離のための方法およびシステム
EP2839400A4 (en) * 2012-04-16 2016-01-06 Intel Corp RELIABLE USER INTERACTION
US9075751B2 (en) * 2012-08-09 2015-07-07 Intel Corporation Secure data protection with improved read-only memory locking during system pre-boot
US8842675B2 (en) * 2012-08-23 2014-09-23 L-3 Communications Corporation Systems and methods for multicore processing of data with in-sequence delivery
US9769123B2 (en) * 2012-09-06 2017-09-19 Intel Corporation Mitigating unauthorized access to data traffic
US9215249B2 (en) * 2012-09-29 2015-12-15 Intel Corporation Systems and methods for distributed trust computing and key management
US9461816B2 (en) * 2012-12-26 2016-10-04 Intel Corporation Methods, systems and apparatus to reduce processor demands during encryption
US9141769B1 (en) * 2013-02-08 2015-09-22 Amazon Technologies, Inc. Secure transfer and use of secret material in a shared environment
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
US9049013B2 (en) * 2013-03-14 2015-06-02 Sprint Communications Company L.P. Trusted security zone containers for the protection and confidentiality of trusted service manager data
US9524399B1 (en) * 2013-04-01 2016-12-20 Secturion Systems, Inc. Multi-level independent security architecture
US9426185B1 (en) * 2013-06-03 2016-08-23 Ayla Networks, Inc. Proximity based communication with embedded system
US20150113241A1 (en) * 2013-10-21 2015-04-23 Jason Martin Establishing physical locality between secure execution environments
EP3084667A4 (en) * 2013-12-19 2017-07-26 Intel Corporation Policy-based trusted inspection of rights managed content
US9825764B2 (en) * 2014-02-26 2017-11-21 Unisys Corporation Enhanced security for media decryption
US10050955B2 (en) * 2014-10-24 2018-08-14 Netflix, Inc. Efficient start-up for secured connections and related services
US10303644B2 (en) * 2014-11-21 2019-05-28 International Business Machines Corporation Providing remote, reliant and high performance PCI express device in cloud computing environments
US20160277372A1 (en) * 2015-03-17 2016-09-22 Riverbed Technology, Inc. Optimization of a secure connection with enhanced security for private cryptographic keys
GB201506045D0 (en) * 2015-04-09 2015-05-27 Vodafone Ip Licensing Ltd SIM security
US9716710B2 (en) * 2015-06-26 2017-07-25 Intel Corporation Technologies for virtualized access to security services provided by a converged manageability and security engine
US9853820B2 (en) * 2015-06-30 2017-12-26 Microsoft Technology Licensing, Llc Intelligent deletion of revoked data
US10958648B2 (en) * 2015-06-30 2021-03-23 Amazon Technologies, Inc. Device communication environment
US10073977B2 (en) * 2015-07-20 2018-09-11 Intel Corporation Technologies for integrity, anti-replay, and authenticity assurance for I/O data
US10248791B2 (en) * 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
US10552619B2 (en) * 2015-07-20 2020-02-04 Intel Corporation Technologies for secure trusted I/O access control
US10181946B2 (en) * 2015-07-20 2019-01-15 Intel Corporation Cryptographic protection of I/O data for DMA capable I/O controllers
US10158485B2 (en) * 2015-09-24 2018-12-18 Intel Corporation Double affine mapped S-box hardware accelerator
US10664179B2 (en) * 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US10079684B2 (en) * 2015-10-09 2018-09-18 Intel Corporation Technologies for end-to-end biometric-based authentication and platform locality assertion
US10467138B2 (en) * 2015-12-28 2019-11-05 Advanced Micro Devices, Inc. Caching policies for processing units on multiple sockets
JP6728799B2 (ja) * 2016-03-11 2020-07-22 日本電気株式会社 暗号通信システム、暗号通信方法、セキュリティチップ、通信装置およびその制御方法と制御プログラム
US10469265B2 (en) * 2016-03-31 2019-11-05 Intel Corporation Technologies for secure inter-enclave communications
US10515317B1 (en) * 2016-07-29 2019-12-24 Microsoft Technology Licensing, Llc Machine learning algorithm for user engagement based on confidential data statistical information
US10419931B1 (en) * 2016-08-25 2019-09-17 EMC IP Holding Company LLC Security for network computing environment using centralized security system
US10218497B2 (en) * 2016-08-31 2019-02-26 Intel Corporation Hybrid AES-SMS4 hardware accelerator
US10176122B2 (en) * 2016-10-19 2019-01-08 Advanced Micro Devices, Inc. Direct memory access authorization in a processing system
US10642972B2 (en) * 2016-10-20 2020-05-05 Intel Corporation Extending packet processing to trusted programmable and fixed-function accelerators
US10528740B2 (en) * 2017-06-15 2020-01-07 International Business Machines Corporation Securely booting a service processor and monitoring service processor integrity
US20180365406A1 (en) * 2017-06-20 2018-12-20 Qualcomm Incorporated Methods and systems for providing advanced secure boot features to limited-resource peripheral devices by using a secure processor
WO2019014265A1 (en) * 2017-07-10 2019-01-17 Fungible, Inc. DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES
US10505920B2 (en) * 2017-11-30 2019-12-10 Mocana Corporation System and method of device identification for enrollment and registration of a connected endpoint device, and blockchain service
US10291395B1 (en) * 2018-01-25 2019-05-14 Fortress Cyber Security, LLC Secure storage of data via a distributed ledger system
US11018871B2 (en) * 2018-03-30 2021-05-25 Intel Corporation Key protection for computing platform
US10728025B2 (en) * 2018-04-13 2020-07-28 Amazon Technologies, Inc. Encryption by default in an elastic computing system
WO2019217931A1 (en) * 2018-05-11 2019-11-14 Lattice Semiconductor Corporation Asset management systems and methods for programmable logic devices
US11169935B2 (en) 2018-06-20 2021-11-09 Intel Corporation Technologies for low-latency cryptography for processor-accelerator communication
US11281579B2 (en) * 2020-01-28 2022-03-22 Intel Corporation Cryptographic separation of MMIO on device

Also Published As

Publication number Publication date
US20210390063A1 (en) 2021-12-16
US20190130120A1 (en) 2019-05-02
US20190158277A1 (en) 2019-05-23
US11416415B2 (en) 2022-08-16
US11720503B2 (en) 2023-08-08
US11386017B2 (en) 2022-07-12
US20190132136A1 (en) 2019-05-02
US11650935B2 (en) 2023-05-16
US20220027288A1 (en) 2022-01-27
US11138132B2 (en) 2021-10-05
US20190311123A1 (en) 2019-10-10
DE102019113352A1 (de) 2019-12-24
US20190132118A1 (en) 2019-05-02
US11169935B2 (en) 2021-11-09
US20220091998A1 (en) 2022-03-24
US20190155754A1 (en) 2019-05-23
US20220245070A1 (en) 2022-08-04
US20230110230A1 (en) 2023-04-13

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
US9954681B2 (en) Systems and methods for data encryption
US11755500B2 (en) Cryptographic computing with disaggregated memory
CN107851163B (zh) 用于i/o数据的完整性、防重放和真实性保证的技术
US9152825B2 (en) Using storage controller bus interfaces to secure data transfer between storage devices and hosts
US10810138B2 (en) Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME)
US10261854B2 (en) Memory integrity violation analysis method and apparatus
US20220197825A1 (en) System, method and apparatus for total storage encryption
US20170357817A1 (en) File system metadata protection
US10140457B2 (en) Secure input/output device management
US20220092223A1 (en) Technologies for filtering memory access transactions received from one or more i/o devices
US20190384923A1 (en) Mechanism to enable secure memory sharing between enclaves and i/o adapters
US20230071723A1 (en) Technologies for establishing secure channel between i/o subsystem and trusted application for secure i/o data transfer
US20190228159A1 (en) Technologies for filtering memory access transactions received from one or more accelerators via coherent accelerator link
CN116260606A (zh) 与遗留外围设备的密态计算
KR20090059602A (ko) 세션 메모리 버스를 구비한 암호화 장치
US20240073013A1 (en) High performance secure io
US20220116403A1 (en) Telemetry restriction mechanism
US20240070091A1 (en) Isolation of memory regions in trusted domain

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