加密基础知识与密码保护
本文约需 10 分钟阅读
在互联网上传输的数据通过加密技术防止第三方窃听和篡改。 密码保护也深度依赖于加密技术,理解加密基础知识是保护账户安全不可或缺的知识。截至 2025 年, 随着量子计算机的发展,NIST 正在推进后量子密码 (PQC) 的标准化,加密技术正迎来新的转折点。 关于量子计算如何影响密码安全,请参阅后量子时代的密码安全一文。 本文将解释对称加密与公钥加密的区别、哈希的工作原理,以及 passtsuku.com 生成的密码的密码学强度。
什么是加密?
加密是使用特定算法和密钥将原始数据(明文)转换为无法理解的数据(密文)的过程。只有拥有正确密钥的接收者才能将密文解密为明文,因此即使数据在通信路径上被第三方截获,内容也无法被读取。HTTPS 通信、电子邮件加密、文件保护等日常场景中都使用了加密技术。
加密的强度取决于所使用的算法类型和密钥长度。密钥越长,通过暴力破解找到正确密钥所需的计算量呈指数级增长,破解就越困难。例如,AES-128 的密钥空间为 2 的 128 次方(约 3.4 × 10 的 38 次方)种可能,即使每秒尝试 10 亿个密钥,完全搜索也需要约 10 的 21 次方年。当前标准加密算法推荐使用 128 位以上的密钥长度。
对称加密与公钥加密
对称密钥加密
对称密钥加密使用相同的密钥进行加密和解密。代表性算法是 AES(高级加密标准),由于其高速处理能力,被广泛用于大量数据的加密场景。AES-256 每秒可加密数 GB 的数据,也被用于文件加密和全盘加密(BitLocker、FileVault)。
对称密钥加密的挑战是"密钥分发问题"。由于发送方和接收方必须共享相同的密钥,因此需要一种安全地将密钥传递给对方的方法。公钥加密就是为了解决这个问题而发明的。一个常见的误解是"对称密钥加密是安全性低的旧技术",但 AES 至今仍是使用最广泛的加密算法,只要密钥管理得当,就具有极高的安全性。
要系统地学习加密算法的原理,密码学入门书籍 (Amazon)可以作为参考。
公钥加密(非对称加密)
公钥加密使用一对密钥:用于加密的"公钥"和用于解密的"私钥"。公钥可以向任何人公开,而私钥仅由所有者持有。RSA 和椭圆曲线密码 (ECC) 是代表性算法。RSA-2048 的安全性被认为在 2030 年左右之前是足够的,但如果需要更长期的安全性,建议使用 RSA-4096 或 ECC (256 位以上)。这项技术构成了 PKI (公钥基础设施) 的基础,适当的密钥管理对于维护安全至关重要。
在 HTTPS 通信中,采用混合方式:首先使用公钥加密安全地交换共享密钥,然后使用快速的对称密钥加密进行后续通信。这种机制在解决密钥分发问题的同时实现了高速加密通信。需要注意的是,公钥加密比对称密钥加密慢 100 到 1000 倍,因此通常不直接用于加密大量数据,而是限于密钥交换和数字签名。
加密方式比较
| 项目 | 对称密钥加密 (AES) | 公钥加密 (RSA/ECC) |
|---|---|---|
| 密钥数量 | 1 个(发送方和接收方共享) | 2 个(公钥 + 私钥) |
| 处理速度 | 快速(数 GB/秒) | 慢速(对称密钥的 1/100 到 1/1000) |
| 密钥分发问题 | 有(需要安全的共享方式) | 无(公钥可以公开) |
| 推荐密钥长度 | 128 位以上(推荐 AES-256) | RSA-2048 以上 / ECC-256 以上 |
| 主要用途 | 文件加密、磁盘加密、通信数据加密 | 密钥交换、数字签名、证书 |
| 推荐场景 | 需要加密大量数据的场景 | 需要安全密钥交换或身份验证的场景 |
在实际的 HTTPS 通信中,采用混合方式:使用公钥加密安全地交换共享密钥,然后使用快速的对称密钥加密进行后续通信。通过结合两者的优势,同时实现了安全性和速度。
到底该怎么做?
您不需要理解加密技术的细节,但日常应该实践的要点是明确的。初学者应养成仅在 HTTPS 网站上输入密码的习惯,并使用 passtsuku.com 生成 16 个字符以上的随机密码。中级用户应启用磁盘加密(BitLocker / FileVault),并使用密码管理器为每个服务管理唯一的密码。加密不是"设置好就完事了",只有与强密码结合使用才能发挥真正的价值。
哈希与密码保护
与加密不同,哈希是一种单向转换。 可以从原始数据计算出哈希值,但无法从哈希值恢复原始数据。 利用这一特性,服务端以哈希形式存储密码。登录时,将输入的密码进行哈希处理, 并与存储的哈希值进行比较来完成认证。
目前推荐的密码哈希算法是 bcrypt、scrypt 和 Argon2。这些算法被有意设计为高计算成本,大幅降低攻击者通过暴力破解猜测密码的速度。例如,bcrypt(成本因子 12)每次哈希计算约需 250 毫秒,即使使用 GPU 也只能每秒尝试数千次。相比之下,SHA-256 等通用哈希函数每秒可进行数十亿次计算,不适合用于密码哈希。
盐值与胡椒值
在哈希处理时,通过向密码添加称为"盐值"的随机字符串, 即使是相同的密码也会生成不同的哈希值。这使得使用预先计算的哈希值表(彩虹表)的攻击失效。 此外,添加称为"胡椒值"的服务器端秘密值,即使数据库泄露也能使密码破解变得困难。 如果不使用盐值,使用相同密码的所有用户将拥有相同的哈希值, 只需破解一个密码就会危及所有使用该密码的账户。
passtsuku.com 生成密码的密码学强度
passtsuku.com 使用 Web Crypto API 的 crypto.getRandomValues() 生成密码。该 API 基于密码学安全的伪随机数生成器 (CSPRNG),生成的密码没有统计偏差。由于 CSPRNG 从操作系统的熵池获取种子,因此与 Math.random() 等可预测的伪随机数有本质区别。
密码强度通过熵(比特数)来衡量。例如,使用大写字母、小写字母、数字和符号 4 种字符(约 95 个字符)的 16 位密码,通过 log2(95^16) 计算约有 105 比特的熵。即使使用当前的超级计算机(每秒 10^18 次运算),完全搜索也需要约 10^13 年。而仅使用小写字母的 8 位密码只有约 38 比特,可能在几小时内被破解。
要深入理解密码熵和密码学强度,密码强度与密码学理论专业书籍 (Amazon)是实用的参考资料。
日常使用加密的要点
要最大限度地享受加密技术的好处,一些实践习惯很重要。首先,只在启用了 HTTPS 的网站上输入密码。在 HTTP 网站上,通信未加密,密码以明文发送。截至 2024 年,约 95% 的网络流量已 HTTPS 化,但剩余的 5% 仍然存在风险。
接下来,请使用 passtsuku.com 生成的足够长的随机密码。使用密码学安全随机数生成的 16 个字符以上的密码, 即使在哈希状态下也对暴力攻击具有极高的抵抗力。为每个服务设置不同的密码并使用密码管理器管理, 即使一个服务被入侵也能防止对其他账户的影响。关于密码熵与强度的关系, 请参阅密码熵的文章。要了解随机数质量如何影响密码安全,请参阅随机数质量的文章。浏览网页时,SSL/TLS 加密保护传输中的数据,使用 VPN 可以增加额外的加密层。
对于存储在设备上的数据,启用磁盘加密(Windows 的 BitLocker、macOS 的 FileVault、智能手机的设备加密)可以在设备丢失或被盗时保护数据。加密不是"设置好就完事了"的技术,只有与强密码结合使用才能发挥真正的价值。请注意,如果磁盘加密的密码很弱,加密本身就毫无意义。
加密技术直接保护资产的典型例子是加密货币钱包的安全,详情请参阅加密货币钱包安全。
现在就能做的事
- 使用 passtsuku.com 生成 16 个字符以上的随机密码,并设置为主要邮箱账户的密码(在强度计上确认达到 100 比特以上)
- 启用 PC 的磁盘加密(Windows: BitLocker、macOS: FileVault、智能手机: 设备加密)
- 养成在浏览器地址栏确认 HTTPS(锁图标)的习惯,不在 HTTP 网站上输入密码
- 在密码熵的文章中确认密码熵与强度的关系,重新审视自己密码的强度
常见问题
- 对称加密和非对称加密有什么区别?
- 对称加密使用同一密钥进行加密和解密,速度快但密钥传递是难题。非对称加密使用不同密钥,密钥分发安全但处理较慢。实际通信中主流是两者结合的混合方式。
- AES-256 是什么?安全吗?
- AES-256 是具有 256 位密钥长度的对称加密标准,是目前最广泛使用的加密标准。美国政府也用它保护机密信息,目前没有已知的实用解密方法。
- 密码加密和哈希有什么区别?
- 加密是可逆的,可以用密钥恢复原始数据。哈希是单向转换,无法还原。密码存储应使用哈希 (bcrypt 或 Argon2),不推荐使用加密。
这篇文章对您有帮助吗?