CN112217630A - 用于链路保护的开销减少 - Google Patents
用于链路保护的开销减少 Download PDFInfo
- Publication number
- CN112217630A CN112217630A CN202010222960.8A CN202010222960A CN112217630A CN 112217630 A CN112217630 A CN 112217630A CN 202010222960 A CN202010222960 A CN 202010222960A CN 112217630 A CN112217630 A CN 112217630A
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- trusted execution
- encryption
- blocks
- 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
-
- 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/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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/32—Cryptographic 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/321—Cryptographic 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
-
- 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/32—Cryptographic 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/3236—Cryptographic 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 cryptographic hash functions
- H04L9/3242—Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
提供了用于减少或消除用于计算机总线中的链路保护的密码浪费的系统、装置、方法和计算机可读介质。在各种实施例中,根据高级加密标准(AES)Galois计数器模式(GCM)加密/解密对数据分组进行加密/解密。单调递增的计数器值被用作初始化向量;和/或累积的MAC被实践以减少或消除密码浪费。还描述和/或要求保护其他相关的方面。
Description
相关申请的交叉引用
本申请要求享有于2019年7月12日提交的题为“OVERHEAD REDUCTION FOR LINKPROTECTION”的美国临时专利申请No.62/873,635的优先权,其全部公开内容通过引用并入本文。
技术领域
各个实施例通常可以涉及通信和计算的领域,并且特别地,可以涉及在计算设备之间或者在计算设备的组件之间的通信的安全性和保护。
背景技术
本文提供的背景描述是出于总体上呈现本公开内容的上下文的目的。除非本文另外指出,否则本节中所描述的材料并不是本申请中的权利要求的现有技术,并且并不由于包含在本节中而被承认是现有技术。
计算机系统或平台可以包括许多组件,诸如主机,其包括中央处理单元(CPU)、存储器、芯片组和/或通过计算机总线耦合在一起的许多其他设备。计算机总线是一种通信系统,其可以促进在计算机内部的设备或组件之间或者在计算机之间对数据的传输。计算系统或平台可以广泛地使用被耦合到计算机总线的各种设备。计算机总线可以包括相关的硬件组件(电线、光纤等)和软件,包括通信协议。可能存在许多种类的计算机总线,诸如串行总线或并行总线。示例性串行总线是高速外围组件互连(PCIe)总线。
新兴的硬件处理器预期具有从超管理器管理的虚拟机(VM)的可信计算库(TCB)中移除超管理器的能力。示例性用例是托管许多租户VM工作负载的云服务提供商(例如,Microsoft Azure)。从云服务提供商(CSP)和云租户两者的角度来看,双方都希望针对VM工作负载的保密性。为了实现这种保密的VM执行,必须对存储器和运行时CPU状态保持保密并进行完整性保护,以防止数据泄露或篡改攻击。Intel已经提出了一种新的中央处理单元(CPU)安全功能,被称为信任域扩展(TDX),以经由使用存储器加密和经由存储器控制器引擎(MK-TME)的完整性来达到这些安全目标。
信任域扩展(TDX)利用一种被称为信任域(TD)的新型虚拟机访客来扩展Intel的虚拟机扩展(VMX)。TD在CPU模式下运行,其保护其存储器内容以及其CPU状态的保密性不受任何其他软件(包括托管虚拟机监视器(VMM))的影响,除非TD本身明确是共享的。为了使得能够将PCIe设备直接分配给TD存储器,需要保护通过PCIe链路在TD与设备之间流动的数据,以增强数据的保密性、完整性和重放保护。
传统的经认证的加密(例如,高级加密标准-Galois/计数器模式(AES-GCM))可用于链路加密,因为其提供了保密性、完整性和重放保护,满足了针对链路加密的安全性要求。然而,传统的加密机制会给PCIe事务引入显著的延迟,这可能会限制链路保护的采用,因为其会显著抵消加速的益处。
附图说明
通过结合附图的以下详细描述,将容易理解实施例。为了促进该描述,相似的参考标号表示相似的结构元件。在附图的各图中,通过示例而非限制的方式图示了实施例。
图1图示了根据各种实施例的示例性装置,所述装置包括通过并入有本公开的链路保护技术的计算机总线被耦合到另一设备的设备。
图2-3图示了根据各种实施例的链路保护技术的累积的或复合的消息认证码(MAC)方面。
图4图示了根据各种实施例的示例性AES-GCM加密构造,该构造并入有本公开的链路保护技术的经改进的填充(pad)生成。
图5图示了PCIe事务层分组(TLP)的AES-GCM加密中的初始化向量(IV)的现有技术用法。
图6图示了根据各种实施例的单调计数器作为IV在本公开的链路保护技术的PCIeTLP的AES-GCM加密中的经改进的用法。
图7图示了根据各种实施例的用于本公开的链路保护技术的填充生成的示例性过程。
图8图示了根据各种实施例的具有本公开的链路保护技术的动态(on-the-fly)密钥扩展的示例性多密钥密码引擎。
图9图示了根据各种实施例的并入有本公开的链路保护技术的接收器中的示例性接收路径。
图10图示了根据各种实施例的并入有本公开的链路保护技术的发送器中的示例性发送路径。
图11图示了根据各种实施例的适用于实践本公开的各个方面的示例性计算设备。
图12图示了根据各种实施例的具有用于实践参考图1-11所描述的方法的指令的存储介质。
具体实施方式
以下详细描述参考附图。在不同的附图中可以使用相同的附图标记来标识相同或相似的元件。在下文的描述中,出于解释而非限制的目的,阐述了具体细节,诸如特定的结构、架构、接口、技术等,以便提供对各种实施例的各个方面的透彻理解。然而,对于受益于本公开内容的本领域技术人员将显而易见的是,可以在背离这些具体细节的其他示例中实践各个实施例的各个方面。在某些情况下,省略了对公知的设备、电路和方法的描述,以免以不必要的细节模糊对各个实施例的描述。
计算系统或平台可以广泛地使用被耦合到计算机总线的各种设备。计算机总线可以包括相关的硬件组件(电线、光纤等)和软件,包括通信协议。外围组件互连(PCI)总线或PCI Express(PCIe、PCI-E)可以是基于规范的计算机总线,该规范为系统软件或系统驱动器提供了一种机制,以执行与被耦合到PCI总线或PCIe总线的设备的配置相关的各种操作。被耦合到计算机总线的设备或组件也可以被称为功能。PCIe可以在消费者、服务器和工业应用中操作,作为主板级互连(以链接安装在主板上的外围设备)、无源底板互连以及作为针对内插板的扩展卡接口。PCIe设备经由被称为互连或链路的逻辑连接进行通信。链路是两个PCIe端口之间的点对点通信通道,允许这两者都发送和接收普通的PCI请求,例如配置、输入/输出(I/O)或存储器读/写以及中断。在物理级,链路可以包括一个或多个通道(lane)。低速外围设备(诸如802.11Wi-Fi卡)使用单通道(×1)链路,而图形适配器通常使用更宽且更快的16通道链路。在下文的描述中,PCI总线或PCIe总线可以用作计算机总线的示例。类似地,PCI设备或PCIe设备可以用作被耦合到计算机总线的设备的示例。关于PCIe设备的描述可能适用于被耦合到任何计算机总线的任何其他设备。例如,PCI请求(其可以被简称为请求)可以是针对计算机总线的链路的通信请求的示例。
本文的实施例提出了减少或消除密码浪费的机制,作为在存在通过计算机系统(例如,托管多个信任执行会话的计算机系统)的计算机总线的一个或多个通信链路发送或接收的可变大小的请求的情况下确保减少或没有针对加密/解密的延迟添加的基础方案。可变大小的请求可以是不同的请求类型。计算机系统可以是其中从由超管理器管理的VM的TCB中移除超管理器的计算机系统,从而允许符合信任执行会话的安全性得以扩展,以包括与在信任执行会话外部的实体的通信。本文的实施例还提出了一种加密架构和设计,以如下方式生成密码填充:使得密码填充中的每个密码填充都用于高级加密标准(AES)Galois/计数器模式(GCM)加密/解密的加密/解密和/或消息认证码(MAC)生成,其中,与现有技术的AES-GCM方案不同,在存在可变大小的请求的情况下,可能浪费了预先生成的密码填充。GCM是对称密钥加密块密码的一种操作模式,其中,该操作基于经认证的加密算法,该加密算法被设计为提供数据确实性(完整性)和保密性两者。例如,可以为块大小为128位的块密码定义GCM。在密码学中,MAC(有时被称为标签)是一小段信息,其用于对消息进行认证,换言之,用于确认消息来自规定的发送者(其确实性)并且未被改变。
本文的实施例可以执行链路保护而不需要一些其他现有机制的带宽开销。例如,本文的实施例提出了两种机制来实现其延迟和带宽目标。本文的一些实施例可以使用单调计数器,例如,作为初始化向量(IV),用于加密和MAC生成,并描述填充预先生成和调度架构,从而以减小的延迟成本或零延迟成本来确保针对所有大小的请求的填充的可用性。一些其他实施例可以提出密码拆分,该技术是将原始分组拆分成较小的分组大块(chunk),这些较小的分组大块仅仅出于密码目的而被独立地处理,然后在个体密码分组大块上累积MAC以通过链路来发送。该技术再次允许以最小的带宽开销(例如,在PCI通信的情况下每个事务层分组(TLP)为12B MAC)进行减少的或零延迟的加密/解密。对于下文的描述,减小的延迟或零延迟可以互换地使用,除非另外明确指定。与其他现有机制相比,可以减少延迟。
将以对理解说明性实施例最有帮助的方式将各种操作依次描述为多个离散操作;然而,描述的次序不应当被解释为暗示这些操作必定与次序有关。特别地,这些操作可能不以所呈现的次序执行。
重复使用短语“在各种实施例中”、“在一些实施例中”等。所述短语一般并不指代相同的实施例;然而,可能指代相同的实施例。除非上下文另外指出,否则术语“包括”、“具有”和“包含”是同义词。短语“A和/或B”表示(A)、(B)或(A和B)。短语“A/B”和“A或B”表示(A)、(B)或(A和B),类似于短语“A和/或B”。出于本公开的目的,短语“A和B中的至少一个”表示(A)、(B)或(A和B)。本说明书可以使用短语“在实施例中”、“在多个实施例中”、“在一些实施例中”和/或“在各种实施例中”,其每个可以指代相同或不同实施例中的一个或多个实施例。此外,相对于本公开的实施例使用的术语“包括”、“包含”、“具有”等是同义的。
示例性实施例可以被描述为被描绘为流程图、流程图表、数据流图、结构图或框图的过程。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行、同时或并发地执行。另外,可以重新布置操作次序。过程可以在其操作完成时终止,但是也可以具有(一个或多个)图中未包含的额外步骤。过程可以对应于方法、功能、流程、子例程、子程序等。当过程对应于功能时,其终止可以对应于该功能返回到调用功能和/或主功能。
可以在由上述电路中的一个或多个电路执行的计算机可执行指令(诸如程序代码、软件模块和/或功能进程)的一般上下文中描述示例性实施例。程序代码、软件模块和/或功能进程可以包括执行特定任务或实现特定数据类型的例程、程序、对象、组件、数据结构等。本文讨论的程序代码、软件模块和/或功能进程可以使用现有通信网络中的现有硬件来实现。例如,本文所讨论的程序代码、软件模块和/或功能进程可以使用现有网络元件或控制节点处的现有硬件来实现。
如本文所使用的,术语“电路”指代硬件组件或硬件组件的一部分或包括硬件组件,所述硬件组件诸如是电子电路、逻辑电路、(共享、专用或成组的)处理器和/或(共享、专用或成组的)存储器、专用集成电路(ASIC)、现场可编程设备(FPD)(例如,现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、复杂PLD(CPLD))、大容量PLD(HCPLD)、结构化ASIC、或可编程片上系统(SoC)、数字信号处理器(DSP)等,其被配置为提供所描述的功能。在一些实施例中,所述电路可以执行一个或多个软件或固件程序以提供至少一些所描述的功能。
如本文所使用的,术语“处理器电路”可以指代电路或电路的一部分或包括电路,该电路能够顺序地并且自动地执行一系列算术或逻辑运算;记录、存储和/或传输数字数据。术语“处理器电路”可以指代一个或多个应用处理器、一个或多个基带处理器、物理中央处理单元(CPU)、单核处理器、双核处理器、三核处理器、四核处理器、和/或能够执行或者以其他方式操作计算机可执行指令(诸如程序代码、软件模块和/或功能进程)的任何其他设备。如本文所使用的,术语“接口电路”可以指代提供在两个或更多个组件或设备之间的信息交换的电路、是该电路的一部分或者包括该电路。术语“接口电路”可以指代一个或多个硬件接口(例如,总线、输入/输出(I/O)接口、外围组件接口、网络接口卡等)。如本文所使用的,术语“进行实例化”、“实例化”等可以指代实例的创建,而“实例”可以指代对象的具体出现,其例如可以在执行程序代码期间发生。
如本文所使用的,术语“计算机设备”可以描述能够顺序并且自动地执行一系列算术或逻辑操作的任何物理硬件设备,其被装备用于在机器可读介质上记录/存储数据,并在通信网络中发送和接收来自一个或多个其他设备的数据。计算机设备可以被认为是以下术语的同义词并且在下文中有时被称为以下术语:计算机、计算平台、计算设备等。术语“计算机系统”可以包括任何类型的互连电子设备、计算机设备或其组件。另外,术语“计算机系统”和/或“系统”可以指代计算机上彼此通信耦合的各种组件。此外,术语“计算机系统”和/或“系统”可以指代彼此通信地耦合并且被配置为共享计算和/或网络资源的多个计算机设备和/或多个计算系统。如本文所使用的,术语“用户设备”或“UE”可以指代具有无线电通信能力的设备,诸如计算机设备,并且可以描述通信网络中的网络资源的远程用户。术语“用户设备”或“UE”可以被视为以下术语的同义词并且在下文中有时被称为以下术语:客户端、移动组件、移动设备、移动终端、用户终端、移动单元、移动站、移动用户、订户、用户、远程站,访问代理、用户代理、接收器、无线电设备、可重新配置的无线电设备、可重新配置的移动设备等。
“计算机设备”、“计算机系统”、“UE”等的示例可以包括蜂窝电话或智能电话、功能电话、平板个人计算机、可穿戴计算设备、自主传感器、膝上型计算机、台式个人计算机、视频游戏控制台、数字媒体播放器、手持消息传递设备、个人数据助理、电子书阅读器、增强现实设备、服务器计算机设备(例如,独立式、机架式、刀片式等)、云计算服务/系统、网络元件、车内信息娱乐(IVI)、车载娱乐(ICE)设备、仪表组(IC)、平视显示器(HUD)设备、机载诊断(OBD)设备、仪表板移动设备(DME)、移动数据终端(MDT)、电子引擎管理系统(EEMS)、电子/引擎控制单元(ECU)、电子/引擎控制模块(ECM)、嵌入式系统、微控制器、控制模块、引擎管理系统(EMS)、联网或“智能”设备、机器类型通信(MTC)设备、机器对机器(M2M)、物联网(IoT)设备、和/或任何其他类似电子设备。此外,术语“车辆嵌入计算机设备”可以指代物理地安装在、内置于或以其他方式嵌入车辆中的任何计算机设备和/或计算机系统。
如本文中所使用的,术语“网络元件”可以被认为是以下术语的同义词和/或被称为以下术语:联网计算机、联网硬件、网络设备、路由器、交换机、集线器、桥、无线电网络控制器、无线电接入网络设备、网关、服务器、和/或任何其他类似的设备。术语“网络元件”可以描述有线或无线通信网络的物理计算设备,并且被配置为托管虚拟机。此外,术语“网络元件”可以描述为网络与一个或多个用户之间的数据和/或语音连接提供无线电基带功能的设备。术语“网络元件”可以被认为与“基站”同义和/或被称为“基站”。如本文所使用的,术语“基站”可以被认为与以下术语是同义词和/或被称作以下术语:节点B、增强型或演进型节点B(eNB)、下一代节点B(gNB)、收发机基站(BTS)、接入点(AP)、路侧单元(RSU)等,并且可以描述为网络与一个或多个用户之间的数据和/或语音连接提供无线电基带功能的设备。术语“RSU”可以指代在gNB/eNB或固定(或相对固定)的UE中实现的任何运输基础设施实体。在UE中实现的RSU可以被称为“UE型RSU”,而在eNB中实现的RSU可以被称为“eNB型RSU”。如本文所使用的,术语“车辆到车辆”和“V2V”可以指代涉及车辆作为消息的源或目的地的任何通信。另外,本文所使用的术语“车辆到车辆”和“V2V”也可以包含或等同于车辆到基础设施(V2I)通信、车辆到网络(V2N)通信、车辆到行人(V2P)通信或V2X通信。
如本文所使用的,术语“信道”可以指用于通信数据或数据流的任何有形或无形的发送介质。术语“信道”可以与以下术语是同义的和/或等价于以下术语:“通信信道”、“数据通信信道”、“发送信道”、“数据发送信道”、“访问信道”、“数据访问信道”、“链路”、“数据链路”、“载波”、“射频载波”、和/或表示通过其通信数据的路径或介质的任何其他类似的术语。另外,术语“链路”可以指代出于发送和接收信息的目的而通过无线电接入技术(RAT)在两个设备之间的连接。
现在参考图1,其中,图示了根据各种实施例的示例性装置的概览,该装置包括通过并入有本公开的链路保护技术的计算机总线被耦合到另一设备的设备。如所示的,对于所图示的实施例,示例性装置100包括通过并入有本公开的链路保护技术的计算机总线105被耦合到另一设备103的设备101,例如主机。为了清楚起见,装置100的特征:设备101、设备103和计算机总线105在下文是作为示例来描述的。应当理解,装置100内可以包括更多或更少的组件,设备101、设备103和计算机总线105。例如,设备101或设备103可以包括一个或多个硬件加速器(未示出)。此外,应当理解,装置100内的设备和组件中的一个或多个可以包括来自以下描述的额外和/或变化的特征,并且可以包括本领域普通技术人员将考虑和/或称为主机、设备和计算机总线的任何设备。
在实施例中,设备101可以包括处理器111和存储器115。超管理器113可以在处理器111上操作,并且可以包括一个或多个系统驱动器114。超管理器113被布置为托管/管理多个信任执行会话116的执行。信任执行会话116的示例包括VM。在各种实施例中,处理器111包括将超管理器113从信任执行会话的TCB中排除的特征。
设备103可以通过计算机总线105被耦合到设备101。设备103可以包括被耦合到计算机总线105的接口131、缓存器141和存储装置143。接口131可以包括一个或多个寄存器,诸如能力报头寄存器、认证报头寄存器、认证能力寄存器、认证状态寄存器、认证控制寄存器、写数据邮箱寄存器、读数据邮箱寄存器或某些其他寄存器。计算机总线105的示例可以是PCI总线。因此,由信任执行会话116通过在计算机总线105上建立的链路上发送的数据分组/请求包括各种请求类型的数据分组/请求。在各种实施例中,接口131以及其在计算机总线105的设备101上的对应物与本公开的提供减少或零额外延迟的链路保护技术合并,这使得针对信任执行会话的外部通信部署链路保护是可行的,将在下文更全面地描述。
在实施例中,装置100可以是任何移动计算系统或平台,例如,膝上型计算机、超膝上型计算机、平板计算机、触摸板、便携式计算机、手持计算机、可穿戴设备、掌上计算机、个人数字助理(PDA)、电子阅读器、蜂窝电话、蜂窝电话/PDA组合、移动智能设备(例如,智能电话、智能平板计算机等)、移动互联网设备(MID)、移动消息传递设备、移动数据通信设备、移动媒体播放设备、相机、移动游戏控制台等。在实施例中,装置100还可以是非移动设备,其可以包括但不限于:例如服务器、个人计算机(PC)、电视、智能电视、数据通信设备、媒体播放设备、游戏控制台、网关、物联网(IOT)设备等。
信任执行会话116可以执行本地程序或者消耗由外部服务提供商通过网络提供的服务。例如,信任执行会话116可以包括在本地运行和/或利用或访问基于网络的服务(例如,在线商店或服务、社交网络服务等)的一个或多个软件客户端或应用。信任执行会话116还可以或者替代地包括在浏览器中运行的网络界面,电子装置能够从该网络界面访问这样的基于网络的服务。
除了存储器115之外,装置100还可以包括存储设备(未示出),以存储与由装置100使用的程序和服务相关联的逻辑和数据。
在实施例中,处理器111可以是中央处理单元(CPU)。在一些实施例中,处理器111可以是可编程设备,其可以执行程序,例如系统驱动器114和/或信任执行会话116的程序。在实施例中,处理器111可以是微控制器、16位处理器、32位处理器、64位处理器、单核处理器、多核处理器、数字信号处理器、嵌入式处理器或者任何其他处理器。在各种实施例中,如前所述,处理器111包括从其托管/管理的VM的TCB中排除操作系统113的超管理器的特征。
在实施例中,操作系统113可以是管理用于装置100的硬件或软件资源的任何系统软件,并且可以向应用(例如,系统驱动器114、或信任执行会话116内的应用)提供服务。操作系统113可以是Android OS、iOS、Linux、实时操作系统(RTOS)、汽车信息娱乐操作系统等。例如,操作系统113可以是实时操作系统,诸如VxWorks、PikeOS、eCos、QNX、MontaVista Linux、RTLinux、Windows CE或其他操作系统。
在实施例中,计算机总线105可以是外部计算机总线、内部计算机总线、串行计算机总线或并行计算机总线。例如,计算机总线105可以是PCI总线、PCI扩展总线(PCI-X)、PCIExpress总线、通用串行总线(USB)、并行高级技术附件(PATA)总线、串行ATA(SATA)总线、集成电路间(I2C)总线、IEEE 1394接口(FireWire)总线、小型计算机系统接口(SCSI)总线、可伸缩一致性接口(SCI)总线或其他计算机总线。
在实施例中,设备103可以是任何计算机硬件。例如,设备103可以是网络接口卡、声卡、视频控制器、以太网控制器、网络摄像头、鼠标、蓝牙控制器、PCI至ISA桥、GUI加速器、ATM控制器、多媒体卡、SCSI控制器、多媒体设备、MPEG-II视频解码器或任何输入/输出设备。在实施例中,设备103可以是PCI设备,其可以被直接插入到计算机主板上的PCI槽中。在一些其他实施例中,设备103可以通过不同的计算机总线被耦合到处理器111。
如前所述,处理器111的中央处理单元(CPU)包括从其管理的针对虚拟机(VM)的信任计算库(TCB)中移除超管理器113的能力。示例性用户案例可以包括托管许多租户VM工作负载的云服务提供商(例如,Microsoft Azure)的上述示例。从云服务提供商(CSP)和云租户两者的角度来看,双方都希望针对VM工作负载保密。为了实现这种保密的VM执行,可以保持对存储器和运行时CPU状态进行保密和完整性保护,以防止数据泄露或篡改攻击。在一些实施例中,CPU安全能力可以是从Santa Clara的Intel公司可获得的信任域扩展(TDX),该能力可以用于经由使用存储器加密和经由存储器控制器的多密钥总存储器加密(MK-TME)引擎的完整性来满足这些安全目标。
在实施例中,信任域扩展(TDX)可以用于扩展虚拟机扩展(VMX)以提供新型的虚拟机访客,即,信任执行域116,其也可以被称为信任域(TD)。TD在CPU模式下运行,该模式保护其存储器内容及其CPU状态的保密性不受任何其他软件(包括托管超管理器(也被称为虚拟机监视器(VMM))的影响,除非TD本身明确是共享的。为了使得能够将计算机总线代理(诸如PCIe设备)直接分配给TD存储器,需要保护通过PCIe链路在TD与设备之间流动的数据,以增强数据的保密性、完整性和重放保护。
认证加密(例如,AES-GCM)可用于链路加密,因为其提供了保密性、完整性和重放保护,满足针对链路加密的安全性要求。然而,传统的密码机制会给(PCIe)总线事务引入显著的延迟,这可能会限制链路保护的采用,因为其会显著抵消加速的益处。
在实施例中,如将在下文更详细描述的,对于AES-GCM加密,替代地将单调计数器用作IV,以减少或有助于减少链路加密的延迟。另外,通过消除密码浪费,还使用加密拆分来满足安全性要求,同时显著减少由于针对链路保护的密码操作所引起的延迟。对于一些实施例,能够将密码延迟减少多达4.5倍,同时带宽减少~20%,从而使链路保护实用。本文的实施例对于TDX的成功操作可能是有用的,因为其允许以最小的成本将加速器作为安全计算的一部分包括在内。
在使用诸如AES-GCM的经认证的加密来加密和完整性保护链路上的秘密时,AES-GCM需要对独有的计数器进行加密以加密/解密数据,并且通过利用经加密的计数器对明文/密文进行XOR来对数据进行加密/解密。
在存储器加密的情况下,对于读取请求,密码引擎能够隐藏延迟以在存储器往返延迟下生成加密计数器(或密码填充或密钥流),并且当从存储器接收到数据时,能够通过利用存储器的读取未命中并行生成的填充进行XOR来解密。然而,对于存储器写入请求,由于需要在将请求发送到存储器之前对其进行加密,因此将用于生成密码填充的延迟添加到写入请求。
当现有技术的AES-GCM与链路加密一起使用时,其退化为上述的写入情况。由链路加密引擎接收到的每个请求都需要等待密码填充的生成(随后是MAC验证),然后才能够对其进行转发(例如,到存储器以服务于来自设备的读取请求)。现有解决方案可以使用固定长度的数据分组以允许填充的预先生成和零延迟加密操作。
另外,现有的解决方案非常受限,并且引入额外的带宽开销,从而会抵消加速的益处。更具体而言,将固定长度的分组用作加密边界迫使以每个分组生成MAC。由于PCIe支持可变长度的分组(例如,事务层分组或TLP),因此现有的解决方案可能要求将分组大小设置得足够小以覆盖最小大小的请求。在示例性场景中,假设每64B生成MAC,并且最大分组的大小能够为1024B。对于最大大小的分组,先前提出的方案将需要发送16个MAC。对于(GCM标准所要求的)96b MAC,这转换为~20%的带宽开销。在各种实施例中,本公开的链路加密技术包括复合或累积MAC方案,以进一步减少或消除延迟,这将在下文更全面地描述。
现在已经提供了对装置100的概览描述,现在将参考其余附图来描述本公开的链路保护技术,其中减少的延迟或几乎没有延迟提供给计算机总线105以补充处理器111给予信任执行会话116的安全保护。为了易于理解,将在计算机总线105是PCI总线的上下文中提供部分描述,其中通过链路发送不同请求类型的TLP。然而,本公开并不限于此,并且可以在具有或不具有其他粒度的请求类型的情况下与其他计算机总线一起实践。
首先将描述针对认证的AES/GCM加密的部署来部署复合/累积MAC,以有助于提供减少的或没有延迟的链路加密。现在参考图2-3,其中,图示了根据各种实施例的本公开的链路保护技术的复合/累积MAC方面。本文描述的实施例使得减少的或零延迟的加密/解密能够用于链路保护,由此允许信任执行会话以安全的方式从例如(在信任执行会话外部的)计算机平台中的加速器的加速能力中提取最多。图2-3中所示的益处可适用于由图1中所示的计算机总线105耦合的设备。
图2-3使用128B请求作为示例性请求来例示说明本公开的复合/累积MAC的方案。框202示出了将经认证的AES/GCM加密的部署直接转发到链路加密。在该方案中,AES/GCM加密引擎等待接收发送请求,并生成对发送请求的数据块进行加密所需的加密填充,由此将加密填充生成延迟212添加到发送请求处理中。在生成加密填充之后,发送请求的数据块被连续地加密。对于所图示的示例,对八个16B大小的块进行连续地加密。在对数据块进行连续加密时,生成216MAC。
框204图示了一种替代方案,其中AES/GCM加密引擎根据发送请求对固定大小的大块拆分(例如,64B)的数据块214进行加密。在每个64B大块的数据块之后生成MAC 216,以允许AES/GCM加密引擎预先计算所需的加密填充,以免引入额外的延迟。如能够看到的,这两种方案都将具有延迟或带宽影响或者这两者。
框206图示了另一种方案,该方案通过仅在每个发送请求的末尾(例如,在PCI情况中的每个TLP的末尾)添加单个MAC 216,避免了由于密码处理而导致的任何延迟添加,并且将所需的额外带宽保持为最小。假设14周期的AES延迟(针对AES-256的延迟)和针对MAC验证的4周期的延迟,经改进的实施例可以减少或完全隐藏生成加密填充所需的AES延迟,针对MAC验证仅需要4周期的延迟,这导致延迟降低多达4.5倍,从而使链路保护切实可行。因此,本文公开的实施例对于例如TDX或其他信任执行环境(TEE)的安全环境的成功会是有用的,因为其允许例如以减少的或最小的成本将计算平台的加速器(在安全环境外部)作为安全计算的一部分包括在内。
图3图示了使用MAC累积进一步通过示例性减少的延迟加密的框206的实施例。框302的实施例对应于204的实施例,并且在此在图3中提供以供参考。框304的实施例图示了如何实现针对每个发送请求的单个MAC在这种替代方法中,发送请求/分组被分成多个较小的固定大小的大块或数据块组(仅出于加密目的)。例如,能够选取64B作为GCM调用的粒度。大于64B的发送请求/分组(例如,在PCI情况下的TLP)被分解为所需的64B大块,并且每个大块都通过AES-GCM发送以进行加密并生成MAC 316a、316b等。然而,不发送针对较小的大块的所生成的MAC 316a、316b等。相反,使用函数来累积个体MAC 316a、316b等,并且在事务的结束时发送累积/复合MAC 316。在接收器侧,接收器将镜像加密侧,在64B大块上生成个体MAC,使用相同的函数对其进行累积,然后将本地生成的累积/复合MAC与接收到的参考累积/复合MAC进行比较。结果,可以减少或不浪费密码填充(因为所有填充都被用完),但是与直接转发方案(具有或不具有发送请求/分组的拆分)相比,没有消耗额外的带宽。
现在参考图4,其中,图示了根据各种实施例的示例性AES-GCM构造,该示例性AES-GCM构造并入有本公开的链路保护技术的经改进的填充生成。如所示的,对于所图示的实施例,类似于常规AES-GCM加密,具有本公开的链路加密技术的经改进的填充生成的示例性AES-GCM构造400包括被设置在发送器侧的多个加密引擎(电路)402a和402b,以及被设置在接收器侧处的MAC认证引擎(电路)404。应当理解,发送器侧还包括MAC生成电路(未示出),其被布置为生成MAC,如先前参考图2-3所描述的。还应当理解,接收器侧还包括在发送器侧镜像加密引擎402a和402b的解密引擎(未示出)。
加密引擎402a和402b被布置为并行地对数据分组的对应数据块进行加密。在其他实施例中,可以存在两个以上的加密引擎,例如四个,其并行地对数据分组的两个以上的数据块进行加密。在每个加密引擎(例如,402a或402b)中,使用计数器模式加密来执行对数据块的加密,其中,与数据相关联的计数器412a/412b被加密(填充)414a或414b,并与数据418a/418b进行XOR 416a或416b以用于加密,将加密工作与数据本身解耦:C=P XOR PAD,其中,P是明文418a/418b,并且C是密文420a/420b。在各种实施例中,用于生成加密填充的电路414a/414b并入有本公开的教导,在加密填充的生成中使用单调递增的计数器值作为IV,这将在下文参考图5和图6更全面地描述。
在各种实施例中,如先前参考图2-3所描述的,在发送器侧的MAC生成电路(镜像接收器侧的认证引擎404)为每个数据分组生成累积/复合MAC。稍后将参考图9进一步描述发送器侧的发送路径。
解密基于P=C XOR PAD。因此,接收器侧上的对应的多个解密引擎中的每一个解密引擎(镜像发送器侧的加密引擎402a和402b)类似地由计数器、用于生成解密填充的解密电路以及用于通过将秘文与解密填充进行XOR来恢复明文的XOR电路构成。类似地,用于生成解密填充的解密电路与本公开的教导合并,在生成解密填充时使用单调递增的计数器值作为IV,这将在下文参考图5和图6更全面地描述。
认证引擎404被布置为执行MAC认证。认证引擎404被布置为执行GHASH操作。在接收到经加密的数据420a/420b时,接收器在每个恢复的数据大块上生成MAC,利用函数对MAC进行累积,然后将最终的累积/复合MAC与接收到的具有数据的MAC(也被称为参考MAC)进行比较。在本地生成的MAC与接收到的MAC之间的不匹配指示完整性破坏,并且可能生成安全异常以用信号通知结束安全会话。稍后将参考图8进一步描述接收器侧的接收路径。
在传统的AES-GCM认证加密中,所使用的计数器是如下按照NIST标准规范生成的(假设len(IV)=96b):-Counter=IV|Block_counter。为了进行加密/解密,将待加密/解密的数据被拆分为16B(=AES块大小)粒度块,并且相同的IV 504a 504b用于由同一MAC覆盖的个体块502a/502b,例如,在PCI情况下的TLP,其中针对每个块的块计数器都递增,以允许针对每个块使用独有的计数器值,这是针对计数器模式加密的要求。块计数器从0311开始,并针对待加密/解密的数据中的每个16B块502a/502b递增。Block_counter值0311用于MAC生成的填充,如在图5中所示的。
在各个实施例中,用于密码操作的参数可以如下:(1)64B@1GHz的数据路径,(2)具有256b密钥的AES,(3)密码引擎位于链路层和事务层与进程之间,(4)每个周期64B@1GHz,其中在64B路径上存在4个并行AES引擎以允许在全带宽下进行处理,(5)AES延迟可能是1个周期/轮次(AES-256具有14个轮次,因此,加密需要14个周期)。因此,对于16B块中的每一个,用于填充生成所需要的14个周期能够被完全隐藏以实现高性能解决方案。
在其他实施例中,可以使用其他特定的密码算法、密钥大小、数据路径宽度和频率,以上列举的示例性参数仅仅用于例示说明的目的。
在各种实施例中,对于最大带宽,可能需要确保有足够的填充可用于覆盖所有请求/完成组合。所述填充的大小能够是可变的,例如,0-1024B。由于AES延迟被假设为14个周期,因此可能需要足够的填充来覆盖14个周期的数据。最大或最小的背对背请求在请求之间提供了足够的周期,以生成针对下一个请求的填充并保持管线满载。更一般地,如果所有请求的大小都相同,则密码引擎能够保持管线满载。然而,大请求会与小请求交错,并且会导致管线气泡。一些密码逻辑可能假设针对填充预先生成过程的最大请求大小。
例如,可能存在背对背的64B请求(包括写入数据)。在消耗来自填充缓存器的第一填充时,假设第15个请求是最大支持的请求,填充预先生成开始。如果第15个请求是64B,则第16个请求将在填充缓存器中找不到填充,并且将不得不承受延迟。所浪费的密码工作导致管线气泡,并因此效率低下。
本文的实施例提出了避免密码浪费的两种机制,以实现减少或零延迟的加密/解密解决方案:使用单调计数器作为IV来避免密码浪费,或者利用累积的MAC进行密码拆分。
现在参考图6,其中,示出了根据各种实施例的在具有信任执行会话粒度的本公开的链路加密技术下单调计数器作为IV的示例性用法。本文的实施例可以使用单调计数器来避免密码浪费。AES-GCM的浪费的密码工作导致效率低下。本文的实施例提出了一种方案,其中,通过使用单调计数器作为IV而不浪费密码工作。更具体而言,计数器模式加密要求用于每个块的计数器是独有的。GCM通过使用IV|Block_counter串联来实现,但是如上所示,其会以可变大小的请求导致管线气泡。对于单调计数器,针对每个16B块的计数器是通过对单调计数器进行采样并随后使其递增而生成的。如在图6中所示的,没有16B块604a和604b将共享被用于加密/解密该块的计数器的任何部分:16B块602a和602b对应于图5的16B块502a和502b,在此出于参考/比较目的而包含于此。
因此,如在图6中所示的,在本公开的情况下,如图的下部所图示的,利用AES-GCM,单个请求/数据分组(例如,PCI中的TLP)获得相同的IV和不同的块计数器,每个块都与请求/分组无关,其属于的是获得待用于加密的不同IV。
基于IV构造,本文的实施例满足计数器模式加密的要求以维持针对每个16B块的计数器独有性并且不浪费密码工作。更具体而言,本文的实施例可以仅预先生成足够的填充以覆盖AES引擎的延迟。假设接口宽度为64B,则可能需要生成足够深的填充缓存器,以在每个周期64B处覆盖14个周期(AES延迟)的数据。填充缓存器中的填充不再像传统的AES-GCM那样绑定到特定的请求/数据分组(例如,在PCI情况下为TLP),并且能够在被接收到时用于任何请求/数据分组(例如,在PCI情况下为TLP)。因此,在实施例中,没有浪费密码工作,导致针对链路加密的减少的或零延迟的加密/解密。
现在参考图7,其中,图示了根据各种实施例的用于本公开的链路保护技术的填充生成和调度的示例性过程。如所示的,对于所图示的实施例,用于填充生成和调度的过程700包括在框702和704处执行的操作。可以由例如在图4的发送器侧处的加密引擎402的加密填充生成电路414a或414b,或者在接收器侧处的解密引擎中的镜像副本解密填充生成电路,来执行所述操作。
在框702处,在接收到针对加密/解密的请求时,从适当的填充缓存器存储装置的头部消耗所需的填充。在各种PCI实施例中,为了确保减少或零延迟的添加,密码逻辑被布置为调度通过密码引擎的适当的填充。实现方式能够选取为不同的TLP类型实现单独的流。在示例性实现方式中,能够利用一个密钥对未发布的请求(NPR)请求进行加密,并且能够利用另一密钥对已发布的请求(PR)和完成请求进行加密;在又一实现方式中,三种TLP类型中的每一种类型都能够具有其自己的密钥。在请求类型之上,能够在链路上维护多个信任会话,以允许多个设备与可能互不信任的TEE进行通信。因此,在各种实施例中,密码引擎被布置为能够处理多个密钥和多个密钥流/填充缓存器,并且取决于信任会话以及在该周期中消耗来自填充缓存器的填充的请求类型,通过密码引擎来调度填充生成。
作为示例,如果针对信任会话0的PR请求具有在特定周期中接收到的64B数据,则密码引擎对于信任会话0需要消耗来自PR填充缓存器的头部的4个填充,并且在相同的周期内,对于相同的信任会话和相同的请求类型,必须将生成消耗的相同数量的填充的请求发送到密码引擎。因此,预先生成和调度算法旨在使针对每种请求类型和每个信任会话的填充缓存器保持完整,以覆盖整个加密延迟。结果,本文中的实施例可通过使填充总是预先生成并在需要时准备就绪而允许零延迟的加密/解密。
在各种实施例中,为了维护标准遵从性,实现方式能够选取使用单独的密钥来针对每个信任会话中的每个请求类型进行MAC生成和加密/解密。在这样的实现方式中,每个会话和请求类型将需要单独维护针对MAC的单独的填充缓存器(即,将维护单独的计数器和密钥材料)。
在各种实施例中,过程700从框702前进到框704。在框704处,将请求发送到密码引擎以用于(一个或多个)适当的信任会话的填充生成。在各种实施例中,例如在PCI实施例中,该请求是特定于请求类型的,例如,NPR、PR或完成。
现在参考图8,其中,图示了根据各种实施例的具有动态密钥扩展的示例性多密钥密码引擎的管线视图。如所示的,对于所图示的实施例,多密钥密码引擎800包括如所示的与彼此耦合的AES管线802、密钥扩展管线804和密钥表812。AES管线802包括添加轮次密钥电路814,以及彼此串联耦合的用于多个AES加密轮次的多个AES加密电路816a、816b等。添加轮次密钥电路814也与密钥表812耦合。密钥扩展管线804包括彼此并与密钥表812串行耦合的用于多个加密轮次的多个密钥扩展电路818a、818b等。多个AES加密电路816a、816b等以及多个密钥扩展电路818a、818b等也彼此对应地耦合。
密钥表812被布置为存储多个密钥。在各种实施例中,为多个信任执行会话存储多个密钥。在又其他实施例中,多个密钥用于多个信任执行会话的多个请求类型。在操作期间,在接收到数据分组/请求时,针对第1轮加密818a,密钥表812从密钥表812向第一密钥扩展电路输出多个密钥中的适当密钥(在适用时,针对(请求类型的)信任执行会话),并且向添加秘钥电路814输出控制信号。响应于密钥的接收,用于第1轮加密的密钥扩展电路818a扩展密钥并且将第1轮扩展的密钥提供给用于第1轮加密的加密电路816a,用于第2轮加密的密钥扩展电路816b为第2轮加密再次扩展经第一轮扩展的密钥。
在第1轮加密之后,用于第1轮加密的加密电路816a将第1轮加密结果输出至用于第2轮加密的加密电路816b,并且用于第2轮加密的密钥扩展电路818b将用于第2轮加密的扩展的密钥输出至用于第2轮加密的加密电路816b。两个管线都继续,直到用于第14轮加密的加密电路816n从用于第13轮加密的加密电路816m接收到第13轮加密结果,以及从用于第14轮加密的秘钥扩展电路818n接收到用于第14轮加密的加密秘钥,并且针对第14轮对数据块进行加密。
现在参考图9,其中,图示了根据各种实施例的示例性接收路径以及密码引擎在接收器侧的放置。如所示的,对于所图示的实施例,在接收器侧的示例性接收路径包括彼此耦合的多个接收队列902、多个缓存器904a-904c、解密电路906、调度逻辑908、路由逻辑910和MAC认证电路912。
接收队列902被布置为存储通过链路接收到的接收器的主机装置的多个信任执行会话的(多种请求类型的)加密/密文数据分组/请求。在各种实施例中,针对主机装置的多个信任执行会话中的每个信任执行会话,存在至少一个接收队列902。在其他实施例中,针对主机装置的多个信任执行会话中的每个信任执行会话的多个请求类型中的每个请求类型,存在至少一个接收队列902,例如,针对主机装置的每个信任执行会话的NPR类型数据分组的接收队列,针对主机装置的每个信任执行会话的PR类型数据分组的接收队列,以及针对主机装置的每个信任执行会话的完成类型数据分组的接收队列。
缓存器904a-904c被布置为存储多个信任执行会话的(多个请求类型的)解密填充。类似地,在各种实施例中,针对主机装置的多个信任执行会话中的每个信任执行会话,存在至少一个缓存器904a-904c。在其他实施例中,针对主机装置的多个信任执行会话中的每个信任执行会话的多个请求类型中的每个请求类型,存在至少一个缓存器902a-902c,例如,针对主机装置904a的每个信任执行会话的NPR类型数据分组的缓存器,针对主机装置904b的每个信任执行会话的PR类型数据分组的缓存器,以及针对主机装置904c的每个信任执行会话的完成类型数据分组的缓存器。
解密电路906被布置为对主机装置的信任执行会话的(请求类型的)数据分组/请求的数据块进行解密。在各种实施例中,解密电路906包括XOR电路,以将经加密的数据块(密文)与信任执行会话的(用于请求类型的)解密填充进行XOR,以恢复未明文加密的数据块。
调度逻辑908和路由电路910被布置为调度适当的密钥和计数器值并且将其路由到缓存器904a-904c,以预先生成信任执行会话的(各种请求类型的)解密填充。对于所例示说明的实施例,假设存在四个解密引擎(具有解密电路906)以并行地对数据分组/请求(例如,64B)的四个数据块(例如,16B)进行解密。
MAC认证电路912被布置为对与正被解密的数据分组/请求相关联的接收到的MAC进行认证。如前所述,MAC认证电路912被布置为累积利用函数解密的每个数据大块的MAC,并且将最终的累积/复合MAC与接收到的MAC进行比较,以促进减少在向信任执行会话提供链路加密中的延迟。
现在参考图10,其中,图示了根据各种实施例的示例性发送路径以及密码引擎在发送器侧的布置。如所示的,对于所图示的实施例,在发送器侧的示例性发送路径包括彼此耦合的多个发送队列1002、多个缓存器1004a-1004c、加密电路1006、调度逻辑1008、路由逻辑1010和MAC认证电路1012。
发送队列1002被布置为存储通过链路待发送的多个信任执行会话的(多种请求类型的)未加密/明文数据分组/请求。在各种实施例中,针对主机装置的多个信任执行会话中的每个信任执行会话,存在至少一个发送队列1002。在其他实施例中,针对主机装置的多个信任执行会话中的每个信任执行会话的多个请求类型中的每个请求类型,存在至少一个发送队列1002,例如:针对主机装置的每个信任执行会话的NPR类型数据分组的发送队列、针对主机装置的每个信任执行会话的PR类型数据分组的发送队列、以及针对主机装置的每个信任执行会话的完成类型数据分组的发送队列。
缓存器1004a-1004c被布置为存储多个信任执行会话的(多个请求类型的)加密填充。类似地,在各种实施例中,针对主机装置的多个信任执行会话中的每个信任执行会话,存在至少一个缓存器904a-904c。在其他实施例中,针对主机装置的多个信任执行会话中的每个信任执行会话的多个请求类型中的每个请求类型,存在至少一个缓存器1002a-1002c,例如:针对主机装置1004a的每个信任执行会话的NPR类型数据分组的缓存器、针对主机装置1004b的每个信任执行会话的PR类型数据分组的缓存器、以及针对主机装置1004c的每个信任执行会话的完成类型数据分组的缓存器。
加密电路1006被布置为对主机装置的信任执行会话的(请求类型的)数据分组/请求的数据块进行加密。在各种实施例中,加密电路1006包括XOR电路,以将未加密的数据块(明文)与信任执行会话的(用于请求类型的)加密填充进行XOR,以生成经加密的/密文数据块。
调度逻辑1008和路由电路1010被布置为将适当的密钥和计数器值路由到缓存器1004a-1004c,以预先生成信任执行会话的(各种请求类型的)解密填充。对于所例示说明的实施例,假设存在四个加密引擎(具有加密电路1006)以并行地对数据分组/请求(例如,64B)的四个数据块(例如,16B)进行加密。
MAC认证电路1012被布置为生成与正被加密和发送的数据分组/请求相关联的MAC。如前所述,MAC认证电路1012被布置为累积利用函数加密的每个数据大块的MAC,并且发送最终的累积/复合MAC与加密的数据块,以促进减少在向信任执行会话提供链路加密中的延迟。
现在参考图11,其中,图示了根据各种实施例的适合用于实践本公开的各个方面的示例性设备。设备1100可用于实现装置100的功能。如所示的,设备1100可以包括一个或多个处理器1102,每个处理器具有一个或多个处理器核心,或者可选地,具有硬件加速器1103(其可以是ASIC或FPGA)。在替代实施例中,硬件加速器1103可以是处理器1102的一部分,或者一起集成在SOC上。另外,设备1100可以包括存储器1104,存储器1104可以是多种已知的持久性存储介质中的任一种,以及包括模块1109的数据存储电路1108。另外,设备1100可以包括被耦合到一个或多个传感器1114的I/O接口1118,以及显示屏1113。
I/O接口1118可以包括并入有本公开的链路保护技术的发送器1123和接收器1117。此外,设备1100可以包括通信电路1105,通信电路1105包括收发机(Tx)1111,以及网络接口控制器(NIC)1112,并入有本公开的链路保护技术。元件可以经由系统总线1106彼此耦合,系统总线1106可以表示一条或多条总线。在多条总线的情况下,其可以由一个或多个总线桥(未示出)桥接。设备1131可以被耦合到系统总线1106,并且设备1135可以被耦合到计算机总线1139。设备1131可以包括接口1133,并且设备1135可以包括接口1137。在实施例中,计算机总线1106或计算机总线1139可以是如在图1中所示的计算机总线105的示例。
在实施例中,(一个或多个)处理器1102(也被称为“处理器电路1102”)可以是被配置为通过执行指令来执行基本的算术、逻辑和输入/输出操作的一个或多个处理元件。处理器电路1102可以被实现为独立的系统/设备/封装或作为现有系统/设备/封装的一部分。处理器电路1102可以是一个或多个微处理器、一个或多个单核处理器、一个或多个多核处理器、一个或多个多线程处理器、一个或多个GPU、一个或多个超低电压处理器、一个或多个嵌入式处理器、一个或多个DSP、一个或多个FPD(硬件加速器)(诸如FPGA、结构化ASIC、可编程SoC(PSoC)等)、和/或其他处理器或处理/控制电路。处理器电路1102可以是SoC的一部分,其中,本文所讨论的处理器电路1102和其他组件被形成为单个IC或单个封装。作为示例,处理器电路1102可以包括一个或多个Intel 或Core 处理器;Advanced Micro Devices(AMD)加速处理单元(APU)、或处理器;Apple Inc.A系列、S系列、W系列等处理器;Qualcomm 处理器;Samsung 处理器等。
在实施例中,处理器电路1102可以包括传感器中枢(hub),其可以通过处理从一个或多个传感器1114获得的数据而充当协处理器。传感器中枢可以包括被配置为通过执行算术、逻辑和输入/输出操作来整合从一个或多个传感器114中的每个传感器获得的数据的电路。在实施例中,传感器中枢能够对获得的传感器数据加时间戳,响应于针对这样的数据的查询而向处理器电路1102提供传感器数据,缓存传感器数据,将传感器数据连续流送到处理器电路1102,包括针对一个或多个传感器1114的每个传感器的独立流,基于预先定义的阈值或条件/触发和/或其他类似的数据处理功能来报告传感器数据。
在实施例中,存储器1104(也称为“存储器电路1104”等)可以是被配置为存储用于操作计算机设备1100的数据或逻辑的电路。存储器电路1104可以包括多个存储器设备,其可用于提供给定量的系统存储器。作为示例,存储器电路1104能够是可以以任何已知的合适实现方式进行配置的易失性存储器设备(例如,随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SAM)等)和/或非易失性存储设备(例如,只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、抗熔丝等)的任何合适的类型、数量和/或组合。在各种实现方式中,个体存储器设备可以由任意数量的不同封装类型形成,诸如单管芯封装(SDP),双管芯封装(DDP)或四管芯封装,双列直插式存储器模块(DIMM),诸如microDIMM或MiniDIMM,和/或任何其他类似存储器设备。为了提供对信息(诸如数据、应用、操作系统等)的持久存储,存储器电路1104可以包括一个或多个大容量存储设备,诸如固态磁盘驱动器(SSDD);闪存卡,诸如SD卡、microSD卡、xD图片卡等,以及USB闪存驱动器;与处理器电路1102相关联的管芯上存储器或寄存器(例如,在低功率实现方式中);微型硬盘驱动器(HDD);来自和等的三维交叉点(3D XPOINT)存储器。
在使用FPD的情况下,处理器电路1102和存储器电路1104(和/或数据存储电路1108)可以包括逻辑块或逻辑结构、存储器单元、输入/输出(I/O)块、以及可以被编程以执行本文所讨论的示例性实施例的各种功能的其他互连资源。所述存储器单元可以用于将数据存储在查找表(LUT)中,所述查找表被处理器电路1102用于实现各种逻辑功能。所述存储器单元可以包括各种级别的存储器/存储装置的任意组合,包括但不限于EPROM、EEPROM、闪存、SRAM、抗熔丝等。
在实施例中,具有共享或相应控制器的数据存储电路1108(也被称为“存储电路1108”等)可以提供诸如模块1109、操作系统等的信息的持久存储。数据存储电路1108可以被实现为固态驱动器(SSD);固态磁盘驱动器(SSDD);串行AT附件(SATA)存储设备(例如,SATA SSD);闪存驱动器;闪存卡,诸如SD卡、microSD卡、xD图片卡等,以及USB闪存驱动器;三维交叉点(3D Xpoint)存储器设备;与处理器电路1102相关联的管芯上存储器或寄存器;硬盘驱动器(HDD);微型HDD;电阻变化存储器;相变存储器;全息存储器;或化学存储器;等等。如所示的,数据存储电路1108被包含在计算机设备1100中;然而,在其他实施例中,数据存储电路1108被实现为与计算机设备1100的其他元件分离的一个或多个设备。
在一些实施例中,数据存储电路1108可以包括操作系统(OS)(未示出),所述操作系统可以是通用操作系统或专门为计算机设备1100编写和定制的操作系统。OS可以包括一个或多个驱动程序、库和/或应用编程接口(API),其为模块1109和/或控制系统配置提供程序代码和/或软件组件,以控制和/或获得/处理来自一个或多个传感器1114的数据。
模块1109可以是用于执行计算机设备1100的各种功能和/或执行本文讨论的示例实施例的功能的软件模块/组件。在处理器电路1102和存储器电路1104包括硬件加速器(例如,FPGA单元、硬件加速器1103)以及处理器核心的实施例中,可以利用逻辑将硬件加速器(例如,FPGA单元)预先配置(例如,利用适当的位流、逻辑块/结构等)以执行本文实施例的一些功能(替代采用待由(一个或多个)处理器核心执行的编程指令)。例如,模块1109可以包括用于关于显示屏1113、发送器1123和接收器1117所讨论的对应实体的逻辑。
计算机设备1100的组件可以通过总线1106彼此通信。总线1106可以包括任何数量的技术,诸如本地互连网络(LIN);行业标准架构(ISA);扩展ISA(EISA);PCI;PCI扩展(PCIx);PCIe;集成电路间(I2C)总线;并行小型计算机系统接口(SPI)总线;通用应用编程接口(CAPI);点对点接口;电力总线;专有总线,例如,超路径接口(UPI)、加速器链接(IAL)或者在基于SoC的接口中使用的一些其他专有总线;或许多其他技术。在一些实施例中,总线1106可以是控制器局域网(CAN)总线系统、时间触发协议(TTP)系统或FlexRay系统,其可以允许各种设备(例如,一个或多个传感器1114等)使用消息或帧彼此通信。
通信电路1105可以包括用于与无线网络或有线网络进行通信的电路。例如,通信电路1105可以包括收发机(Tx)1111和网络接口控制器(NIC)1112,两者都合并有本公开的链路保护教导。通信电路1105可以包括专用于特定无线通信协议的一个或多个处理器(例如,基带处理器、调制解调器等)。
可以包括NIC 1112以提供到网络和/或其他设备的有线通信链路。有线通信可以提供以太网连接、USB上以太网等等,或者可以基于其他类型的网络,诸如DeviceNet、ControlNet、Data Highway+、PROFIBUS或PROFINET等。可以包括额外的NIC 1112以允许连接到第二网络(未示出)或其他设备,例如,第一NIC 1112通过以太网向网络提供通信,并且第二NIC 1112通过另一种类型的网络(诸如包括个人计算机(PC)设备的个人域网(PAN))向其他设备提供通信。在一些实施例中,设备1100的各种组件(诸如一个或多个传感器1114等)可以如上所讨论的经由NIC 1112而不是经由I/O电路1118连接到(一个或多个)处理器1102,如下文讨论的。
Tx 1111可以包括一个或多个无线电设备以与网络和/或其他设备进行无线通信。Tx 1111可以包括硬件设备,所述硬件设备使得能够使用通过固态或非固态介质的经调制的电磁辐射与有线网络和/或其他设备进行通信。这样的硬件设备可以包括开关、滤波器、放大器、天线元件等,以通过生成或者以其他方式产生无线电波来将数据发送到一个或多个其他设备,并且将接收到的信号转换成可以提供给计算机设备1100的一个或多个其他组件的可用个信息(诸如数字数据),来促进空中通信(OTA)。在一些实施例中,设备1100的各个组件(诸如一个或多个传感器1114等)可以经由如上所讨论的Tx 1111而不是经由如下所讨论的I/O电路1118连接到设备1100。在一示例中,一个或多个传感器1114可以经由短距离通信协议与设备1100耦合。
Tx 1111可以包括与任何数量的3GPP(第三代合作伙伴计划)规范兼容的一个或多个无线电设备,特别是长期演进(LTE)、高级长期演进(LTE-A)、高级长期演进Pro(LTE-APro)和第五代(5G)新无线电(NR)。能够注意到,可以选择与任何数量的其他固定、移动或卫星通信技术和标准兼容的无线电设备。这些可以包括例如任何蜂窝广域无线通信技术,其可以包括例如5G通信系统、全球移动通信系统(GSM)无线通信技术、通用分组无线服务(GPRS)无线通信技术、或GSM演进增强型数据速率(EDGE)无线通信技术。可以使用的其他第三代合作伙伴计划(3GPP)无线通信技术,包括UMTS(通用移动电信系统)、FOMA(多媒体访问自由)、3GPP LTE(长期演进)、高级3GPP LTE(高级长期演进)、高级3GPP LTE Pro(高级长期演进Pro)、CDMA2000(码分多址2000)、CDPD(蜂窝数字分组数据)、Mobitex、3G(第三代)、CSD(电路交换数据)、HSCSD(高速电路交换数据)、UMTS(3G)(通用移动电信系统(第三代))、W-CDMA(UMTS)(宽带码分多址(通用移动电信系统))、HSPA(高速分组接入)、HSDPA(高速下行链路分组接入)、HSUPA(高速上行链路分组接入)、HSPA+(高速分组接入增强版)、UMTS-TDD(通用移动电信系统-时分双工)、TD-CDMA(时分-码分多址)、TD-SCDMA(时分-同步码分多址)、3GPP Rel.8(Pre-4G)(第3代合作伙伴计划版本8(预先第4代))、3GPP Rel.9(第3代合作伙伴计划版本9)、3GPP Rel.10(第3代合作伙伴计划版本10)、3GPP Rel.11(第3代合作伙伴计划版本11)、3GPP Rel.12(第3代合作伙伴计划版本12)、3GPP Rel.13(第3代合作伙伴计划版本13)、3GPP Rel.14(第3代合作伙伴计划版本14)、3GPP LTE Extra、LTE许可辅助接入(LAA)、UTRA(UMTS地面无线电接入)、E-UTRA(演进型UMTS地面无线电接入)、高级LTE(4G)(高级长期演进(第4代))、cdmaOne(2G)、CDMA2000(3G)(码分多址2000(第三代))、EV-DO(优化的演进数据或仅演进数据)、AMPS(1G)(高级移动电话系统(第1代))、TACS/ETACS(总访问通信系统/扩展总访问通信系统)、D-AMPS(2G)(数字AMPS(第2代))、PTT(即按即说)、MTS(移动电话系统)、IMTS(改进的移动电话系统)、AMTS(高级移动电话系统)、OLT(挪威语的Offentlig Landmobil Telefoni、公共陆地移动电话)、MTD(瑞典语缩写Mobiltelefonisystem D或移动电话系统D)、Autotel/PALM(公共自动陆地移动设备)、ARP(芬兰语的Autoradiopuhelin,“汽车无线电话”)、NMT(北欧移动电话)、Hicap(NTT(日本电报和电话)的大容量版本)、CDPD(蜂窝数字分组数据)、Mobitex、DataTAC、iDEN(集成数字增强网络)、PDC(个人数字蜂窝)、CSD(电路交换数据)、PHS(个人手持电话系统)、WiDEN(宽带集成数字增强网络)、iBurst、非许可移动接入(UMA,也被称为3GPP通用接入网络或GAN标准)、无线千兆联盟(WiGig)标准、一般mmWave标准(在10-90GHz及以上操作的无线系统,诸如WiGig、IEEE 802.11ad、IEEE 802.11ay等)。除了上文列出的标准之外,任何数量的卫星上行链路技术都可以用于上行链路收发机,包括例如:符合ITU(国际电信联盟)或ETSI(欧洲电信标准协会)等发布的标准的无线电设备。因此,本文提供的示例被理解为可应用于现有的和尚未制定的各种其他通信技术。前述协议的实现方式、组件和细节可以是本领域中已知的那些,并且为了简洁起见在此省略。
输入/输出(I/O)接口1118可以包括电路,诸如外部扩展总线(例如,通用串行总线(USB)、FireWire、Thunderbolt、PCI/PCIe/PCIx等),用于将将计算机设备1100与外部组件/设备(诸如一个或多个传感器1114等)连接。I/O接口电路1118可以包括任何合适的接口控制器和连接器,以互连处理器电路1102、存储器电路1104、数据存储电路1108、通信电路1105和计算机设备1100的其他组件中的一个或多个。所述接口控制器可以包括但不限于:存储器控制器、存储装置控制器(例如,独立磁盘冗余阵列(RAID)控制器、基板管理控制器(BMC)、输入/输出控制器、主机控制器等)。连接器可以包括例如:总线(例如,总线1106)、端口、插槽、跳线、互连模块、插座、模块化连接器等。I/O电路1118可以经由有线连接将设备1100与一个或多个传感器1114等耦合,诸如使用USB、FireWire、Thunderbolt、RCA、视频图形阵列(VGA)、数字视觉接口(DVI)和/或mini-DVI、高清多媒体接口(HDMI)、S-Video等。
一个或多个传感器1114可以是被配置为检测事件或环境变化、将检测到的事件转换为电信号和/或数字数据以及将信号/数据发送/发送到计算机设备1100的任何设备。一个或多个传感器1114中的一些传感器可以是用于提供计算机生成的感觉输入的传感器。一个或多个传感器1114中的一些传感器可以是用于运动和/或物体检测的传感器。这样的一个或多个传感器1114的示例可以尤其包括:电荷耦合器件(CCD)、互补金属氧化物半导体(CMOS)有源像素传感器(APS)、无透镜图像捕获设备/相机、热像仪(红外)相机、光成像检测与测距(LIDAR)系统等。在一些实现方式中,一个或多个传感器1114可以包括无透镜图像捕获机构,该机构包括孔径元件阵列,其中,穿过孔径元件阵列的光限定图像的像素。在实施例中,运动检测的一个或多个传感器1114可以与光生成设备耦合或相关联,例如,一个或多个红外投影仪将红外光网格投影到场景上,其中,红外相机可以记录反射的红外光以计算深度信息。
一个或多个传感器1114中的一些传感器可以用于位置和/或取向检测、周围/环境状况检测等。这样的一个或多个传感器1114的示例尤其可以包括具有压电、压阻和/或电容组件的微机电系统(MEMS),其可用于确定与计算机设备1100相关的环境条件或位置信息。在实施例中,MEMS可以包括3轴加速度计、3轴陀螺仪和/或磁力计。在一些实施例中,一个或多个传感器1114还可包括一个或多个重力计、高度计、气压计、接近度传感器(例如,(一个或多个)红外辐射检测器等)、深度传感器、环境光传感器、热传感器(温度计)、超声收发机等。
这些元件中的每个元件(例如,一个或多个处理器1102、硬件加速器1103、存储器1104、包括模块1109的数据存储电路1108、输入/输出接口1118、一个或多个传感器1114、包括Tx 1111的通信电路1105、NIC 1112、系统总线1106、计算机总线1139、设备1131、设备1135)可以执行其在本领域中已知的常规功能。另外,其可以被用于存储和托管编程指令的执行,编程指令的执行实现与结合图1-10所描述的本公开的减少延迟的链路保护技术相关联的操作和/或提供本公开中描述的实施例的能力的其他功能。编程指令可以是由(一个或多个)处理器1102支持的汇编指令或者能够被编译成这样的指令的高级语言,诸如,例如C。与未以软件实现的设备1100相关联的操作可以例如经由硬件加速器1103以硬件来实现。
这些元件1102-1139的数量、能力和/或容量可以变化,这取决于设备1100被配置为支持的其他设备的数量。否则,元件1102-1139的构造是已知的,因此将不再进一步描述。
如本领域技术人员将理解的,本公开可以体现为方法或计算机程序产品。因此,除了如先前描述以硬件实现之外,本公开还可以采取完全软件实施例(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施例的形式,所有这些通常都被称为“电路”、“模块”或“系统”。
此外,本公开的各方面可以采取被体现在任何有形或非瞬态表达介质中的计算机程序产品的形式,该介质中体现有计算机可用程序代码。图12图示了示例性计算机可读非瞬态存储介质,该介质可适于存储指令,所述指令响应于装置执行指令而使得装置实践本公开的选定方面。如所示的,非瞬态计算机可读存储介质1202可以包括多个编程指令1204。编程指令1204可以被配置为响应于编程指令的执行而使得设备(例如,设备1200)能够执行例如如在图1-11中所示的与本公开的减少延迟的链路保护技术相关联的各种操作。
在替代实施例中,可以将编程指令1204替代地设置在多个计算机可读非瞬态存储介质1202上。在替代实施例中,编程指令1204可以被设置在诸如信号的计算机可读瞬态存储介质1202上。可以利用一种或多种计算机可用或计算机可读介质的任意组合。计算机可用或计算机可读介质可以是例如但不限于:电、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体示例(非详尽列表)将包括以下项:具有一根或多根电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储设备、发送介质(诸如支持互联网、内联网的那些)、或磁存储设置。注意,计算机可用或计算机可读介质甚至可以是纸或在其上打印程序的另一合适介质,因为能够例如经由光学扫描纸或其他介质来电子捕获程序,然后在必要时以适当的方式进行编译、解读或以其他方式处理,然后存储在计算机存储器中。在本文的上下文中,计算机可用或计算机可读介质可以是能够包含、存储、通信、传播或发送供指令执行系统、装置或设备使用或者与其结合使用的程序的任何介质。计算机可用介质可以在基带中或作为载波的一部分包括传播的数据信号,以及随其体现的计算机可用程序代码。可以使用任何适当的介质(包括但不限于无线、有线、光纤线缆、RF等)来发送计算机可用程序代码。
用于执行本公开的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,所述编程语言包括诸如Java、Smalltalk、C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规过程编程语言。程序代码可以完全在用户计算机上执行、部分在用户计算机上作为独立软件包执行、部分在用户计算机上且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以与外部计算机建立连接(例如,通过使用互联网服务提供商的互联网)。
参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述了本公开。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合能够由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的单元。
这些计算机程序指令也可以被存储在计算机可读介质中,该计算机可读介质能够指导计算机或其他可编程数据处理装置以特定方式运行,使得存储在计算机可读介质中的指令产生制品,包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的指令单元。
计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上,以使得在计算机或其他可编程装置上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图的一个或多个框中指定的功能/动作的过程。
附图中的流程图和框图图示了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。就这点而言,流程图或框图中的每个框可以表示模块、片段或代码的一部分,其包括用于实现(一项或多项)指定的逻辑功能的一个或多个可执行指令。还应当注意,在一些替代实现方式中,框中指出的功能可以不按图中指出的次序发生。例如,取决于所涉及的功能,实际上可以基本上同时执行连续示出的两个框,或者有时可以以相反的次序执行这些框。还将注意到的是,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合能够由执行指定功能或动作的基于专用硬件的系统或专用硬件与计算机指令的组合来实现。如本文所使用的,“计算机实现的方法”可以指代由一个或多个处理器、具有一个或多个处理器的计算机系统、诸如智能电话的移动设备(可以包括一个或多个处理器)、平板计算机、膝上型计算机、机顶盒、游戏机等执行的任何方法。
实施例可以被实现为计算机过程、计算系统或诸如计算机可读介质的计算机程序产品的制品。计算机程序产品可以是计算机系统可读并且编码计算机程序执行用于执行计算机过程的计算机存储介质。
在以下权利要求中的所有单元或步骤加上功能元件的对应结构、材料、动作和等同物旨在包括用于与专门要求保护的其他要求保护的元件组合地执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了本公开的描述,但是其并不旨在是穷举的或者将本公开限于所公开的形式。在不背离本公开的范围和精神的情况下,许多修改和变型对于本领域技术人员将是显而易见的。选择和描述实施例是为了最好地解释本公开的原理和实际应用,并使本领域的其他普通技术人员能够理解本公开的实施例,其中各种修改适于构思的特定用途。
因此,已经描述了本公开的各种示例性实施例,包括但不限于:
示例
示例1是一种发送器,其包括:多个发送队列,其用于对具有发送器的计算设备的多个信任执行会话的可变大小的数据分组中的明文数据块进行排队,以通过通信链路进行发送;多个缓存器,其用于对多个加密填充进行对应地缓存,所述多个加密填充用于对多个信任执行会话的可变大小的数据分组中的明文数据块进行加密;以及加密电路,其被耦合到多个发送队列和多个缓存器,以利用多个缓存器中的对应信任执行会话的加密填充将多个信任执行会话的可变大小的数据分组中的明文数据块加密为经加密的数据块,针对与数据分组的可变大小相对应的数据分组中的每个数据分组消耗可变数量的加密填充。
示例2是示例1,还包括:调度电路,其被耦合到多个发送队列和多个缓存器,以提供多个加密密钥和多个加密计数器值,所述多个加密密钥和所述多个加密计数器值被路由到多个缓存器中的对应于信任执行会话的选定缓存器,以用于针对多个缓存器中的对应于信任执行会话的选定缓存器生成额外的加密填充,以便随着在对信任执行会话的可变大小的数据分组中的数据块进行加密时消耗了多个缓存器中的对应于信任执行会话的选定缓存器的加密填充,替换多个缓存器中的对应于信任执行会话的选定缓存器的加密填充中的所消耗的加密填充。
示例3是示例2,其中,调度电路被布置为以单调递增的方式提供加密计数器值,以生成针对信任执行会话的缓存器的加密填充;并且其中,加密电路被布置为根据高级加密标准Galois/计数器模式(AES-GCM)加密来对可变大小的数据分组中的明文数据块进行加密,消耗了信任执行会话的对应缓存器中的加密填充,由此为正被加密的信任执行会话的每个数据块提供不同的初始化向量,而不管被加密的信任执行会话的数据块属于哪个可变大小的数据分组。
示例4是示例3,其中,加密电路被布置为:在小于数据分组大小阈值的明文数据块的子组中,对大于所述数据分组大小阈值的信任执行会话的数据分组中的明文数据块进行加密;并且其中,发送器还包括MAC认证电路,所述MAC认证电路与多个缓存器耦合到针对经加密的数据块的子组中的每个子组的消息认证码(MAC),并且至少两个MAC被组合成复合MAC以用于与数据分组一起发送,从而允许数据分组的接收器来认证对信任执行会话的数据分组中的经加密的数据块的子组的解密。
示例5是示例4,其中,所述可变大小的数据分组中的每个可变大小的数据分组具有大小范围在0-M字节内的分组大小,数据分组大小阈值是T字节,并且每个明文数据块是T/N字节;其中,加密电路包括N个加密引擎,所述N个加密引擎被布置为并行地对具有T字节的一个子组的明文数据块中的N个T/N字节的明文数据块进行R轮加密;其中,调度电路被布置为提供N个加密密钥和N个加密计数器值,所述N个加密秘钥和所述N个加密计数器值被路由到多个缓存器中的对应于信任执行会话的N个选定缓存器,以用于针对多个缓存器中的对应于信任执行会话的N个选定缓存器来生成N×R个额外的加密填充,以便随着在对所述信任执行会话的可变大小的数据分组中的每组N个T/N字节的明文数据块进行加密时消耗了所述多个缓存器中的对应于所述信任执行会话的所述N个选定缓存器的N×R个加密填充,替换多个缓存器中的对应于信任执行会话的N个选定缓存器的加密填充中消耗的N×R个加密填充。
示例6是示例5,其中,M等于1024,T等于64,N等于4,并且R等于14。
示例7是示例1-6中的任一项,其中,多个发送队列被布置为:对多个信任执行会话的多个请求类型的可变大小的数据分组中的明文数据块进行排队,以通过通信链路进行发送;其中,多个缓存器被布置为对多个加密填充进行对应地缓存,所述多个加密填充用于对多个信任执行会话的多个请求类型的可变大小的数据分组中的明文数据块进行加密;并且加密电路被布置为利用多个缓存器中的所述信任执行会话的对应多个请求类型的加密填充将多个信任执行会话的多个请求类型的可变大小的数据分组中的明文数据块加密为经加密的数据块,针对与数据分组的可变大小相对应的数据分组中的每个数据分组消耗可变数量的加密填充。
示例8是示例7,其中,通信链路是外围组件互连(PCI)通信链路;多个请求类型包括发布的请求类型、非发布的请求类型和完成类型;并且数据分组是转换层分组(TLP)。
示例9是一种接收器,包括:多个接收队列,其用于接收通过通信链路传送的、针对具有接收器的计算设备的多个信任执行会话的可变大小的数据分组中的经加密的数据块并对所述经加密的数据进行排队;多个缓存器,其用于对多个信任会话的多个解密填充进行对应地缓存;以及解密电路,其被耦合到多个接收队列和多个缓存器,以利用多个缓存器中的对应信任执行会话的解密填充将多个信任执行会话的可变大小的数据分组中的经加密的数据块解密为明文数据块,针对与数据分组的可变大小相对应的数据分组中的每个数据分组消耗可变数量的解密填充。
示例10是示例9,还包括:调度电路,其被耦合到多个接收队列和多个缓存器,以提供多个解密密钥和多个解密计数器值,将所述多个解密密钥和所述多个解密计数器值路由到多个缓存器中的对应于信任执行会话的选定缓存器,以用于针对多个缓存器中的对应于信任执行会话的选定缓存器生成额外的解密填充,以便随着在对信任执行会话的可变大小的数据分组中的数据块进行解密时消耗了多个缓存器中的对应于信任执行会话的选定缓存器的解密填充,替换多个缓存器中的对应于信任执行会话的选定缓存器的解密填充中的所消耗的解密填充。
示例11是示例10,其中,可变大小的数据分组中的经加密的数据块是使用不同的单调递增的加密计数器值进行高级加密标准Galois/计数器模式(AES-GCM)加密的,从而针对待加密的信任执行会话的每个数据块提供不同的初始化向量,而不管待加密的信任执行会话的数据块属于哪个可变大小的数据分组;并且其中,被提供用于为信任执行会话的缓存器生成解密填充的解密计数器值针对信任执行会话是类似地单调递增的。
示例12是示例11,其中,大于数据分组大小阈值的信任执行会话的数据分组被分成至少两组数据块,其中每组的对应经加密的数据块具有消息认证码(MAC),并且至少两个MAC被组合以形成与数据分组一起发送的复合MAC;并且其中,接收器还包括MAC认证电路,所述MAC认证电路与多个缓存器相耦合以针对信任执行会话的数据分组的经解密的数据块的对应组对称地生成解密MAC,并且组合成解密MAC以形成复合解密MAC,从而与和数据分组一起发送的复合MAC进行比较,以对信任执行会话的数据分组的解密进行认证。
示例13是示例12,其中,可变大小的数据分组中的每个可变大小的数据分组具有大小范围在0-M字节内的分组大小,数据分组大小阈值是T字节,并且每个经加密的数据块是T/N字节;其中,解密电路包括N个解密引擎,所述N个解密引擎被布置为并行地对具有T字节的一个子组的经加密的数据块中的N个T/N字节的经加密的数据块进行R轮解密;其中,调度电路被布置为提供N个解密密钥和N个解密计数器值,所述N个解密秘钥和所述N个解密计数器值被路由到多个缓存器中的对应于信任执行会话的N个选定缓存器,以用于针对多个缓存器中的对应于信任执行会话的N个选定缓存器生成N×R个额外的解密填充,以便随着在对信任执行会话的可变大小的数据分组的每组N个T/N字节的经加密的数据块进行解密时消耗了多个缓存器中的对应于信任执行会话的N个选定缓存器的N×R个解密填充,替换多个缓存器中的对应于信任执行会话的N个选定缓存器的解密填充中消耗的N×R个解密填充。
示例14是示例13,其中,M等于1024,T等于64,N等于4,并且R等于14。
示例15是示例9-14中的任一项,其中,多个接收队列被布置为:对通过通信链路接收的多个信任执行会话的多个请求类型的可变大小的数据分组中的经加密的数据块进行排队;其中,多个缓存器被布置为对多个解密填充进行对应地缓存,所述多个解密填充用于对所述多个信任执行会话的多个请求类型的可变大小的数据分组中的经加密的数据块进行解密;并且解密电路被布置为利用多个缓存器中的信任执行会话的对应多个请求类型的解密填充将多个信任执行会话的多个请求类型的可变大小的数据分组中的经加密的数据块解密为明文数据块,针对与数据分组的可变大小相对应的数据分组中的每个数据分组消耗可变数量的解密填充。
示例16是示例15,其中,通信链路是外围组件互连(PCI)通信链路;多个请求类型包括发布的请求类型、非发布的请求类型和完成类型;以及数据分组是转换层分组(TLP)。
示例17是一种用于对要通过通信链路发送的数据分组中的一个或多个明文数据块进行加密的方法,包括:由与通信链路相关联的发送器,至少部分地基于数据分组的大小,从加密填充存储缓存器中取回一个或多个加密填充;由发送器,使用所取回的一个或多个加密填充,根据高级加密标准(AES)Galois计数器模式(GCM)加密,对数据分组中的一个或多个明文数据块进行加密,以生成一个或多个对应密文数据块;在加密的同时,由发送器,使用一个或多个单调递增的计数器值作为生成一个或多个补充加密填充的一个或多个初始化向量,并行地生成针对加密填充存储缓存器的一个或多个加密填充,以补充已使用的一个或多个加密填充;以及由发送器通过通信链路按其生成(generations)发送一个或多个对应密文数据块。
示例18是示例17,其中,数据分组与具有发送器的计算设备的多个信任执行会话中的一个信任执行会话相关联,并且其中,加密填充存储缓存器与一个信任执行会话相对应地相关联。
示例19是示例17,其中,数据分组是多个请求类型中的第一请求类型的,并且其中,加密填充存储缓存器与第一请求类型对应地相关联。
示例20是示例17,其中,取回包括取回n个加密填充用于并行地对n个数据块进行加密;加密包括使用所取回的n个加密填充并行地对n个数据块进行加密;并且生成包括在加密的同时使用针对n个初始化向量的n个单调递增的计数器值并行地生成n个加密填充,以补充已使用的n个加密填充。
示例21是示例17-20中的任一项,其中,通信链路是外围组件互连(PCI)通信链路,并且数据分组是事务层分组(TLP)。
示例22是一种用于对通过通信链路接收到的数据分组中的经加密的数据块进行解密和认证的方法,包括:由与通信链路相关联的接收器,通过通信链路连续地接收数据分组的多个经加密的数据大块,每个经加密的数据大块具有一个或多个经加密的数据块;由接收器通过通信链路接收与数据分组相关联的参考消息认证码(MAC);由接收器对连续接收到的每个经加密的数据大块的一个或多个经加密的数据块进行解密,以生成多个经解密的数据大块,每个经解密的数据大块具有与对应经加密的数据大块的一个或多个经加密的数据块相对应的一个或多个经解密的数据块;由接收器针对每个经解密的数据大块按其生成连续生成消息认证码(MAC);由接收器利用函数对连续生成的MAC进行累积,从而为数据分组生成累积的MAC;以及由接收器将生成的累积MAC与参考MAC进行比较,从而对经解密的数据分组进行认证。
示例23是示例22,其中,数据分组与具有发送器的计算设备的多个信任执行会话中的一个信任执行会话相关联,发送器通过通信链路发送数据分组,并且接收器与计算设备的硬件加速器相关联。
示例24是22,其中,通信链路是外围组件互连(PCI)通信链路,数据分组是事务层分组(TLP),并且具有非发布的、发布的或完成请求类型。
示例25是示例22,其中,解密包括:由接收器,根据高级加密标准(AES)Galois计数器模式(GCM)来解密,对连续接收到的每个经加密的数据大块的一个或多个经加密的数据块进行解密,以生成多个经解密的数据大块。
一个或多个实现方式的前述描述提供了例示说明和描述,但是并不旨在穷举或者将实施例的范围限制为所公开的精确形式。鉴于以上教导,修改和变型是可能的,或者可以从各种实施例的实践中获得。
Claims (25)
1.一种发送器,包括:
多个发送队列,其用于对具有所述发送器的计算设备的多个信任执行会话的可变大小的数据分组中的明文数据块进行排队,以通过通信链路进行发送;
多个缓存器,其用于对多个加密填充进行对应地缓存,所述多个加密填充用于对所述多个信任执行会话的可变大小的数据分组中的明文数据块进行加密;以及
加密电路,其被耦合到所述多个发送队列和所述多个缓存器,以利用所述多个缓存器中的对应信任执行会话的加密填充将所述多个信任执行会话的可变大小的数据分组中的明文数据块加密为经加密的数据块,针对与所述数据分组的可变大小相对应的数据分组中的每个数据分组消耗可变数量的加密填充。
2.根据权利要求1所述的发送器,还包括:调度电路,其被耦合到所述多个发送队列和所述多个缓存器,以提供多个加密密钥和多个加密计数器值,所述多个加密密钥和所述多个加密计数器值被路由到所述多个缓存器中的对应于信任执行会话的选定缓存器,以用于针对所述多个缓存器中的对应于所述信任执行会话的所述选定缓存器生成额外的加密填充,以便随着在对所述信任执行会话的可变大小的数据分组中的数据块进行加密时消耗了所述多个缓存器中的对应于所述信任执行会话的所述选定缓存器的加密填充,替换所述多个缓存器中的对应于所述信任执行会话的所述选定缓存器的加密填充中的所消耗的加密填充。
3.根据权利要求2所述的发送器,其中,所述调度电路被布置为以单调递增的方式提供所述加密计数器值,以生成针对所述信任执行会话的所述缓存器的加密填充;并且其中,所述加密电路被布置为根据高级加密标准Galois/计数器模式(AES-GCM)加密来对所述可变大小的数据分组中的明文数据块进行加密,消耗了所述信任执行会话的对应缓存器中的加密填充,由此针对正被加密的信任执行会话的每个数据块提供不同的初始化向量,而不管正被加密的所述信任执行会话的数据块属于哪个可变大小的数据分组。
4.根据权利要求3所述的发送器,其中,所述加密电路被布置为:在小于数据分组大小阈值的明文数据块的子组中,对大于所述数据分组大小阈值的信任执行会话的数据分组中的明文数据块进行加密;并且其中,所述发送器还包括MAC认证电路,所述MAC认证电路与所述多个缓存器耦合到针对所述经加密的数据块的子组中的每个子组的消息认证码(MAC),并且将至少两个MAC组合成复合MAC以用于与所述数据分组一起发送,从而允许所述数据分组的接收器对所述信任执行会话的数据分组中的经加密的数据块的子组的解密进行认证。
5.根据权利要求4所述的发送器,其中,所述可变大小的数据分组中的每个可变大小的数据分组具有大小范围在0-M字节内的分组大小,所述数据分组大小阈值是T字节,并且每个明文数据块是T/N字节;其中,所述加密电路包括N个加密引擎,所述N个加密引擎被布置为并行地对具有T字节的一个子组的明文数据块中的N个T/N字节的明文数据块进行R轮加密;其中,所述调度电路被布置为提供N个加密密钥和N个加密计数器值,所述N个加密秘钥和所述N个加密计数器值被路由到所述多个缓存器中的对应于所述信任执行会话的N个选定缓存器,以用于针对所述多个缓存器中的对应于所述信任执行会话的所述N个选定缓存器生成N×R个额外的加密填充,以便随着在对所述信任执行会话的可变大小的数据分组中的每组N个T/N字节的明文数据块进行加密时消耗了所述多个缓存器中的对应于所述信任执行会话的所述N个选定缓存器的N×R个加密填充,替换所述多个缓存器中的对应于所述信任执行会话的N个选定缓存器的加密填充中消耗的N×R个加密填充。
6.根据权利要求5所述的发送器,其中,M等于1024,T等于64,N等于4,并且R等于14。
7.根据权利要求1-6中的任一项所述的发送器,其中,所述多个发送队列被布置为:对所述多个信任执行会话的多个请求类型的可变大小的数据分组中的明文数据块进行排队,以通过所述通信链路进行发送;其中,所述多个缓存器被布置为对多个加密填充进行对应地缓存,所述多个加密填充用于对所述多个信任执行会话的多个请求类型的可变大小的数据分组中的明文数据块进行加密;并且所述加密电路被布置为利用所述多个缓存器中的所述信任执行会话的对应多个请求类型的加密填充将所述多个信任执行会话的多个请求类型的可变大小的数据分组中的明文数据块加密为经加密的数据块,针对与所述数据分组的可变大小相对应的数据分组中的每个数据分组,消耗可变数量的加密填充。
8.根据权利要求7所述的发送器,其中,所述通信链路是外围组件互连(PCI)通信链路;所述多个请求类型包括发布的请求类型、非发布的请求类型和完成类型;并且所述数据分组是转换层分组(TLP)。
9.一种接收器,包括:
多个接收队列,其用于接收通过通信链路传送的、针对具有所述接收器的计算设备的多个信任执行会话的可变大小的数据分组中的经加密的数据块并对所述经加密的数据块进行排队;
多个缓存器,其用于对针对所述多个信任执行会话的多个解密填充进行对应地缓存;以及
解密电路,其被耦合到所述多个接收队列和所述多个缓存器,以利用针对所述多个缓存器中的对应信任执行会话的解密填充将所述多个信任执行会话的可变大小的数据分组中的经加密的数据块解密为明文数据块,针对与所述数据分组的可变大小相对应的数据分组中的每个数据分组消耗可变数量的解密填充。
10.根据权利要求9所述的接收器,还包括:调度电路,其被耦合到所述多个接收队列和所述多个缓存器,以提供多个解密密钥和多个解密计数器值,所述多个解密密钥和所述多个解密计数器值被路由到所述多个缓存器中的对应于信任执行会话的选定缓存器,以用于针对所述多个缓存器中的对应于所述信任执行会话的所述选定缓存器生成额外的解密填充,以便随着在对所述信任执行会话的可变大小的数据分组中的数据块进行解密时消耗了所述多个缓存器中的对应于所述信任执行会话的所述选定缓存器的解密填充,替换所述多个缓存器中的对应于所述信任执行会话的所述选定缓存器的解密填充中的所消耗的解密填充。
11.根据权利要求10所述的接收器,其中,所述可变大小的数据分组中的经加密的数据块是使用不同的单调递增的加密计数器值进行高级加密标准Galois/计数器模式(AES-GCM)加密的,以针对待加密的信任执行会话的每个数据块提供不同的初始化向量,而不管待加密的信任执行会话的数据块属于哪个可变大小的数据分组;并且其中,被提供用于针对所述信任执行会话的缓存器生成解密填充的解密计数器值针对所述信任执行会话是类似地单调递增的。
12.根据权利要求11所述的接收器,其中,大于数据分组大小阈值的信任执行会话的数据分组被分成至少两组数据块,其中每组的对应经加密的数据块具有消息认证码(MAC),并且至少两个MAC被组合以形成与数据分组一起发送的复合MAC;并且其中,所述接收器还包括MAC认证电路,所述MAC认证电路与所述多个缓存器相耦合以针对所述信任执行会话的数据分组中的经解密的数据块的对应组对称地生成解密MAC,并且被组合成解密MAC以形成复合解密MAC,从而与和所述数据分组一起发送的复合MAC进行比较,以对所述信任执行会话的数据分组的解密进行认证。
13.根据权利要求12所述的接收器,其中,所述可变大小的数据分组中的每个可变大小的数据分组具有大小范围在0-M字节内的分组大小,所述数据分组大小阈值是T字节,并且每个经加密的数据块是T/N字节;其中,所述解密电路包括N个解密引擎,所述N个解密引擎被布置为并行地对具有T字节的一个子组的经加密的数据块中的N个T/N字节的经加密的数据块进行R轮解密;其中,所述调度电路被布置为提供N个解密密钥和N个解密计数器值,所述N个解密秘钥和所述N个解密计数器值被路由到所述多个缓存器中的对应于所述信任执行会话的N个选定缓存器,以用于针对所述多个缓存器中的对应于所述信任执行会话的所述N个选定缓存器生成N×R个额外的解密填充,以便随着在对所述信任执行会话的可变大小的数据分组中的每组N个T/N字节的经加密的数据块进行解密时消耗了所述多个缓存器中的对应于所述信任执行会话的所述N个选定缓存器的N×R个解密填充,替换所述多个缓存器中的对应于所述信任执行会话的所述N个选定缓存器的解密填充中消耗的N×R个解密填充。
14.根据权利要求13所述的接收器,其中,M等于1024,T等于64,N等于4,并且R等于14。
15.根据权利要求9-14中的任一项所述的接收器,其中,所述多个接收队列被布置为:对通过所述通信链路接收的所述多个信任执行会话的多个请求类型的可变大小的数据分组中的经加密的数据块进行排队;其中,所述多个缓存器被布置为对多个解密填充进行对应地缓存,所述多个解密填充用于对所述多个信任执行会话的多个请求类型的可变大小的数据分组中的经加密的数据块进行解密;并且所述解密电路被布置为利用所述多个缓存器中的所述信任执行会话的对应多个请求类型的解密填充将所述多个信任执行会话的多个请求类型的可变大小的数据分组中的经加密的数据块解密为明文数据块,针对与所述数据分组的可变大小的相对应的数据分组中的每个数据分组消耗可变数量的解密填充。
16.根据权利要求15所述的接收器,其中,所述通信链路是外围组件互连(PCI)通信链路;所述多个请求类型包括发布的请求类型、非发布的请求类型和完成类型;并且所述数据分组是转换层分组(TLP)。
17.一种用于对要通过通信链路发送的数据分组中的一个或多个明文数据块进行加密的方法,包括:
由与所述通信链路相关联的发送器,至少部分地基于所述数据分组的大小,从加密填充存储缓存器中取回一个或多个加密填充;
由所述发送器使用所取回的一个或多个加密填充,根据高级加密标准(AES)Galois计数器模式(GCM)加密,来对所述数据分组中的一个或多个明文数据块进行加密,以生成一个或多个对应密文数据块;
在加密的同时,由所述发送器使用一个或多个单调递增的计数器值作为生成一个或多个补充加密填充的一个或多个初始化向量,并行地生成针对所述加密填充存储缓存器的一个或多个加密填充,以补充已使用的一个或多个加密填充;以及
由所述发送器通过所述通信链路按其生成发送所述一个或多个对应密文数据块。
18.根据权利要求17所述的方法,其中,所述数据分组与具有所述发送器的计算设备的多个信任执行会话中的一个信任执行会话相关联,并且其中,所述加密填充存储缓存器与所述一个信任执行会话对应地相关联。
19.根据权利要求17所述的方法,其中,所述数据分组是多个请求类型中的第一请求类型的,并且其中,所述加密填充存储缓存器与所述第一请求类型对应地相关联。
20.根据权利要求17所述的方法,其中,取回包括取回n个加密填充用于并行地对n个数据块进行加密;加密包括使用所取回的n个加密填充并行地对所述n个数据块进行加密;并且生成包括在加密的同时使用针对n个初始化向量的n个单调递增的计数器值并行地生成n个加密填充,以补充已使用的n个加密填充。
21.根据权利要求17-20中的任一项所述的方法,其中,所述通信链路是外围组件互连(PCI)通信链路,并且所述数据分组是事务层分组(TLP)。
22.一种用于对通过通信链路接收到的数据分组中的经加密的数据块进行解密和认证的方法,包括:
由与所述通信链路相关联的接收器,通过所述通信链路连续地接收数据分组中的多个经加密的数据大块,每个经加密的数据大块具有一个或多个经加密的数据块;
由所述接收器通过所述通信链路接收与所述数据分组相关联的参考消息认证码(MAC);
由所述接收器对连续接收到的每个经加密的数据大块的所述一个或多个经加密的数据块进行解密,以生成多个经解密的数据大块,每个经解密的数据大块具有与对应经加密的数据大块中的所述一个或多个经加密的数据块相对应的一个或多个经解密的数据块;
由所述接收器针对每个经解密的数据大块按其生成连续生成消息认证码(MAC);
由所述接收器利用函数对连续生成的MAC进行累积,以针对所述数据分组生成累积的MAC;以及
由所述接收器将所生成的累积的MAC与参考MAC进行比较,以对经解密的数据分组进行认证。
23.根据权利要求22所述的方法,其中,所述数据分组与具有发送器的计算设备的多个信任执行会话中的一个信任执行会话相关联,所述发送器通过所述通信链路来发送所述数据分组,并且所述接收器与所述计算设备的硬件加速器相关联。
24.根据权利要求22所述的方法,其中,所述通信链路是外围组件互连(PCI)通信链路,所述数据分组是事务层分组(TLP),并且具有非发布的请求类型、发布的请求类型或完成请求类型。
25.根据权利要求22-24中的任一项所述的方法,其中,解密包括:由所述接收器根据高级加密标准(AES)Galois计数器模式(GCM)解密,对连续接收到的每个经加密的数据大块中的所述一个或多个经加密的数据块进行解密,以生成所述多个经解密的数据大块。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962873635P | 2019-07-12 | 2019-07-12 | |
US62/873,635 | 2019-07-12 | ||
US16/657,902 US11394531B2 (en) | 2019-07-12 | 2019-10-18 | Overhead reduction for link protection |
US16/657,902 | 2019-10-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112217630A true CN112217630A (zh) | 2021-01-12 |
Family
ID=69406499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010222960.8A Pending CN112217630A (zh) | 2019-07-12 | 2020-03-26 | 用于链路保护的开销减少 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11394531B2 (zh) |
EP (1) | EP3751781B1 (zh) |
CN (1) | CN112217630A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113870416A (zh) * | 2021-09-24 | 2021-12-31 | 埃洛克航空科技(北京)有限公司 | 基于全链路加密的三维实景模型展示方法以及相关装置 |
CN114089719A (zh) * | 2021-10-27 | 2022-02-25 | 卡斯柯信号有限公司 | 用于tacs系统的车辆信号接口仿真验证方法与装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11347895B2 (en) * | 2019-12-03 | 2022-05-31 | Aptiv Technologies Limited | Method and system of authenticated encryption and decryption |
US20220416997A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Handling unaligned transactions for inline encryption |
US20210319143A1 (en) * | 2021-06-25 | 2021-10-14 | Intel Corporation | Memory bus link authentication and encryption mechanisms for hardware-based replay protection |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409558B2 (en) | 2004-09-02 | 2008-08-05 | International Business Machines Corporation | Low-latency data decryption interface |
KR100675837B1 (ko) * | 2004-12-13 | 2007-01-29 | 한국전자통신연구원 | 고속 gcm-aes 블록 암호화 장치 및 방법 |
CN101313509A (zh) | 2005-11-23 | 2008-11-26 | 皇家飞利浦电子股份有限公司 | 多通道高速加密和解密 |
US9209967B2 (en) * | 2007-03-12 | 2015-12-08 | Exelis, Inc. | Precalculated encryption key |
US20080208758A1 (en) * | 2008-03-03 | 2008-08-28 | Spiker Norman S | Method and apparatus for secure transactions |
US20170180116A1 (en) | 2015-12-22 | 2017-06-22 | Kirk S. Yap | End-to-end protection scheme involving encrypted memory and storage |
US10540297B2 (en) * | 2017-08-03 | 2020-01-21 | Arm Limited | Memory organization for security and reliability |
US10708199B2 (en) * | 2017-08-18 | 2020-07-07 | Missing Link Electronics, Inc. | Heterogeneous packet-based transport |
US10755156B2 (en) * | 2018-12-14 | 2020-08-25 | Intel Corporation | Configurable integrity protected link for secure accelerator communication |
US11171955B2 (en) * | 2019-03-11 | 2021-11-09 | Intel Corporation | Link protection for trusted input/output devices |
US11658808B2 (en) * | 2019-08-21 | 2023-05-23 | Arm Limited | Re-encryption following an OTP update event |
-
2019
- 2019-10-18 US US16/657,902 patent/US11394531B2/en active Active
-
2020
- 2020-03-13 EP EP20162935.9A patent/EP3751781B1/en active Active
- 2020-03-26 CN CN202010222960.8A patent/CN112217630A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113870416A (zh) * | 2021-09-24 | 2021-12-31 | 埃洛克航空科技(北京)有限公司 | 基于全链路加密的三维实景模型展示方法以及相关装置 |
CN114089719A (zh) * | 2021-10-27 | 2022-02-25 | 卡斯柯信号有限公司 | 用于tacs系统的车辆信号接口仿真验证方法与装置 |
CN114089719B (zh) * | 2021-10-27 | 2024-03-29 | 卡斯柯信号有限公司 | 用于tacs系统的车辆信号接口仿真验证方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200052892A1 (en) | 2020-02-13 |
US11394531B2 (en) | 2022-07-19 |
EP3751781B1 (en) | 2024-06-12 |
EP3751781A1 (en) | 2020-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3706005B1 (en) | Secure stream protocol for serial interconnect | |
EP3751781B1 (en) | Overhead reduction for link protection | |
US10755156B2 (en) | Configurable integrity protected link for secure accelerator communication | |
US11169935B2 (en) | Technologies for low-latency cryptography for processor-accelerator communication | |
CN112422492A (zh) | 通过计算机总线的完整性和数据加密(ide) | |
US10404674B1 (en) | Efficient memory management in multi-tenant virtualized environment | |
US11593529B2 (en) | Device interface security management for computer buses | |
US11405213B2 (en) | Low latency post-quantum signature verification for fast secure-boot | |
US10027640B2 (en) | Secure data re-encryption | |
US10715332B2 (en) | Encryption for transactions in a memory fabric | |
US11533170B2 (en) | Hardware mechanisms for link encryption | |
Shreejith et al. | Security aware network controllers for next generation automotive embedded systems | |
CN111566987B (zh) | 数据处理方法、电路、终端设备及存储介质 | |
WO2020163977A1 (en) | Virtual flash | |
US20220109558A1 (en) | Xmss management to address randomized hashing and federal information processing standards | |
US20210297243A1 (en) | Permutation cipher encryption for processor-accelerator memory mapped input/output communication | |
US20240106644A1 (en) | Mitigation of side channel attacks on platform interconnects using endpoint hardware based detection, synchronization and re-keying | |
CN115516454B (zh) | 硬件安全模块和系统 | |
US20220345450A1 (en) | Method, electronic device, and program product implemented at an edge switch for data encryption | |
US20240031127A1 (en) | Lightweight side-channel protection for polynomial multiplication in post-quantum signatures | |
US10298550B2 (en) | Packet flow in an overlay network |
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 |