基于SHA2和SHA3组合的XMSS硬件加速器.pdf

上传人:奶盖 文档编号:10125245 上传时间:2021-06-04 格式:PDF 页数:33 大小:1.64MB
收藏 版权申诉 举报 下载
基于SHA2和SHA3组合的XMSS硬件加速器.pdf_第1页
第1页 / 共33页
基于SHA2和SHA3组合的XMSS硬件加速器.pdf_第2页
第2页 / 共33页
基于SHA2和SHA3组合的XMSS硬件加速器.pdf_第3页
第3页 / 共33页
文档描述:

《基于SHA2和SHA3组合的XMSS硬件加速器.pdf》由会员分享,可在线阅读,更多相关《基于SHA2和SHA3组合的XMSS硬件加速器.pdf(33页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010223560.9 (22)申请日 2020.03.26 (30)优先权数据 16/455,950 2019.06.28 US (71)申请人 英特尔公司 地址 美国加利福尼亚州 (72)发明人 S高希V苏雷什S马修 M萨斯特里AH赖因德斯 R库马尔R米索茨基 (74)专利代理机构 北京尚诚知识产权代理有限 公司 11322 代理人 龙淳杨震 (51)Int.Cl. H04L 9/06(2006.01) H04L 9/08(2006.01) H04L 9/30(2006。

2、.01) H04L 9/32(2006.01) (54)发明名称 基于SHA2和SHA3组合的XMSS硬件加速器 (57)摘要 在一个示例中, 一种装置包括: 计算机可读 存储器、 用于管理XMSS函数的XMSS操作逻辑、 用 于管理链函数算法的链函数控制器、 安全哈希算 法-2(SHA2)加速器、 安全哈希算法-3(SHA3)加速 器、 以及在SHA2加速器和SHA3加速器之间共享的 寄存器组。 可以描述其他示例。 权利要求书3页 说明书14页 附图15页 CN 112152785 A 2020.12.29 CN 112152785 A 1.一种装置, 包括: 计算机可读存储器; XMSS操。

3、作逻辑, 用于管理XMSS函数; 链函数控制器, 用于管理链函数算法; 安全哈希算法-2(SHA2)加速器; 安全哈希算法-3(SHA3)加速器; 以及 在所述SHA2加速器和所述SHA3加速器之间共享的寄存器组。 2.根据权利要求1所述的装置, 还包括用于执行以下操作的逻辑: 在所述计算机可读存储器中接收用于XMSS操作的一组XMSS输入; 以及 从所述SHA2加速器或所述SHA3加速器中的至少一个确定选择的加速器; 将所述一组输入应用于所述选择的加速器。 3.根据权利要求2所述的装置, 还包括用于执行以下操作的逻辑: 在通信总线上断言忙碌信号; 以及 切换到不受外部读取/写入操作影响的保护。

4、模式。 4.根据权利要求3所述的装置, 还包括逻辑, 所述逻辑用于: 确定所述XMSS操作是否利用一次签名函数, 并且响应于确定所述XMSS操作需要一次签 名函数, 用于: 将一次签名函数过程应用于所述一组XMSS输入; 以及 调用所述链函数控制器以应用链函数来促进所述一次签名函数。 5.根据权利要求1所述的装置, 其中所述SHA2加速器包括64位数据路径, 所述64位数据 路径可配置以执行单个SHA2-512操作轮或并行执行两个SHA2-256操作轮。 6.根据权利要求5所述的装置, 其中所述SHA2加速器包括条件进位传播电路, 用于在所 述SHA2加速器被配置为并行执行两个SHA2-256。

5、操作轮时选择性地应用进位操作。 7.根据权利要求5所述的装置, 其中所述SHA2加速器包括条件进位传播电路, 用于在所 述SHA2加速器被配置用于单次SHA2-512操作轮时选择性地终止进位操作。 8.根据权利要求1所述的装置, 其中所述SHA3加速器可配置以执行SHAKE-128函数或执 行SHAKE-256操作。 9.根据权利要求8所述的装置, 其中所述SHA3加速器包括: 1600位状态寄存器, 用于接收用于每个WOTS链函数的第一组输入、 用于L树计算所涉及 的哈希的第二组输入、 以及用于Merkle树根节点计算的第三组输入; 以及 用于执行以下操作的逻辑: 接收256位消息输入; 执。

6、行一组24个SHA3轮; 以及 生成128位输出。 10.根据权利要求8所述的装置, 其中所述SHA3加速器包括: 1600位状态寄存器, 用于接收用于每个WOTS链函数的第一组输入、 用于L树计算所涉及 的哈希的第二组输入、 以及用于Merkle树根节点计算的第三组输入; 以及 用于执行以下操作的逻辑: 接收512位消息输入; 权利要求书 1/3 页 2 CN 112152785 A 2 执行两组24个SHA3轮; 以及 生成256位输出。 11.一种电子设备, 包括: 处理器; 以及 用于认证逻辑的硬件加速器, 所述硬件加速器包括: 计算机可读存储器; XMSS操作逻辑, 用于管理XMSS。

7、函数; 链函数控制器, 用于管理链函数算法; 安全哈希算法-2(SHA2)加速器; 安全哈希算法-3(SHA3)加速器; 以及 在所述SHA2加速器和所述SHA3加速器之间共享的寄存器组。 12.根据权利要求11所述的电子设备, 所述硬件加速器还包括用于执行以下操作的逻 辑: 在所述计算机可读存储器中接收用于XMSS操作的一组XMSS输入; 从所述SHA2加速器或所述SHA3加速器中的至少一个确定选择的加速器; 以及 将所述一组输入应用于所述选择的加速器。 13.根据权利要求12所述的电子设备, 所述硬件加速器还包括用于执行以下操作的逻 辑: 在通信总线上断言忙碌信号; 以及 切换到不受外部读。

8、取/写入操作影响的保护模式。 14.根据权利要求13所述的电子设备, 所述硬件加速器还包括逻辑, 所述逻辑用于: 确定所述XMSS操作是否利用一次签名函数, 并且响应于确定所述XMSS操作需要一次签 名函数, 用于: 将一次签名函数过程应用于所述一组XMSS输入; 以及 调用所述链函数控制器以应用链函数来促进所述一次签名函数。 15.根据权利要求11所述的电子设备, 其中所述SHA2加速器包括64位数据路径, 所述64 位数据路径可配置以执行单个SHA2-512操作轮或并行执行两个SHA2-256操作轮。 16.根据权利要求15所述的电子设备, 其中所述SHA2加速器包括条件进位传播电路, 用。

9、 于在所述SHA2加速器被配置为并行执行两个SHA2-256操作轮时选择性地应用进位操作。 17.根据权利要求15所述的电子设备, 其中所述SHA2加速器包括条件进位传播电路, 用 于在所述SHA2加速器被配置用于单个SHA2-512操作轮时选择性地终止进位操作。 18.根据权利要求11所述的电子设备, 其中所述SHA3加速器可配置以执行SHAKE-128函 数或执行SHAKE-256操作。 19.根据权利要求18所述的电子设备, 其中所述SHA3加速器包括: 1600位状态寄存器, 用于接收用于每个WOTS链函数的第一组输入、 用于L树计算所涉及的哈希的第二组输入、 以 及用于Merkle树。

10、根节点计算的第三组输入; 以及 用于执行以下操作的逻辑: 接收256位消息输入; 执行一组24个SHA3轮; 以及 权利要求书 2/3 页 3 CN 112152785 A 3 生成128位输出。 20.根据权利要求18所述的电子设备, 其中所述SHA3加速器包括: 1600位状态寄存器, 用于接收用于每个WOTS链函数的第一组输入、 用于L树计算所涉及的哈希的第二组输入、 以 及用于Merkle树根节点计算的第三组输入; 以及 用于执行以下操作的逻辑: 接收512位消息输入; 执行两组24个SHA3轮; 以及 生成256位输出。 权利要求书 3/3 页 4 CN 112152785 A 4 。

11、基于SHA2和SHA3组合的XMSS硬件加速器 背景技术 0001 本公开描述的主题总体上涉及计算机安全领域, 并且更具体地涉 及用于后量子 密码安全扩展Merkle签名方案(XMSS)和 Leighton/Micali签名(LMS)哈希签名和验证的加 速器。 0002 对于使用量子计算机的基于如舒尔算法等算法的暴力攻击, 预计 现有的公钥数 字签名算法(如Rivest-Shamir-Adleman(RSA)和椭圆 曲线数字签名算法(ECDSA)并不安 全。 因此, 密码学研究界和各 种标准机构都在努力为针对量子计算机安全的算法定义新的 标准。 0003 相应地, 例如在基于计算机的通信系统和。

12、方法中, 如XMSS和 LMS之类的用于加速 签名和验证方案的技术可以找到实用性。 附图说明 0004 参照附图描述具体实施方式。 0005 图1A和图1B分别是一次哈希签名方案和多次哈希签名方案的示 意图。 0006 图2A至图2B分别是一次签名方案和多次签名方案的示意图。 0007 图3是根据一些示例的签名设备和验证设备的示意图。 0008 图4A是根据一些示例的Merkle树结构的示意图。 0009 图4B是根据一些示例的Merkle树结构的示意图。 0010 图5是根据一些示例的用于实现签名算法的体系结构中的计算块 的示意图。 0011 图6A是根据一些示例的用于在签名算法中实现签名生。

13、成的体系 结构中的计算块 的示意图。 0012 图6B是根据一些示例的用于在验证算法中实现签名验证的体系 结构中的计算块 的示意图。 0013 图7是根据一些示例的用于实现硬件加速器的体系结构中的计算 块的示意图。 0014 图8是示出根据一些示例的用于实现硬件加速器的方法中的操作 的流程图。 0015 图9是示出根据一些示例的由硬件加速器实现的方法中的操作的 流程图。 0016 图10是根据一些示例的用于实现硬件加速器的体系结构中的计 算块的示意图。 0017 图11是根据一些示例的用于实现硬件加速器的体系结构中的计 算块的示意图。 0018 图12是根据一些示例的可适于实现硬件加速器的计算。

14、体系结构 的示意图。 具体实施方式 0019 本公开描述了用于实现用于后量子密码安全哈希签名算法的加速 器的示例性系 统和方法。 在以下描述中, 阐述了许多具体细节以提供 对各种示例的透彻理解。 然而, 本领 域技术人员将理解, 可以在没有 具体细节的情况下实践各种示例。 在其他情况下, 未详细 示出或描述 公知的方法、 过程、 组件和电路, 以免混淆示例。 0020 如上简述, 对于使用量子计算机的基于如舒尔算法等算法的暴力 攻击, 预计现有 说明书 1/14 页 5 CN 112152785 A 5 的公钥数字签名算法(如Rivest-Shamir-Adleman(RSA) 和椭圆曲线数字。

15、签名算法 (ECDSA)并不安全。 扩展Merkle签名 方案(XMSS)和/或扩展Merkle多次签名方案(XMSS- MT)是哈希 签名方案, 可以防止量子计算机的攻击。 如本公开所使用的, 术语 XMSS应指代 XMSS方案和XMSS-MT方案两者。 0021 XMSS签名过程使用一次签名方案(如Winternitz一次签名 (WOTS)或其衍生版本 (例如, WOTS+)结合安全哈希算法(SHA) (如SHA2-256)作为主要基础哈希函数来实现哈希 签名方案。 在一些 示例中, XMSS签名/验证方案还可以将SHA2-512、 SHA3-SHAKE-256 或 SHA3-SHAKE-。

16、512中的一个或多个用作安全哈希函数。 XMSS特定 的哈希函数包括伪随机函 数(PRF)、 链哈希(F)、 树哈希(H)和 消息哈希函数(Hmsg)。 如本公开所使用的, 术语 “WOTS” 应 指代 WOTS签名方案和或如WOTS+的衍生方案。 0022 Leighton/Micali签名(LMS)方案是另一种哈希签名方案, 其使 用Leighton/ Micali一次签名(LM-OTS)作为一次签名构建块。 LMS 签名基于SHA2-256哈希函数。 0023 XMSS签名过程包括三个主要操作。 第一主要操作接收输入消息 (M)和私钥(sk), 并利用一次签名算法(例如WOTS+)生成编。

17、码 公钥(pk)的消息表示(M )。 在128位后量子安 全实现方式中, 输 入消息M经受哈希函数, 并且然后划分为67个消息分量(每个消息 分量 有n个字节), 每个消息分量经受哈希链函数以生成数字签名的 对应67个分量。 每个链函数 调用一系列基础安全哈希算法(SHA)。 0024 第二主要操作是L树计算, 其结合WOTS+(或WOTS)公钥分 量(每个WOTS+(或WOTS) 公钥分量有n个字节)并生成单个n 字节值。 例如, 在128位后量子安全性中, 有67个公钥分 量, 每个公 钥分量都调用对输入块执行的基础安全哈希算法(SHA)。 0025 第三主要操作是树哈希操作, 其构造Me。

18、rkle树。 在XMSS验证中, 作为签名的一部 分并且作为L树操作的输出提供的认证路径经树哈希 操作来处理, 以生成Merkle树的根节 点, 该根节点应对应于XMSS 公钥。 对于具有128位后量子安全性的XMSS验证, 遍历Merkle树 包括执行安全哈希操作。 在XMSS验证中, 将树-哈希操作的输出与已 知的公钥进行比较。 如 果它们匹配, 则签名被接受。 相反, 如果它们 不匹配, 则签名被拒绝。 0026 XMSS签名过程的计算量非常大。 XMSS签名过程调用数百甚至 数千个哈希计算周 期。 本公开描述的主题通过提供用于实现用于后量 子密码安全XMSS和LMS哈希签名和验证 的加。

19、速器的系统和方法来 解决这些和其他问题。 0027 后量子密码概述 0028 后量子密码(也称为 “防量子” 、“量子安全” 、“抗量子” 或 简称为 “PQC” )采用未来 和现实的密码方法。 其使负责密码的人员 以及最终用户准备好知晓该密码已经过时; 相 反, 其需要发展以便能 够成功地将不断发展的计算设备处理到量子计算和后量子计算中。 0029 众所周知, 密码可以保护在个人和实体之间在线传输并使用各种 网络存储的数 据。 此数据传输的范围包括发送和接收电子邮件、 在线 购买商品或服务、 使用网站访问银 行或其他个人信息等。 0030 在处理量子计算时, 传统的密码及其典型的因式分解和困。

20、难数学 情况的计算可 能并不重要。 这些数学问题(如离散对数、 整数因式分 解和椭圆曲线离散对数等)无法承受 强大量子计算机的攻击。 尽管任 何后量子密码都可以建立在当前密码学之上, 但是这种新 颖的方法需 要足够智能、 快速和精确, 以抵抗和击败量子计算机的任何攻击。 说明书 2/14 页 6 CN 112152785 A 6 0031 当今的PQC主要集中在以下方法: 1)基于1979年Merkle的哈 希树公钥签名系统的 基于哈希的密码, 其建立在Lamport和Diffie的 一次消息签名思想基础上; 2)基于代码的 密码, 如McEliece的隐式 Goppa代码公钥加密系统; 3)。

21、基于1998年的Hoffstein-Pipher- Silverman 公钥加密系统的基于格的密码; 4)基于1996年Patarin的HFE公钥 签名系统的 多元二次方程式密码, 该系统进一步基于Matumoto-Imai 提议; 5)依靠超奇异椭圆曲线和 超奇异同构图的超奇异椭圆曲线等值 密码; 6)对称密钥量子电阻。 0032 图1A和图1B分别示出一次哈希签名方案和多次哈希签名方案。 如上所述, 哈希密 码基于如Lamport签名、 Merkle签名、 扩展Merkle 签名方案(XMSS)和SPHINC方案之类的加 密系统。 随着量子计算 的出现以及人们对其发展的期待, 人们开始关注。

22、关于量子计算可能 带 来的各种挑战以及如何使用密码学领域应对这些挑战。 0033 由于这些方案已经存在了很长一段时间并且具有应对量子计数和 后量子计算挑 战的必要基本要素, 因此正在探索以应对量子计算挑战 的领域是基于哈希的签名(HBS)。 HBS方案被认为与快速平台安全 启动配合使用的快速签名算法, 被认为对量子和后量子计 算攻击具有 最大的抵抗力。 0034 例如, 如图1A所示, 示出了使用Merkle树和一次签名(OTS) 方案100的HBS方案, 如 使用私钥来签名消息和使用相应的公钥来验 证OTS消息, 其中私钥仅签名单个消息。 0035 类似地, 如图1B所示, 示出了另一种HB。

23、S方案, 其中该方案涉 及多次签名(MTS)方 案150, 其中私钥可以签名多个消息。 0036 图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。 0037 例如, 图2A的WOTS方案200提供了将消息哈希和解析为M, 其具有67个在0, 1, 2, , 15之间的整数,。

24、 如私钥sk 205、 签名、 s、 210和公钥pk 215, 每个具有67个分量, 每个 分量具有32个字节。 0038 图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公钥匹。

25、配, 如根节点XMSS公钥。 0039 用于后量子密码的加速器 0040 图3是根据一些示例的包括第一设备310和第二设备350的安全 环境300的高层体 系结构的示意图。 参照图3, 第一设备310和第二 设备350中的每个可以被体现为能够执行 本公开描述的功能的任何类 型的计算设备。 例如, 在一些实施例中, 第一设备310和第二设 备350 中的每个可以被体现为膝上型计算机、 平板计算机、 笔记本、 上网本、 超极本TM、 智能 手机、 蜂窝电话、 可穿戴计算设备、 个人数字助手、 移动Internet设备、 台式计算机、 路由 器、 服务器、 工作站和/或任何 其他计算/通信设备。 0。

26、041 第一设备310包括一个或多个处理器320和用于存储私钥324的 存储器322。 (一个 或多个)处理器320可以体现为能够执行本公开 所述功能的任何类型的处理器。 例如, (一 说明书 3/14 页 7 CN 112152785 A 7 个或多个)处理器320可 以体现为(一个或多个)单核或多核处理器、 数字信号处理器、 微控 制器或其他处理器或处理/控制电路。 类似地, 存储器322可以体现为 能够执行本公开所述 功能的任何类型的易失性或非易失性存储器或数 据存储装置。 在操作中, 存储器322可以 存储在第一设备310(如操 作系统、 应用、 程序、 库和驱动器)的操作期间使用的各。

27、种数据和 软 件。 存储器322通信地耦合到(一个或多个)处理器320。 在一些示 例中, 私钥324可以驻 留在安全存储器中, 该安全存储器可以是存储 器322的一部分或者可以与存储器322分开。 0042 第一设备310还包括认证逻辑330, 其包括存储器332、 签名逻辑 和验证逻辑336。 哈希逻辑332被配置为对消息(M)进行哈希(即, 将哈希函数应用于消息(M)以生成消息M 的哈希值(m)。 哈希 函数可以包括但不限于安全哈希函数, 例如安全哈希算法SHA2-256 和/或SHA3-256等。 SHA2-256可以符合和/或兼容联邦信息处理标准 (FIPS)出版物180-4, 标题。

28、为:“安全哈希标准(SHS)” , 由美国 国家标准技术研究院(NIST)于2012年3月发布, 和/ 或此标准的更 高版本和/或相关版本。 SHA3-256可以符合和/或兼容FIPS出版物202, 标题 为:“SHA-3标准: 基于置换的哈希和可扩展输出函数” , 由NIST 于2015年8月发布, 和/或此 标准的更高版本和/或相关版本。 0043 签名逻辑332可以被配置为生成要被传输的签名(即, 传输的签 名)和/或验证签 名。 在第一设备310是签名设备的情况下, 传输的签 名可以包括L个传输的签名元素, 其中 每个传输的签名元素对应于相 应的消息元素。 例如, 对于每个消息元素mi。

29、, 签名逻辑332可 以被配 置为对私钥sk的每个私钥元素ski执行相应次数的选择的签名操作, 其 中该相应次 数与包含在消息代表m中的每个消息元素mi的值有关。 例 如, 签名逻辑332可以被配置为 将选择的哈希函数应用于对应的私钥 元素ski、 mi次。 在另一个示例中, 签名逻辑332可以被 配置为将选择 的链函数(包含哈希函数)应用于相应的私钥元素ski、 mi次。 选择的 签名操 作可以因此对应于选择的哈希签名方案。 0044 哈希签名方案可以包括但不限于Winternitz(W)一次签名(OTS) 方案、 增强的 Winternitz OTS方案(例如WOTS+)、 Merkle多。

30、次时 间签名方案、 扩展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月发布, 和/或此信息草案的更高版本和/或相关版本, 如201。

31、6 年6月发布的草案draft-irtf-cfrg-xmss-hash-based-signatures-06。 0045 Winternitz OTS被配置为生成签名并利用哈希函数验证接收的签 名。 Winternitz OTS进一步被配置为使用私钥并且因此使用每个私钥 元素ski一次。 例如, Winternitz OTS可以被配置为将哈希函数应用于 每个私钥元素mi或N-mi次以生成签名, 并 将哈希函数应用于每个接 收的消息元素N-mi或mi次以生成对应的验证签名元素。 Merkle 多次 签名方案是哈希签名方案, 该方案利用OTS并且可以多次使用公钥。 例如, Merkle签 名方案。

32、可以利用Winternitz OTS作为一次签名方案。 WOTS+被配置为利用一组哈希函数和 链函数。 0046 XMSS、 WOTS+和XMSS-MT是利用链函数的哈希签名方案的示 例。 每个链函数被配置 为封装对哈希函数的多个调用, 并且可以进一 步执行附加操作。 对包括在链函数中的哈希 说明书 4/14 页 8 CN 112152785 A 8 函数的调用的次数可以是 固定的。 链函数可以提高关联的哈希签名方案的安全性。 如本公 开所 述, 哈希签名平衡可以类似地平衡链函数操作。 0047 密码逻辑340被配置为代表签名设备310执行各种加密和/或安全 功能。 在一些实 施例中, 密码逻。

33、辑340可以体现为密码引擎、 签名设 备310的独立安全协处理器、 并入到(一 个或多个)处理器320中的 密码加速器、 或独立的软件/固件。 在一些实施例中, 密码逻辑 340可 以生成和/或利用各种密码密钥(例如, 对称/非对称密码密钥)来促进 加密、 解密、 签名和/或签名验证。 另外, 在一些实施例中, 密码逻辑 340可以促进通过通信链路与远程 设备建立安全连接。 还应该意识到, 在一些实施例中, 第一设备310的密码模块340和/或另 一模块可以建 立受信任的执行环境或安全区域, 在此区域内可以存储本公开描述的 数据 的一部分和/或可以执行本公开描述的多个功能。 0048 在如上所。

34、述生成签名之后, 消息M和签名然后可以由第一设备 310例如经由通信 逻辑342通过网络通信链路390发送到第二设备 350。 在实施例中, 消息M可以在传输之前不 被加密。 在另一个实施 例中, 消息M可以在传输之前被加密。 例如, 消息M可以由密码逻 辑 340加密以生成加密的消息。 0049 第二设备350还可包括一个或多个处理器360和用于存储公钥364 的存储器362。 如上所述, (一个或多个)处理器360可以体现为能 够执行本公开所述功能的任何类型的处 理器。 例如, (一个或多个) 处理器360可以体现为(一个或多个)单核或多核处理器、 数字信 号 处理器、 微控制器或其他处理。

35、器或处理/控制电路。 类似地, 存储器362 可以体现为能够 执行本公开所述功能的任何类型的易失性或非易失性 存储器或数据存储装置。 在操作中, 存储器362可以存储在第二设备 350(如操作系统、 应用、 程序、 库和驱动器)的操作期间使 用的各种 数据和软件。 存储器362通信地耦合到(一个或多个)处理器360。 0050 在一些示例中, 可以在先前的交换中将公钥364提供给验证者设 备350。 公钥pk被 配置为包含L个公钥元素, 即pkpk1, , pkL。 公钥364可以被存储到例如存储器362。 0051 第二设备350还包括认证逻辑370, 该认证逻辑370包括哈希逻 辑372、。

36、 签名逻辑和 验证逻辑376。 如上所述, 哈希逻辑372被配置为 对消息(M)进行哈希(即, 将哈希函数应用 于消息(M)以生成 哈希消息(m )。 哈希函数可以包括但不限于安全哈希函数, 例如安 全 哈希算法SHA2-256和/或SHA3-256等。 SHA2-256可以符合和/或 兼容联邦信息处理标准 (FIPS)出版物180-4, 标题为:“安全哈希标 准(SHS)” , 由美国国家标准技术研究院(NIST) 于2012年3月发 布, 和/或此标准的更高版本和/或相关版本。 SHA3-256可以符合和/ 或兼 容FIPS出版物202, 标题为:“SHA-3标准:“基于置换的哈希 和可扩。

37、展输出函数” , 由NIST于 2015年8月发布, 和/或此标准的更 高版本和/或相关版本。 0052 在第二设备是验证设备的情况下, 认证逻辑370被配置为至少部 分地基于从第一 设备接收的签名并且至少部分地基于所接收的消息代 表(m)来生成验证签名。 例如, 认证 逻辑370可以被配置为执行相 同的签名操作, 即, 将与对认证逻辑330的哈希逻辑332所应 用的哈 希函数或链函数相同的哈希函数或链函数应用于每个接收的消息元素 N-mi(或 mi)次, 以生成验证消息元素。 然后可以确定验证签名(即, L个验证消息元素中的每个)是 否对应于对应的公钥元素pki。 例如, 认证逻辑370可以。

38、被配置为将每个验证消息元素与对 应的公钥元素pki进行比较。 如果验证消息元素中的每个与对应的公钥元素pki匹配, 则 验 证对应于成功。 换句话说, 如果所有验证消息元素都与公钥元素 pk1, , pkL匹配, 则验证 说明书 5/14 页 9 CN 112152785 A 9 对应于成功。 如果任何验证消息元素与对 应的公钥元素pki不匹配, 则验证对应于失败。 0053 如下面更详细描述的, 在一些示例中, 第一设备310的认证逻辑 330包括一个或多 个加速器338, 该一个或多个加速器338与哈希逻辑 332、 签名逻辑334和/或验证逻辑336合 作以加速认证操作。 类似地, 在一。

39、些示例中, 第二设备310的认证逻辑370包括一个或多个 加速器 378, 该一个或多个加速器378与哈希逻辑372、 签名逻辑374和/或验 证逻辑376协 作以加速认证操作。 加速器的示例在以下段落中参考附 图进行描述。 0054 环境300的各种模块可以体现为硬件、 软件、 固件或它们的组合。 例如, 环境300的 各种模块、 逻辑和其他组件可以形成第一设备310 的(一个或多个)处理器320或第二设备 350的(一个或多个)处理 器360的一部分, 或由上述处理器建立。 这样, 在一些实施例中, 环 境300的一个或多个模块可以体现为电子设备的电路或集合(例如, 认证电路、 密码电路、。

40、 通信电路、 签名电路和/或验证电路)。 另外, 在一些实施例中, 一个或多个说明性模块可以 形成另一个模块的一部 分, 和/或一个或多个说明性模块可以彼此独立。 0055 图4A是根据一些示例的Merkle树结构的示意图, 其示出了签名 操作。 参照图4A, XMSS签名操作需要使用来自每个叶子WOTS节 点410的本地公钥生成全局公钥(PK)420来构 造Merkle树400A。 在一些示例中, 可以离线计算认证路径和根节点值, 使得这些操作不 限 制性能。 每个WOTS节点410具有唯一的密钥 “sk” , 该密钥仅用 于对消息签名一次。 XMSS签名 由针对输入消息生成的签名和用于构 。

41、造Merkle树的根的中间树节点的认证路径组成。 0056 图4B是根据一些示例的在验证期间的Merkle树结构400B的示 意图。 在验证期间, 输入消息和签名用于计算WOTS节点的本地公钥 420B, 该本地公钥还用于使用认证路径来 计算树根值。 成功的验证将 使计算出的树根值与签名实体共享的公钥PK相匹配。 WOTS和L 树 操作分别构成XMSS符号的重要部分/验证等待时间, 从而定义认证系 统的总体性能。 本 公开描述了各种预计算技术, 这些技术可以被实现 以加快WOTS和L树操作的速度, 从而提 高XMSS性能。 这些技术 适用于其他哈希选项, 并且可以很好地针对软件实现方式和硬件实。

42、 现 方式两者进行扩展。 0057 图5是根据一些示例的用于执行签名算法的体系结构500中的计 算块的示意图。 参照图5, WOTS+操作涉及16个SHA2-256个哈希函 数的67个并行链, 每个HASH函数具有秘密 密钥sk66: 0作为输入。 链中每个哈希操作由使用SHA2-256的2个伪随机函数(PRF)组成 以生成位掩码和密钥。 位掩码与先前的哈希进行异或运算, 并与密钥 级联作为第三SHA2- 256哈希操作的输入消息。 6732字节的WOTS 公钥pk66: 0是通过在67个哈希链上对秘密 密钥sk进行哈希生成的。 0058 图6A是根据一些示例的用于在签名算法中实现签名生成的体。

43、系 结构600A中的计 算块的示意图。 如图6A所示, 对于消息签名, 对输 入消息进行哈希和预处理以计算674位 的值, 该值用作用于在每个 链中选择中间哈希值的索引。 0059 图6B是根据一些示例的用于在验证算法中实现签名验证的体系 结构600B中的计 算块。 参照图6B, 在验证期间, 消息再次被哈希以 计算签名索引并计算每个链中的其余 HASH操作以计算WOTS公钥 pk。 此值和认证路径用于计算Merkle树的根, 并与共享公钥PK进 行 比较以验证消息。 0060 图7是根据一些示例的用于实现HASH算法的体系结构700A中 的计算块的示意图。 参照图7, 在一些示例中, XMS。

44、S硬件加速器710 可以包括可用于存储XMSS输入和XMSS操作的 说明书 6/14 页 10 CN 112152785 A 10 中间结果的计算机可 读存储器712、 用于实现XMSS操作的一个或多个处理器、 链函数逻 辑 模块716和一组寄存器716, 这组寄存器716在统一的SHA256/512 计算逻辑模块720和统一 的SHA3 SHAKE128/256计算逻辑模块722 之间共享。 0061 如下所述, SHA256/512计算逻辑具有新颖的统一的可配置体系结 构, 该体系结构 支持单个64位SHA2-512操作或两个并行的32位 SHA2-256操作, 从而与传统的基于SHA2硬。

45、 件的XMSS加速器相比, 可以显着加快SHA2-256模式下XMSS操作的速度。 0062 图8是示出根据一些示例的在由硬件加速器实现的方法中的操作 的流程图。 具体 地, 图9示出可以在用于实现硬件加速器的方法中由 主机进程实现的操作。 在一些示例中, 图8中描绘的操作可以由处理 器来实现, 例如, 第一设备中的处理器320中的一个或多个或 第二设 备350中的(一个或多个)处理器中。 参照图8, 在操作810处, 接 收XMSS操作。 如果在 操作815处XMSS硬件加速器正在断言IP_Busy 状态, 则控制保留在操作815, 并且主机进程 继续监视XMSS硬件加 速器710的状态。 。

46、0063 相比之下, 如果在操作815处XMSS硬件加速器710未断言 IP_Busy状态, 则控制转 到操作820, 并且主机进程将输入写入到XMSS 硬件加速器710中。 在操作825处, 主机进程设 置XMSS操作的参数 (例如, 密钥生成、 签名、 验证等)以及基础哈希函数(即, SHA256、 SHA512、 SHAKE128或SHAKE256)。 在操作830处, 主机进程向 XMSS加速器710施加启动脉冲。 0064 在操作835处, 主机进程监视XMSS加速器710的状态, 以确定 XMSS加速器710是否 已经完成其操作。 如果在操作710处XMSS加 速器710尚未完成其。

47、操作, 则主机进程将继续轮 询XMSS加速器710。 相反, 如果在操作710处XMSS加速器已完成其操作, 则控制转到操 作 840, 并且主机进程将读取XMSS加速器710的结果。 0065 图9是示出根据一些示例的在由硬件加速器实现的方法中的操作 的流程图。 在一 些示例中, 图9中描绘的操作可以由XMSS硬件加速 器710中的处理器(例如, 处理器714)实 现。 参照图9, 在操作910 处, XMSS硬件加速器710断言IP_Busy状态, 并且在操作915处, XMSS硬件加速器710切换到保护模式, 在该模式下, 其忽略外部读/ 写操作并执行XMSS操 作。 0066 在操作9。

48、20处, XMSS操作状态机被初始化。 在操作925处, 确 定XMSS操作是否利用 一次签名操作。 如果在操作925处XMSS操作 未利用一次签名操作, 则控制转到操作940。 相 反, 如果在操作925 处XMSS操作利用一次签名操作, 则控制转到操作930, 并调用一次 签名 函数状态机以重复实现一次签名操作, 直到它们的一次签名操作 完成为止。 在操作935处, 调用链函数控制器以实现链函数操作, 直 到链函数操作完成为止。 0067 在操作940处, XMSS硬件加速器至少部分地基于在操作825中 实现的参数来实现 SHA2哈希函数或SHA3哈希函数之一。 当XMSS 加速器710完。

49、成哈希函数时, 控制转到操作 945, 并且XMSS加速器 710生成完成脉冲并释放IP_Busy状态, 以便当主机进程在操作835 处轮询XMSS加速器710时, 主机进程收到XMSS加速器710完成并 且主机进程可以在操作840 处读取结果的指示。 0068 图10是根据一些示例的用于实现硬件加速器的体系结构中的计 算块的示意图。 更具体地, 图10示出如图7所示的统一的SHA256/512 计算逻辑模块720的计算块。 参照图 10, 统一的SHA256/512计算逻 辑由第一32位数据路径1010和第二32位数据路径1020组成, 这两 个数据路径可配置以定义用于执行1SHA512操作。

50、或2SHA256操 作的64位数据路 说明书 7/14 页 11 CN 112152785 A 11 径。 传统的统一的SHA2-256/512硬件加速器使用在 两个SHA2模式之间共享的通用64位数 据路径。 SHA2的通用模型串 行执行轮(round)操作, 仅利用一半的数据路径执行32b SHA2- 256 操作。 0069 XMSS提供了在WOTS和L树操作期间并行执行多个SHA2-256 操作的机会。 图10中描 绘的统一的SHA2计算逻辑可以被配置为在 SHA-512模式下作为单轮操作或在SHA-256模式 下作为两个并行轮操 作。 例如, 在SHA256模式下, 可以实现共享常数。

展开阅读全文
内容关键字: 基于 SHA2 SHA3 组合 XMSS 硬件 加速器
关于本文
本文标题:基于SHA2和SHA3组合的XMSS硬件加速器.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10125245.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1