📖 术语
🔰 新手
🔐 全同态加密 FHE
一种加密方式,让计算机不必解密就能直接对加密数据做运算。等你最终打开结果,它和你拿原始数据去算出来的一模一样。
💡
常见误解 — FHE 能让数据彻底碰不得吗?不全是。服务器在运算的过程中确实看不到你的原始数字,可从一个非常具体的查询里解密出的结果,仍可能透出当初输入了什么。FHE 藏住的是输入,未必藏得住输出会泄露什么。
📦 通俗来说 — 那位会算账的会计
设想你把一个装着数字的密封上锁的盒子交给会计。有了 FHE,他能直接在密封盒子上把账算清楚,再交回一个装着答案、同样密封的新盒子。他自始至终看不见你的真实数额,只有你握着钥匙能打开结果。这就是它的全部精髓:计算机处理的是一份全程锁着的数据,它交回的那个锁着的答案,照样准确无误。
🆚 这跟普通加密有什么不一样?
普通加密保护的是存着或传输中的数据,可一旦你要用它,就必须先解密——也就把它暴露了出来。FHE 保护的是正在被处理的数据。它的密文经过特殊构造,对打乱版本做的运算,正好对应到对隐藏数字做的同样运算。所以人们把它叫做「用于使用中数据的加密」。
| 状态 | 普通加密 | FHE |
|---|---|---|
| 💾 静止(存着) | ✅ 受保护 | ✅ 受保护 |
| 📡 传输中(发送) | ✅ 受保护 | ✅ 受保护 |
| 🧮 使用中(做运算) | ❌ 必须先解密 | ✅ 保持加密 |
🔡 「全」到底指什么?
它说的是你能在锁着的数据上跑多少运算。全同态加密支持任意深度的任意运算——这是最大的灵活度。从对加密数字做加法、乘法这些最基本的积木出发,就能搭出比较、逻辑门,乃至更多。它那几位本事更弱的「表亲」则受限不少:
- ➕ 部分同态加密 — 只支持一种运算
- 🔢 有限同态加密 — 只支持有限步数的运算
- ♾️ 全同态加密 — 支持任意运算,没有深度上限
⛓️ 新手为什么会在加密圈遇到 FHE
大多数区块链都极度透明:每一笔余额、每一笔交易都公开可查。FHE 让机密智能合约成为可能——运算跑在加密后的数值上,验证节点和公众都看不到背后的数字,可结果依旧正确。这就打开了一扇门:加密余额、隐私 DeFi、机密代币、密封竞价拍卖、不公开的投票。Zama 正在为以太坊等公链打造一层 FHE 机密层。
🛡️ FHE 还有一点受人看重:它通常被认为具备抗量子特性,因为它建立在格密码的困难性之上。把这当成一个预期的性质,而非已被证明的保证——具体要看用的是哪种方案。
🚨 新手须知
- 🐢 它很慢 — 在加密数据上做运算,可能比在明文上慢许多倍;这是普及还处在早期的主要原因
- 🕳️ 输出可能泄露 — FHE 藏住的是输入,但一个非常具体的查询得出的结果仍可能透露些什么;访问权限规则依旧重要
- 🔑 密钥就是一切 — 谁握着解密密钥,谁就能打开结果,所以密钥的保管才是真正的安全边界
- 🧪 仍在成熟中 — 它能用,也在快速变好,但要预料到会有些毛刺、工具也还在变
❓ 常见问题
- 用了 FHE,计算机会看到我的真实数据吗?
- 不会。运算的整个过程中,计算机看到的只是打乱后的密文。它在锁着的数据上做运算,再交回一个锁着的答案。只有你手里的密钥能打开结果,所以你的真实数字在处理过程中从不暴露。
- 全同态加密里的「全」是什么意思?
- 意思是任意深度的任意运算都能在加密数据上跑起来。部分同态加密只支持一种运算,有限同态加密只支持有限的步数。「全」把这些限制都拿掉了。
- 服务器用了 FHE,我的数据就绝对安全了吗?
- FHE 藏住的是输入,未必藏得住输出会泄露什么。服务器看不到你的原始数字,但从一个非常具体的查询里解密出来的结果,仍可能透露关于你的信息。访问权限规则和周密的设计依旧重要。
- 既然这么好,FHE 为什么还没到处都在用?
- 在加密数据上做运算,比在明文上慢得多,常常慢上许多倍。这份性能代价,正是 FHE 普及还处在早期的主要原因,不过它正在快速改善。