CN112152783A - 用于快速安全启动的低时延后量子签名验证 - Google Patents
用于快速安全启动的低时延后量子签名验证 Download PDFInfo
- Publication number
- CN112152783A CN112152783A CN202010218882.4A CN202010218882A CN112152783A CN 112152783 A CN112152783 A CN 112152783A CN 202010218882 A CN202010218882 A CN 202010218882A CN 112152783 A CN112152783 A CN 112152783A
- Authority
- CN
- China
- Prior art keywords
- xmss
- logic
- signature
- sha3
- hash
- 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/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/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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- 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
-
- 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/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
- 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)
- Power Engineering (AREA)
- Electromagnetism (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
在一个示例中,设备包括:计算机可读存储器;XMSS验证管理器逻辑,用于管理XMSS验证功能;单次签名及公钥生成器逻辑;链函数逻辑,用于实现链函数算法;低时延SHA3硬件引擎;以及寄存器组,所述寄存器组通信地耦合到XMSS验证管理器逻辑。可以描述其它示例。
Description
背景技术
本文中所描述的主题一般涉及计算机安全性的领域,并且更特别地涉及用于后量子密码安全基于扩展Merkle签名方案(XMSS)和Leighton/Micali签名(LMS)散列(hash)的签名和验证的加速器。
预期现有的公钥数字签名算法(诸如,Rivest-Shamir-Adleman(RSA)和椭圆曲线数字签名算法(ECDSA))对抗基于诸如使用量子计算机的Shor算法之类的算法的蛮力(brute-force)攻击是不安全的。因此,在密码研究团体中并且在各种标准主体中正在努力定义对于对抗量子计算机而安全的算法的新标准。
因此,用于实现快速安全启动操作的低时延后量子签名验证的技术可以例如在基于计算机的通信系统和方法中找到效用。
附图说明
本详述参考附图而描述。
图1A和图1B分别是基于单次散列的签名方案和基于多次散列的签名方案的示意图示。
图2A-2B分别是单次签名方案和多次签名方案的示意图示。
图3是根据一些示例的签名装置和验证装置的示意图示。
图4A是根据一些示例的Merkle树结构的示意图示。
图4B是根据一些示例的Merkle树结构的示意图示。
图5是根据一些示例的实现签名算法的架构中的计算块的示意图示。
图6A是根据一些示例的在签名算法中实现签名生成的架构中的计算块的示意图示。
图6B是根据一些示例的在验证算法中实现签名验证的架构中的计算块的示意图示。
图7是根据一些示例的实现用于快速安全启动操作的低时延后量子签名验证的架构中的计算块的示意图示。
图8是根据一些示例的实现用于快速安全启动操作的低时延后量子签名验证的架构中的计算块的示意图示。
图9是图示根据一些示例的实现用于快速安全启动操作的低时延后量子签名验证的方法中的操作的流程图。
图10是图示根据一些示例的实现用于快速安全启动操作的低时延后量子签名验证的方法中的操作的流程图。
图11是根据一些示例的可以适于实现硬件加速的计算架构的示意图示。
具体实施方式
在本文中描述了实现用于后量子密码安全基于散列的签名算法的加速器的示范性系统和方法。在下文的描述中,阐明许多特定细节,以提供对各种示例的透彻理解。然而,本领域技术人员将理解,可以实践各种示例而无需特定细节。在其它实例中,尚未详细地图示或描述众所周知的方法、过程、组件以及电路,用于不使示例晦涩难懂。
如在上文中简略描述的那样,预期现有的公钥数字签名算法(诸如,Rivest-Shamir-Adleman(RSA)和椭圆曲线数字签名算法(ECDSA))对抗基于诸如使用量子计算机的Shor算法之类的算法的蛮力攻击是不安全的。扩展Merkle签名方案(XMSS)和/或扩展Merkle多次签名方案(XMSS-MT)是能够保护以免受量子计算机攻击的基于散列的签名方案。如本文中所使用的,术语XMSS应当指XMSS方案和XMSS-MT方案两者。
XMSS签名过程实现将单次签名方案(诸如,Winternitz单次签名(WOTS)或其衍生方案(例如,WOTS+))与作为主要的底层散列函数的安全散列算法(SHA)(诸如,SHA2-256)组合使用的基于散列的签名方案。在一些示例中,XMSS签名/验证方案还可以将SHA2-512、SHA3-SHAKE-256或SHA3-SHAKE-512中的一个或多个用作安全散列函数。特定于XMSS的散列函数包括伪随机函数(PRF)、链散列(F)、树散列(H)以及消息散列函数(Hmsg)。如本文中所使用的,术语WOTS应当指WOTS签名方案和或诸如WOTS+之类的衍生方案。
Leighton/Micali签名(LMS)方案是将Leighton/Micali单次签名(LM-OTS)用作单次签名构建块的另一基于散列的签名方案。LMS签名基于SHA2-256散列函数。
XMSS签名过程包括三个主要操作。第一主要操作接收输入消息(M)和私钥(sk),并且利用单次签名算法(例如,WOTS+)来生成对公钥(pk)编码的消息代表(M’)。在128位后量子安全性实现中,输入消息M受到散列函数的作用,并且然后被分成67个消息成分(各自n字节),这些消息成分中的每个受到散列链函数的作用,以生成数字签名的对应的67个成分。每个链函数调用一系列的底层安全散列算法(SHA)。
第二主要操作是L树计算,该L树计算使WOTS+(或WOTS)公钥成分(各自n字节)组合,并且产生单个n字节值。例如,在128位后量子安全性中,存在67个公钥成分,这些公钥成分中的每个调用在输入块上实行的底层安全散列算法(SHA)。
第三主要操作是构造Merkle树的树散列操作。在XMSS验证中,作为签名的一部分而提供的认证路径和L树操作的输出通过树散列操作来处理,以生成Merkle树的根节点,其应当对应于XMSS公钥。对于具有128位后量子安全性的XMSS验证,遍历Merkle树包括执行安全散列操作。在XMSS验证中,树散列操作的输出与已知的公钥比较。如果它们匹配,则签名被接受。相比之下,如果它们不匹配,则签名被拒绝。
XMSS签名过程在计算上是高成本的。XMSS签名过程调用数百次或甚至数千次散列计算循环。本文中所描述的主题通过提供实现用于后量子密码安全基于XMSS和LMS散列的签名和验证的加速器的系统和方法而解决这些问题及其它问题。
后量子密码概述
后量子密码(也被称为“防范量子(quantum-proof)”、“量子安全”、“抵抗量子”或简称为“PQC”)针对密码而采取未来及现实方法。后量子密码使负责密码的那些人以及终端用户作好获知密码过时的准备;更确切地说,后量子密码需要演进到能够成功地解决使计算装置演进成量子计算和后量子计算。
清楚理解到,密码虑及对使用各种网络在个体和实体之间在线地传递并且存储的数据的保护。该数据通信能够在如下范围:发送和接收电子邮件、在线地购买商品或服务、使用网站来访问银行业务或其它个人信息等等。
常规的密码及其困难的数学场景的典型的密码因式分解和计算可能与何时处置量子计算无关。这些数学问题(诸如,离散对数、整数因式分解化以及椭圆曲线离散对数等等)不能抵挡来自强大的量子计算机的攻击。虽然能够在当前密码上构建任何后量子密码,但新型方法将需要智能、快速并且精确到足以抵抗并且击败由量子计算机作出的任何攻击。
如今的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方案等等那样的密码系统。随着量子计算的出现,并且带着对量子计算的发展的期待,已存在关于量子计算可能提出的各种挑战和能够进行什么以使用密码领域来应对这样的挑战的顾虑。
为了应对量子计算挑战而研究的一个领域是基于散列的签名(HBS),因为,这些方案存在已久,并且用于应对量子计数和后量子计算挑战的必要的基本要素。HBS方案被视为利用快速平台安全启动来工作的快速签名算法,所述快速平台安全启动被视为最大限度地抵抗量子和后量子计算攻击。
例如,如关于图1A而图示的,示出如下的HBS方案:使用Merkle树连同单次签名(OTS)方案100,诸如使用私钥来对消息签名并且使用对应的公钥来验证OTS消息,其中,私钥仅对单个消息签名。
类似地,如关于图1B而图示的,示出另一HBS方案:其中该方案涉及多次签名(MTS)方案150,其中,私钥能够对多个消息签名。
图2A和图2B分别图示单次签名方案和多次签名方案。继续参考图1A的基于HBS的OTS方案100和图1B的MTS方案150,相应地,图2A图示与h(x)|h(y)完全不同而公布为hw(x)的由斯坦福大学数学系的Robert Winternitz提供的Winternitz OTS方案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树的XMSS方案255的组合。如先前关于图2A而讨论的,WOTs方案200基于单次公钥pk 215,所述单次公钥pk 215具有各自32字节的67个成分,然后通过L树压缩算法260,以提供在XMSS方案255的XMSS Merkle树中产生的WOTS压缩的pk 265。要构思,XMSS签名验证可以包括计算WOTS验证并且检查以确定重构的根节点是否匹配XMSS公钥(诸如,根节点=XMSS公钥)。
用于后量子密码的加速器
图3是根据一些示例的包括第一装置310和第二装置350的安全环境300的高级架构的示意图示。参考图3,第一装置310和第二装置350中的每个可以体现为能够实行本文中所描述的功能的任何类型的计算装置。例如,在一些实施例中,第一装置310和第二装置350中的每个可以体现为膝上型计算机、平板计算机、笔记本、上网本、超级本TM、智能电话、蜂窝电话、可穿戴计算装置、个人数字助理、移动互联网装置、台式计算机、路由器、服务器、工作站和/或任何其它计算/通信装置。
第一装置310包括一个或多个处理器320和用于存储私钥324的存储器322。(一个或多个)处理器320可以体现为能够实行本文中所描述的功能的任何类型的处理器。例如,(一个或多个)处理器320可以体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器、其它处理器或处理/控制电路。类似地,存储器322可以体现为能够实行本文中所描述的功能的任何类型的易失性或非易失性存储器或数据存储设备。在操作中,存储器322可以存储在第一装置310的操作期间使用的各种数据和软件(诸如,操作系统、应用、程序、库以及驱动器)。存储器322通信地耦合到(一个或多个)处理器320。在一些示例中,私钥324可以驻留于安全存储器中,该安全存储器可以是部分存储器322或可以与存储器322分离。
第一装置310还包括认证逻辑330,所述认证逻辑330包括存储器332、签名逻辑以及验证逻辑336。散列逻辑332配置成对消息(M)进行散列(即,配置成将散列函数应用于消息(M)),以生成消息M的散列值(m’)。散列函数可以包括但不限于安全散列函数(例如,安全散列算法SHA2-256和/或SHA3-256等等)。SHA2-256可以遵守和/或兼容由美国国家标准与技术研究院(NIST)在2012年3月公布的标题为:“"Secure Hash Standard (SHS)(安全散列标准(SHS))”的联邦信息处理标准(FIPS)公布180-4和/或该标准的新版本和/或相关版本。SHA3-256可以遵守和/或兼容由NIST在2015年8月公布的标题为:“SHA-3 Standard:Permutation-Based Hash and Extendable-Output Functions(SHA-3标准:基于排列的散列和可扩展输出函数)”的FIPS公布202、和/或该标准的新版本和/或相关版本。
签名逻辑332可以配置成生成待传送的签名(即,所传送的签名)和/或配置成验证签名。在第一装置310是签名装置的实例中,所传送的签名可以包括数量L的所传送的签名元素,其中每个所传送的签名元素对应于相应的消息元素。例如,对于每个消息元素mi,签名逻辑332可以配置成在私钥sk的每个私钥元素ski上实行所选择的签名操作达与每个消息元素的值相关的相应的次数,mi被包括于消息代表m’中。例如,签名逻辑332可以配置成将所选择的散列函数应用于对应的私钥元素ski达mi次。在另一示例中,签名逻辑332可以配置成将所选择的链函数(其包含散列函数)应用于对应的私钥元素ski达mi次。因而,所选择的签名操作可以对应于所选择的基于散列的签名方案。
基于散列的签名方案可以包括但不限于Winternitz(W)单次签名(OTS)方案、增强Winternitz OTS方案(例如、WOTS+)、Merkle多次签名方案、扩展Merkle签名方案(XMSS)和/或扩展Merkle多树签名方案(XMSS-MT)等等。散列函数可以包括但不限于SHA2-256和/或SHA3-256等等。例如,XMSS和/或XMSS-MT可以遵守或兼容由互联网工程任务组、IETF.RTM.的密码论坛研究组在2015年4月发布的标题为“XMSS: Extended Hash-Based Signatures(XMSS:扩展的基于散列的签名)”的一个或多个IETF.RTM.信息草案互联网注释(例如,草案draft-irtf-cfrg-xmss-hash-based-signatures-00)和/或在2016年6月发布的该信息草案的新版本和/或相关版本(诸如,草案draft-irtf-cfrg-xmss-hash-based-signatures-06)。
Winternitz OTS配置成生成签名并且配置成利用散列函数来验证所接收的签名。Winternitz OTS还配置成使用私钥、并且因而使用每个私钥元素ski一次。例如,WinternitzOTS可以配置成将散列函数应用于每个私钥元素达mi或N-mi次以生成签名,并且配置成将散列函数应用于每个所接收的消息元素达N-mi’或mi’次以生成对应的验证签名元素。Merkle多次签名方案是利用OTS并且可以使用公钥不止一次的基于散列的签名方案。例如,Merkle签名方案可以将Winternitz OTS作为单次签名方案而利用。WOTS+配置成利用一系列散列函数和链函数。
XMSS、WOTS+以及XMSS-MT是利用链函数的基于散列的签名方案的示例。每个链函数配置成封装对散列函数的调用的次数,并且可以进一步实行额外的操作。被包括于链函数中的对散列函数的调用的次数可以是固定的。链函数可以改进相关联的基于散列的签名方案的安全性。如本文中所描述的,基于散列的签名平衡可以类似地使链函数操作平衡。
密码逻辑340配置成代表签名装置310实行各种密码和/或安全性功能。在一些实施例中,密码逻辑340可以体现为密码引擎、签名装置310的独立的安全性协处理器、合并到(一个或多个)处理器320中的密码加速器、或单独的软件/固件。在一些实施例中,密码逻辑340可以生成和/或利用各种密码密钥(例如,对称/非对称密码密钥),以促进加密、解密、签名和/或签名验证。另外,在一些实施例中,密码逻辑340可以促进建立在通信链路上与远程装置的安全连接。应当进一步意识到,在一些实施例中,第一装置310的密码模块340和/或另一模块可以建立在其内部可以存储本文中所描述的数据的一部分和/或可以实行本文中所描述的多个功能的被信任的执行环境或安全包体(enclave)。
在如上所述地生成签名之后,消息M和签名然后可以经由网络通信链路390来通过第一装置310(例如,经由通信逻辑342)发送到第二装置350。在实施例中,消息M可能在传输之前未被加密。在另一实施例中,消息M可能在传输之前被加密。例如,消息M可以通过密码逻辑340而加密,以产生加密消息。
第二装置350还可以包括一个或多个处理器360和用于存储公钥364的存储器362。如上所述,(一个或多个)处理器360可以体现为能够实行本文中所描述的功能的任何类型的处理器。例如,(一个或多个)处理器360可以体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。类似地,存储器362可以体现为能够实行本文中所描述的功能的任何类型的易失性或非易失性存储器或数据存储设备。在操作中,存储器362可以存储在第二装置350的操作期间使用的各种数据和软件(诸如,操作系统、应用、程序、库以及驱动器)。存储器362通信地耦合到(一个或多个)处理器360。
在一些示例中,公钥364可以在先前的交换中提供给验证器装置350。公钥pk配置成包含数量L的公钥元素,即,pk=[pk1, …… , pkL]。公钥364可以例如存储到存储器362。
第二装置350还包括认证逻辑370,所述认证逻辑370包括散列逻辑372、签名逻辑以及验证逻辑376。如上所述,散列逻辑372配置成对消息(M)进行散列(即,配置成将散列函数应用于消息(M)),以生成散列消息(m’)。散列函数可以包括但不限于安全散列函数(例如,安全散列算法SHA2-256和/或SHA3-256等等)。SHA2-256可以遵守和/或兼容由美国国家标准与技术研究院(NIST)在2012年3月公布的标题为:“SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions(安全散列标准(SHS))”的联邦信息处理标准(FIPS)公布180-4和/或该标准的新版本和/或相关版本。SHA3-256可以遵守和/或兼容由NIST在2015年8月公布的标题为:“SHA-3 Standard: Permutation-Based Hash andExtendable-Output Functions(SHA-3标准:基于排列的散列和可扩展输出函数)”的FIPS公布202和/或该标准的新版本和/或相关版本。
在第二装置是验证装置的实例中,认证逻辑370配置成至少部分地基于从第一装置接收的签名并且至少部分地基于所接收的消息代表(m’)而生成验证签名。例如,认证逻辑370可以配置成实行相同签名操作,即,如由认证逻辑330的散列逻辑332所应用那样将相同散列函数或链函数应用于每个所接收的消息元素达数量N-mi’(或mi’)次,以产出验证消息元素。然后可以确定验证签名(即,L个验证消息元素中的每个)是否对应于对应的公钥元素pki。例如,验证逻辑370可以配置成将每个验证消息元素与对应的公钥元素pki比较。如果验证消息元素中的每个都匹配对应的公钥元素pki,则验证对应于成功。换而言之,如果所有验证消息元素都匹配公钥元素pk1, ……, pkL,则验证对应于成功。如果任何验证消息元素都不匹配对应的公钥元素pki,则验证对应于失败。
如在下文中更详细地描述的,在一些示例中,第一装置310的认证逻辑330包括一个或多个加速器338,所述一个或多个加速器338与散列逻辑332、签名逻辑334和/或验证逻辑336合作,以使认证操作加速。类似地,在一些示例中,第二装置310的认证逻辑370包括一个或多个加速器378,所述一个或多个加速器378与散列逻辑372、签名逻辑374和/或验证逻辑376合作,以使认证操作加速。加速器的示例在以下的段落中并且参考附图而描述。
环境300的各种模块可以体现为硬件、软件、固件或以上的组合。例如,环境300的各种模块、逻辑以及其它组件可以形成第一装置310的(一个或多个)处理器320或第二装置350的(一个或多个)处理器360或装置的其它硬件组件的一部分或以其它方式由以上所述来建立。照此,在一些实施例中,环境300的模块中的一个或多个可以体现为电路系统或电气装置(例如,认证电路系统、密码电路系统、通信电路系统、签名电路系统和/或验证电路系统)的集合。另外,在一些实施例中,说明性模块中的一个或多个可以形成另一模块的一部分,和/或说明性模块中的一个或多个可以彼此独立。
图4A是根据一些示例的图示签名操作的Merkle树结构的示意图示。参考图4A,XMSS签名操作要求使用来自每个叶WOTS节点410的本地公钥来生成全局公钥(PK)420的Merkle树400A的构造。在一些示例中,认证路径和根节点值能够离线地计算,使得这些操作不限制性能。每个WOTS节点410具有用于仅对消息进行一次签名的唯一秘密密钥“sk”。XMSS签名由针对输入消息而生成的签名和用于构造Merkle树的根的中间树节点的认证路径组成。
图4B是根据一些示例的验证期间的Merkle树结构400B的示意图示。在验证期间,输入消息和签名用于计算WOTS节点的本地公钥420B,所述本地公钥420B进一步用于使用认证路径来计算树根值。成功验证将使所计算的树根值与由签名实体所共享的公钥PK匹配。WOTS和L树操作分别构成XMSS签名/验证时延的平均82%和16%,因而定义认证系统的总体性能。在本文中描述了各种预计算技术,可以实现这些预计算技术,用于加快WOTS和L树操作,由此改进XMSS性能。技术对于软件和硬件实现两者都适用于其它散列选项并且良好缩放。
图5是根据一些示例的实现签名算法的架构500中的计算块的示意图示。参考图5,WOTS+操作涉及16个SHA2-256散列函数的67个并行链,这些链各自具有作为输入的秘密密钥sk[66:0]。该链中的每个散列操作由使用SHA2-256来生成位掩码和密钥的2个伪随机函数(PRF)组成。位掩码利用先前的散列来进行XOR,并且与作为输入消息的密钥级联成第三SHA2-256散列操作。67×32字节WOTS公钥pk[66:0]通过跨过67个散列链对秘密密钥sk进行散列而生成。
图6A是根据一些示例的在签名算法中实现签名生成的架构600A中的计算块的示意图示。如图6A中所图示的,对于消息签名,对输入消息进行散列和预处理,以计算67×4位值,该值用作在每个链中选定中间散列值的索引。
图6B是根据一些示例的在验证算法中实现签名验证的架构600B中的计算块的示意图示。参考图6B,在验证期间,再次对该消息进行散列,以计算签名索引,并且在每个链中计算剩余的散列操作,以计算WOTS公钥pk。该值和认证路径用于计算Merkle树的根并且与共享的公钥PK比较以验证消息。
低时延签名验证
如在上文中简略描述的那样,基于XMSS散列的签名方案是能够保护安全启动免受量子计算机的后量子签名验证算法。XMSS签名验证由三个主要步骤组成。
第一主要步骤是单次(WOTS+)公钥生成。该步骤将消息表示向量和XMSS签名成分作为输入,并且计算对应的单次WOTS+公钥成分(各自n字节)。它包括针对每个签名/公钥成分而执行链函数,其中,验证中的链函数包括在三(3)个n位输入块(操作码+密钥+M)上的三(3)个SHAKE操作的八(8)次迭代。
第二主要步骤是L树计算,所述L树计算使WOTS+(或WOTS)公钥成分(各自n字节)组合,并且产生单个n字节值。对于128位后量子安全性,存在67个公钥成分。每个散列操作在4n字节输入块上实行,这转化成71个SHAKE操作。
第三主要步骤是树散列操作,所述树散列操作是Merkle树构造步骤。在XMSS验证中,作为签名的一部分而提供的认证路径和L树操作的输出通过树散列操作而处理,以生成Merkle树的根节点,该根节点被认为是对应于XMSS公钥的。对于具有128位后量子安全性的XMSS验证,Merkle树的每层由具有4n位(4x256位)输入的一个散列操作组成。SHAKE功能能够将所有1024位输入作为一个块而捕获。因此,对于具有10 Merkle树深度的XMSS方案而言,将具有用于在树散列中计算根节点的十个(10)SHAKE功能。在XMSS验证的最终步骤中,树散列操作的输出与已知的公钥匹配。如果它们相等,则签名被接受。如果它们不相等,则签名被拒绝。
XMSS中的签名验证操作要求大约1800次散列计算循环。大约90%的散列操作在对XMSS操作的三个32字节输入(在本文中被称为(操作码、密钥以及M))上实行。在一个示例中,SHA3(SHAKE*)算法具有在一个输入块内合适输入集合(操作码+密钥+M)的大的输入块大小,这与SHA2算法中的两个输入块完全不同。另外,SHA3算法利用比SHA2算法少2.7x的24个轮(round)。然而,在一些示例中,SHA3在软件中比SHA2算法更慢,因为,SHA3轮函数(round function)基于在1600位变量上的1位操作,而SHA2算法基于在256位变量上的32位操作。
将认识到,SHA3轮函数中的位操作彼此独立,并且能够在硬件中并行计算。在本文中描述了在执行的单个SHA3轮内并行计算所有1600位操作的SHAKE硬件引擎。此外,SHAKE硬件引擎实现对于一个时钟周期(例如,@500MHz)内的八个SHA3轮的统一数据路径。得到的SHAKE硬件引擎具有用于在包括(操作码+密钥+M)的输入上计算散列的3次循环的时延。另外,硬件引擎使三个子操作(从存储器提取数据、SHAKE操作以及数据再存储到存储器中)流水线化。作为这些设计特征的结果,SHAKE硬件引擎提供能够在像6000次循环(其在500MHz时钟速度下对应于12微秒)一样少中计算XMSS验证操作的低时延XMSS HW引擎。
图7是根据一些示例的实现用于快速安全启动操作的低时延后量子签名验证的XMSS硬件加速器700的架构中的计算块的示意图示。参考图7,在一些示例中,XMSS硬件加速器700可以包括:计算机可读存储器块(或寄存器文件)710,其可以用于存储XMSS输入和用于XMSS操作的中间结果;XMSS验证管理器720;WOTS+(或WOTS)公钥生成管理器逻辑722;L树计算逻辑724;树散列操作逻辑726;以及链函数逻辑728,其经由接口732耦合到低时延SHAKE硬件引擎730。当硬件加速器700针对XMSS验证操作而初始化时,该硬件加速器700切换成受保护模式,并且原子地完成执行,并且在执行期间忽略所有外部读取&写入。
图8是根据一些示例的实现用于快速安全启动操作的低时延后量子签名验证的架构中的计算块的示意图示。图8图示如图7中所描绘的统一SHAKE硬件引擎730的计算块。参考图8,在一些示例中,SHAKE散列算法具有通过24个轮函数处理的1600位状态变量,这些轮函数中的每个包括五个步骤(θ、ρ、π、χ以及ι)。SHAKE硬件引擎730包括能够实现基于操作模式的输入/输出位的特定集合的输入复用器810和输出复用器812。SHAKE硬件引擎730迭代地执行所有24个SHA3轮,并且生成摘要输出814。
在SHAKE128散列操作模式下执行期间,SHAKE硬件引擎730配置有256位状态、1344位输入块以及256位输出。对于每个WOTS链函数的所有输入、L树计算中所涉及的散列以及对于Merkle树根节点计算的散列操作合适于SHAKE128的一个输入块内。当统一SHAKE硬件引擎730接收启动脉冲时,所述统一SHAKE硬件引擎730从msg端口816捕获输入并且启动SHAKE128执行。SHA3的一个轮在一个时钟循环中由SHAKE硬件引擎730计算。在一个轮之后,所述统一SHAKE硬件引擎730更新1600位状态寄存器820。在接下来的时钟循环中,SHAKE硬件引擎730在更新的状态值上计算下一个轮操作,并且对于随后的循环依此类推。在24次这样的迭代之后,状态寄存器820未更新,并且,128位摘要通过摘要传出端口814生成。为了生成256位输出,在生成第一128位输出之后,SHAKE硬件引擎730针对具有输入零(即,迫近(Squeeze))的另一24个SHA3轮而执行,并且生成256位的第二128位输出。
在一些示例中,SHAKE硬件引擎730可以在SHAKE 256模式下执行。在执行SHAKE256操作模式期间,SHAKE硬件引擎730配置有512位状态、1088位输入以及512位输出。在SHAKE256模式下,SHAKE硬件引擎730能够在24个轮之后生成一个256位输出。因此,类似于SHAKE128模式,SHAKE硬件引擎730在第一24个轮中计算第一256位,然后实行用于生成第二256位输出以便计算用于XMSS操作的512位输出的一个额外的迫近。
图9是图示根据一些示例的实现用于快速安全启动操作的低时延后量子签名验证的方法中的操作的流程图。更特别地,图9图示可以由实现用于快速安全启动操作的低时延后量子签名验证的方法中的主过程实现的操作。在一些示例中,图9中所描绘的操作可以由处理器(例如,第一装置中的处理器320中的一个或多个,或第二装置350中的(一个或多个)处理器)实现。参考图9,在操作910,接收XMSS操作。如果在操作915,XMSS硬件加速器700断言(assert)IP_繁忙状态,则控制在操作915保持,并且主过程继续监测XMSS硬件加速器700的状态。
相比之下,如果在操作915,XMSS硬件加速器700未断言IP_繁忙状态,则控制转到操作920,并且主过程将XMSS输入写入到XMSS硬件加速器700。在操作925,主过程将启动脉冲应用于XMSS硬件加速器700。
在操作930,主过程监测XMSS硬件加速器700的状态,以确定XMSS硬件加速器700是否已完成其操作。如果在操作930,XMSS硬件加速器700尚未完成其操作,则主过程继续轮询XMSS硬件加速器700。相比之下,如果在操作930,XMSS硬件加速器700已完成其操作,则控制转到操作935,并且主过程读取XMSS硬件加速器700的结果。
在操作940,主过程将在操作935中从XMSS硬件加速器700读取的所计算的根节点与已知的公钥比较。如果在操作945,所计算的根节点不匹配已知的公钥,则控制转到操作750,并且,签名被拒绝(即,未被验证)。相比之下,如果在操作945,所计算的根节点匹配已知的公钥,则控制转到操作755,并且,签名被接受(即,被验证)。
图10是图示根据一些示例的实现用于快速安全启动操作的低时延后量子签名验证的方法中的操作的流程图。更特别地,图10图示可以由XMSS硬件加速器700实现的操作。参考图10,在操作1010,XMSS硬件加速器700断言IP_繁忙状态,并且,在操作1015,XMSS硬件加速器700切换成受保护模式,在所述受保护模式下,XMSS硬件加速器700忽略外部读取/写入操作,并且调用XMSS操作状态机以执行XMSS操作。
在操作1020,WOTS+公钥生成逻辑722被调用,以重复地实现单次签名操作,直到单次签名操作完成为止。WOTS+公钥生成逻辑722在操作725调用链函数逻辑722以实行链函数,并且还在操作730调用SHAKE硬件引擎730以实行SHAKE散列函数。在操作1025,链函数逻辑1025被调用,以实现链函数操作,直到链函数操作完成为止,并且在操作1030,SHAKE硬件引擎730被激活,以实行SHAKE散列函数。
当SHAKE硬件引擎730在操作1030完成散列函数时,控制转到操作1035,并且,XMSS加速器700调用L树计算逻辑724,以实行L树计算。在操作1040,L树计算逻辑724调用SHAKE硬件引擎730,以实行SHAKE散列函数。
当SHAKE硬件引擎730在操作1040完成散列函数时,控制转到操作1045,并且,XMSS加速器700调用树散列操作逻辑726,以实行L树计算。在操作1050,树散列计算逻辑726调用SHAKE硬件引擎,以实行SHAKE散列函数。
当SHAKE硬件引擎730在操作1050完成散列函数时,控制转到操作1055,并且,XMSS加速器700设定完成标志并且释放IP_繁忙状态,使得当主过程在操作930轮询XMSS加速器710时,在操作935,主过程接收XMSS加速器700完成的指示,并且主过程能够读取结果。
图11图示可以适合于实现如先前所描述的各种实施例的示范性计算架构的实施例。在各种实施例中,计算架构1100可以包括电子装置的一部分或实现为电子装置的一部分。在一些实施例中,计算架构1100可以表示例如实现上述的操作环境的一个或多个成分的计算机系统。在一些实施例中,计算架构1100可以表示实现本文中所描述的一个或多个技术的DNN训练系统的一个或多个部分或组件。在本上下文下,实施例不受限制。
如本申请中所使用的,术语“系统”和“组件”以及“模块”旨在指与计算机相关的实体(硬件、硬件和软件的组合、软件或执行中的软件),所述实体的示例由示范性计算架构1100提供。例如,组件能够是但不限于在处理器上运行的过程、处理器、硬盘驱动、多个存储驱动(光存储介质和/或磁存储介质的存储驱动)、对象、可执行文件、执行线程、程序和/或计算机。以图示方式,服务器和在服务器上运行的应用两者都能够是组件。一个或多个组件能够驻留于过程和/或执行线程内,并且,组件能够本地化于一个计算机上和/或分布于两个或更多个计算机之间。而且,组件可以通过各种类型的通信介质而彼此通信地耦合以协调操作。该协调可以涉及单向或双向信息交换。例如,组件可以将信息以通过通信介质传递的信号的形式传递。信息能够实现为分配到各种信号线路的信号。在这样的分配中,每个消息是信号。然而,另外的实施例可以备选地采用数据消息。这样的数据消息可以跨过各种连接发送。示范性连接包括并行接口、串行接口以及总线接口。
计算架构1100包括各种常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等等。然而,实施例不限于由计算架构1100的实现。
如图11中所示出的,计算架构1100包括一个或多个处理器1102和一个或多个图形处理器1108,并且可以是单处理器桌面系统、多处理器工作站系统或具有大量的处理器1102或处理器核1107的服务器系统。在一个实施例中,系统1100是合并于供移动装置、手持装置或嵌入装置使用的芯片上系统(SoC或SOC)集成电路内的处理平台。
系统1100的实施例能够包括基于服务器的游戏平台、游戏控制台(包括游戏和媒体控制台、移动游戏控制台、手持游戏控制台或在线游戏控制台)或合并于其内。在一些实施例中,系统1100是移动电话、智能电话、平板计算装置或移动互联网装置。数据处理系统1100还能够包括可穿戴装置、与可穿戴装置耦合或集成于可穿戴装置内,所述可穿戴装置诸如智能手表可穿戴装置、智能眼镜装置、增强现实装置或虚拟现实装置。在一些实施例中,数据处理系统1100是具有一个或多个处理器1102的电视机或机顶盒装置和由一个或多个图形处理器1108生成的图形界面。
在一些实施例中,一个或多个处理器1102各自包括一个或多个处理器核1107,用于处理指令,所述指令在被执行时,针对系统和用户软件而实行操作。在一些实施例中,一个或多个处理器核1107中的每个配置成处理特定指令集1109。在一些实施例中,指令集1109可以促进复杂指令集计算(CISC)、精简指令集计算(RISC)或经由超长指令字(VLIW)的计算。多个处理器核1107可以各自处理不同的指令集1109,指令集1109可以包括用于促进其它指令集的仿真的指令。处理器核1107还可以包括诸如数字信号处理器(DSP)之类的其它处理装置。
在一些实施例中,处理器1102包括高速缓存存储器1104。取决于架构,处理器1102能够具有单个内部高速缓存或多级内部高速缓存。在一些实施例中,高速缓存存储器在处理器1102的各种组件之间共享。在一些实施例中,处理器1102还使用可以使用已知的高速缓存一致性技术在处理器核1107之间共享的外部高速缓存(例如,三级(L3)高速缓存或末级高速缓存(LLC))(未示出)。寄存器文件1106另外被包括于处理器1102中,所述处理器1102可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器以及指令指针寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可以特定于处理器1102的设计。
在一些实施例中,一个或多个处理器1102与一个或多个接口总线1110耦合,以在处理器1102与该系统中的其它组件之间传送通信信号,诸如地址、数据或控制信号。在一个实施例中,接口总线1110能够是处理器总线,诸如,直接媒体接口(DMI)总线的版本。然而,处理器总线不限于DMI总线,并且可以包括一个或多个外围组件互连总线(例如,PCI、PCIExpress)、存储器总线或其它类型的接口总线。在一个实施例中,(一个或多个)处理器1102包括集成存储器控制器1116和平台控制器集线器1130。存储器控制器1116促进存储器装置与系统1100的其它组件之间的通信,而平台控制器集线器(PCH)1130经由本地I/O总线来提供对I/O装置的连接。
存储器装置1120能够是动态随机存取存储器(DRAM)装置、静态随机存取存储器(SRAM)装置、闪速存储器装置、相变存储器装置或具有充当过程存储器的适合性能的其他存储器装置。在一个实施例中,存储器装置1120能够作为用于系统1100的系统存储器而操作,以存储供当一个或多个处理器1102执行应用或过程时使用的数据1122和指令1121。存储器控制器集线器1116还与可选的外部图形处理器1112耦合,所述外部图形处理器1112可以与处理器1102中的一个或多个图形处理器1108通信,以实行图形和媒体操作。在一些实施例中,显示装置1111能够连接到(一个或多个)处理器1102。显示装置1111能够如经由显示器接口(例如,显示端口(DisplayPort)等等)附接的移动电子装置或膝上型装置或外部显示装置中的那样,是内部显示装置中的一个或多个。在一个实施例中,显示装置1111能够是头戴式显示器(HMD),诸如供在虚拟现实(VR)应用或增强现实(AR)应用中使用的立体显示装置。
在一些实施例中,平台控制器集线器1130能够实现外围设备经由高速I/O总线连接到存储器装置1120和处理器1102。I/O外围设备包括但不限于音频控制器1146、网络控制器1134、固件接口1128、无线收发器1126、触摸传感器1125、数据存储装置1124(例如,硬盘驱动器、闪速存储器等等)。数据存储装置1124能够经由存储接口(例如,SATA)或经由外围总线(诸如,外围组件互连总线(例如,PCI、PCI Express))来连接。触摸传感器1125能够包括触摸屏传感器、压力传感器或指纹传感器。无线收发器1126能够是Wi-Fi收发器、蓝牙收发器或移动网络收发器,诸如,3G、4G或长期演进(LTE)收发器。固件接口1128能够实现与系统固件的通信,并且能够是例如统一可扩展固件接口(UEFI)。网络控制器1134可能够实现对有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线1110耦合。在一个实施例中,音频控制器1146是多通道高清晰度音频控制器。在一个实施例中,系统1100包括用于使传统(例如,个人系统2(PS/2))装置耦合到该系统的可选的传统I/O控制器1140。平台控制器集线器1130还能够连接到使输入装置(诸如,键盘和鼠标1143组合、相机1244或其它USB输入装置)连接的一个或多个通用串行总线(USB)控制器1142。
下文涉及另外的示例。
示例1是一种设备,包括:计算机可读存储器;XMSS验证管理器逻辑,用于管理XMSS验证功能;单次签名及公钥生成器逻辑;链函数逻辑,用于实现链函数算法;低时延SHA3硬件引擎;以及寄存器组,所述寄存器组通信地耦合到所述XMSS验证管理器逻辑。
在示例2中,示例1的主题能够可选地包括逻辑以:在所述计算机可读存储器中接收用于XMSS操作的XMSS输入集合;以及将所述XMSS输入集合应用于XMSS验证管理器逻辑。
在示例3中,示例1-2中的任一个的主题能够可选地包括逻辑以:在通信总线上断言繁忙信号;以及切换成在其中外部读取/写入操作被忽略的受保护模式。
在示例4中,示例1-3中的任一个的主题能够可选地包括逻辑以:将单次签名函数过程应用于所述XMSS输入集合;以及调用所述链函数逻辑来应用链函数,以促进所述单次签名函数。
在示例5中,示例1-4中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎能够实行SHAKE-128功能或能够实行SHAKE-256操作。
在示例6中,示例1-5中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎包括1600位状态寄存器,用于接收对于每个WOTS链函数的第一输入集合、对于L树计算中所涉及的散列的第二输入集合、对于Merkle树根节点计算的第三输入集合、以及256位消息输入。
在示例7中,示例1-6中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎包括逻辑以:使用所述第一输入集合来实行24个SHA3轮的第一集合;以及生成第一128位输出。
在示例8中,示例1-7中的任一个的主题能够可选地包括如下的布置:不使用输入而实行24个SHA3轮的第二集合;以及生成第二128位输出。
在示例9中,示例1-8中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎包括逻辑以:使用所述第一输入集合来实行24个SHA3轮的第一集合;以及生成第一256位输出。
在示例10中,示例1-9中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎包括逻辑以:不使用输入而实行24个SHA3轮的第二集合;以及生成第二256位输出。
示例11是一种电子装置,包括:处理器;以及用于认证逻辑的硬件加速器,所述硬件加速器包括:计算机可读存储器;XMSS验证管理器逻辑,用于管理XMSS验证功能;单次签名及公钥生成器逻辑;链函数逻辑,用于实现链函数算法;低时延SHA3硬件引擎;以及寄存器组,所述寄存器组通信地耦合到所述XMSS验证管理器逻辑。
在示例12中,示例11的主题能够可选地包括逻辑以:在所述计算机可读存储器中接收用于XMSS操作的XMSS输入集合;以及将所述XMSS输入集合应用于XMSS验证管理器逻辑。
在示例13中,示例11-12中的任一个的主题能够可选地包括:包括逻辑以:在通信总线上断言繁忙信号;以及切换成在其中外部读取/写入操作被忽略的受保护模式。
在示例14中,示例11-13中的任一个的主题能够可选地包括逻辑以:将单次签名函数过程应用于所述XMSS输入集合;以及调用所述链函数逻辑来应用链函数,以促进所述单次签名函数。
在示例15中,示例11-14中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎能够实行SHAKE-128功能或能够实行SHAKE-256操作。
在示例16中,示例11-15中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎包括1600位状态寄存器,用于接收对于每个WOTS链函数的第一输入集合、对于L树计算中所涉及的散列的第二输入集合、对于Merkle树根节点计算的第三输入集合、以及256位消息输入。
在示例17中,示例11-16中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎包括逻辑以:使用所述第一输入集合来实行24个SHA3轮的第一集合;以及生成第一128位输出。
在示例18中,示例11-17中的任一个的主题能够可选地包括如下的布置:不使用输入而实行24个SHA3轮的第二集合;以及生成第二128位输出。
在示例19中,示例11-18中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎包括逻辑以:使用所述第一输入集合来实行24个SHA3轮的第一集合;以及生成第一256位输出。
在示例20中,示例11-19中的任一个的主题能够可选地包括如下的布置:其中,所述SHA3硬件引擎包括逻辑以:不使用输入而实行24个SHA3轮的第二集合;以及生成第二256位输出。
以上具体实施方式包括对附图的参考,所述附图形成具体实施方式的一部分。附图通过图示的方式示出了可以实践的特定实施例。这些实施例在本文中也被称为“示例”。这样的示例可以包括除了所示出或所描述的那些元件之外的元件。然而,还构思包括所示出或所描述的元件的示例。此外,还构思使用关于特定示例(或其一个或多个方面)或关于本文中所示出或所描述的其它示例(或其一个或多个方面)所示出或所描述的那些元件(或其一个或多个方面)的任何组合或排列的示例。
在本文档中所引用的出版物、专利和专利文档通过引用其整体而并入本文中,如通过引用单独并入。在本文档与通过引用并入的那些文档之间的不一致用法的情况下,并入的(一个或多个)参考文献中的用法是对本文档的用法的补充;对于不可调和的不一致性,以本文档中的使用为准。
在本文档中,如在专利文档中常见的术语“一”或“一个”被用于包括一个或多于一个,独立于“至少一个”或“一个或多个”的任何其他实例或用法。此外,“…的集合”包括一个或多个元素。在本文献中,术语“或”用于指非排他性的或,使得“A或B”包括“A但不是B”、“B但不是A”以及“A和B”,除非另有指示。在所附权利要求书中,术语“包括”和“在其中”用作相应术语“包含”和“其中”的简单英语等同。同样,在以下权利要求书中,术语“包括”和“包含”是开放式的;即,包括除了在权利要求书中的这种术语之后列出的那些元件之外的元件的系统、装置、制品或过程仍然被认为落入该权利要求书的范围内。此外,在以下权利要求中,术语“第一”、“第二”、“第三”等仅用作标记,并且不旨在建议针对它们的对象的数字顺序。
本文所引用的术语“逻辑指令”涉及可被一个或多个机器理解以用于执行一个或多个逻辑操作的表达。例如,逻辑指令可以包括可由处理器编译器解译的指令,以用于对一个或多个数据对象执行一个或多个操作。然而,这仅仅是机器可读指令的示例,并且示例不限于这个方面。
本文所引用的术语“计算机可读介质”涉及能够维持可由一个或多个机器感知的表达的介质。例如,计算机可读介质可以包括用于存储计算机可读指令或数据的一个或多个存储装置。这种存储装置可以包括存储介质,诸如例如光、磁或半导体存储介质。然而,这仅仅是计算机可读介质的示例,并且示例不限于这个方面。
本文所引用的术语“逻辑”涉及用于执行一个或多个逻辑操作的结构。例如,逻辑可以包括基于一个或多个输入信号而提供一个或多个输出信号的电路系统。这种电路系统可以包括接收数字输入并提供数字输出的有限状态机,或者响应于一个或多个模拟输入信号而提供一个或多个模拟输出信号的电路系统。这样的电路系统可以在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中提供。此外,逻辑可以包括存储在存储器中的机器可读指令,其与处理电路系统结合以执行这样的机器可读指令。然而,这些仅仅是可以提供逻辑的结构的示例,并且示例不限于这个方面。
本文描述的方法中的一些可以被体现为计算机可读介质上的逻辑指令。当在处理器上执行时,逻辑指令使处理器被编程为实现所描述的方法的专用机器。处理器在由逻辑指令配置成执行本文所述的方法时,构成用于执行所述方法的结构。备选地,本文所述的方法可简化为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等上的逻辑。
在说明书和权利要求书中,可以使用术语耦合和连接以及它们的派生词。在特定示例中,连接可以用于指示两个或更多个元件彼此直接物理或电接触。耦合可以表示两个或更多元件直接物理或电接触。然而,耦合也可以表示两个或更多元件可以不彼此直接接触,但是仍然可以彼此协作或交互。
说明书中对“一个示例”或“一些示例”的引用表示结合示例描述的特定特征、结构或特性被包括在至少一个实现中。在说明书中的各个地方出现的短语“在一个示例中”可以或可以不全部指代相同示例。
上述描述旨在是说明性而非限制性的。例如,上述示例(或其一个或多个方面)可以与其他示例组合使用。诸如由本领域的技术人员在回顾以上描述之后可以使用其他实施例。摘要是为了允许读者快速确定技术公开的本质。摘要在具有如下理解的情况下被提交:摘要将不用于解释或限制权利要求书的范围或含义。此外,在以上具体实施方式中,各种特征可以被分组在一起以使本公开流线化。然而,权利要求书可能没有阐述本文公开的每个特征,因为实施例可能以所述特征的子集为特征。此外,实施例可以包括比在特定示例中公开的那些特征更少的特征。因此,以下权利要求书由此被并入具体实施方式中,其中每个权利要求独立地作为单独的实施例。本文公开的实施例的范围将参考所附权利要求书以及这些权利要求所授权的等同物的全部范围来确定。
尽管已经以特定于结构特征和/或方法动作的语言描述了示例,但是应当理解,所要求保护的主题可以不限于所描述的特定特征或动作。相反,这些特定特征和动作是作为实现所要求保护的主题的样例形式来公开的。
Claims (10)
1.一种设备,包括:
计算机可读存储器;
XMSS验证管理器逻辑,用于管理XMSS验证功能;
单次签名及公钥生成器逻辑;
链函数逻辑,用于实现链函数算法;
低时延SHA3硬件引擎;以及
寄存器组,所述寄存器组通信地耦合到所述XMSS验证管理器逻辑。
2.根据权利要求1所述的设备,还包括逻辑以:
在所述计算机可读存储器中接收用于XMSS操作的XMSS输入集合;以及
将所述XMSS输入集合应用于XMSS验证管理器逻辑。
3.根据权利要求2所述的设备,还包括逻辑以:
在通信总线上断言繁忙信号;以及
切换成在其中外部读取/写入操作被忽略的受保护模式。
4.根据权利要求3所述的设备,还包括逻辑以:
将单次签名函数过程应用于所述XMSS输入集合;以及
调用所述链函数逻辑来应用链函数,以促进所述单次签名函数。
5.根据权利要求1所述的设备,其中,所述SHA3硬件引擎能够实行SHAKE-128功能或能够实行SHAKE-256操作。
6.根据权利要求5所述的设备,其中,所述SHA3硬件引擎包括1600位状态寄存器,用于接收对于每个WOTS链函数的第一输入集合、对于L树计算中所涉及的散列的第二输入集合、对于Merkle树根节点计算的第三输入集合、以及256位消息输入。
7.根据权利要求6所述的设备,其中,所述SHA3硬件引擎包括逻辑以:
使用所述第一输入集合来实行24个SHA3轮的第一集合;以及
生成第一128位输出。
8.根据权利要求7所述的设备,其中,所述SHA3硬件引擎包括逻辑以:
不使用输入而实行24个SHA3轮的第二集合;以及
生成第二128位输出。
9.根据权利要求6所述的设备,其中,所述SHA3硬件引擎包括逻辑以:
使用所述第一输入集合来实行24个SHA3轮的第一集合;以及
生成第一256位输出。
10.根据权利要求9所述的设备,其中,所述SHA3硬件引擎包括逻辑以:
不使用输入而实行24个SHA3轮的第二集合;以及
生成第二256位输出。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/456034 | 2019-06-28 | ||
US16/456,034 US11405213B2 (en) | 2019-06-28 | 2019-06-28 | Low latency post-quantum signature verification for fast secure-boot |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112152783A true CN112152783A (zh) | 2020-12-29 |
Family
ID=68162174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010218882.4A Pending CN112152783A (zh) | 2019-06-28 | 2020-03-25 | 用于快速安全启动的低时延后量子签名验证 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11405213B2 (zh) |
EP (1) | EP3758284A1 (zh) |
CN (1) | CN112152783A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11405213B2 (en) | 2019-06-28 | 2022-08-02 | Intel Corporation | Low latency post-quantum signature verification for fast secure-boot |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11223470B1 (en) | 2020-03-06 | 2022-01-11 | Wells Fargo Bank, N.A. | Post-quantum cryptography side chain |
US11995194B1 (en) * | 2020-03-06 | 2024-05-28 | Wells Fargo Bank, N.A. | Self-contained encrypted data and decryption application for third party data storage and data dissemination |
US11621857B2 (en) * | 2020-09-03 | 2023-04-04 | Seagate Technology Llc | Fingerprint and provenance for movable storage devices |
US11720683B2 (en) * | 2021-03-04 | 2023-08-08 | Arm Limited | Secure boot process for a computer system |
CN113922955B (zh) * | 2021-10-06 | 2023-07-07 | 烽火通信科技股份有限公司 | 一种xmss算法的全硬件实现架构及其系统 |
US20230119304A1 (en) * | 2021-10-18 | 2023-04-20 | International Business Machines Corporation | Post Quantum Secure Ingress/Egress Network Communication |
CN114154640B (zh) * | 2021-11-25 | 2024-08-23 | 华中科技大学 | 用于实现后量子密码Saber算法的处理器 |
US20220131708A1 (en) * | 2021-12-09 | 2022-04-28 | Intel Corporation | Efficient hybridization of classical and post-quantum signatures |
US20220109558A1 (en) * | 2021-12-15 | 2022-04-07 | Intel Corporation | Xmss management to address randomized hashing and federal information processing standards |
US20230254133A1 (en) * | 2022-02-09 | 2023-08-10 | Verizon Patent And Licensing Inc. | Systems and methods for device grouping based on quantum resistant encryption capability |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9509506B2 (en) * | 2011-09-30 | 2016-11-29 | Los Alamos National Security, Llc | Quantum key management |
US9342712B2 (en) * | 2012-06-08 | 2016-05-17 | Advanced Micro Devices, Inc. | Method and system for accelerating cryptographic processing |
US9773432B2 (en) * | 2015-06-27 | 2017-09-26 | Intel Corporation | Lightweight cryptographic engine |
US10020934B2 (en) * | 2015-11-05 | 2018-07-10 | Intel Corporation | Hardware accelerator for cryptographic hash operations |
JP6652457B2 (ja) * | 2016-06-29 | 2020-02-26 | キオクシア株式会社 | 昇圧回路 |
US9698986B1 (en) * | 2016-09-23 | 2017-07-04 | ISARA Corporation | Generating shared secrets for lattice-based cryptographic protocols |
US10313130B2 (en) * | 2016-09-27 | 2019-06-04 | Intel Corporation | Hash-based signature balancing |
US20180088927A1 (en) * | 2016-09-28 | 2018-03-29 | Intel Corporation | ROOT OF TRUST (RoT) APPLICATION FOR INTERNET OF THINGS (IoT) DEVICES |
US10116450B1 (en) * | 2016-11-02 | 2018-10-30 | ISARA Corporation | Merkle signature scheme using subtrees |
US10348495B2 (en) * | 2017-02-23 | 2019-07-09 | Intel Corporation | Configurable crypto hardware engine |
US11570003B2 (en) * | 2017-10-04 | 2023-01-31 | Jintai Ding | Quantumproof blockchain |
US11005664B2 (en) * | 2018-04-16 | 2021-05-11 | R3 Ltd. | Blockchain post-quantum signature scheme |
US11405213B2 (en) | 2019-06-28 | 2022-08-02 | Intel Corporation | Low latency post-quantum signature verification for fast secure-boot |
-
2019
- 2019-06-28 US US16/456,034 patent/US11405213B2/en active Active
-
2020
- 2020-03-17 EP EP20163614.9A patent/EP3758284A1/en active Pending
- 2020-03-25 CN CN202010218882.4A patent/CN112152783A/zh active Pending
-
2022
- 2022-06-30 US US17/854,911 patent/US20220337421A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11405213B2 (en) | 2019-06-28 | 2022-08-02 | Intel Corporation | Low latency post-quantum signature verification for fast secure-boot |
Also Published As
Publication number | Publication date |
---|---|
US20190319796A1 (en) | 2019-10-17 |
US20220337421A1 (en) | 2022-10-20 |
EP3758284A1 (en) | 2020-12-30 |
US11405213B2 (en) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11917053B2 (en) | Combined SHA2 and SHA3 based XMSS hardware accelerator | |
US11405213B2 (en) | Low latency post-quantum signature verification for fast secure-boot | |
US11770258B2 (en) | Accelerators for post-quantum cryptography secure hash-based signing and verification | |
US11770262B2 (en) | Odd index precomputation for authentication path computation | |
US11792191B2 (en) | MTS-based mutual-authenticated remote attestation | |
US11575521B2 (en) | Fast XMSS signature verification and nonce sampling process without signature expansion | |
US20230066955A1 (en) | Efficient post-quantum secure software updates tailored to resource-constrained devices | |
EP3758290A1 (en) | Parallel processing techniques for hash-based signature algorithms | |
CN114662122A (zh) | 密钥封装和数字签名用有效抗量子攻击功能安全构造块 | |
CN114662085A (zh) | 用于自治系统的后量子安全远程证明 | |
WO2023107776A1 (en) | Efficient hybridization of classical and post-quantum signatures | |
EP4311158A1 (en) | Efficient low-overhead side-channel protection for polynomial multiplication in post-quantum encryption | |
US20220100873A1 (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 | |
US20220416998A1 (en) | Side channel protection for sha3 cryptographic functions | |
US20240031127A1 (en) | Lightweight side-channel protection for polynomial multiplication in post-quantum signatures | |
US20240031164A1 (en) | Hybridization of dilithium and falcon for digital signatures |
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 |