一、核心加密算法(除AES,RSA外)
| 类别 | 算法名称 | 关键说明 |
|---|---|---|
| 对称加密 | ChaCha20 | 现代流加密算法,在无AES硬件加速的环境(如移动设备)下性能更优,是TLS 1.3的标准套件之一。常与认证加密模式Poly1305组合使用。 |
| 非对称加密 | ECC | 椭圆曲线密码学。在相同安全强度下,比RSA密钥更短、计算更快、带宽消耗更低。是现代证书和协议(如TLS 1.3)的趋势。其衍生算法ECDSA用于数字签名,ECDH用于密钥交换。 |
| 哈希函数 | SHA-2家族 | 包含SHA-256和SHA-512等,是当前绝对的主流和安全标准。用于SSL/TLS证书、区块链(比特币)、数据完整性验证。必须用它替代不安全的MD4。 |
| 哈希函数 | SHA-3 | 新一代哈希标准(Keccak算法),采用与SHA-2不同的“海绵结构”,提供另一种可靠选择。 |
| 密钥交换 | Diffie-Hellman | 密钥协商协议,本身不用于加密,而是让双方在不安全的信道上安全地生成一个共享密钥。现代常用其椭圆曲线版本ECDH。 |
| 认证加密 | GCM / CCM | 加密模式,而非独立算法。它们(如 AES-GCM)在加密的同时提供完整性认证,一步到位,高效且安全,是TLS和现代通信的首选。 |
二、需要特别注意的算法
| 算法 | 状态 | 关键说明 |
|---|---|---|
| MD5 | 已攻破,绝对不安全 | 比MD4稍晚,但同样已产生严重碰撞,绝不可用于密码存储或证书签名,仅可用于非密码学的校验(如文件损坏检查)。 |
| SHA-1 | 已攻破,已淘汰 | 曾经广泛使用,但谷歌于2017年公开了碰撞攻击。所有主流浏览器和证书机构已停止信任SHA-1证书。 |
| DES / 3DES | 已淘汰,不安全 | 早期的对称加密标准。DES密钥过短,3DES速度慢且存在安全隐患,已被AES全面取代。 |
三、应用场景专用算法
-
密码存储专用:
- bcrypt、scrypt、Argon2:这些是密钥派生函数,设计特点是计算慢、可配置成本,专门用于安全地存储用户密码。绝对不能用MD4、MD5或普通SHA系列来存储密码。
-
国密算法:
- SM2:基于椭圆曲线的非对称算法,对标ECC。
- SM3:哈希算法,对标SHA-256。
- SM4:对称加密算法,对标AES。
- 应用场景:在中国境内涉及金融、政务等关键信息系统的合规性要求中必须使用。
总结与建议
现代安全应用通常是组合使用多种算法:
- 通信加密:通过 ECDH 协商密钥,然后用 AES-GCM 或 ChaCha20-Poly1305 加密通信内容,并用 SHA-256 保证完整性。
- 数字签名:使用 ECDSA 或 RSA 对数据的 SHA-256 哈希值进行签名。
- 密码存储:必须使用 Argon2 或 bcrypt。
核心原则:避免使用已破译的算法(如MD4、MD5、SHA-1、DES),并优先选择经过广泛验证的现代算法(如AES、ChaCha20、SHA-256、ECC)。