【CCS'25】CryptGNN: Enabling Secure Inference for Graph Neural Networks

论文信息

  • 论文链接:https://arxiv.org/abs/2509.09107
  • PDF:https://arxiv.org/pdf/2509.09107
  • 作者:Pritam Sen, Yao Ma, Cristian Borcea
  • 机构:New Jersey Institute of Technology, Rensselaer Polytechnic Institute
  • 主题:安全多方计算, 图神经网络, MLaaS, 隐私保护推理
  • 会议/期刊:CCS 2025, Proceedings of the 2025 ACM SIGSAC Conference on Computer and Communications Security
  • 来源:https://arxiv.org/abs/2509.09107

CryptGNN 在多方安全计算中执行图神经网络推理

AI 辅助生成声明:本文由 AI 辅助生成,请自行判断内容是否准确,并建议回到原文确认关键公式、实验数值与结论。

论文速览

项目 内容
论文 CryptGNN: Enabling Secure Inference for Graph Neural Networks
作者 Pritam Sen, Yao Ma, Cristian Borcea
机构 New Jersey Institute of Technology; Rensselaer Polytechnic Institute
会议 CCS 2025, Proceedings of the 2025 ACM SIGSAC Conference on Computer and Communications Security
链接 arXivACM DOI
主题 安全多方计算、图神经网络、MLaaS、隐私保护推理
代码 Zenodo

这篇论文研究 GNN 云端推理中的多方保密计算问题:模型拥有者希望把训练好的 GNN 作为 MLaaS 提供,客户端希望上传自己的图做推理,但节点特征、边结构、模型参数、推理中间结果和最终输出都不应暴露给云服务方或另一方。普通神经网络的安全推理主要保护特征矩阵和模型权重;GNN 还包含消息传递层,计算过程需要沿边读写节点表示,访问模式本身可能泄露图拓扑。

CryptGNN 将 GNN 前向推理拆成两类层并分别设计协议:CryptMPL 负责消息传递层,在源/目的节点索引被秘密共享的情况下完成安全读、写和聚合;CryptMUL 负责特征变换层中的矩阵乘法和元素级乘法,用预处理生成辅助数据,降低在线推理阶段的通信成本。系统基于加法秘密共享,支持任意数量的 SMPC 计算方,不依赖可信服务器,并在诚实但好奇模型下允许 P-1 个计算方合谋。

实验部分使用 FAUST、TUDataset 的 PROTEINS/ENZYMES,以及合成图等任务评估 GIN 推理。论文报告 CryptGNN 与明文 GIN 达到相同分类准确率;在 FAUST 上,6890 个节点、41328 条边的图在三方设置下平均推理约 22.3 秒;平均 20000 个节点、200000 条边的合成图约 75 秒。通信上,论文表 3 报告大规模合成图中 CryptGNN 每个计算方通信量为 81.9 MB,CrypTen 为 6103 MB

一句话概括:CryptGNN 将 GNN 的沿边访问过程显式建模为安全消息传递协议,并避免把稀疏图结构直接展开为加密邻接矩阵。

论文详读

问题定义与计算对象

MLaaS 设置下的图数据与模型参数保密需求

GNN 被用于药物筛选、金融交易网络、代码图分析、恶意软件控制流图和 IoT 拓扑分析等图数据任务。这些场景的输入不是普通表格特征,而是图。图里有两类敏感信息:一类是节点特征,例如分子属性、账户特征、代码或设备状态;另一类是边结构,例如交易关系、程序依赖关系、拓扑连接和通信路径。后者在许多业务里本身就是资产或隐私。

同时,模型参数也属于保护对象。第三方模型拥有者可能用私有数据训练 GNN 模型,并通过推理 API 提供服务。如果客户端可以观察模型参数,存在模型窃取风险;如果云服务方可以看到模型参数和用户图,也会破坏 MLaaS 的信任边界。因此本文的设置至少包含三类实体:模型拥有者、一个或多个数据拥有者、多个云端计算方。

消息传递层中的拓扑访问泄漏

已有隐私推理系统可以处理卷积层、全连接层或激活函数,但 GNN 的消息传递层引入了访问模式问题。典型消息传递可以写成:

x'_i = \sum_{j \in \mathcal{N}(i)} x_j

这里的计算不只是对矩阵做固定形状运算,而是要根据边列表读取源节点 S[j] 的表示,并写入目的节点 D[j]。如果直接把图转成邻接矩阵再做安全矩阵乘法,稀疏图会被扩成 N \times N 的稠密结构,通信和计算开销随节点数平方增长。如果让某个可信服务器帮助定位边,则又引入了本文排除的信任假设。

CryptGNN 系统架构和 GNN 推理流程

参与方模型与安全目标

CryptGNN 采用的是诚实但好奇威胁模型。云端计算方会按照协议执行,但可能从自己看到的分片、消息、访问模式和中间结果中推断客户端图或模型参数。论文允许最多 P-1 个计算方合谋,并进一步考虑这些计算方可能与模型拥有者合谋以窥探数据拥有者输入,或与某个恶意数据拥有者合谋以窥探模型参数及其他数据拥有者输入。

这个威胁模型有两个关键边界。第一,协议不处理恶意偏离行为,例如计算方故意发送错误消息、跳过步骤或伪造结果。第二,模型结构本身被视为公开信息,即层类型、层顺序和层数可以被模型拥有者共享给计算方和客户端;被保护的是参数值、输入图、节点特征、中间结果和输出。换言之,CryptGNN 解决的是安全推理的保密性问题,不是完整性验证或机密模型架构保护。

CryptGNN 与相关安全 GNN 推理工作的能力对比

CryptMPL 消息传递协议

边列表输入与稀疏图计算复杂度

CryptMPL 处理的输入是加法秘密共享格式下的节点特征矩阵 A、源节点索引数组 S 和目的节点索引数组 D。论文没有选择加密邻接矩阵,而是保留边列表表示:每条边对应一个源索引和目的索引。由于真实图通常是稀疏图,边列表使消息传递开销与边数 M 相关,而不是与节点数平方 N^2 相关。

CryptMPL 的基本流程是对每条边执行三步:安全读取源节点表示、安全写入目的节点位置、在输出矩阵上聚合。算法 1 可概括为:

Y \leftarrow F_{SR}(\langle A \rangle, \langle S[i] \rangle)
G \leftarrow F_{SW}(\langle Y \rangle, \langle D[i] \rangle)
\langle A^*_\xi \rangle \leftarrow F_{SA}(\langle A^*_\xi \rangle, \langle G \rangle)

最后再减去预处理阶段计算好的噪声影响 \xi^*,得到真实输出 \langle A^* \rangle

CryptMPL 安全消息传递层伪代码

源节点读取与目的节点写入的索引隐藏

安全读取 F_{SR} 的思路是:每个计算方把自己持有的特征矩阵分片按随机量旋转,同时把源索引分片按同一随机量平移;这些矩阵和索引在环形通信中依次被更新。由于总旋转量和总索引偏移量一致,最后读取到的位置仍对应真实源节点,但单个计算方看不到原始源索引。

安全写入 F_{SW} 需要同时保证写入正确性和目的索引隐藏。写入必须把源节点表示放到目的节点位置,但如果只在某一行出现非零值,目的索引会从矩阵形状中泄露。CryptMPL 让每个计算方先把自己的向量分片写到第 0 行,再按目的索引分片旋转矩阵;同时加入噪声掩码,避免其他方从最终矩阵中的非零模式反推目的节点。

CryptMPL 安全读取和安全写入流程

客户端噪声预处理与聚合结果校正

CryptMPL 的去噪依赖客户端预处理。客户端知道图结构,可以在噪声矩阵 \xi 上执行一次同样的消息传递,得到噪声经过聚合后的影响 \xi^*,再把 \xi\xi^* 以秘密共享方式分发给计算方。计算方在 masked feature 上执行消息传递:

A^*_\xi[i] = \sum_{j \in \mathcal{N}(i)} A[j] + \xi[j]

然后本地减去:

A^*[i] = A^*_\xi[i] - \xi^*[i]

该设计避免引入可信服务器,同时要求客户端执行与图结构相关的预处理并上传辅助数据。论文还指出,如果每次边处理使用相同噪声,可能通过重复访问模式泄露节点度;因此协议用 PRF seed 为不同轮次生成不同噪声矩阵。

批处理索引编码与拓扑重构概率

逐边执行读写会让通信轮数随边数增长。CryptMPL 将边分批,把每批中的源/目的索引表示为相对索引:第一个索引仍秘密共享,后续索引用相对第一个索引的明文偏移表示。该编码方式允许多个边批次的矩阵拼接后一次传输,从而减少通信轮次。

相对索引会暴露一个批次内部的相对结构。论文给出的图结构正确重构概率上界随批次数 R 变化,写作:

\Pr[\text{正确重构图结构}] \leq N^{-2R}

因此,较大的 batch size 对应较少通信轮次;较多批次对应更低的拓扑重构概率上界。CryptGNN 的批处理参数需要同时考虑在线延迟和拓扑泄漏概率。

CryptMUL 特征变换乘法协议

GNN 的特征变换层包含线性层、非线性激活近似、归一化等操作,其中乘法是 A-SS 下的主要瓶颈。CryptGNN 将乘法分成矩阵乘法和元素级乘法两种场景,并针对 GNN 推理的稳定性做优化。

线性层通常是:

X' = X \otimes H + B

其中 X 来自客户端图的中间表示,HB 是模型参数。CryptMUL 的关键观察是:模型参数在多次推理中固定,而输入表示每次变化。因此,Beaver triple 中与模型参数相关的一部分可以复用或本地派生;每次推理只需要对与输入相关的部分生成新变体,避免通用框架为每次乘法都在线依赖可信方生成三元组。

对元素级乘法,CryptMUL 先预生成加法-乘法秘密共享对,再从乘法共享格式生成 Beaver triple,最后转换回加法共享格式。由于 GNN 结构固定,单次推理需要的元素级乘法数量可提前估计,辅助数据可以离线准备。该设计没有消除非线性层的乘法开销,而是把部分辅助材料生成移到离线阶段。

CryptMUL 矩阵乘法和元素级乘法协议流程

秘密共享视图下的安全论证

CryptGNN 的安全论证基于加法秘密共享和模拟式定义。对环 \mathbb{Z}_q 上的秘密 xP 方加法秘密共享可写作:

x = \sum_{p=1}^{P} \langle x \rangle_p \pmod q

数据静态存储时,模型参数、节点特征、源/目的索引都以 P 方加法秘密共享保存。只要至少一个计算方不合谋,P-1 个分片不足以恢复秘密。

乘法层使用 Beaver triple 的思想。若离线阶段生成满足 c = a \cdot b 的共享三元组 \langle a \rangle,\langle b \rangle,\langle c \rangle,在线阶段可公开差值:

d = x - a,\qquad e = y - b

并由各方组合得到乘法结果:

\langle xy \rangle = \langle c \rangle + d\langle b \rangle + e\langle a \rangle + de

CryptMUL 的矩阵乘法和元素级乘法协议围绕这一预处理乘法结构改写,以减少在线阶段对可信方或额外交互的依赖。

执行过程中的安全性还涉及访问模式。对 CryptMPL,论文分别证明节点特征和图结构在读、写、聚合过程中不被泄露。读协议中,矩阵旋转和索引平移共同隐藏源节点;写协议中,矩阵噪声隐藏目的位置;聚合只做本地加法,不新增通信视图。对 CryptMUL,论文证明新生成或派生的 Beaver triple 不泄露输入表示和模型参数,且在模型拥有者或某个数据拥有者与计算方合谋的扩展情形下,仍不会让其他实体的秘密暴露。

需要注意的是,这些保证都建立在诚实执行协议、通信信道安全、模型结构公开、预处理材料正确生成等条件上。论文没有声称抵抗主动恶意计算方,也没有提供可验证推理结果的机制。

实验设置与性能结果

固定点编码误差与分类一致性

作者实现了 Python 原型,用 CrypTen 作为秘密共享和部分 FTL 实现基础,并用 CryptMUL 替换其需要可信方的乘法操作。实验使用 FAUST、PROTEINS、ENZYMES 等图分类数据集,模型采用 GIN。由于固定点编码和非线性近似会带来数值误差,论文报告一个包含 2000 个节点、10 维特征的图中,明文值与 A-SS 域值的平均差异为 5.1 \times 10^{-5};最终分类 ID 不受影响,明文模型与 CryptGNN 模型达到相同推理准确率。

这说明 CryptGNN 的协议在机器学习任务层面保持了推理语义。但这个结论不等同于所有任务都无精度损失,因为评估集中在 GIN 图分类,且判定指标是分类结果而非所有中间浮点值。

消息传递层的执行时间与通信开销

CryptGNN 和 CrypTen baseline 的差异主要出现在两个地方:CrypTen 需要可信服务器,而且消息传递采用邻接矩阵式实现;CryptGNN 使用边列表和 CryptMPL。论文 Figure 5 显示 CrypTen 相对 CryptGNN 的执行时间比随参与方数量上升而增大,尤其在 FAUST 这类较大图上更明显。作者给出的绝对时间是:FAUST 图在三方设置下平均推理约 22.3 秒,平均 20000 节点、200000 边的合成图约 75 秒

这些数字表明,论文评估的推理延迟处在秒级到分钟级范围。对于低延迟在线推荐或高 QPS 实时风控任务,还需要进一步评估请求并发、排队延迟和部署资源;对于药物筛选、代码安全分析等推理频率较低的任务,论文报告的延迟更接近可接受区间。

CryptGNN 与 CrypTen 通信开销对比

图规模、节点度与 CryptMPL 运行开销

论文 Figure 6(a) 比较 CryptMPL 与明文 MPL 的执行时间比。小图上的相对开销较高,但作者指出绝对时间仍较低,例如小图约 190 ms。随着边数增加,明文 MPL 本身也随边数线性增长,相对开销下降。Figure 6(b) 显示 SecGNN/CryptMPL 的执行时间比约为 1.5,且该比值随最大度与平均度差距增大而上升;这一趋势对应真实图常见的长尾度分布。

Figure 7(a) 比较了 CryptMPL 与邻接矩阵式 MPL。在 PPI 数据集上六方设置下,邻接矩阵式 MPL/CryptMPL 的执行时间比约为 25。该结果对应前文的复杂度分析:在稀疏图上,避免 N \times N 邻接矩阵可以降低消息传递层的计算和通信负担。

CryptMPL 在不同图规模、节点度、参与方数量和批大小下的性能

线性层乘法协议的规模效应

Figure 8 显示,随着参与方数量 P、节点数 N 或输出维度 K' 增大,CrypTen/CryptMUL 的执行时间比上升。这与协议结构一致:CrypTen 与可信服务器通信的成本随规模扩大而增加,而 CryptMUL 把部分三元组更新变成本地计算。

元素级乘法部分的结论不同。论文指出 CryptMUL 和 CrypTen 在元素级乘法上属于同阶开销,差异主要在于 CryptMUL 不需要可信服务器。因此,CryptMUL 对 FTL 的作用需要区分矩阵乘法层和元素级乘法层,不能概括为所有 FTL 操作的统一加速。

CryptMUL 线性层执行时间相对 CrypTen 的提升

批判性分析

相对于既有安全 GNN 推理协议的设计差异

CryptGNN 没有宣称提出新的基础密码学原语,而是把已有 SMPC 原语与 GNN 操作结构重新组合。消息传递层使用边列表、旋转、平移、噪声和批处理隐藏图结构;特征变换层利用模型参数固定、推理乘法数量可预估的事实减少在线开销。相对于通用 MPC 框架,该设计把 GNN 中的稀疏边访问和固定推理结构显式纳入协议。

诚实但好奇模型与主动安全缺口

论文允许 P-1 方合谋,但前提是各方诚实执行协议。真实云环境中,错误实现、恶意节点、回滚攻击、异常中止和伪造输出都可能出现。论文讨论中也承认后续需要面向 active adversaries 加入零知识证明或可验证计算。因此,CryptGNN 当前覆盖的是诚实但好奇模型下的保密推理,不包含端到端可审计的恶意安全推理机制。

同构图与 GIN 设置下的模型覆盖范围

实验和协议原生支持主要围绕 GIN 风格的消息传递。作者指出可以扩展到 GraphSAGE、GAT 等结构,但这些扩展会带来新的安全操作,例如隐私保护采样、特征拼接和注意力系数计算。异构图也未被原生支持,因为节点类型和边类型本身也可能泄露结构信息。对于真实知识图谱、交易网络和多关系社交图,这个限制会影响可用性。

服务化部署指标之外的性能评估范围

论文实验覆盖本地多进程和 AWS t2.micro 分布式设置,并报告通信量、批大小、参与方数量和图规模的影响。从 MLaaS 服务评估角度看,实验尚未覆盖高并发、多客户端队列、预处理缓存失效、模型版本更新、跨区域网络、失败恢复和计费粒度等指标。因此,现有实验主要支撑安全 GNN 推理在给定数据集和部署设置下的端到端可执行性,还不能推出低延迟 API 的大规模运营结论。

批处理相对索引与剩余拓扑泄漏

CryptMPL 的批处理把相对索引公开给计算方,以换取通信轮数下降。论文给出了重构概率上界,并认为增加批次数能提升安全性。但真实图通常不是均匀随机图,度分布、社群结构、节点排序和业务先验可能使攻击成功率高于随机猜测。实际部署时,需要把边排序、batch 构造、节点重编号和背景知识攻击纳入评估,而不能只依赖理论上界。

论文结论概括

CryptGNN 针对 MLaaS 场景中的 GNN 安全推理问题,给出了一套基于加法秘密共享的多方计算协议。该协议将 GNN 前向过程拆分为消息传递层和特征变换层:CryptMPL 使用边列表表示、安全读写、噪声抵消和批处理来隐藏图结构访问模式;CryptMUL 利用模型参数固定和推理结构可预估的特点,将部分乘法辅助数据生成前移到预处理阶段。系统目标是在不引入可信服务器的条件下,同时保护客户端节点特征、图拓扑、模型参数、中间表示和推理输出。

论文实验在 GIN 图分类任务上验证了协议的正确性,并报告 CryptGNN 在通信量和执行时间上相对 CrypTen、SecGNN 以及邻接矩阵式消息传递实现具有更低开销。上述结果建立在诚实但好奇威胁模型、模型结构公开、预处理材料正确生成以及同构图消息传递设置之上。论文讨论的后续方向包括面向恶意对手的主动安全扩展、异构图支持、复杂 GNN 结构适配以及更完整的服务化部署评估。

参考来源