CN112152786A - 无签名扩展的快速xmss签名验证和临时数采样过程 - Google Patents
无签名扩展的快速xmss签名验证和临时数采样过程 Download PDFInfo
- Publication number
- CN112152786A CN112152786A CN202010224157.8A CN202010224157A CN112152786A CN 112152786 A CN112152786 A CN 112152786A CN 202010224157 A CN202010224157 A CN 202010224157A CN 112152786 A CN112152786 A CN 112152786A
- Authority
- CN
- China
- Prior art keywords
- signature
- message
- logic
- hash
- input
- 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/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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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
Abstract
本公开的发明名称是“无签名扩展的快速XMSS签名验证和临时数采样过程”。在一个示例中,一种设备包括:用于预计算消息代表的至少一部分的加速器逻辑;用于基于输入消息来生成消息代表的哈希逻辑;以及用于生成要与消息代表相关联发送的签名的签名逻辑,签名逻辑用于将基于哈希的签名方案应用于私钥以生成包括公钥的签名,并且确定消息代表是否满足生成签名的成本与验证签名的成本之间的计算成本的目标阈值分配。可描述其它示例。
Description
技术领域
本文中描述的主题一般涉及计算机安全性的领域,并且更特定地涉及用于基于哈希签名算法的并行处理技术。
背景技术
针对基于诸如使用量子计算机的Shor算法之类的算法的强力攻击,预计诸如Rivest-Shamir-Adleman(RSA)和椭圆曲线数字签名算法(ECDSA)之类的现有公钥数字签名算法不是安全的。结果,在密码术研究团体中以及在各种标准机构中正在努力以定义针对量子计算机是安全的算法的新标准。
因此,加速后量子签名方案的这类技术可例如在基于计算机的通信系统和方法中找到效用。
附图说明
参考附图来描述详细的描述。
图1A和1B分别是基于哈希的一次性签名方案和基于哈希的多次性签名方案的示意图。
图2A-2B分别是一次性签名方案和多次性签名方案的示意图。
图3是根据一些示例的签名装置和验证装置的示意图。
图4A是根据一些示例的Merkle树结构的示意图。
图4B是根据一些示例的Merkle树结构的示意图。
图5是根据一些示例在实现签名算法的架构中的计算块的示意图。
图6A是根据一些示例在签名算法中实现签名生成的架构中的计算块的示意图。
图6B是根据一些示例在验证算法中实现签名验证的架构中的计算块的示意图。
图7是根据一些示例的WOTS签名和验证方案的示意图。
图8是根据一些示例的WOTS签名和验证方案的示意图。
图9是示出根据一些示例的WOTS签名和验证方案的方法中的操作的流程图。
图10是示出根据一些示例的WOTS签名和验证方案的方法中的操作的流程图。
图11是根据一些示例的可适于使用关于激活路径差异(activation pathdifferential)的信息来实现神经网络的对抗性训练的计算架构的示意图。
具体实施方式
本文中描述了实现用于后量子密码术安全基于哈希的签名算法的加速器的示例性系统和方法。在以下描述中,阐明了许多具体细节以提供对各种示例的透彻理解。然而,本领域技术人员将会理解,可在没有所述具体细节的情况下实践各种示例。在其它情况下,没有详细地描述或示出众所周知的方法、过程、组件和电路,以免使示例不够分明。
如上面简要描述的,针对基于诸如使用量子计算机的Shor算法之类的算法的强力攻击,预计诸如Rivest-Shamir-Adleman(RSA)和椭圆曲线数字签名算法(ECDSA)之类的现有公钥数字签名算法不是安全的。扩展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-树计算,其组合WOTS+(或WOTS)公钥分量(每个n字节),并且产生单个n字节值。例如,在128位后量子安全性中,有67个公钥分量,每个公钥分量调用在输入块上执行的底层的安全哈希算法(SHA)。
第三个主要操作是树哈希操作,其构造Merkle树。在XMSS验证中,由树哈希操作处理作为签名的一部分提供的认证路径和L-树操作的输出,以生成Merkle树的根节点,其应当对应于XMSS公钥。对于具有128位后量子安全性的XMSS验证,遍历Merkle树包括执行安全哈希操作。在XMSS验证中,将树哈希操作的输出与已知的公钥进行比较。如果它们匹配,则接受签名。相反,如果它们不匹配,则拒绝签名。
XMSS签名过程在计算上是昂贵的。XMSS签名过程调用数百乃至数千个周期的哈希计算。本文中描述的主题通过提供实现用于后量子密码术安全XMSS和LMS基于哈希的签名和验证的加速器的系统和方法来解决这些和其它问题。
后量子密码术概述
后量子密码术(也称为“量子证明”、“量子安全”、“抗量子”,或者简称为“PQC”)对密码术采取未来和现实的方法。它准备负责密码术的那些人以及终端用户以知道密码术是过时的;相反,它需要演进以能够将演进的计算装置成功地寻址(address)到量子计算和后量子计算中。
众所周知,密码术虑及在个人和实体之间在线传递并且使用各种网络存储的数据的保护。这种数据通信能够涵盖发送和接收电子邮件、在线购买商品或服务、使用网站访问银行或其它个人信息等。
当处理量子计算时,传统的密码术及其典型的困难数学场景的因式分解和计算可能无关紧要。这些数学问题,诸如离散对数、整数因式分解和椭圆曲线离散对数等,不能够承受来自强大的量子计算机的攻击。尽管可在当前的密码术上构建任何后量子密码术,但是新方法将需要是智能的、快速的并且足够精确,以抵抗和战胜量子计算机的任何攻击。
当今的PQC大多集中在以下方法:1)基于1979年的Merkle的哈希树公钥签名系统的基于哈希的密码术,其构建在Lamport和Diffie的one-message-signature想法之上;2)基于代码的密码术,诸如McEliece的hidden-Goppa-code公钥加密系统;3)1998年的基于Hoffstein-Pipher-Silverman公钥加密系统的基于格的密码术;4)基于1996年的Patarin的HFE公钥签名系统的多元二次方程密码术,该系统进一步基于Matumoto-Imai提议;5)依赖于超奇异椭圆曲线和超奇异同源图的超奇异椭圆曲线同源密码术;和6)对称密钥抗量子。
图1A和1B分别示出基于哈希的一次性签名方案和基于哈希的多次性签名方案。如前所述,基于哈希的密码术是基于密码系统,如Winternitz方案、Lamport签名、Merkle签名、扩展Merkle签名方案(XMSS)和SPHINC方案等。随着量子计算的出现和预计其增长,已经关注量子计算可能提出的各种挑战,以及使用密码术领域来应对这类挑战所能做的事情。
正在探索以应对量子计算挑战的一个领域是基于哈希的签名(HBS),因为这些方案已经存在很长时间并且拥有必要的基本要素以应对量子计数和后量子计算挑战。HBS方案被视为与快速平台安全引导(secured-boot)一起工作的快速签名算法,快速平台安全引导被视为对量子和后量子计算攻击最具抵抗力。
例如,如关于图1A所示,示出一种HBS的方案,该方案使用Merkle树以及一次性签名(OTS)方案100,诸如使用私钥对消息签名,以及使用对应的公钥来验证OTS消息,其中私钥仅对单个消息签名。
类似地,如关于图1B所示,示出另一种HBS方案,其中这一方案涉及多次性签名(MTS)方案150,其中私钥能够对多个消息签名。
图2A和2B分别示出一次性签名方案和多次性签名方案。继续图1A的基于HBS的OTS方案100和图1B的MTS方案150,分别地,图2A示出Winternitz OTS方案200,该方案由Stanford数学系的Robert Winternitz提出,发布为hw(x)而不是h(x)|h(y),而图2B示出XMSS MTS方案250。
例如,图2A的WOTS方案200规定(provide for)将消息哈希和解析到M中,其中在[0,1,2,...,15]之间有67个整数,诸如私钥sk 205、签名s 210和公钥pk 215,其中每一个具有67个分量,每个分量有32字节。
图2B示出XMSS MTS方案250,该方案虑及图2A的WOTS方案200和具有XMSS Merkle树的XMSS方案250的组合。如先前关于图2A所讨论的,WOTS方案200是基于具有67个分量的一次性公钥pk 215,每个分量有32字节,然后使一次性公钥pk 215通过L-树压缩算法260以提供WOTS压缩的pk 267,以在XMSS方案250的XMSS Merkle树中占有一席之地。设想,XMSS签名验证可包括计算WOTS验证和检查以确定重构的根节点是否匹配XMSS公钥,诸如根节点=XMSS公钥。
用于后量子密码术的加速器
图3是根据一些示例、包括第一装置310和第二装置350的安全环境300的高级架构的示意图。参考图3,第一装置310和第二装置350中的每一个可被实施为能够执行本文中描述的功能的任何类型的计算装置。例如,在一些实施例中,第一装置310和第二装置350中的每一个可被实施为膝上型计算机、平板计算机、笔记本电脑、上网本、UltrabookTM、智能电话、蜂窝电话、可穿戴计算装置、个人数字助理、移动因特网装置、台式计算机、路由器、服务器、工作站和/或任何其它计算/通信装置。
第一装置310包括一个或多个处理器320和存储私钥324的存储器322。(一个或多个)处理器320可被实施为能够执行本文中描述的功能的任何类型的处理器。例如,(一个或多个)处理器320可被实施为(一个或多个)单核或多核处理器、数字信号处理器、微控制器、或者其它处理器或处理/控制电路。类似地,存储器322可被实施为能够执行本文中描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器322可存储在第一装置310的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器322可通信地耦合到(一个或多个)处理器320。在一些示例中,私钥324可驻留在安全存储器中,该安全存储器可以是部分存储器322或者可与存储器322分开。
第一装置310还包括认证逻辑330,认证逻辑330包括存储器332、签名逻辑、以及验证逻辑336。哈希逻辑332被配置成对消息(M)进行哈希(即,应用哈希函数)以生成消息M的哈希值(m’)。哈希函数可包括、但不限于安全哈希函数,例如,安全哈希算法SHA2-256和/或SHA3-256等。SHA2-256可遵循和/或兼容由国家标准技术研究所(NIST)在2012年3月出版的题为:“Secure Hash Standard(SHS)”的联邦信息处理标准(FIPS)出版物180-4,和/或这个标准的后续版本和/或相关版本。SHA3-256可遵循和/或兼容由NIST在2015年8月出版的题为:“SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”的FIPS出版物202,和/或这个标准的后续版本和/或相关版本。
签名逻辑332可被配置成生成要传送的签名,即,传送的签名。在第一装置310是签名装置的情况中,传送的签名可包括数量为L的传送的签名元素,其中每个传送的签名元素对应于相应的消息元素。例如,对于每个消息元素mi,签名逻辑332可被配置成在私钥sk的每个私钥元素ski上执行与包括在消息代表m’中的每个消息元素mi的值相关的相应次数的所选签名操作。例如,签名逻辑332可被配置成将所选哈希函数mi次应用于对应的私钥元素ski。在另一个示例中,签名逻辑332可被配置成将所选链函数(其包含哈希函数)mi次应用于对应的私钥元素ski。因此,所选签名操作可对应于所选的基于哈希的签名方案。
如上所述,基于哈希的签名方案可包括、但不限于Winternitz(W)一次性签名(OTS)方案、增强Winternitz OTS方案(例如,WOTS+)、Merkle许多次签名方案、扩展Merkle签名方案(XMSS)和/或扩展Merkle多树签名方案(XMSS-MT)等。哈希函数可包括、但不限于SHA2-256和/或SHA3-256等。例如,XMSS和/或XMSS-MT可遵循或兼容一个或多个因特网工程任务组(IETF.RTM.)信息草案因特网注释,例如,由因特网研究任务组(IRTF)密码论坛研究组在2018年5月发布的“XMSS: Extended Hash-Based Signatures”,其可在https://tools.ietf.org/html/rfc8391找到。
WOTS签名算法可用于生成签名,并且利用哈希函数验证所接收的签名。WOTS还被配置成使用私钥,并且因此使用每个私钥元素ski一次。例如,WOTS可被配置成将哈希函数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和签名则可由第一装置310(例如,经由通信逻辑342)经由网络通信链路390发送到第二装置350。在一实施例中,消息M在传输之前可不被加密。在另一实施例中,消息M在传输之前可被加密。例如,消息M可由密码术逻辑340加密以产生加密消息。
第二装置350还可包括一个或多个处理器360和存储公钥364的存储器362。如上所述,(一个或多个)处理器360可被实施为能够执行本文中描述的功能的任何类型的处理器。例如,(一个或多个)处理器360可被实施为(一个或多个)单核或多核处理器、数字信号处理器、微控制器、或者其它处理器或处理/控制电路。类似地,存储器362可被实施为能够执行本文中描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器362可存储在第二装置350的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器362可通信地耦合到(一个或多个)处理器360。
在一些示例中,可在先前交换中向第二装置350提供公钥364。公钥pk被配置成包含数量为L的公钥元素,即,pk=[pk1,...,pkL]。公钥364可被存储到例如存储器362。
第二装置350还包括认证逻辑370,认证逻辑370包括哈希逻辑372、签名逻辑、以及验证逻辑376。如上所述,哈希逻辑372被配置成对消息(M)进行哈希(即,应用哈希函数)以生成哈希消息(m’)。哈希函数可包括、但不限于安全哈希函数,例如,安全哈希算法SHA2-256和/或SHA3-256等。SHA2-256可遵循和/或兼容由国家标准技术研究所(NIST)在2012年3月出版的题为:“Secure Hash Standard(SHS)”的联邦信息处理标准(FIPS)出版物180-4,和/或这个标准的后续版本和/或相关版本。SHA3-256可遵循和/或兼容由NIST在2015年8月出版的题为:“SHA-3 Standard: Permutation-Based Hash and Extendable-OutputFunctions”的FIPS出版物202,和/或这个标准的后续版本和/或相关版本。
在第二装置是验证装置的情况中,认证逻辑370被配置成至少部分基于从第一装置接收的签名并且至少部分基于所接收的消息代表(m’)来生成验证签名。例如,认证逻辑370可配置成执行相同的签名操作,即,将与认证逻辑330的哈希逻辑332所应用的相同的哈希函数或链函数应用于每个接收的消息元素数量N-mi’(或mi’)次,以产出(yield)验证消息元素。然后,可确定验证签名,即,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的本地公钥来构造Merkle树400A,以生成全局公钥(PK)420。在一些示例中,能够离线计算认证路径和根节点值,使得这些操作不限制性能。每个WOTS节点410具有唯一的秘密密钥“sk”,其用于仅对消息签名一次。XMSS签名由为输入消息生成的签名和用于构造Merkle树的根的中间树节点的认证路径组成。
图4B是根据一些示例在验证期间Merkle树结构400B的示意图。在验证期间,输入消息和签名被用于计算WOTS节点的本地公钥420B,本地公钥420B被进一步用于使用认证路径来计算树根值。成功的验证将使计算的树根值与签名实体分享的公钥PK匹配。WOTS和L-树操作分别构成XMSS签名/验证时延的重要部分,因而定义认证系统的整体性能。本文中描述了各种预计算技术,这些技术可被实现以加速WOTS和L树操作,从而提高XMSS性能。这些技术适用于其它哈希选项,并且对于软件实现和硬件实现都很好地缩放。
图5是根据一些示例在实现签名算法的架构500中的计算块的示意图。参考图5,WOTS+操作包括16个SHA2-256哈希函数的67个并行链,每个链具有秘密密钥sk[66:0]作为输入。链中的每个哈希操作由2个伪随机函数(PRF)构成,其使用SHA2-256来生成位掩码和密钥。位掩码与先前的哈希进行“异或”运算,并且与作为第3个SHA2-256哈希操作的输入消息的密钥级联。通过跨67个哈希链对秘密密钥sk进行哈希,生成67×32字节的WOTS公钥pk[66:0]。
图6A是根据一些示例在签名算法中实现签名生成的架构600A中的计算块的示意图。如图6A中所示,对于消息签名,对输入消息进行哈希和预处理以计算67×4位的值,该值被用作在链函数的每个操作中选择中间哈希值的索引。
图6B是根据一些示例在验证算法中实现签名验证的架构600B中的计算块的示意图。参考图6B,在验证期间,再次对消息进行哈希以计算签名索引,并且计算每个链中的剩余哈希操作,以计算WOTS公钥pk。这个值和认证路径被用于计算Merkle树的根,并且与分享的公钥PK进行比较以验证消息。
快速XMSS签名验证
各种电子装置使用密码术算法(例如,RSA和EC-DSA)来在引导时验证它们的固件的可信性。如上所述,这些密码术算法预期会被量子计算机破坏。XMSS算法是一种量子抵抗力密码术标准。XMSS签名和验证的成本可显著变化,因为这些操作取决于消息代表,其是利用一个或多个输入对消息进行哈希的结果。
XMSS签名验证的成本是消息代表的函数,其被计算为与一些其它输入级联的要被签名的消息的哈希。在原始XMSS方案中,消息代表生成过程被确定性地执行。已经尝试通过在消息代表生成中引入随机值来随机化该过程。例如,可测试大量的随机值,直到找到产生就XMSS签名验证成本方面令人满意的消息代表的随机值为止。这些方案经受某些缺点:签名器(signer)除了签名之外还需要传送随机值,随机值采样过程要求针对每个新的临时数(nonce)尝试哈希整个输入,并且它不符合例如RFC-8391中提议的XMSS签名和验证的方式。
本文中描述了加速XMSS签名验证的技术,其加速XMSS签名验证,减少用于临时数采样的签名开销,并且其保留签名大小。本文中描述的技术可应用于XMSS方案的任何配置,包括任何底层哈希函数。这些技术还通过预计算SHA256哈希函数的中间轮次(round)来加速临时数采样过程。该特征可应用于任何基于SHA256的XMSS配置。
加速XMSS签名验证可在例如基于XMSS签名的部署安全引导解决方案中找到效用。更快的签名验证自然导致更快的安全引导操作。加速临时数采样过程对于降低XMSS签名生成的成本是重要的,从而促进电子装置设施中的XMSS的部署。
如上所述,XMSS签名算法是使用WOTS一次性签名算法作为构建块的基于哈希的签名方案。XMSS签名验证中计算上最昂贵的步骤是WOTS签名验证。WOTS算法利用由L=67个组块(chunk)组成的私钥,每个组块32字节。通过在L个私钥组块中的每一个上将WOTS哈希链精确地应用N=15次来生成WOTS公钥。每个WOTS哈希链函数导致对SHA256哈希函数的3次调用。因此,WOTS密钥生成成本是:对SHA256 67×15×3=3,015次调用,这表示了显著的计算开销。
WOTS签名生成由对WOTS私钥组块(i∈[1..L])中的每一个精确地应用WOTS哈希链函数M’[i]次构成。缓冲(buffer)M’是要签名的消息的固定长度消息代表。WOTS签名验证由对在先前步骤中生成的L个签名组块中的每一个精确地应用WOTS哈希链函数(N-M’[i])次构成。如所预期的,只要签名是可信的,则这个过程的结果将匹配WOTS公钥。
图7是根据一些示例的WOTS签名和验证方案700的示意图。参考图7,签名生成加上签名验证的总计算成本产出密钥生成的成本。此外,消息代表组块的值指定了在签名操作和验证操作之间如何分摊这类成本。某些消息代表可导致以计算上更昂贵的签名验证为代价的快速签名过程,而其它消息代表可导致以计算上更昂贵的签名操作为代价的快速验证。
本文中描述的技术被设计成生成改进的消息代表,这在不扩展签名大小的情况下利用最小签名开销并且采用从验证器(verifier)的角度来看遵循RFC-8391的方式来降低XMSS签名验证成本。在一些示例中,生成任何给定消息的消息代表的过程可以是随机化的。实现任意长度消息M的消息代表M’的现有技术是在如表1中所指示的2步过程中产生的。
表1A:RFC8391消息代表XMSS过程
在一些示例中,这个过程可简化成求解表1B中的方程组。
表1B:简化的消息代表XMSS过程
在一些示例中,参数32是32字节缓冲,其中在其最低有效(significant)字节中设置值3。OPCODE2是32字节缓冲,其中在其最低有效字节中设置值2。SK_PRF是私钥的32字节随机缓冲部分。参数idx_sig是签名的索引的32字节扩展版本。PADDING32是由SHA256使用的32字节填充(padding)缓冲。ROOT是公钥的32字节缓冲部分。M是要签名的32字节消息摘要(message digest)。表1中描绘的算法是确定性算法。
本文中描述的技术改变其中通过在填充缓冲的前8字节中引入8字节的随机临时数来产生参数r的方式。假定由临时数提供额外8字节(32 = 8 + 24),这将填充的大小减少到24字节,而对安全性没有任何损害。重复该过程,直到找到导致改进的XMSS验证的消息代表M’为止,如表2中所指示。
表2A:RFC 8391消息代表XMSS过程
在一些示例中,该过程可简化成求解表2B中的方程组。
表2B:简化的消息代表XMSS过程
图8是根据一些示例的WOTS签名和验证方案800的示意图。如图8中所示,设计用于改进WOTS验证的消息代表的一个益处是计算成本集中在WOTS签名生成810的成本中,这降低了签名验证820的计算成本。
图9是示出根据一些示例的WOTS签名和验证方案的方法中的操作的流程图。特别地,流程图900示出了至少部分地基于消息代表是否满足目标阈值来识别适当的临时数。在一些示例中,图9中描绘的操作可例如由加速器逻辑338结合图3中描绘的第一装置310的认证逻辑330的哈希逻辑332、签名逻辑334和验证逻辑336来执行。
参考图9,在操作910,接收要从第一装置310发送的消息M。在操作915,可生成候选临时数,并且在操作920,如上面表2中所述,根据候选临时数来确定参数r。类似地,在操作925,使用在操作920确定的参数r并且如上面表2中所述的那样生成消息代表M’。
在操作930,确定消息代表是否满足目标阈值。如果该消息代表不满足目标阈值,则程序流可返回到操作915,并且可生成新的候选临时数。如果消息代表满足目标阈值,则在操作935可生成传送的签名。例如,至少部分地基于消息代表来生成传送的签名并且可选择候选临时数,所述消息代表至少部分地基于根据所选的临时数确定的参数r的值来确定所述消息代表。在一些实施例中,在操作940,可加密要发送的消息。在一些实施例中,要发送的消息可不被加密。然后,在操作945,可发送消息或加密的消息。
因此,可使用随机值来确定参数r的一个或多个候选值,直到对应的消息代表满足目标阈值为止。然后,基于哈希的签名方案可被应用于消息代表以生成传送的签名。然后,可将消息和传送的签名传送给验证器装置。
在操作930中引用的目标阈值可被配置成在签名器装置与验证器装置之间分配与生成和验证基于哈希的签名相关联的计算成本。签名器与验证器之间的目标阈值可由阈值T表示,其中与签名器装置相关联的对应目标成本小于或等于T(N-1)L或大于或等于T(N-1)L。与验证器装置相关联的对应目标成本然后可大于或等于(1-T)(N-1)L或者小于或等于(1-T)(N-1)。可至少部分地基于在签名器装置与验证器装置之间平衡基于哈希的签名操作(即,哈希函数操作和/或链函数操作)的相应数量,以及至少部分地基于与生成和标识被配置成对于给定消息M达成阈值T的恰当的临时数相关联的时延来选择阈值T。在一些示例中,目标阈值T可被设置成将计算成本的60%的最小值分派给签名生成过程,使得计算成本的40%的最大值被分配给签名验证过程。在其它示例中,目标阈值T可被设置成将计算成本的70%的最小值分配给签名生成过程,使得计算成本的30%的最大值被分配给签名验证过程。
图10是示出根据一些示例的WOTS签名和验证方案的方法中的操作的流程图。特别地,流程示出了尝试验证所接收的签名的操作。在一些示例中,图10中描绘的操作可例如由图3中描绘的第二装置350的认证逻辑370的验证逻辑376执行。
参考图10,在操作1010,接收消息分量。在操作1015,可生成消息代表,并且在操作1015可生成验证签名。可至少部分地基于所接收的签名并且至少部分地基于所接收的消息代表来生成验证签名。例如,可通过将与例如由签名器签名逻辑336所应用的相同的哈希函数和/或链函数应用于所接收的消息代表m’来生成验证签名,以生成传送的签名。对于验证签名的每个元素,哈希函数或链函数可被应用由所接收的消息代表的对应元素确定的相应次数。在操作1025,确定验证签名是否对应于公钥。例如,验证签名的每个元素可与公钥的对应元素进行比较。如果验证签名对应于公钥,则程序流可在操作1030继续。如果验证签名不对应于公钥,则可在操作1035生成验证失败。因此,所接收的签名是否对应于传送的签名可被验证。
因此,设备、方法和/或系统被配置成至少部分地基于消息M并且至少部分地基于使用一个或多个临时数确定的参数r来生成一个或多个消息代表。每个消息代表m’与消息M相关。设备、方法和/或系统还被配置成选择产出在签名生成的成本与签名验证的成本之间达成目标平衡的对应消息代表m’的临时数。
重复采样用于产生消息代表的临时数的候选的过程可能在计算上是昂贵的。本文中描述的技术尝试显著地加速该临时数采样过程。本领域技术人员将认识到,更快的临时数采样过程允许对于相同的计算成本找到更好的临时数。最初(Intially),要注意作为输入用来调用r←SHA256(OPCODE3 || SK_PRF || idx_sig || nonce | PADDING24)所提供的前96字节对于所有临时数总是相同的。因此,可能针对以下输入预计算SHA256的内部状态:(OPCODE3 || SK _ PRF || idx _ sig)。一旦预计算了该内部状态,则针对每个新的临时数,签名器可离开该中间状态来处理(nonce | PADDING24),以继续计算SHA256。在M’的计算中可应用类似的预计算技术,因为前32字节(OPCODE2)总是相同的。
为了理解通过本文中描述的技术获得的性能增益,首先有用的是,理解SHA256哈希函数如何处理消息。如上所述,SHA256一次处理64字节的输入。这64字节的输入被分成每个32字节的16个值,其被表示为W1、W2、…、W16。从这16个值中,SHA256导出额外的每个32字节的48个值,其被表示为W17、W18、…、W64。SHA256函数具有64轮,并且它对所述轮中的每一轮使用一个Wi,1≤i≤64。这意味着如果前16W是已知的,则可能的是,计算所有64轮。如果已知的少于前16W(比方说15),则仅可预计算15轮。
关于用于XMSS的临时数采样的技术,在生成值r的同时,可完全预计算所有64轮的哈希(OPCODE3 || SK_PRF)。对于32字节的剩余输入(idx_sig),可产生值W1、W2、…、W8。这将节省另外8轮,从而导致在预期根据SHA256(OPCODE || SK_PRF || idx_sig ||nonce ||PADDING24)生成r的128轮之中总共节省64+8=72轮。在生成M’时,可能的是,节省与OPCODE2相关的8轮。总之,该技术要求用于计算r的56轮加上用于计算M’的184轮,导致56 + 184 =240轮,代替传统技术的预期的128 + 192 = 320轮。因此,当与现有技术相比时,该技术提供了生成消息代表M’的显著加速。备选地,代替该过程中的加速,该技术可以以相同量的次数找到更好的临时数。
当与其它XMSS签名和验证方案相比时,本文中描述的技术还提高了签名大小性能。在一些示例中,临时数不需要与XMSS签名一起被传送。使用已经是XMSS签名的部分的参数r,可能的是,在签名验证期间重构M’。这可将通信带宽增加8字节(或更多,取决于临时数大小)。
表3:XMSS签名大小
图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还使用外部高速缓存(例如,3级(L3)高速缓存或者末级高速缓存(LLC))(未示出),其可使用已知的高速缓存相干性技术在处理器核1107之中被共享。在处理器1102中另外还包括寄存器堆1106,其可包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而另一些寄存器可以是特定于处理器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包括可选的传统I/O控制器1140以用于将传统(例如,个人系统2(PS/2))装置耦合到系统。平台控制器集线器1130还能够连接到一个或多个通用串行总线(USB)控制器1142,USB控制器1142连接输入装置,诸如键盘和鼠标1143组合、相机1144或者其它USB输入装置。
以下涉及进一步的示例。
示例1是一种设备,包括:用于预计算消息代表的至少一部分的加速器逻辑;用于基于输入消息来生成消息代表的哈希逻辑;以及签名逻辑,所述签名逻辑用于:生成要与消息代表相关联传送的签名,所述签名逻辑用于将基于哈希的签名方案应用于私钥以生成包括公钥的签名;以及确定消息代表是否满足生成签名的成本与验证签名的成本之间的计算成本的目标阈值分配。
在示例2中,示例1的主题可可选地包括一种布置,其中哈希逻辑用于:使用调用安全哈希算法(SHA)哈希函数的Winterniz一次性签名(WOTS)方案来计算输入消息的消息代表。
在示例3中,示例1-2中任一项的主题可选地包括一种布置,其中,哈希逻辑用于:生成第一随机临时数;以及将第一随机临时数作为输入的一部分用于SHA函数来生成扩展Merkel签名方案(XMSS)参数r。
在示例4中,示例1-3中任一项的主题可可选地包括一种布置,其中哈希逻辑用于:至少部分地基于XMSS参数r来生成消息代表。
在示例5中,示例1-4中任一项的主题可可选地包括一种布置,其中加速器逻辑用于:基于预确定的输入序列、缓冲输入和索引输入来预计算第一中间哈希值;以及将第一中间哈希值存储在计算机可读存储器中。
在示例6中,示例1-5中任一项的主题可可选地包括一种布置,其中加速器逻辑用于:基于预确定的输入序列输入和缓冲输入来预计算第二中间哈希值;以及将第二中间哈希值存储在计算机可读存储器中。
在示例7中,示例1-6中任一项的主题可可选地包括一种布置,其中签名逻辑用于:使用第一中间哈希值或第二中间哈希值中的至少一个来生成签名。
示例8是一种计算机实现的方法,包括:预计算消息代表的至少一部分;基于输入消息来生成消息代表;生成要与消息代表相关联传送的签名,签名逻辑用于将基于哈希的签名方案应用于私钥以生成包括公钥的签名;以及确定消息代表是否满足生成签名的成本与验证签名的成本之间的计算成本的目标阈值分配。
在示例9中,示例8的主题可可选地包括:使用调用安全哈希算法(SHA)哈希函数的Winterniz一次性签名(WOTS)方案来计算输入消息的消息代表。
在示例10中,示例8-9中任一项的主题可可选地包括:生成第一随机临时数;以及将第一随机临时数作为输入的一部分用于SHA函数来生成扩展Merkel签名方案(XMSS)参数r。
在示例11中,示例8-10中任一项的主题可可选地包括:至少部分地基于XMSS参数来生成消息代表。
在示例12中,示例8-11中任一项的主题可可选地包括:基于预确定的输入序列、缓冲输入和索引输入来预计算第一中间哈希值;以及将第一中间哈希值存储在计算机可读存储器中。
在示例13中,示例8-12中任一项的主题可可选地包括:基于预确定的输入序列和缓冲输入来预计算第二中间哈希值;以及将第二中间哈希值存储在计算机可读存储器中。
在示例14中,示例8-13中的任何一个的主题可可选地包括:使用第一中间哈希值或第二中间哈希值中的至少一个来生成签名。
示例15是一种包括指令的计算机可读介质,所述指令当由处理器执行时将处理器配置成执行操作,所述操作包括:至少重新计算消息代表的一部分;基于输入消息来生成消息代表;生成要与消息代表相关联传送的签名,签名逻辑用于将基于哈希的签名方案应用于私钥以生成包括公钥的签名;以及确定消息代表是否满足生成签名的成本与验证签名的成本之间的计算成本的目标阈值分配。
在示例16中,示例15的主题可可选地包括指令,所述指令当由处理器执行时将处理器配置成执行操作,所述操作包括:使用调用安全哈希算法(SHA)哈希函数的Winterniz一次性签名(WOTS)方案来计算输入消息的消息代表。
在示例17中,示例15-16中任一项的主题可可选地包括指令,所述指令当由处理器执行时将处理器配置成执行操作,所述操作包括:生成第一随机临时数;以及将第一随机临时数作为输入的一部分用于SHA函数来生成扩展Merkel签名方案(XMSS)参数r。
在示例18中,示例15-17中任一项的主题可可选地包括指令,所述指令当由处理器执行时将处理器配置成执行操作,所述操作包括至少部分地基于XMSS参数r来生成消息代表。
在示例19中,示例15-18中任一项的主题可可选地包括指令,所述指令当由处理器执行时将处理器配置成执行操作,所述操作包括:基于预确定的输入序列、缓冲输入和索引输入来预计算第一中间哈希值;以及将第一中间哈希值存储在计算机可读存储器中。
在示例20中,示例15-19中任一项的主题可可选地包括指令,所述指令当由处理器执行时将处理器配置成执行操作,所述操作包括:基于预确定的输入序列和缓冲输入预计算第二中间哈希值;以及将第二中间哈希值存储在计算机可读存储器中。
在示例21中,示例15-20中任一项的主题可可选地包括指令,所述指令当由处理器执行时将处理器配置成执行操作,所述操作包括使用第一中间哈希值或第二中间哈希值中的至少一个来生成签名。
以上详细描述包括对附图的参考,附图形成详细描述的一部分。附图通过图示的方式示出可实践的特定实施例。这些实施例在本文中也被称为“示例”。这样的示例可包括除了示出或描述的那些元素之外的元素。然而,还设想包括示出或描述的元素的示例。此外,还设想使用或者关于特定示例(或其一个或多个方面)或者关于本文中示出或描述的其它示例(或其一个或多个方面)示出或描述的那些元素(或其一个或多个方面)的任何组合或排列的示例。
在本文档中提及的出版物、专利和专利文档通过引用整体并入本文中,如同通过引用单独并入。在本文档和通过引用如此并入的那些文档之间的不一致用法的情况下,并入的(一个或多个)参考中的用法是对本文档的用法的补充;对于不可调和的不一致性,以本文档中的用法为准。
在本文档中,如在专利文档中常见的,术语“一”或“一个”被用于包括一个或多于一个,独立于“至少一个”或“一个或多个”的任何其它实例或用法。另外,“…的集合”包括一个或多个元素。在本文档中,术语“或”用于指非排他性的,或使得“A或B”包括“A但不是B”、“B但不是A”以及“A和B”,除非另有指示。在所附权利要求中,术语“包括”和“其中”用作相应术语“包括”和“其中”的简单英语等同物。此外,在以下权利要求中,术语“包括”和“包含”是开放式的;即,包括除了权利要求中的这种术语之后列出的那些元素之外的元素的系统、装置、物品或过程仍然被认为落入该权利要求的范围内。此外,在以下权利要求中,术语“第一”、“第二”、“第三”等仅用作标记,并且不旨在建议它们的对象的数字顺序。
如本文中所提及的术语“逻辑指令”涉及可被一个或多个机器理解用于执行一个或多个逻辑操作的表达。例如,逻辑指令可包括由处理器编译器可解译的指令,用于对一个或多个数据对象执行一个或多个操作。然而,这仅仅是机器可读指令的示例,并且示例不限于这个方面。
如本文中所提及的术语“计算机可读介质”涉及能够维持由一个或多个机器可感知的表达的介质。例如,计算机可读介质可包括用于存储计算机可读指令或数据的一个或多个存储装置。这样的存储装置可包括存储介质,诸如例如光、磁或半导体存储介质。然而,这仅仅是计算机可读介质的示例,并且示例不限于这个方面。
如本文中所提及的术语“逻辑”涉及用于执行一个或多个逻辑操作的结构。例如,逻辑可包括基于一个或多个输入信号提供一个或多个输出信号的电路。这样的电路可包括接收数字输入并且提供数字输出的有限状态机,或者响应于一个或多个模拟输入信号而提供一个或多个模拟输出信号的电路。这样的电路可在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中被提供。此外,逻辑可包括存储在存储器中的机器可读指令,其与处理电路组合以执行这样的机器可读指令。然而,这些仅仅是可提供逻辑的结构的示例,并且示例不限于这个方面。
本文中描述的一些方法可被实施为计算机可读介质上的逻辑指令。当在处理器上被执行时,逻辑指令使处理器被编程为实现所描述的方法的专用机器。当处理器由逻辑指令配置以执行本文中描述的方法时,处理器构成用于执行所描述的方法的结构。备选地,本文中描述的方法可简化成例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等上的逻辑。
在描述和权利要求中,可使用术语耦合和连接以及它们的派生词。在特定示例中,连接可用于指示两个或更多个元件处于彼此直接物理或电接触。耦合可意味着两个或更多个元件处于直接物理或电接触。然而,耦合也可意味着两个或更多个元件可不处于彼此直接接触,但是仍然可彼此协作或交互。
说明书中对“一个示例”或“一些示例”的引用意味着结合示例描述的特定特征、结构或特性被包括在至少一实现中。在说明书中的各个地方中出现的短语“在一个示例中”可或可不全部指的是相同的示例。
上面的描述旨在是说明性而非限制性的。例如,上述示例(或其一个或多个方面)可与其它示例组合使用。其它实施例可例如由本领域技术人员在回顾上面的描述时使用。摘要是为了允许读者快速确定技术公开的本质。它与这样的理解一起被提交:它将不被用于解释或限制权利要求的范围或含义。此外,在上面的具体实施方式中,各种特征可被分组在一起以使本公开流线化。然而,权利要求可能没有阐明本文中公开的每个特征,因为实施例可能以所述特征的子集为特征。此外,实施例可包括比在特定示例中公开的那些特征更少的特征。因此,以下权利要求由此被并入具体实施方式中,其中每个权利要求独立地作为单独的实施例。本文中公开的实施例的范围将参考所附权利要求以及这些权利要求被授权的等同物的全部范围来确定。
尽管已经以特定于结构特征和/或方法动作的语言描述了示例,但是要理解,所要求保护的主题可不限于描述的特定特征或动作。相反,特定特征和动作作为实现所要求保护的主题的样例形式被公开。
Claims (14)
1.一种设备,包括:
加速器逻辑,所述加速器逻辑用于预计算消息代表的至少一部分;
哈希逻辑,所述哈希逻辑用于基于输入消息来生成所述消息代表;以及
签名逻辑,所述签名逻辑用于:
生成要与所述消息代表相关联传送的签名,所述签名逻辑用于将基于哈希的签名方案应用于私钥以生成包括公钥的所述签名;以及
确定所述消息代表是否满足生成所述签名的成本与验证所述签名的成本之间的计算成本的目标阈值分配。
2.根据权利要求1所述的设备,所述哈希逻辑用于:
使用调用安全哈希算法(SHA)哈希函数的Winterniz一次性签名(WOTS)方案来计算所述输入消息的所述消息代表。
3.根据权利要求2所述的设备,所述哈希逻辑用于:
生成第一随机临时数;以及
将所述第一随机临时数作为输入的一部分用于SHA函数来生成扩展Merkel签名方案(XMSS)参数r。
4.根据权利要求3所述的设备,所述哈希逻辑用于:
至少部分地基于所述XMSS参数来生成所述消息代表。
5.如权利要求4所述的设备,所述加速器逻辑用于:
基于预确定的输入序列、缓冲输入和索引输入来预计算第一中间哈希值;以及
将所述第一中间哈希值存储在计算机可读存储器中。
6.如权利要求5所述的设备,所述加速器逻辑用于:
基于所述预确定的输入序列输入和所述缓冲输入来预计算第二中间哈希值;以及
将所述第二中间哈希值存储在所述计算机可读存储器中。
7.根据权利要求6所述的设备,所述签名逻辑用于:
使用所述第一中间哈希值或所述第二中间哈希值中的至少一个来生成所述签名。
8.一种计算机实现的方法,包括:
预计算消息代表的至少一部分;
基于输入消息来生成所述消息代表;
生成要与所述消息代表相关联传送的签名,所述签名逻辑用于将基于哈希的签名方案应用于私钥以生成包括公钥的所述签名;以及
确定所述消息代表是否满足生成所述签名的成本与验证所述签名的成本之间的计算成本的目标阈值分配。
9.根据权利要求8所述的方法,还包括:
使用调用安全哈希算法(SHA)哈希函数的Winterniz一次性签名(WOTS)方案来计算所述输入消息的所述消息代表。
10.根据权利要求9所述的方法,还包括:
生成第一随机临时数;以及
将所述第一随机临时数作为输入的一部分用于SHA函数来生成扩展Merkel签名方案(XMSS)参数r。
11.根据权利要求10所述的方法,还包括:
至少部分地基于所述XMSS参数来生成所述消息代表。
12.根据权利要求11所述的方法,还包括:
基于预确定的输入序列、缓冲输入和索引输入来预计算第一中间哈希值;以及
将所述第一中间哈希值存储在计算机可读存储器中。
13.根据权利要求15所述的方法,还包括:
基于所述预确定的输入序列和所述缓冲输入来预计算第二中间哈希值;以及
将所述第二中间哈希值存储在所述计算机可读存储器中。
14.根据权利要求12所述的方法,还包括:
使用所述第一中间哈希值或所述第二中间哈希值中的至少一个来生成所述签名。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/455967 | 2019-06-28 | ||
US16/455,967 US11575521B2 (en) | 2019-06-28 | 2019-06-28 | Fast XMSS signature verification and nonce sampling process without signature expansion |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112152786A true CN112152786A (zh) | 2020-12-29 |
Family
ID=68162183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010224157.8A Pending CN112152786A (zh) | 2019-06-28 | 2020-03-26 | 无签名扩展的快速xmss签名验证和临时数采样过程 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11575521B2 (zh) |
EP (1) | EP3758281B1 (zh) |
CN (1) | CN112152786A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11218320B2 (en) | 2019-06-28 | 2022-01-04 | Intel Corporation | Accelerators for post-quantum cryptography secure hash-based signing and verification |
US11575521B2 (en) | 2019-06-28 | 2023-02-07 | Intel Corporation | Fast XMSS signature verification and nonce sampling process without signature expansion |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810546B2 (en) | 2017-10-02 | 2020-10-20 | R3 Ltd. | Settling obligations via netting transactions |
US11005664B2 (en) * | 2018-04-16 | 2021-05-11 | R3 Ltd. | Blockchain post-quantum signature scheme |
CN111131144B (zh) * | 2019-11-05 | 2021-11-16 | 远景智能国际私人投资有限公司 | IoT设备管理方法、装置、服务器及存储介质 |
US11818259B2 (en) * | 2020-05-13 | 2023-11-14 | Ridgeline, Inc. | Query and projection processing for events |
US11233640B2 (en) | 2020-05-13 | 2022-01-25 | Ridgeline, Inc. | Mutation processing for events |
US11949784B2 (en) | 2020-05-13 | 2024-04-02 | Ridgeline, Inc. | Auditing for events |
US20220123949A1 (en) * | 2021-06-23 | 2022-04-21 | Intel Corporation | Side channel protection for xmss signature function |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6944313B1 (en) | 1998-08-06 | 2005-09-13 | Canon Kabushiki Kaisha | Method and device for inserting and decoding a watermark in digital data |
US20040228360A1 (en) | 2003-05-13 | 2004-11-18 | Samsung Electronics Co., Ltd | Security method for broadcasting service in a mobile communication system |
US7681050B2 (en) | 2005-12-01 | 2010-03-16 | Telefonaktiebolaget L M Ericsson (Publ) | Secure and replay protected memory storage |
US20070143826A1 (en) | 2005-12-21 | 2007-06-21 | Sastry Manoj R | Method, apparatus and system for providing stronger authentication by extending physical presence to a remote entity |
US8793496B2 (en) | 2006-08-18 | 2014-07-29 | Florida State University | Systems, methods, and computer program products for secure optimistic mechanisms for constrained devices |
US8842833B2 (en) | 2010-07-09 | 2014-09-23 | Tata Consultancy Services Limited | System and method for secure transaction of data between wireless communication device and server |
JP5954030B2 (ja) | 2012-08-02 | 2016-07-20 | 富士通株式会社 | 暗号処理装置および方法 |
EP2860905A1 (en) | 2013-10-09 | 2015-04-15 | Thomson Licensing | Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product |
WO2016083618A1 (en) | 2014-11-28 | 2016-06-02 | Katholieke Universiteit Leuven | A method and device for authentication |
US10313130B2 (en) * | 2016-09-27 | 2019-06-04 | Intel Corporation | Hash-based signature balancing |
JP6635323B2 (ja) | 2016-12-15 | 2020-01-22 | 日本電気株式会社 | アクセストークンシステム、情報処理装置、情報処理方法および情報処理プログラム |
WO2018169071A1 (ja) | 2017-03-17 | 2018-09-20 | 日本電気株式会社 | 認証装置、ネットワーク装置、通信システム、認証方法、及び非一時的なコンピュータ可読媒体 |
JP7024666B2 (ja) | 2018-08-28 | 2022-02-24 | 日本電信電話株式会社 | Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム |
US11218320B2 (en) | 2019-06-28 | 2022-01-04 | Intel Corporation | Accelerators for post-quantum cryptography secure hash-based signing and verification |
US11575521B2 (en) | 2019-06-28 | 2023-02-07 | Intel Corporation | Fast XMSS signature verification and nonce sampling process without signature expansion |
-
2019
- 2019-06-28 US US16/455,967 patent/US11575521B2/en active Active
-
2020
- 2020-03-09 EP EP20161899.8A patent/EP3758281B1/en active Active
- 2020-03-26 CN CN202010224157.8A patent/CN112152786A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11218320B2 (en) | 2019-06-28 | 2022-01-04 | Intel Corporation | Accelerators for post-quantum cryptography secure hash-based signing and verification |
US11575521B2 (en) | 2019-06-28 | 2023-02-07 | Intel Corporation | Fast XMSS signature verification and nonce sampling process without signature expansion |
US11770258B2 (en) | 2019-06-28 | 2023-09-26 | Intel Corporation | Accelerators for post-quantum cryptography secure hash-based signing and verification |
Also Published As
Publication number | Publication date |
---|---|
EP3758281A1 (en) | 2020-12-30 |
US20190319800A1 (en) | 2019-10-17 |
EP3758281B1 (en) | 2023-09-27 |
US11575521B2 (en) | 2023-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11917053B2 (en) | Combined SHA2 and SHA3 based XMSS hardware accelerator | |
US11770262B2 (en) | Odd index precomputation for authentication path computation | |
US11770258B2 (en) | Accelerators for post-quantum cryptography secure hash-based signing and verification | |
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 | |
US11575515B2 (en) | Post-quantum secure remote attestation for autonomous systems | |
CN114661318A (zh) | 针对资源受限设备定制的高效后量子安全软件更新 | |
CN112152787A (zh) | 用于后量子密码学安全的基于哈希的签名和验证的消息索引感知多哈希加速器 | |
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 | |
US20220123949A1 (en) | Side channel protection for xmss signature function | |
US20220109558A1 (en) | Xmss management to address randomized hashing and federal information processing standards | |
US20240031164A1 (en) | Hybridization of dilithium and falcon for digital signatures | |
US20220416998A1 (en) | Side channel protection for sha3 cryptographic functions | |
US20240031140A1 (en) | Efficient low-overhead side-channel protection for polynomial multiplication in post-quantum encryption | |
US20240113888A1 (en) | Post-quantum lattice-based signature latency reduction | |
US20240031127A1 (en) | Lightweight side-channel protection for polynomial multiplication in post-quantum 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 |