1. 公钥密码学到底是什么?
公钥密码学(Public-Key Cryptography, PKC)又称非对称密码学,用一组数学相关的“钥匙”解决信息安全难题:
- 公钥:可公开,用来加密或验证签名。
- 私钥:必须保密,用来解密或签署消息。
对比对称密码学“一条密钥打开所有门”,公钥、私钥各司其职,既防止窃听,又避免密钥传输的鸡生蛋问题,现代加密、数字货币、电子投票 都离不开它。
2. 公钥如何加密、私钥如何解密?
- Alice 生成公钥 (P_A) 与私钥 (S_A)。
- Alice 把 (P_A) 贴在网上。任何人都能用它加密消息。
- Bob 下载 (P_A),给“Hello Alice”加密得到密文 (C)。
- 发送途中,即使 Eve 拦截,也只能看到乱码。
- Alice 用 (S_A) 解密,原文重现。
👉 想亲手跑通 RSA Demo?点此模拟加密/解密完整流程。
3. 公钥与私钥的数学关系
- 本质:单向函数。已知公钥及算法,闪电级计算“加密”,却无法反向逆推出私钥。
- 密钥长度:现代安全标准需 RSA-2048 位 或 ECC-256 位。2²⁰⁴⁸ 次强行枚举,接近不可行。
生成示例
- 选两极大质数 (p, q)。
- 计算 (n=pq)(公开模数)。
- 欧拉函数 (\varphi(n)=(p-1)(q-1))。
- 选与 (\varphi) 互质的公钥指数 (e)(常见 65537)。
- 计算私钥指数 (d \equiv e^{-1}\bmod\varphi(n))。
4. 数字签名:像写亲笔信一样可信
- 签名流程:用私钥
签名生产哈希 → 得到签名 → 与数据一起广播。 - 验证流程:用公钥解码签名 → 比对数据哈希,一致即为“本人签署,未被篡改”。
比特币转账就是数字签名的教科书案例:签名证明所有权,广播全网确认。
5. PKC 解决了哪些传统难题?
| 传统对称加密难题 | 公钥密码学对策 |
|---|---|
| 密钥如何安全分享 | 先交换公钥,再进行加密 |
| 消息是否被篡改 | 附数字签名,公钥即可验证 |
| 如何匿名证明身份 | 质押私钥签名,公开验证身份 |
6. 速度与风险的平衡艺术
性能瓶颈:RSA 非对称计算是 AES 的千分之一吞吐。于是主流做法是“混用”:
- 会话密钥(AES)快加密大数据。
- RSA/ECC公钥仅加密这小段 AES 密钥和验证签名。
私钥一旦丢失 全部加密文件、钱包余额归 0;一旦泄露 形同裸奔。强烈建议:
- 硬件钱包或多重签名分散管理;
- 定期备份 助记词 或离线加密存储。
7. 场景实战:电子邮件、SSL 与加密投票
- 邮件加密(PGP/GPG):公钥群发,私钥收阅。
- HTTPS/SSL:浏览器用 网站公钥加密 对称密钥,随后 AES 全速跑。
- 电子投票:选民在家电脑上签选票私钥 → 任何人都能公钥验证选民身份 → 结果上链。
8. 区块链里的重头戏:钱包、地址与 ECDSA
- 地址 ≠ 公钥:先用私钥 → 公钥 → sha256 & ripemd160 → 基58编码,才是钱包地址。
- 椭圆曲线数字签名算法 ECC 取代 RSA,缩短密钥长度同时保持安全边界。
交易示例:
- Alice 用私钥签名“转出 0.1 BTC”。
- 矿工打包进区块,用 Alice 公钥校验 → 确认合法 → 记录在链上不可篡改。
9. 问答时间:关于 PKC 你可能最关心
Q1:公钥泄露了安全吗?
A:安全。公钥只能加密、验证,不能解密或伪造签名。没有私钥,盗取不了信息。
Q2:需要多长密钥才足够?
A:RSA 建议 ≥2048 位;ECC 256 位即可;量子威胁假说下,可关注后量子算法研究。
Q3:为何数据库里还看到对称加密?
A:IO 性能冲突。先用 RSA 握手约定会话对称密钥,再用 AES 高速加密大体积文件。
Q4:纸质备份会不会也危险?
A:是。需防火、防水、防盗,最好配合加密保险箱与多人多地点分散方案。
Q5:手机丢了,钱包里的比特币怎么办?
A:只要私钥或助记词在,换手机、换 App 均可找回;没有私钥,链上无人可救。
10. 结语:从数学公式到全球支付
从 1977 年 RSA 三剑客发表论文,到今日的加密货币、NFT、闪电网络,公钥密码学把“复杂数学难题”化为“可验证信任”。它让加密不再神秘,让互联网交易不再依赖中心化背书,也让个人隐私重新掌握在你自己手里。