爱吱声
标题:
后量子密码学:对国密算法体系的潜在影响
[打印本页]
作者:
xiejin77
时间:
2025-4-3 07:16
标题:
后量子密码学:对国密算法体系的潜在影响
0 E2 o" y7 I, g. d
之前总是有朋友问我什么抗量子密码,什么是后量子密码以及什么是量子密码。这些对于国密体系有什么影响。正好有机会写了这篇文章,对比分析了中国现有的国家密码算法(国密算法)与新兴的后量子密码(PQC)技术。随着量子计算的快速发展,现有密码体系面临严峻挑战。本文尝试解读分析后量子密码在功能上与国密算法的对标情况,以及它将如何从根本上变革现有密码算法体系,从而为中国未来的密码技术发展提供参考,以确保在量子计算时代能够维护国家信息安全。
1 y% @* `. J6 F3 C$ }" _
) a$ g, g, Z) x5 b1 m+ W% I) p/ k) ]
1. 引言
) W+ l$ d( d$ ] s+ o
中国的国家密码管理局负责制定和标准化国密算法,这些算法在中国网络安全基础设施中扮演着关键角色。国密算法不仅应用于政府和军事领域,还广泛渗透到金融、电信、交通、能源等关键行业,以及电子商务、移动支付等日常生活中。它们是保护国家信息安全,维护社会稳定,保障公民财产安全的重要基石。然而,量子计算机的发展对现有密码体系构成了威胁,量子计算的巨大潜力使得破解现代密码体系成为可能,这无疑给信息安全领域带来了前所未有的挑战。因此,我们必须关注并研究能够抵抗量子攻击的新一代密码算法——后量子密码。本文旨在探讨后量子密码在哪些方面能够对标现有国密算法的功能,又将在哪些方面对现有的密码算法体系产生颠覆性的影响。通过深入分析,本文旨在为中国未来密码技术发展方向提供参考,以确保在量子计算时代依然能够维护国家信息安全。
/ w+ o: u, _4 ~0 U$ ^5 X: ]
d0 P' y) R& {! Q6 b0 T
2. 国密算法体系现状
" S4 d( }6 t) g0 ?; ]' x! e& K
国密算法体系是中国自主设计的一套密码算法,旨在保护国家信息安全。这一体系包含多种算法,涵盖对称加密、非对称加密、密钥交换和密码杂凑函数等领域,能够满足不同的安全需求和应用场景:
9 A8 y3 `; O A2 I. u
u1 V9 Y0 ]5 L
对称加密算法:
% ^! _( e4 d5 G7 [5 ^
SM1 算法是一种分组密码算法,其分组长度和密钥长度均为 128 位。它由国家密码管理局设计,安全性高,被广泛应用于政府和商业领域。
8 C! o# `0 \ s' r
SM4 算法是一种分组密码算法,分组长度和密钥长度均为 128 比特。它已成为 ISO/IEC 国际标准,在无线局域网、物联网等领域得到广泛应用。
! \; [2 C9 }( J: n
SM7 算法是一种分组密码算法,分组长度和密钥长度均为 128 比特,主要应用于非接触式 IC 卡,例如身份识别、门禁系统和电子支付等。
5 K3 i* Q7 S* Y! X, [: D4 c% u
祖冲之密码算法(ZUC)是一种序列密码算法,已发布国家标准,广泛应用于移动通信和数据流加密等领域。
6 _/ s0 a& c: i3 I# K( D
非对称加密与密钥交换算法:
$ y) ]5 I% r/ k9 }
SM2 算法是一种基于椭圆曲线密码(ECC)的公钥密码算法,其加密强度为 256 位。它支持数字签名、密钥交换和公钥加密等功能,被认为在经典计算层面比 RSA 算法更安全、更高效。
1 M2 Q6 ^8 y! W! _! o$ h
SM9 算法是一种基于标识的公钥密码算法。它简化了密钥管理流程,降低了证书管理的复杂性,在身份认证、数据加密等领域具有独特的优势。
& c' Q8 \+ @2 }* y* A
密码杂凑函数: SM3 算法是一种密码杂凑算法,其杂凑值为 256 位。它类似于 SHA-256 算法,可用于数字签名、消息认证码生成和随机数生成等。
% K3 ~: V5 v+ D; c) E& C; O
国密算法在中国的应用非常广泛,几乎覆盖了所有需要信息安全保护的领域。除了政府、军队等敏感部门,金融、电信、交通、能源等关键基础设施也大量使用国密算法来保护其数据和系统安全。此外,随着电子商务、移动支付等互联网应用的普及,国密算法也逐渐走入人们的日常生活,例如,银行 U 盾、支付平台的安全认证等都采用了国密算法。
6 e7 P& p' b/ u. u
% ?: H. ?" R9 H% v: h; I
3. 量子计算的威胁与后量子密码的需求
8 \% J7 [% W6 f. J2 X2 Y' C9 B
量子计算机的出现,对我们现有的密码体系构成了前所未有的威胁。量子计算机利用 Shor 算法能够高效解决大数分解和离散对数等数学难题,而这些难题正是目前广泛使用的公钥算法(如 RSA 和 ECC,包括 SM2)的理论基础。这意味着,一旦量子计算机发展到足够强大的程度,它将能够轻松破解我们现在使用的许多加密算法,从而导致敏感信息泄露、金融系统崩溃、国家安全受损等严重后果。
; b+ c" |. t7 v! F0 O
/ u Y- ]/ h/ |9 I# ]2 s
'先收集后解密'(Harvest Now, Decrypt Later)是指攻击者现在就开始收集加密数据,即使他们目前无法解密这些数据。他们预期在未来,当量子计算机足够强大时,他们就可以利用量子计算机来解密这些数据。这种风险对于那些需要长期保密的数据(例如,政府机密、金融交易记录、医疗记录等)尤为严重。
' ]* H( |0 j' m5 N' V, \6 s" |
* A+ \# J3 c. J5 O
后量子密码(PQC),有时也称为量子安全或量子抗性密码,指的是那些被认为能够抵抗经典计算机和量子计算机攻击的密码算法。PQC 算法主要包括基于格、基于哈希、基于编码和基于多变量等不同类型。这些算法的安全性基于不同的数学难题,这些难题被认为即使使用量子计算机也难以解决。向后量子密码的过渡之所以紧迫,是因为量子计算技术的快速发展以及敏感数据的长期价值,这需要我们采取积极措施来确保未来的安全。
7 n0 p0 y+ x l' C
8 q* `" q9 ^) I3 |& V8 _
4. NIST 的后量子密码标准化工作
6 L* O! e1 E- I9 R1 y
美国国家标准与技术研究院(NIST)在后量子密码的标准化方面发挥了先驱作用。NIST 于 2016 年启动了一项公开竞赛式的标准化项目,旨在征集、评估和标准化能够抵抗量子计算机攻击的后量子密码算法。该项目吸引了全球密码学家的广泛参与,经过多轮严格的评估和筛选,NIST 最终选择了多种算法作为其首批标准。这一过程不仅推动了后量子密码技术的发展,也为其他国家和组织制定相关标准提供了重要的参考。
1 `$ j0 x6 |' I" z8 y
: x* o0 F6 A5 `
NIST 已经选择了多种算法作为其首批标准,包括:
* i/ k/ R. C1 V) A2 _$ ^+ j; }
`0 V% N: t% t( k7 c5 S F7 X% |5 U
密钥封装机制(KEM):
9 j# y- W* h2 v
CRYSTALS-Kyber (ML-KEM) 算法基于模块格上的带错误学习(Module Learning with Errors, MLWE)问题,被选为通用加密的标准。Kyber 算法在效率、安全性和密钥尺寸等方面取得了很好的平衡,被认为是后量子时代最有前途的密钥交换解决方案之一。
- M. j' D0 C: {' `" _
HQC 算法基于编码密码学,被选中以增强密钥建立组合。HQC 算法的加入,为密钥封装机制提供了更多的选择,降低了对单一算法的依赖,提高了整体的安全性。
. v4 x7 g0 G k# K
数字签名算法:
8 m) c! Q/ c a$ b2 A# Y' ?! i
CRYSTALS-Dilithium (ML-DSA) 算法基于模块格上的格问题,被选为主要的数字签名标准。Dilithium 算法具有较高的签名效率和较小的签名尺寸,在数字签名领域具有广泛的应用前景。
0 |% z# {) u# |1 Q( k J$ O
FALCON (FN-DSA) 算法也基于格密码(NTRU 格),计划于 2024 年底标准化。FALCON 算法以其较小的签名尺寸而著称,特别适用于带宽受限的应用场景。
0 G! E6 V7 a* y: ?5 ]. _) J8 r6 o
SPHINCS+ (SLH-DSA) 算法也被选中用于数字签名,但它基于哈希函数,旨在作为一种备用方法。SPHINCS+ 算法的安全性不依赖于传统的数学难题,而是基于哈希函数的抗碰撞性,这使得它在量子计算时代具有独特的优势。
7 @. ]: Y# h+ X { z! N Q' G
NIST 正在继续评估其他算法集,作为潜在的备用标准。持续的评估过程突显了后量子密码技术的不断发展以及 NIST 致力于确保未来提供强大且多样化的密码选择。
3 _# @( e9 a' h" ^. ?8 e
( G/ x4 I/ D( q$ N) [1 Y
5. 国密算法与后量子密码的对比分析
+ g4 I& M9 k- W2 N! T" U& f" Q
为了更好地理解后量子密码对国密算法体系的影响,我们可以以对标的方式,对它们进行详细的对比分析。
( m' ?. b+ B( q' [. r" a. _
3 Y/ O" C, w0 j; K8 A9 |) B! Y
非对称密码与密钥交换:
5 [2 e8 f9 p, n' X" d* L" q/ Q0 N+ j
SM2 算法基于 ECC,提供公钥加密和密钥交换功能。ECC 算法在经典计算时代被认为是安全高效的,但它容易受到量子计算机的攻击。
$ a! v$ `) t) x- n/ Q
CRYSTALS-Kyber、NTRU 和 HQC 算法提供密钥封装机制(KEM),这是后量子时代用于安全密钥交换和公钥加密的等效方案。这些算法分别基于格问题和编码问题,被认为能够抵抗量子攻击。
! u$ R/ c2 C( v/ k/ i4 x
相同点: SM2 算法和这些后量子密码算法都服务于通过公钥密码术实现安全通信的目的。
7 b7 F) W( w' x' k
不同点: SM2 算法的安全性依赖于椭圆曲线离散对数问题的难度,该问题容易受到 Shor 算法的攻击。Kyber、NTRU 和 HQC 算法则被设计成能够抵抗量子攻击,它们分别依赖于格问题(LWE、Ring-LWE、Module-LWE)或基于编码的问题的难度。
2 V) t& C, x: F) @" z9 p9 |4 k
性能比较: 与基于 ECC 的系统(如 SM2)相比,Kyber 等后量子密码 KEM 通常具有更大的密钥和密文尺寸,但性能基准仍在不断发展。这意味着,在后量子时代,我们需要付出更多的存储空间和传输带宽来换取更高的安全性。
5 C, g- y7 q. P: u4 i/ i" U
尽管 SM2 算法和后量子密码 KEM 提供类似的功能,但其底层的安全机制却存在根本性的差异,后量子密码提供了 SM2 所缺乏的必要的量子抗性。这种转变通常需要以更大的密钥/密文尺寸为代价。
! \ w' _& f0 H( f' D2 _9 ?. ]; }
3 S. O$ _0 d9 i* s9 q
数字签名:
1 v( `& \9 X7 u' x F- p+ }1 q4 }
SM2 算法包含基于 ECC 的数字签名算法。ECC 数字签名算法的安全性同样受到量子计算机的威胁。
; C- H/ z0 g! Y/ K+ A" G# J a
CRYSTALS-Dilithium 和 FALCON(基于格)以及 SPHINCS+(基于哈希)是后量子数字签名方案。这些算法基于不同的数学难题,能够抵抗量子计算机的攻击。
+ g" }0 E6 I! o7 l/ J1 g
相同点: SM2 算法和这些后量子密码算法都提供了验证数字数据真实性和完整性的功能。
' f1 Q4 ~$ I' a9 J
不同点: SM2 算法的安全性基于椭圆曲线数字签名算法(ECDSA),该算法容易受到量子攻击。Dilithium、FALCON 和 SPHINCS+ 则基于不同的数学难题提供量子抗性安全性。
- b+ o+ F# `; \( c6 e
性能比较: 与基于 ECC 的签名(如 SM2)相比,Dilithium 和 FALCON 等基于格的后量子密码签名往往具有更大的签名尺寸,但小于某些基于哈希的方案(如 SPHINCS+)。签名和验证的性能基准也各不相同。这意味着,在后量子时代,数字签名可能会占用更多的存储空间,并且签名和验证的速度可能会受到影响。
7 ?( f" i) ?2 J$ a) i
与非对称加密类似,后量子密码数字签名提供了 SM2 所缺乏的必要的量子抗性,但通常以增加签名尺寸和可能不同的性能特征为代价。在基于格和基于哈希的后量子密码签名之间的选择,需要在签名尺寸、性能和底层安全假设之间进行权衡。
: O0 T4 f2 l8 d) U% W
+ S, K7 m% N& M1 S1 k+ w2 O
密码杂凑函数:
# b3 A. U7 Z8 J0 O5 l3 k4 i
SM3 算法是一种 256 位的哈希算法,其安全性和效率与 SHA-256 相当。哈希函数在密码学中扮演着重要的角色,它可以将任意长度的消息压缩成固定长度的摘要,用于数据完整性验证、数字签名等。
( Q9 ~6 C5 v# O/ C# U- ]
许多后量子密码方案,特别是基于哈希的签名(如 SPHINCS+),都依赖于标准的哈希函数,如 SHA-256 或 SHAKE。这意味着,哈希函数在后量子密码时代仍然具有重要的应用价值。
% R: N! T z0 B- y3 j3 \
相同点: SM3 算法和 SHA-256 都提供了哈希函数的基本密码学原语,具有抗碰撞性和单向性。
; P* P3 A% {* I$ w0 w- x ~
不同点: 虽然功能相似,但它们是不同的算法。然而,SM3 与 SHA-256 相当的安全性及输出尺寸,可能有助于在需要量子抗性哈希函数(作为某些后量子密码的底层哈希)的场景中进行集成。这为国密算法在后量子密码时代的应用提供了一定的灵活性。
; U* a& ?; M' t2 d3 Q4 ]4 w# ]) S
拥有像 SM3 这样强大的国内标准化哈希函数,使中国在后量子密码领域占据有利地位,因为哈希函数预计在量子攻击面前仍然相对安全(对于使用它们的对称算法,可能需要调整密钥尺寸)。
) r1 }- v, ^' H7 h
) j' k% s L0 b& e Q! z
对称加密:
: s6 s7 i& ~' @) t! ~4 Y8 E, ]( h
SM4 算法是中国标准化的对称分组密码算法。对称加密算法使用相同的密钥进行加密和解密,具有加密速度快、效率高等优点,广泛应用于数据加密、通信加密等领域。
7 A+ T- ]( q8 d" x4 G
AES 算法是广泛采用的国际标准。AES 算法在安全性和效率方面都表现出色,被认为是目前最流行的对称加密算法之一。
) k0 ]0 r/ g+ K' A: p
相同点: 两者都是用于数据加密的对称分组密码。
0 _: I5 g& H3 x$ C& j/ B4 Q
不同点: 它们是具有不同内部结构的不同算法。虽然量子计算机理论上可以使用 Grover 算法加速对对称密码的攻击,但通常认为将密钥尺寸加倍足以维持安全。因此,与公钥密码相比,量子计算带来的颠覆性影响可能在对称加密方面较小。这意味着,在后量子时代,对称加密算法仍然可以安全使用,只需要适当增加密钥长度即可。
% B) H) G+ ?* n7 O9 O+ e- `
虽然后量子密码主要关注公钥密码,但在后量子时代,像 SM4 这样强大的对称密码(如果需要,可以增加密钥尺寸)的持续相关性表明,密码系统的这一方面具有一定的连续性。
) d1 m. j; l; H. R. f
% \2 D8 U W) E! h/ G) F
6. 后量子密码对国密算法体系的颠覆性潜力
% m; f9 \: P5 d6 e6 l) n$ ]0 _' o& N
后量子密码的引入,将对国密算法体系带来深刻的变革,这种变革不仅仅是算法的替换,更是密码学理念和实践的转变。
5 w2 Z# x. T# M1 E7 v" Y
+ n' I' `8 o8 e
量子抗性作为范式转变:
9 s7 A- g9 ~0 |3 J/ C
主要的颠覆性因素在于,从依赖容易受到量子计算机攻击的数学难题(如 SM2 所基于的难题)转变为依赖被认为能够抵抗量子攻击的难题(如 Kyber、Dilithium、SPHINCS+、FALCON、HQC 所基于的难题)。这种转变是根本性的,它意味着我们必须放弃一些已经使用了几十年的经典密码算法,转而采用全新的密码算法。这需要在国密体系内对公钥操作的底层密码原语进行根本性的改变。公钥密码是现代密码体系的重要组成部分,它实现了安全的密钥交换和数字签名等功能。在后量子时代,我们需要采用新的公钥密码算法来替代传统的算法,以确保这些功能的安全性。所以说,向量子抗性算法的过渡不仅仅是一次升级,而是中安全系统密码学基础的彻底变革,需要大量的研究、开发和部署工作。这需要我们投入大量的人力、物力和财力,进行深入的研究和开发,才能完成这一过渡。
8 w' z' ^6 A1 z5 A# K% E1 b4 `
性能影响与权衡:
2 t8 @8 |! f) G- B- b( C
密钥尺寸: 与基于 ECC 的算法(如 SM2)相比,后量子密码算法,特别是基于格的算法,通常具有更大的公钥和私钥尺寸。这可能会影响存储需求和传输带宽。例如,Kyber 算法的公钥尺寸可达数百甚至数千字节,而 SM2 算法的公钥尺寸仅为 32 字节。
/ e+ P/ ?& s, w7 i
密文/签名尺寸: 类似地,后量子密码方案中的密文和签名尺寸也可能大于当前的国密算法。这同样会增加存储和传输的负担。
6 O4 ^2 M3 X7 W5 r3 v# k' O$ D
计算速度: 密钥生成、加密/封装、解密/解封装、签名和验证的性能基准因不同的后量子密码算法和参数集而异。某些算法可能比当前的算法慢,但优化工作也在持续进行。这意味着,在后量子时代,我们可能需要在计算效率和安全性之间做出权衡。
' s' ]9 Y/ @4 W4 k$ b* b5 ?
算法名称 类型 安全级别(NIST) 公钥尺寸(字节) 私钥尺寸(字节) 密文尺寸(字节) 签名尺寸(字节)
5 S4 i4 L* y% @; G8 {3 z; ]
SM2 ECC 近似 128 位 64 32 - 64
: V' t. C+ I! Z) b! q
CRYSTALS-Kyber512 格 1 800 1632 768 -
" D6 J& b4 d1 t a' r1 l8 C4 k5 ^
CRYSTALS-Kyber768 格 3 1184 2400 1088 -
( x6 _3 r7 t) M6 B! M% I
CRYSTALS-Kyber1024 格 5 1568 3168 1568 -
/ S0 t# G5 E5 ^# O. l
CRYSTALS-Dilithium2 格 1 1312 2528 - 2420
" z* I7 }8 J( k O* Y
CRYSTALS-Dilithium3 格 3 1952 3808 - 3293
: H* S# Z% }5 j9 X9 m
FALCON-512 格(NTRU) 1 897 1281 - 666
+ S" M, |- e( Z8 b$ D
SPHINCS+-SHA256-128s-simple 哈希 1 32 64 - 7856
1 V4 v1 v, v& u5 p+ X
SPHINCS+-SHA256-256f-robust 哈希 5 64 128 - 49856
& E. R! w, [ n+ T9 e
向后量子密码的过渡可能会涉及性能特征方面的权衡,所以仔细选择算法和参数集对于在不同应用中平衡安全性和效率至关重要。我们需要根据具体的应用场景,选择合适的后量子密码算法和参数,以在安全性和效率之间取得平衡。
$ ^3 [0 a2 e, Z; M
8 j& U6 b8 f% E& s
标准化与未来方向:
2 Z% ^2 M4 P7 n8 }1 l3 N% f
NIST 的标准化过程为后量子密码提供了一个全球基准。NIST 已经发布了多个后量子密码算法的标准,这些标准将会在全球范围内得到广泛应用。中国需要决定其自身采用和标准化后量子密码算法的策略,可能与国际标准保持一致,或制定自己的国家标准。
) S- n( m# @8 R. [
SM4 已经获得国际标准化组织(ISO/IEC)的标准化,这表明中国有能力并有意愿使其密码标准获得全球认可。对于选定的后量子密码算法,中国可能会采取类似的方法。这意味着,中国在采用后量子密码算法的过程中,可能会积极参与国际标准的制定,并争取使中国的算法也成为国际标准。
' |+ ~4 I: j! f' b
中国未来的密码标准可能会结合采用经过充分验证的国际后量子密码标准,并可能开发自己的国家后量子密码算法,以满足特定的国内需求和战略考量。这既可以保证与国际的兼容性,又可以满足国内的特殊需求,是一个比较合理的选择。
, s' @5 k+ t0 ~: `. {: Q6 S. z: A
过渡与实施考量:
" o; }- [6 e% k& s9 r: H+ B
过渡到后量子密码将需要对当前使用国密算法的现有密码库、协议和硬件实现进行重大更新。这是一个复杂而庞大的工程,需要投入大量的人力、物力和财力。
1 O# }: ^7 ]( U$ R: p+ y( M
与现有系统的兼容性和互操作性的需求将是至关重要的考虑因素。在过渡时期,可能会采用混合方法,即将经典密码与后量子密码相结合。这意味着,在一段时间内,我们可能会同时使用传统的密码算法和后量子密码算法,以保证系统的平稳过渡。
& x- A% j& J' M1 e! r# `0 |/ c
开发人员和安全专业人员需要接受后量子密码方面的培训并掌握相关专业知识。这是一个新的技术领域,需要我们加强人才培养,才能满足后量子密码时代的需求。
S) s6 h$ w/ ]" s) d
在国密生态系统中采用后量子密码将是一个复杂而漫长的过程,需要仔细规划、加大研发投入以及各利益相关者之间的合作。这需要政府、企业、研究机构等各方共同努力,才能完成这一历史性的任务。
) d/ K. n; o4 a0 u8 B, _9 A
7. 结论与概念辨析
" p4 E/ r$ M% u9 N
后量子密码在功能上与国密算法在加密、数字签名和哈希等方面存在对应,但其量子抗性的特性带来了根本性的变革。这种变革不仅体现在安全性的提升上,也伴随着性能、密钥和签名尺寸等方面的权衡。我们需要在安全性和效率之间做出权衡,才能选择出最适合我们需求的后量子密码算法。
4 P& ~2 F0 ?3 a1 O6 y8 m/ Y! i7 g
: v) E8 }2 h/ B! d, R$ q0 x
附录:抗量子密码(PQA)与后量子密码(PQC)
* u1 o% T1 x: I
) u0 k. k. X& D' K) W$ \2 t \
在讨论量子计算时代的密码学时,"抗量子密码"(PQA)和"后量子密码"(PQC)这两个术语经常被使用,有时甚至可以互换使用。虽然它们都指的是旨在抵抗量子计算机攻击的密码算法,但它们之间存在细微的差别。
) M: z2 ^/ B+ g9 E4 {
" V. z( j( s" N* O) _
抗量子密码(PQA):这是一个更广泛的术语,指的是任何被认为能够抵抗量子计算机潜在威胁的密码学方法。这个术语的重点在于其目标,即“抗量子”。PQA 可以包括任何旨在提供长期安全性的技术,而不仅仅是密码算法。
3 a2 K7 o4 `3 G5 t8 r
后量子密码(PQC):这是一个更具体的术语,通常指的是目前正在开发和标准化的特定密码算法族。这些算法可以在今天的经典计算机上运行,并且被设计为即使在量子计算机出现后也能保持安全。PQC 的重点在于它是经典计算机可以实现的,并且在量子时代之后仍然适用。
/ b5 D P7 R) ?8 A/ T2 E! p
简单来说,所有 PQC 都可以被认为是 PQA,但并非所有 PQA 都是 PQC。PQC 是 PQA 的一个子集,它指的是我们今天可以在经典计算机上运行的特定算法。
6 A8 T H5 b3 N' L ~+ A+ |
4 K2 c% A3 L7 ~+ {
原文链接
欢迎光临 爱吱声 (http://129.226.69.186/bbs/)
Powered by Discuz! X3.2