CN112152785A - 基于sha2和sha3组合的xmss硬件加速器 - Google Patents

基于sha2和sha3组合的xmss硬件加速器 Download PDF

Info

Publication number
CN112152785A
CN112152785A CN202010223560.9A CN202010223560A CN112152785A CN 112152785 A CN112152785 A CN 112152785A CN 202010223560 A CN202010223560 A CN 202010223560A CN 112152785 A CN112152785 A CN 112152785A
Authority
CN
China
Prior art keywords
accelerator
sha2
xmss
sha3
logic
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
Application number
CN202010223560.9A
Other languages
English (en)
Inventor
S·高希
V·苏雷什
S·马修
M·萨斯特里
A·H·赖因德斯
R·库马尔
R·米索茨基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN112152785A publication Critical patent/CN112152785A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Power Engineering (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Electromagnetism (AREA)
  • Advance Control (AREA)

Abstract

在一个示例中,一种装置包括:计算机可读存储器、用于管理XMSS函数的XMSS操作逻辑、用于管理链函数算法的链函数控制器、安全哈希算法‑2(SHA2)加速器、安全哈希算法‑3(SHA3)加速器、以及在SHA2加速器和SHA3加速器之间共享的寄存器组。可以描述其他示例。

Description

基于SHA2和SHA3组合的XMSS硬件加速器
背景技术
本公开描述的主题总体上涉及计算机安全领域,并且更具体地涉 及用于后量子密码安全扩展Merkle签名方案(XMSS)和 Leighton/Micali签名(LMS)哈希签名和验证的加速器。
对于使用量子计算机的基于如舒尔算法等算法的暴力攻击,预计 现有的公钥数字签名算法(如Rivest-Shamir-Adleman(RSA)和椭圆 曲线数字签名算法(ECDSA))并不安全。因此,密码学研究界和各 种标准机构都在努力为针对量子计算机安全的算法定义新的标准。
相应地,例如在基于计算机的通信系统和方法中,如XMSS和 LMS之类的用于加速签名和验证方案的技术可以找到实用性。
附图说明
参照附图描述具体实施方式。
图1A和图1B分别是一次哈希签名方案和多次哈希签名方案的示 意图。
图2A至图2B分别是一次签名方案和多次签名方案的示意图。
图3是根据一些示例的签名设备和验证设备的示意图。
图4A是根据一些示例的Merkle树结构的示意图。
图4B是根据一些示例的Merkle树结构的示意图。
图5是根据一些示例的用于实现签名算法的体系结构中的计算块 的示意图。
图6A是根据一些示例的用于在签名算法中实现签名生成的体系 结构中的计算块的示意图。
图6B是根据一些示例的用于在验证算法中实现签名验证的体系 结构中的计算块的示意图。
图7是根据一些示例的用于实现硬件加速器的体系结构中的计算 块的示意图。
图8是示出根据一些示例的用于实现硬件加速器的方法中的操作 的流程图。
图9是示出根据一些示例的由硬件加速器实现的方法中的操作的 流程图。
图10是根据一些示例的用于实现硬件加速器的体系结构中的计 算块的示意图。
图11是根据一些示例的用于实现硬件加速器的体系结构中的计 算块的示意图。
图12是根据一些示例的可适于实现硬件加速器的计算体系结构 的示意图。
具体实施方式
本公开描述了用于实现用于后量子密码安全哈希签名算法的加速 器的示例性系统和方法。在以下描述中,阐述了许多具体细节以提供 对各种示例的透彻理解。然而,本领域技术人员将理解,可以在没有 具体细节的情况下实践各种示例。在其他情况下,未详细示出或描述 公知的方法、过程、组件和电路,以免混淆示例。
如上简述,对于使用量子计算机的基于如舒尔算法等算法的暴力 攻击,预计现有的公钥数字签名算法(如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)公钥分 量(每个WOTS+(或WOTS)公钥分量有n个字节)并生成单个n 字节值。例如,在128位后量子安全性中,有67个公钥分量,每个公 钥分量都调用对输入块执行的基础安全哈希算法(SHA)。
第三主要操作是树哈希操作,其构造Merkle树。在XMSS验证中, 作为签名的一部分并且作为L树操作的输出提供的认证路径经树哈希 操作来处理,以生成Merkle树的根节点,该根节点应对应于XMSS 公钥。对于具有128位后量子安全性的XMSS验证,遍历Merkle树包括执行安全哈希操作。在XMSS验证中,将树-哈希操作的输出与已 知的公钥进行比较。如果它们匹配,则签名被接受。相反,如果它们 不匹配,则签名被拒绝。
XMSS签名过程的计算量非常大。XMSS签名过程调用数百甚至 数千个哈希计算周期。本公开描述的主题通过提供用于实现用于后量 子密码安全XMSS和LMS哈希签名和验证的加速器的系统和方法来 解决这些和其他问题。
后量子密码概述
后量子密码(也称为“防量子”、“量子安全”、“抗量子”或 简称为“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)和SPHINC方案之类的加密系统。随着量子计算 的出现以及人们对其发展的期待,人们开始关注关于量子计算可能带 来的各种挑战以及如何使用密码学领域应对这些挑战。
由于这些方案已经存在了很长一段时间并且具有应对量子计数和 后量子计算挑战的必要基本要素,因此正在探索以应对量子计算挑战 的领域是基于哈希的签名(HBS)。HBS方案被认为与快速平台安全 启动配合使用的快速签名算法,被认为对量子和后量子计算攻击具有 最大的抵抗力。
例如,如图1A所示,示出了使用Merkle树和一次签名(OTS) 方案100的HBS方案,如使用私钥来签名消息和使用相应的公钥来验 证OTS消息,其中私钥仅签名单个消息。
类似地,如图1B所示,示出了另一种HBS方案,其中该方案涉 及多次签名(MTS)方案150,其中私钥可以签名多个消息。
图2A和图2B分别示出了一次签名方案和多次签名方案。继续图 1A的基于HBS的OTS方案100和图1B的MTS方案150,图2A示 出了Winternitz OTS方案200,该方案由斯坦福大学数学系的罗伯 特·温特尼茨(Robert Winternitz)提供,以hw(x)而不是h(x)lh (y)的形式发布,而图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个字节,然后通过L树压缩算法260提供WOTS压 缩的pk 265放在XMSS方案255的XMSS Merkle树中。可以想到, XMSS签名验证可以包括计算WOTS验证和检查以确定重构的根节点 是否与XMSS公钥匹配,如根节点=XMSS公钥。
用于后量子密码的加速器
图3是根据一些示例的包括第一设备310和第二设备350的安全 环境300的高层体系结构的示意图。参照图3,第一设备310和第二 设备350中的每个可以被体现为能够执行本公开描述的功能的任何类 型的计算设备。例如,在一些实施例中,第一设备310和第二设备350 中的每个可以被体现为膝上型计算机、平板计算机、笔记本、上网本、 超极本TM、智能手机、蜂窝电话、可穿戴计算设备、个人数字助手、 移动Internet设备、台式计算机、路由器、服务器、工作站和/或任何 其他计算/通信设备。
第一设备310包括一个或多个处理器320和用于存储私钥324的 存储器322。(一个或多个)处理器320可以体现为能够执行本公开 所述功能的任何类型的处理器。例如,(一个或多个)处理器320可 以体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。类似地,存储器322可以体现为 能够执行本公开所述功能的任何类型的易失性或非易失性存储器或数 据存储装置。在操作中,存储器322可以存储在第一设备310(如操 作系统、应用、程序、库和驱动器)的操作期间使用的各种数据和软 件。存储器322通信地耦合到(一个或多个)处理器320。在一些示 例中,私钥324可以驻留在安全存储器中,该安全存储器可以是存储 器322的一部分或者可以与存储器322分开。
第一设备310还包括认证逻辑330,其包括存储器332、签名逻辑 和验证逻辑336。哈希逻辑332被配置为对消息(M)进行哈希(即, 将哈希函数应用于消息(M))以生成消息M的哈希值(m')。哈希 函数可以包括但不限于安全哈希函数,例如安全哈希算法SHA2-256和/或SHA3-256等。SHA2-256可以符合和/或兼容联邦信息处理标准 (FIPS)出版物180-4,标题为:“安全哈希标准(SHS)”,由美国 国家标准技术研究院(NIST)于2012年3月发布,和/或此标准的更 高版本和/或相关版本。SHA3-256可以符合和/或兼容FIPS出版物202, 标题为:“SHA-3标准:基于置换的哈希和可扩展输出函数”,由NIST 于2015年8月发布,和/或此标准的更高版本和/或相关版本。
签名逻辑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.)信息性互联网草案说明,例 如,草案draft-irtf-cfrg-xmss-hash-based-signatures-00,标题为“XMSS: 扩展哈希签名”,由IETF.RTM的加密论坛研究小组互联网研究任务 组于2015年4月发布,和/或此信息草案的更高版本和/或相关版本, 如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和/或另一模块可以建 立受信任的执行环境或安全区域,在此区域内可以存储本公开描述的 数据的一部分和/或可以执行本公开描述的多个功能。
在如上所述生成签名之后,消息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包括哈希逻 辑372、签名逻辑和验证逻辑376。如上所述,哈希逻辑372被配置为 对消息(M)进行哈希(即,将哈希函数应用于消息(M))以生成 哈希消息(m’)。哈希函数可以包括但不限于安全哈希函数,例如安 全哈希算法SHA2-256和/或SHA3-256等。SHA2-256可以符合和/或 兼容联邦信息处理标准(FIPS)出版物180-4,标题为:“安全哈希标 准(SHS)”,由美国国家标准技术研究院(NIST)于2012年3月发 布,和/或此标准的更高版本和/或相关版本。SHA3-256可以符合和/ 或兼容FIPS出版物202,标题为:“SHA-3标准:“基于置换的哈希 和可扩展输出函数”,由NIST于2015年8月发布,和/或此标准的更 高版本和/或相关版本。
在第二设备是验证设备的情况下,认证逻辑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,该本地公钥还用于使用认证路径来计算树根值。成功的验证将 使计算出的树根值与签名实体共享的公钥PK相匹配。WOTS和L树 操作分别构成XMSS符号的重要部分/验证等待时间,从而定义认证系 统的总体性能。本公开描述了各种预计算技术,这些技术可以被实现 以加快WOTS和L树操作的速度,从而提高XMSS性能。这些技术 适用于其他哈希选项,并且可以很好地针对软件实现方式和硬件实现 方式两者进行扩展。
图5是根据一些示例的用于执行签名算法的体系结构500中的计 算块的示意图。参照图5,WOTS+操作涉及16个SHA2-256个哈希函 数的67个并行链,每个HASH函数具有秘密密钥sk[66:0]作为输入。 链中每个哈希操作由使用SHA2-256的2个伪随机函数(PRF)组成以生成位掩码和密钥。位掩码与先前的哈希进行异或运算,并与密钥 级联作为第三SHA2-256哈希操作的输入消息。67×32字节的WOTS 公钥pk[66:0]是通过在67个哈希链上对秘密密钥sk进行哈希生成的。
图6A是根据一些示例的用于在签名算法中实现签名生成的体系 结构600A中的计算块的示意图。如图6A所示,对于消息签名,对输 入消息进行哈希和预处理以计算67×4位的值,该值用作用于在每个 链中选择中间哈希值的索引。
图6B是根据一些示例的用于在验证算法中实现签名验证的体系 结构600B中的计算块。参照图6B,在验证期间,消息再次被哈希以 计算签名索引并计算每个链中的其余HASH操作以计算WOTS公钥 pk。此值和认证路径用于计算Merkle树的根,并与共享公钥PK进行 比较以验证消息。
图7是根据一些示例的用于实现HASH算法的体系结构700A中 的计算块的示意图。参照图7,在一些示例中,XMSS硬件加速器710 可以包括可用于存储XMSS输入和XMSS操作的中间结果的计算机可 读存储器712、用于实现XMSS操作的一个或多个处理器、链函数逻 辑模块716和一组寄存器716,这组寄存器716在统一的SHA256/512 计算逻辑模块720和统一的SHA3 SHAKE128/256计算逻辑模块722 之间共享。
如下所述,SHA256/512计算逻辑具有新颖的统一的可配置体系结 构,该体系结构支持单个64位SHA2-512操作或两个并行的32位 SHA2-256操作,从而与传统的基于SHA2硬件的XMSS加速器相比, 可以显着加快SHA2-256模式下XMSS操作的速度。
图8是示出根据一些示例的在由硬件加速器实现的方法中的操作 的流程图。具体地,图9示出可以在用于实现硬件加速器的方法中由 主机进程实现的操作。在一些示例中,图8中描绘的操作可以由处理 器来实现,例如,第一设备中的处理器320中的一个或多个或第二设 备350中的(一个或多个)处理器中。参照图8,在操作810处,接 收XMSS操作。如果在操作815处XMSS硬件加速器正在断言IP_Busy 状态,则控制保留在操作815,并且主机进程继续监视XMSS硬件加 速器710的状态。
相比之下,如果在操作815处XMSS硬件加速器710未断言 IP_Busy状态,则控制转到操作820,并且主机进程将输入写入到XMSS 硬件加速器710中。在操作825处,主机进程设置XMSS操作的参数 (例如,密钥生成、签名、验证等)以及基础哈希函数(即,SHA256、SHA512、SHAKE128或SHAKE256)。在操作830处,主机进程向 XMSS加速器710施加启动脉冲。
在操作835处,主机进程监视XMSS加速器710的状态,以确定 XMSS加速器710是否已经完成其操作。如果在操作710处XMSS加 速器710尚未完成其操作,则主机进程将继续轮询XMSS加速器710。 相反,如果在操作710处XMSS加速器已完成其操作,则控制转到操 作840,并且主机进程将读取XMSS加速器710的结果。
图9是示出根据一些示例的在由硬件加速器实现的方法中的操作 的流程图。在一些示例中,图9中描绘的操作可以由XMSS硬件加速 器710中的处理器(例如,处理器714)实现。参照图9,在操作910 处,XMSS硬件加速器710断言IP_Busy状态,并且在操作915处,XMSS硬件加速器710切换到保护模式,在该模式下,其忽略外部读/ 写操作并执行XMSS操作。
在操作920处,XMSS操作状态机被初始化。在操作925处,确 定XMSS操作是否利用一次签名操作。如果在操作925处XMSS操作 未利用一次签名操作,则控制转到操作940。相反,如果在操作925 处XMSS操作利用一次签名操作,则控制转到操作930,并调用一次 签名函数状态机以重复实现一次签名操作,直到它们的一次签名操作 完成为止。在操作935处,调用链函数控制器以实现链函数操作,直 到链函数操作完成为止。
在操作940处,XMSS硬件加速器至少部分地基于在操作825中 实现的参数来实现SHA2哈希函数或SHA3哈希函数之一。当XMSS 加速器710完成哈希函数时,控制转到操作945,并且XMSS加速器 710生成完成脉冲并释放IP_Busy状态,以便当主机进程在操作835处轮询XMSS加速器710时,主机进程收到XMSS加速器710完成并 且主机进程可以在操作840处读取结果的指示。
图10是根据一些示例的用于实现硬件加速器的体系结构中的计 算块的示意图。更具体地,图10示出如图7所示的统一的SHA256/512 计算逻辑模块720的计算块。参照图10,统一的SHA256/512计算逻 辑由第一32位数据路径1010和第二32位数据路径1020组成,这两 个数据路径可配置以定义用于执行1×SHA512操作或2×SHA256操 作的64位数据路径。传统的统一的SHA2-256/512硬件加速器使用在 两个SHA2模式之间共享的通用64位数据路径。SHA2的通用模型串 行执行轮(round)操作,仅利用一半的数据路径执行32b SHA2-256 操作。
XMSS提供了在WOTS和L树操作期间并行执行多个SHA2-256 操作的机会。图10中描绘的统一的SHA2计算逻辑可以被配置为在 SHA-512模式下作为单轮操作或在SHA-256模式下作为两个并行轮操 作。例如,在SHA256模式下,可以实现共享常数生成技术以提供轮 常数,以允许第一数据路径1010和第二数据路径1020并行操作。
条件进位传播电路可用于将共享的64位完成加法器重新配置为 两个32位加法器。在图10所示的示例中,条件进位传播电路可以包 括第一和门1012以及第二和门1014。第一和门1012接收指示SHA2 计算逻辑模块是否正以SHA-512模式操作的输入和来自第二数据路径 1020中的多路复用器1022的输出信号,并生成用于输出多路复用器 1016的控制信号。第二和门1014接收指示SHA2计算逻辑模块710 是否正以SHA-512模式操作的输入和来自第二数据路径1020中的多 路复用器1024的输出信号,并为输出多路复用器1018生成控制信号。 因此,SHA2计算逻辑模块710可以被实现为如图所示的2×32位加 法器,或者被实现为具有在第一数据路径1010和第二数据路径1020 之间的32位边界处有条件地终止的进位的单个64位加法器。图10 所示的实现方式在纹波进位模式下执行进位抑制。类似的进位抑制技 术也可以扩展到其他加法器体系结构,如并行前缀加法器。
图11是根据一些示例的用于实现硬件加速器的体系结构中的计 算块的示意图。图11示出了如图7所示的统一的SHA3 SHAKE128/256 计算逻辑模块722的计算块。参照图11,SHAKE128和SHAKE256 是SHA3算法的两种输出扩展模式。两者均基于相同的SHA3函数,但具有不同的输入和输出块大小。如图11所示,我们的统一的 SHAKE128/256由基于操作模式启用特定组的输入/输出位的输入多路 复用器1110和输出多路复用器1112组成。SHA 3计算逻辑模块722 迭代执行所有24个SHA3轮并生成摘要输出1114。
在SHAKE128哈希操作模式下的执行期间,计算逻辑模块722配 置有256位状态、1344位输入块和256位输出。每个WOTS链函数的 所有输入、L树计算所涉及的哈希以及Merkle树根节点计算的哈希操 作都适合于SHAKE128的一个输入块内。当统一的SHA3SHAKE128/256计算逻辑单元722接收启动脉冲时,其捕获来自msg 端口1116的输入,并且开始SHAKE128执行。计算逻辑单元722在 一个时钟周期中计算SHA3的一轮。在一轮之后,其更新1600位状态 寄存器1120。在随后的时钟周期中,计算逻辑单元722对更新后的状 态值计算下一个轮操作,随后的周期依此类推。经过24次此类迭代后, 状态寄存器1120不更新,并且通过摘要输出端口1114生成128位摘 要。为了生成256位输出,在生成第一128位输出之后,计算逻辑单 元722以输入零(即,挤压(Squeeze))执行另外24个SHA3轮, 并生成256位的第二128位输出。
在具有操作模式的SHAKE256中执行期间,计算逻辑模块722被 配置有512位状态、1088位输入和512位输出。在SHAKE256模式下, 计算逻辑单元722每轮可生成一个256位输出。因此,类似于 SHAKE128模式,其在第一轮中计算第一256位,然后执行一次额外 的压缩以生成第二256位输出,以便计算XMSS操作的512位输出。
图12示出示例性计算体系结构的实施例,该示例性计算体系结构 可以适合于实现如前所述的各种实施例。在各种实施例中,计算体系 结构1200可以包括或被实现为电子设备的一部分。在一些实施例中, 计算体系结构1200可以代表例如实现上述操作环境的一个或多个组 件的计算机系统。在一些实施例中,计算体系结构1200可以代表实现 本公开描述的一种或多种技术的DNN训练系统的一个或多个部分或 组件。实施例不限于此上下文。
如本申请中所使用的,术语“系统”和“组件”以及“模块”旨 在指代与计算机有关的实体,可以是硬件、硬件和软件的组合、软件 或执行中的软件,它们的示例由示例性计算体系结构1200提供。例如, 组件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、 (光和/或磁存储介质的)多个存储驱动器、对象、可执行文件、执行 线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器 都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并 且组件可以位于一台计算机上和/或分布在两台或更多台计算机之间。 此外,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。 协调可以涉及信息的单向或双向交换。例如,组件可以以在通信介质 上传输的信号的形式来传输信息。信息可以被实现为分配给各种信号 线的信号。在此类分配中,每个消息都是信号。然而,进一步的实施 例可以替代地采用数据消息。此类数据消息可以通过各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算体系结构1200包括各种常见的计算元件,如一个或多个处理 器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设 备、接口、振荡器、计时设备、视频卡、声卡、多媒体输入/输出(I/O) 组件、电源等。然而,实施例不限于通过计算体系结构1200进行的实 现方式。
如图12所示,计算体系结构1200包括一个或多个处理器1202和 一个或多个图形处理器1208,并且可以是单处理器桌面系统、多处理 器工作站系统或具有大量处理器1202或处理器核1207的服务器系统。 在实施例中,系统1200是并入在片上系统(SoC或SOC)集成电路 内的处理平台,以用于移动、手持或嵌入式设备中。
系统1200的实施例可以包括或并入在基于服务器的游戏平台、包 括游戏和媒体控制台的游戏控制台、移动游戏控制台、手持游戏控制 台或在线游戏控制台中。在一些实施例中,系统1200是移动电话、智 能电话、平板计算设备或移动互联网设备。数据处理系统1200还可包 括可穿戴设备,与可穿戴设备耦合或集成在可穿戴设备中,上述可穿 戴设备如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟 现实设备。在一些实施例中,数据处理系统1200是电视或机顶盒设备, 其具有一个或多个处理器1202和由一个或多个图形处理器1208生成 的图形界面。
在一些实施例中,一个或多个处理器1202各自包括一个或多个处 理器核1207以处理指令,这些指令在被执行时执行针对系统和用户软 件的操作。在一些实施例中,一个或多个处理器核1207中的每个被配 置为处理特定指令集1209。在一些实施例中,指令集1209可以促进 复杂指令集计算(CISC)、精简指令集计算(RISC)或经由超长指令 字(VLIW)的计算。多个处理器核1207可各自处理不同的指令集1209, 该指令集1209可包括用于促进仿真其他指令集的指令。处理器核1207 还可以包括其他处理设备,如数字信号处理器(DSP)。
在一些实施例中,处理器1202包括高速缓存存储器1204。取决 于体系结构,处理器1202可以具有单个内部高速缓存或多级内部高速 缓存。在一些实施例中,高速缓存存储器在处理器1202的各个组件之 间共享。在一些实施例中,处理器1202还使用外部高速缓存(例如, 三级(L3)高速缓存或末级高速缓存(LLC))(未示出),其可以 使用已知的高速缓存一致性技术在处理器核1207之间共享。寄存器文 件1206另外包括在处理器1202中,其可以包括用于存储不同类型的 数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄 存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄 存器可以特定于处理器1202的设计。
在一些实施例中,一个或多个处理器1202与一个或多个接口总线 1210耦合,以在处理器1202与系统中的其他组件之间传输通信信号, 如地址、数据或控制信号。在一个实施例中,接口总线1210可以是处 理器总线,如直接媒体接口(DMI)总线的版本。然而,处理器总线 不限于DMI总线,并且可以包括一个或多个外围组件互连总线(例如, PCI、PCIExpress)、存储器总线或其他类型的接口总线。在一实施例 中,(一个或多个)处理器1202包括集成存储器控制器1216和平台 控制器集线器1230。存储器控制器1216促进存储器设备与系统1200 的其他组件之间的通信,而平台控制器集线器(PCH)1230经由本地 I/O总线提供到I/O设备的连接。
存储器设备1220可以是动态随机存取存储器(DRAM)设备、静 态随机存取存储器(SRAM)设备、闪存设备、相变存储器设备或具 有适当性能以用作过程存储器的一些其他存储器设备。在一个实施例 中,存储设备1220可以用作系统1200的系统存储器,以存储数据1222 和指令1221,以在一个或多个处理器1202执行应用或过程时使用。 存储器控制器集线器1216还与任选的外部图形处理器1212耦合,该 任选的外部图形处理器1212可以与处理器1202中的一个或多个图形 处理器1208通信以执行图形和媒体操作。在一些实施例中,显示设备 1211可以连接到(一个或多个)处理器1202。显示设备1211可以是 内部显示设备中的一个或多个,如在移动电子设备或膝上型设备或经 由显示接口(例如,DisplayPort等)附接的外部显示设备中。在一个 实施例中,显示设备1211可以是头戴式显示器(HMD),如用于虚 拟现实(VR)应用或增强现实(AR)应用中的立体显示设备。
在一些实施例中,平台控制器集线器1230使得外围设备能够经由 高速I/O总线连接到存储器设备1220和处理器1202。I/O外围设备包 括但不限于音频控制器1246、网络控制器1234、固件接口1228、无 线收发器1226、触摸传感器1225、数据存储设备1224(例如,硬盘 驱动器、闪存等)。数据存储设备1224可以经由存储接口(例如,SATA) 或经由外围总线(如外围组件互连总线(例如,PCI、PCI Express)) 来连接。触摸传感器1225可以包括触摸屏传感器、压力传感器或指纹 传感器。无线收发器1226可以是Wi-Fi收发器,蓝牙收发器或如3G、 4G或长期演进(LTE)收发器之类的移动网络收发器。固件接口1228 使能与系统固件的通信,并且可以是例如统一的可扩展固件接口 (UEFI)。网络控制器1234可以使能到有线网络的网络连接。在一 些实施例中,高性能网络控制器(未示出)与接口总线1210耦合。在一个实施例中,音频控制器1246是多通道高清晰度音频控制器。在一 个实施例中,系统1200包括任选的遗留I/O控制器1240,用于将遗留 (例如,个人系统2(PS/2))设备耦合到系统。平台控制器集线器 1230还可以连接到一个或多个通用串行总线(USB)控制器1242以连接输入设备,如键盘和鼠标1243组合、相机1244或其他USB输入 设备。
以下是进一步的示例。
示例1是一种装置,包括:计算机可读存储器;XMSS操作逻辑, 用于管理XMSS函数;链函数控制器,用于管理链函数算法;安全哈 希算法-2(SHA2)加速器;安全哈希算法-3(SHA3)加速器;以及 在SHA2加速器和SHA3加速器之间共享的寄存器组。
在示例2中,示例1的主题可以任选地包括用于执行以下操作的 逻辑:在计算机可读存储器中接收用于XMSS操作的一组XMSS输入; 从SHA2加速器或SHA3加速器中的至少一个确定选择的加速器;以 及将所述一组输入应用于选择的加速器。
在示例3中,示例1-2中任一项的主题可以任选地包括包含用于 执行以下操作的逻辑:在通信总线上断言忙碌信号;以及切换到不受 外部读取/写入操作影响的保护模式。
在示例4中,示例1-3中任一项的主题可以任选地包括用于执行 以下操作的逻辑:确定XMSS操作是否利用一次签名函数,以及响应 于确定XMSS操作需要一次签名函数的逻辑,将一次签名函数过程应 用于所述一组XMSS输入;以及调用链函数控制器以应用链函数来促 进一次签名函数。
在示例5中,示例1-4中任一项的主题可以任选地包括装置,其 中SHA2加速器包括64位数据路径,该数据路径可配置以执行单个 SHA2-512操作轮或并行执行两个SHA2-256操作轮。
在示例6中,示例1-5中任一项的主题可以任选地包括装置,其 中所述SHA2加速器包括条件进位传播电路,用于在所述SHA2加速 器被配置为并行执行两个SHA2-256操作轮时选择性地应用进位操 作。。
在示例7中,示例1-6中任一项的主题可以任选地包括装置,其 中SHA2加速器包括条件进位传播电路,用于在SHA2加速器被配置 用于单个SHA2-512操作轮时选择性地终止进位操作。
在示例8中,示例1-7中任一项的主题可以任选地包括装置,其 中SHA3加速器可配置以执行SHAKE-128函数或执行SHAKE-256操 作。
在示例9中,示例1-8中任一项的主题可以任选地包括装置,其 中SHA3加速器包括:1600位状态寄存器,用于接收用于每个WOTS 链函数的第一组输入、用于L树计算所涉及的哈希的第二组输入、以 及用于Merkle树根节点计算的第三组输入;以及逻辑,用于接收256 位消息输入;执行一组24个SHA3轮;以及生成128位输出。
在示例10中,示例1-9中任一项的主题可以任选地包括布置,其 中SHA3加速器包括:1600位状态寄存器,用于接收用于每个WOTS 链函数的第一组输入、用于L树计算所涉及的哈希的第二组输入、以 及用于Merkle树根节点计算的第三组输入;以及逻辑,用于接收512 位消息输入;执行两组24个SHA3轮;以及生成256位输出。
示例11是一种电子设备,包括:处理器;以及用于认证逻辑的硬 件加速器,该硬件加速器包括计算机可读存储器;XMSS操作逻辑, 用于管理XMSS函数;链函数控制器,用于管理链函数算法;安全哈 希算法-2(SHA2)加速器;安全哈希算法-3(SHA3)加速器;以及 在SHA2加速器和SHA3加速器之间共享的寄存器组。
在示例12中,示例11的主题可以任选地包括用于执行以下操作 的逻辑:在计算机可读存储器中接收用于XMSS操作的一组XMSS输 入;从SHA2加速器或SHA3加速器中的至少一个确定选择的加速器; 以及将所述一组输入应用于选择的加速器。
在示例13中,示例11-12中任一项的主题可以任选地包括:包括 用于执行以下操作的逻辑:在通信总线上断言忙碌信号;以及切换到 不受外部读取/写入操作影响的保护模式。
在示例14中,示例11-13中任一项的主题可以任选地包括逻辑, 所述逻辑用于:确定XMSS操作是否利用一次签名函数,以及响应于 确定XMSS操作需要一次签名函数,用于将一次签名函数过程应用于 对XMSS一组输入;以及调用链函数控制器以应用链函数来促进一次 签名函数。
在示例15中,示例11-14中任一项的主题可以任选地包括装置, 其中SHA2加速器包括64位数据路径,该数据路径可配置以执行单个 SHA2-512操作轮或并行执行两个SHA2-256操作轮。
在示例16中,示例11-15中任一项的主题可以任选地包括装置, 其中SHA2加速器包括条件进位传播电路,用于在SHA2加速器被配 置为并行执行两个SHA2-256操作轮时选择性地应用进位操作。
在示例17中,示例11-16中任一项的主题可以任选地包括布置, 其中SHA2加速器包括条件进位传播电路,用于在SHA2加速器被配 置用于单个SHA2-512操作轮时选择性地终止进位操作。
在示例18中,示例11-17中任一项的主题可以任选地包括布置, 其中SHA3加速器可配置以执行SHAKE-128函数或执行SHAKE-256 操作。
在示例19中,示例11-18中任一项的主题可以任选地包括布置, 其中SHA3加速器包括:1600位状态寄存器,用于接收用于每个WOTS 链函数的第一组输入、用于L树计算所涉及的哈希的第二组输入、以 及用于Merkle树根节点计算的第三组输入;以及用于执行以下操作的 逻辑:接收256位消息输入;执行一组24个SHA3轮;以及生成128 位输出。
在示例20中,示例11-19中任一项的主题可以任选地包括布置, 其中SHA3加速器包括:1600位状态寄存器,用于接收用于每个WOTS 链函数的第一组输入、用于L树计算所涉及的哈希的第二组输入、以 及用于Merkle树根节点计算的第三组输入;以及用于执行以下操作的 逻辑:接收512位消息输入;执行两组24个SHA3轮;以及生成256 位输出。
上面具体实施方式包括对附图的引用,这些附图构成具体实施方 式的一部分。附图通过说明的方式示出了可以实践的具体实施例。这 些实施例在本公开中也被称为“示例”。除了所示出或描述的元件之 外,此类示例还可以包括元件。然而,还考虑包括所示出或描述的元 件的示例。此外,还考虑相对于特定示例(或者它们的一个或多个方 面)或相对于其他示例(或者它们的一个或多个方面)使用所示出或 描述的那些元素(或者它们的一个或多个方面)的任何组合或置换的 示例。
本公开档中引用的出版物、专利和专利文件通过引用的方式整体 并入本公开,就像通过引用将其单独并入一样。如果本公开档与通过 引用方式并入的那些文档之间存在不一致的用法,则在(一个或多个) 并入的参考文献中的用法是对本公开档的补充;对于不一致的不一致 之处,以本公开档中的用法为准。
在本公开档中,如在专利文件中常用的,术语“一”或“一个” 用于包括一个或多个,独立于“至少一个”或“一个或多个”的任何 其他情况或用法。另外,“一组”包括一个或多个元素。在本公开档 中,除非另有说明,否则术语“或”用于表示非排他性,或者使得“A或B”包括“有A但没有B”、“有B但没有A”以及“A和B”。 在所附权利要求中,术语“包括”和“其中”被用作相应术语“包括” 和“其中”的普通英语等效词。另外,在以下权利要求中,术语“包 括”和“包含”是开放式的;也就是说,除权利要求中在此术语之后 列出的元素之外,包括其他元素的系统、设备、物品或过程仍被认为 属于该权利要求的范围。此外,在以下权利要求中,术语“第一”、 “第二”、“第三”等仅用作标签,而非旨在暗示其对象的数字顺序。
如本公开所指,术语“逻辑指令”涉及一台或多台机器可理解的 用于执行一个或多个逻辑运算的表达。例如,逻辑指令可以包括处理 器编译器可解释以用于在一个或多个数据对象上执行一个或多个操作 的指令。然而,这仅是机器可读指令的示例,并且示例在此方面不受 限制。
如本公开所指,术语“计算机可读介质”涉及能够维持一台或多 台机器可感知的表达的介质。例如,一种计算机可读介质可以包括一 个或多个用于存储计算机可读指令或数据的存储设备。此类存储设备 可以包括如光、磁或半导体存储介质之类的存储介质。然而,这仅是 计算机可读介质的示例,并且示例在此方面不受限制。
如本公开所指,术语“逻辑”涉及用于执行一个或多个逻辑操作 的结构。例如,逻辑可以包括基于一个或多个输入信号提供一个或多 个输出信号的电路。这种电路可以包括接收数字输入并提供数字输出 的有限状态机,或者包括响应一个或多个模拟输入信号而提供一个或 多个模拟输出信号的电路。可以在专用集成电路(ASIC)或现场可编 程门阵列(FPGA)中提供这种电路。而且逻辑可以包括存储在存储器 中并且与处理电路结合以执行此类机器可读指令的机器可读指令。然 而,这些仅仅是可以提供逻辑的结构的示例,并且示例在此方面不受 限制。
本公开描述的方法的一部分可以体现为计算机可读介质上的逻辑 指令。当在处理器上执行时,逻辑指令使处理器被编程为实现所述方 法的专用机器。当处理器由逻辑指令配置为执行本公开描述的方法时, 该处理器构成用于执行所描述的方法的结构。另选地,本公开描述的 方法可以被简化为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等上的逻辑。
在说明书和权利要求书中,可以使用术语耦合和连接及它们的衍 生词。在特定示例中,连接可用于指示两个或更多个元件彼此直接物 理或电接触。耦合可以表示两个或多个元件直接物理或电气接触。但 是,耦合也可以表示两个或多个元件可能以不彼此直接接触,但仍可 能彼此协作或交互。
说明书中对“一个示例”或“一些示例”的引用表示结合该示例 描述的特定特征、结构或特性至少包括在实现方式中。说明书中各个 地方出现的短语“在一个示例中”可以或可以不是全部指同一个示例。
上面的描述旨在是说明性的,而不是限制性的。例如,上述示例 (或它们的一个或多个方面)可以与其他示例结合使用。在回顾以上 描述之后,其他实施例可以由如本领域的普通技术人员使用。摘要是 为了使读者能够快速确定技术公开的性质。提交本公开档时,应理解 为不会将其用于解释或限制权利要求的范围或含义。另外,在上述具 体实施方式中,各种特征可以组合在一起以简化本公开。然而,权利 要求书未阐述本公开公开的每个特征,因为实施例可以以所述特征的 子集为特征。此外,实施例可以包括比特定示例中公开的特征更少的 特征。因此,以下权利要求据此被结合到具体实施方式中,其中每个 权利要求独立地作为单独的实施例。本公开公开的实施例的范围将参 考所附的权利要求书以及这些权利要求书所赋予的等效物的全部范围 来确定。
尽管已经用特定于结构特征和/或方法动作的语言描述了示例,但 是应该理解,所要求保护的主题可以不限于所描述的特定特征或动作。 相反,将特定特征和动作公开为实现所要求保护的主题的示例形式。

Claims (20)

1.一种装置,包括:
计算机可读存储器;
XMSS操作逻辑,用于管理XMSS函数;
链函数控制器,用于管理链函数算法;
安全哈希算法-2(SHA2)加速器;
安全哈希算法-3(SHA3)加速器;以及
在所述SHA2加速器和所述SHA3加速器之间共享的寄存器组。
2.根据权利要求1所述的装置,还包括用于执行以下操作的逻辑:
在所述计算机可读存储器中接收用于XMSS操作的一组XMSS输入;以及
从所述SHA2加速器或所述SHA3加速器中的至少一个确定选择的加速器;
将所述一组输入应用于所述选择的加速器。
3.根据权利要求2所述的装置,还包括用于执行以下操作的逻辑:
在通信总线上断言忙碌信号;以及
切换到不受外部读取/写入操作影响的保护模式。
4.根据权利要求3所述的装置,还包括逻辑,所述逻辑用于:
确定所述XMSS操作是否利用一次签名函数,并且响应于确定所述XMSS操作需要一次签名函数,用于:
将一次签名函数过程应用于所述一组XMSS输入;以及
调用所述链函数控制器以应用链函数来促进所述一次签名函数。
5.根据权利要求1所述的装置,其中所述SHA2加速器包括64位数据路径,所述64位数据路径可配置以执行单个SHA2-512操作轮或并行执行两个SHA2-256操作轮。
6.根据权利要求5所述的装置,其中所述SHA2加速器包括条件进位传播电路,用于在所述SHA2加速器被配置为并行执行两个SHA2-256操作轮时选择性地应用进位操作。
7.根据权利要求5所述的装置,其中所述SHA2加速器包括条件进位传播电路,用于在所述SHA2加速器被配置用于单次SHA2-512操作轮时选择性地终止进位操作。
8.根据权利要求1所述的装置,其中所述SHA3加速器可配置以执行SHAKE-128函数或执行SHAKE-256操作。
9.根据权利要求8所述的装置,其中所述SHA3加速器包括:
1600位状态寄存器,用于接收用于每个WOTS链函数的第一组输入、用于L树计算所涉及的哈希的第二组输入、以及用于Merkle树根节点计算的第三组输入;以及
用于执行以下操作的逻辑:
接收256位消息输入;
执行一组24个SHA3轮;以及
生成128位输出。
10.根据权利要求8所述的装置,其中所述SHA3加速器包括:
1600位状态寄存器,用于接收用于每个WOTS链函数的第一组输入、用于L树计算所涉及的哈希的第二组输入、以及用于Merkle树根节点计算的第三组输入;以及
用于执行以下操作的逻辑:
接收512位消息输入;
执行两组24个SHA3轮;以及
生成256位输出。
11.一种电子设备,包括:
处理器;以及
用于认证逻辑的硬件加速器,所述硬件加速器包括:
计算机可读存储器;
XMSS操作逻辑,用于管理XMSS函数;
链函数控制器,用于管理链函数算法;
安全哈希算法-2(SHA2)加速器;
安全哈希算法-3(SHA3)加速器;以及
在所述SHA2加速器和所述SHA3加速器之间共享的寄存器组。
12.根据权利要求11所述的电子设备,所述硬件加速器还包括用于执行以下操作的逻辑:
在所述计算机可读存储器中接收用于XMSS操作的一组XMSS输入;
从所述SHA2加速器或所述SHA3加速器中的至少一个确定选择的加速器;以及
将所述一组输入应用于所述选择的加速器。
13.根据权利要求12所述的电子设备,所述硬件加速器还包括用于执行以下操作的逻辑:
在通信总线上断言忙碌信号;以及
切换到不受外部读取/写入操作影响的保护模式。
14.根据权利要求13所述的电子设备,所述硬件加速器还包括逻辑,所述逻辑用于:
确定所述XMSS操作是否利用一次签名函数,并且响应于确定所述XMSS操作需要一次签名函数,用于:
将一次签名函数过程应用于所述一组XMSS输入;以及
调用所述链函数控制器以应用链函数来促进所述一次签名函数。
15.根据权利要求11所述的电子设备,其中所述SHA2加速器包括64位数据路径,所述64位数据路径可配置以执行单个SHA2-512操作轮或并行执行两个SHA2-256操作轮。
16.根据权利要求15所述的电子设备,其中所述SHA2加速器包括条件进位传播电路,用于在所述SHA2加速器被配置为并行执行两个SHA2-256操作轮时选择性地应用进位操作。
17.根据权利要求15所述的电子设备,其中所述SHA2加速器包括条件进位传播电路,用于在所述SHA2加速器被配置用于单个SHA2-512操作轮时选择性地终止进位操作。
18.根据权利要求11所述的电子设备,其中所述SHA3加速器可配置以执行SHAKE-128函数或执行SHAKE-256操作。
19.根据权利要求18所述的电子设备,其中所述SHA3加速器包括:1600位状态寄存器,用于接收用于每个WOTS链函数的第一组输入、用于L树计算所涉及的哈希的第二组输入、以及用于Merkle树根节点计算的第三组输入;以及
用于执行以下操作的逻辑:
接收256位消息输入;
执行一组24个SHA3轮;以及
生成128位输出。
20.根据权利要求18所述的电子设备,其中所述SHA3加速器包括:1600位状态寄存器,用于接收用于每个WOTS链函数的第一组输入、用于L树计算所涉及的哈希的第二组输入、以及用于Merkle树根节点计算的第三组输入;以及
用于执行以下操作的逻辑:
接收512位消息输入;
执行两组24个SHA3轮;以及
生成256位输出。
CN202010223560.9A 2019-06-28 2020-03-26 基于sha2和sha3组合的xmss硬件加速器 Pending CN112152785A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/455,950 US11303429B2 (en) 2019-06-28 2019-06-28 Combined SHA2 and SHA3 based XMSS hardware accelerator
US16/455,950 2019-06-28

Publications (1)

Publication Number Publication Date
CN112152785A true CN112152785A (zh) 2020-12-29

Family

ID=68162199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010223560.9A Pending CN112152785A (zh) 2019-06-28 2020-03-26 基于sha2和sha3组合的xmss硬件加速器

Country Status (3)

Country Link
US (2) US11303429B2 (zh)
EP (1) EP3758282A1 (zh)
CN (1) CN112152785A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113225185A (zh) * 2021-05-11 2021-08-06 南京大学 一种基于哈希后量子签名的密钥生成硬件加速架构及方法
CN113922955A (zh) * 2021-10-06 2022-01-11 烽火通信科技股份有限公司 一种xmss算法的全硬件实现架构及其系统
US11303429B2 (en) 2019-06-28 2022-04-12 Intel Corporation Combined SHA2 and SHA3 based XMSS hardware accelerator
CN115664640A (zh) * 2022-12-23 2023-01-31 苏州浪潮智能科技有限公司 Sha-3算法的硬件实现方法、系统、存储介质及设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11456877B2 (en) * 2019-06-28 2022-09-27 Intel Corporation Unified accelerator for classical and post-quantum digital signature schemes in computing environments
US11218300B1 (en) * 2019-09-10 2022-01-04 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography communications channels
US11552793B1 (en) 2019-09-10 2023-01-10 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography communications channels
US11218301B1 (en) 2019-09-10 2022-01-04 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography communications channels
US11516008B2 (en) * 2020-12-23 2022-11-29 Intel Corporation Efficient post-quantum secure software updates tailored to resource-constrained devices
JP2022146609A (ja) * 2021-03-22 2022-10-05 キオクシア株式会社 演算装置
EP4068686A1 (en) * 2021-03-31 2022-10-05 Siemens Aktiengesellschaft Signing system for validating stateful hash-based digital signatures
EP4068685A1 (en) * 2021-03-31 2022-10-05 Siemens Aktiengesellschaft Monitoring system for monitoring hash-based digital signatures
US20220376892A1 (en) * 2021-04-28 2022-11-24 Nxp B.V. Speeding up hash-chain computations
US20220100873A1 (en) * 2021-12-09 2022-03-31 Intel Corporation Computation of xmss signature with limited runtime storage
US20220109558A1 (en) * 2021-12-15 2022-04-07 Intel Corporation Xmss management to address randomized hashing and federal information processing standards
US20240061961A1 (en) * 2022-08-10 2024-02-22 International Business Machines Corporation Hardware-based implementation of secure hash algorithms

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346816B2 (en) * 2004-09-29 2008-03-18 Yen-Fu Liu Method and system for testing memory using hash algorithm
US10020934B2 (en) 2015-11-05 2018-07-10 Intel Corporation Hardware accelerator for cryptographic hash operations
US10783279B2 (en) * 2016-09-01 2020-09-22 Atmel Corporation Low cost cryptographic accelerator
US10313130B2 (en) * 2016-09-27 2019-06-04 Intel Corporation Hash-based signature balancing
US9800403B1 (en) * 2016-09-30 2017-10-24 International Business Machines Corporation Message processing using extended output functions
US20180183577A1 (en) * 2016-12-28 2018-06-28 Intel Corporation Techniques for secure message authentication with unified hardware acceleration
KR102430983B1 (ko) * 2017-09-22 2022-08-09 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US11303429B2 (en) 2019-06-28 2022-04-12 Intel Corporation Combined SHA2 and SHA3 based XMSS hardware accelerator

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11303429B2 (en) 2019-06-28 2022-04-12 Intel Corporation Combined SHA2 and SHA3 based XMSS hardware accelerator
US11917053B2 (en) 2019-06-28 2024-02-27 Intel Corporation Combined SHA2 and SHA3 based XMSS hardware accelerator
CN113225185A (zh) * 2021-05-11 2021-08-06 南京大学 一种基于哈希后量子签名的密钥生成硬件加速架构及方法
CN113922955A (zh) * 2021-10-06 2022-01-11 烽火通信科技股份有限公司 一种xmss算法的全硬件实现架构及其系统
CN113922955B (zh) * 2021-10-06 2023-07-07 烽火通信科技股份有限公司 一种xmss算法的全硬件实现架构及其系统
CN115664640A (zh) * 2022-12-23 2023-01-31 苏州浪潮智能科技有限公司 Sha-3算法的硬件实现方法、系统、存储介质及设备

Also Published As

Publication number Publication date
US20220224514A1 (en) 2022-07-14
US11303429B2 (en) 2022-04-12
EP3758282A1 (en) 2020-12-30
US11917053B2 (en) 2024-02-27
US20190319782A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
US11917053B2 (en) Combined SHA2 and SHA3 based XMSS hardware accelerator
US11770258B2 (en) Accelerators for post-quantum cryptography secure hash-based signing and verification
US11405213B2 (en) Low latency post-quantum signature verification for fast secure-boot
US11770262B2 (en) Odd index precomputation for authentication path computation
US11575521B2 (en) Fast XMSS signature verification and nonce sampling process without signature expansion
US11516008B2 (en) Efficient post-quantum secure software updates tailored to resource-constrained devices
US11722313B2 (en) State synchronization for post-quantum signing facilities
EP3758290A1 (en) Parallel processing techniques for hash-based signature algorithms
WO2023107776A1 (en) Efficient hybridization of classical and post-quantum signatures
WO2023107775A1 (en) Computation of xmss signature with limited runtime storage
US20220109558A1 (en) Xmss management to address randomized hashing and federal information processing standards
US20220416998A1 (en) Side channel protection for sha3 cryptographic functions
US20220123949A1 (en) Side channel protection for xmss signature function
US20240031164A1 (en) Hybridization of dilithium and falcon for digital signatures
US20240031127A1 (en) Lightweight side-channel protection for polynomial multiplication in post-quantum signatures
US20240031140A1 (en) Efficient low-overhead side-channel protection for polynomial multiplication in post-quantum encryption

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