CN112149144A - 聚合密码引擎 - Google Patents
聚合密码引擎 Download PDFInfo
- Publication number
- CN112149144A CN112149144A CN202010218251.2A CN202010218251A CN112149144A CN 112149144 A CN112149144 A CN 112149144A CN 202010218251 A CN202010218251 A CN 202010218251A CN 112149144 A CN112149144 A CN 112149144A
- Authority
- CN
- China
- Prior art keywords
- content
- engine
- memory
- cryptographic key
- compute engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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 cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
一种计算系统的设备、计算机可读介质、方法和系统。该设备包括一个或多个处理器,其与计算系统的计算引擎通信,并且用于:接收指令,该指令包括关于密码密钥的信息;关于来自计算引擎的读取请求,确定不解密模式将是激活的还是未激活的;在接收读取请求用于从存储器读取内容时,并且响应于确定不解密模式是未激活的,使用密钥对内容解密,从而生成解密内容并且向计算引擎发送解密内容;以及响应于接收读取请求并且响应于确定不解密模式是激活的,向计算引擎发送内容而无需对内容解密。
Description
技术领域
本文描述的实施例一般涉及信息系统和计算架构,并且更特定地,涉及用于诸如图形相关内容之类的内容的受保护通信的系统架构。
背景技术
云计算和软件即服务(SAAS)提供商操作越来越复杂的计算机服务器和服务器场,其中信息安全性仍然是首要问题。安全性的新进展包括客户工作负载之间的加密隔离,所述客户工作负载典型地实现为在公共平台上运行的不同的虚拟机(VM)。
一个安全性方法牵涉使用密码引擎,诸如例如多密钥总存储器加密(MKTME),其中管理程序(hypervisor)可以对在它自己的VM上运行的客户工作负载中的每个分配密码密钥。每个工作负载可以使用它的密钥来保护它存储在服务器的物理存储器中的信息。安全MKTME可以用作存储器访问子系统的部分,用于执行加密和解密操作而作为提供安全存储器访问的一部分。MKTME可以集成到计算系统架构内,用于能为图形相关内容实现帧缓冲保护。这样的架构牵涉在计算系统的图形引擎和所连接的显示引擎中使用独立加密和/或解密引擎,用于使图形相关内容能够加密,一旦在图形引擎处使用第一密码密钥(例如在PAVP机制下)并且然后在显示引擎处再次使用第二密码密钥,例如在高带宽数字内容保护(HDCP)机制下。
尽管利用密码引擎(诸如MKTME)来处理安全图形相关内容的计算系统架构,允许独立工作负载经受专用加密算法,但由于在图形引擎和显示引擎两者处都需要安全图形相关内容,这样的架构仍然会遭受性能问题。
附图说明
为了提供对本公开及其特征和优势的更完整理解,结合附图对下列描述进行参考,其中类似的参考标号表示类似的部分,在所述其中:
图1是图示包括边缘装置和云服务的示例计算环境的示意图,其中根据各种实施例可以实现密码存储器保护;
图2是图示根据各种实施例的主机平台的高级框图,该主机平台可以实现图1的边缘装置或云服务中的全部或部分;
图3是图示计算系统(诸如图2中描绘的)的示例计算硬件和软件架构的图,其中示出硬件组件与软件组件之间的各种接口;
图4是图示现有技术的计算系统架构的高级框图;
图5是根据实施例的地址布局消息的示意表示;
图6是图示使用保护音频和视频路径(PAVP)用于加密的现有技术的计算系统架构的高级框图;
图7a是图示根据实施例的计算系统架构的高级框图;
图7b是示出根据一些实施例的图5的计算系统架构的各种组件之间的信号交换的高级框图;
图8是图示根据一个实施例使用PAVP用于加密的过程的高级框图;
图9是图示使用高带宽数字内容保护机制(HDCP)用于加密的现有技术的计算系统架构的高级框图;
图10是图示根据一个实施例使用HDCP用于加密的计算系统架构的高级框图;
图11是示出根据一个实施例的示例过程的流程图;以及
图12是示出根据另一个实施例的另一个示例过程的流程图。
具体实施方式
本公开的各方面针对密码存储器保护。所描述的实施例可以用于对内容提供存储器加密保护,诸如使用聚合密码引擎的图形相关内容,从而简化计算系统设计架构、削减成本并且改进性能。在实施例中,存储器加密可以通过聚合密码引擎来提供,该聚合密码引擎避免在图形引擎(诸如图形处理单元(GPU))中或在显示引擎中需要独立密码引擎。尽管本描述的部分指“图形相关内容”,但要理解与聚合密码引擎的使用有关的实施例的原理可以适用于任何类型的内容,其包括不是图形相关的内容,例如使用不一定牵涉图形引擎、显示引擎和显示设备的多个引擎。
所描述的实施例的各方面提供密码引擎,诸如MKTME,其包括输入/输出接口和一个或多个处理器,其中该一个或多个处理器:诸如从中央处理单元(CPU)的一个或多个核中的软件接收指令,该指令包括关于密码密钥的信息;关于来自计算引擎(诸如图形引擎)的读取请求,确定不解密模式将是激活的还是未激活的;响应于从计算引擎接收读取请求来从计算系统的存储器(诸如系统存储器)读取内容,并且响应于确定不解密模式是未激活的,使用密钥对内容解密,从而生成解密内容,并且向计算引擎发送解密内容;以及响应于从计算系统的计算引擎接收读取请求来从计算系统的存储器读取内容,并且响应于确定不解密模式是激活的,向计算引擎发送内容而无需对内容解密。
根据一些实施例的以上特征允许聚合或集中密码引擎解决包括例如GPU的图形处理系统的多个加密/解密需要,同时有利地在GPU(例如使用PAVP来加密或解密)中或在显示引擎(例如使用HDCP来加密或解密)中去掉对密码引擎的需要。
下文提供图1-3来描述可以执行本文描述的实施例的功能的计算系统的通用架构。
图1是图示示例计算系统100的示意图。在各种实施例中,系统100或其底层组件可以包括在该整个公开中描述的密码存储器保护功能性。例如,云服务提供商120可以为多个客户或第三方托管工作负载130(例如,虚拟机)。因此,在示例中,云服务提供商120可以实现多密钥密码存储器保护,用于根据每租户基础(per-tenant basis)提供存储器加密,因而使用唯一加密密钥来确保每个客户工作负载130被独立保护并且被隔离。密码存储器保护也可以由系统100的其他组件(诸如边缘装置110)实现。
边缘装置110可以包括在通信系统100的“边缘”附近部署或连接的任何设备或装置。在图示的实施例中,边缘装置110包括最终用户装置112(例如,台式机、膝上型计算机、移动装置)、物联网(IoT)装置114和联网装置116,诸如网关或路由器以及其他示例。边缘装置110可以通过一个或多个网络或通信协议(诸如通信网络150)彼此或与其他远程网络和服务(例如,云服务120)通信。此外,在示例中,某些边缘装置110可以包括在该整个公开中描述的密码存储器保护功能性。
最终用户装置112可以包括能实现或促进与计算系统100的用户交互的任何装置,其包括例如台式计算机、膝上型计算机、平板、移动电话和其他移动装置,以及可穿戴装置(例如,智能手表、智能眼镜、耳机)以及其他示例。
IoT装置114可以包括能够通信或参与物联网(IoT)系统或网络的任何装置。IoT系统可以指新的或改进的自组(ad-hoc)系统和网络,其由针对特定应用或用例而互操作且协同的多个不同的装置(例如,IoT装置114)组成。这样的自组系统随着越来越多的产品和设备演变为“智能的”而涌现,从而意味它们由计算机处理器控制或监视并且能够与其他装置通信。例如,IoT装置114可以包括计算机处理器或通信接口,用以允许与系统100的其他组件互操作,诸如与云服务120或其他边缘装置110互操作。IoT装置114可以是从一开始就具有IoT能力而开发的“绿地(greenfield)”装置,或通过使IoT能力集成到不具备IoT能力而曾初始开发的现有传统装置内而创建的“棕地(brownfield)”装置。例如,在一些情况下,IoT装置114可以从集成在“事物”中或附连到“事物”的传感器和通信模块中构建,所述“事务”诸如设备、玩具、工具、车辆、生物(例如,植物、动物、人)等。备选地或另外地,某些IoT装置114可以依赖中间组件,诸如边缘网关或路由器116,用以与系统100的各种组件通信。
云服务120可以包括在网络150上或在“云”中被远程托管的服务。在示例中,云服务120可以在数据中心中的服务器(例如,应用服务器或数据库服务器)上被远程托管。云服务120可以包括可以被边缘装置110利用或用于边缘装置110的任何服务,其包括但不限于数据和应用托管、计算服务(例如,数据分析、搜索、诊断和故障管理)、安全性服务(例如,监管、警报、用户验证)、映射和导航、地理定位服务、网络或设施管理、IoT应用和管理服务、支付处理、音频和视频流播、消息传递、社交联网、新闻和天气,以及其他示例。此外,在示例中,某些云服务120可以包括在该整个公开中描述的密码存储器保护功能性。例如,云服务提供商120通常为多个客户或第三方托管工作负载130(例如,数据或应用)。因此,在示例中,云服务提供商120可以实现多密钥密码存储器保护,用于根据每租户基础提供存储器加密,因而使用唯一密码密钥来确保每个客户工作负载130被独立保护并且被隔离。
网络150可以用于促进计算系统100的组件之间的通信。例如,诸如最终用户装置112和IoT装置114之类的边缘装置110可以使用网络150来互相通信或访问一个或多个远程云服务120。网络150可以包括任意数量或类型的通信网络,其包括例如局域网、广域网、公共网、因特网、蜂窝网络、Wi-Fi网络、毫米波网络、短程网络(例如,蓝牙或ZigBee)或任何其他有线或无线网络或通信媒介。
本文描述的示例实施例可以包括逻辑或多个组件、模块、电路或引擎或可以对逻辑或多个组件、模块、电路或引擎进行操作,出于一致性考虑而将它们称为引擎,尽管将理解这些术语可以互换地使用。引擎可以是硬件,所述硬件由软件或固件配置,并且通信地耦合到一个或多个电子电路以便实施本文描述的操作。引擎包括硬件,并且同样地,引擎是能够执行规定操作并且可以采用任何适合的方式配置或布置的有形实体。在示例中,电子电路可以采用规定方式作为引擎布置(例如,在内部或关于外部实体,诸如其他电路)。在示例中,一个或多个计算系统(例如,独立式、客户端或服务器计算系统)或一个或多个硬件处理器的整体或部分可以由固件或软件(例如,指令、应用部分或应用)配置为引擎,其操作以执行规定操作。在示例中,软件可以驻留在机器可读介质(例如,非暂时性存储介质,诸如硬件存储装置)上。在示例中,软件在被引擎的底层硬件执行时,促使硬件执行规定操作。
因此,术语引擎理解为包含有形实体,其是被物理构造、专门配置(例如,硬接线)或临时(例如,暂时)配置(例如,编程)以采用规定方式操作或执行本文描述的任何操作的部分或全部的实体。考虑其中暂时配置引擎的示例,引擎中的每个不需要在任一时刻被实例化。例如,在引擎包括使用软件配置的通用硬件处理器的情况下,通用硬件处理器可以在不同时间配置为相应的不同引擎。软件因此可以配置例如硬件处理器,以在一个时间实例构成特定引擎并且以在不同的时间实例构成不同的引擎。
图2是图示根据各种实施例的主机平台的高级框图,该主机平台可以实现图1的边缘装置110或云服务120的全部或部分。在某些实施例中,根据一个或多个特定算法对计算系统200编程,在执行该编程时产生专用机。在联网部署中,主机在服务器-客户端网络环境中可以以服务器或客户端机器的能力操作,或它在对等(peer-to-peer)(或分布式)网络环境中可以充当对等机。主机可以采取任何适合的形状因子,诸如个人计算机(PC)工作站、服务器(无论是机架式(rack-mounted)还是独立式的服务器)、大型计算机、集群计算系统或类似物、机顶盒以及移动式或便携式计算系统,诸如膝上型计算机/笔记本PC、车载系统、可穿戴装置、平板PC、混合平板、个人数字助理(PDA)、移动电话或更一般地能够执行指令(有序或以其他方式)的任何机器,所述指令规定要由该机器采取的动作。
示例主机200包括经由链路208(例如,总线)而互相通信的至少一个处理器202、主存储器204和静态存储器206,所述至少一个处理器202包括中央处理单元(CPU)、图形处理单元(GPU)、处理器核、计算节点等。主机200可以还包括视频显示单元210、字母数字输入装置212(例如,键盘)和用户界面(UI)导航装置214(例如,鼠标)。在一个实施例中,视频显示单元210、输入装置212和UI导航装置214并入触屏显示器内。主机200可以另外包括存储装置216(例如,驱动单元)、信号生成装置218(例如,扬声器)、网络接口装置(NID)220和一个或多个传感器(未示出),诸如全球定位系统(GPS)传感器、罗盘、加速计或其他传感器。
存储装置216包括机器可读介质222,在其上存储体现本文描述的方法或功能中的任一个或多个,或由本文描述的方法或功能中的任一个或多个利用的数据结构和指令224(例如,软件)中的一个或多个集合。指令224在其被主机200执行期间也可以完全或至少部分驻留在主存储器204、静态存储器206内,或在处理器202内,其中主存储器204、静态存储器206和处理器202也构成机器可读介质。
尽管机器可读介质222在示例实施例中图示为单个介质,但术语“机器可读介质”可以包括单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器),其存储一个或多个指令224。术语“机器可读介质”也应视为包括能够存储指令、对指令编码、或承载指令以供机器执行并且促使机器执行本公开的方法中的任一个或多个或能够存储被这样的指令所利用或与这样的指令相关联的数据结构、对这些数据结构编码、或承载这些数据结构的任何有形介质。术语“机器可读介质”相应地应视为包括但不限于固态存储器、以及光和磁介质。机器可读介质的特定示例包括非易失性存储器,其通过示例包括但不限于半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪速存储器装置;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。
NID 220根据各种实施例可以采取任何适合的形状因子。在一个这样的实施例中,NID 220采用网络接口卡(NIC)的形式,其经由链路208与处理器202通过接口连接。在一个示例中,链路208包括PCI Express(PCIe)互连,其包括NIC形状因子可以可移动地接合的槽。在另一个实施例中,NID 220是与局部链路电路、处理器接口电路、其他输入/输出电路、存储器电路、存储装置和外围控制器电路及类似物一起布局在母板上的网络接口电路。在另一个实施例中,NID 220是经由诸如通用串行总线(USB)端口之类的外设输入/输出端口而与链路208通过接口连接的外设。NID 220通过传输介质226传送和接收数据,所述传输介质可以是有线或无线(例如,射频、红外或可见光光谱等)的光纤或类似物。
图3是图示计算系统(诸如图2中描绘的计算系统)的示例计算硬件和软件架构的图,其中示出硬件组件与软件组件之间的各种接口。如由“HW”标签指示的,分隔线下方表示硬件组件,而由“SW”标签表示的软件组件驻留在分隔线上方。在硬件侧,处理装置302(其可以包括一个或多个微处理器、数字信号处理器等)与存储器管理装置304和系统互连306通过接口连接,每个处理装置302具有一个或多个处理器核。存储器管理装置304在被执行的过程所使用的虚拟存储器与物理存储器之间提供映射。存储器管理装置304可以是中央处理单元(CPU)的主要部分,所述中央处理单元也包括处理装置302。
互连306包括背板,诸如存储器、数据和控制线以及输入/输出装置的接口,例如PCI-e、USB等。存储器308(例如,动态随机存取存储器——DRAM)和诸如闪速存储器(例如,电可擦除只读存储器——EEPROM、NAND闪存、NOR闪存等)之类的非易失性存储器309经由存储器控制器310与存储器管理装置304和互连306通过接口连接。I/O装置(其包括视频和音频适配器、非易失性存储设备、诸如USB之类的外部外围链路、个人局域网(例如,Bluetooth)等,拍摄装置/麦克风数据捕捉装置、指纹阅读器和其他生物传感器以及网络接口装置,诸如经由Wi-Fi或LTE系列接口而通信的那些装置)统一表示为I/O装置和联网312,其经由对应的I/O控制器314与互连306通过接口连接。
在相关实施例中,输入/输出存储器管理单元IOMMU 315支持通过外设的安全直接存储器访问(DMA)。IOMMU 315可以通过调解(meditate)从I/O装置312对存储器308的访问来提供存储器保护。IOMMU 315也可以在虚拟环境中提供DMA存储器保护,其中它允许对在系统上运行的某些访客VM分配某些计算硬件资源,并且在未分配给它们的外设和其他VM之间实行隔离。
在软件侧,在初始系统起动时执行预操作系统(预OS)环境316并且它负责发起操作系统的启动。预OS环境316的一个传统示例是系统基本输入/输出系统(BIOS)。在当今的系统中,实现统一可扩展固件接口(UEFI)。预OS环境316负责发起操作系统或虚拟机器管理器的启动,但也为嵌入式应用提供执行环境。
管理程序318是系统软件,其创建并且控制虚拟机(VM)320A和320B的执行。管理程序318可以直接在硬件HW上运行,如所描述的那样,或管理程序318可以作为托管管理程序在操作系统的控制下运行。每个VM 320A、320B包括访客操作系统322A、322B,和应用程序324A、324B。
每个访客操作系统(OS)322A、322B提供内核,其经由管理程序318提供的资源来操作以控制硬件装置、管理对存储器中的程序的存储器访问、协调任务并且促进多任务化、组织待存储的数据、分配存储器空间和其他资源、将程序二进制代码加载到存储器内、发起对应的应用程序的执行(然后该应用程序与用户并且与硬件装置通过接口连接)、以及检测并响应于各种限定的中断。此外,每个访客OS 322A、322B提供装置驱动器,以及多种公共服务,诸如促进与外设和联网通过接口连接的那些公共服务,其为对应的应用程序324A、324B提供抽象,使得应用不必负责处理这样的公共操作的细节。每个访客OS 322A、322B另外可以提供图形用户界面(GUI),其促进经由外围装置与用户的交互,所述外围装置诸如监视器、键盘、鼠标、麦克风、视频拍摄装置、触屏及类似物。在示例中,访客OS 322B可以省略GUI。
每个访客OS 322A、322B可以提供运行时间系统,其实现执行模型的部分,所述执行模型包括这种操作:如在函数调用之前将参数放到堆栈之上、盘输入/输出(I/O)的行为以及并行执行相关行为。
另外,每个访客OS 322A、322B可以提供库,其包括为应用程序提供进一步抽象的程序函数的集合。这些包括例如共享库、动态链接库(DLL)。
应用程序324A、324B是除协调计算系统本身的基本可操作性的较低级系统程序所执行的任务以外,还执行对用户有用的任务的那些程序。
随着安全性需要的增长,存储器密码引擎已成为针对不同用途用于保护驻留在计算系统架构的主存储器或系统存储器中的代码和数据的要求。然而,典型地在整个平台的各种位置例示存在多个密码引擎,从而产生功率和面积开销并且增加设计复杂性。例如,中央处理单元(CPU)和图形引擎(诸如图形处理单元(GPU)或媒体引擎),尽管在彼此相同的互连上并且最常见的是协调完成任务(例如,在向GPU卸载工作的CPU上运行的应用),但可以出于不同目的实现多个密码引擎。如上文还提到的,显示引擎和图形引擎各自可以进一步使用它们自己的密码引擎以用于图形相关内容的加密和解密。
在图4中示出使用多个密码引擎的现有技术的计算系统架构的示例。根据图4,架构400包括CPU 402,其进而包括一系列核和高速缓存“C”406和图形引擎408,其中包括采用PAVP引擎409形式的密码引擎。CPU 204通过路由器411并且通过数据端口410和412连接到架构的余下部分。输入/输出(I/O)端口412通过构造416连接到显示引擎414,其包括它自己的采用PAVP引擎416和HDCP引擎428的形式的密码引擎。CPU 402经由路由器411、数据端口410和i/o端口412并且通过存储器接口(MI)构造420,通过存储器控制器(MC)422进一步连接到系统存储器424。诸如多密钥总存储器加密(MKTME)418之类的密码引擎耦合到MI构造420,用于除其他事务之外还对写入系统存储器424或从系统存储器424读取的内容加密或解密。如在图4中进一步看到的,图形引擎本身可以集成到CPU内(如通过示例由图形引擎408示出的那样)或离散的(如通过示例由图形引擎438示出的那样)并且使用诸如外围组件互连高速(PCIe)兼容互连之类的互连而附连到计算系统的余下部分。针对诸如数字版权管理(DRM)之类的用途而形成可信根的安全控制器可以集成在图形引擎本身上(如通过图形安全控制器(GSC)401或441看到的)或它可以作为图形引擎外部的独立硬件单元而存在,例如当前平台上的聚合安全和管理引擎(CSME)415。
如在图4的示例中看到的,为了安全处理图形相关内容而存在不少于四个密码引擎,其包括图形引擎408的PAVP引擎409、MKTME 418、用于显示引擎414的PAVP引擎426和HDCP引擎428。MKTME 418用于通过允许软件使不同密钥与不同存储器页面相关联而对存储器提供隔离。图形引擎中示出的PAVP引擎409被图形子系统用于创建由显示引擎待显示的加密内容。显示引擎进而实现两个另外密码引擎:PAVP引擎426,用于对从系统存储器424读取的PAVP加密内容解密;以及HDCP引擎428,用于HDCP加密来保护到连接到显示引擎414的显示装置的链路。
多密钥总存储器加密(MKTME)引擎
MKTME,诸如例如图4的现有技术的示例中示出的MKTME,一般使云软件能够通过利用独立密钥对每个VM的存储器加密而密码地隔离存储器中的客户工作负载(例如,虚拟机(VM))。MKTME提供在根据每页面分配密钥的能力。要用于对特定存储器访问加密/解密的密钥从物理地址获得,其中最高有效位表示密钥标识符(Key ID)。Key ID用于查找在MKTME中使用的密钥来对存储器访问加密/解密。与密钥ID相关联的密钥典型地被VMM编程。利用MKTME,物理地址如图6中示出的那样布局。
图5示出示例地址布局500,其中物理地址包括39个位并且上部3个位用作Key ID502。最高有效位504用于识别用于保护数据的密钥。不同的实现可以具有不同(例如,更多或更少)的物理地址位和Key ID位。密钥的数量典型地是可配置的并且依赖于应用需要。
GEN中的PAVP加密引擎和显示设备中的解密引擎
现在对图6进行参考,其图示计算系统架构(诸如图4的架构)的组件的高级框图。图6示出根据实施例的基于已知PAVP加密机制的信号交换。这里,如与图4的那些组件相比较的类似的组件利用类似的标号来引用。因此,在图6中,示出图4的计算系统架构400的一部分600,其中软件602对应于图4的CPU 402中的软件,并且图形引擎608和显示引擎614分别对应于图4的图形引擎408和显示引擎414。如在图6中示出的,通过信号650,由内容提供商压缩和加密的图形相关内容649首先被CPU中的软件堆栈602发送到图形引擎608。然后图形引擎608对内容解密、对所述内容解码并且利用所述内容本身与显示引擎614之间的共享密钥来对经解码的帧重新加密。然后图形引擎608通过信号652向显示引擎614发送因此而加密的内容。图形引擎608中的PAVP加密引擎(参见图4的PAVP引擎409或439)和显示引擎614中的PAVP加密引擎(参见图4的PAVP引擎426)分别用于对图形引擎608处的帧加密和在显示引擎614中对其解密。
显示引擎中的HDCP加密引擎
HDCP是链路保护协议,用于在通过链路传送显示数据/图形相关内容时保护它。现在返回参考图4并且仍参考图6,图4的CSME 415负责将HDCP密钥编程到显示引擎614内以用于在由显示引擎614向图6中未示出的显示装置发送图形相关内容之前对帧/内容加密。显示引擎614实现支持HDCP密码(计数器模式加密)的密码引擎,并且在对由图形引擎608通过信号652发送到所述显示引擎614的PAVP加密内容解密之后,在将该HDCP加密内容发送到显示装置以用于通过安全链路显示之前使用HDCP密钥对内容加密。
如在上文通过示例关于涉及图4-6的描述演示的,多个密码引擎的激增可以在多个计算系统中看到,其中诸如GPU或显示引擎之类的各种组件具有内置式密钥引擎并且这些引擎的跨组件共享的能力受限。现有技术的技术方案(诸如通过在图4-6中示出的示例)通过跨各种引擎复制密码引擎而增加平台的面积和功率开销。另外,因为专用密码引擎典型地由不同设计团队交付,实现集成这些专用密码引擎的计算系统的总设计成本和集成复杂性增加。另外,现有技术的密码引擎中的一些可以提供的针对新用途所需要的理想安全性级别要小。作为示例,典型的现有技术的显示引擎中的密码引擎实现高级加密标准(AES)电子码本(ECB)或AES-ECB协议来对内容加密和/或解密,该协议可以揭示图像内容并且打破私密性。
一些演示性实施例提出了使用被多个计算系统组件共享的聚合密码引擎的机制。该聚合密码引擎可以位于计算系统架构的存储器接口上,并且可以包括MKTME。实施例牵涉对显示和图形硬件的相对简单的硬件改变,并且引入聚合密码引擎的新的加密但不解密(ND)模式以允许聚合。利用所提出的实施例,通过减少给定计算系统内的密码引擎的数量,平台面积/功率开销以及生产和实现成本减少,并且一些用途的安全性得以改进,同时保持其他用途的安全性不变。
实施例提出将所有密码引擎压缩(collapse)为单个(聚合)引擎,诸如存储器接口上的一个,例如聚合MKTME。实施例提出密码引擎(诸如MKTME)的新模式:加密但不解密(ND)模式,其中写入存储器的数据或内容被加密,但数据的读取基于设置聚合密码引擎的模式可以被或可以不被解密。ND模式可以例如用于代替在显示引擎中实现的HDCP密码,即,通过显示引擎将对内容加密了并且采用加密形式将它发送到显示装置的HDCP机制。关于ND模式和它代替显示引擎中的HDCP密码的进一步描述将在下文进一步提供。一些实施例进一步提出对显示和图形硬件改变,以允许它们使用聚合引擎用于内容保护,如还将在下文进一步详细描述的那样。
一些演示性实施例导致与在计算系统中为图形相关内容提供安全性相关联的成本降低。从通过减少平台上存在的密码引擎的数量而降低平台的整体功率预算方面来看,一些演示性实施例引起客户可见益处。上面可以转化成云环境中降低的操作成本以及客户端环境中增加的电池寿命。
在图7a中示出具有聚合密码引擎的计算系统架构的示例。根据图7a,架构700包括CPU 702,其进而包括一系列核和高速缓存“C”706,以及图形引擎708,该图形引擎708在其中包括安全性引擎(SE)709。CPU 702通过路由器711并且通过数据端口710和712连接到架构的余下部分。输入/输出(I/O)端口712通过构造716连接到显示引擎714。CPU 702通过存储器控制器(MC)722经由路由器711、数据端口710和I/O端口712并且通过MI构造720进一步连接到系统存储器724。聚合密码引擎(诸如MKTME 718)耦合到MI构造720以除了其他事务之外还对写入系统存储器724或从系统存储器724读取的内容加密或解密。如在图7a中进一步看到的,与图4的计算系统架构相似,图形引擎本身可以集成到CPU内(如通过示例由图形引擎708示出的那样)或离散的(如通过示例由图形引擎738示出的那样)并且使用诸如PCIe兼容互连之类的互连而附连到计算系统的余下部分。针对诸如数字版权管理(DRM)之类的用途形成可信根的安全控制器可以在图形引擎本身上集成(如通过图形安全控制器(GSC)709或739看到的那样)或它可以作为图形引擎外部的独立硬件单元而存在,例如通过当前平台上的聚合安全和管理引擎(CSME)715。
图7a与图4相似,但图形引擎和显示引擎(其包括用于图形引擎408的PAVP引擎409、密码引擎418、PAVP引擎426和HDCP引擎428)中的多个密码引擎被单个聚合密码引擎所代替。与图4的MKTME 418类似,聚合密码引擎718具有它的通过允许软件使不同密钥与不同存储器页面相关联而在存储器中提供隔离的功能中的一个。然而,聚合密码引擎718进一步能够被多个计算系统组件共享。该聚合密码引擎718在该特定实施例中示出为位于计算系统架构的存储器接口上,并且可以包括MKTME。聚合密码引擎718适于实现新的加密但不解密(ND)模式以允许根据现有技术在图形引擎和显示引擎中使用的各种密码引擎的聚合。
仍然参考图7a,ND模式是这样的模式:其中写入系统存储器724的数据或内容被加密但数据的读取基于设置聚合密码引擎718的模式而可以被或可以不被解密。ND模式可以例如用于代替在图4的显示引擎414中实现的HDCP密码428,即,通过显示引擎将对内容加密并且采用加密形式将它发送到显示装置的HDCP机制。
实施例能适用于集成和离散图形引擎两者,诸如图形引擎708或图形引擎738,并且自然地与集成安全性引擎一起工作。离散图形引擎的扩展在图4和图7两者中示出为点线。
根据一些实施例,可以在现有的密码引擎(诸如MKTME)上实现硬件改变来使ND模式成为可能。另外,可以对图形引擎和对显示引擎实现硬件改变,以便让它们能够使用聚合图形引擎(诸如图7a的聚合密码引擎718)的益处。
在该方面,对图7b进行参考。图7b示出根据一些演示性实施例的如图7a的图形引擎708、聚合密码引擎718和显示引擎714之间的信号流动。
参考图7b,图形引擎708可以在其中包括一个或多个处理器739和连接到一个或多个处理器以在一个或多个处理器和图形引擎708之间启用通信的输入/输出接口741。一个或多个处理器739根据一个实施例可以通过信号750向聚合密码引擎718发送指令,该指令包括关于由密码引擎要用于对内容加密的密码密钥的信息。指令可以包括对聚合密码引擎718使用密码密钥而不是另一个密码密钥(诸如通过CPU软件编程到图形引擎的密码密钥)来对内容加密的指示。聚合密码引擎包括输入/输出接口743,和与之耦合的一个或多个处理器744。信号750或继信号750之后的信号可以包括到密码引擎的写入请求,用于在聚合密码引擎718的高速缓冲存储器中写入密码密钥。这样,通过该密钥设置阶段,聚合密码引擎718配备有正确的密钥,用以在从图形引擎708接收关于图形相关内容的写入/读取请求时对内容加密/解密。然而实施例不限于图形引擎708本身向聚合密码引擎718传递密钥信息。根据一些实施例,通过CPU内的软件而不是通过图形引擎718,可以将密钥信息编程到聚合密码引擎718。由于后一个原因,在图7b中以虚线示出信号750和信号751。
一个或多个处理器可以进一步通过信号751向聚合密码引擎718发送读取请求,以用于聚合密码引擎718从系统存储器724读取内容,并且通过信号752采用解密形式从聚合密码引擎718接收内容作为解密内容,聚合密码引擎718使用密码密钥对加密内容解密,从而生成解密内容。因为聚合密码引擎718已从图形引擎接收关于来自信号750和信号751的密码密钥的信息,它将知道在将内容写入系统存储器724之前,根据需要使用该密钥对内容加密,并且在从图形引擎向它发送读取请求来从系统存储器724读取内容时,进一步使用该密钥对内容解密。该顺序对应于例如如上文描述的PAVP加密,其中密码密钥对应于PAVP密码密钥。要注意采用这种方式被密码引擎718加密的内容可以通过系统CPU(诸如图7a的CPU702)内的软件被聚合密码引擎718接收。
根据一个实施例,在本文为了便于参考,与参考上文的内容可以是第一内容,解密内容是经解密的第一内容,并且密码密钥是第一密码密钥,图形引擎708的一个或多个处理器739进一步对经解密的第一内容解码(诸如解码和解压缩)来生成第二内容,并且在信号754向聚合密码引擎718发送写入请求以基于第二密码密钥采用加密形式将第二内容写入存储器。
仍然参考图7b,显示引擎714可以包括一个或多个处理器745、连接到一个或多个处理器以在一个或多个处理器与聚合密码引擎718之间启用通信的输入/输出接口747。一个或多个处理器745可以使用信号755向聚合密码引擎718发送读取请求,以用于聚合密码引擎718从系统存储器724读取经加密的第二内容,并且通过信号756采用解密形式从聚合密码引擎718接收第二内容作为经解密的第二内容,聚合密码引擎718使用第二密码密钥对经加密的第二内容解密,从而生成经解密的第二内容。
之后,一个或多个处理器745可以使用信号757向密码引擎发送写入请求以基于密码密钥采用加密形式将内容(例如,经解密的第二内容)写入系统存储器724。后者的密码密钥可以例如对应于第三密码密钥,诸如HDCP密码密钥,其要由聚合密码引擎718用于对经解密的第二内容加密(第一密码密钥是由聚合密码引擎718用于对通过信号752发送到图形引擎的第一内容解密(例如,PAVP密码密钥一号),并且第二密码密钥是被聚合密码引擎718用于对被图形引擎718通过信号754发送到它的第二内容加密(例如,PAVP密码密钥二号))。使用该第三密码密钥加密的加密内容可以包括计数器模式HDCP加密数据。由显示引擎714如通过请求757发信号通知的指令可以包括对聚合密码引擎718使用第三密码密钥而不是另一个密码密钥(诸如通过CPU软件编程到显示引擎的密码密钥)来对内容加密来生成经加密的第三内容的指示。一个或多个处理器745然后可以使用信号758向聚合密码引擎718发送读取请求以从系统存储器724读取经加密的第三内容,并且然后可以通过信号759从聚合密码引擎718接收经加密的第三内容而无需由密码引擎解密。采用这种方式,聚合密码引擎718将在生成信号759时使用ND模式来向显示引擎714发送加密内容。一个或多个处理器然后可以使用信号760向显示装置717发送使用第三密码密钥(诸如使用HDCP加密)加密的经加密的第三内容以用于显示。
如上文建议的,通过信号759接收的内容可以称为第三内容,并且用于对第三内容加密的密码密钥可以被称为第三密码密钥。根据一个实施例,一个或多个处理器可以在信号758发送写入请求之前,向聚合密码引擎718发送读取请求以从系统存储器724读取第二内容,该第二内容对应于由图形引擎通过信号754发送到聚合密码引擎718的内容,并且由聚合密码引擎718使用第二密码密钥加密。一个或多个处理器745然后可以通过信号756采用解密形式从聚合密码引擎718接收第二内容作为经解密的第一内容,密码引擎使用第二密码密钥对第二内容解密来生成经解密的第二内容;并且处理经解密的第二内容来生成第三内容。
在上文关于使用聚合密码引擎718的图形引擎708和显示引擎714详述的机制有利地避免在图形引擎和/或显示引擎内需要独立PAVP和HDCP引擎,并且因此避免需要高速缓冲存储器,用于将内容本地地存储在上文的引擎中的每个引擎处。相反,可以对系统存储器进行读取和写入,并且由聚合密码引擎718可以实施加密和解密。实施例因此除其他事务之外还可以使得计算更快,因为安全性操作可能大部分发生在聚合密码引擎内,从而去掉对计算系统内的分散高速缓存内存储内容的需要。
加密但不解密(ND)模式
如之前提到的,实施例为聚合密码引擎引入新的模式:加密但不解密或简单来说不解密(ND)模式。采用这种模式,写入存储器的数据被加密但从存储器读取的数据可以基于应用需要被返回给请求者而无需任何解密。换而言之,聚合密码引擎充当请求者的加密器,但可以基于应用需要选择解密或不解密。
现在对图8进行参考。图8是示出聚合密码引擎718的激活ND模式的流程图的流程图800。如在图8中示出的,当聚合密码引擎718中的ND模式是激活的,并且当聚合密码引擎718(诸如MKTME)在802处接收访问请求时,它在804处确定这样的访问请求是否是读取访问请求。如果否的话,MKTME可以在806处对在访问系统存储器之前所接收的数据加密,从而存储加密数据。如果是的话,MKTME在808处可以返回如从存储器检索的数据而无需任何解密。操作808通过示例对应于与图7b中的信号759相关联的操作,其中聚合密码引擎718向显示引擎714返回经加密的第三内容而无需解密,例如以在向显示装置发送这样的内容之前能实现内容的HDCP保护。
枚举和激活
在本发明中公开的新的模式根据一些实施例使用能力模型特定寄存器(MSR)和BIOS(基本输入/输出系统)而被枚举为软件。BIOS可以使用激活的MSR以在聚合密码引擎718中激活新的ND模式作为聚合密码引擎密钥的支持模式中的一个。软件可以使用PCONFIG指令利用ND模式设置Key ID。根据一些实施例,ND模式可以使用计数器模式加密或带有密文窃取(XTS)的AES(高级加密标准)XEX可调分组密码(AES-XTS)实现加密。利用计数器模式加密和AES-XTS的ND模式在能力寄存器中可以枚举为两个独立算法并且可以优选地被BIOS独立激活。
如上文建议的,聚合密码引擎718可以通过MSR暴露于软件堆栈,诸如例如能力MSR和激活MSR。能力MSR可以例如除其他事务之外还指示聚合密码引擎718可以具有供其处理的密钥的数量,以及聚合密码引擎可以支持的加密算法。根据一些实施例,新的PCONFIG指令可以用于除其他事务之外还指示:Key ID、密钥和模式(即:ND模式是可用的或不是可用的)。一旦BIOS知道ND模式能力是可用的(例如,能力MSR可以指示具有AES XTS 128的新ND模式的能力),则基于应用需要(例如在使用HDCP密码时),在写入系统存储器时软件可以使用它来实现加密,但当接收用于从存储器读取的读取请求被接收时不解密。根据一些实施例,ND模式一旦被指示为是可用的,实际上可以通过与能力MSR分离的激活MSR来激活。BIOS可以例如传递给MSR来指示允许所有模式被软件使用(因为BIOS可能不想允许所有模式)。如果BIOS指示允许ND模式,则在ND模式已由能力MSR指示为被允许的竞争中,根据一个实施例它可以在ND模式字段中设置位向量来指示,对未来模式支持或不支持加密且解密以及加密但不解密。在运行时间时,VMM中的软件可以对聚合密码引擎使用PCONFIG指令来指示ND模式是否被允许,并且如被允许的话,ND模式将是激活的还是未激活的。
在(一个或多个)CPU核上运行的软件可以配置成通过被称作“读取MSR”的指令来读取能力MSR。对于采用MKTME形式的聚合密码引擎,TME能力MSR可以包括读取MSR上下文中的特定索引。在(一个或多个)CPU核上运行的软件从而可以使用读取MSR指令来读取TME能力MSR上的多个位,其中多个位中的一个或多个位对应于64位寄存器中的ND模式。如果采用预定方式设置一个或多个位(例如在1处或在0处或根据1和0的预定模式),根据一个实施例,软件将知道相关联的硬件支持ND模式。在CPU侧上,CPU可以配置成通过融合(fuse)来确定一个位。一旦软件(诸如系统设置时装置驱动器的初始化软件)已通过能力MSR确定聚合密码引擎的能力,则根据一些实施例,它可以将这样的能力传递给图形引擎和/或显示引擎。
根据一个示范性实施例,为了枚举ND模式的软件,在下文提供表格。根据一个可能实施例,该表格示出MSR名称和位字段以及针对它们的MSR/位描述,并且还包括最后一列的注释。根据一些实施例可以改变的字段以斜体的形式示出。如在下文的表格中建议的那样,MSR位字段的位16(组成ND模式字段)可以被分配来指示在聚合密码引擎内是否支持ND模式(是或否)。
采用这种方式,BIOS可以使用能力MSR发现对的ND模式的支持,并且然后可以激活ND模式,从而使得它可用于通过激活MSR(诸如根据一个实施例通过示例在下文示出的MSR)而使用。在该能力MSR位字段中,位8(如在下文以斜体所指示的)可以用于指示在支持ND模式的聚合密码引擎中是否应激活ND模式。
对ND模式编程
如上文描述的,根据一个实施例,ND模式可以被软件启用,并且可要求软件采用这种模式对Key ID编程的能力。对MKTME编程的PCONFIG指令可以用于对用于安全公共云的多密钥密码引擎编程提供指令集架构(ISA)支持。PCONFIG指令可以被软件调用,以用于使用MKTME来管理域的密钥/保护。PCONFIG可以支持多个叶,并且可以通过在32位EAX寄存器中设置适当的叶值来调用叶函数。64位寄存器RBX、RCX和RDX典型地具有叶特定目的。PCONFIG当前只支持一个叶KEY_PROGRAM,其用于管理与域相关联的密钥。KEY_PROGRAM操作可以通过使用KEY_PROGRAM_STRUCT来工作。表格1示出在存储器中由PCONFIG指令用于将密钥绑定到KEYID的KEY_PROGRAM_STRUCT。
表1:密钥程序结构
使用聚合引擎的PAVP用途
如在图4的上下文中讨论的,在现有技术的方法中,图形引擎利用第一密钥对从内容提供商接收的压缩内容解密、对它解码并且利用与显示引擎共享的第二密钥来对它重新加密。为了图形引擎和显示引擎使用根据实施例提出的聚合密码引擎,软件因此需要如例如在图7a和图7b的上下文中描述的那样设置两个KeyID。第一KeyID可以利用用于对压缩内容加密的密钥来编程,例如被图7b的聚合密码引擎718编程。在由图形引擎发起读取时,自动利用第一密钥对压缩内容解密,并且将它发送到经解密的图形引擎,如通过示例使用图7b的信号752描绘的。图形引擎然后继续处理内容(例如,对内容解码/解压缩),并且使用与显示引擎共享的密钥将该经解压缩的内容写入存储器(即,使用第二密钥)。第二KeyID可以由软件(例如,由显示/图形驱动器)设置,从而表示在图形引擎与显示引擎之间共享的密钥。出于向显示引擎发送内容的目的,显示引擎可以使用该相同的第二KeyID通过对聚合密码引擎(CCE)的读取请求来访问经解压缩的内容,如通过示例使用图7b的信号755描绘的。在756处从存储器读取时,聚合密码引擎在使用第二密钥返回显示引擎之前自然地对内容解密。
根据一个实施例,软件可以适当地设置KeyID以允许根据情况使用正确的密钥以用于加密和解密。然而,对软件而言并不总是可能直接控制在PAVP流中使用的密钥。作为示例,图形引擎与显示引擎之间的密钥可以由图形引擎直接设置而无需软件参与。根据后面的实施例,图形引擎硬件中的密钥管理逻辑可以配置成在CCE中设置密钥(第一密钥和/或第二密钥)。更特别地,聚合密码引擎可以暴露仅被图形引擎可写的一组密钥寄存器(仅对使用构造访问控制的图形引擎可访问)。图形引擎密钥管理逻辑可以配置成例如在使用与显示引擎共享的第二密钥将经解压缩的加密内容写入存储器之前,写入这些密钥寄存器。图形引擎硬件根据实施例可以断言(assert)信号(例如,存储器总线上的单个位或存储器总线上的多个位)来向聚合密码引擎硬件指示:由图形引擎硬件设置的密钥必须用于访问,而不管与可以通过软件已经发送到聚合密码引擎硬件的请求相关联的KeyID如何。
当前的PAVP技术方案可以使用AES-ECB以用于PAVP内容保护。然而,AES-ECB可能不利地揭示正在被加密的图像的模式并且因此导致失去保密性。然而,根据一些实施例的聚合密码引擎可以使用AES-XTS,其是调整密码并且没有像AES-ECB那样揭示模式。根据一些实施例,使用AES-XTS结合聚合密码引擎可以极大地有益于PAVP和主要提出来保护位图(例如,受保护的电子阅读器)的保密性的其他安全显示用途。
使用聚合密码引擎的HDCP用途
如之前提到的,HDCP协议可以用于对显示面板与显示引擎之间的链路加密。显示引擎和显示装置交换密钥,作为用于保护通过链路流动的内容的HDCP协议的一部分。HDCP使用计数器模式加密来对链路加密。如关于图4的上下文中的现有技术提到的,根据当前技术水平在显示引擎中实现的HDCP加密引擎支持计数器模式加密,从而支持HDCP用途。图9示出当前平台上设置的HDCP密钥的高级流。
现在特别参考图9,图示出根据现有技术在显示引擎914、CSME 915与显示面板/装置917之间的信号的流动900,显示引擎914和CSME 915对应于例如图4的显示引擎414和CSME 415。可信实体(例如,包体(enclave))上的CSME 415可以在信号954执行与显示引擎914的验证和密钥交换(作为HDCP协议的一部分)。所建立的私密密钥(对应于例如HDCP密钥),然后可以在信号952被注入显示引擎914。显示引擎914可以使用该密钥对帧加密,用于经由信号956使用所述显示引擎914的内部HDCP引擎发送到显示面板以用于显示。显示面板可以对所接收的内容解密并且在屏幕上显示它。
利用提出的实施例,在图10中示出使用聚合密码引擎的所修改的HDCP流动1000。根据一些实施例并且特别参考图10,具有本文引入的计数器模式加密的ND模式可以用于支持HDCP用例。如与上文描述的图9的元件和特征相比较,利用类似的标号引用图10中类似的元件和特征。在图10中,流动1000牵涉显示引擎1014、CSME 1015、显示装置1017、聚合密码引擎1018和系统存储器1024。显示引擎1014、CSME 1015、显示装置1017、聚合密码引擎1018和系统存储器1024可以对应于图7a/7b的上下文中描述的显示引擎714、CSME 715、显示装置717、聚合密码引擎718和系统存储器724。根据一些实施例,使用信号1054的验证和密钥交换可以采用如在图9的上下文中关于信号954描述的相同方式进行。因此所建立的密钥(对应于例如HDCP密钥),则可以使用信号1052来对聚合密码引擎1018编程。后者可以通过保留只被CSME或ucode 1015可写的聚合密码引擎中的密钥寄存器来实现,从而接收要用于HDCP加密的密钥。显示引擎1014使用信号1058(其例如可以对应于图7b的信号758)通过简单地写入内容来保护系统存储器1024,来实现HDCP加密。后者将促使利用在之前的步骤中在系统存储器1024中利用计数器模式加密而设置的HDCP密钥,对内容加密。显示引擎1014然后继续使用信号1059(其可以对应于图7b的信号759)从系统存储器1024读取数据。因为对于HDCP加密而言,模式设置为新公开的ND模式,从存储器读取的数据将未被解密,并且因此将按原来那样返回显示引擎1014。该数据是由显示装置1017所预期的计数器模式加密数据。显示引擎1014然后如之前那样使用信号1056(其可以对应于图7b的信号756)将该受保护数据发送到显示装置1017,显示装置1017对该数据解密并且在屏幕上显示内容。注意,对于使用正确密钥和ND模式的显示引擎请求,可以存在从显示引擎发送到CCE的指示。
在实施例的上下文中公开的ND模式中,聚合密码引擎可以用作加密器。换而言之,数据可以发送到聚合密码引擎来得以加密,并且然后采用加密形式从存储器读取出(而无需解密)。对于写入,ND模式可能要求用于向存储器发送数据的写入请求表现为到存储器子系统的存储器,即使在启动器侧存在高速缓存。为了这样做,实施例提出在存储器子系统中使用直接或非临时存储。利用直接/非临时存储,写入请求和数据总是被发送到存储器,其确保使用存储器路径上的聚合引擎利用正确加密模式对数据得以加密。对于由启动器进行的读取,高速缓存不要求特殊处理,并且启动器可以在将不使用实施例的情况下像它们那样使用高速缓存。
如之前提到的,图形引擎本身可以与CPU集成,或是离散的、使用诸如PCIe之类的接口附连到系统。针对诸如DRM之类的用途形成可信根的安全控制器可以在GPU本身上集成(例如,采用图形安全控制器(GSC)的形式)或它可以作为GPU外部的独立硬件单元而存在,例如当前平台上的CSME。尽管使用集成图形引擎和CSME作为可信根而描述实施例,但实施例可以容易扩展为离散图形引擎,并且自然地与集成安全性引擎一起工作。这些扩展在图7a中示出为点线。
参考之前的图描述的操作只图示可以被计算系统架构(诸如图7a的架构700)执行或在计算系统架构内执行的可能场景中的一些。这些操作中的一些在适当情况下可以被删除或去除,或可以大幅修改或改变这些操作而不偏离所讨论的概念的范围。另外,这些操作的定时可以被大幅更改并且仍实现本公开中教导的结果。作为一个示例,在附图中描绘的过程不一定要求示出的特定顺序,或相继顺序,从而实现期望结果。在某些实现中,多任务化和并行处理可能是有利的。前面的操作流是为了示例和讨论目的而已被提供。由系统所提供的实质灵活性在于可以提供任何适合的布置、年表(chronology)、配置和定时机构而无需偏离所讨论的概念的教导。
现在对图11和图12进行参考,其描绘根据两个实施例的流程图。
首先参考图11,根据一个实施例的过程1100牵涉在操作1102向密码引擎发送指令,该指令包括关于由密码引擎要用于对内容加密的密码密钥的信息;在操作1104,向密码引擎发送写入请求以在密码引擎的高速缓冲存储器中写入密码密钥;在操作1106,向密码引擎发送读取请求以用于密码引擎读取内容;以及在操作1108,采用解密形式从密码引擎接收内容作为解密内容,密码引擎对加密内容解密,从而生成解密内容。过程1100可以例如由图形引擎执行,该图形引擎向聚合密码引擎的寄存器发送第一PAVP密码密钥和/或第二PAVP密码密钥,以用于由CCE执行的加密和解密功能。
接着参考图12,根据另一个实施例的过程1200牵涉在操作1202向密码引擎发送写入请求以基于密码密钥采用加密形式将内容写入计算系统的存储器,从而生成加密内容;在操作1204,向密码引擎发送读取请求来读取加密内容;在操作1206,从密码引擎接收加密内容而无需由密码引擎解密;以及在操作1208,向显示装置发送加密内容以供装置显示。
如本文使用的,除非明确相反陈述,否则短语‘…中的至少一个’的使用指所命名的项目、元件、条件或活动的任何组合。例如,‘X、Y或Z中的至少一个’意在表示以下中的任一个:1)至少一个X,而非Y且非Z;2)至少一个Y,而非X且非Z;3)至少一个Z,而非X且非Y;4)至少一个X和至少一个Y,而非Z;5)至少一个X和至少一个Z,而非Y;6)至少一个Y和至少一个Z,而非X;或7)至少一个X、至少一个Y和至少一个Z。
除非明确相反陈述,编号形容词‘第一’、‘第二’、‘第三’等意在区分它们前面的特定术语(例如,元件、条件、模块、活动、操作、权利要求元素等),但不意在指示所修改术语的任何类型的顺序、排列、重要性、时间顺序或等级。例如,‘第一X’和‘第二X’意在指派两个独立X元素,其不一定受到这两个元素的任何顺序、排列、重要性、时间顺序或等级的限制。
在说明书中对“一个实施例”、“实施例”、“一些实施例”等的引用指示所描述的(一个或多个)实施例可以包括特定特征、结构或特性,但每个实施例可以包括或可不一定包括该特定特征、结构或特性。此外,这样的短语不一定指相同实施例。
尽管该说明书包含多个特点实现细节,但这些不应解释为是对任何实施例的或可以要求保护的范围的限制,而相反作为特定于本文公开的主题的特定实施例的特征的描述。在该说明书中在独立实施例的上下文中描述的某些特征还可以结合起来在单个实施例中实现。相反,在单个实施例的上下文中描述的各种特征也可以独立或采用任何适合的子组合在多个实施例中实现。此外,尽管特征在上文可被描述为在某些实施例中起作用并且甚至起初也如此要求保护,但来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合去除,并且所要求保护的组合可以针对子组合或子组合的变化。本领域内技术人员可以弄清多个其他改变、替换、变化、更改和修改,并且意图是本公开包含落入随附权利要求书的范围内的所有这样的改变、替换、变化、更改和修改。
其他注解和示例
下列示例关于根据该说明书的实施例。
示例1包括计算系统的装置,所述装置包括一个或多个处理器,和和连接到所述一个或多个处理器以在所述一个或多个处理器与所述计算系统的计算引擎之间启用通信的输入/输出接口,所述一个或多个处理器用于:接收指令,所述指令包括关于密码密钥的信息;关于来自所述计算引擎的读取请求,确定不解密模式将是激活的还是未激活的;响应于从所述计算引擎接收所述读取请求,用于从所述计算系统的存储器读取内容,并且响应于确定所述不解密模式是未激活的,使用密钥对所述内容解密,从而生成解密内容并且向所述计算引擎发送所述解密内容;以及响应于接收所述计算系统的所述计算引擎的所述读取请求来,用于从所述计算系统的存储器读取所述内容,并且响应于确定所述不解密模式是激活的,向所述计算引擎发送所述内容而无需对所述内容解密。
示例2包括示例1的主题,并且可选地,其中所述一个或多个处理器还用于:接收第一指令和第二指令,所述第一指令包括关于第一密码密钥的信息,所述第二指令包括关于第二密码密钥的信息;关于来自所述计算系统的第一计算引擎的读取请求,用于从所述计算系统的所述存储器读取第一内容,来确定所述不解密模式将是未激活的;关于来自所述计算系统的第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取第二内容,来确定所述不解密模式将是未激活的;响应于从所述第一计算引擎接收所述读取请求,使用所述第一密码密钥对所述第一内容解密,从而生成经解密的第一内容,并且将所述经解密的第一内容发送到所述第一计算引擎,所述第一计算引擎处理所述经解密的第一内容来生成所述第二内容;响应于从所述第一计算引擎接收写入请求,用于将所述第二内容写入所述存储器,使用所述第二密码密钥对所述第二内容加密,从而生成经加密的第二内容,并且将所述经加密的第二内容写入所述存储器;以及响应于从所述第二计算引擎接收所述读取请求,使用所述第二密码密钥对所述第二内容解密,从而生成经解密的第二内容,并且将所述经解密的第二内容发送到所述第二计算引擎,所述第二计算引擎处理所述经解密的第二内容来生成处理过的第二内容。
示例3包括示例2的主题,并且可选地,其中所述一个或多个处理器还用于:接收第三指令,所述第三指令包括关于第三密码密钥的信息;关于来自所述第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取所述处理过的第二内容,确定所述不解密模式将是激活的;响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用所述第三密码密钥对所述处理过的第二内容加密,从而生成经加密的处理过的第二内容,并且将所述经加密的处理过的第二内容写入所述存储器;以及响应于从所述第二计算引擎接收所述读取请求,用于读取所述经加密的处理过的第二内容,将所述经加密的处理过的第二内容发送到所述第二计算引擎而无需解密。
示例4包括示例2的主题,并且可选地,其中所述第一计算引擎是图形处理单元,并且所述第二计算引擎是显示引擎。
示例5包括示例1的主题,并且可选地,其中所述指令还包括:关于对应于所述密码密钥的密钥标识符(KeyID)的信息;以及不解密(ND)模式字段,所述一个或多个处理器对所述指令解码来确定所述KeyID,并且基于所述ND模式字段确定所述不解密模式将是激活的还是未激活的。
示例6包括示例2的主题,并且可选地,还包括高速缓冲存储器,所述高速缓冲存储器耦合到所述一个或多个处理器,其中所述一个或多个处理器:从所述第一计算引擎接收所述第二指令,所述第二指令包括关于所述第二密码密钥的所述信息;响应于接收所述第二指令,使所述高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第二密码密钥的所述信息;将关于所述第二密码密钥的所述信息存储在所述高速缓冲存储器中;以及响应于从所述第一计算引擎接收所述写入请求,用于将所述第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第二密码密钥对所述第二内容加密,从而在将所述经加密的第二内容写入所述存储器之前生成所述经加密的第二内容。
示例7包括示例3的主题,并且可选地,还包括高速缓冲存储器,所述高速缓冲存储器耦合到所述一个或多个处理器,其中所述一个或多个处理器:从所述第一计算引擎接收所述第三指令,所述第三指令包括关于所述第三密码密钥的所述信息;响应于接收所述第三指令,使所述高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第三密码密钥的所述信息;将关于所述第三密码密钥的所述信息存储在所述高速缓冲存储器中;以及响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第三密码密钥对所述处理过的第二内容加密,从而在将所述经加密的处理过的第二内容写入所述存储器之前生成所述经加密的处理过的第二内容。
示例8包括示例1的主题,并且可选地,其中所述一个或多个处理器:从所述计算引擎接收所述指令,所述指令包括关于所述密码密钥的所述信息;从所述计算系统的中央处理单元接收指令,所述指令包括关于另一个密码密钥的信息,其中所述密码密钥和所述另一个密码密钥两者都与所述内容的加密或解密中的至少一个相关联;以及响应于从所述计算引擎接收请求,用于读取来自所述存储器的所述内容或将所述内容写入所述存储器中的至少一个,使用所述密码密钥而无需使用所述另一个密码密钥来对所述内容解密或对所述内容加密中的至少一个。
示例9包括示例1的主题,并且可选地,所述一个或多个处理器用于从所述计算系统的中央处理单元(CPU)接收CPU指令,所述CPU指令包括用于利用实现所述不解密模式的能力对所述一个或多个处理器编程的指令。
示例10包括示例1的主题,并且可选地,还包括存储器,所述存储器包括所述计算系统的系统存储器。
示例11包括示例10的主题,并且可选地,还包括连接到所述存储器和连接到所述一个或多个处理器的存储器控制器。
示例12包括产品,所述产品包括一个或多个有形计算机可读非暂时性存储介质,所述有形计算机可读非暂时性存储介质包括计算机可执行指令,所述指令可操作以在被至少一个计算机处理器执行时,促使所述至少一个计算机处理器在计算系统处实现操作,所述操作包括:接收指令,所述指令包括关于密码密钥的信息;关于来自所述计算系统的计算引擎的读取请求,确定不解密模式将是激活的还是未激活的;响应于从所述计算系统的计算引擎接收所述读取请求,用于从所述计算系统的存储器读取内容,并且响应于确定所述不解密模式是未激活的,使用所述密钥对所述内容解密,从而生成解密内容并且将所述解密内容发送到所述计算引擎;以及响应于从所述计算系统的计算引擎接收所述读取请求,用于从所述计算系统的存储器读取所述内容,并且响应于确定所述不解密模式是激活的,向所述计算引擎发送所述内容而无需对所述内容解密。
示例13包括示例12的主题,并且可选地,其中所述操作还包括:接收第一指令和第二指令,所述第一指令包括关于第一密码密钥的信息,所述第二指令包括关于第二密码密钥的信息;关于来自所述计算系统的第一计算引擎的读取请求,用于从所述计算系统的所述存储器读取第一内容,来确定所述不解密模式将是未激活的;关于来自所述计算系统的第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取第二内容,来确定所述不解密模式将是未激活的;响应于从所述第一计算引擎接收所述读取请求,使用所述第一密码密钥对所述第一内容解密,从而生成经解密的第一内容,并且将所述经解密的第一内容发送到所述第一计算引擎,所述第一计算引擎处理所述经解密的第一内容来生成所述第二内容;响应于从所述第一计算引擎接收写入请求,用于将所述第二内容写入所述存储器,使用所述第二密码密钥对所述第二内容加密,从而生成经加密的第二内容,并且将所述经加密的第二内容写入所述存储器;以及响应于从所述第二计算引擎接收所述读取请求,使用所述第二密码密钥对所述第二内容解密,从而生成经解密的第二内容,并且将所述经解密的第二内容发送到所述第二计算引擎,所述第二计算引擎处理所述经解密的第二内容来生成处理过的第二内容。
示例14包括示例13的主题,并且可选地,其中操作还包括:接收第三指令,所述第三指令包括关于第三密码密钥的信息;关于来自所述第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取所述处理过的第二内容,确定所述不解密模式将是激活的;响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用所述第三密码密钥对所述处理过的第二内容加密,从而生成经加密的处理过的第二内容,并且将所述经加密的处理过的第二内容写入所述存储器;以及响应于从所述第二计算引擎接收所述读取请求,用于读取所述经加密的处理过的第二内容,将所述经加密的处理过的第二内容发送到所述第二计算引擎而无需解密。
示例15包括示例13的主题,并且可选地,其中所述第一计算引擎是图形处理单元,并且所述第二计算引擎是显示引擎。
示例16包括示例12的主题,并且可选地,其中所述指令还包括:关于对应于所述密码密钥的密钥标识符(KeyID)的信息;以及不解密(ND)模式字段,所述一个或多个处理器对所述指令解码来确定所述KeyID,并且基于所述ND模式字段确定所述不解密模式将是激活的还是未激活的。
示例17包括示例13的主题,并且可选地,所述操作还包括:从所述第一计算引擎接收所述第二指令,所述第二指令包括关于所述第二密码密钥的所述信息;响应于接收所述第二指令,使高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第二密码密钥的所述信息;将关于所述第二密码密钥的所述信息存储在所述高速缓冲存储器中;以及响应于从所述第一计算引擎接收所述写入请求,用于将所述第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第二密码密钥对所述第二内容加密,从而在将所述经加密的第二内容写入所述存储器之前生成所述经加密的第二内容。
示例18包括示例14的主题,并且可选地,所述操作还包括:从所述第一计算引擎接收所述第三指令,所述第三指令包括关于所述第三密码密钥的所述信息;响应于接收所述第三指令,使耦合到所述至少一个计算机处理器的高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第三密码密钥的所述信息;将关于所述第三密码密钥的所述信息存储在所述高速缓冲存储器中;以及响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第三密码密钥对所述处理过的第二内容加密,从而在将所述经加密的处理过的第二内容写入所述存储器之前生成所述经加密的处理过的第二内容。
示例19包括示例12的主题,并且可选地,所述操作还包括:从所述计算引擎接收所述指令,所述指令包括关于所述密码密钥的所述信息;从所述计算系统的中央处理单元接收指令,所述指令包括关于另一个密码密钥的信息,其中所述密码密钥和所述另一个密码密钥两者都与所述内容的加密或解密中的至少一个相关联;以及响应于从所述计算引擎接收请求,用于读取来自所述存储器的所述内容或将所述内容写入所述存储器中的至少一个,使用所述密码密钥而无需使用所述另一个密码密钥来对所述内容解密或对所述内容加密中的至少一个。
示例20包括示例12的主题,并且可选地,所述操作还包括从所述计算系统的中央处理单元(CPU)接收CPU指令,所述CPU指令包括用于利用实现所述不解密模式的能力对所述一个或多个处理器编程的指令。
示例21包括方法,包括:接收指令,所述指令包括关于密码密钥的信息;关于来自计算系统的计算引擎的读取请求,确定不解密模式将是激活的还是未激活的;响应于从所述计算系统的计算引擎接收所述读取请求,用于从所述计算系统的存储器读取内容,并且响应于确定所述不解密模式是未激活的,使用所述密钥对所述内容解密,从而生成解密内容并且将所述解密内容发送到所述计算引擎;以及响应于从所述计算系统的计算引擎接收所述读取请求,用于从所述计算系统的存储器读取所述内容,并且响应于确定所述不解密模式是激活的,向所述计算引擎发送所述内容而无需对所述内容解密。
示例22包括示例21的主题,并且可选地,包括:接收第一指令和第二指令,所述第一指令包括关于第一密码密钥的信息,所述第二指令包括关于第二密码密钥的信息;关于来自所述计算系统的第一计算引擎的读取请求,用于从所述计算系统的所述存储器读取第一内容,来确定所述不解密模式将是未激活的;关于来自所述计算系统的第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取第二内容,来确定所述不解密模式将是未激活的;响应于从所述第一计算引擎接收所述读取请求,使用所述第一密码密钥对所述第一内容解密,从而生成经解密的第一内容,并且将所述经解密的第一内容发送到所述第一计算引擎,所述第一计算引擎处理所述经解密的第一内容来生成所述第二内容;响应于从所述第一计算引擎接收写入请求,用于将所述第二内容写入所述存储器,使用所述第二密码密钥对所述第二内容加密,从而生成经加密的第二内容,并且将所述经加密的第二内容写入所述存储器;以及响应于从所述第二计算引擎接收所述读取请求,使用所述第二密码密钥对所述第二内容解密,从而生成经解密的第二内容,并且将所述经解密的第二内容发送到所述第二计算引擎,所述第二计算引擎处理所述经解密的第二内容来生成处理过的第二内容。
示例23包括示例22的主题,并且可选地,还包括:接收第三指令,所述第三指令包括关于第三密码密钥的信息;关于来自所述第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取所述处理过的第二内容,确定所述不解密模式将是激活的;响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用所述第三密码密钥对所述处理过的第二内容加密,从而生成经加密的处理过的第二内容,并且将所述经加密的处理过的第二内容写入所述存储器;以及响应于从所述第二计算引擎接收所述读取请求,用于读取所述经加密的处理过的第二内容,将所述经加密的处理过的第二内容发送到所述第二计算引擎而无需解密。
示例24包括示例22的主题,并且可选地,其中所述第一计算引擎是图形处理单元,并且所述第二计算引擎是显示引擎。
示例25包括示例21的主题,并且可选地,其中所述指令还包括:关于对应于所述密码密钥的密钥标识符(KeyID)的信息;以及不解密(ND)模式字段,所述方法还包括对所述指令解码来确定所述KeyID,并且基于所述ND模式字段确定所述不解密模式将是激活的还是未激活的。
示例26包括示例22的主题,并且可选地,还包括:从所述第一计算引擎接收所述第二指令,所述第二指令包括关于所述第二密码密钥的所述信息;响应于接收所述第二指令,使高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第二密码密钥的所述信息;将关于所述第二密码密钥的所述信息存储在所述高速缓冲存储器中;以及响应于从所述第一计算引擎接收所述写入请求,用于将所述第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第二密码密钥对所述第二内容加密,从而在将所述经加密的第二内容写入所述存储器之前生成所述经加密的第二内容。
示例27包括示例23的主题,并且可选地,还包括:从所述第一计算引擎接收所述第三指令,所述第三指令包括关于所述第三密码密钥的所述信息;响应于接收所述第三指令,使高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第三密码密钥的所述信息;将关于所述第三密码密钥的所述信息存储在所述高速缓冲存储器中;以及响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第三密码密钥对所述处理过的第二内容加密,从而在将所述经加密的处理过的第二内容写入所述存储器之前生成所述经加密的处理过的第二内容。
示例28包括示例21的主题,并且可选地,还包括:从所述计算引擎接收所述指令,所述指令包括关于所述密码密钥的所述信息;从所述计算系统的中央处理单元接收指令,所述指令包括关于另一个密码密钥的信息,其中所述密码密钥和所述另一个密码密钥两者都与所述内容的加密或解密中的至少一个相关联;以及响应于从所述计算引擎接收请求,用于读取来自所述存储器的所述内容或将所述内容写入所述存储器中的至少一个,使用所述密码密钥而无需使用所述另一个密码密钥来对所述内容解密或对所述内容加密中的至少一个。
示例29包括示例21的主题,并且可选地,所述方法包括从所述计算系统的中央处理单元(CPU)接收CPU指令,所述CPU指令包括用于利用实现所述不解密模式的能力对所述一个或多个处理器编程的指令。
示例30包括装置,包括:用于接收指令的部件,所述指令包括关于密码密钥的信息;关于来自计算系统的计算引擎的读取请求,用于确定不解密模式将是激活的还是未激活的部件;响应于从所述计算系统的计算引擎接收所述读取请求,用于从所述计算系统的存储器读取内容,并且响应于确定所述不解密模式是未激活的,用于使用所述密钥对所述内容解密,从而生成解密内容并且用于将所述解密内容发送到所述计算引擎的部件;以及响应于从所述计算系统的计算引擎接收所述读取请求,用于从所述计算系统的存储器读取所述内容,并且响应于确定所述不解密模式是激活的,用于向所述计算引擎发送所述内容而无需对所述内容解密的部件。
示例31包括示例30的主题,并且可选地,还包括:用于接收第一指令和第二指令的部件,所述第一指令包括关于第一密码密钥的信息,所述第二指令包括关于第二密码密钥的信息;关于来自所述计算系统的第一计算引擎的读取请求,用于从所述计算系统的所述存储器读取第一内容,用于确定所述不解密模式将是未激活的部件;关于来自所述计算系统的第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取第二内容,用于确定所述不解密模式将是未激活的部件;响应于从所述第一计算引擎接收所述读取请求,用于使用所述第一密码密钥对所述第一内容解密,从而生成经解密的第一内容,并且用于将所述经解密的第一内容发送到所述第一计算引擎的部件,所述第一计算引擎处理所述经解密的第一内容来生成所述第二内容;响应于从所述第一计算引擎接收写入请求,用于将所述第二内容写入所述存储器,用于使用所述第二密码密钥对所述第二内容加密,并且用于将所述经加密的第二内容写入所述存储器的部件;以及响应于从所述第二计算引擎接收所述读取请求,用于使用所述第二密码密钥对所述第二内容解密,从而生成经解密的第二内容,并且用于将所述经解密的第二内容发送到所述第二计算引擎的部件,所述第二计算引擎处理所述经解密的第二内容来生成处理过的第二内容。
示例32包括示例31的主题,并且可选地,还包括:用于接收第三指令的部件,所述第三指令包括关于第三密码密钥的信息;关于来自所述第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取所述处理过的第二内容,用于确定所述不解密模式将是激活的部件;响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,用于使用所述第三密码密钥对所述处理过的第二内容加密,从而生成经加密的处理过的第二内容,并且将所述经加密的处理过的第二内容写入所述存储器的部件;以及用于将所述经加密的处理过的第二内容发送到所述第二计算引擎而无需解密并且响应于从所述第二计算引擎接收所述读取请求,用于读取所述经加密的处理过的第二内容的部件。
示例33包括示例31的主题,并且可选地,其中所述第一计算引擎是图形处理单元,并且所述第二计算引擎是显示引擎。
示例34包括示例31的主题,并且可选地,其中所述指令还包括:关于对应于所述密码密钥的密钥标识符(KeyID)的信息;以及不解密(ND)模式字段,所述装置还包括用于以下操作的部件:对所述指令解码来确定所述KeyID,并且基于所述ND模式字段确定所述不解密模式将是激活的还是未激活的。
示例35包括示例31的主题,并且可选地,还包括:用于从所述第一计算引擎接收所述第二指令的部件,所述第二指令包括关于所述第二密码密钥的所述信息;响应于接收所述第二指令,用于使高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第二密码密钥的所述信息的部件;用于将关于所述第二密码密钥的所述信息存储在所述高速缓冲存储器中的部件;以及响应于从所述第一计算引擎接收所述写入请求,用于将所述第二内容写入所述存储器,用于使用存储在所述高速缓冲存储器中的所述第二密码密钥对所述第二内容加密,并且用于在将所述经加密的第二内容写入所述存储器之前生成所述经加密的第二内容的部件。
示例36包括示例32的主题,并且可选地,还包括:用于从所述第一计算引擎接收所述第三指令的部件,所述第三指令包括关于所述第三密码密钥的所述信息;响应于接收所述第三指令,用于使高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第三密码密钥的所述信息的部件;用于将关于所述第三密码密钥的所述信息存储在所述高速缓冲存储器中的部件;以及响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,用于使用存储在所述高速缓冲存储器中的所述第三密码密钥对所述处理过的第二内容加密,从而在将所述经加密的处理过的第二内容写入所述存储器之前生成所述经加密的处理过的第二内容的部件。
示例37包括示例30的主题,并且可选地,还包括:用于从所述计算引擎接收所述指令的部件,所述指令包括关于所述密码密钥的所述信息;用于从所述计算系统的中央处理单元接收指令的部件,所述指令包括关于另一个密码密钥的信息,其中所述密码密钥和所述另一个密码密钥两者都与所述内容的加密或解密中的至少一个相关联;以及响应于从所述计算引擎接收请求,用于读取来自所述存储器的所述内容或将所述内容写入所述存储器中的至少一个,用于使用所述密码密钥而无需使用所述另一个密码密钥来对所述内容解密或对所述内容加密中的至少一个的部件。
示例38包括示例30的主题,并且可选地,还包括用于从所述计算系统的中央处理单元(CPU)接收CPU指令的部件,所述CPU指令包括用于利用实现所述不解密模式的能力对所述一个或多个处理器编程的指令。
示例39包括计算系统的装置,所述装置包括一个或多个处理器、连接到所述一个或多个处理器以在所述一个或多个处理器与所述计算系统的密码引擎之间启用通信的输入/输出接口,所述一个或多个处理器:将包括关于由所述密码引擎用于对内容加密的密码密钥的信息的指令发送到所述密码引擎;向所述密码引擎发送写入请求来将所述密码密钥写入所述密码引擎的高速缓冲存储器中;向所述密码引擎发送读取请求以用于所述密码引擎读取所述内容;以及采用解密形式从所述密码引擎接收所述内容作为解密内容,所述密码引擎对所述加密内容解密,从而生成所述解密内容。
示例40包括示例39的主题,并且可选地,其中:所述内容是第一内容;所述解密内容是经解密的第一内容;所述密码密钥是第一密码密钥;并且所述一个或多个处理器还用于:对所述经解密的第一内容解码来生成第二内容;以及向所述密码引擎发送写入请求以基于第二密码密钥采用加密形式将所述第二内容写入所述存储器。
示例41包括示例39的主题,并且可选地,其中所述指令包括对所述密码引擎使用所述密码密钥而不是另一个密码密钥来对所述内容加密的指示。
示例42包括示例39的主题,并且可选地,其中所述装置是图形处理单元(GPU)。
示例43包括示例39的主题,并且可选地,其中所述装置是图形处理单元(GPU),所述密码引擎是多密钥总存储器加密(MKTME)引擎,并且所述计算引擎是显示装置。
示例44包括示例39的主题,并且可选地,其中所述装置是中央处理单元(CPU),其包括耦合到所述一个或多个处理器的多个中央处理单元(CPU)核,并且其中所述一个或多个处理器是嵌入所述CPU中的图形处理单元(GPU)的一个或多个处理器。
示例45包括产品,所述产品包括一个或多个有形计算机可读非暂时性存储介质,其包括计算机可执行指令,所述指令可操作以在被至少一个计算机处理器执行时,促使所述至少一个计算机处理器在计算系统的装置处实现操作,所述操作包括:向所述计算系统的密码引擎发送指令,所述指令包括关于由所述密码引擎用于对内容加密的密码密钥的信息;向所述密码引擎发送写入请求来将所述密码密钥写入所述密码引擎的高速缓冲存储器中;向所述密码引擎发送读取请求以用于所述密码引擎读取所述内容;以及采用解密形式从所述密码引擎接收所述内容作为解密内容,所述密码引擎对所述加密内容解密,从而生成所述解密内容。
示例46包括示例45的主题,并且可选地,其中:所述内容是第一内容;所述解密内容是经解密的第一内容;所述密码密钥是第一密码密钥;并且所述操作还包括:对所述经解密的第一内容解码来生成第二内容;以及向所述密码引擎发送写入请求以基于第二密码密钥采用加密形式将所述第二内容写入所述存储器。
示例47包括示例45的主题,并且可选地,其中所述指令包括对所述密码引擎使用所述密码密钥而不是另一个密码密钥来对所述内容加密的所述指示。
示例48包括方法,所述方法包括:向计算系统的密码引擎发送指令,所述指令包括关于由所述密码引擎用于对内容加密的密码密钥的信息;向所述密码引擎发送写入请求来将所述密码密钥写入所述密码引擎的高速缓冲存储器中;以及向所述密码引擎发送读取请求以用于所述密码引擎读取所述内容;以及采用解密形式从所述密码引擎接收所述内容作为解密内容,所述密码引擎对所述加密内容解密,从而生成所述解密内容。
示例49包括示例48的主题,并且可选地,其中:所述内容是第一内容;所述解密内容是经解密的第一内容;所述密码密钥是第一密码密钥;并且所述方法还包括:对所述经解密的第一内容解码来生成第二内容;以及向所述密码引擎发送写入请求以基于第二密码密钥采用加密形式将所述第二内容写入所述存储器。
示例50包括示例48的主题,并且可选地,其中所述指令包括对所述密码引擎使用所述密码密钥而不是另一个密码密钥来对所述内容加密的指示。
示例51包括装置,所述装置包括:用于向密码引擎发送指令的部件,所述指令包括关于由所述密码引擎用于对内容加密的密码密钥的信息;用于向所述密码引擎发送写入请求来将所述密码密钥写入所述密码引擎的高速缓冲存储器中的部件;用于向所述密码引擎发送读取请求以用于所述密码引擎读取所述内容的部件;用于采用解密形式从所述密码引擎接收所述内容作为解密内容的部件,所述密码引擎对所述加密内容解密,从而生成所述解密内容。
示例52包括示例51的主题,并且可选地,其中:所述内容是第一内容;所述解密内容是经解密的第一内容;所述密码密钥是第一密码密钥;并且所述装置还包括:对所述经解密的第一内容解码来生成第二内容的部件;以及用于向所述密码引擎发送写入请求以基于第二密码密钥采用加密形式将所述第二内容写入所述存储器的部件。
示例53包括示例51的主题,并且可选地,其中所述指令包括对所述密码引擎使用所述密码密钥而不是另一个密码密钥来对所述内容加密的指示。
示例54包括计算系统的装置,所述装置包括一个或多个处理器、连接到所述一个或多个处理器以在所述一个或多个处理器与所述计算系统的密码引擎之间启用通信的输入/输出接口,所述一个或多个处理器:向所述密码引擎发送写入请求以基于密码密钥采用加密形式将内容写入所述计算系统的存储器,从而生成加密内容;向所述密码引擎发送读取请求来读取所述加密内容;从所述密码引擎接收所述加密内容而无需由所述密码引擎解密;以及向显示装置发送所述加密内容以供所述装置显示。
示例55包括示例54的主题,并且可选地,其中所述内容是第二内容,并且所述密码密钥是第二密码密钥,所述一个或多个处理器还用于,在发送所述写入请求之前:向所述密码引擎发送读取请求以从所述计算系统的存储器读取第一内容;采用解密形式从所述密码引擎接收所述第一内容作为经解密的第一内容,所述密码引擎对所述第一内容解密以使用第一密码密钥生成所述经解密的第一内容;以及处理所述经解密的第一内容来生成所述第二内容。
示例56包括示例54的主题,并且可选地,其中所述加密内容包括计数器模式高带宽数字内容保护(HDCP)加密数据。
示例57包括示例54的主题,并且可选地,其中所述一个或多个处理器还用于,向所述密码引擎发送指令,所述指令包括关于由所述密码引擎用于生成所述加密内容的密码密钥的信息。
示例58包括示例57的主题,并且可选地,其中所述指令包括对所述密码引擎使用所述密码密钥而不是任何其他密码密钥从而生成所述加密内容的指示。
示例59包括示例54的主题,并且可选地,其中所述装置是显示引擎。
示例60包括示例54的主题,并且可选地,其中所述密码引擎是多密钥总存储器加密(MKTME)引擎。
示例61包括产品,所述产品包括一个或多个有形计算机可读非暂时性存储介质,所述介质包括计算机可执行指令,所述指令可操作以在被至少一个计算机处理器执行时,促使所述至少一个计算机处理器在计算系统处实现操作,所述操作包括:向计算引擎发送写入请求以基于密码密钥采用加密形式将内容写入所述计算系统的存储器,从而生成加密内容;向所述密码引擎发送读取请求来读取所述加密内容;从所述密码引擎接收所述加密内容而无需由所述密码引擎解密;以及向显示装置发送所述加密内容以供所述装置显示。
示例62包括示例61的主题,并且可选地,其中所述内容是第二内容,并且所述密码密钥是第二密码密钥,所述操作还包括:在发送所述写入请求之前:向所述密码引擎发送读取请求以从所述计算系统的存储器读取第一内容;采用解密形式从所述密码引擎接收所述第一内容作为经解密的所述第一内容,所述密码引擎对所述第一内容解密以使用第一密码密钥生成所述经解密的第一内容;以及处理所述经解密的第一内容来生成所述第二内容。
示例63包括示例61的主题,并且可选地,其中所述加密内容包括计数器模式高带宽数字内容保护(HDCP)加密数据。
示例64包括示例61的主题,并且可选地,其中所述操作还包括向所述密码引擎发送指令,所述指令包括关于由所述密码引擎用于生成所述加密内容的密码密钥的信息。
示例65包括示例64的主题,并且可选地,其中所述指令包括对所述密码引擎使用所述密码密钥而不是任何其他密码密钥从而生成所述加密内容的指示。
示例66包括方法,所述方法包括:向密码引擎发送写入请求以基于密码密钥采用加密形式将内容写入计算系统的存储器,从而生成加密内容;向所述密码引擎发送读取请求来读取所述加密内容;从所述密码引擎接收所述加密内容而无需由所述密码引擎解密;以及向显示装置发送所述加密内容以供所述装置显示。
示例67包括示例66的主题,并且可选地,其中所述内容是第二内容,并且所述密码密钥是第二密码密钥,所述方法还包括:在发送所述写入请求之前:向所述密码引擎发送读取请求以从所述计算系统的存储器读取第一内容;采用解密形式从所述密码引擎接收所述第一内容作为经解密的第一内容,所述密码引擎对所述第一内容解密以使用第一密码密钥生成所述经解密的第一内容;以及处理所述经解密的第一内容来生成所述第二内容。
示例68包括示例66的主题,并且可选地,其中所述加密内容包括计数器模式高带宽数字内容保护(HDCP)加密数据。
示例69包括示例66的主题,并且可选地,还包括向所述密码引擎发送指令,所述指令包括关于由所述密码引擎用于生成所述加密内容的密码密钥的信息。
示例70包括示例69的主题,并且可选地,其中所述指令包括对所述密码引擎使用所述密码密钥而不是任何其他密码密钥从而生成所述加密内容的指示。
示例71包括装置,所述装置包括:用于向密码引擎发送写入请求以基于密码密钥采用加密形式将内容写入计算系统的存储器从而生成加密内容的部件;用于向所述密码引擎发送读取请求来读取所述加密内容的部件;用于从所述密码引擎接收所述加密内容而无需由所述密码引擎解密的部件;以及用于向显示装置发送所述加密内容以供所述装置显示的部件。
示例72包括示例71的主题,并且可选地,其中所述内容是第二内容,并且所述密码密钥是第二密码密钥,所述装置还包括:用于在发送所述写入请求之前向所述密码引擎发送读取请求以从所述计算系统的存储器读取第一内容的部件;用于采用解密形式从所述密码引擎接收所述第一内容作为经解密的第一内容的部件,所述密码引擎对所述第一内容解密以使用第一密码密钥生成所述经解密的第一内容;以及用于处理所述经解密的第一内容来生成所述第二内容的部件。
示例73包括示例71的主题,并且可选地,其中所述加密内容包括计数器模式高带宽数字内容保护(HDCP)加密数据。
示例74包括示例71的主题,并且可选地,还包括用于向所述密码引擎发送指令的部件,所述指令包括关于由所述密码引擎用于生成所述加密内容的密码密钥的信息。
示例75包括示例74的主题,并且可选地,其中所述指令包括对所述密码引擎使用所述密码密钥而不是任何其他密码密钥从而生成所述加密内容的指示。
Claims (16)
1.一种计算系统的设备,所述设备包括一个或多个处理器,和连接到所述一个或多个处理器以在所述一个或多个处理器与所述计算系统的计算引擎之间启用通信的输入/输出接口,所述一个或多个处理器用于:
接收指令,所述指令包括关于密码密钥的信息;
关于来自所述计算引擎的读取请求,确定不解密模式将是激活的还是未激活的;
响应于从所述计算引擎接收所述读取请求,用于从所述计算系统的存储器读取内容,并且响应于确定所述不解密模式是未激活的,使用密钥对所述内容解密,从而生成解密内容并且向所述计算引擎发送所述解密内容;以及
响应于接收所述计算系统的所述计算引擎的所述读取请求,用于从所述计算系统的存储器读取所述内容,并且响应于确定所述不解密模式是激活的,向所述计算引擎发送所述内容而无需对所述内容解密。
2.如权利要求1所述的设备,其中所述一个或多个处理器还用于:
接收第一指令和第二指令,所述第一指令包括关于第一密码密钥的信息,所述第二指令包括关于第二密码密钥的信息;
关于来自所述计算系统的第一计算引擎的读取请求,用于从所述计算系统的所述存储器读取第一内容,来确定所述不解密模式将是未激活的;
关于来自所述计算系统的第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取第二内容,来确定所述不解密模式将是未激活的;
响应于从所述第一计算引擎接收所述读取请求,使用所述第一密码密钥对所述第一内容解密,从而生成经解密的第一内容,并且将所述经解密的第一内容发送到所述第一计算引擎,所述第一计算引擎处理所述经解密的第一内容来生成所述第二内容;
响应于从所述第一计算引擎接收写入请求,用于将所述第二内容写入所述存储器,使用所述第二密码密钥对所述第二内容加密,从而生成经加密的第二内容,并且将所述经加密的第二内容写入所述存储器;以及
响应于从所述第二计算引擎接收所述读取请求,使用所述第二密码密钥对所述第二内容解密,从而生成经解密的第二内容,并且将所述经解密的第二内容发送到所述第二计算引擎,所述第二计算引擎处理所述经解密的第二内容来生成处理过的第二内容。
3.如权利要求2所述的设备,其中所述一个或多个处理器还用于:
接收第三指令,所述第三指令包括关于第三密码密钥的信息;
关于来自所述第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取所述处理过的第二内容,确定所述不解密模式将是激活的;
响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用所述第三密码密钥对所述处理过的第二内容加密,从而生成经加密的处理过的第二内容,并且将所述经加密的处理过的第二内容写入所述存储器;以及
响应于从所述第二计算引擎接收所述读取请求,用于读取所述经加密的处理过的第二内容,将所述经加密的处理过的第二内容发送到所述第二计算引擎而无需解密。
4.如权利要求2所述的设备,还包括高速缓冲存储器,所述高速缓冲存储器耦合到所述一个或多个处理器,其中所述一个或多个处理器:
从所述第一计算引擎接收所述第二指令,所述第二指令包括关于所述第二密码密钥的所述信息;
响应于接收所述第二指令,使所述高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第二密码密钥的所述信息;
将关于所述第二密码密钥的所述信息存储在所述高速缓冲存储器中;以及
响应于从所述第一计算引擎接收所述写入请求,用于将所述第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第二密码密钥对所述第二内容加密,从而在将所述经加密的第二内容写入所述存储器之前生成所述经加密的第二内容。
5.如权利要求3所述的设备,还包括高速缓冲存储器,所述高速缓冲存储器耦合到所述一个或多个处理器,其中所述一个或多个处理器:
从所述第一计算引擎接收所述第三指令,所述第三指令包括关于所述第三密码密钥的所述信息;
响应于接收所述第三指令,使所述高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第三密码密钥的所述信息;
将关于所述第三密码密钥的所述信息存储在所述高速缓冲存储器中;以及
响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第三密码密钥对所述处理过的第二内容加密,从而在将所述经加密的处理过的第二内容写入所述存储器之前生成所述经加密的处理过的第二内容。
6.如权利要求1所述的设备,其中所述一个或多个处理器:
从所述计算引擎接收所述指令,所述指令包括关于所述密码密钥的所述信息;
从所述计算系统的中央处理单元接收指令,所述指令包括关于另一个密码密钥的信息,其中所述密码密钥和所述另一个密码密钥两者都与所述内容的加密或解密中的至少一个相关联;以及
响应于从所述计算引擎接收请求,用于读取来自所述存储器的所述内容或将所述内容写入所述存储器中的至少一个,使用所述密码密钥而无需使用所述另一个密码密钥来对所述内容解密或对所述内容加密中的至少一个。
7. 如权利要求1-6中的任一项所述的设备,还包括:
所述存储器,所述存储器包括所述计算系统的系统存储器;以及
存储器控制器,所述存储器控制器连接到所述存储器和连接到所述一个或多个处理器。
8.一种方法,包括:
接收指令,所述指令包括关于密码密钥的信息;
关于来自计算系统的计算引擎的读取请求,确定不解密模式将是激活的还是未激活的;
响应于从所述计算系统的计算引擎接收所述读取请求,用于从所述计算系统的存储器读取内容,并且响应于确定所述不解密模式是未激活的,使用所述密钥对所述内容解密,从而生成解密内容并且将所述解密内容发送到所述计算引擎;以及
响应于从所述计算系统的计算引擎接收所述读取请求,用于从所述计算系统的存储器读取所述内容,并且响应于确定所述不解密模式是激活的,向所述计算引擎发送所述内容而无需对所述内容解密。
9.如权利要求8所述的方法:
接收第一指令和第二指令,所述第一指令包括关于第一密码密钥的信息,所述第二指令包括关于第二密码密钥的信息;
关于来自所述计算系统的第一计算引擎的读取请求,用于从所述计算系统的所述存储器读取第一内容,来确定所述不解密模式将是未激活的;
关于来自所述计算系统的第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取第二内容,来确定所述不解密模式将是未激活的;
响应于从所述第一计算引擎接收所述读取请求,使用所述第一密码密钥对所述第一内容解密,从而生成经解密的第一内容,并且将所述经解密的第一内容发送到所述第一计算引擎,所述第一计算引擎处理所述经解密的第一内容来生成所述第二内容;
响应于从所述第一计算引擎接收写入请求,用于将所述第二内容写入所述存储器,使用所述第二密码密钥对所述第二内容加密,从而生成经加密的第二内容,并且将所述经加密的第二内容写入所述存储器;以及
响应于从所述第二计算引擎接收所述读取请求,使用所述第二密码密钥对所述第二内容解密,从而生成经解密的第二内容,并且将所述经解密的第二内容发送到所述第二计算引擎,所述第二计算引擎处理所述经解密的第二内容来生成处理过的第二内容。
10.如权利要求9所述的方法,还包括:
接收第三指令,所述第三指令包括关于第三密码密钥的信息;
关于来自所述第二计算引擎的读取请求,用于从所述计算系统的所述存储器读取所述处理过的第二内容,确定所述不解密模式将是激活的;
响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用所述第三密码密钥对所述处理过的第二内容加密,从而生成经加密的处理过的第二内容,并且将所述经加密的处理过的第二内容写入所述存储器;以及
响应于从所述第二计算引擎接收所述读取请求,用于读取所述经加密的处理过的第二内容,将所述经加密的处理过的第二内容发送到所述第二计算引擎而无需解密。
11. 如权利要求8所述的方法,其中所述指令还包括:
关于对应于所述密码密钥的密钥标识符(KeyID)的信息;以及
不解密(ND)模式字段,所述方法还包括对所述指令解码来确定所述KeyID,并且基于所述ND模式字段确定所述不解密模式将是激活的还是未激活的。
12.如权利要求9所述的方法,还包括:
从所述第一计算引擎接收所述第二指令,所述第二指令包括关于所述第二密码密钥的所述信息;
响应于接收所述第二指令,使高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第二密码密钥的所述信息;
将关于所述第二密码密钥的所述信息存储在所述高速缓冲存储器中;以及
响应于从所述第一计算引擎接收所述写入请求,用于将所述第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第二密码密钥对所述第二内容加密,从而在将所述经加密的第二内容写入所述存储器之前生成所述经加密的第二内容。
13.如权利要求10所述的方法,还包括:
从所述第一计算引擎接收所述第三指令,所述第三指令包括关于所述第三密码密钥的所述信息;
响应于接收所述第三指令,使高速缓冲存储器暴露于所述第一计算引擎以允许所述第一计算引擎访问所述高速缓冲存储器,从而在其中写入关于所述第三密码密钥的所述信息;
将关于所述第三密码密钥的所述信息存储在所述高速缓冲存储器中;以及
响应于从所述第二计算引擎接收写入请求,用于将所述处理过的第二内容写入所述存储器,使用存储在所述高速缓冲存储器中的所述第三密码密钥对所述处理过的第二内容加密,从而在将所述经加密的处理过的第二内容写入所述存储器之前生成所述经加密的处理过的第二内容。
14.如权利要求8所述的方法,还包括:
从所述计算引擎接收所述指令,所述指令包括关于所述密码密钥的所述信息;
从所述计算系统的中央处理单元接收指令,所述指令包括关于另一个密码密钥的信息,其中所述密码密钥和所述另一个密码密钥两者都与所述内容的加密或解密中的至少一个相关联;以及
响应于从所述计算引擎接收请求,用于读取来自所述存储器的所述内容或将所述内容写入所述存储器中的至少一个,使用所述密码密钥而无需使用所述另一个密码密钥来对所述内容解密或对所述内容加密中的至少一个。
15.如权利要求8所述的方法,所述方法包括从所述计算系统的中央处理单元(CPU)接收CPU指令,所述CPU指令包括用于利用实现所述不解密模式的能力编程的指令。
16.一种机器可读介质,所述机器可读介质包括代码,所述代码在被执行时促使机器执行如权利要求8-15中的任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/457909 | 2019-06-28 | ||
US16/457,909 US20190342093A1 (en) | 2019-06-28 | 2019-06-28 | Converged cryptographic engine |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112149144A true CN112149144A (zh) | 2020-12-29 |
Family
ID=68385593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010218251.2A Pending CN112149144A (zh) | 2019-06-28 | 2020-03-25 | 聚合密码引擎 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190342093A1 (zh) |
EP (1) | EP3757848A1 (zh) |
CN (1) | CN112149144A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821821A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 安全架构系统、安全架构系统的密码运算方法和计算设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4237983A1 (en) * | 2020-11-02 | 2023-09-06 | INTEL Corporation | Graphics security with synergistic encryption, content-based and resource management technology |
EP4016358A1 (en) * | 2020-12-20 | 2022-06-22 | INTEL Corporation | Storage encryption using converged cryptographic engine |
WO2022132184A1 (en) * | 2020-12-20 | 2022-06-23 | Intel Corporation | System, method and apparatus for total storage encryption |
US20220246110A1 (en) * | 2021-02-01 | 2022-08-04 | Qualcomm Incorporated | Dpu enhancement for improved hdcp user experience |
US11874776B2 (en) | 2021-06-25 | 2024-01-16 | Intel Corporation | Cryptographic protection of memory attached over interconnects |
US20230100106A1 (en) * | 2021-09-24 | 2023-03-30 | Intel Corporation | System, Apparatus And Method For Direct Peripheral Access Of Secure Storage |
CN113935018B (zh) * | 2021-12-16 | 2022-03-11 | 飞腾信息技术有限公司 | 密码运算方法、片上系统及计算机设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7817799B2 (en) * | 2006-09-07 | 2010-10-19 | International Business Machines Corporation | Maintaining encryption key integrity |
US20090172331A1 (en) * | 2007-12-31 | 2009-07-02 | Balaji Vembu | Securing content for playback |
US9825920B1 (en) * | 2013-08-25 | 2017-11-21 | Google Llc | Systems and methods for multi-function and multi-purpose cryptography |
US9891969B2 (en) * | 2015-02-27 | 2018-02-13 | Samsung Electronics Co., Ltd. | Method and apparatus for device state based encryption key |
US20190004973A1 (en) * | 2017-06-28 | 2019-01-03 | Intel Corporation | Multi-key cryptographic memory protection |
CN109791589B (zh) * | 2017-08-31 | 2021-07-16 | 华为技术有限公司 | 一种计算机内存数据加解密的方法及装置 |
US10372628B2 (en) * | 2017-09-29 | 2019-08-06 | Intel Corporation | Cross-domain security in cryptographically partitioned cloud |
US10871983B2 (en) * | 2018-05-31 | 2020-12-22 | Intel Corporation | Process-based multi-key total memory encryption |
CN110568992A (zh) * | 2018-06-06 | 2019-12-13 | 华为技术有限公司 | 一种数据处理装置及方法 |
US10810138B2 (en) * | 2018-06-14 | 2020-10-20 | Intel Corporation | Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME) |
-
2019
- 2019-06-28 US US16/457,909 patent/US20190342093A1/en not_active Abandoned
-
2020
- 2020-03-17 EP EP20163512.5A patent/EP3757848A1/en active Pending
- 2020-03-25 CN CN202010218251.2A patent/CN112149144A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821821A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 安全架构系统、安全架构系统的密码运算方法和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3757848A1 (en) | 2020-12-30 |
US20190342093A1 (en) | 2019-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3757848A1 (en) | Converged cryptographic engine | |
US11088846B2 (en) | Key rotating trees with split counters for efficient hardware replay protection | |
KR102376626B1 (ko) | 데이터 처리 가속기의 난독화를 통한 데이터 전송 | |
US11765239B2 (en) | Secure reporting of platform state information to a remote server | |
CN106605233B (zh) | 使用处理器提供可信执行环境 | |
US10102153B2 (en) | System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support | |
US10372628B2 (en) | Cross-domain security in cryptographically partitioned cloud | |
EP3120291B1 (en) | Rapid data protection for storage devices | |
US10810138B2 (en) | Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME) | |
US10536274B2 (en) | Cryptographic protection for trusted operating systems | |
US9147076B2 (en) | System and method for establishing perpetual trust among platform domains | |
CN107077567B (zh) | 标识计算设备上的安全边界 | |
US10691627B2 (en) | Avoiding redundant memory encryption in a cryptographic protection system | |
US11468201B2 (en) | System and method for slice virtual disk encryption | |
US9331988B2 (en) | System and method for provisioning secrets to an application (TA) on a device | |
KR102565414B1 (ko) | 데이터 처리 가속기에 사용되는, 난독화 유닛에 의해 난독화 를 진행하는 데이터 전송 | |
US20190228159A1 (en) | Technologies for filtering memory access transactions received from one or more accelerators via coherent accelerator link | |
US20240333488A1 (en) | Pairwise key establishment between two measurement states | |
US20240020382A1 (en) | System and method for cryptographic security through process diversity | |
US11824984B2 (en) | Storage encryption for a trusted execution environment | |
US20240202340A1 (en) | Trusted access control for secure boot process for storage controllers or drivers | |
US20240073007A1 (en) | Enforcing access control for embedded controller resources and interfaces | |
WO2024050184A1 (en) | Support for additional cryptographic algorithms using an inline cryptographic hardware component |
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 |