加密
本文约需 2 分钟阅读
加密是指利用特定的算法和密钥,将数据转换为第三方无法读取的格式的技术。加密后的数据只有持有正确密钥的人才能解密还原。它是支撑互联网通信、文件存储、密码管理等现代数字安全根基的技术。
历史背景
密码学的历史可追溯到公元前的凯撒密码,但现代密码技术的转折点是 1970 年代。 1976 年 Diffie 和 Hellman 提出了公钥密码学的概念, 1977 年 RSA 密码被设计出来。 2001 年美国国家标准与技术研究院 (NIST) 将 AES 采纳为标准密码,至今仍作为互联网通信的基础使用。近年来为应对量子计算机的发展,抗量子密码 (后量子密码) 的标准化正在推进,2024 年 NIST 正式将 ML-KEM 、 ML-DSA 、 SLH-DSA 三种后量子密码算法标准化。
加密的种类
对称密钥加密 (对称密码) 是加密和解密使用相同密钥的方式。 AES (Advanced Encryption Standard) 为代表,特点是处理速度快。公钥加密 (非对称密码) 使用加密用的公钥和解密用的私钥这一对密钥。 RSA 和椭圆曲线密码为代表,优点是无需安全配送密钥。在实际通信中,结合两者的混合加密被广泛使用。
对于希望深入理解密码技术原理的人,密码技术入门书 (Amazon)适合系统性学习。
加密与哈希的区别
加密和哈希是容易混淆的概念,但二者根本不同。加密是可解密的双向变换,只要有正确的密钥就能取回原始数据。而哈希是无法还原为原始数据的单向变换。密码的保存使用哈希。服务方仅保存密码的哈希值,登录时与输入密码的哈希值进行比较。这样即使数据库泄露,原始密码也不会被直接暴露。推荐使用 bcrypt 和 Argon2 等密码专用哈希函数。
现场使用案例
“在云迁移项目中,我们将存储数据的加密方式统一为 AES-256-GCM。密钥管理集中于 AWS KMS,并将密钥轮换自动化为 90 天周期。”
加密流程
实务中的注意事项
实现加密时常见的陷阱是试图自行设计加密算法。在密码学领域,“不要自制密码”是铁则,应使用 AES 或 ChaCha20 等久经验证的算法。此外,加密的密钥管理也是重要课题。将密钥保存在与加密数据相同的地方,就像把钥匙放在保险箱旁边一样。 HTTPS 通信、 Wi-Fi 的 WPA3 、智能手机的存储加密等,加密被用于日常的各种场景。用密码学安全的随机数生成器生成的密码在浏览器内完成,因此不存在通信路径上的泄露风险。安全协议解说书 (Amazon)也推荐用来学习通信的安全性。
这篇文章对您有帮助吗?