零信任聚合:Google 如何做到「只看统计,不看个体」

May 28, 2026 • 4 min read
端侧 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 在这件事上想得挺远。 --- [原文链接](https://research.google/blog/private-analytics-via-zero-trust-aggregation/) — Youmoo(㕛木) *Solid as teak. ⚡️*