文章总结: 量子计算发展对传统加密构成严重威胁,Shor算法可破解非对称加密如RSA和ECC,Grover算法使对称加密安全强度减半。先窃取后解密的攻击模式已存在,当前加密数据可能在未来被量子计算机破解。为应对此挑战,NIST已标准化抗量子算法如Kyber,这是一种基于格理论的密钥封装机制,能抵御量子攻击,与传统数字信封相比具有更强的抗量子安全性。
综合评分: 88
文章分类: 数据安全,网络安全,AI安全
量子安全简单介绍
原创
YangYang
YY的黑板报
2025年12月6日 08:56
天津
随着量子计算技术的飞速发展,我们习以为常的网络安全体系正站在一场革命的边缘。前面简单介绍了抗量子算法——Kyber,这里咱们用简单的白话语言来简单介绍下量子是个啥东西?
量子
量子其实也没有多神秘,在传统计算模式下,大家都知道是 0 和 1 构成的计算世界,但在量子世界中,除了 0 和 1 之外,还有 0 和 1 的叠加态,想象一枚硬币,正常情况下它要么正面朝上,要么反面朝上。但在量子世界里,这枚硬币可以同时是正面和反面!
题外话:还有市面上出现的量子鞋垫、量子理疗等概念,纯骗人的。
量子对传统加密的挑战
目前,绝大多数网络通信都依赖两种主流加密方式:
-
对称加密
(如AES):加密和解密使用同一把密钥,速度快,常用于数据传输。
-
非对称加密
(如RSA、ECC):使用公钥加密、私钥解密,解决了密钥分发问题,是HTTPS、数字签名等安全协议的基石。
这些算法的安全性,建立在某些数学难题的“计算困难性”之上。例如,RSA依赖于大整数分解难题——将两个大质数相乘很容易,但反过来从乘积中分解出原始质数,在经典计算机上几乎不可能在合理时间内完成。
正因如此,今天的银行系统、政府通信、甚至区块链都依赖这些算法构建信任。
然而,1994年,数学家彼得·肖尔(Peter Shor)提出了著名的Shor算法,它可以在量子计算机上高效地完成大整数分解和离散对数运算——这意味着,一旦实用化的量子计算机问世,RSA、ECC等主流非对称加密将瞬间失效。
不仅如此,Grover算法也让对称加密的安全强度减半。例如,原本需要暴力尝试2¹²⁸次才能破解的AES-128,在量子计算机下只需约2⁶⁴次——虽然仍很困难,但已不再“绝对安全”。
好消息是:大规模容错量子计算机尚未诞生。目前最先进的量子设备仅有几百个量子比特,且错误率高,远不足以运行Shor算法破解真实世界的密钥。
但坏消息是:“先窃取,后解密”(Harvest Now, Decrypt Later)的攻击模式已经存在。黑客现在就可以截获并存储加密数据,等到未来量子计算机成熟时再解密——这意味着,今天看似安全的机密信息,可能在十年后彻底暴露。
美国国家标准与技术研究院(NIST)早在2016年就启动了后量子密码(Post-Quantum Cryptography, PQC)标准化项目,并于2022–2024年间陆续公布了首批抗量子加密算法标准,包括:
-
CRYSTALS-Kyber
(用于密钥封装)
-
CRYSTALS-Dilithium
、FALCON、SPHINCS+(用于数字签名)
这些新算法基于格理论、哈希函数、编码理论等,被认为能抵御经典和量子计算机的攻击。
Kyber密钥封装
先说下数字信封,简单来说,就是 A 把自己的保险柜给你,你将家里的门钥匙放在保险柜里面,把保险柜给到 A,即使保险柜在中途被人偷了,也拿不到你家门钥匙,你拿到保险柜后用你的钥匙打开,拿到 A 的家门钥匙。
那么基于这个我们看下 Kyber 的流程,相对于数字信封来说还不太一样:
# 步骤 1: 接收者生成密钥对
public_key, secret_key = Kyber512.keygen()
# 步骤 2: 接收者发送public_key给发送者
# 步骤 3: Kyber 封装:输入公钥,输出密文(ciphertext)和共享密钥(shared_key)
shared_key_sender,ciphertext_kyber = Kyber512.encaps(public_key)
# 步骤4:派生对称密钥
digest = hashes.Hash(hashes.SHA256(), backend=default_backend())
digest.update(shared_key_sender)
aes_key = digest.finalize() # 确保是 32 字节
# 步骤5:对称加密数据
# 步骤6:把 Kyber 密文ciphertext_kyber、数据密文打包发给接收者
# 步骤7:用Kyber私钥 解封装,还原共享密钥
shared_key_receiver = Kyber512.decaps(secret_key, ciphertext_kyber)
# 步骤8:派生对称密钥
digest = hashes.Hash(hashes.SHA256(), backend=default_backend())
digest.update(shared_key_sender)
aes_key = digest.finalize() # 确保是 32 字节
# 步骤9:解密数据
这样看这个标准就简单理解了,简单对比下:
| 维度 | Kyber 封装(KEM) | 数字信封 |
| — | — | — |
| 本质 | 密钥封装机制(KEM) | 混合加密模式(KEM + 对称加密) |
| 是否生成密钥 | 是,双方协商出一个随机共享密钥 | 是,发送方生成对称密钥 |
| 是否直接加密数据 | ❌ 不加密应用数据,只输出密钥和封装密文 | ✅ 加密数据(通过对称加密) |
| 依赖的公钥密码 | 基于格(LWE/ML-KEM),抗量子 | 通常基于 RSA 或 ECC(易受量子攻击) |
| 安全性目标 | IND-CCA2(在量子攻击下仍安全) | 依赖底层公钥算法(如 RSA-OAEP) |
| 标准化状态 | NIST PQC 标准(FIPS 203,ML-KEM) | 广泛用于 TLS、S/MIME、PGP 等传统协议 |
| 输出内容 | (ciphertext c, shared key K) | (encrypted data C, encrypted key E(K)) |
| 使用场景 | 后量子安全的密钥交换(如 PQ-TLS) | 安全邮件、文件加密、传统 TLS 握手 |
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:YY的黑板报 YangYang《量子安全简单介绍》