🔐 密码学基础
什么是密码学?
密码学(Cryptography)是研究如何在敌对环境中安全通信的科学。它的核心目标是实现机密性、完整性、认证性和不可否认性。
从古希腊的斯巴达密码棒到现代的量子密钥分发,密码学贯穿了人类文明的整个历史。今天,每当你访问 HTTPS 网站、发送微信消息或使用移动支付,背后都有密码学在默默保护你的安全。
📜 古典密码
古典密码主要依靠手工操作或简单的机械装置实现加密,虽然安全性不高,但它们是理解现代密码学的重要基础。
凯撒密码(Caesar Cipher)
古罗马时期,凯撒大帝用偏移字母的方式加密军事通信。例如偏移 3 位时,A→D,B→E,C→H……简单但开创了替换加密的先河。
维吉尼亚密码(Vigenère Cipher)
使用一个关键词作为密钥,对明文的每个字母使用不同的偏移量。曾被称为"不可破解的密码",直到 19 世纪才被攻克。
恩尼格玛机(Enigma)
二战中德国使用的机电转子密码机。其复杂程度极高,最终被图灵等人破解,被认为是缩短二战的关键因素之一。
🔑 对称加密
对称加密使用同一个密钥进行加密和解密。就像一把钥匙既能锁门也能开门——简单高效,但密钥的分发是个难题。
常见算法:
• DES(数据加密标准):1977 年发布,使用 56 位密钥,现已不安全。
• 3DES:对 DES 进行三次加密,提高了安全性,但速度较慢。
• AES(高级加密标准):目前最广泛使用的对称加密算法,支持 128/192/256 位密钥,安全性极高。
🔓 非对称加密
非对称加密使用一对密钥:公钥(公开)和私钥(保密)。公钥加密的内容只有私钥能解密,完美解决了对称加密的密钥分发问题。
常见算法:
• RSA:基于大数分解困难性,由 Rivest、Shamir、Adleman 于 1977 年提出。密钥长度通常 2048 位以上。
• ECC(椭圆曲线加密):基于椭圆曲线数学,相同安全强度下密钥更短,适合移动设备和 IoT。
• Diffie-Hellman:密钥交换协议,让双方能在公开信道上协商出共享密钥。
#️⃣ 哈希函数
哈希函数将任意长度的输入映射为固定长度的输出(哈希值/摘要)。它是单向的——无法从哈希值反推原文,常用于密码存储、数据完整性校验和数字签名。
常见哈希算法:
• MD5:128 位输出,已被证明不安全,不再推荐用于安全场景。
• SHA-1:160 位输出,2017 年 Google 实现了碰撞攻击,已弃用。
• SHA-256(SHA-2 家族):256 位输出,目前广泛使用,安全性良好。
• SHA-3:最新标准,基于海绵结构,与 SHA-2 设计完全不同。
🌐 现代应用:TLS/SSL
当你在浏览器中看到 🔒 锁图标时,说明正在使用 TLS(传输层安全协议)进行加密通信。TLS 结合了对称加密和非对称加密的优势:
TLS 握手过程:
1. 客户端发送支持的加密算法列表和密码套件
2. 服务器选择合适的算法,返回证书(含公钥)
3. 客户端验证证书,生成随机预主密钥,用服务器公钥加密发送
4. 双方根据预主密钥生成会话密钥(对称密钥)
5. 后续通信使用对称加密(高效),握手阶段用非对称加密(安全)
🚀 前沿:量子密码学
量子计算的发展对传统密码学构成了巨大挑战。Shor 算法可以在多项式时间内分解大数,这意味着 RSA 和 ECC 在足够强大的量子计算机面前将不再安全。
应对方案:
• 后量子密码学(PQC):设计能抵抗量子计算攻击的新型数学算法,如基于格的加密、基于编码的加密等。NIST 已于 2024 年发布首批后量子加密标准。
• 量子密钥分发(QKD):利用量子力学原理(如海森堡不确定性原理)实现理论上绝对安全的密钥分发。任何窃听行为都会改变量子态,从而被通信双方发现。