CN112152782A - 用于可重配置电路装置的后量子公钥签名操作 - Google Patents
用于可重配置电路装置的后量子公钥签名操作 Download PDFInfo
- Publication number
- CN112152782A CN112152782A CN202010218806.3A CN202010218806A CN112152782A CN 112152782 A CN112152782 A CN 112152782A CN 202010218806 A CN202010218806 A CN 202010218806A CN 112152782 A CN112152782 A CN 112152782A
- Authority
- CN
- China
- Prior art keywords
- hash
- public key
- cryptographic hash
- reconfigurable circuit
- reconfigurable
- 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/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
-
- 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
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/76—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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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
-
- 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/3239—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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3247—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 digital signatures
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Electromagnetism (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Advance Control (AREA)
- Logic Circuits (AREA)
Abstract
实施例针对用于可重配置电路装置的后量子公钥签名操作。设备的实施例包括:一个或多个处理器;以及可重配置电路装置,所述可重配置电路装置包括:专用密码散列硬件引擎以及包括逻辑元件(LE)的可重配置构造,其中一个或多个处理器要将可重配置电路装置配置用于公钥签名操作,包括将用于公钥生成和验证的状态机映射到可重配置构造,包括将一个或多个密码散列引擎映射到可重配置构造,以及将专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证。
Description
技术领域
本文中描述的实施例通常涉及电子装置领域,并且更特别地,涉及用于可重配置电路装置的后量子公钥签名操作。
背景技术
在计算系统中实现密码术(cryptography)以提供安全数据存储和通信。采用的安全性技术包括公钥数字签名算法,包括RSA(Rivest-Shamir-Adleman)和ESDSA(椭圆曲线数字签名算法),其通常提供有效的安全性。
然而,随着量子计算的引入,现有的安全性技术可能是不够的。量子计算可能能够突破曾先前被认为是高度安全的系统,因此要求后量子密码术技术方案来防止在面对由量子计算提出的新挑战时的数据丢失。
特别地,现有的公钥数字签名算法(诸如RSA和ECDSA)防御采用Shor的算法的后量子计算机的攻击而言是危险的,所述Shor的算法使得能够在多项式时间中对大的整数进行因式分解以及对离散对数进行计算。结果,有努力(effort)正在进行定义防御量子计算机而言是安全的后量子算法的新标准,其中XMSS(扩展Merkel签名方案)是第一后量子安全公钥数字签名方案。
然而,诸如FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑装置)装置之类的可重配置装置由于这样的装置允许的灵活性而越来越多地被利用于要求数字签名验证的技术中。XMSS要求大量的处理,并且因此在诸如FPGA和CLPD之类的装置中实现XMSS并且提供足够的性能方面存在重大挑战。
附图说明
在附图的各图中,通过示例而非通过限制图示了这里描述的实施例,在所述附图中,相似的参考标记指的是类似的元素。
图1A和1B分别图示基于单次散列的签名方案和基于多次散列的签名方案。
图2A和2B分别图示单次签名方案和多次签名方案。
图3A图示XMSS签名验证操作;
图3B图示XMSS本地公钥的计算;
图4A图示WOTS+单次签名操作;
图4B图示WOTS签名生成;
图4C图示WOTS签名验证;
图5A图示根据一些实施例的用于可重配置电路装置的XMSS实现;
图5B是根据一些实施例的用于可重配置电路装置的XMSS实现的状态机的图示;
图5C图示根据一些实施例的包括用于XMSS签名操作的可重配置电路装置的计算系统或设备;
图6图示根据一些实施例的用于XMSS签名操作的可重配置电路装置的资源感知散列调度;以及
图7图示根据一些示例的可以适于使用关于激活路径差异的信息来实现神经网络的对抗性训练的计算架构的示意图。
具体实施方式
本文中描述的实施例针对用于可重配置电路装置的后量子公钥签名操作。
在密码研究团体和标准主体(IETF(因特网工程任务组)、NIST(国家标准与技术研究所))中有努力正在进行定义用于防御量子计算机而言是安全的算法的新标准。XMSS(扩展Merkel签名方案)是RFC-8391中要由因特网工程任务组(IETF)发布的第一后量子安全公钥数字签名方案。XMSS是基于散列的签名技术,其被创建以提供具有最小安全性假设的有效的后量子签名操作。
然而,XMSS要求大量的处理,并且因此在诸如FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑装置)之类的装置中实现XMSS并且提供足够的性能方面存在重大挑战。
在一些实施例中,提供了优化的后量子公钥验证引擎,以用于在诸如FPGA和CPLD的可重配置电路装置中实现,其中该技术可以在XMSS签名生成/验证延迟(latency)中提供多达33%改进。在一些实施例中,用于可重配置电路装置的XMSS实现包括以下中的一个或多个:
(i)加速器利用(leverage)可重配置电路装置中的现有密码散列硬件引擎(诸如SHA-2(安全散列算法2)硬件引擎),以在XMSS的延迟关键WOTS和L-树操作中实现预散列优化;
(ii)状态机执行资源感知散列链分布,以最大化现有密码散列硬件和构造上专用密码散列加速器之间的资源利用;以及
(iii)状态机实现提供可重配置性(reconfigurability),以将本地存储的所有顺序逻辑映射到嵌入式RAM以权衡存储器对LUT(查找表)利用。
公钥验证技术XMSS的常规FPGA实现可以将整个XMSS加速器映射到FPGA的可重配置构造上,或者备选地使用常规模式中的现有SHA-2硬件引擎来执行XMSS散列操作。然而,常规是不够的。将整个XMSS加速器映射到FPGA构造上要求大量的查找表(LUT),从而负面地影响整体资源利用。这从FPGA上被加速而限制其它安全性特征。当利用FPGA上的现有SHA-2引擎减轻这个问题时,基于通用SHA-2的实现不利用XMSS算法中的预散列优化,从而限制XMSS签名/验证性能。
在一些实施例中,设备、系统或过程通过映射实现预散列优化的WOTS和L-树操作的状态机、以及利用可重配置电路装置的现有SHA-2硬件引擎以用于核XMSS散列操作,来提供用于可重配置电路装置的XMSS实现。此外,状态机可以有条件地配置成重新分配LUT和嵌入式RAM利用,从而提供用于在可重配置电路装置上实现其它特征的灵活性。
以这种方式,可重配置电路装置中的XMSS实现的实施例利用现有SHA-2硬件引擎来执行XMSS中的散列操作,从而最小化装置资源利用。为了改进性能,实现预散列优化的XMSS状态机被映射到可重配置电路装置构造,从而导致XMSS延迟降低33%。XMSS状态机还可重配置以使用LUT或者嵌入式RAM,以用于存储取决于资源可用性的中间散列值,使得能够最佳使用装置可重配置构造。
后量子密码术
后量子密码术(也被称为“防范量子(quantum-proof)”、“量子安全”、“抵抗量子”或简称为“PQC”)针对密码而采取未来及现实方法。后量子密码术使负责密码的那些人以及终端用户作好获知密码过时的准备;更确切地说,后量子密码术需要演进到能够成功地解决使计算装置演进成量子计算和后量子计算。
清楚理解到,密码虑及对使用各种网络在个体和实体之间在线地传递并且存储的数据的保护。该数据通信能够在如下范围:发送和接收电子邮件、在线地购买商品或服务、使用网站来访问银行业务或其它个人信息等等。
常规的密码及其困难的数学场景的典型的密码因式分解和计算可能与何时处置量子计算无关。这些数学问题(诸如,离散对数、整数因式分解化以及椭圆曲线离散对数等等)不能抵挡来自强大的量子计算机的攻击。Shor, P.W. "Algorithms for quantumcomputation: discrete logarithms and factoring". Proceedings 35th AnnualSymposium on Foundations of Computer Science. IEEE Comput. Soc. Press. doi:10.1109/sfcs.1994.365700. ISBN 0818665807.虽然能够在当前密码上构建任何后量子密码术,但新型方法将需要智能、快速并且精确到足以抵抗并且击败由量子计算机作出的任何攻击。
如今的PQC主要地集中于以下的方法:1)基于1979年的Merkle的散列树公钥签名系统的基于散列的密码,其建立于Lamport和Diffie的单个消息签名思路;2)基于代码的密码(诸如,McEliece的隐藏Goppa代码公钥加密系统);3)基于1998年的Hoffstein-Pipher-Silverman公钥加密系统的基于格的密码;4)基于1996年的Patarin的隐藏字段等式(HFE)公钥签名系统的多元二次方程密码,其进一步基于Matumoto-Imai提议;5)超奇异椭圆曲线同源密码,其依赖于超奇异椭圆曲线和超奇异同源图表;以及6)对称密钥量子抗性。
图1A和图1B分别图示基于单次散列的签名方案和基于多次散列的签名方案。如前所述,基于散列的密码基于如Lamport签名、Merkle签名、扩展Merkle签名方案(XMSS)以及SPHINCS方案、SPHINCS+方案等等那样的密码系统。随着量子计算的出现,并且带着对量子计算的发展的期待,已存在关于量子计算可能提出的各种挑战和能够进行什么以使用密码领域来应对这样的挑战的顾虑。
为了应对量子计算挑战而研究的一个领域是基于散列的签名(HBS),因为,这些方案存在已久,并且用于应对量子计数和后量子计算挑战的必要的基本要素,诸如依赖于对称密码构建块(例如散列函数)。HBS方案被视为利用快速平台安全启动来工作的快速签名算法,所述快速平台安全启动被视为最大限度地抵抗量子攻击。
例如,如关于图1A而图示的,示出如下的HBS方案:使用Merkle树连同单次签名(OTS)方案100,诸如使用私钥来对消息签名并且使用对应的公钥来验证OTS消息,其中,私钥仅对单个消息签名。
类似地,如关于图1B而图示的,示出另一HBS方案:其中该方案涉及多次签名(MTS)方案150,其中,私钥能够对多个消息签名。
图2A和图2B分别图示单次签名方案和多次签名方案。继续参考图1A的基于HBS的OTS方案100和图1B的MTS方案150,相应地,图2A图示由斯坦福大学数学系的RobertWinternitz提供的Winternitz OTS(WOTS)方案200,而图2B图示XMSS MTS方案250。
例如,图2A的WOTS方案200提供如下:将消息散列并且解析成[0, 1, 2, …… ,15]之间具有67个整数的M,诸如,私钥sk 205、签名s 210以及公钥pk 215,其中各自具有各自32字节的67个成分。
现在例如,图2B图示XMSS MTS方案250,所述XMSS MTS方案250虑及图2A的WOTS方案200和具有XMSS Merkle树270的XMSS方案255的组合。如先前关于图2A而讨论的,WOTS方案200基于单次公钥pk 215,所述单次公钥pk 215具有各自32字节的67个成分,然后通过L-树压缩算法260,以提供在XMSS方案255的XMSS Merkle树270中产生的WOTS压缩的pk 267。要构思,XMSS签名验证可以包括计算WOTS验证并且检查以确定重构的根节点是否匹配XMSS公钥(诸如,根节点= XMSS公钥)。
用于可重配置电路装置的XMSS引擎
FPGA和CPLD是在云计算、汽车、IoT和人工智能中使用的关键的可重配置装置,以在无需设计专用ASIC的情况下提供工作负载加速。在FPGA/CPLD上加速后量子安全算法(诸如XMSS)对于提供从经典密码术的无缝转换以及支持在未来数十年中的高性能的基于数字签名的认证而言是重要的。
图3A图示XMSS签名验证操作。XMSS是Merkel树结构的基于散列的签名方案,其使用Winternitz单次签名(WOTS的WOTS+版本)作为针对密钥生成、签名/验证操作的底层操作。如图3A中所示,签名操作要求使用来自每个叶WOTS节点的本地公钥构造Merkel树,从而生成全局公钥(PK)。认证路径和根节点值的计算可以离线执行,并且因此不是对性能的限制。每个WOTS节点(在图3A中被示为八个节点)具有唯一的秘密密钥“sk”,其被用于对消息仅一次签名(在图3A中被示为sk和msg(消息)被输入到WOTS节点,并且得到Sig(签名))。XMSS签名由为输入消息(Sig)生成的签名和用于构造Merkel树的根的中间树节点的认证路径组成。
图3B图示XMSS本地公钥的计算。在验证期间,输入消息(Msg)和签名(Sig)被用于计算WOTS节点的本地公钥,其被进一步用于使用认证路径计算树根值,如图3B中所示。成功的验证将使计算的树根值与由签名实体共享的公钥PK匹配。这要求在XMSS签名和验证两者被输入期间的性能密集操作,随后是L-树操作。
图4A图示WOTS+单次签名操作。如图4A中所示,WOTS+操作牵涉16个SHA-2-256散列函数的67个并行链,每个并行链具有秘密密钥sk[66:0]作为输入。链中的每个散列操作由2个伪随机函数组成,其使用SHA-2-256来生成位掩码和密钥。位掩码与先前的散列进行XOR运算,并且与作为对第3 SHA-2-256散列操作的输入消息的密钥而级联。通过跨67个散列链对秘密密钥sk散列,来生成67×32字节WOTS公钥pk[66:0]。
图4B图示WOTS签名生成。对于消息签名,对输入消息(消息)散列和预处理以计算67×4位值(m[66:0][3:0])。该值然后被用作在每个链中选择中间散列值的索引(被示为×m[0]、×m[0],并且继续通过×m[长度-1])。
图4C图示WOTS签名验证。在签名验证期间,再次对消息散列以计算签名索引,并且计算每个链中的剩余散列操作,以计算WOTS公钥pk(第一个链中的pk[0]、随后链中的pk[1]等)。认证路径被用于计算Merkle树的根,并且将这与共享公钥PK比较以验证消息。
如从图4B中的算法签名生成和图4C中的签名验证可以看出,在设备或系统中加速SHA-2操作具有为XMSS提供显著性能改进的潜力,因为需要完成该操作以继续以下操作。
图5A图示根据一些实施例的用于可重配置电路装置的XMSS实现。可重配置电路装置可以包括密码元件以支持签名验证。例如,当前的Intel FPGA通过暴露安全装置管理器(SDM)中存在的硬件来提供用于散列和加密的密码加速引擎。
如图5A中所示,诸如所示的FPGA 500的可重配置电路装置可以包括内部嵌入式存储器505(FPGA的BRAM(块RAM),或者嵌入在可重配置电路装置内的其它存储器)、SDM 510;以及可编程互连构造,诸如所示的FPGA构造520,其围绕逻辑元件(LE)和查找表(LUT)。SDM510可以包括可以被暴露以供使用的密码散列硬件引擎,诸如SHA-2硬件加速器(硬件引擎)515。
在一些实施例中,用于可重配置电路装置的签名验证引擎包括可重配置电路装置的专用硬件引擎与在装置的可编程互连构造中编程的状态机的组合。在一些实施例中,为了针对XMSS利用现有SHA-2硬件加速器515,在FPGA构造上实现XMSS状态机525。这最小化宝贵的FPGA构造上的资源使用,同时通过使用现有硬件加速器提供合理的性能。
在一些实施例中,为了进一步改进XMSS签名/验证的性能,状态机525被设计成使用现有SHA-2引擎来执行XMSS特定的预散列优化。在WOTS中,在签名/验证期间重复地执行的密钥散列操作使用伪随机函数(PRF)的两次调用,以通过散列由OPCODE||SEED||HASH_ADDRESS||PADDING组成的64字节消息,来计算本地密钥和位掩码。由于对于XMSS操作而言OPCODE和SEED是恒定的,所以XMSS状态机525使用现有SHA-2引擎515来预计算OPCODE||SEED的散列值,并且将它本地存储在FPGA构造525上。对于PRF的所有后续调用,状态机525发送预计算的散列值作为SHA-2引擎的开始状态。
在一些实施例中,XMSS状态机525还被设计成在L-树操作期间执行类似的优化。L-树操作主要由随机化的散列函数(RAND_HASH)组成,其调用PRF函数三次以计算本地密钥和两个位掩码值。此外,状态机预计算OPCODE||SEED的散列值,并且在L-树计算期间将其重新用于RAND_HASH的所有后续调用。通过使用片上SHA-2硬件引擎515选择性地散列,WOTS和L-树优化可以在XMSS签名/验证操作方面提供大约33%的整体改进。
在一些实施例中:
(i)加速器利用可重配置电路装置中的现有SHA-2硬件引擎515来实现XMSS的L-树操作和延迟关键WOTS中的预散列优化;
(ii)XMSS状态机525用于执行资源感知散列链分布,从而最大化现有SHA-2硬件515和构造上专用SHA加速器之间的资源利用;以及
(iii)XMSS状态机525实现提供可重配置性,以将本地存储的所有顺序逻辑映射到嵌入式RAM以权衡存储器对LUT(查找表)利用。
图5B是根据一些实施例的用于可重配置电路装置的XMSS实现的状态机的图示。在一些实施例中,用于可重配置电路装置的XMSS实现的状态机530,诸如图5A中所示的状态机525,包括用于处理XMSS签名或验证操作的数据流的控制器组件。控制器用于控制一个或多个专用SHA-2引擎534,以及提供本地寄存器536,以存储用于XMSS性能增强的中间值和预计算值。
在一些实施例中,取决于可重配置电路装置的资源要求,状态机540可以被配置成将可重配置电路装置的构造(诸如图5A中所示的FPGA构造520)内的LUT用于存储元件,或者配置成将所有顺序逻辑映射到嵌入式存储器,诸如图5A中的嵌入式存储器505。这可以在初始配置期间被执行,或者在场(field)上被动态地重新配置。该特征能够实现在可重配置电路装置上添加新特征的灵活性,同时仍然保持可靠的XMSS性能。在一些实施例中,重新配置可以被扩展到启用或禁用构造上SHA-2引擎534,以根据要求权衡性能对(versus)资源利用。
图5C图示根据一些实施例的包括用于XMSS签名操作的可重配置电路装置的计算系统或设备。在一些实施例中,计算系统或设备560包括一个或多个处理器565;用于保持数据的存储器570,其可以包括诸如动态随机存取存储器(DRAM)之类的易失性存储器和诸如闪速存储器之类的非易失性存储器(NVM);诸如固态驱动(SSD)、硬盘驱动或其它存储装置之类的针对数据的存储设备575;以及用于数据的接收或传输(包括有线传输和无线传输中的任一个或两者)的一个或多个输入和输出端口580。计算系统或设备460可以包括如在图7中图示的计算架构700中提供的额外组件。
在一些实施例中,计算系统或设备560还包括一个或多个可重配置电路装置585,其可以包括FPGA、CPLD或其它可重配置电路装置。在一些实施例中,可重配置电路装置用于被编程以利用在可重配置电路装置的可编程互连构造589中实现的SDM的硬件元件和状态机来提供XMSS签名操作,如针对图5A中的FPGA 500所示的那样。
图6图示根据一些实施例的用于XMSS签名操作的可重配置电路装置的资源感知散列调度。在一些实施例中,诸如图5A中所示的FPGA 500之类的可重配置电路装置以识别装置的资源限制的方式,利用被编程到装置中的现有硬件和专用安全性实现来提供散列调度。
对于高吞吐量应用,可以在FPGA构造上(诸如在图5A中图示的FPGA的FPGA构造520中)实现额外SHA-2引擎,以与现有SHA-2加速器515一起工作。取决于与现有SHA-2引擎的接口(诸如SDM接口),可能在SHA-2引擎和XMSS状态机之间存在处置数据中牵涉的延迟开销。然而,在构造上实现的专用SHA-2引擎不招致这样的开销。因为在签名/验证期间的WOTS链长度取决于输入消息是可变的,所以提出了资源感知调度以实现接近理想的资源利用和XMSS性能。
用于调度的通用方法可以在现有SHA-2引擎和专用构造SHA-2引擎之间交替地分配WOTS链。这可以例如是图6中图示的有序散列链调度600,其中奇数散列链被调度到现有SHA-2引擎(即,可重配置电路装置的硬件),并且偶数散列链被调度到专用SHA-2引擎(即,被配置到可重配置电路装置的构造中的SHA-2引擎),或者对于奇数散列链和偶数散列链是相反的。存在可以被应用的其它类似示例。然而,该调度没有将可用于散列链处理的资源的性质考虑在内。
在一些实施例中,XMSS状态机用于利用资源感知散列链调度650,其中散列链调度至少部分地基于FPGA的资源(包括SHA-2)。在特定的实现中,XMSS状态机用于基于链长度来调度散列链,其中较短的链被分配给较慢的现有SHA-2引擎,而较长的链被调度以由FPGA构造中的专用SHA-2引擎来执行。
在资源感知散列链调度650的备选实现中,可以在FPGA构造上设计和实现低速SHA-2硬件。在该实例中,SDM中的现有SHA-2可以比专用SHA-2硬件更快。出于这个原因,散列链调度器可以相应地将较长的散列链分配给现有SHA-2引擎,并且将较短的散列链分配给专用SHA-2引擎。还可以实现资源感知散列链调度的其它实例。
在一些实施例中,分配给每个引擎的链的数量还取决于消息和资源可用性而动态地配置。这种调度最小化任一个引擎的空闲时间,并且改进XMSS操作的速度。
提供资源感知调度的实施例,诸如图6中所示的那样,可缩放到在构造上实现的多于一个专用引擎。在一些实施例中,控制器组件可配置以动态地改变可用SHA-2引擎的数量,并且适应于散列链调度的可用资源。
图7图示可以适合于实现如先前所描述的各种实施例的示范性计算架构的实施例。实施例可以包括计算架构,该计算架构包括用于可重配置电路装置的后量子公钥签名验证,诸如图3A至图6中所示的那样。
在各种实施例中,计算架构700可以包括电子装置的一部分或实现为电子装置的一部分。在一些实施例中,计算架构700可以表示例如实现上述的操作环境的一个或多个成分的计算机系统。在一些实施例中,计算架构700可以表示实现本文中所描述的一个或多个技术的深度神经网络(DNN)训练系统的一个或多个部分或组件。在本上下文下,实施例不受限制。
如本申请中所使用的,术语“系统”和“组件”以及“模块”旨在指与计算机相关的实体(硬件、硬件和软件的组合、软件或执行中的软件),所述实体的示例由示范性计算架构700提供。例如,组件能够是但不限于在处理器上运行的过程、处理器、硬盘驱动或固态驱动(SSD)、多个存储驱动(光存储介质和/或磁存储介质的存储驱动)、对象、可执行文件、执行线程、程序和/或计算机。以图示方式,服务器和在服务器上运行的应用两者都能够是组件。一个或多个组件能够驻留于过程和/或执行线程内,并且,组件能够本地化于一个计算机上和/或分布于两个或更多个计算机之间。而且,组件可以通过各种类型的通信介质而彼此通信地耦合以协调操作。该协调可以涉及单向或双向信息交换。例如,组件可以将信息以通过通信介质传递的信号的形式传递。信息能够实现为分配到各种信号线路的信号。在这样的分配中,每个消息是信号。然而,另外的实施例可以备选地采用数据消息。这样的数据消息可以跨过各种连接发送。示范性连接包括并行接口、串行接口以及总线接口。
计算架构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能够具有单个内部高速缓存或多级内部高速缓存。在一些实施例中,高速缓存存储器在处理器702的各种组件之间共享。在一些实施例中,处理器702还使用可以使用已知的高速缓存一致性技术在处理器核707之间共享的外部高速缓存(例如,三级(L3)高速缓存或末级高速缓存(LLC))(未示出)。寄存器文件706另外被包括于处理器702中,所述处理器702可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器以及指令指针寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可以特定于处理器702的设计。
在一些实施例中,一个或多个处理器702与一个或多个接口总线710耦合,以在处理器702与该系统中的其它组件之间传送通信信号,诸如地址、数据或控制信号。在一个实施例中,接口总线710能够是处理器总线,诸如,直接媒体接口(DMI)总线的版本。然而,处理器总线不限于DMI总线,并且可以包括一个或多个外围组件互连总线(例如,PCI、PCIExpress)、存储器总线或其它类型的接口总线。在一个实施例中,(一个或多个)处理器702包括集成存储器控制器716和平台控制器集线器730。存储器控制器716促进存储器装置与系统700的其它组件之间的通信,而平台控制器集线器(PCH)730经由本地I/O总线来提供对I/O装置的连接。
存储器装置720能够是动态随机存取存储器(DRAM)装置、静态随机存取存储器(SRAM)装置、闪速存储器装置、相变存储器装置或具有充当过程存储器的适合性能的其他存储器装置。在一个实施例中,存储器装置720能够作为用于系统700的系统存储器而操作,以存储供当一个或多个处理器702执行应用或过程时使用的数据722和指令721。存储器控制器集线器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(例如,硬盘驱动器、闪速存储器等等)。数据存储装置724能够经由存储接口(例如,SATA)或经由外围总线(诸如,外围组件互连总线(例如,PCI、PCI Express))来连接。触摸传感器725能够包括触摸屏传感器、压力传感器或指纹传感器。无线收发器726能够是Wi-Fi收发器、蓝牙收发器或移动网络收发器,诸如,3G、4G、长期演进(LTE)或5G收发器。固件接口728能够实现与系统固件的通信,并且能够是例如统一可扩展固件接口(UEFI)。网络控制器734可能够实现对有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线710耦合。在一个实施例中,音频控制器746是多通道高清晰度音频控制器。在一个实施例中,系统700包括用于使传统(例如,个人系统2(PS/2))装置耦合到该系统的可选的传统I/O控制器740。平台控制器集线器730还能够连接到使输入装置(诸如,键盘和鼠标743组合、相机744或其它USB输入装置)连接的一个或多个通用串行总线(USB)控制器742。
在一些实施例中,一种设备,包括:一个或多个处理器;以及可重配置电路装置,所述可重配置电路装置包括:专用密码散列硬件引擎,以及包括多个逻辑元件(LE)的可重配置构造;其中所述一个或多个处理器用于将所述可重配置电路装置配置用于公钥签名操作,包括:将用于公钥生成和验证的状态机映射到所述可重配置构造,包括将一个或多个密码散列引擎映射到所述可重配置构造,以及将所述专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证。
在一些实施例中,所述可重配置电路装置是FPGA(现场可编程门阵列)或CPLD(复杂可编程逻辑装置)中的一个。
在一些实施例中,所述公钥签名操作包括XMSS(扩展Merkel签名方案)。
在一些实施例中,所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎是SHA-2(安全散列算法2)引擎。
在一些实施例中,所述专用密码散列硬件引擎是安全装置管理器(SDM)的一部分。
在一些实施例中,所述状态机包括用于控制所述公钥生成和验证的操作的控制器。
在一些实施例中,所述控制器用于至少部分地基于所述可重配置电路装置的资源,在所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎之间调度用于所述公钥生成和验证的散列链。
在一些实施例中,散列链的所述调度包括以下中的一个或多个:至少部分地基于每个散列链的长度来调度散列链、或者至少部分地基于每个散列链的长度来调度散列链。
在一些实施例中,将所述可重配置电路装置配置用于公钥签名操作还包括:将用于公钥签名操作的存储配置给所述可重配置电路装置的嵌入式存储器或者配置给可重配置构造。
在一些实施例中,一个或多个非暂时性计算机可读存储介质,其具有存储在其上的可执行计算机程序指令,所述可执行计算机程序指令当由一个或多个处理器执行时,使得所述一个或多个处理器执行操作,包括:将可重配置电路装置配置给公钥签名操作,包括:将用于公钥生成和验证的状态机映射到所述可重配置电路装置的可重配置构造,包括将一个或多个密码散列引擎映射到所述可重配置构造,以及将所述可重配置电路装置的专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证;以及利用所述可重配置电路装置来执行公共签名生成或验证。
在一些实施例中,所述可重配置电路装置是FPGA(现场可编程门阵列)或CPLD(复杂可编程逻辑装置)中的一个。
在一些实施例中,所述公钥签名操作包括XMSS(扩展Merkel签名方案)。
在一些实施例中,所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎是SHA-2(安全散列算法2)引擎。
在一些实施例中,所述指令还包括指令用于:至少部分地基于所述可重配置电路装置的资源,在所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎之间调度用于所述公钥生成和验证的散列链。
在一些实施例中,散列链的所述调度包括以下中的一个或多个:至少部分地基于每个散列链的长度来调度散列链、或者至少部分地基于每个散列链的长度来调度散列链。
在一些实施例中,将所述可重配置电路装置配置用于公钥签名操作还包括:将用于公钥签名操作的存储配置给所述可重配置电路装置的嵌入式存储器或者配置给可重配置构造。
在一些实施例中,一种计算系统,包括:一个或多个处理器;用于存储数据的动态随机存取存储器(DRAM);以及FPGA(现场可编程门阵列),所述FPGA包括:专用密码散列硬件引擎,以及包括多个逻辑元件(LE)的可重配置构造;其中所述一个或多个处理器用于将所述FPGA配置用于XMSS(扩展Merkel签名方案)公钥签名操作,包括:将用于XMSS公钥生成和验证的状态机映射到所述可重配置构造,包括将一个或多个密码散列引擎映射到所述可重配置构造,以及将所述专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证。
在一些实施例中,所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎是SHA-2(安全散列算法2)引擎。
在一些实施例中,所述专用密码散列硬件引擎是安全装置管理器(SDM)的一部分。
在一些实施例中,所述状态机包括用于控制所述XMSS公钥生成和验证的操作的控制器组件。
在一些实施例中,所述控制器组件用于至少部分地基于所述FPGA的资源,在所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎之间调度用于所述XMSS公钥生成和验证的散列链。
在一些实施例中,一种方法包括:将可重配置电路装置配置给公钥签名操作,包括:将用于公钥生成和验证的状态机映射到所述可重配置电路装置的可重配置构造,包括将一个或多个密码散列引擎映射到所述可重配置构造,以及将所述可重配置电路装置的专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证;以及利用所述可重配置电路装置来执行公共签名生成或验证。
在一些实施例中,所述可重配置电路装置是FPGA(现场可编程门阵列)或CPLD(复杂可编程逻辑装置)中的一个。
在一些实施例中,所述公钥签名操作包括XMSS(扩展Merkel签名方案)。
在一些实施例中,所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎是SHA-2(安全散列算法2)引擎。
在一些实施例中,所述方法还包括至少部分地基于所述可重配置电路装置的资源,在所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎之间调度用于所述公钥生成和验证的散列链。
在一些实施例中,散列链的所述调度包括以下中的一个或多个:至少部分地基于每个散列链的长度来调度散列链、或者至少部分地基于每个散列链的长度来调度散列链。
在一些实施例中,将所述可重配置电路装置配置用于公钥签名操作还包括:将用于公钥签名操作的存储配置给所述可重配置电路装置的嵌入式存储器或者配置给可重配置构造。
在一些实施例中,一种设备包括:用于将可重配置电路装置配置给公钥签名操作的部件,包括用于将用于公钥生成和验证的状态机映射到所述可重配置电路装置的可重配置构造,包括将一个或多个密码散列引擎映射到所述可重配置构造的部件,以及用于将所述可重配置电路装置的专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证的部件;以及用于利用所述可重配置电路装置来执行公共签名生成或验证的部件。
在一些实施例中,所述可重配置电路装置是FPGA(现场可编程门阵列)或CPLD(复杂可编程逻辑装置)中的一个。
在一些实施例中,所述公钥签名操作包括XMSS(扩展Merkel签名方案)。
在一些实施例中,所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎是SHA-2(安全散列算法2)引擎。
在一些实施例中,所述设备还包括用于至少部分地基于所述可重配置电路装置的资源,在所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎之间调度用于所述公钥生成和验证的散列链的部件。
在一些实施例中,散列链的所述调度包括以下中的一个或多个:至少部分地基于每个散列链的长度来调度散列链、或者至少部分地基于每个散列链的长度来调度散列链。
在一些实施例中,将所述可重配置电路装置配置用于公钥签名操作还包括:将用于公钥签名操作的存储配置给所述可重配置电路装置的嵌入式存储器或者配置给可重配置构造。
在以上描述中,出于解释的目的,阐明许多特定细节以便提供对所描述的实施例的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些特定细节中的一些的情况下实行实施例。在其它实例中,以框图形式示出众所周知的结构和装置。在图示的组件之间可能存在中间结构。本文中描述或图示的组件可以具有未图示或描述的额外输入或输出。
各种实施例可以包括各种过程。这些过程可以由硬件组件执行,或者可以被体现在计算机程序或机器可执行指令中,所述计算机程序或机器可执行指令可以被用于使得通用处理器或专用处理器或利用指令编程以执行过程的逻辑电路。备选地,过程可以由硬件和软件的组合执行。
各种实施例的部分可以作为计算机程序产品被提供,所述计算机程序产品可以包括具有存储在其上的计算机程序指令的计算机可读介质,所述计算机程序指令可以被用于对计算机(或其它电子装置)编程,以用于由一个或多个处理器执行,从而执行根据某些实施例的过程。计算机可读介质可以包括但不限于磁盘、光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器或适合于存储电子指令的其它类型的计算机可读介质。此外,实施例还可以作为计算机程序产品被下载,其中程序可以从远程计算机转移到请求计算机。
许多方法以它们最基本的形式被描述,但是在不偏离本实施例的基本范围的情况下,可以向任何方法添加或从任何方法删除过程,并且可以向任何描述的消息添加或从任何描述的消息减去信息。对于本领域技术人员将显而易见的是,可以进行许多进一步的修改和调整。提供特定实施例不是为了限制概念,而是为了说明概念。实施例的范围不是要由上面提供的特定示例确定,而是仅由下面的权利要求书确定。
如果说元件“A”耦合到元件“B”或与元件“B”耦合,则元件A可以直接耦合到元件B,或者通过例如元件C间接耦合。当说明书或权利要求书陈述组件、特征、结构、过程或特性A“导致”组件、特征、结构、过程或特性B时,这意味着“A”至少是“B”的部分原因,但也可能存在有助于导致“B”的至少一个其它组件、特征、结构、过程或特性。如果说明书指示“可以”、“可能”或“能够”包括组件、特征、结构、过程或特性,则不要求包括该特定组件、特征、结构、过程或特性。如果说明书或权利要求书提到“一”或“一个”元件,则这并不意味着仅存在所描述的元件中的一个。
实施例是实现或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”或“其它实施例”的引用意味着结合实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但不一定被包括在所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定全部指的是相同的实施例。应当领会,在示例性实施例的前述中,出于简化本公开并且帮助理解各个新颖方面中的一个或多个的目的,有时将各个特征一起分组在其单个实施例、附图或描述中。然而,这种公开的方法不要被解释为反映所要求保护的实施例要求比每个权利要求中明确记叙的特征更多的特征的意图。相反,如以下权利要求书所反映的那样,新颖方面在于少于单个前述公开的实施例的所有特征。因此,权利要求书由此明确地并入本说明书中,其中每个权利要求独立地作为单独的实施例。
Claims (21)
1.一种设备,包括:
一个或多个处理器;以及
可重配置电路装置,所述可重配置电路装置包括:
专用密码散列硬件引擎,以及
包括多个逻辑元件(LE)的可重配置构造;
其中所述一个或多个处理器用于将所述可重配置电路装置配置用于公钥签名操作,包括:
将用于公钥生成和验证的状态机映射到所述可重配置构造,包括将一个或多个密码散列引擎映射到所述可重配置构造,以及
将所述专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证。
2.根据权利要求1所述的设备,其中所述可重配置电路装置是FPGA(现场可编程门阵列)或CPLD(复杂可编程逻辑装置)中的一个。
3.根据权利要求1所述的设备,其中所述公钥签名操作包括XMSS(扩展Merkel签名方案)。
4.根据权利要求1所述的设备,其中所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎是SHA-2(安全散列算法2)引擎。
5.根据权利要求1所述的设备,其中所述专用密码散列硬件引擎是安全装置管理器(SDM)的一部分。
6.根据权利要求1所述的设备,其中所述状态机包括用于控制所述公钥生成和验证的操作的控制器。
7.根据权利要求6所述的设备,其中所述控制器用于至少部分地基于所述可重配置电路装置的资源,在所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎之间调度用于所述公钥生成和验证的散列链。
8.根据权利要求7所述的设备,其中散列链的所述调度包括以下中的一个或多个:至少部分地基于每个散列链的长度来调度散列链、或者至少部分地基于每个散列链的长度来调度散列链。
9.根据权利要求1所述的设备,其中将所述可重配置电路装置配置用于公钥签名操作还包括:将用于公钥签名操作的存储配置给所述可重配置电路装置的嵌入式存储器或者配置给可重配置构造。
10.一种设备,包括
用于将可重配置电路装置配置给公钥签名操作的部件,包括:
用于将用于公钥生成和验证的状态机映射到所述可重配置电路装置的可重配置构造的部件,包括用于将一个或多个密码散列引擎映射到所述可重配置构造的部件,以及
用于将所述可重配置电路装置的专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证的部件;以及
用于利用所述可重配置电路装置来执行公共签名生成或验证的部件。
11.根据权利要求10所述的设备,其中所述可重配置电路装置是FPGA(现场可编程门阵列)或CPLD(复杂可编程逻辑装置)中的一个。
12.根据权利要求10所述的设备,其中所述公钥签名操作包括XMSS(扩展Merkel签名方案)。
13.根据权利要求10所述的设备,其中所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎是SHA-2(安全散列算法2)引擎。
14.根据权利要求10所述的设备,还包括:
用于至少部分地基于所述可重配置电路装置的资源,在所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎之间调度用于所述公钥生成和验证的散列链的部件。
15.根据权利要求14所述的设备,其中用于散列链的调度的所述部件包括以下中的一个或多个:用于至少部分地基于每个散列链的长度来调度散列链的部件、或者用于至少部分地基于每个散列链的长度来调度散列链的部件。
16.根据权利要求10所述的设备,其中用于将所述可重配置电路装置配置用于公钥签名操作的所述部件还包括:用于将用于公钥签名操作的存储配置给所述可重配置电路装置的嵌入式存储器或者配置给可重配置构造的部件。
17.一种计算系统,包括:
一个或多个处理器;
用于存储数据的动态随机存取存储器(DRAM);以及
FPGA(现场可编程门阵列),所述FPGA包括:
专用密码散列硬件引擎,以及
包括多个逻辑元件(LE)的可重配置构造;
其中所述一个或多个处理器用于将所述FPGA配置用于XMSS(扩展Merkel签名方案)公钥签名操作,包括:
将用于XMSS公钥生成和验证的状态机映射到所述可重配置构造,包括将一个或多个密码散列引擎映射到所述可重配置构造,以及
将所述专用密码散列硬件引擎与一个或多个映射的密码散列引擎组合以用于密码签名生成和验证。
18.根据权利要求17所述的计算系统,其中所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎是SHA-2(安全散列算法2)引擎。
19.根据权利要求17所述的计算系统,其中所述专用密码散列硬件引擎是安全装置管理器(SDM)的一部分。
20.根据权利要求17所述的计算系统,其中所述状态机包括用于控制所述XMSS公钥生成和验证的操作的控制器组件。
21.根据权利要求20所述的计算系统,其中所述控制器组件用于至少部分地基于所述FPGA的资源,在所述专用密码散列硬件引擎和所述一个或多个映射的密码散列引擎之间调度用于所述XMSS公钥生成和验证的散列链。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/456339 | 2019-06-28 | ||
US16/456,339 US11205017B2 (en) | 2019-06-28 | 2019-06-28 | Post quantum public key signature operation for reconfigurable circuit devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112152782A true CN112152782A (zh) | 2020-12-29 |
Family
ID=68236486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010218806.3A Pending CN112152782A (zh) | 2019-06-28 | 2020-03-25 | 用于可重配置电路装置的后量子公钥签名操作 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11205017B2 (zh) |
EP (1) | EP3758275B1 (zh) |
CN (1) | CN112152782A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11205017B2 (en) | 2019-06-28 | 2021-12-21 | Intel Corporation | Post quantum public key signature operation for reconfigurable circuit devices |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11456877B2 (en) * | 2019-06-28 | 2022-09-27 | Intel Corporation | Unified accelerator for classical and post-quantum digital signature schemes in computing environments |
US11218303B2 (en) * | 2020-03-27 | 2022-01-04 | Ahp-Tech Inc. | Quantum attack-resistant system to facilitate and enhance processes of cryptography key exchange |
US11575515B2 (en) * | 2020-12-23 | 2023-02-07 | Intel Corporation | Post-quantum secure remote attestation for autonomous systems |
US11496447B1 (en) * | 2021-04-16 | 2022-11-08 | Umm AI-Qura University | Cryptosystem and method with efficient elliptic curve operators for an extraction of EiSi coordinate system |
CN116541898B (zh) * | 2023-07-07 | 2023-10-13 | 山东多次方半导体有限公司 | 一种基于fpga实现多算法可重配置的密码卡设计方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10348495B2 (en) | 2017-02-23 | 2019-07-09 | Intel Corporation | Configurable crypto hardware engine |
US11205017B2 (en) | 2019-06-28 | 2021-12-21 | Intel Corporation | Post quantum public key signature operation for reconfigurable circuit devices |
-
2019
- 2019-06-28 US US16/456,339 patent/US11205017B2/en active Active
-
2020
- 2020-03-20 EP EP20164630.4A patent/EP3758275B1/en active Active
- 2020-03-25 CN CN202010218806.3A patent/CN112152782A/zh active Pending
-
2021
- 2021-12-15 US US17/551,961 patent/US20220108039A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11205017B2 (en) | 2019-06-28 | 2021-12-21 | Intel Corporation | Post quantum public key signature operation for reconfigurable circuit devices |
Also Published As
Publication number | Publication date |
---|---|
US20190325166A1 (en) | 2019-10-24 |
EP3758275A1 (en) | 2020-12-30 |
EP3758275B1 (en) | 2023-05-24 |
US11205017B2 (en) | 2021-12-21 |
US20220108039A1 (en) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303429B2 (en) | Combined SHA2 and SHA3 based XMSS hardware accelerator | |
US11770258B2 (en) | Accelerators for post-quantum cryptography secure hash-based signing and verification | |
EP3758285B1 (en) | Odd index precomputation for authentication path computation | |
US11205017B2 (en) | Post quantum public key signature operation for reconfigurable circuit devices | |
US11575521B2 (en) | Fast XMSS signature verification and nonce sampling process without signature expansion | |
US11405213B2 (en) | Low latency post-quantum signature verification for fast secure-boot | |
US11240039B2 (en) | Message index aware multi-hash accelerator for post quantum cryptography secure hash-based signing and verification | |
EP3758290A1 (en) | Parallel processing techniques for hash-based signature algorithms | |
WO2023107776A1 (en) | Efficient hybridization of classical and post-quantum signatures | |
WO2023107775A1 (en) | Computation of xmss signature with limited runtime storage | |
US20220109558A1 (en) | Xmss management to address randomized hashing and federal information processing standards | |
US20220123949A1 (en) | Side channel protection for xmss signature function | |
US20240031164A1 (en) | Hybridization of dilithium and falcon for digital signatures | |
US20220416998A1 (en) | Side channel protection for sha3 cryptographic functions |
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 |