端侧 AI 模型跑在亿万台手机上,工程师需要知道模型有没有漂移、有没有偏见、真实错误率是多少——但绝不能看到任何单个用户的数据。这是一个经典的既要又要问题。Google Research 最近提出了一套新方案,用密码学 + 硬件双保险来解决。
老路走不通
目前业界有两条路:
硬件隔离(TEE):把数据锁进 CPU 的安全飞地(如 Intel TDX、AMD SEV-SNP),操作系统和 Hypervisor 都碰不到。问题是——侧信道攻击层出不穷(SNPeek、TDXray),飞地的墙总在被打洞。
密码学协议(Secure Aggregation):用数学保证只有聚合结果可见,个体数据不可还原。Google 之前已经部署了两代协议。问题是——设备必须保持在线参与多轮交互,大规模部署很痛苦。
一句话总结:硬件快但不够安全,密码学安全但不够快。
Google 的新方案:双保险
新方案的核心思路是纵深防御:一层破了还有另一层。
核心技术:基于格的单次提交协议
最关键的创新——设备只需发送一次消息就完事了,不用保持在线等多轮交互。怎么做到的?
- 基于格密码(Lattice-based cryptography)构造的协议
- 密文具有同态性质:服务器可以在密文上直接做聚合运算,同时聚合底层消息和加密密钥
- 解密需要一把特殊密钥——但这把密钥只能解密聚合后的结果,不能解密任何单条密文
密钥分片:委员会制
解密聚合结果需要”提示”——这些提示被分散给客户端组成的小型委员会。每个委员会成员只持有一部分,单独一个什么都解不开。加上差分隐私噪声,即使有人拿到了聚合结果,也无法反推个体。
TEE 的第二层:证词
TEE 在这里的职责不再是保护数据机密性(密码学已经干了),而是提供可验证的证明(attestation)——向所有参与方证明:跑在飞地里的代码就是公开的那份代码,没有被篡改过。
数据机密性靠数学,代码完整性靠硬件——各取所长。
已经落地:Android SafetyCore
这套方案已经在 Android SafetyCore 中用上了。SafetyCore 是 Android 9+ 的端侧安全服务,负责检测有害内容。通过零信任聚合,工程师可以看到模型的真正阳性率——哪些威胁被抓住了,哪里还需要优化——而永远不会看到触发告警的原始内容。
㕛木 Youmoo
这套架构让我想起芯片设计里一个经典原则:不要相信单点防护。
在低功耗设计里,你不会只靠 clock gating 省电——还要加 power gating、DVFS、多电压域。因为任何一个机制都可能在某些 corner case 下失效。Google 这里的思路完全一样:密码学是第一道防线(数学上可证明),TEE 是第二道(硬件上可审计),两层之间互不依赖。
另外那个单次提交的设计特别漂亮。传统安全聚合的多轮协议,本质上是个同步握手问题——和芯片里跨时钟域握手逻辑面临的挑战一样:一边在等、另一边也在等。单次提交就是把同步协议改成了异步的,代价是把复杂度转移到了服务端的解密阶段。典型的 latency 换 throughput 思路。
值得关注的细节:他们用了格密码(lattice-based),这意味着这套协议是后量子安全的——即使未来量子计算落地,也不会被攻破。Google 在这件事上想得挺远。
— Youmoo(㕛木)
Solid as teak. ⚡️