CN113839770A - 用于tls分组加密和解密的高吞吐量后量子aes-gcm引擎 - Google Patents
用于tls分组加密和解密的高吞吐量后量子aes-gcm引擎 Download PDFInfo
- Publication number
- CN113839770A CN113839770A CN202011524906.5A CN202011524906A CN113839770A CN 113839770 A CN113839770 A CN 113839770A CN 202011524906 A CN202011524906 A CN 202011524906A CN 113839770 A CN113839770 A CN 113839770A
- Authority
- CN
- China
- Prior art keywords
- galois field
- aes
- calculating
- key
- segment
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/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/0852—Quantum cryptography
-
- 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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Electromagnetism (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Storage Device Security (AREA)
Abstract
在一个示例中,一种装置包括:输入寄存器,用于接收传输层数据分组的至少一部分;加密/解密流水线,通信地耦合到输入寄存器,并且包括:第一分段,包括高级加密标准(AES)引擎集合,该AES引擎集合至少包括:第一AES引擎,用于对来自传输层数据分组的至少一部分的输入数据执行加密和/或解密操作;第二AES引擎,用于确定验证密钥;以及第三AES引擎,用于确定验证标签掩码;第二分段,包括Galois域乘法器的第一集合,该Galois域乘法器的第一集合至少包括用于计算验证密钥的第一倍数的第一Galois域乘法器;第三分段,包括用于计算第一部分验证标签的Galois域乘法器的第二集合;以及第四分段,包括用于计算第二部分验证标签和最终验证标签的处理电路。
Description
技术领域
本文所述的主题总体上涉及计算机安全领域,并且更具体地涉及用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎。
背景技术
在云计算系统中,机密信息被许多不同的信息处理系统存储和使用,并且在许多不同的信息处理系统之间发送。云计算环境需要机密性和完整性/验证二者,以在通过网络业务传输期间保护敏感数据。传输层安全性(TLS)是用于保护网络业务的已知协议。最近,TLS已经配备了后量子安全性,以使该协议能够稳健抵抗量子计算机的攻击。在一个示例中,将BIKE(位翻转密钥封装)和SIKE(超奇异同源密钥封装)算法合并到TLS协议中,以在客户端和服务器之间建立公共密钥。然后,可以将256位秘密密钥用于由使用AES-256的AES-GCM加密的海量数据通信。在公共云环境中,数百万个客户端可以被同时连接(例如,通过网络接口卡(NIC)),这需要具有数百万个不同秘密密钥的高吞吐量AES-GCM加密/解密。
因此,实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量量子高级加密标准Galois/计数器模式(AES-GCM)引擎的技术可以在例如基于计算机的通信系统和方法中找到效用。
附图说明
参考附图描述具体实施方式。
图1是根据实施例的在其中可以实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的系统和方法的处理环境的示意图。
图2是根据实施例的包括支持用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的示例平台的示例系统的简化框图。
图3是根据实施例的可以适于实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的计算系统的至少一个实施例的简化框图。
图4是根据一些实施例的实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的架构的示意图。
图5是示出了根据一些实施例的实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的方法中的操作的流程图。
图6是根据一些实施例的实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的方法中支持的部分块的示意图。
图7是根据一些实施例的可以适于实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的计算架构的示意图。
具体实施方式
本文描述的是实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的示例性系统和方法。在下面描述中,阐述了许多具体细节以提供对各种示例的透彻理解。然而,本领域技术人员将理解,可以在没有具体细节的情况下实践各种示例。在其他情况下,公知的方法、过程、组件和电路未被详细示出或描述,以免模糊示例。
示例云计算环境
图1是根据实施例的在其中可以实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的系统和方法的处理环境的示意图。参考图1,系统100可以包括计算平台120。在一个实施例中,计算平台120包括用于提供云计算服务的一个或多个主机计算机服务器。计算平台120可以包括(但不限于)服务器计算机(例如,云服务器计算机等)、台式计算机、基于集群的计算机、机顶盒(例如,基于互联网的有线电视机顶盒等)等。计算平台120包括操作系统(“OS”)106,该操作系统106用作计算平台120的一个或多个硬件/物理资源与一个或多个客户端设备130A-130N等之间的接口。计算平台120还包括(一个或多个)处理器102、存储器104、输入/输出(“I/O”)源108,诸如触摸屏、触摸面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标等。
在一个实施例中,主机机构101可以进一步采用通过主机机构101与客户端设备130A-N通信接口连接的生产环境。客户端设备130A-N可以包括(但不限于)基于客户机构的服务器计算机、台式机计算机、膝上型计算机、移动计算平台(诸如智能手机、平板电脑、个人数字助理)、电子阅读器、媒体互联网设备、智能电视、电视平台、可穿戴设备(例如,眼镜、手表、手镯、智能卡、珠宝、服装物品等)、媒体播放器、基于全球定位系统的导航系统、电缆设置盒等。
在一个实施例中,所示的数据库系统150包括(一个或多个)数据库140,以存储(但不限于)表示客户机构121A-N(例如,数据库系统150的租户或其关联用户)的信息、关系表、数据集以及其中具有租户和用户数据的基础数据库记录。在替代实施例中,可以使用客户端-服务器计算架构来代替数据库系统150,或替代地,可以使用计算网格或工作服务器池、或托管计算架构的某种组合来执行计算工作负载和主机机构101期望的处理。
所示数据库系统150被示出为包括实现例如主机机构101内的数据库功能和代码执行环境的基础硬件、软件和逻辑元件145中的一个或多个。根据一个实施例,数据库系统150进一步实现数据库140以服务数据库查询和与数据库140的其他数据交互。在一个实施例中,数据库系统150的硬件、软件和逻辑元件145及其其他元件(诸如分布式文件存储、查询接口等等)可以与客户机构(121A-121N)分离并且不同,客户机构(121A-121N)通过经由(一个或多个)网络135(例如,云网络、因特网等)与主机机构101通信地接口连接,来利用主机机构101提供的服务。以此方式,主机机构101可以实现按需服务、按需数据库服务、云计算服务等,以订阅客户机构121A-121N。
在一些实施例中,主机机构101通过一个或多个网络135从多个客户机构121A-N接收输入和其他请求;例如,可以从客户机构121A-N接收输入搜索查询、数据库查询、应用编程接口(“API”)请求、与显示的图形用户界面的交互以及在客户端设备130A-N处的显示、或者其他输入,以被处理来通过查询接口对数据库系统150进行查询并被存储在分布式文件存储中,然后根据其将结果返回给发起者或请求者,诸如任意客户机构121A-N的客户端设备130A-N的用户。
如前所述,在一个实施例中,每个客户机构121A-N可以包括选自如下组的实体:该组包括分离且不同的远程机构、主机机构101内的机构组、主机机构101的业务伙伴、订阅由主机机构101等提供的云计算服务的客户机构121A-N等。
在一个实施例中,在主机机构101内的服务器处接收请求或将请求提交给主机机构101内的服务器。主机机构101可以接收各种请求以由主机机构101及其数据库系统150处理。例如,在服务器处接收的输入请求服务器上的服务器可以指定主机机构101的哪些服务要被提供,诸如查询请求、搜索请求、状态请求、数据库事务、图形用户界面请求和交互、代表客户机构121A-N中的一个来检索,更新或存储数据的处理请求、代码执行请求等。此外,主机机构101处的服务器可以代表查询接口负责经由(一个或多个)网络135从各种客户机构121A-N接收请求,并负责向一个或多个终端用户客户端设备130A-N或发起此类数据请求的机器提供基于网络(web)的接口或其他图形显示。
此外,主机机构101可以通过服务器实现请求接口或作为独立接口来从客户端设备130A-N接收请求分组或其他请求。请求接口可以进一步支持从主机机构101向一个或多个客户端设备130A-N返回响应分组或其他沿传出方向上的应答和响应。
要注意的是,诸如“节点”、“计算节点”、“服务器”、“服务器设备”、“云计算机”、“云服务器”、“云服务器计算机”、“机器”、“主机”、“设备”、“计算平台”、“计算机”、“计算系统”、“多租户按需数据系统”等的术语可以贯穿本文件互换地使用。还应注意,诸如“代码”、“软件代码”、“应用”、“软件应用”、“程序”、“软件程序”、“分组”、“软件代码”、“代码”和“软件分组”的术语可以贯穿本文件互换地使用。此外,诸如“工作”、“输入”、“请求”和“消息”的术语可以贯穿本文件互换地使用。
图2是根据实施例的包括支持可信执行感知硬件调试和可管理性的示例主机系统计算平台120的示例系统的简化框图。参考图2的示例,计算平台120可以包括一个或多个处理器设备205、一个或多个存储器元件210以及以硬件和/或软件实现的其他组件,包括操作系统215和应用集合(例如,220、225、230)。一个或多个应用可以在使用例如安全飞地(secure enclave)235或应用飞地(application enclave)的可信执行环境中实现。安全飞地可以使用安全存储器240(相对于通用存储器245)实现,并利用计算平台120的至少一个处理器(例如,205)的安全处理功能来实现代码和数据的专用区域,以提供应用的安全或受保护执行。以计算平台的固件和/或软件(例如,主机的CPU的代码)实现的逻辑可以被提供在计算平台120上,计算平台120可以由计算平台本地的应用或其他代码利用,以留出代码和数据的专用区域,这些区域应受高度安全性的保证,以在系统上实现一个或多个安全飞地。例如,安全飞地可以用来保护敏感数据,防止被在较高特权级别运行的恶意软件的未经授权的访问或修改,并保护敏感代码和数据的机密性和完整性,而不会破坏合法系统软件调度和管理平台资源的使用的能力。安全飞地可以使能应用定义代码和数据的安全区域,即使在攻击者物理控制了平台并能够对存储器进行直接攻击时,该安全飞地也可以维持机密性。安全飞地能够进一步允许主机设备(例如,计算平台120)的消费者保留对其平台的控制,包括他们选择安装和卸载应用和服务的自由。安全飞地还可以使得计算平台200能够对应用的可信代码进行测量,并生成根植于处理器中的签名认证,其包括该测量和其他证明,该其他证明是代码已在可信任执行环境中被正确初始化(并且能够提供安全飞地的安全特征,诸如上面的示例中概述)。
简要地转向图3,应用飞地(例如,235)能够保护给定应用230的全部或一部分,并允许对应用230及其安全性特征进行认证。例如,后端系统280中的服务提供商(诸如,后端服务或Web服务)可能偏好或要求与之接口连接的客户端具有某些安全性特征或保证,使得后端系统280能够验证其正在与客户端所说的客户进行交易。例如,恶意软件(例如305)有时可以被构建成欺骗用户或应用的身份,以尝试从与后端系统280的交易中提取敏感数据,感染与后端系统280的交易或以其他方式对与后端系统280的交易进行恶意行为。签名认证(或简单地“认证”)能够允许应用(例如,230)验证它是该应用的合法实例(即,不是恶意软件)。未配备安全应用飞地的其他应用(例如,220)可能是合法的,但可能无法向后端系统280进行证明,从而使服务提供商在某种程度上怀疑应用的真实性和可信性。此外,计算平台(例如,200)能够被仿真(例如,通过仿真器310),以尝试与后端系统280进行错误交易。通过安全飞地的认证能够防止这种不安全、恶意和错误的交易。
返回到图2,可以基于使用在平台上安全地提供的认证密钥来签名的签名数据或“引文”来提供认证。可以提供其他安全飞地(即,与安全应用飞地235分离),来测量或评估应用及其飞地235,对测量进行签名(在引文中包括的),并协助配置具有密钥的一个或多个飞地,其中该密钥用于签署引文,并在飞地之间或飞地与外部服务(例如,后端系统280、认证系统105、配给系统130、后端系统140之间建立安全通信信道。例如,可以提供一个或多个配给飞地255以与相应的配给系统接口连接,以获得供引用飞地255和/或应用飞地使用的认证密钥。可以提供一个或多个应用飞地255以可靠地测量或评估应用230和/或相应的应用飞地235,并使用通过相应的配给飞地250获得的认证密钥来对测量进行签名。还可以提供配给证明飞地260来向其相应的配给系统(例如,120)验证配给飞地(例如,250)。
配给证明飞地260能够维护配给认证密钥,该配给认证密钥基于主机平台200上持久维护的安全秘密(诸如在制造期间在平台的熔断器265中设置的秘密),以支持向配给系统290认证配给飞地250的可信性,使得配给飞地250在配给系统290将认证密钥委托给配给飞地250之前被验证。在一些实施方式中,配给证明飞地260可以证明在平台200上提供的潜在的多个配给飞地250中的任何一个的真实性和安全性。例如,可以提供多个不同的配给飞地250,每个配给飞地与其各自的配给系统接口连接,向在平台上提供的潜在的多个引用飞地之一(例如255)提供其各自的认证密钥。例如,不同的应用飞地可以在相应应用的认证期间利用不同的引用飞地,并且每个引用飞地可以利用不同的认证密钥来支持该认证,例如,经由认证系统105。此外,通过使用多个配给飞地250和例如由一个或多个配给系统130提供的配给服务,可以结合(例如,由后端系统280托管的)不同的应用和服务的认证,使用不同的密钥类型和加密技术。
在一些实施方式中,一个或多个应用和引用飞地可以利用由在平台上提供的密钥生成飞地270所生成的密钥,而不是从远程服务(例如,配给系统120)获得认证密钥。为了证明由密钥生成飞地提供的密钥的可靠性,配给证明飞地可以对密钥进行签名(例如,由密钥生成飞地随机生成的密钥对的公钥),使得通过密钥签名的引文可以被识别为合法签名引文。在一些情况下,可以在同一平台上提供密钥生成飞地(例如,270)和配给飞地(例如,250),而在其他情况下,除了其他示例和实施方式之外,密钥生成飞地(例如,270)和配给飞地(例如,250)可以被提供为另一替代(例如,仅在给定平台上提供的密钥生成飞地或配给飞地)。
高吞吐量后量子AES-GCM引擎
如上所述,云计算环境需要机密性和完整性/验证二者,以在通过网络业务传输期间保护敏感数据。传输层安全性(TLS)是用于保护网络业务的已知协议。最近,TLS已经配备了后量子安全性,以使该协议能够稳健抵抗量子计算机的攻击。在一个示例中,将BIKE(位翻转密钥封装)和SIKE(超奇异同源密钥封装)算法合并到TLS协议中,以在客户端和服务器之间建立公共密钥。然后,可以将256位秘密密钥用于由使用AES-256的AES-GCM加密的海量数据通信。在公共云环境中,数百万个客户端可以被同时连接(例如,通过网络接口卡(NIC)),这需要具有数百万个不同秘密密钥的高吞吐量AES-GCM加密/解密。
为了解决这些和其他问题,本文描述的是用于高吞吐量TLS分组处理的内联加密和验证标签生成方法的示例,其可以实时地为同时连接服务。在一些示例中,可以根据以下原理来构建AES-GCM流水线引擎以解决密钥挑战。为了在多个同时连接之间提供频繁的(即,每个时钟周期)上下文切换,从加密密钥(k)导出用于GCM中的标签计算的验证密钥(h)。一些现有系统在通过主机和加密引擎之间的握手协议进行加密和标签生成之前计算h,这为上下文切换增加了显著的延迟开销。本文所述的系统能够为每个输入数据块动态计算h,其利用数据加密延迟来隐藏该延迟并且在每个时钟中提供上下文切换的能力。为了适应输入TCP分组上可变的TLS净荷大小,连接内的TCP分组可以携带可变大小的TLS净荷(例如,60字节)。一些现有方案对静态中间输入块大小(16字节AES块的倍数)进行操作,这产生了额外的计算/延迟开销。本文描述的系统能够基于输入块大小(从1字节到64字节),使用自动填充重新配置流水线以执行加密和部分标签计算。
图4是根据一些实施例的实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的架构的示意图。参考图4,引擎400的一个示例包括具有十八(18)个内部级的流水线架构。更具体地,引擎400包括输入寄存器410以接收一系列输入。在表1中提供了用于输入的密钥。
parameter XEY_ID_SIZE=8;
//**************Definitions********************
input clk;
input tesetn;
input stall;//Pipelinewillllfreee-does not move for ward if stall=1
input encrypt;//encrypt=1 for Encryption and encrypt=0 forDecrtption
input tast_In;//Indicates thatno more datatoprocess so gerate theAuth_Tag for kid_in.
input {127:01 aad_in;//AAD input;
input aad_valid;
input[127:0]pad_in;//PAD input for the switch back on a flow a ftermore than 20 clocks withih which pipellhe is used foe other flows.s
input pad,valid;
input[3:0]valid_in;//indicates the valldity of data_in[3]for data_in1,...,{0}for data=in4
input[KEY_ID_SIZE=i:n0]kid_in;//kid for the current key
input[255:0]key_in;//Secret key,use[255:128]for key_size 0
input key_site;//O means 128 bit of key_in[127:0],1neann 256-bit
input[127:0]vtnt_in;//96bit Iv[127:32] and 32 bit counter value[310]starts from 2 and increent by 1 for each 128-bit block
input [127:0]data_in1;//Ptaintext-0 during encrypt and ciphertextduring,decrypt;within the 128-bit block we follow bitte edian
input 127:0]data_in2;//ptaintext-1 during encrypt and ciphertextduring decrypt
input[127:0]data_in3;//Plaintext-2 during encrypt and ciphertextduring decrypt
input[127:0]data_in4;//Ptaintext-3 during encrypt and ciphertextduring decrypt;form 512 bit as;{data_in1,data_in2,data_in3,data_in4}
input bypass_in;//input data will be bypassed w/o Encrypt/Decrypt andw/o utilized it in Tag computation,setkid_in=O for bypass
input partial_in;//a valid data block is partial
outputlogic bypass_out;
outputlogic partial_out;
output ogic[3:0]valid_out;//Indicates the vadity of data_out in a meorder of data_In
output logic[127:0]data_out1;//Ciphertext-0 during encrypt andPlaintext during decrypt
output logic[127:0]data_out2;//Ciphertext-1 during encrypt andPlaintext during decrypt
outputlogic[127:0]data_out3;//Ciphertext-2 during encrypt andPlatntext during decrypt
output iogic[127:0]data_out4;//Ciphertext-3 during encrypt andPlaintext during decrypt
output lgic[KEY_ID_SIZE-1:0]kid_out;//respective kid of the currentoutputs
output logic valid_pad;//indicates PAD is valid
output logic[127:0]pad_out;//128 bit Partal Authentication Data/Tag(PAD)
output logic valid_tag;//indicatas Tag is valid
putput logic[127;0]auth_tag;//128 bit Authentication Tag
表1:流水线的输入
引擎400进一步包括中间流水线级2-13 425和最终的最后一轮级435。每个级被通信地耦合到寄存器以存储输出数据。因此,级1 415被通信地耦合到级1寄存器420,级13被通信地耦合到级13寄存器430,级14 435被通信地耦合到级14寄存器440,级15 445被通信地耦合到级15寄存器450,级16 455通信耦合到级16寄存器460,级17 465被通信耦合到级17寄存器470,级18 475被通信耦合到输出寄存器480。
流水线级1至14分别在第1轮至第14轮中实现AES256加密和/或解密。流水线架构具有六(6)个并行的AES256第1轮至第14轮数据路径,其中四(4)个用于多达64字节的数据加密/解密,其中一个用于计算验证密钥(h),另一个用于计算验证标签掩码Ek(c1)。引擎400在每个周期中接收多达64字节的输入数据、16字节的附加验证数据(AAD)、32字节的加密密钥、16字节的计数器值和相关的控制信号作为输入,并使用变化的时钟周期使输入通过流水线。流水线级15包括一个组合GF(2128)乘法器,其计算h2并将输出放置在寄存器450中。流水线级16包括两个组合GF(2128)乘法器,其计算h3和h4。流水线级17包括四个组合的GF(2128)乘法器来计算(pat×h4、d1×h3、d2×h2、d3×h),其中pat表示部分验证标签,对于新的TLS记录,该部分验证标签被初始化为零,并且保持中间标签值直到由AES-GCM引擎处理的最后一个数据块,d1、d2、d3表示在64字节数据输入内从左到右写入的相应的16字节数据块。
流水线级18将流水线级17的所有乘法输出与最右边的数据块d4累加在一起,以计算新的pat值:pat=(pat×h4)^(d1×h3)^(d2×h2)^(d3×h)^d4。如果将401中的当前块被指示为TLS记录的最终/最后数据块,则该新的pat值被进一步乘以h2来计算最终标签。新的pat值和与之关联的key_id被反馈到所有先前的流水线级,如果反馈的key_id与每个级的相应key_id匹配,则它将替换各自的现有pat值。另外,流水线级18包括GF(2128)乘法器,用于执行整个TLS记录的长度和h之间的乘法。然后,它计算三件事的最终累积,以生成最终标签=(pat×h2)^(len×h)^Ek(c1),仅当级18使用last=1处理数据时,才从流水线输出该最终标签。否则,流水线将标签输出设置为零。作为流水线的输出,它生成相应的加密/解密的16字节数据、关联的新pat值、具有相应有效信号的最终标签。
引擎400利用以下控制机制。它具有停顿(stall)输入,其可以用于冻结流水线。在一些示例中,如果stall=1,则AES-GCM流水线不前进。加密信号指示操作的加密或解密模式。last_in输入信号指示没有更多数据要处理,因此为由相应输入kid识别的此TLS记录,生成最终标签。引擎400支持16字节的AAD,其与第一有效数据块的每次连接仅被应用于引擎一次。为了容纳大量的同时连接/TLS记录,引擎支持在连接之间的零延迟上下文切换。每个连接与不同的密钥(key)和key_id相关联。有时需要恢复空闲了一段时间的连接。为了支持这一点,引擎400生成部分计算的标签(或pat),其连同相应的key_id一起由驱动器/HW包装器存储。在恢复时,驱动器会使用新的有效块向引擎提供存储的pat。
图5是示出了根据一些实施例的实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的方法中的操作的流程图。参考图5,在操作510,引擎400在输入寄存器410中接收TLS分组和信令。在操作515,引擎400对在分组中接收的数据执行加密/解密操作,计算验证密钥(h),并计算验证标签掩码(Ek(c1))。如上所述,这些操作可以在流水线的级1-14中由AES256引擎实现。
在操作520,引擎计算验证密钥的第一倍数(h2),验证密钥的第二倍数(h3)和验证密钥的第三倍数(h4)。如上所述,这些操作可以在流水线的级15-16中由AES256引擎实现。在操作525,引擎计算第一部分验证标签。如上所述,这些操作可以由流水线的级17实现。
在操作530,流水线计算第二部分验证标签(pat),该第二部分验证标签(pat)连同key_id一起被提供作为流水线的先前级的反馈。此外,流水线将记录长度乘以验证密钥(h),并且计算最终验证标签(“pat”也称为“pad”)。在操作535,加密/解密的数据和输出信号被推送到流水线的输出寄存器480。如上所述,这些操作可以由流水线的级18实现。
因此,本文所述的流水线可以实现64字节/时钟的AES-GCM加密和解密,其消耗四个16字节的块作为输入,并将64字节的块形成为:{d1_in,d2_in,d3_in,d4_in},其中d1_in位于最高有效位置。在16字节的块内,数据字节的位置遵循小端格式。流水线的设置延迟基本上为零。可以在每个时钟为由密钥id(kid_in)识别的相同或不同流提供数据、IV、计数器、密钥、AAD、pat、加密等。此外,流水线支持可变数量的运行流。例如,通过在编译时设置KEY_ID_SIZE=8来参数化密钥id的大小,它能够支持最多255个运行流。kid_in=0被用于旁路模式。
在一些示例中,流水线支持旁路模式。将数据绕过加密引擎而不进行编码或解码。对于此,设置bypass_in=1和kid_in=0并使用输入数据设置相应的valid_in位。在一些示例中,流水线支持单独的块有效模式,以16字节粒度处理数据。流水线接收4位的valid_in,每个位与各自的16字节数据相关联;即,{d1_in,d2_in,d3_in,d4_in}的valid_in[3:0]。
图6是根据一些实施例的实现用于传输层安全性(TLS)分组加密和/或解密的高吞吐量后量子高级加密标准Galois/计数器模式(AES-GCM)引擎的方法中支持的部分块的示意图。参考图6,在一些示例中,流水线可以对具有任何大小的分组进行加密,而不会延迟形成完整的16字节对齐块。因此,在图6所示的示例中,周期M 600包括四个数据块612、614、616、618,而周期N包括四个数据块622、624、626、628。当部分块被发送(例如,在周期m 600中的块614处)到引擎400时,部分块614的未使用部分将设置为零,并且不需要将该块设置为partial_block。然而,相同的块计数器值(例如,块3)将在下一个周期(例如,在周期n中)被发送到引擎,以发送部分块的后半部分。周期n partial_in输入设置为1。如图6所示,在周期m中,部分块是定位为最低有效块的块,而在周期n中,部分块的其余部分将被放置在最高有效位置。
图7示出了可以适于实现如前所述的各种实施例的示例性计算架构的实施例。在各种实施例中,计算架构700可以包括或被实现为电子设备的一部分。在一些实施例中,计算架构700可以表示例如实现上述操作环境的一个或多个组件的计算机系统。在一些实施例中,计算架构700可以表示实现本文描述的一种或多种技术的DNN训练系统的一个或多个部分或组件。实施例不限于该上下文。
如本申请中所使用的,术语“系统”和“组件”以及“模块”旨在指代计算机相关实体,硬件、硬件和软件的组合、软件或执行中的软件,它们的示例可以由示例性计算架构700提供。例如,组件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一台计算机上和/或分布在两台或更多台计算机之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合以协同操作。协同可以涉及信息的单向或双向交换。例如,组件可以以在通信介质上传递的信号的形式传递信息。该信息可以被实现为分配给各种信号线的信号。在这些分配中,每个消息都是信号。然而,其他实施例可以替代地采用数据消息。这些数据消息可以通过各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构700包括各种常见的计算元件,例如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于由计算架构700实现。
如图7所示,计算架构700包括一个或多个处理器702和一个或多个图形处理器708,并且可以是单处理器台式机系统、多处理器工作站系统或具有大量处理器702或处理器核707的服务器系统。在一个实施例中,系统700是并入片上系统(SoC或SOC)集成电路内的处理平台,以用于移动设备、手持设备或嵌入式设备。
系统700的实施例可以包括基于服务器的游戏平台、游戏控制台(包括游戏和媒体控制台、移动游戏控制台、手持游戏控制台或在线游戏控制台),或者并入它们内。在一些实施例中,系统700是移动电话、智能电话、平板计算设备或移动互联网设备。数据处理系统700还可以包括、耦合于或集成在可穿戴设备内,例如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在一些实施例中,数据处理系统700是电视或机顶盒设备,其具有一个或多个处理器702以及由一个或多个图形处理器708生成的图形界面。
在一些实施例中,一个或多个处理器702各自包括一个或多个处理器核707,以处理指令,该指令在被执行时执行用于系统和用户软件的操作。在一些实施例中,一个或多个处理器核707中的每一个被配置为处理特定指令集709。在一些实施例中,指令集709可以促进复杂指令集计算(CISC)、精简指令集计算(RISC)或经由超长指令字(VLIW)的计算。多个处理器核707可以各自处理不同的指令集709,该指令集709可以包括促进对其他指令集的仿真的指令。处理器核707还可以包括其他处理设备,例如数字信号处理器(DSP)。
在一些实施例中,处理器702包括缓存存储器704。取决于架构,处理器702可以具有单个内部缓存或多级内部缓存。在一些实施例中,缓存存储器704在处理器702的各个组件之间共享。在一些实施例中,处理器702还使用外部缓存(例如,三级(L3)缓存或最后一级缓存(LLC))(未示出),它可以使用已知的缓存一致性技术在处理器核707之间共享。在处理器702中附加地包括寄存器堆706,其可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可以特定于处理器702的设计。
在一些实施例中,一个或多个处理器702与一个或多个接口总线710耦合,以在处理器702与系统中的其他组件之间传输通信信号,例如地址信号、数据信号或控制信号。在一个实施例中,接口总线710可以是处理器总线,例如一版本的直接媒体接口(DMI)总线。然而,处理器总线不限于DMI总线,并且可以包括一个或多个外围组件互连总线(例如,PCI、PCI Express)、存储器总线或其他类型的接口总线。在一个实施例中,处理器702包括集成存储器控制器716和平台控制器中枢730。存储器控制器716促进存储器设备与系统700的其他组件之间的通信,而平台控制器中枢(PCH)730经由本地I/O总线提供至I/O设备的连接。
存储器设备720可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、Flash存储器设备、相变存储器设备,或者具有适合于用作进程存储器的性能的一些其他存储器设备。在一个实施例中,存储器设备720可以操作为用于系统700的系统存储器,以存储数据722和指令721,以便在一个或多个处理器702执行应用或进程时使用。存储器控制器中枢716还与可选的外部图形处理器712耦合,外部图形处理器712可以与处理器702中的一个或多个图形处理器708通信,以执行图形和媒体操作。在一些实施例中,显示设备711可以连接到处理器702。显示设备711可以是如在移动电子设备或膝上型设备中的内部显示设备,或者经由显示接口(例如,DisplayPort等)附连的外部显示设备中的一个或多个。在一个实施例中,显示设备711可以是头戴式显示器(HMD),例如用于虚拟现实(VR)应用或增强现实(AR)应用的立体显示设备。
在一些实施例中,平台控制器中枢730使得外设能够经由高速I/O总线连接到存储器设备720和处理器702。I/O外设包括但不限于音频控制器746、网络控制器734、固件接口728、无线收发机726、触摸传感器725、数据存储设备724(例如,硬盘驱动器、Flash存储器等)。数据存储设备724可以经由存储接口(例如,SATA)或经由外设总线(例如,外围组件互连总线(例如,PCI、PCI Express))连接。触摸传感器725可以包括触摸屏传感器、压力传感器或指纹传感器。无线收发机726可以是Wi-Fi收发机、蓝牙收发机或移动网络收发机(例如,3G、4G或长期演进(LTE)收发机)。固件接口728使得能够与系统固件进行通信,并且可以是例如统一可扩展固件接口(UEFI)。网络控制器734可以实现至有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线710耦合。在一个实施例中,音频控制器746是多信道高清晰度音频控制器。在一个实施例中,系统700包括可选的传统I/O控制器740,用于将传统(例如,个人系统2(PS/2))设备耦合到系统。平台控制器中枢730还可以连接到一个或多个通用串行总线(USB)控制器742,以连接输入设备,例如键盘和鼠标743组合、相机744或其他USB输入设备。
以下涉及进一步示例。
示例1是一种装置,一种装置,包括:输入寄存器,用于接收传输层数据分组的至少一部分;加密/解密流水线,通信地耦合到所述输入寄存器,并且包括:第一分段,包括高级加密标准(AES)引擎集合,所述AES引擎集合至少包括:第一AES引擎,用于对来自传输层数据分组的所述至少一部分的输入数据执行加密和/或解密操作;第二AES引擎,用于计算验证密钥;以及第三AES引擎,用于计算验证标签掩码;第二分段,包括Galois域乘法器的第一集合,所述Galois域乘法器的第一集合至少包括第一Galois域乘法器,用于计算所述验证密钥的第一倍数、所述验证密钥的第二倍数和所述验证密钥的第三倍数;第三分段,包括Galois域乘法器的第二集合,用于计算第一部分验证标签;以及第四分段,包括处理电路,用于计算第二部分验证标签和最终验证标签。
在示例2中,示例1的主题可以可选地包括如下布置,其中,所述传输层数据分组包括64字节的输入数据块。
在示例3中,示例1-2中任一个的主题可以可选地包括如下布置,其中所述第一分段包括:四个并行排列的AES-256引擎的集合,用于加密和/或解密64字节的输入数据块;第五AES-256引擎,用于计算验证密钥;以及第六AES-256引擎,用于计算验证标签掩码。
在示例4中,示例1-3中任一个的主题可以可选地包括如下布置,其中所述第二分段包括:第一Galois域乘法器,用于计算所述验证密钥的倍数;第二Galois域乘法器,用于计算所述验证密钥的三次幂;以及第三Galois域乘法器,用于计算所述验证密钥的四次幂。
在示例5中,示例1-4中任一个的主题可以可选地包括如下布置,其中所述第三分段包括:第四Galois域乘法器,用于计算由第一部分验证标签乘以所述验证密钥的四次幂构成的第四倍数;第五Galois域乘法器,用于计算由所述输入数据块的第一部分乘以所述验证密钥的三次幂构成的第五倍数;第六Galois域乘法器,用于计算由所述输入数据块的第二部分乘以所述验证密钥的二次幂构成的第六倍数;以及第七Galois域乘法器,用于计算由所述输入数据块的第三部分乘以所述验证密钥构成的第七倍数。
在示例6中,示例1-5中任一个的主题可以可选地包括如下布置,其中所述第一部分验证标签被初始化为零值。
在示例7中,示例1-6中任一个的主题可以可选地包括如下布置,其中所述第一部分验证标签被配置为在所述流水线的执行期间存储中间标签值。
在示例8中,示例1-7中任何一个的主题可以可选地包括如下布置,其中所述第四分段包括:处理电路,用于将所述第二部分验证标签和密钥标识符提供给所述第一分段、所述第二分段和所述第三分段中的一个或多个,作为用于所述流水线的后续迭代的反馈。
在示例9中,示例1-8中任一个的主题可以可选地包括如下布置,其中所述第四分段包括:第八Galois域乘法器,用于计算由所述传输层数据分组的长度乘以所述验证密钥构成的第八倍数;以及第九Galois域乘法器,用于计算所述最终验证标签。
在示例10中,示例1-9中任一个的主题可以可选地包括输出寄存器,所述输出寄存器通信地耦合到所述加密/解密流水线。
示例11是一种电子设备,包括处理器;以及输入/输出(I/O)接口,用于接收通过网络传递的数据业务;输入寄存器,用于接收传输层数据分组的至少一部分;加密/解密流水线,通信地耦合到所述输入寄存器,并且包括:第一分段,包括高级加密标准(AES)引擎集合,所述AES引擎集合至少包括:第一AES引擎,用于对来自传输层数据分组的所述至少一部分的输入数据执行加密和/或解密操作;第二AES引擎,用于计算验证密钥;以及第三AES引擎,用于计算验证标签掩码;第二分段,包括Galois域乘法器的第一集合,所述Galois域乘法器的第一集合至少包括第一Galois域乘法器,用于计算所述验证密钥的第一倍数;第三分段,包括Galois域乘法器的第二集合,用于计算第一部分验证标签;以及第四分段,包括处理电路,用于计算第二部分验证标签和最终验证标签。
在示例12中,示例11的主题可以可选地包括如下布置,其中所述传输层数据分组包括64字节的输入数据块。
在示例13中,示例11-12中任一个的主题可以可选地包括如下布置,其中所述第一分段包括:四个并行排列的AES-256引擎的集合,用于加密和/或解密64字节的输入数据块;第五AES-256引擎,用于计算验证密钥;以及第六AES-256引擎,用于计算验证标签掩码。
在示例14中,示例11-13中任一个的主题可以可选地包括如下布置,其中所述第二分段包括:第一Galois域乘法器,用于计算所述验证密钥的倍数;第二Galois域乘法器,用于计算所述验证密钥的三次幂;以及第三Galois域乘法器,用于计算所述验证密钥的四次幂。
在示例15中,示例11-14中任一个的主题可以可选地包括如下布置,其中所述第三分段包括:第四Galois域乘法器,用于计算由第一部分验证标签乘以所述验证密钥的四次幂构成的第四倍数;第五Galois域乘法器,用于计算由所述输入数据块的第一部分乘以所述验证密钥的三次幂构成的第五倍数;第六Galois域乘法器,用于计算由所述输入数据块的第二部分乘以所述验证密钥的二次幂构成的第六倍数;以及第七Galois域乘法器,用于计算由所述输入数据块的第三部分乘以所述验证密钥构成的第七倍数。
在示例16中,示例11-15中任一个的主题可以可选地包括如下布置,其中所述第一部分验证标签被初始化为零值。
在示例17中,示例11-16中任一个的主题可以可选地包括如下布置,其中所述第一部分验证标签被配置为在所述流水线的执行期间存储中间标签值。
在示例18中,示例11-17中任一个的主题可以可选地包括如下布置,其中所述第四分段包括:处理电路,用于将所述第二部分验证标签和密钥标识符提供给所述第一分段、所述第二分段和所述第三分段中的一个或多个,作为用于所述流水线的后续迭代的反馈。
在示例19中,示例11-18中任一个的主题可以可选地包括如下布置,其中所述第四分段包括:第八Galois域乘法器,用于计算由所述传输层数据分组的长度乘以所述验证密钥构成的第八倍数;以及第九Galois域乘法器,用于计算所述最终验证标签。
在示例20中,示例11-19中任一个的主题可以可选地包括输出寄存器,通信地耦合到所述加密/解密流水线。
上面的具体实施方式包括对附图的引用,这些附图形成了具体实施方式的一部分。附图通过图示的方式示出了可以实践的特定实施例。这些实施例在本文中也称为“示例”。此种示例可以包括除了所示出或描述的元素之外的元素。然而,还考虑了包括所示出或所描述的元素的示例。此外,还考虑了相对于具体示例(或其一个或多个方面)或本文所示出或描述的其他示例(或其一个或多个方面),使用了所示出或描述的这些元素的任意组合或置换的示例。
本文件中引用的出版物、专利和专利文件通过引用整体并入本文,就如通过引用单独地并入。如果在本文件与通过引用方式并入的那些文件之间用法不一致,则所并入的引用中的用法是对本文件的用法的补充。对于不可调和的不一致,以本文件中的用法为准。
在该文件中,术语“一个”或“一种”如专利文件中常用的那样,包括一个或不止一个,独立于“至少一个”或“一个或多个”的任何其他实例或用法。另外,“集合”包括一个或多个元素。在本文件中,除非另有说明,否则术语“或”用于表示非排他性或,以便“A或B”包括“A但不包括B”、“B但不包括A”和“A和B”。在所附权利要求中,术语“包含”和“在其中”被用作相应术语“包括”和“其中”的普通等效词。同样,在所附权利要求中,术语“包括”和“包含”是开放式的;也就是说,除权利要求中在此术语之后列出的元素之外,还包括其他元素的系统、设备、物品或处理仍被认为落入该权利要求的范围内。此外,在所附权利要求中,术语“第一”、“第二”、“第三”等仅用作标注,并无意建议其对象的数字顺序。
本文所引用的术语“逻辑指令”涉及可以由一或多个机器理解用于执行一个或多个逻辑操作的表述。例如,逻辑指令可以包括可由处理器编译器解释用于对一个或多个数据对象执行一个或多个操作的指令。然而,这仅是机器可读指令的示例,并且示例在这方面不受限制。
本文所引用的术语“计算机可读介质”涉及能够维持由一个或多个机器可感知的表述的介质。例如,一种计算机可读介质可以包括用于存储计算机可读指令或数据的一个或多个存储设备。此存储设备可以包括诸如例如光、磁或半导体存储介质的存储介质。然而,这仅是计算机可读介质的示例,并且示例在此方面不受限制。
本文所引用的术语“逻辑”涉及用于执行一个或多个逻辑操作的结构。例如,逻辑可以包括基于一个或多个输入信号提供一个或多个输出信号的电路。此电路可以包括接收数字输入并提供数字输出的有限状态机,或者响应一个或多个模拟输入信号而提供一个或多个模拟输出信号的电路。此电路可以被提供在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中。而且,逻辑可以包括存储在存储器中的机器可读指令,该存储器与处理电路结合来执行此机器可读指令。然而,这些仅仅是可以提供逻辑的结构的示例,并且示例在此方面不受限制。
本文描述的一些方法可以被实施为计算机可读介质上的逻辑指令。当在处理器上执行时,逻辑指令使处理器被编程为实现所述方法的专用机器。当处理器由逻辑指令配置为执行本文描述的方法时,该处理器构成用于执行所描述的方法的结构。替代地,本文描述的方法可以被简化为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等上的逻辑。
在说明书和权利要求书中,可以使用术语“耦合”和“连接”及其派生词。在具体示例中,“连接”可以用于指示两个或更多个元件彼此直接物理或电接触。耦合可以指两个或更多个元件直接物理或电接触。但是,耦合也可以指两个或更多个元件可以不彼此直接接触,但仍可以彼此协作或交互。
在说明书中对“一个示例”或“一些示例”的引用表示结合该示例描述的具体特征、结构或特性被至少包括在实施方式中。说明书中各个地方出现的短语“在一个示例中”可以指同一示例或可以不全部指同一示例。
以上描述旨在是说明性的,而不是限制性的。例如,上述示例(或其一个或多个方面)可以与其他示例结合使用。在查阅以上描述之后,其他实施例可以由诸如本领域的普通技术人员使用。摘要是为了使读者能够快速确定技术公开的性质。提交该摘要的前提是,它不会被用来解释或限制权利要求的范围或含义。另外,在以上具体实施方式中,可以将各种特征分组在一起以简化本公开。然而,由于实施例可以以所述特征的子集为特征,因此权利要求书未阐述本文公开的每个特征。此外,实施例可以包括比具体示例中公开的特征更少的特征。因此,所附权利要求由此被结合到具体实施方式中,其中每个权利要求独立地作为单独的实施例。本文公开的实施例的范围将参考所附权利要求书以及这些权利要求书所享有的等同物的全部范围来确定。
尽管已经用特定于结构特征和/或方法动作的语言描述了示例,但是应当理解,要求保护的主题可以不限于所描述的特定特征或动作。而是,将特定特征和动作公开为实现所要求保护的主题的样本形式。
Claims (20)
1.一种装置,包括:
输入寄存器,用于接收传输层数据分组的至少一部分;
加密/解密流水线,通信地耦合到所述输入寄存器,并且包括:
第一分段,包括高级加密标准(AES)引擎集合,所述AES引擎集合至少包括:第一AES引擎,用于对来自传输层数据分组的所述至少一部分的输入数据执行加密和/或解密操作;第二AES引擎,用于计算验证密钥;以及第三AES引擎,用于计算验证标签掩码;
第二分段,包括Galois域乘法器的第一集合,所述Galois域乘法器的第一集合至少包括第一Galois域乘法器,用于计算所述验证密钥的第一倍数、所述验证密钥的第二倍数和所述验证密钥的第三倍数;
第三分段,包括Galois域乘法器的第二集合,用于计算第一部分验证标签;以及
第四分段,包括处理电路,用于计算第二部分验证标签和最终验证标签。
2.根据权利要求1所述的装置,其中,所述传输层数据分组包括64字节的输入数据块。
3.根据权利要求2所述的装置,其中,所述第一分段包括:
四个并行排列的AES-256引擎的集合,用于加密和/或解密所述64字节的输入数据块;
第五AES-256引擎,用于计算验证密钥;以及
第六AES-256引擎,于计算验证标签掩码。
4.根据权利要求3所述的装置,其中,所述第二分段包括:
第一Galois域乘法器,用于计算所述验证密钥的倍数;
第二Galois域乘法器,用于计算所述验证密钥的三次幂;以及
第三Galois域乘法器,用于计算所述验证密钥的四次幂。
5.根据权利要求2所述的装置,其中,所述第三分段包括:
第四Galois域乘法器,用于计算由第一部分验证标签乘以所述验证密钥的四次幂构成的第四倍数;
第五Galois域乘法器,用于计算由所述输入数据块的第一部分乘以所述验证密钥的三次幂构成的第五倍数;
第六Galois域乘法器,用于计算由所述输入数据块的第二部分乘以所述验证密钥的二次幂构成的第六倍数;以及
第七Galois域乘法器,用于计算由所述输入数据块的第三部分乘以所述验证密钥构成的第七倍数。
6.根据权利要求5所述的装置,其中,所述第一部分验证标签被初始化为零值。
7.根据权利要求6所述的装置,其中,所述第一部分验证标签被配置为在所述流水线的执行期间存储中间标签值。
8.根据权利要求1所述的装置,其中,所述第四分段包括:
处理电路,用于将所述第二部分验证标签和密钥标识符提供给所述第一分段、所述第二分段和所述第三分段中的一个或多个,作为用于所述流水线的后续迭代的反馈。
9.根据权利要求8所述的装置,其中,所述第四分段包括:
第八Galois域乘法器,用于计算由所述传输层数据分组的长度乘以所述验证密钥构成的第八倍数;以及
第九Galois域乘法器,用于计算所述最终验证标签。
10.根据权利要求1所述的装置,还包括:
输出寄存器,通信地耦合到所述加密/解密流水线。
11.一种电子设备,包括:
处理器;以及
输入/输出(I/O)接口,用于接收通过网络传递的数据业务;
输入寄存器,用于接收传输层数据分组的至少一部分;
加密/解密流水线,通信地耦合到所述输入寄存器,并且包括:
第一分段,包括高级加密标准(AES)引擎集合,所述AES引擎集合至少包括:第一AES引擎,用于对来自传输层数据分组的所述至少一部分的输入数据执行加密和/或解密操作;第二AES引擎,用于计算验证密钥;以及第三AES引擎,用于计算验证标签掩码;
第二分段,包括Galois域乘法器的第一集合,所述Galois域乘法器的第一集合至少包括第一Galois域乘法器,用于计算所述验证密钥的第一倍数;
第三分段,包括Galois域乘法器的第二集合,用于计算第一部分验证标签;以及
第四分段,包括处理电路,用于计算第二部分验证标签和最终验证标签。
12.根据权利要求11所述的电子设备,其中,所述传输层数据分组包括64字节的输入数据块。
13.根据权利要求12所述的电子设备,其中,所述第一分段包括:
四个并行排列的AES-256引擎的集合,用于加密和/或解密所述64字节的输入数据块;
第五AES-256引擎,用于计算验证密钥;以及
第六AES-256引擎,用于计算验证标签掩码。
14.根据权利要求13所述的电子设备,其中,所述第二分段包括:
第一Galois域乘法器,用于计算所述验证密钥的倍数;
第二Galois域乘法器,用于计算所述验证密钥的三次幂;以及
第三Galois域乘法器,用于计算所述验证密钥的四次幂。
15.根据权利要求12所述的电子设备,其中,所述第三分段包括:
第四Galois域乘法器,用于计算由第一部分验证标签乘以所述验证密钥的四次幂构成的第四倍数;
第五Galois域乘法器,用于计算由所述输入数据块的第一部分乘以所述验证密钥的三次幂构成的第五倍数;
第六Galois域乘法器,用于计算由所述输入数据块的第二部分乘以所述验证密钥的二次幂构成的第六倍数;以及
第七Galois域乘法器,用于计算由所述输入数据块的第三部分乘以所述验证密钥构成的第七倍数。
16.根据权利要求15所述的电子设备,其中,所述第一部分验证标签被初始化为零值。
17.根据权利要求15所述的电子设备,其中,所述第一部分验证标签被配置为在所述流水线的执行期间存储中间标签值。
18.根据权利要求11所述的电子设备,其中,所述第四分段包括:
处理电路,用于将所述第二部分验证标签和密钥标识符提供给所述第一分段、所述第二分段和所述第三分段中的一个或多个,作为用于所述流水线的后续迭代的反馈。
19.根据权利要求18所述的电子设备,其中,所述第四分段包括:
第八Galois域乘法器,用于计算由所述传输层数据分组的长度乘以所述验证密钥构成的第八倍数;以及
第九Galois域乘法器,用于计算所述最终验证标签。
20.根据权利要求11所述的电子设备,还包括:
输出寄存器,通信地耦合到所述加密/解密流水线。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/909,648 US11489661B2 (en) | 2020-06-23 | 2020-06-23 | High throughput post quantum AES-GCM engine for TLS packet encryption and decryption |
US16/909,648 | 2020-06-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113839770A true CN113839770A (zh) | 2021-12-24 |
Family
ID=73043108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011524906.5A Pending CN113839770A (zh) | 2020-06-23 | 2020-12-22 | 用于tls分组加密和解密的高吞吐量后量子aes-gcm引擎 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11489661B2 (zh) |
EP (1) | EP3930253A1 (zh) |
CN (1) | CN113839770A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11489661B2 (en) | 2020-06-23 | 2022-11-01 | Intel Corporation | High throughput post quantum AES-GCM engine for TLS packet encryption and decryption |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836514B2 (en) * | 2021-01-19 | 2023-12-05 | Dell Products L.P. | System and method of utilizing memory medium fault resiliency with secure memory medium portions |
CN116488795B (zh) * | 2023-06-19 | 2023-09-22 | 北京大禹智芯科技有限公司 | 一种gcm-aes处理方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577026B2 (en) * | 2010-12-29 | 2013-11-05 | Ternarylogic Llc | Methods and apparatus in alternate finite field based coders and decoders |
KR100715679B1 (ko) * | 2005-12-05 | 2007-05-09 | 한국전자통신연구원 | 인증 암호화를 통해 보안 전송을 가능하게 하는 gpon시스템 및 그 인증 암호화 방법 |
US9141831B2 (en) * | 2010-07-08 | 2015-09-22 | Texas Instruments Incorporated | Scheduler, security context cache, packet processor, and authentication, encryption modules |
US10103873B2 (en) * | 2016-04-01 | 2018-10-16 | Intel Corporation | Power side-channel attack resistant advanced encryption standard accelerator processor |
US11138132B2 (en) * | 2018-06-20 | 2021-10-05 | Intel Corporation | Technologies for secure I/O with accelerator devices |
US11469902B2 (en) * | 2019-03-29 | 2022-10-11 | Intel Corporation | Systems and methods of using cryptographic primitives for error location, correction, and device recovery |
US11489661B2 (en) | 2020-06-23 | 2022-11-01 | Intel Corporation | High throughput post quantum AES-GCM engine for TLS packet encryption and decryption |
-
2020
- 2020-06-23 US US16/909,648 patent/US11489661B2/en active Active
- 2020-10-30 EP EP20205013.4A patent/EP3930253A1/en not_active Withdrawn
- 2020-12-22 CN CN202011524906.5A patent/CN113839770A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11489661B2 (en) | 2020-06-23 | 2022-11-01 | Intel Corporation | High throughput post quantum AES-GCM engine for TLS packet encryption and decryption |
Also Published As
Publication number | Publication date |
---|---|
US20210399876A1 (en) | 2021-12-23 |
US11489661B2 (en) | 2022-11-01 |
EP3930253A1 (en) | 2021-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11169935B2 (en) | Technologies for low-latency cryptography for processor-accelerator communication | |
US11917053B2 (en) | Combined SHA2 and SHA3 based XMSS hardware accelerator | |
CN107667499B (zh) | 带密钥散列消息认证码处理器、方法、系统和指令 | |
Pan et al. | An efficient elliptic curve cryptography signature server with GPU acceleration | |
TWI715619B (zh) | 用於硬體強制單向密碼學的處理器、方法及系統 | |
US20220337421A1 (en) | Low latency post-quantum signature verification for fast secure-boot | |
CN113839770A (zh) | 用于tls分组加密和解密的高吞吐量后量子aes-gcm引擎 | |
WO2016053729A1 (en) | Method and system for secure management of computer applications | |
US20230066955A1 (en) | Efficient post-quantum secure software updates tailored to resource-constrained devices | |
US10715332B2 (en) | Encryption for transactions in a memory fabric | |
US11750403B2 (en) | Robust state synchronization for stateful hash-based signatures | |
TWI773960B (zh) | 用於以加密金鑰指令計算數位簽章驗證標記之電腦程式產品、電腦系統及電腦實施方法 | |
US11722313B2 (en) | State synchronization for post-quantum signing facilities | |
US11222127B2 (en) | Processor hardware and instructions for SHA3 cryptographic operations | |
WO2023107776A1 (en) | Efficient hybridization of classical and post-quantum signatures | |
US11838411B2 (en) | Permutation cipher encryption for processor-accelerator memory mapped input/output communication | |
US11522678B2 (en) | Block cipher encryption for processor-accelerator memory mapped input/output communication | |
US20220109558A1 (en) | Xmss management to address randomized hashing and federal information processing standards | |
Conti et al. | Design exploration of aes accelerators on fpgas and gpus | |
US11924320B2 (en) | Devices and methods for protecting cryptographic programs | |
US20240031127A1 (en) | Lightweight side-channel protection for polynomial multiplication in post-quantum signatures | |
US20240154799A1 (en) | Link encryption and key diversification on a hardware security module | |
US20220416998A1 (en) | Side channel protection for sha3 cryptographic functions | |
COWART | AN IMPLEMENTATION AND EXPERIMENTAL EVALUATION OF HARDWARE ACCELERATED CIPHERS IN ALL-PROGRAMMABLE SoCs ON EMBEDDED AND WORKSTATION COMPUTER PLATFORMS |
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 |