Quantum key distribution in the cloud

作者:禅与计算机程序设计艺术

1.简介

Quantum Key Distribution (QKD) 是一种加密通信协议,允许双方建立安全的密钥配对过程。它利用量子技术和密码学原理进行安全可信的数据传输,同时减少通信链路上的耗费。传统的 RSA、ECC 或 Diffie-Hellman 密钥交换协议都依赖于密钥生成函数(key generation function),而 QKD 使用量子计算技术来生成共享密钥。其优点主要在于低延迟、高效率、安全性等。目前主流的云服务厂商如 AWS、Azure 和 Google Cloud Platform 提供了基于 QKD 的密钥管理方案,比如 AWS Key Management Service(KMS)、Google Cloud HSM、Microsoft Azure Key Vault。

本文将详细介绍 QKD 技术及其实现。首先,介绍量子通信网络和 QKD 技术基础,包括纠错编码、Bell 态、量子比特、量子门、量子纠缠、量子线路、量子资源等概念和术语。然后,介绍 AWS KMS 对 QKD 的支持,并着重阐述其工作机制和原理。最后,介绍开源社区提供的端到端加密解决方案 Open Quantum Safe 来探讨 QKD 在云环境中的应用。

2.基本概念术语说明

2.1. 量子通信网络

量子通信网络是指利用量子技术构建的通信系统。传统的通信系统依赖于电磁波来传输信息,而量子通信则依赖于量子信道。量子通信网络通常由量子结点或量子节点组成,每个节点可以发送或接收一个或多个量子比特的信息。

量子通信网络中最主要的两个要素是量子结点和量子信道。量子结点一般是具有固定的位置和方向的物理实验设备,可以用于存储和处理量子信息。它们可以是超导量子管、光子照耦器或原子核等。

量子信道是一个利用无线电或射频技术构建的无结构介质,其长度可以达到几千公里甚至上万公里。它可以容纳数量极大的量子比特,因此可以用来传送大量的量子信息。量子信道可以采用光纤、纳米管、激光雷达等多种方式构建。量子通信网络还需要考虑保护措施,防止量子结点被篡改、损坏或丢失等情况。

2.2. Bell 态和量子比特

Bell 态是一个特殊的量子态,由两个叠加态构成,分别称作 Psi+ 和 Psi-,它们的叠加产生了一个新的量子态。在量子通信网络中,Bell 态也称为 EPR 态(Entangled Pair of Photons)。EPR 态可用于量子密钥配对协议,其中 Alice 和 Bob 通过相互作用产生 EPR 态,然后通过量子通信网络发送各自的密钥。EPR 态是任意两个独立的 Bell 态的叠加。

量子比特是量子通信网络中的重要通信单元,可以用于存储和传输信息。每一个量子比特都是一个叠加态,具备两个量子态,分别为 |0〉和 |1〉,这两种态是通过叠加而得来的。我们把这样的态称为 qubit。

一个量子比特可以看做两个寄存器的逻辑组合,其中第一寄存器是状态 |0> 或 |1>,第二个寄存器是受控量子门所作用下的运算结果。这两个寄存器共同决定了该量子比特的状态。量子通信网络中的消息就是这些量子比特之间的相互作用。

2.3. 量子门

量子门是量子通信网络中最基本的组件。任何量子门都可以视为一个由两部分组成的矩阵操作。第一部分是一个控制盒子,用于选择性地激活或关闭量子比特。第二部分是一个运算盒子,用以对量子比特的态进行变换。

目前已经提出了多种量子门,比如 CX、CZ、Hadamard、Pauli 门等。这些门都是为了实现特定目的设计的。例如,CX 门可以实现 CNOT 逻辑门的功能,CZ 门则可以实现 CZ 逻辑门的功能。当然,量子门还有很多其他类型,它们的作用也各不相同。

扫描二维码关注公众号,回复: 16966562 查看本文章

2.4. 量子纠缠

量子纠缠(quantum entanglement)是指量子通信网络中两个量子比特之间存在某种关联,使得它们之间传递的信息会相互影响。当两个量子比特之间存在纠缠时,它们之间的通信就不再是单向且封闭的,而是可以相互传递信息。

量子纠缠是通过作用特定的量子门来实现的。目前,已有的量子纠缠协议包括 Z 推定(Z-guessing protocol)、BBPSSW 协议、CPHG 协议等。这些协议都基于特定的量子纠缠模型,根据协议规则,选择相应的量子门作为纠缠连接的媒介。

2.5. 量子线路

量子线路(quantum circuit)是量子通信网络中经典比特与量子比特之间的路径。量子线路可以由一系列的量子门以及对应输入输出的量子比特所构成。一条量子线路可以看做是传播、收集、处理量子信息的一个环节。

2.6. 量子资源

量子资源是指可以在实际生产或模拟时使用的物理和算力资源。对于量子通信网络,量子资源主要包括以下几个方面:

  1. 可用的量子比特数量:一个量子结点可以搭建起来的量子比特数量是有限的。目前,主流量子通信网络都采用原子核或集成电路作为量子结点。每条量子线路可以搭建多达数百或数千个量子比特,因此量子资源是很宝贵的。

  2. 可用的量子信道数量:一个量子结点可以链接到的量子信道数量也是有限的。目前,基于光子的量子通信网络或许能够容纳数万条量子信道,但仍然需要大量投资才能获得。

  3. 可编程的量子计算机:据估计,未来三到五年内,在量子通信领域中,量子计算机的数量可能会超过一般的类ical计算机。越来越多的研究人员正致力于开发具有量子计算能力的芯片。

3. 云服务商 KMS 对 QKD 的支持

Amazon Web Services (AWS)提供的 KMS 服务即实现了 AWS 云平台的基于 QKD 的密钥管理方案。KMS 可以帮助用户在云端创建和管理密钥,并且提供完整的 API 和工具集,方便用户使用。

3.1. KMS 服务架构

KMS 服务的架构图如下:

KMS 服务由四个主要部分组成:

  1. 用户界面:提供 KMS 服务的用户接口,包括管理密钥的功能。

  2. 请求处理器:接收客户端请求,并将请求转化为后端处理。

  3. 密钥生成器:用于生成 ECDSA、RSA 或 Diffie-Hellman 密钥对。

  4. 密钥存储:存储密钥的地方。密钥可以保存到硬件安全模块(HSM)、软件密钥存储库中或云中。

3.2. KMS 密钥生成流程

KMS 的密钥生成流程如下:

  1. 创建密钥材料:客户可以使用 KMS SDK、CLI 或 console 创建密钥材料,如 ECC 或 RSA 公钥/私钥对,或者 X25519 椭圆曲线公钥。这些材料包含原始数据,以及签名和加密的哈希值。

  2. 将密钥材料提交给 KMS:客户发送包含密钥材料的 HTTP 请求,请求创建一个新密钥。

  3. 生成密钥对:KMS 会生成随机数,用客户提供的原始数据和随机数生成密钥。

  4. 返回密钥:KMS 会返回一个含有公钥、私钥、CMK ID 的密钥,以及过期时间、密钥的 ARN(Amazon Resource Name)。

3.3. KMS 密钥存储

KMS 支持三种密钥存储类型:

  1. AWS KMS Managed Keys:这是默认的密钥存储类型。它存储在 AWS 内部的 HSM 中,用以实现最高级别的安全。

  2. Customer Master Keys (CMKs):这是另一种可选的密钥存储类型。CMK 只是一组加密密钥,无需考虑数据访问权限。客户可以自由地将 CMK 放在不同的区域和账户中。

  3. External keys stored in Amazon S3 buckets:这种类型的密钥存储可以让客户托管自己的密钥。客户可以将自己的密钥存储在 Amazon S3 bucket 中,然后 KMS 会读取密钥并管理它们。

3.4. KMS 服务策略

KMS 服务支持两种策略:

  1. IAM Policies:IAM policies 控制了 KMS 服务的访问权限。这些策略可以针对指定的 IAM user 或 role 来指定,也可以针对整个 AWS account 来指定。

  2. Key Policy:Key policy 指定了密钥的访问权限和使用限制。当使用者试图对某个密钥执行操作时,KMS 会检查其策略是否允许其执行此操作。

3.5. 密钥轮换

KMS 支持自动密钥轮换,并在密钥过期之前提前通知用户。密钥轮换过程如下:

  1. KMS 检查到密钥即将过期。

  2. KMS 将下一个密钥标记为 Active,并禁用当前密钥。

  3. 如果使用者尝试使用过期密钥,KMS 会拒绝他们的请求。

  4. 过期密钥在指定的周期后自动删除。

4. Open Quantum Safe 端到端加密解决方案

Open Quantum Safe 是一个开源项目,旨在开发安全的、开源的、可商用的量子通信方案。它提供了免费的 SDK 和参考实现,支持各种量子通信协议,包括 BB84、E91、MWPM 等。

4.1. BB84 量子密钥配对协议

BB84 量子密钥配对协议(Bell–Bennett–Booker,BB84)是第一个量子密钥配对协议。它利用两个参与方在 Bell 门的帮助下交换加密密钥。BB84 的特点是易于理解、实施,且具有很强的抗干扰能力。

4.2. BB84 的安全性

BB84 量子密钥配对协议是第一个经过验证的量子密钥配对协议,具有良好的安全性。该协议利用了量子通信网络,可以在没有实体参与方参与的情况下完成密钥配对。此外,协议也具备较高的抗干扰能力和可靠性。但是,BB84 不能保证一定可信任第三方。因此,该协议一般只适用于隐蔽通信场景。

4.3. OQS 对 BB84 的实现

OQS 项目提供了 BB84 量子密钥配对协议的参考实现。它的实现使用 OpenSSL、LibSodium 和 SWIFFT 算法库。LibSodium 用于生成高熵的随机数,SWIFFT 算法库用于快速量子计算。

LibSodium 提供的 API 可以让应用层调用,以便生成加密密钥、加密和解密数据。此外,它还提供了签名和验证 API,以便对数据进行认证。

4.4. OQS 的未来计划

OQS 的未来计划包括以下几点:

  1. 加入更多的量子通信协议,包括 ADIAKON、Möttönen-Wilson 协议、Steane 码等。

  2. 提升实现的性能,改善错误纠正和隐蔽性。

  3. 提升代码质量和测试覆盖度,确保协议的可靠性和安全性。

总结

本文介绍了 QKD 技术、关键术语、相关云服务商及开源方案。KMS 协议提供了云端的量子密钥生成、存储、管理和轮换等功能。OQS 项目提供了端到端加密解决方案,可用于量子通信和隐蔽通信。

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/133446704
key