CN113452527A - 用于有状态的基于散列的签名的鲁棒状态同步 - Google Patents
用于有状态的基于散列的签名的鲁棒状态同步 Download PDFInfo
- Publication number
- CN113452527A CN113452527A CN202011518931.2A CN202011518931A CN113452527A CN 113452527 A CN113452527 A CN 113452527A CN 202011518931 A CN202011518931 A CN 202011518931A CN 113452527 A CN113452527 A CN 113452527A
- Authority
- CN
- China
- Prior art keywords
- hardware security
- signature
- state synchronization
- security module
- counter
- 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/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
-
- 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
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本文描述的主题总地涉及计算机安全领域,并且更特别地,涉及用于后量子密码术安全的基于散列的签名的代码签名设施,包括但不限于扩展的Merkle签名方案(XMSS)和基于Leighton/Micali签名(LMS)的基于散列的签名和验证算法。在一个示例中,一种装置包括:计算机可读存储器;签名设施,包括多个硬件安全模块;以及状态同步管理器,包括处理电路以从所述多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;以及将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列。可以描述其他示例。
Description
背景技术
本文描述的主题总体涉及计算机安全领域,并且更特别地,涉及用于后量子密码术安全的基于散列的签名的代码签名设施,包括但不限于扩展的Merkle签名方案(XMSS)和Leighton/Micali签名(LMS)的基于散列的签名和验证算法。
诸如Rivest-Shamir-Adleman(RSA)和椭圆曲线数字签名算法(ECDSA)之类的现有公钥数字签名算法预期无法安全抵御基于算法(诸如使用量子计算机的肖尔算法)的暴力攻击。因此,密码术研究界中和各种标准机构中正在努力为安全抵御量子计算机的算法定义新的标准。
因此,用于管理后量子签名方案的正确应用的技术可能例如在基于计算机的通信系统和方法中发现实用性。
附图说明
参考随附附图描述了详细描述:
图1A和1B分别是一次性基于散列的签名方案和多次性基于散列的签名方案的示意性图示;
图2A-2B分别是一次性签名方案和多次性签名方案的示意性图示;
图3是根据一些示例的签名设备和验证设备的示意性图示;
图4A是根据一些示例的Merkle树结构的示意性图示;
图4B是根据一些示例的Merkle树结构的示意性图示;
图5是根据一些示例的在用以实现签名算法的架构中计算块的示意性图示;
图6A是根据一些示例的用以在签名算法中实现签名生成的架构中计算块的示意性图示;
图6B是根据一些示例的用以在验证算法中实现签名验证的架构中计算块的示意性图示;
图7是根据一些示例的用以实现用于有状态的基于散列的签名的鲁棒状态同步的架构中计算块的示意性图示;
图8是图示了根据一些示例的用以实现用于有状态的基于散列的签名的鲁棒状态同步的方法中操作的流程图;
图9是图示了根据一些示例的用以实现用于有状态的基于散列的签名的鲁棒状态同步的方法中操作的流程图;
图10是根据一些示例的可以适于实现硬件加速的计算架构的示意性图示。
具体实施方式
本文描述的是用以实现用于有状态的基于散列的签名的鲁棒状态同步的示例性系统和方法。在以下描述中,阐述了许多具体细节以提供对各种示例的透彻理解。然而,本领域技术人员应当理解,各种示例可以在没有具体细节的情况下实践。在其他实例中,没有详细图示或描述公知的方法、过程、组件和电路,以免混淆示例。
如上面简要描述的,诸如Rivest-Shamir-Adleman(RSA)和椭圆曲线数字签名算法(ECDSA)之类的现有公钥数字签名算法预期无法安全抵御基于使用量子计算机的算法(诸如肖尔算法)的暴力攻击。另一方面,期望基于散列的签名抵挡量子计算机的攻击。基于散列的签名方案的一个示例是扩展的Merkle签名方案(XMSS)。如本文所使用的,术语XMSS应指代XMSS方案和XMSS-MT方案这两者。
XMSS签名处理使用诸如Winternitz一次性签名(WOTS)或其派生物(例如,WOTS+)之类的一次性签名方案与诸如SHA2-256之类的安全散列算法(SHA)组合作为主要的底层散列函数,来实现基于散列的签名方案。在一些示例中,XMSS签名/验证方案还可以使用SHA2-512、SHA3-SHAK-256或SHA3-SHAK-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验证中,将树散列操作的输出与已知的公钥进行比较。如果它们匹配,则签名被接受。相比之下,如果它们不匹配,则签名被拒绝。
所有OTS算法和构建在OTS技术之上的许多基于散列的签名方案的重要限制是,任何单个私钥的使用多于一次就使得攻击者能够在方案中伪造签名。因此,当务之急是,如在连续集成/连续交付(CI/CD)软件开发方法中常见的使能实现代码自动化签名的系统保证HBS签名密钥的一次性使用。进一步地,以维持保证对每个私钥的单次使用的方式来对从可能造成业务连续性中断的装备故障或环境条件的恢复进行处置。自动化签名设施的设计和构造必须考虑正常操作——以确保HBS签名密钥仅使用一次——以及可能中断HBS私钥正常使用流程或次序的异常或灾难情况这两者。
后量子密码术综述
后量子密码术(也称为“量子防护”、“量子安全”、“量子抵抗”或简称为“PQC”)采用未来和现实的密码术方法。它使负责进行密码术的那些人和终端用户知道密码术已过时;相反,它需要进化,以能够成功地将正在进化的计算设备处理成量子计算和后量子计算。
如很好理解的,密码术允许保护在个体和实体之间在线通信并使用各种网络来存储的数据。该数据通信的范围可以包括发送和接收电子邮件、在线购买商品或服务、使用网站访问银行或其他个人信息等。
在处理量子计算时,常规的密码术及其对困难数学场景的典型分解和计算可能并不重要。这些数学问题,诸如离散对数、整数分解和椭圆曲线离散对数等无法抵挡来自强大量子计算机的攻击。尽管任何后量子密码术可以构建在当前密码术之上,但新方法将需要是足够智能、快速和精确的,以抵抗和击败量子计算机的任何攻击。
图1A和1B分别图示了一次性基于散列的签名方案和多次性基于散列的签名方案。如前所述,基于散列的密码术基于如Lamport签名、Merkle签名、扩展Merkle签名方案(XMSS)和SPHINCs方案等的密码系统。随着量子计算的出现和对其发展的预期,已经存在关于量子计算可能带来的各种挑战以及可以使用密码术领域做些什么来应对这样的挑战的担忧。
正在探索以应对量子计算挑战的一个领域是基于散列的签名(HBS),因为这些方案已经存在了很长时间,并且拥有应对量子计数和后量子计算挑战的必要基本要素。HBS方案被认为是与快速平台安全引导一起工作的快速签名算法,其被认为最能抵抗量子和后量子计算攻击。
例如,如关于图1A所图示的,示出了HBS的方案,该方案使用Merkle树连同一次性签名(OTS)方案100,该方案100诸如使用私钥对消息进行签名,并使用对应的公钥来验证OTS消息,其中私钥仅对单个消息进行签名。
类似地,如关于图1B所图示的,示出了另一个HBS方案,其中该方案涉及多次性签名(MTS)方案150,其中私钥可以对多个消息进行签名。
图2A和2B分别图示了一次性签名方案和多次性签名方案。继续图1A的基于HBS的OTS方案100和图1B的MTS方案150,分别地,图2A图示了Winternitz OTS方案200,其由斯坦福数学系的Robert Winternitz提供,作为与 h(x)|h(y)相对的hw(x)发表,而图2B图示了XMSS MTS方案250。
例如,图2A的WOTS方案200提供了将消息散列和解析成M,其具有67个在[0,1,2,.. . ,15]之间的整数,诸如私钥sk 205、签名s 210和公钥pk 215;其中每一个具有67个分量,每个分量32字节。
图2B图示了XMSS MTS方案250,其允许图2A的WOTS方案200和具有XMSS Merkle树的XMSS方案255的组合。如先前关于图2A所讨论的,WOTs方案200基于一次性公钥pk 215,其具有67个分量,每个分量32字节,然后该一次性公钥pk 215通过L树压缩算法260以提供WOTS压缩的pk 265,从而在XMSS方案255的XMSS Merkle树中占据一个位置。设想到XMSS签名验证可以包括计算WOTS验证和检查以确定重构的根节点是否匹配XMSS公钥,诸如根节点= XMSS公钥。
后量子密码术
图3是根据一些示例的安全环境300的高级架构的示意性图示,该安全环境300包括第一设备310和第二设备350。参考图3,第一设备310和第二设备350中的每一个可以被体现为能够执行本文描述的功能的任何类型的计算设备。例如,在一些实施例中,第一设备310和第二设备350中的每一个可以体现为膝上型计算机、平板计算机、笔记本、上网本、UltrabookTM(超极本)、智能电话、蜂窝电话、可穿戴计算设备、个人数字助理、移动互联网设备、台式计算机、路由器、服务器、工作站和/或任何其他计算/通信设备。
第一设备310包括一个或多个处理器320和存储私钥324的存储器322。所述(一个或多个)处理器320可以体现为能够执行本文描述的功能的任何类型的处理器。例如,所述(一个或多个)处理器320可以体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器322可以体现为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器322可以存储在第一设备310的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器322通信耦合到所述(一个或多个)处理器320。在一些示例中,私钥324可以驻留在安全存储器中,该安全存储器可以是存储器322的一部分或者可以与存储器322分离。
第一设备310进一步包括签名设施330,签名设施330包括(一个或多个)硬件安全模块331,硬件安全模块331包括散列逻辑332、签名逻辑334和验证逻辑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-OutputFunctions”的FIPS出版物202,和/或该标准的稍后版本和/或相关版本。
签名逻辑332可以被配置为生成要传输的签名(即,所传输的签名)和/或对签名进行验证。在第一设备310是签名设备的实例中,所传输的签名可以包括数量L个所传输的签名元素,其中每个所传输的签名元素对应于相应的消息元素。例如,对于每个消息元素mi,签名逻辑332可以被配置为对私钥sk的每个私钥元素ski执行相应次数的所选签名操作,该相应次数与被包括在消息代表m'中的每个消息元素mi的值相关。例如,签名逻辑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.)信息草案互联网注释,例如,由IETF.RTM的互联网研究任务小组、密码论坛研究组于2015年4月发布的、题为“XMSS: Extended Hash-BasedSignatures”的草案draft-irtf-cfrg-xmss-hash-based-signatures-00,和/或该信息草案的稍后版本和/或相关版本,诸如2016年6月发布的草案draft-irtf-cfrg-xmss-hash-based-signatures-06。
Winternitz OTS被配置成生成签名并利用散列函数来验证接收到的签名。Winternitz OTS进一步被配置成使用私钥,并且因此将每个私钥元素ski使用一次。例如,Winternitz OTS可以被配置成将散列函数应用于每个私钥元素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和/或另一模块可以建立可信执行环境或安全包围区(secure enclave),在其内可以存储本文描述的一部分数据和/或可以执行本文描述的多个功能。
在如上所述生成签名之后,消息M和签名然后可以由第一设备310(例如经由通信逻辑342)经由网络通信链路390发送到第二设备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包括一个或多个硬件安全模块371,硬件安全模块371包括散列逻辑372、签名逻辑374和验证逻辑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-Output Functions”的FIPS出版物202,和/或该标准的稍后版本和/或相关版本。
在其中第二设备是验证设备的实例中,硬件安全模块371被配置成至少部分地基于从第一设备接收的签名并且至少部分地基于接收到的消息代表(m’)来生成验证签名。例如,硬件安全模块371可以被配置成执行相同的签名操作,即,将向每个接收到的消息元素应用数字N-mi'(或mi')次与硬件安全模块331的散列逻辑332所应用的相同的散列函数或链函数,以产生验证消息元素。然后可以确定验证签名(即L个验证消息元素中的每一个)是否对应于对应的公钥元素pki。例如,验证逻辑376可以被配置成将每个验证消息元素与对应的公钥元素pki进行比较。如果每个验证消息元素与对应的公钥元素pki相匹配,则验证对应于成功。换句话说,如果所有验证消息元素与公钥元素pk1, . . . , pkL相匹配,则验证对应于成功。如果任何验证消息元素与对应的公钥元素pki不匹配,则验证对应于失败。
如下面更详细描述的,在一些示例中,第一设备310的硬件安全模块331包括一个或多个加速器338,加速器338与散列逻辑332、签名逻辑334和/或验证逻辑336协作以加速认证操作。类似地,在一些示例中,第二设备310的硬件安全模块371包括一个或多个加速器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节点的局部公钥410B,该局部公钥410B进一步用于使用认证路径计算树根值。成功的验证将使计算出的树根值与签名实体共享的公钥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进行比较以验证消息。
用于有状态的基于散列的签名的鲁棒状态同步
基于散列的签名(HBS)方案、诸如上述的XMSS方案是有状态的,这意味着在签名生成之间需要安全地存储某个状态(例如,单调计数器)。如果签名者重用相同的计数器(这意味着重用相同的一次性签名密钥),这将使系统暴露于可伪造性攻击。某种数字签名的签名设施利用多个硬件安全模块(HSM)来改进签名系统的可用性。如果HBS方案被集成到这些签名设施中,则这些签名设施需要提供一种机制来跨设施中所有可用的HSM签名器安全地同步所述状态(例如,单调计数器)。
附加地,由于一些演绎中的HBS方案基于树的大小而具有有限数量的总签名操作,因此对签名系统的攻击或签名系统中的错误可能引起签名密钥的“耗尽”,在该情况下,所有可能的计数器都被用尽,并且签名密钥不能再被使用。在其中产品寿命与HBS签名密钥的寿命相关联的系统中,这可能导致拒绝产品服务。签名设施必须确保防止签名密钥的这样的意外和恶意耗尽或将其影响最小化。
图7是根据一些示例的用以实现用于有状态的基于散列的签名的鲁棒状态同步的架构中计算块的示意性图示。参考图7,在一些示例中,签名设施700可以包括:可以用于存储签名操作输入和签名操作的中间结果的计算机可读存储器块(或寄存器文件)710;状态同步管理器720;负载平衡器722;被配置成使用公共XMSS密钥对740来计算签名的多个硬件安全模块730A、730B、…730N(本文统称为参考数字730)。
例如,在最简单的情况下,签名设施700中的每个HSM可以为单个唯一的密钥签名。这确保了没有密钥被使用两次,但是没有解决扩展签名设施以利用相同密钥对许多东西进行签名的问题,例如必须对每一件软件进行签名的软件设计室。
在一些示例中,可以实现操作以确保在为Merkle树计算数字签名时使用的每个硬件安全模块使用唯一状态同步计数器序列来防止不同的硬件安全模块使用相同的计数器。图8是图示了根据一些示例的在用以实现用于有状态的基于散列的签名的鲁棒状态同步的方法中的操作的流程图。在一些示例中,图8中描绘的操作可以由在签名设施中的、或者通信耦合到签名设施的处理电路来实现。在图7中描绘的示例架构中,图8的操作可以由状态同步管理器720中的处理电路单独地实现或者与硬件安全模块730组合地实现。
参考图8,在操作810处,确定可用于执行数字签名处理的多个硬件安全模块730。在一些示例中,状态同步管理器720可以维护签名设施中具操作性并可用于执行数字签名处理的硬件安全模块730的列表。在操作815处,在签名设施中接收一个或多个签名操作。在一些示例中,签名操作可以包括计算基于散列的签名的全部或一部分作为Merkle树的分量,如上所述。
在操作820处,选择硬件安全模块730的集合来执行在操作815中接收的数字签名操作。在一些示例中,状态同步管理器720可以从具操作性并可用于执行数字签名操作的多个硬件安全模块中选择包括两个或更多个硬件安全模块730的子集。进一步地,在一些示例中,负载平衡器722可以监视不同硬件安全模块730的工作负载,以促进选择硬件安全模块的子集,使得计算负载以使分派给硬件安全模块730的工作负载平滑的方式分布在可用的硬件安全模块730之间。
在操作825处,状态同步计数器序列被分派给在操作820中选择的硬件安全模块集合中的硬件安全模块730。在一些示例中,分派状态同步计数器序列,使得在操作820中选择的硬件安全模块集合中的每个硬件安全模块730以唯一状态同步计数器序列操作。作为一般原则,这可以通过如下方式完成:分派序列,使得模操作(a mod n)对于在操作820中选择的硬件安全模块730的集合中的每个硬件安全模块730是唯一的,其中a是计数器,并且n是集合中硬件安全模块730的总数。
例如,如果在操作820中选择两个硬件安全模块(例如,730A、730B)的集合,则硬件安全模块730A可以被分派仅包括偶数整数(例如,0, 2, 4, 6, 8, 10,…)的状态同步计数器序列,并且硬件安全模块730B可以被分派仅包括奇数整数(例如,1, 3, 5, 7, 9,11,…)的状态同步计数器序列。通过扩展,如果在操作820中选择三个硬件安全模块(例如,730A、730B、730N)的集合,则硬件安全模块730A可以被分派仅包括可被3整除的整数(即,求其mod 3的值为零)(例如,0, 3, 6, 9, 12,…)的状态同步计数器序列,硬件安全模块730B可以被分派仅包括可除以3余数为1的整数(即,求其mod 3的值为一)(例如,1, 4, 7, 10,13,…)的状态同步计数器序列,并且硬件安全模块730N可以被分派仅包括可除以3余数为2的整数(即,求其mod 3的值为2)(例如,2, 5, 8, 11, 14,…)的状态同步计数器序列。 该过程可以被按比例放大以容纳任何数量的硬件安全模块730。
该方法的一个潜在缺点是,HSM的选择可能不统一,从而导致一个HSM在其他HSM之前用完计数器,并且然后不能执行附加的签名。在该情况下,HSM 730必须能够与管理器720通信来报告该状况,以允许管理器选择不同的HSM来完成签名操作。
该方法的另一个潜在问题是灾难恢复。如果HSM断开,则可能无法确定最后使用的计数器值。这要求计数器递增到比HSM能够合理消耗的值更大的值,并且导致浪费许多可行的签名密钥。例如,HSM失败并且计数器最后被认为是100,但是不清楚发生了多少签名。如果一秒钟可以完成10次签名,并且没有在日志中分配15分钟的停机时间,则计数器必须递增到100+(10*60*15) = 9100,这可能导致丢失9000个签名密钥。
第三种方法是使用共享的复制状态。状态同步管理器722在存储器710中保留加密状态的数据库。仅HSM可以解密该状态。当请求签名操作时,负载平衡器722选择可用的HSM730,并且状态同步管理器720基于所请求的签名密钥从存储器710检索加密状态,并将加密状态发送到所选HSM。
HSM对包括下一个可用计数器的状态进行解密,对消息进行签名,更新计数器和其他状态信息,重新加密状态信息,并将经签名的消息以及经更新和重新加密的状态发送回状态同步管理器720。管理器720更新存储器710中数据库中的状态,并将经签名的消息返回给请求者。如果利用相同密钥进行签名的另一个请求到达管理器720处,同时HSM检验出了状态,则管理器720使该请求排队,并等待签名密钥的状态被返回并在数据库中被更新。
灾难恢复可以被执行并且仅丢失单个密钥。同步管理器720识别HSM(例如,730B)停机,并通过告诉负载平衡器722取消调度HSM 730B来将该HSM从签名操作中移除。同步管理器720将加密状态从存储器710中的数据库发送到工作的HSM 730C,并命令该工作的HSM730C使状态递增一,以从丢失的签名操作中恢复。被命令的HSM 730C解密该状态,使计数器递增,重新加密该状态,并将重新加密的状态返回给同步管理器720。同步管理器720更新存储器710中的数据库中的新状态,并将具有经更新的状态的丢失的签名请求重新提交给可用的HSM。在该失败的情况下,仅丢失单个签名密钥。
在其他演绎中,所有HSM 730在NVM存储器中具有所有密钥的数据库副本。所有HSM730可以与同步管理器720通信(以及与彼此通信)。例如,HSM 730A可以发送消息和从HSM730B和730C接收消息。同步管理器720向HSM(例如,HSM 730A)发送针对特定的签名密钥(例如,签名密钥#23)的签名请求以执行签名。作为响应,同步管理器720将HSM 730A标记为锁定签名密钥#23。HSM 730A向设施中的所有其他HSM发送它将利用签名密钥#23进行签名的消息,并且等待,直到所有HSM确认该动作。当从HSM 730A接收到消息时,每个其他HSM将签名密钥#23标记为被HSM 730A锁定,并向HSM 730A发送它们确认并接受锁定请求的消息。
当HSM 730A从所有其他HSM接收到锁定确认时,它执行签名操作,在其内部状态中针对签名密钥#23递增计数器,并且向所有HSM发送具有经更新的计数器值的解锁请求,并且等待所有HSM响应。当每个HSM接收到具有新的计数器值的针对签名密钥#23的解锁请求时,HSM更新它们针对签名密钥#23的相应的计数器值状态,解锁签名密钥#23,并且向HSM730A发送密钥#23状态被更新的确认消息。
当HSM 730A从所有HSM取得解锁确认消息时,它解锁其针对密钥#23的状态,向管理器720发送操作完成并且签名密钥#23被解锁的消息,并且返回签名操作的结果(例如,将签名消息0返回到同步管理器720)。同步管理器720将签名密钥#23标记为释放。
如果任何HSM在由超时窗口配置设置的合理时间量内没有响应签名HSM 730A,则HSM 730A向同步管理器720报告无响应的HSM。作为响应,管理器720使任何无响应的HSM离线,并向所有HSM报告无响应的HSM,从而使无响应的HSM脱离通信环路。在该情况下,没有签名密钥丢失。如果签名HSM 730A在操作期间失败,并且在超时时段之后从不响应管理器720,则管理器720使HSM 730A脱离操作,并且通知所有其他HSMS:HSM 730A不再操作,并且使签名密钥#23的状态递增。在该情况下,丢失单个签名密钥。
在另一演绎中,对签名系统的攻击允许攻击者向签名系统重放有效的签名请求,迫使签名系统对同一密钥执行许多次签名,并且由于所有可能的计数器值都已被消耗而使HBS密钥耗尽,从而导致密钥不再可用。在签名系统的该演绎中,适用于基于计数器的签名系统的所有先前演绎,请求者提交它正在以最大计数器值提交其签名请求。如果计数器不大于指定的计数器,则系统中的HSM仅利用所请求的密钥进行签名。
在该示例中,请求者查询同步管理器720以确定针对特定密钥(例如密钥#23)的计数器的当前计数器值。作为响应,同步管理器720向任何HSM 730查询密钥#23的计数器值,或者它从存储器710检索状态,并要求任何HSM解密该状态并报告计数器值。可替代地,同步管理器720本身知晓计数器值。同步管理器720将计数器返回给请求者。
请求者创建签名请求,并将请求中的最大计数器值设置为由同步管理器720返回的计数器值加上某个固定值(其可以称为窗口大小),例如5或10。窗口大小可以基于在请求正被构造的时间段内签名设施可以对该密钥执行的期望签名请求的数量来选取。对于具有很少请求的密钥,该窗口大小值可能是低的,例如1或2;对于在自动化构建系统中被大量使用的密钥,该窗口大小值可以较大。请求者制定签名请求以包括最大计数器值,并使用对于签名设施700而言已知的对称密钥或公钥对请求进行数字签名。
当签名设施700接收到签名请求时,同步管理器720(或者可替代地在一些演绎中为HSM)验证签名请求上的签名,并且验证最大计数器值不大于针对签名密钥的当前计数器。如果没有发生违规,则如先前段落中所概述的那样执行签名请求,从而更新如针对上述不同演绎定义的计数器。相比之下,如果当前计数器超过请求中最大计数器的值,则请求被拒绝。在该系统中,如果攻击者重放有效的签名请求,则签名密钥上浪费的签名操作的最大数量不能大于窗口大小。
在操作830处,将数字签名操作分配给在操作825中选择的硬件安全模块,并且在操作830处,在所选硬件安全模块中执行签名操作。在一些示例中,硬件安全模块730可以通过将散列函数应用于字符串来生成数字签名,该字符串包括私钥和被分派给硬件安全模块730的状态同步计数器序列中的计数器中的至少一个。使用本文描述的技术分派状态同步计数器序列确保了相同的计数器不能被不同的硬件安全模块重用,从而防止可伪造性攻击。
在另一个示例中,签名设施中的每个硬件安全模块730可以被分配给Merkle树的不同子树,以防止不同的硬件安全模块使用相同的计数器。参考图9,在操作910处,确定可用于执行数字签名处理的多个硬件安全模块730。在一些示例中,状态同步管理器720可以维护签名设施中具操作性并可用于执行数字签名处理的硬件安全模块730的列表。在操作915处,在签名设施中接收一个或多个签名操作。在一些示例中,签名操作可以包括计算XMSS基于散列的签名的全部或部分作为Merkle树的分量,如上所述。
在操作920处,选择硬件安全模块730的集合来执行在操作915中接收的数字签名操作。在一些示例中,状态同步管理器720可以从具操作性并可用于执行数字签名操作的多个硬件安全模块中选择包括两个或更多个硬件安全模块730的子集。此外,在一些示例中,负载平衡器722可以监视不同硬件安全模块730的工作负载,以促进选择硬件安全模块的子集,使得计算负载以使分配给硬件安全模块730的工作负载平滑的方式分布在可用的硬件安全模块730之间。
选择硬件安全模块730之一,它们可以被分配给Merkle树的单独的子树。因此,在利用两个硬件安全模块的示例中,在操作925处,在操作920中选择的第一硬件安全模块730被分配给第一子树,并且在操作930处,第二硬件安全模块730被分配给第二子树。该过程可以被放大以容纳任何数量的硬件安全模块730。
在操作935处,在所选硬件安全模块中执行签名操作。将硬件安全模块分配给不同子树确保了相同的计数器不能被不同的硬件安全模块重用,从而防止可伪造性攻击。
图10图示了可以适用于实现如前所述的各种实施例的示例性计算架构的实施例。在各种实施例中,计算架构1000可以包括或被实现为电子设备的一部分。在一些实施例中,计算架构1000可以代表例如实现上述操作环境的一个或多个组件的计算机系统。在一些实施例中,计算架构1000可以代表实现本文描述的一种或多种技术的数字签名签名系统的一个或多个部分或组件。实施例不限于该上下文中。
如在本申请中所使用的,术语“系统”和“组件”以及“模块”旨在指代计算机相关的实体——硬件、硬件和软件的组合、软件或者执行中的软件,其示例由示例性计算架构1000提供。例如,组件可以是但不限于在处理器上运行的处理、处理器、硬盘驱动器、(光和/或磁存储介质的)多个存储驱动器、对象、可执行文件、执行线程、程序和/或计算机。通过说明的方式,运行在服务器上的应用和服务器这两者都可以是组件。一个或多个组件可以驻留在处理和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。进一步地,组件可以通过各种类型的通信介质彼此通信耦合,以协调操作。协调可以涉及单向或双向的信息交换。例如,组件可以以通过通信介质传送的信号的形式传送信息。所述信息可以被实现为分配给各种信号线的信号。在这样的分配中,每个消息是一个信号。然而,进一步的实施例可以可替代地采用数据消息。这样的数据消息可以跨各种连接来发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构1000包括各种常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于通过计算架构1000的实施方式。
如图10中所示,计算架构1000包括一个或多个处理器1002和一个或多个图形处理器1008,并且可以是单处理器桌面系统、多处理器工作站系统或具有大量处理器1002或处理器核心1007的服务器系统。在一个实施例中,系统1000是并入在用于在移动、手持或嵌入式设备中使用的片上系统(SoC或SOC)集成电路内的处理平台。
系统1000的实施例可以包括或并入在基于服务器的游戏平台、游戏控制台(包括游戏和媒体控制台)、移动游戏控制台、手持游戏控制台或在线游戏控制台内。在一些实施例中,系统1000是移动电话、智能电话、平板计算设备或移动互联网设备。数据处理系统1000还可以包括可穿戴设备、与其耦合或集成在其内,可穿戴设备诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在一些实施例中,数据处理系统1000是具有一个或多个处理器1002和由一个或多个图形处理器1008生成的图形接口的电视或机顶盒设备。
在一些实施例中,一个或多个处理器1002各自包括一个或多个处理器核心1007以处理指令,所述指令在被执行时,执行用于系统和用户软件的操作。在一些实施例中,所述一个或多个处理器核心1007中的每一个被配置成处理特定指令集1009。在一些实施例中,指令集1009可以促进复杂指令集计算(CISC)、精简指令集计算(RISC)或经由超长指令字(VLIW)的计算。多个处理器核心1007可以每个都处理不同的指令集1009,指令集1009可以包括促进仿真其他指令集的指令。处理器核心1007还可以包括其他处理设备,诸如数字信号处理器(DSP)。
在一些实施例中,处理器1002包括高速缓冲存储器1004。取决于架构,处理器1002可以具有单个内部高速缓存或多级内部高速缓存。在一些实施例中,在处理器1002的各种组件间共享高速缓冲存储器。在一些实施例中,处理器1002还使用外部高速缓存(例如,3级(L3)高速缓存或末级高速缓存(LLC))(未示出),其可以使用已知的高速缓存一致性技术在处理器核心1007间被共享。处理器1002中附加地包括寄存器文件1006,寄存器文件1006可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可以特定于处理器1002的设计。
在一些实施例中,一个或多个处理器1002与一个或多个接口总线1010耦合,以在处理器1002和系统中的其他组件之间传输通信信号,诸如地址、数据或控制信号。在一个实施例中,接口总线1010可以是处理器总线,诸如直接媒体接口(DMI)总线的版本。然而,处理器总线不限于DMI总线,并且可以包括一个或多个外围组件互连总线(例如,PCI、PCIExpress)、存储器总线或其他类型的接口总线。在一个实施例中,(一个或多个)处理器1002包括集成存储器控制器1016和平台控制器中枢1030。存储器控制器1016促进存储器设备与系统1000的其他组件之间的通信,而平台控制器中枢(PCH)1030经由本地I/O总线提供到I/O设备的连接。
存储器设备1020可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪速存储器设备、相变存储器设备或具有适当性能以用作处理存储器的某个其他存储器设备。在一个实施例中,存储器设备1020可以作为用于系统1000的系统存储器来操作,以存储数据1022和指令1021,以供一个或多个处理器1002执行应用或处理时使用。存储器控制器中枢1016还与可选的外部图形处理器1012耦合,外部图形处理器1012可以与处理器1002中的一个或多个图形处理器1008通信,以执行图形和媒体操作。在一些实施例中,显示设备1011可以连接到(一个或多个)处理器1002。显示设备1011可以是(如在移动电子设备或膝上型设备中的)内部显示设备或经由显示接口(例如,显示端口等)附接的外部显示设备中的一个或多个。在一个实施例中,显示设备1011可以是头戴式显示器(HMD),诸如用于在虚拟现实(VR)应用或增强现实(AR)应用中使用的立体显示设备。
在一些实施例中,平台控制器中枢1030使得外围设备能够经由高速I/O总线连接到存储器设备1020和处理器1002。I/O外围设备包括但不限于音频控制器1046、网络控制器1034、固件接口1028、无线收发器1026、触摸传感器1025、数据存储设备1024(例如,硬盘驱动器、闪速存储器等)。数据存储设备1024可以经由存储接口(例如,SATA)或经由诸如外围组件互连总线(例如,PCI、PCI Express)之类的外围总线来连接。触摸传感器1025可以包括触摸屏传感器、压力传感器或指纹传感器。无线收发器1026可以是Wi-Fi收发器、蓝牙收发器、或移动网络收发器(诸如3G、4G或长期演进(LTE)收发器)。固件接口1028使得能够与系统固件通信,并且可以是例如统一可扩展固件接口(UEFI)。网络控制器1034可以使能实现到有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线1010耦合。在一个实施例中,音频控制器1046是多通道高清晰度音频控制器。在一个实施例中,系统1000包括用于将遗留(例如个人系统2(PS/2))设备耦合到系统的可选遗留I/O控制器1040。平台控制器中枢1030还可以连接到一个或多个通用串行总线(USB)控制器1042,该控制器1042连接输入设备,诸如键盘和鼠标1043的组合、相机1044或其他USB输入设备。
下文涉及进一步的示例。
示例1是一种装置,包括:计算机可读存储器;签名设施,包括多个硬件安全模块;以及状态同步管理器,包括处理电路以从所述多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;以及将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列。
在示例2中,示例1的主题可以可选地包括一种布置,其中第一状态同步计数器序列集合包括仅从偶数整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;并且第二状态同步计数器序列集合包括仅从奇数整数中选择的第二多个计数器,并且被分派给第二硬件安全模块。
在示例3中,示例1-2中任一个的主题可以可选地包括签名处理电路,以通过将第一散列函数应用于第一字符串来为第一消息生成第一数字签名,所述第一字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
在示例4中,示例1-3中任一个的主题可以可选地包括签名处理电路,以通过将第二散列函数应用于第二字符串来为第二消息生成第二数字签名,所述第二字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
在示例5中,示例1-4中任一个的主题可以可选地包括负载平衡器,以选择第一硬件安全模块或第二硬件安全模块之一来生成签名。
在示例6中,示例1-5中任一个的主题可以可选地包括处理电路,以选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块以及第三硬件安全模块;以及将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列以及第三同步计数器序列。
在示例7中,示例1-6中任一个的主题可以可选地包括一种布置,其中第一状态同步计数器序列集合包括仅从可被3整除的整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;第二状态同步计数器序列集合包括仅从当除以3结果得到余数1的整数中选择的第二多个计数器,并且被分派给第二硬件安全模块;并且第三状态同步计数器序列集合包括仅从当除以3结果得到余数2的整数中选择的第三多个计数器,并且被分派给第三硬件安全模块。
示例8是一种基于计算机的方法,包括从签名设施中的多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;以及将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列。
在示例9中,示例8的主题可以可选地包括一种布置,其中第一状态同步计数器序列集合包括仅从偶数整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;并且第二状态同步计数器序列集合包括仅从奇数整数中选择的第二多个计数器,并且被分派给第二硬件安全模块。
在示例10中,示例9中任一个的主题可以可选地包括通过将第一散列函数应用于第一字符串来为第一消息生成第一数字签名,所述第一字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
在示例11中,示例9-10中任一个的主题可以可选地包括通过将第二散列函数应用于第二字符串来为第二消息生成第二数字签名,所述第二字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
在示例12中,示例9-11中任一个的主题可以可选地包括选择第一硬件安全模块或第二硬件安全模块之一来生成签名。
在示例13中,示例9-12中任一个的主题可以可选地包括选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块以及第三硬件安全模块;以及将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列以及第三同步计数器序列。
在示例14中,示例9-13中任一个的主题可以可选地包括一种布置,其中第一状态同步计数器序列集合包括仅从可被3整除的整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;第二状态同步计数器序列集合包括仅从当除以3结果得到余数1的整数中选择的第二多个计数器,并且被分派给第二硬件安全模块;并且第三状态同步计数器序列集合包括仅从当除以3结果得到余数2的整数中选择的第三多个计数器,并且被分派给第三硬件安全模块。
示例15是一种包括指令的非暂时性计算机可读介质,所述指令在由处理器执行时配置处理器执行操作,所述操作包括:从签名设施中的多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;以及将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列。
在示例16中,示例15的主题可以可选地包括权利要求15的主题,其中第一状态同步计数器序列集合包括仅从偶数整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;并且第二状态同步计数器序列集合包括仅从奇数整数中选择的第二多个计数器,并且被分派给第二硬件安全模块。
在示例17中,示例15-16中任一个的主题可以可选地包括指令,用以通过将第一散列函数应用于第一字符串来为第一消息生成第一数字签名,所述第一字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
在示例18中,示例15-17中任一个的主题可以可选地包括指令,用以通过将第二散列函数应用于第二字符串来为第二消息生成第二数字签名,所述第二字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
在示例19中,示例15-18中任一个的主题可以可选地包括指令,用以选择第一硬件安全模块或第二硬件安全模块之一来生成签名。
在示例20中,示例15-19中任一个的主题可以可选地包括指令,用以选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块以及第三硬件安全模块;以及将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列以及第三同步计数器序列。
在示例21中,示例15-20中任一个的主题可以可选地包括一种布置,其中第一状态同步计数器序列集合包括仅从可被3整除的整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;第二状态同步计数器序列集合包括仅从当除以3结果得到余数1的整数中选择的第二多个计数器,并且被分派给第二硬件安全模块;并且第三状态同步计数器序列集合包括仅从当除以3结果得到余数2的整数中选择的第三多个计数器,并且被分派给第三硬件安全模块。
示例22是一种装置,包括:计算机可读存储器;签名设施,包括多个硬件安全模块;以及状态同步管理器,包括处理电路,以从所述多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;分派第一硬件安全模块,来为Merkle树的第一子树生成数字签名;并且分派第二硬件安全模块,来为Merkle树的第二子树生成数字签名。
在示例23中,示例22的主题可以可选地包括签名设施,所述签名设施进一步包括签名处理电路,以通过将散列函数应用于包括公钥或私钥和计数器中的至少一个的字符串来为消息生成数字签名。
在示例24中,示例22-23中任一个的主题可以可选地包括负载平衡器,以选择第一硬件安全模块或第二硬件安全模块之一来生成签名。
示例25是一种计算机实现的方法,包括从签名设施的多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;分派第一硬件安全模块,来为Merkle树的第一子树生成数字签名;以及分派第二硬件安全模块,来为Merkle树的第二子树生成数字签名。
在示例26中,示例25的主题可以可选地包括通过将散列函数应用于包括公钥或私钥和计数器中的至少一个的字符串来为消息生成数字签名。
在示例27中,示例25-26中任一个的主题可以可选地包括选择第一硬件安全模块或第二硬件安全模块之一来生成签名。
示例28是一种包括指令的非暂时性计算机可读介质,所述指令在由处理器执行时配置处理器,以进行:从签名设施的多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;分派第一硬件安全模块来为Merkle树的第一子树生成数字签名;并且分派第二硬件安全模块来为Merkle树的第二子树生成数字签名。
在示例29中,示例28的主题可以可选地包括指令,用以通过将散列函数应用于包括公钥或私钥和计数器中的至少一个的字符串来为消息生成数字签名。
在示例30中,示例28-29中任一个的主题可以可选地包括指令,用以选择第一硬件安全模块或第二硬件安全模块之一来生成签名。
以上具体实施方式包括对随附附图的参考,附图形成了具体实施方式的一部分。附图通过图示的方式示出了可以实践的具体实施例。这些实施例在本文也被称为“示例”。这样的示例可以包括除了所示出或描述的那些元素之外的元素。然而,还设想到包括所示出或所描述的元素的示例。此外,还设想到使用关于特定示例(或其一个或多个方面)或者关于本文示出或描述的其他示例(或其一个或多个方面)所示出或描述的那些元素(或其一个或多个方面)的任何组合或排列的示例。
本文档中提及的出版物、专利和专利文档通过引用以其整体并入本文,如同通过引用单独并入的那样。如果本文档与通过引用并入的那些文档之间的用法不一致,则(一个或多个)所并入引用文件中的用法是对本文档用法的补充;对于不可调和的不一致,以本文档中的用法为准。
在本文档中,如专利文档中常见的,术语“一”或“一个”用于包括一个或多于一个,独立于“至少一个”或“一个或多个”的任何其他实例或用法。此外,“集合”包括一个或多个元素。在本文档中,术语“或”用于指代非排他性的或,使得“A或B”包括“A但是没有B”、“B但是没有A”以及“A和B”,除非另有指示。在所附权利要求中,术语“包括”和“其中”被用作相应术语“包含”和“在其中”的简明英语等价物。此外,在以下权利要求中,术语“包括”和“包含”是开放式的;也就是说,包括除了权利要求中在这样的术语之后列出的那些元素之外元素的系统、设备、物品或处理仍然被认为落在该权利要求的范围内。此外,在以下权利要求中,术语“第一”、“第二”、“第三”等仅用作标签,并不旨在暗示其对象的数字顺序。
如本文提及的术语“逻辑指令”涉及可以被一个或多个机器理解用于执行一个或多个逻辑操作的表达。例如,逻辑指令可以包括可由处理器编译器解释以用于对一个或多个数据对象执行一个或多个操作的指令。然而,这仅仅是机器可读指令的示例,并且示例不限于此方面。
如本文提及的术语“计算机可读介质”涉及能够维持可被一个或多个机器感知的表达的介质。例如,计算机可读介质可以包括用于存储计算机可读指令或数据的一个或多个存储设备。这样的存储设备可以包括存储介质,诸如例如光、磁或半导体存储介质。然而,这仅仅是计算机可读介质的示例,并且示例不限于此方面。
如本文提及的术语“逻辑”涉及用于执行一个或多个逻辑操作的结构。例如,逻辑可以包括基于一个或多个输入信号提供一个或多个输出信号的电路。这样的电路可以包括接收数字输入并提供数字输出的有限状态机,或者响应于一个或多个模拟输入信号提供一个或多个模拟输出信号的电路。这样的电路可以在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中提供。此外,逻辑可以包括存储在存储器中的机器可读指令,存储器与处理电路组合来执行这样的机器可读指令。然而,这些仅仅是可以提供逻辑的结构的示例,并且示例不限于此方面。
本文描述的一些方法可以体现为计算机可读介质上的逻辑指令。当在处理器上执行时,逻辑指令引起处理器被编程为实现所描述的方法的专用机器。当处理器被逻辑指令配置成执行本文描述的方法时,该处理器构成用于执行所描述的方法的结构。可替代地,本文描述的方法可以简化为例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)等上的逻辑。
在描述和权利要求中,可以使用术语耦合和连接连同它们的派生词。在特定示例中,连接可以用于指示两个或更多个元件彼此直接物理或电接触。耦合可以意味着两个或更多个元件直接物理或电接触。然而,耦合还可以意味着两个或更多个元件可能不彼此直接接触,但也仍然可以彼此协作或交互。
说明书中对“一个示例”或“一些示例”的引用意味着结合该示例描述的特定特征、结构或特性被包括在至少一个实施方式中。在说明书中各个地方中,短语“在一个示例中”的出现可以、也可以不全部指代同一个示例。
上面的描述旨在是说明性的,而不是限制性的。例如,上述示例(或其一个或多个方面)可以与其他示例组合使用。可以使用诸如由本领域普通技术人员在查阅以上描述后使用的其他实施例。摘要是为了允许读者快速确定技术公开的性质。以如下理解提交摘要:即它将不用于解释或限制权利要求的范围或含义。此外,在以上具体描述中,各种特征可以被分组在一起以简化本公开。然而,权利要求可能没有阐述本文公开的每个特征,因为实施例可能以所述特征的子集为特征。进一步地,实施例可以包括比特定示例中公开的那些特征更少的特征。因此,以下权利要求由此被并入具体实施方式中,其中每项权利要求独立地作为单独的实施例。本文公开的实施例的范围要被参考所附权利要求连同这样的权利要求所赋予的等价物的全部范围来确定。
尽管已经以特定于结构特征和/或方法动作的语言描述了示例,但是要理解,所要求保护的主题不限于所描述的特定特征或动作。相反,特定特征和动作被公开为实现所要求保护的主题的样本形式。
Claims (14)
1.一种装置,包括:
计算机可读存储器;
签名设施,包括多个硬件安全模块;以及
状态同步管理器,包括处理电路以:
从所述多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;以及
将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列。
2.根据权利要求1所述的装置,其中:
第一状态同步计数器序列集合包括仅从偶数整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;并且
第二状态同步计数器序列集合包括仅从奇数整数中选择的第二多个计数器,并且被分派给第二硬件安全模块。
3.根据权利要求2所述的装置,所述签名设施进一步包括签名处理电路以:
通过将第一散列函数应用于第一字符串来为第一消息生成第一数字签名,所述第一字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
4.根据权利要求2所述的装置,所述签名设施进一步包括签名处理电路以:
通过将第二散列函数应用于第二字符串来为第二消息生成第二数字签名,所述第二字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
5.根据权利要求1所述的装置,进一步包括负载平衡器以:
选择第一硬件安全模块或第二硬件安全模块之一来生成签名。
6.根据权利要求1所述的装置,所述状态同步管理器包括处理电路以:
选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块以及第三硬件安全模块;以及
将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列以及第三同步计数器序列。
7.根据权利要求6所述的装置,其中:
第一状态同步计数器序列集合包括仅从可被3整除的整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;
第二状态同步计数器序列集合包括仅从当除以3结果得到余数1的整数中选择的第二多个计数器,并且被分派给第二硬件安全模块;并且
第三状态同步计数器序列集合包括仅从当除以3结果得到余数2的整数中选择的第三多个计数器,并且被分派给第三硬件安全模块。
8.一种基于计算机的方法,包括:
从签名设施中的多个硬件安全模块中选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块;以及
将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列。
9.根据权利要求8所述的方法,其中:
第一状态同步计数器序列集合包括仅从偶数整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;并且
第二状态同步计数器序列集合包括仅从奇数整数中选择的第二多个计数器,并且被分派给第二硬件安全模块。
10.根据权利要求9所述的方法,进一步包括:
通过将第一散列函数应用于第一字符串来为第一消息生成第一数字签名,所述第一字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
11.根据权利要求9所述的方法,进一步包括:
通过将第二散列函数应用于第二字符串来为第二消息生成第二数字签名,所述第二字符串包括公钥或私钥以及选自第一多个计数器的计数器中的至少一个。
12.根据权利要求8所述的方法,进一步包括:
调用负载平衡器来选择第一硬件安全模块或第二硬件安全模块之一来生成签名。
13.根据权利要求8所述的方法,包括:
选择要分派给数字签名处理的硬件安全模块集合,所述硬件安全模块集合至少包括第一硬件安全模块和第二硬件模块以及第三硬件安全模块;以及
将唯一状态同步计数器序列集合分派给相应的硬件安全模块集合,所述状态同步计数器序列集合至少包括第一状态同步计数器序列和第二状态同步计数器序列以及第三同步计数器序列。
14.根据权利要求13所述的方法,其中:
第一状态同步计数器序列集合包括仅从可被3整除的整数中选择的第一多个计数器,并且被分派给第一硬件安全模块;
第二状态同步计数器序列集合包括仅从当除以3结果得到余数1的整数中选择的第二多个计数器,并且被分派给第二硬件安全模块;并且
第三状态同步计数器序列集合包括仅从当除以3结果得到余数2的整数中选择的第三多个计数器,并且被分派给第三硬件安全模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/830844 | 2020-03-26 | ||
US16/830,844 US11438172B2 (en) | 2020-03-26 | 2020-03-26 | Robust state synchronization for stateful hash-based signatures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113452527A true CN113452527A (zh) | 2021-09-28 |
Family
ID=73543129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011518931.2A Pending CN113452527A (zh) | 2020-03-26 | 2020-12-21 | 用于有状态的基于散列的签名的鲁棒状态同步 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11438172B2 (zh) |
EP (1) | EP3886360A1 (zh) |
CN (1) | CN113452527A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE202022102514U1 (de) | 2022-05-07 | 2022-05-20 | Tanweer ALAM | Kryptographiebasiertes intelligentes System für die Sicherheitsverwaltung von Mikrocodesignaturen |
US11438172B2 (en) | 2020-03-26 | 2022-09-06 | Intel Corporation | Robust state synchronization for stateful hash-based signatures |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023063957A1 (en) * | 2021-10-15 | 2023-04-20 | Google Llc | Stateful hash-based signing with a single public key and multiple independent signers |
US20230163975A1 (en) * | 2021-11-24 | 2023-05-25 | ISARA Corporation | Certifying Public Keys for Multiple Cryptographic Hash Trees |
GB2622431A (en) * | 2022-09-16 | 2024-03-20 | Hewlett Packard Development Co | Authorization of states in a stateful signature scheme |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10447668B1 (en) | 2016-11-14 | 2019-10-15 | Amazon Technologies, Inc. | Virtual cryptographic module with load balancer and cryptographic module fleet |
US11082232B2 (en) * | 2019-06-24 | 2021-08-03 | International Business Machines Corporation | Auditably proving a usage history of an asset |
US11438172B2 (en) | 2020-03-26 | 2022-09-06 | Intel Corporation | Robust state synchronization for stateful hash-based signatures |
-
2020
- 2020-03-26 US US16/830,844 patent/US11438172B2/en active Active
- 2020-11-20 EP EP20208930.6A patent/EP3886360A1/en active Pending
- 2020-12-21 CN CN202011518931.2A patent/CN113452527A/zh active Pending
-
2022
- 2022-07-29 US US17/816,148 patent/US11750403B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11438172B2 (en) | 2020-03-26 | 2022-09-06 | Intel Corporation | Robust state synchronization for stateful hash-based signatures |
US11750403B2 (en) | 2020-03-26 | 2023-09-05 | Intel Corporation | Robust state synchronization for stateful hash-based signatures |
DE202022102514U1 (de) | 2022-05-07 | 2022-05-20 | Tanweer ALAM | Kryptographiebasiertes intelligentes System für die Sicherheitsverwaltung von Mikrocodesignaturen |
Also Published As
Publication number | Publication date |
---|---|
EP3886360A1 (en) | 2021-09-29 |
US20210306155A1 (en) | 2021-09-30 |
US11750403B2 (en) | 2023-09-05 |
US20220368537A1 (en) | 2022-11-17 |
US11438172B2 (en) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11757656B2 (en) | Efficient post-quantum anonymous attestation with signature-based join protocol and unlimited signatures | |
US11770262B2 (en) | Odd index precomputation for authentication path computation | |
US11792191B2 (en) | MTS-based mutual-authenticated remote attestation | |
US11750403B2 (en) | Robust state synchronization for stateful hash-based signatures | |
CN112152788A (zh) | 用于后量子密码安全xmss和lms基于散列的签名和验证的加速器 | |
CN112152785A (zh) | 基于sha2和sha3组合的xmss硬件加速器 | |
US11516008B2 (en) | Efficient post-quantum secure software updates tailored to resource-constrained devices | |
US11722313B2 (en) | State synchronization for post-quantum signing facilities | |
US11575515B2 (en) | Post-quantum secure remote attestation for autonomous systems | |
CN112152783A (zh) | 用于快速安全启动的低时延后量子签名验证 | |
CN112152786A (zh) | 无签名扩展的快速xmss签名验证和临时数采样过程 | |
US11985226B2 (en) | Efficient quantum-attack resistant functional-safe building block for key encapsulation and digital signature | |
CN112152787A (zh) | 用于后量子密码学安全的基于哈希的签名和验证的消息索引感知多哈希加速器 | |
WO2023107776A1 (en) | Efficient hybridization of classical and post-quantum signatures | |
CN112152784A (zh) | 用于基于散列的签名算法的并行处理技术 | |
CN117581504A (zh) | 用于解决随机化散列和联邦信息处理标准的xmss管理 | |
US20220123949A1 (en) | Side channel protection for xmss signature function | |
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 |