
什么是后量子密码学及PQC威胁?
后量子密码学(PQC)为未来做准备,在那个未来里,量子计算机可能破解当前的加密系统,如RSA和ECC。随着量子计算的发展,组织面临新的风险,如数据泄露和长期解密威胁。理解PQC的采用对于...
# 什么是后量子密码学(PQC)和量子威胁?
*防御量子计算革命对数据安全的影响*
---
量子计算不再只是一个理论上的好奇心——它代表了一种迫在眉睫的范式转变,对网络安全有重大影响。随着量子计算机的强大程度日渐增长,它们威胁着使得当今大多数的公钥密码系统——例如RSA、Diffie-Hellman和椭圆曲线加密(ECC)——过时。解决方案是**后量子密码学**(PQC),也称为量子抗性密码学。在本指南中,我们将探讨PQC是什么、它为何重要以及组织应如何开始他们的量子安全之旅——从基本原理到为高级专业人士准备的动手工具。
---
## 目录
- [什么是后量子密码学?](#什么是后量子密码学)
- [基本原理:为什么量子计算机能够破解现代加密](#基本原理为什么量子计算机能够破解现代加密)
- [正在受到攻击的数学](#正在受到攻击的数学)
- [Shor和Grover算法:量子工具](#Shor和Grover算法量子工具)
- [现实世界的量子安全威胁](#现实世界的量子安全威胁)
- [现在获取,将来解密攻击](#现在获取将来解密攻击)
- [非人类身份的脆弱性](#非人类身份的脆弱性)
- [后量子密码学:技术概述](#后量子密码学技术概述)
- [关键PQC算法和方案](#关键PQC算法和方案)
- [NIST的PQC标准化努力](#NIST的PQC标准化努力)
- [实用步骤:评估和实施后量子准备](#实用步骤评估和实施后量子准备)
- [发现组织中的加密使用情况](#发现组织中的加密使用情况)
- [代码样例:扫描OpenSSL中使用的RSA/ECC](#代码样例扫描OpenSSL中使用的RSAECC)
- [用Bash/Python解析结果](#用BashPython解析结果)
- [现实案例与迁移策略](#现实案例与迁移策略)
- [TLS/SSL后量子升级](#TLSSSL后量子升级)
- [保护长期数据](#保护长期数据)
- [机器身份与PKI](#机器身份与PKI)
- [挑战与考量](#挑战与考量)
- [性能和集成问题](#性能和集成问题)
- [混合加密方法](#混合加密方法)
- [结论:构建一个量子弹性未来](#结论构建一个量子弹性未来)
- [参考资料](#参考资料)
---
## 什么是后量子密码学?
**后量子密码学(PQC)** 指的是那些被认为能够抵抗真实量子计算机攻击的密码学算法。尽管经典计算机需要几个世纪甚至几千年来破解今天的密码,量子计算机理论上只需几分钟或几小时。PQC包含了一种新类型的算法,专门设计来抵抗这些量子攻击。
> **定义**:“后量子密码学旨在抵御未来量子计算机可能破解当前加密系统的攻击,确保机密信息和通信的持续保护。”
> *— Mastercard, [什么是后量子密码学?](https://www.mastercard.com/sg/en/news-and-trends/stories/2025/what-is-post-quantum-cryptography.html)*
PQC不依赖于量子力学;它运行在当今的经典硬件上。但它的数学基础(如格或编码)与RSA/ECC的素因数分解或离散对数有根本的不同,而量子算法可以利用这些。
---
## 基本原理:为什么量子计算机能够破解现代加密
### 正在受到攻击的数学
大多数公钥密码系统依赖于数学上的“困难问题”,这些问题容易计算,但在没有密钥的情况下几乎不可能逆转:
- **RSA**:依赖于分解大合数的困难。
- **Diffie-Hellman**:依赖于离散对数问题的困难。
- **椭圆曲线加密(ECC)**:使用椭圆曲线离散对数问题。
经典计算机没有有效的捷径来解决这些问题;暴力计算花费时间太长。
### Shor和Grover算法:量子工具
量子计算机使用量子位和量子现象,如叠加和纠缠,以极快的速度处理某些问题。特别感兴趣的有两个算法:
1. **Shor算法**:可以指数级地更快地分解大数和计算离散对数,使得RSA、Diffie-Hellman和ECC能够被轻松破解,只要存在足够大的量子计算机。
2. **Grover算法**:加速对称密钥的暴力破解,减少有效密钥强度一半(例如,AES-256的量子安全性类似于经典AES-128)。
---
## 现实世界的量子安全威胁
### 量子计算威胁RSA、Diffie-Hellman和ECC背后的数学
> “量子计算威胁RSA、Diffie-Hellman和ECC背后的数学,使组织面临数据泄露、财务损失和声誉损害的风险。”
> *— Fortinet, [量子安全](https://www.fortinet.com/sitemap/explorer/ai-cybersecurity/quantum-security)*
#### 什么面临风险?
- **TLS/SSL**:安全网页浏览的骨干使用RSA/ECC,使得HTTPS面临风险。
- **VPNs**:广泛使用IKE和其他基于DH/ECC的协议。
- **PKI/证书**:机器、设备和代码签名证书使用RSA/ECC密钥。
- **加密存储数据**:如果现在拦截并存储,未来可能被解密的加密数据(“现在获取,将来解密”)。
### 现在获取,将来解密攻击
攻击者可能现在收集加密流量,打算等量子计算机可用时解密。敏感文件,如医疗记录或政府机密,通常需要保持几十年的机密性。
### 非人类身份的脆弱性
> “量子计算立即引发对非人类身份的风险,并长期解密威胁……”
> *— Okta, [量子计算:身份安全风险](https://www.okta.com/blog/product-innovation/quantum-computing-identity-security-risks/)*
非人类身份——如机器证书、物联网设备或API令牌——通常具有较长的操作寿命。如果不迅速升级,它们可能会变得特别脆弱。
---
## 后量子密码学:技术概述
### 关键PQC算法和方案
PQC算法多种多样,但大多数属于已知量子攻击抵抗的类别:
- **基于格的密码学**
示例:
- *Kyber*:密钥封装
- *Dilithium*:数字签名
- *NTRU*:加密/签名
- **基于编码的密码学**
示例:
- *经典McEliece*:密钥封装
- **多变量二次方程**
示例:
- *Rainbow*:数字签名
- **基于哈希的密码学**
示例:
- *SPHINCS+*:无状态哈希的数字签名
- **基于同源性的密码学**
示例:
- *SIDH(超奇异同源Diffie-Hellman)* (注意:最近发现SIDH存在漏洞。)
#### PQC算法的特性
- 可以在传统硬件上运行(无需量子计算机)。
- 密钥大小和签名通常比RSA/ECC更大。
- 性能可能会有所不同——延迟和带宽影响需要考虑。
### NIST的PQC标准化努力
[美国国家标准与技术研究院(NIST)](https://csrc.nist.gov/projects/post-quantum-cryptography)自2016年起就开始进行一个全球开放竞争,以建立新的密码学标准。
#### NIST的建议(截至2024年):
- **加密/密钥交换**:Kyber,经典McEliece
- **数字签名**:Dilithium,Falcon,SPHINCS+
这些预计将成为后量子“标志日”后的新公钥标准套件。
---
## 实用步骤:评估和实施后量子准备
### 发现组织中的加密使用情况
关键的一步是清点系统中使用的脆弱加密的地方和方式。这包括:
- Web服务器(HTTPS,TLS/SSL)
- VPN设备
- 数据库
- 内部应用程序
- 证书(PKI,代码签名)
- 机器和物联网(IoT)身份
### 代码样例:扫描OpenSSL中使用的RSA/ECC
让我们使用Bash和Python扫描和解析证书和密钥以检测脆弱的算法。
#### **步骤1:扫描目录中的PEM证书**
**在Linux中扫描RSA/ECC证书及密钥**
```bash
#!/bin/bash
search_dir="/etc/ssl/certs"
for file in "$search_dir"/*.pem; do
if openssl x509 -in "$file" -noout -text 2>/dev/null | grep -E "Public Key Algorithm"; then
echo "[+] $file"
openssl x509 -in "$file" -noout -text | grep "Public Key Algorithm"
fi
done
这段Bash脚本打印文件并突出显示它们的公钥算法(RSA/ECC)。
步骤2:用Python批量解析密钥类型
假设你想要在整个基础设施中汇总证书类型:
import os
from cryptography import x509
from cryptography.hazmat.backends import default_backend
cert_dir = '/etc/ssl/certs'
summary = {}
for filename in os.listdir(cert_dir):
if filename.endswith('.pem'):
with open(os.path.join(cert_dir, filename), 'rb') as f:
try:
cert = x509.load_pem_x509_certificate(f.read(), default_backend())
key_type = cert.public_key().__class__.__name__
summary[key_type] = summary.get(key_type, 0) + 1
except Exception as e:
pass # Not a certificate
print("Key type usage summary:")
for k,v in summary.items():
print(f"{k}: {v}")
输出示例:
Key type usage summary:
RSAPublicKey: 87
EllipticCurvePublicKey: 43
解析机器标识
对于物联网设备或网络证书存储上的扫描,调整类似的脚本以统计算出所有终端的密钥使用情况。
现实案例与迁移策略
TLS/SSL后量子升级
大多数互联网连接依赖于使用RSA/ECC密钥交换的TLS/SSL。为了做好量子准备:
- 后量子TLS:许多供应商现在提供使用PQC混合体的实验TLS实现(结合PQC与经典密钥)。
- 示例:Cloudflare的后量子隧道
OpenSSL示例:生成PQC密钥
使用PQC支持的OpenSSL(来自开放量子安全):
# 生成Kyber密钥对用作KEM
openssl req -new -newkey kyber512: -x509 -keyout kyber.key -out kyber.crt
注意: 你需要一个支持PQC的OpenSSL构建(截至2024年初尚不标准)。
保护长期数据
加密的电子邮件、备份、法律文件或政府记录可能需要几十年的机密性。尽快将这些存储机制升级为PQC算法,或使用混合加密重新加密。
机器身份和PKI
企业身份和访问管理(IAM)越来越多地涉及自动化设备和机器身份。由于它们的证书寿命长,如果不将它们迁移到PQC,整个设备可能面临量子风险。
- 更新PKI系统以支持PQC/混合证书。
- 替换或重新密钥非人类身份的证书。
挑战与考量
性能和集成问题
- 更大的密钥和签名:PQC方案通常使用比RSA/ECC更大的密钥/签名,影响网络吞吐量/存储。
- 硬件/软件支持:并非所有设备,尤其是物联网和嵌入式,将轻松支持更大的密钥或新算法。
- 密码灵活性:现代系统应支持快速切换算法,以便于升级和紧急修补。
混合加密方法
许多早期PQC部署使用混合加密——将经典和量子抗性算法结合在一起,消息拦截需要同时破译两者。
- 示例:X25519+Kyber密钥交换用于TLS
- 提供弹性:即便PQC或经典被后续发现存在脆弱,仍保留安全性。
结论:构建一个量子弹性未来
后量子密码学不是一个遥远或理论上的问题。量子计算机可能比许多人预期的更快地威胁到当今许多加密数据,“现在获取,将来解密”攻击正在进行中,现在开始准备至关重要。通过理解PQC,清点加密资产,以及测试迁移至抗量子方案,组织可以确保其未来并避免成为未来新闻中的数据泄露对象。采用密码灵活性、利用混合算法,并密切关注NIST的PQC标准,以确保安全性经受住时间和即将到来的量子革命的考验。
参考资料
