近日,全球领先的半导体企业ARM推出了关于后量子密码技术的白皮书,从中可以看到国际芯片企业对未来网络空间安全基础技术的前瞻性布局。事实上,包括Intel等国际芯片企业在内,均早已在关注未来芯片的抗量子计算的攻击。这种新的发展趋势与这种理念已经没有直接的关系:即量子计算机何时出现并能够破解现有网络空间信任链基石—第一代公钥加密算法(如RSA/ECC/DH),而是国际芯片企业以量子信息技术为故事背景,正在积极布局新的战略性产业链、生态圈,值得人们高度关注。本公众号对该白皮书主体部分进行了编译,供有兴趣的读者参考。更多相关信息参见噎鸣智库即将推出的《美国量子经济发展联盟中小企业分析报告》。

摘要

量子计算越来越被视为对通信安全的威胁:实现实用量子计算机的快速进展促使人们注意到这些机器长期以来打破当代密码基础设施基础的潜力。虽然这种潜力迄今为止是坚定的理论,但密码学社区正在通过发展后量子 密码学 (PQC) 为这种可能性做准备,也就是说,密码学抵抗了量子计算机不断增强的能力。

在本白皮书中,我们将探讨这一威胁的背景、影响和紧迫性,并总结正在评估的密码方案。我们还提供了建议关于今天应采取哪些步骤为即将到来的变化做好准备,并讨论 ARM 如何接近 PQC。

在两个技术附录中,感兴趣的读者了解了量子计算机如何打破 RSA 和ECC,并概述了基于晶格的密码学背后的主要思想,这是量子安全密码学的一个很有前途的候选者。

更换PQC的时间很短。本文将给出具体的指导。

1 密码学如何保护当今的网络流量—入门

要量子计算机的影响,先从加密技术的角度来看,了解主要用于保护当今网络流量的各种加密技术是非常有用的。本节提供了一个简短的摘要。

1.1通过不安全的链路进行安全的通信

今天广泛的连接技术 (如 BLE、蜂窝、WiFi) 允许通信几乎可以在任何地方发生,在每个人和所有人之间。然而,虽然这些技术为信息交换提供了渠道,但这些渠道是先天不安全的——也就是说,它们缺乏以下部分或全部属性:

  • 保密性:除了指定的通信方外,任何人都无法推断出正在交换的任何信息;

  • 完整性:如果没有检测到修改,信息不能在传输过程中被修改。

  • 认证:双方都知道他们在与谁交谈。

如果我们称具有上述属性的通道为安全通道,那么就会出现了从各种连接技术提供的不安全链路中寻找安全通道的结构的问题。密码学可以被视为为各种这样的结构提供的工具。

1.2对称密码

图 1.1: 对称密码学作为一个黑盒,基于预先共享的机密数据,将一个不安全的通道转换为一个安全的通道。

对称密码学根据预先共享的机密信息的假设构建安全通道即对称密钥。对称密码中包含以下内容:

  • 对称密码,如 AES 或 ChaCha,用对称密钥构造机密信道。

  • 消息认证码 (MAC),如基于散列的 HMAC 或基于密码的 CMAC,可以用对称密钥构造经过身份验证和完整性保护的信道。

  • 组合的认证加密方案,如 AES-GCM 或 ChaCha/Poly 用对称密钥建立安全信道。

  • 历史上,安全通信只能通过对称密码学建立,也就是说,基于通信方预先交换的预先共享的秘密信息。

当然,这种方法的主要问题是首先需要建立共享的对称密钥。

1.3公钥密码

图 1.2: 公钥签名作为一个黑箱,根据预先共享的真实数据,将不安全的通道转换为经过身份验证的通道。

公钥密码构建安全通道时没有任何机密性假设(例如存在预共享对称密钥)。

  • RSA-PSS、ECDSA 或 EdDSA 等签名方案从与每个通信方相关联的真实公共数据中构建经过身份验证和完整性保护的通道,称为公钥。

  • 关键建立协议,如 (EC)DHE 从身份验证和完整性保护通道构建共享的机密数据。

这种结构首先存在是非常值得注意的:例如,一个关键的建立协议类似于一个神奇的对话,通过沟通双方就被动听者无法理解的事情达成一致。

可靠地分发公钥的手段是公钥基础设施 (PKI)。最流行的 PKI 是 X.509证书链,它使用签名和少量在带外分发的公钥来引导公钥分发。

1.4对称密码和公钥密码的结合

结合对称和公钥密码学提供的结构,得出了以下在不安全链路上建立安全通信信道的两步方案:

  • 基于公钥密码学的初始认证和密钥建立阶段可以验证通信中的一方或双方,并在他们之间建立一个共享的秘密。

  • 实际通信发生在批量加密阶段,使用建立的对称密钥使用对称加密构造安全通道。

图 1.3: 密钥建立为黑箱,将经过身份验证的通道转换为共享的机密数据

图 1.4: 结合公钥密码和非对称密码,从不安全的通信通道中建立安全的通信通道。

例如,这种方法是由流行的传输层安全 (TLS) 协议所采用的,并且遵循 TLS 术语,初始的密钥建立阶段通常被称为握手。在这种语言中,上面的两步方法本质上是说:先握手,然后交谈。

1.5如何知道是否安全?

密码方案通常不能被证明是绝对安全的。相反,现代密码学发展了精确的安全概念,并使用这些概念来正式解释一个特定方案所声称的安全是如何遵循一个潜在的硬度假设的。这种硬度假设通常是指一个特定的计算问题不能被有效地解决,对其有效性的信任来自于花在它们身上的时间和精力,而对它们的硬度的正式证明则被认为是不可行的。例如,RSA 家族的方案依赖于整数分解的多项式时间算法。

由于算法研究的进步和计算能力的提高,实际安全性逐渐降低,密码方案的寿命通常是有限的:

  • 哈希函数 SHA-1 在 1995 年标准化,2004 年发现了一次理论碰撞攻击, 最终在 2017 年以计算能力的提高付诸实践。

  • 越来越大的 RSA 大数分级挑战正在被解决(最新的一个是 2020 年 2 月829 位模量的分解),提高了被认为是安全使用 RSA 的标准。

这种安全性的逐渐退化在某种程度上是可以预料到的,有时,正如 RSA 的例子一样,可以被增加的底层方案的密钥大小来抵消。

然而量子计算对密码的影响性质不同:安全的经验证据的原因是随着量子计算的出现是后者引入了全新的计算能力,没有被经典算法研究,其限制因此仍有待理解。

2 量子计算如何影响密码学

2.1新的计算模型

量子计算使用现象从量子物理学来执行计算,和量子计算模型是一个抽象的状态和能力的量子计算允许我们忽略物理细节及其可实现性——以同样的方式,例如,图灵机的模型提供了一种方法来研究经典计算独立于其物理实现。这开启了量子算法研究的一个新领域,特别是一个问题出现了,量子计算模型在多大程度上允许算法以比经典算法更少的操作来解决问题。

2.2对公钥加密技术的影响

1994 年,Peter Shor发现量子计算模型允许构建一个有效的整数分解算法,这是一个非常显著的见解,有多种原因:

  • 从理论上讲,它展示了一个没有有效的经典算法但假设的量子计算机能够有效解决的问题,证明了量子计算的优越性。

  • 实际上,值得注意的是,在量子计算机上被证明可以显著加速的问题恰好是广泛使用的 RSA 密码系统背后的问题

此外,Shor 还展示了一种有效的量子算法来解决流行的 (EC)DHE 密钥交换机制背后的离散对数问题。

因此,Shor 的算法证明了我们建立安全通信信道的能力所依赖的最流行的公钥密码系统,在量子计算的假设模型中不再是安全的。这一发现引发了人们对量子算法的兴趣,以及如何真正构建量子计算机的问题。

如果增加密钥尺寸大小,由于增加相应的计算能力,这可以是一个可接受的响应方法,但会逐步减退实际安全,不适用于 RSA 和 (EC)DHE 量子安全。

对于感兴趣的读者,“附录 A:量子计算机如何威胁 RSA 和 ECC”提供了量子计算模型的高级描述,以及 Shor 的算法如何打破 RSA 和 (EC)DHE 的概述。

2.3对于对称密码学的影响

量子计算对对称密码学的影响似乎没有那么挑剔。Grover 的搜索算法是一种量子算法,在 √n 步中对 n 个对象进行非结构化搜索—对完全遍历的经典最优 n 步的二次加速。这意味着对密码方案的暴力攻击,例如在整个密钥空间中搜索,在量子计算机上可能比在经典计算机上快二次速度。因此,在量子计算机存在的情况下,密钥的大小可能需要加倍,例如通过使用 AES-256 来代替 AES-128。然而,除此之外,即使在量子计算的事实中,建立在构造对称密码的技术似乎仍然有效。这同样适用于哈希函数的安全性:有一些用于碰撞搜索的量子算法,它们可能比经典算法多项式地快,但方案和技术本身似乎仍然有效。

2.4 总结

今天的网络通信是通过公钥密码学和对称密码学的联合使用来确保安全的:前者建立身份验证和共享秘密,后者执行批量加密。

量子计算威胁到目前正在使用的主要公钥密码系统 (RSA 和 ECC),而它似乎只会以一种很小的方式影响对称密码学 (如 AES 或 SHA)。

假设可以建立实际的量子计算机—我们将在下面讨论其可行性—因此,有必要找到和部署能够承受量子计算模型进行身份验证和密钥建立的密码系统。这种“量子安全”密码学的发展被称为后量子密码学 (PQC)。

2.4.1 后量子密码与量子密码

后量子密码学与量子密码学有区别,量子密码学涉及利用量子现象的密码算法。反过来,后量子密码学关注的是在经典计算机上运行的算法,即使用量子计算机也无法被破坏。在本文中,我们将不讨论量子密码学。

对攻击密码学方案的量子算法的研究被称为(后)量子密码分析。

3 量子计算机的影响何时到来?

面对实用的量子计算,今天的公钥密码学将需要被取代。但我们什么时候需要采取行动,我们会准备好吗?回答这些问题的原因主要取决于三个因素:

  • 待保护系统的特性

  • 实际量子计算的进展

  • 后量子密码学的发展

本节更详细地描述了每个方面,但以下是在机密性方面的底线:

假设我们要求我们的数据保密 c 年,并且量子计算机可能在 q 年内破坏 RSA/ECC。如果是 c > q,那我们今天就有麻烦了。否则,我们需要在接下来的 q 年内过渡到 PQC。所以,如果 s > q − c 是让 PQC 复活所需的时间,那么我们就有麻烦了。或者,用米歇尔·莫斯卡的话来说:如果 c + s > q,那就需要担心我们通信系统的安全。

那么,我们应该担心吗?保密要求 c 取决于数据,而对 q 和 s 的估计数很难获得—我们将在下面详细介绍。然而,谨慎的估计,如 c = 20(20 年的数据保密)和 s = 10(PQC 标准化和部署 10 年) 表明,即使有 q = 30(量子计算机在 30 年内打破 RSA 和 ECC),现在也是时候考虑和准备过渡到PQC 了。

3.1保护什么?

3.1.1传输过程中数据保密性

如果密钥材料后来通过信息泄露或通过对底层加密方案的有效攻击而暴露,那么通过加密通道发送的数据可能会被拦截、存储和追溯解密。因此,一旦可以想象在数据需要保密的时间框架内出现对底层密码学的攻击,机密性就会面临风险。

重要的是要理解,防止这种违反机密性的行为需要提前改变密码系统 远在它们真正可能被实际攻击之前。以下给出一示例。

例 0.1. 假设一个系统使用一个在不安全通道上运行的安全协议,例如互联网上的 TLS。假设数据必须在 20 年内保密,并且在 25 年内对协议或潜在密码学的实际威胁是可能的。然后,该系统需要在未来不迟于5年内进行升级,以保持它将处理的数据的机密性。如果这些数据必须保密超过 25 年,那么今天就会面临风险,系统应该立即升级。

具体地说,量子计算使当今突出的关键建立机制 RSA 和 (EC)DHE 的安全性处于危险之中。因此,一旦这些方案所保护的数据被要求的保密时间超过量子计算最小可行的实际时间,就必须替换这些方案。我们将在下面的量子计算的实用性中研究这一点。

3.1.2处于静止状态下的数据的机密性

除了在 TLS 等协议中使用的短暂加密的安全性外,我们还必须考虑在静止时对加密数据的机密性。这些数据通常会用对称加密方案进行加密,正如在对对称密码学的影响中所讨论的,这些方案目前预计在面对量子计算时原则上仍然合适,但可能需要增加密钥大小。

因此,如果下列条件中 (a) 和 (b.1) 或 (b.2) 同时成立,加密数据的保密性都存在风险:

(a)攻击者访问了加密数据本身(例如,通过数据泄露)或拦截了通信加密数据的非量子安全通道 (例如,存储加密数据的系统之间基于 RSA/ECC 的 TLS 通信)。

(b.1) 攻击者还拦截了一个非量子安全通道,建立或通信保护加密数据的对称密钥。

(b.2) 对称加密方案使用密钥大小,这可能使它容易受到多项式改进的量子算法的影响,如 Grover 算法,例如 AES-128。

防止 (b.1) 是保护传输中的数据的一个实例:在静止数据的寿命超过实际量子攻击的时间之前的某个时刻,它需要使用仅通过量子安全加密机制建立和通信的密钥重新加密。如果重新建立的密钥足够长,这也可以防止(b.2)。请注意,在这种方法中,加密的数据块本身不必被认为是机密的。

3.1.3数据存取

如果公开了密钥材料,或者发现了对底层原语的攻击,那么身份验证机制将来可能无法提供访问控制。与此同时,量子计算威胁到今天突出的签名方案 RSA 和 (EC)DSA,因此当量子计算成为实际时,必须确保这些方案不再使用。

为了减轻对身份验证的威胁,身份验证软件应保持可升级性,以便在实际攻击可用时允许进行替换。

请注意,与对机密性的威胁相比,没有必要提前升级软件。然而,在软件升级的地方,今天需要部署量子安全身份验证机制。

例 0.2. 考虑一个长寿的物联网设备。为了允许软件在一段时间内打补丁, 系统允许远程固件升级。固件本身必须由供应商签署,才能被设备接受,而特殊的固件验证码负责检查签名的有效性。如果这个固件验证码本身是不可变的,那么今天就需要部署一个量子安全签名机制。部分问题:固件更新详细说明了这一点。

3.1.4量子计算的实用性

当谷歌宣布量子霸主地位时,量子计算得到了广泛的关注:他们建造了 54 个量子比特的量子计算机以执行计算任务,人们认为没有可用的经典计算机能够在10000 年内解决这个问题。

虽然量子霸权是一个重要的里程碑,但今天的量子计算机仍然远不能打破 RSA 或 ECC。具体来说,从工程的角度来看,需要克服以下问题,以达到量子计算机可以运行复杂的量子算法,如 Shor 的算法

  • 控制更多的物理量子比特

  • 通过量子纠错来控制操作过程中积累的错误,理想情况下会产生由一组物理量子位构建的无错误逻辑量子位。

  • 为中间结果提供量子随机存取存储器 (QRAM),并将经典数据有效地转换为量子态。

解决这些挑战将是一个非常昂贵的、多年的过程、资金和热情,这也将取决于何时“实际的”量子霸权将证明量子计算可以解决具有商业价值的计算问题。有趣的是,向后量子密码学的过渡可能是 PQC 所保护的量子计算发展中的一种削弱力量。

最终,有太多的技术、经济和政治上的未知因素,无法准确预测我们什么时候会看到量子计算机能够运行 Shor 的算法,但估计的范围从最坏情况下的 10 年到最好情况下的 30 年或更长时间不等。虽然这似乎很遥远,但重要的是要认识到相同数量级的维度适用于数据和通信的保密要求—正如上一节所讨论的,您在保护什么?–和向后量子密码学的发展和过渡—我们将在下一节中讨论。

3.2量子安全密码学的可用性

考虑到一个系统的安全要求,以及对量子计算何时可以打破 RSA/ECC 的猜测,我们可以推断后量子密码学何时需要可用并投入使用。例如,如果我们预测量子计算机将在 30 年内运行 Shor 的算法,并且我们希望我们的数据在 25 年内保持保密,那么后量子密码学将在未来 5 年内提供。但是可用性需要什么呢?

3.2.1将密码学带入生活

引入密码变化是一个长期的、多方面的过程,至少包括以下内容:

  • 密码研究

  • 标准化

  • 安全实现的开发

  • 平台开发 (如加速器或 ISA)

  • 集成到现有的基础设施

  • 公共意识

  • 教育

  • 部署

更重要的是,这些方面的大部分与“量子安全”密码学的提议数量相增加, 我们将看到,其中有几十个。换句话说:开发和过渡到 PQC 需要做很多工作。

为了指导和结构这些平行流的研究后量子密码和缩小 PQC 原语的范围,各个标准机构推出了各种项目、工作组和竞争性 PQC候选算法,最突出的是 NIST的后量子密码PQC 项目。

3.2.2 NIST PQC 项目概述

2016 年 12 月,美国国家标准与技术协会 (NIST) 启动了 PQC 项目, 指导在量子计算机出现时公共密钥密码安全的开发、评估和标准化。我们将把这个过程称为 NISTPQC 项目。其目标是实现一套量子安全密钥封装和签名方案的标准化。

背景

NIST 有引导密码标准化进程的历史:例如 2001 年将 Rijndael 块密码标准化为 AES,2015 年将 Keccak 哈希函数标准化为 SHA-3。NIST 目前还开展了轻量级加密竞赛以及下文所述的 NIST 基于哈希的签名项目。

时间表

NIST PQC 项目时间表如下:

  • 征集建议书:12 月 16 日至 11 月 17 日

  • 第一轮:12 月 17 日至 1 月 19 日,69 份完整的意见书。

  • 第二轮:1 月 19 日至 7 月 20 日,剩下 26 名候选人。

  • 第三轮:2020 年 7 月以来,剩下 15 名候选人,7 名“入围者”,8 名 “候补候选人”。

  • 来自决赛选手赛道的标准草案:22-23个算法候选者。

  • 第四轮:待定,重点关注“备用”

  • 潜在标准修订:待定

工作现状和预期结果

2020 年 7 月 22 日,NIST 宣布了 NIST PQC 项目第三轮的 15 名候选人,其分为两个独立的赛道:

一个“最终参与者”赛道,包括 7 个方案:4 个密钥封装机制和 3 个签名方案。

一个“替代”轨道,包括 8 个方案:5 个密钥封装机制和 3 个签名方案。在第三轮结束时,NIST 预计将标准化决赛中的一个或两个 KEM 和一个或两个签名方案。候补赛道的候选人将在第四轮中接受进一步分析,并可能在稍后加入标准。考虑到先前项目的影响,例如 AES 和 SHA-3 的标准化,预计 NIST PQC 项目的结果将对广泛使用 PQC 方案产生重大影响。

3.2.3 NIST 基于哈希的签名项目问题:固件更新

如“保护什么?”一节中所述,在部署无法更新的长寿命系统时,可能需要使用 PQC。

长寿命不可变身份验证的一个重要示例出现在具有固件更新机制的物联网设备的部署中:在这种情况下,固件验证代码本身可能不可更新。为了防止这些设备在量子计算机成为现实时受到破坏,固件更新应使用量子安全信号机制。

幸运的是,虽然 NIST PQC 项目正在开发通用量子安全方案,但很少使用固件签名,能考虑使用受限但更成熟的签名方案称为状态签名。

项目

NIST 运行有状态基于哈希签名项目,其目标是标准化一个或多个有状态基于哈希的签名方案。这些都是非常成熟的签名方案,但它们有两个严重的限制:

  • 私钥随着每个签名的发展而演变,同一私钥的偶然重复使用破坏了方案的安全性。

  • 有限使用的:在预定数量的签名和相关私钥演进之后,私钥变得不可用。

虽然这些适当的标记使得有状态基于哈希的签名不适用于许多领域—将其排除在 NIST PQC 项目之外—但它们在上述用例中可能是可接受的。

预期结果

预期该项目将导致 LMS 和 XMS 两个方案的标准化,NIST 已经发布了一份标准草案。

3.2.4 NIST PQC 项目只是一个开始

标准只是向 PQC 过渡的一步:需要提供硬件和软件实现,将 PQC 集成到开发和实施的 TLS 和 X.509 等标准中,并以各种规模运行测试。然后, 随着公众对 PQC 需求的充分认识,其将逐渐进入主流使用。

这一过程的潜力不应被低估:例如,ECC 于 1984 年提出,1999 年和2000 年被标准化为一个独立的原始版本,2006 年集成到 TLS 中,尽管与RSA 相比它的密钥更小,计算复杂度更低,但它花了十多年时间才得到广泛支持和使用。即使在今天,Internet 上的大多数服务器证书都使用 RSA 签名。更令人鼓舞的例子是于 2018 年标准化的 TLS 1.3,截至 2020 年 8 月,已获得 32% 的主要 web 服务器支持7。然而,与 ECC 和 TLS 1.3 相比,PQC 对性能的影响是负面的(请参阅资源使用:没有“一刀切”的做法),这可能会进一步降低其被采用速度。

3.2.5 PQC 库

在对 PQC 原语进行基准测试时,有许多库可供选择,包括:

  • libpqcrypto:整合了 NIST PQC 提交的实现,提供了统一的 API 和测试框架。

  • 它是 PQCRYPTO 项目的一部分。

  • OpenQuantumSafe(OQS):提供 PQC 库 libOQS,将受支持的 PQC原语集成到 OpenSSL 和 OpenSSH 中。

  • pqm4:是 Cortex-M4 的 PQC 库,包括 STM32F4 发现板的测试和基准测试框架。

  • 也是 PQCRYPTO 项目的一部分。

  • Supercp:基准测试框架包含对 PQC 原语的众多优化实现。

此列表仅供读者参考,并非 Arm 的认可。

4 后量子密码学的分类学

本节中概述了已建议用于后量子密码学的主要密码原语。目的只是为了让读者对 PQC 的不同类型有一个印象,并不假设不同类的名称对读者有意义。对某些技术内容感兴趣的读者可在“附录 B:格密码导论”中找到对基于格的密码学背后思想的简短介绍。

4.1概述

在 NIST PQC 项目期间提出了许多量子安全公钥加密方案,有希望的候选方案大致可分为以下几类:

  • 格密码 *(非结构、结构 *)

  • 基于编码(Goppa 编码 *、Quasi-Cyclic 编码)

  • 超奇异椭圆曲线密码

  • 多变量密码 *

  • 基于对称原语的公钥密码

NIST PQC 项目第 3 轮中剩余的 15 名候选人涵盖了所有这些类别,但只有标有 * 的类别有第 3 轮决赛中的候选人代表—见图4.1。

可以看出,NIST PQC 项目的 7 个决赛入围者中有 5 个是基于格的结构化加密算法,并且很有可能至少一个基于格的结构化密钥封装算法和一个基于格的结构化签名方案将在第三轮结束时标准化。

4.2成熟度

大多数 PQC 系列在实际意义上是新的,它们目前没有得到广泛使用, 也没有建立在今天流行的密码学的基础上—唯一的例外是基于对称原语 的公钥密码学,如基于哈希的签名。然而,从理论上讲,其都早于 NIST PQC 项目多年来对后量子密码术的关注:

  • 基于编码的密码学可以追溯到 McElice 在 1978 年的工作中使用所谓的 Goppa 代码。

    它被认为是安全的,但由于其密钥较大,尚未得到广泛使用。

    2005 年首次考虑使用准循环码来减小密钥大小 。

  • 基于哈希的签名(属于最后一类)可以追溯到 1979 年的Lamport Diffie和 Merkle,它们很有吸引力,因为安全性仅基于安全哈希函数。

  • 基于格的“非结构化”密码学起源于 1996 年 Ajtai 的一篇开创性论文[2]。

    著名的“容错学习”(LWE)问题是许多基于格的 PQC 方案的核心,由 Regev 于 2005 年提出。

  • 非结构化格的更有效的兄弟是所谓的“结构化”格。

    NTRU 系列密码方案于 1996 年推出,而 LWE 问题的数论“环上带错学习”(RLWE)的变体于 2010 年首次考虑用于密码目的。

    代价是对硬度假设的研究较少,并且最近在该领域取得了量子算法进展。

  • 超奇异椭圆曲线密码学是一个相对年轻的领域:

    2011 年首次提出将超奇异椭圆曲线用于密码学 。

  • 多变量密码学由 Matsumoto 和 Imai 于 1988 年 首次提出,该领域的一些 NIST的 PQC 候选者的主要思想是在 1990 年代后期发展起来的。

因此,许多 PQC 计划背后的想法并不新鲜。然而,为 NIST PQC 项目提议的大多数具体实例都很年轻,仔细审查每个候选者的参数和安全参数是一项耗时和资源消耗的协作任务。在 NIST PQC 项目的前两轮,审查过程发现了提议的 PQC 计划中的许多问题,并且很可能在 NIST PQC 项目的其余部分继续这样做。

除了加密方案的抽象安全性之外,还出现了实现安全性问题,例如:哪些方案适用于抗侧信道(例如,恒定时间)实现?什么是潜在的陷阱?我们如何测试或验证实现的正确性?回答这些问题对于开发值得信赖的 PQC 实施和活跃的研究领域至关重要。

在审查过程对一组 PQC 方案及其实现产生足够的信心之前,必须非常谨慎地使用如今的后量子密码学。

4.2.1混合模式

图 4.2: 来自 NIST PQC 项目第 3 轮的密钥封装算法的公钥大小和封装密钥大小。填充的标记代表决赛入围的赛道。

在今天或不久的将来,如果长期数据需要通过量子安全加密机制进行保护,则应使用所谓的混合方案。这些混合方案将 ECC 等经典方案与一个或多个推测量子安全的 PQC 方案相结合,因此预计至少与所选经典方案一样安全。

将这种混合模式集成到安全协议中的各种标准,如 TLS或X.509都在积极开发中。

4.3资源使用:没有“一刀切”的做法

图 4.3: NIST PQC 项目第三轮中密钥分配机制的公钥大小和秘密密钥大小。填充标记代表决赛赛道。

在本节中,我们调查了上述 PQC 系列的性能特征。结论是,在加密材料的大小和性能方面,没有与当前公钥加密相近的 PQC 候选者。相反,每个家庭都有其优势和劣势,使其更适合某些应用程序,而不太适合其他应用程序。

作为参考,我们考虑 RSA 和 ECC:RSA-2048 使用大小为 256B 的密钥和密文/签名,而对于 Curve25519 和 Ed25519 小到 32B。此外,优化的实现允许在内存和计算能力都受到限制的微控制器上使用 ECC。

现在来看 PQC 的编号:图4.2,4.3,4.4,4.5,4.6给出了 NIST PQC 项目第三轮两个赛道中考虑的密钥封装和签名方案的资源特征,按方案系列分组。

图 4.4: NISTPQC 项目第 3 轮中的签名方案的公钥大小和签名大小。填充的标记代表了进入决赛的赛道。

注意:这些图表下方的数字是针对一个特定平台的。此外,NIST PQC 候选者正在不断发展,无论是在其规范方面还是在针对各种平台的优化实施方面。不同的平台和/或更好的(未来)实施可能会导致改进。

可以进行以下粗略观察:

•就加密材料的大小而言,基于同构的加密最接近 RSA/ECC,SIKE- p503 的密钥和密文大小约为 400B,缺点是计算复杂度大。

  • 基于代码的加密方案通常具有较大的公钥(大部分在 10kB 到 1MB 之间),但使用较小的私钥或密文。

    例如,McEliece 方案具有较短的 128B 密文,而基于准循环码的方案具有较短的私钥。

  • 大多数多变量签名具有较大的公钥(介于 10kB 和 1MB 之间),但提供非常小的签名。

  • 结构化格密码已经产生了大量 PQC 提案,在任何指标上都具有可接受的性能特征。

  • 对基于非结构化格的候选人,它们为更强大的数学基础付出的代价是与结构化的算法相比,它们的表现会付出约为一个数量级的代价。

  • 基于哈希的签名方案具有较小的公钥,但签名相对较大。

图 4.5: NIST PQC 项目第三轮的关键基因和关键封装机制的关键封装周期, 在 Cortex-A53 上测量。填充标记代表决赛赛道。

得出的结论是,对于每个度量,都有候选在该度量中表现良好,但没有候选 PQC方案在所有这些度量中都接近于经典公钥密码的特征。

仅从资源特征来看,结构化格基方案似乎达到了一个最佳点:它们的计算复杂度在 ECC 范围内,几 个kB 的密钥可能适用于大多数形式,尽管比 ECC 的密钥大一个数量级以上。

5. 现在该做什么?

量子计算威胁着当今使用的公钥密码体制,在 NIST PQC 项目的指导下,正在开发和审议各种量子安全密码方案。然而,预计标准草案不会在2022/2023 年之前生效,且虽然 NIST PQC 项目第三轮的候选方案已大幅减少,但仍无法预测哪一个精确方案将最终获胜。

在这种不确定的状态下,部署哪些静态绑定到使用特定 PQC 原语的系统为时过早:这样做不仅会因为密码分析的推进而导致系统无法达到其安全目标的风险,而且如果所选方案不占上风,还会危及互操作性。正式建议:不要依赖预先标准化的加密技术。

图 4.6: NIST PQC 项目第三轮中签名方案的密钥生成和签名周期,在Cortex-A53 上测量。填充标记代表决赛赛道。

5.1第一步:了解你的数据

定义并跟踪哪些数据需要保护以及需要保密多长时间。了解哪些系统涉及数据的生成、处理和通信,并确定这些系统的寿命。最后,评估哪些密钥生成、加密和身份验证方案可以防止未经请求的访问,并确定它们的生命周期。

这种数据的可用性和算法“标签上的过期”可用于实现安全基础结构, 确保数据受到密码机制的保护,密码机制在数据的生命周期内是安全的。其结果是,系统将符合标准:

  • 在数据寿命超过实际量子攻击时间之前,切换到量子安全方案,以建立用于保密数据通信的密钥。

  • 在经典认证方案易受实际量子攻击之前,切换到量子安全认证方案。

  • 在数据生命周期超过实际量子攻击时间之前,使用通过量子安全方案建立和通信的新密钥重新加密静止的加密数据。

看看“你在保护什么?”了解更多信息。

5.2 第二步:加密敏捷性

确保基础安全架构支持更改可用的加密方案及其安全评估。例如,物联网系统的设计者应确保设备支持远程固件升级。

5.3 第三步:过度提供资源

只有当您的系统能够将未来的加密原语通用化时,加密灵活性才有用。正如我们在资源使用方面所看到的:没有“一刀切”的方案,PQC 比经典密码更需要资源,因此为系统提供足够的资源非常重要,这样它们就可以承载任何盛行的 PQC 方案。

NIST PQC 项目第三轮很可能会导致结构化格密码方案的标准化:其他第三轮入围者拥有大型公钥,这限制了他们的使用,而 NIST 的目标是提供覆盖广泛应用的方案。基于结构化格的密码方案具有与 ECC 类似的性能,即使在较小的系统上,几 kB 的密钥似乎也是可以接受的:

建议:至少,建议对系统进行过度配置,以便能够主办基于结构化格密码方案的第三轮决赛。

然而,正如人们以前所做的那样,基于结构化格密码的方案相对较小的密钥大小依赖于假设,而假设在量子计算机上的硬度尚未得到很好的理解, 最近已经取得了进展。

建议:在可能的情况下,我们建议对系统进行过度配置,以便也能够承载 NIST PQC 项目第三轮的备选轨道,特别是非结构化格的密钥封装算法FrodoKEM 或基于哈希的签名算法 SPHINCS+。

5.4 第四步:使用基于状态哈希的签名

对于不可变身份验证,对于无法更新的身份验证机制(如不可变固件验证码),请使用基于状态哈希的签名 LMS/XMS。请参阅问题:固件更新。

5.5 第五步:试用 PQC

评估加密灵活性和在测试环境中运行各种 PQC 原语以及安全基础设施(如基于它们构建的 TLS)的能力。

混合模式甚至可能适合现场使用11。但是,在使用混合实现时,不要忘记实现安全性,并确保底层的经典实现已经建立并被认为是安全的。

有关参考信息,请参见NIST PQC 库。

有兴趣的读者可以参阅ARM 白皮书原件:

https://community.arm.com/arm-research/m/resources/1002

声明:本文来自量子计算最前沿,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。