Jacky Gu

基于哈希的密码学:通往量子安全的数学路径(上)

06 Aug 2021 Share to

原文链接: https://www.isara.com/blog-posts/hash-based-cryptography.html

数字签名算法是公钥密码体系的一个重要组成部分,其应用范围从代码签名到建立安全连接。然而,经典的数字签名算法将容易受到量子霸权的攻击。基于哈希(hash-based)的密码学是最古老的量子安全密码学领域之一,数字签名算法可以追溯到1979年,比椭圆曲线密码学发明还早。

一、基本思想是什么?

在20世纪70年代末,Leslie Lamport提出了一次性签名(OTS)的概念–一种最多只能使用一次的签名算法。尽管使用一个最多只能使用一次的签名方案似乎并不实际,但在Lamport发表了有影响力的论文后不久,Ralph Merkle将这个看似不实际的想法变成了可以多次使用的签名算法,并由此诞生了第一个基于多次哈希的算法。

二、“有状态stateful”与 “无状态stateless”的基于哈希的签名

基于哈希的签名分为两种不同类型:有状态和无状态。

所有基于多次哈希的签名算法都是通过有效地结合许多OTS的实例来工作的。然而,对于有状态的基于哈希的签名算法,至关重要的是不要意外地用同一个OTS签名密钥签署多个信息。每次签名后,状态都会被更新,这实质上是在跟踪哪些OTS密钥已经被使用。如果实施不当,管理状态可能很困难,会产生严重后果。如果有多个硬件或设备必须一起工作(如去中心化网络上),做出正确的决策(例如,为了灾难恢复)来安全地管理状态是很重要的。出于这个原因,我们建议与具有基于状态哈希密码学专业知识的公司合作。

还有一些无状态的基于哈希的签名,不需要管理状态,而且更容易实现。不幸的是,无状态签名的效率要低得多:签名要大得多,而且计算量也大得多。此外,无状态签名离标准化还有2-4年的时间。另一方面,有状态的基于哈希的算法有望在一年内实现标准化,而且凭借现实世界的专业知识,它们可以被安全地实现。

三、什么是基于哈希的签名方案?

基于哈希的密码学是由Leslie Lamport和Ralph Merkle在20世纪70年代末首次开发的。自从Merkle的原始方案[5]以来,基于哈希的算法已经变得更加高效。后量子哈希签名的主要竞争者是有状态的算法,如:Multi-Tree eXtended Merkle Signature Scheme(XMSSMT)[3]、Hierarchical Signature System(HSS)[4]、WOTS+,以及无状态算法SPHINCS+[2]。

四、是否有基于哈希值的签名方案的标准?

基于哈希的签名的一个主要优势是对其数学安全性的高度信任。不像其他量子安全的加密算法还有2-4年才能被标准化,有状态的基于哈希的签名方案XMSSMT和HSS已经被加密论坛研究小组(CFRG)研究和批准,并分别作为RFC 8391[3]和RFC 8554[4]发布。

虽然CFRG的RFC在技术上不被认为是标准,但美国国家标准与技术研究院(NIST)最近发布了一份特别出版物草案(NIST SP 800-208 [1]),该草案一旦定稿,将成为XMSSMT和HSS的国家标准。按照NIST标准的惯例,该特别出版物也将成为事实上的国际标准。

五、为什么基于哈希的密码学是安全的?

基于哈希的密码学创建了签名算法,其安全性在数学上是基于选定的加密哈希函数的安全性。

例如,考虑NIST的一套广受信任和无处不在的加密哈希函数Secure Hash Algorithm 2(SHA-2)。SHA-2被认为是安全的,可以抵御拥有当今最强大的超级计算机的攻击,而且它被认为也是量子安全的。这意味着使用SHA-2的基于哈希的签名算法本质上和SHA-2一样安全,也就是说,非常安全。

此外,即使万一SHA-2被破坏,基于哈希的签名的安全性也可以通过切换到另一个未被破坏的哈希函数来恢复。像这些基于哈希的签名的系统,在算法之间切换的成本很低,被称为加密的敏捷性(crypto-agile)。

六、如何使用基于哈希的加密技术?

需要立即行动的用例在许多情况下可以从基于哈希的解决方案中受益。例如,许多长寿命的连接设备,特别是那些在难以到达的地方运行的设备,如卫星,在大规模量子计算机可能存在之后,还需要安全。

出于这个原因,这些设备可以受益于一个被认可的基于哈希的数字签名算法。这样的算法现在就可以被整合,以避免将来在财务上被禁止或在后勤上无法升级。

七、基于哈希的密码学的优势

1、安全性。

基于散列的签名算法的安全性是基于高度信任的散列函数的安全性,如SHA-2。

2、标准化。

有状态的基于哈希的签名算法很可能在今年内被NIST标准化,为此,它们为需要紧急行动的关键资产提供了最好的解决方案。

3、利用当前的硬件。

与量子安全密码学的其他领域不同(这些领域依赖于新型数学),基于散列的签名算法中的大部分计算涉及计算哈希函数。对于大多数NIST批准的哈希函数,这些计算已经在硬件中进行了优化,使基于哈希的实现在长寿命的连接设备中更加实用。

4、公钥小。

相对于其他后量子签名方案,基于哈希的签名公钥可以非常小(小于128字节)。

5、私钥小。

通过存储更少的信息(下面的深入研究部分描述的Merkle树),我们可以减少私钥的大小。事实上,我们可以通过使用一个(32字节)的种子来生成多个值,进一步减少私钥的大小。

6、时间/空间的平衡。

底层哈希树的一部分可以被存储,而其他部分可以在必要时被计算。这导致了在签名期间CPU利用率和内存使用之间的各种权衡。选择一个合适的策略和算法参数在很大程度上取决于目标平台的硬件限制。例如,一个CPU受限的设备(智能电表)会从避免重新计算节点中受益,而一个更快的设备则可以承受。