前言
现代密码学已经不只是“加密解密”这么简单,而是一套覆盖保密性、完整性、身份认证、隐私保护与未来安全演进的系统工程。
如果把它当作一张能力地图,可以整理为下面这棵树:
1 | 现代密码学体系 |
下面按这四层结构展开。
一、数据保密性
1. 对称加密:快,适合大数据量
对称加密的核心特点是“加密和解密使用同一把密钥”。它计算效率高,通常用于实际业务中的数据传输与数据存储加密。
常见算法:
- AES(Advanced Encryption Standard,分组加密)
- ChaCha20(流加密)
对比:
| 维度 | AES | ChaCha20 |
|---|---|---|
| 类型 | 分组加密 | 流加密 |
| 性能特点 | 在有 AES 指令集的 CPU 上非常快 | 在通用软件实现和移动端常表现更稳 |
| 常见组合 | AES-GCM(机密性+完整性) | ChaCha20-Poly1305(机密性+完整性) |
| 典型场景 | TLS、磁盘加密、数据库加密 | TLS、移动端、物联网设备 |
工程建议:
- 新项目优先使用 AEAD 套件(如 AES-GCM、ChaCha20-Poly1305),不要只做“裸加密”。
- 密钥、随机数(nonce/IV)必须规范管理,nonce 复用会直接破坏安全性。
- 不要自行设计加密模式,优先用成熟密码库默认安全配置。
2. 非对称加密:解决密钥分发与身份认证
非对称加密使用公钥/私钥对。公钥可公开,私钥必须保密。
常见算法:
- RSA:历史最广泛,生态成熟
- ECC(椭圆曲线密码):同等安全级别下密钥更短、性能更好
- SM2:国密体系中的椭圆曲线公钥算法
典型用途:
- 密钥交换(协商对称密钥)
- 数字签名(身份认证 + 不可抵赖)
- 证书体系(PKI)
注意:
- 非对称加密通常比对称加密慢,适合“交换密钥/签名”,不适合直接加密大文件。
- 现代协议普遍采用“混合加密”:先非对称协商,再对称传输。
二、数据完整性与摘要
完整性回答的问题是:数据有没有被改动。
1. 单向杂凑(哈希)
常见算法:SHA-256、SM3。
哈希函数的关键性质:
- 输入任意长度,输出固定长度摘要。
- 单向性:由摘要反推原文在计算上不可行。
- 抗碰撞:难以构造两段不同消息得到相同摘要。
应用场景:
- 文件完整性校验(下载镜像、安装包)
- 区块链中的区块链接与交易摘要
- 密码存储(需结合加盐和专用 KDF,而不是直接哈希)
2. 从“摘要”到“可验证完整性”
只给哈希值还不够,因为攻击者可以“替换文件 + 替换摘要”。
工程上通常使用:
- HMAC(带密钥的消息认证码):验证消息完整性与来源
- 数字签名:公开可验证,适合分发场景
可以理解为:
- 哈希 = 指纹
- HMAC = 带共享密钥的指纹
- 数字签名 = 用私钥“盖章”的指纹
三、隐私计算与高级应用
传统密码学关注“传输和存储时安全”,隐私计算更进一步:
在“数据可用但不可见”的前提下完成计算。
1. 同态加密(HE)
目标:在密文上直接计算,解密后结果等同于明文计算结果。
优势:
- 数据全程不明文暴露给计算方。
挑战:
- 计算开销大、延迟高。
- 工程落地需要在“安全性、精度、性能”之间做权衡。
典型场景:
- 医疗、金融等高敏数据外包计算
- 隐私保护机器学习推理
2. 零知识证明(ZKP)
目标:证明“我知道某个秘密/我满足某个条件”,但不泄露秘密本身。
经典性质:
- 完备性:真的命题可被证明者说服。
- 可靠性:假的命题难以骗过验证者。
- 零知识性:证明过程不泄露额外信息。
典型场景:
- 区块链扩容与隐私交易
- 身份认证(证明“有权限”而不暴露具体身份信息)
- 可验证计算(证明计算过程正确)
3. 多方安全计算(MPC)
目标:多个参与方联合计算函数结果,但各方不暴露自己的原始输入。
典型场景:
- 联合风控、联合建模
- 跨机构数据协同分析
常见挑战:
- 通信轮次多、网络开销大
- 协议复杂,工程调优成本高
四、未来安全演进:从传统密码到后量子密码
1. 传统公钥算法的量子风险
量子计算对不同算法影响不同:
- RSA、ECC:受 Shor 算法威胁显著,理论上可被多项式时间破解。
- 对称密码与哈希:主要受 Grover 算法影响,安全强度大致“减半”。
这意味着:
- 现有 RSA/ECC 体系需要提前准备替换或混合过渡。
- 对称密钥长度可通过加长缓解(例如从 128 位提升到 256 位)。
2. 后量子密码(PQC)
PQC 是在经典计算机上运行、但能抵抗已知量子攻击模型的密码算法。
当前主流方向之一是基于格问题的算法,例如:
- ML-KEM(用于密钥封装)
- ML-DSA(用于数字签名)
迁移策略建议:
- 先做资产盘点:识别系统中所有 RSA/ECC 使用点。
- 建立密码敏捷性:算法可配置、可替换、可灰度。
- 采用混合方案:经典算法 + PQC 并行,逐步切换。
- 重点关注长期敏感数据:防范“先窃取、后解密”风险。
五、工程选型速查
如果你在做系统设计,可以按下面的“问题到方案”快速映射:
- 要高性能保密传输:优先 AEAD(AES-GCM 或 ChaCha20-Poly1305)。
- 要开放验证身份:公钥签名体系(RSA/ECC/SM2,按合规要求选型)。
- 要检测篡改:哈希 + HMAC/签名,不要只放一个裸摘要。
- 要在不暴露数据前提下计算:评估 HE/ZKP/MPC 的安全收益与性能成本。
- 要面向 5~10 年安全周期:把 PQC 迁移纳入技术路线图。
六、总结
现代密码学体系可以概括为一句话:
从“保密”走向“可验证”,再走向“可计算的隐私保护”,最终走向“抗量子长期安全”。
对研发团队来说,真正的关键不是“会几个算法名词”,而是建立一套可持续演进的密码工程能力:
- 默认安全配置
- 密钥生命周期管理
- 算法敏捷与合规治理
- 面向未来的 PQC 迁移准备
这套能力,才是现代系统长期可信的底座。