3. 安全模型与敌手

在多方安全计算(MPC)工程中,安全模型不是论文里的抽象假设,而是直接决定协议选型、性能预算和系统复杂度的工程约束。同一个计算任务,声明“半诚实安全”还是“恶意安全”,实现代价可能相差一个数量级。理解三种主流敌手模型——半诚实(semi-honest)、恶意(malicious)、隐蔽(covert)——的差异,是做出合理工程取舍的前提。

三种敌手模型的核心区别

半诚实敌手,又称被动敌手(passive adversary),其行为假设是:参与方严格按协议执行,但会记录所有中间值并试图从中推断他人隐私。它不篡改消息、不偏离协议,只是“偷看”。恶意敌手,又称主动敌手(active adversary),可以任意偏离协议:伪造消息、提前中止、选择性丢弃、发送不一致的输入。隐蔽敌手则介于两者之间:它可能作恶,但一旦作恶被检测到的概率超过某个阈值(通常记为 ε),就会因声誉或惩罚机制而放弃攻击。

从安全强度看,恶意 > 隐蔽 > 半诚实;从工程代价看,顺序恰好相反。半诚实协议通常只需保证“视图不可区分”,而恶意协议必须额外保证“行为可验证”或“偏差可检测”。这一根本差异,导致两者在密码学原语、通信轮数和计算开销上全面分化。

三种敌手模型:安全强度与工程代价的权衡 半诚实敌手 Semi-honest / Passive 行为假设:严格按协议执行 攻击能力:记录中间值、推断隐私 安全目标:视图不可区分 典型原语:OT、Beaver三元组 通信轮数:常数轮(如3轮) 隐蔽敌手 Covert Adversary 行为假设:可能作恶,但怕被抓住 攻击能力:偏离协议,但受检测概率约束 安全目标:作恶被检测概率 ≥ 1-ε 典型原语:cut-and-choose、承诺 通信轮数:中等(如5-10轮) 恶意敌手 Malicious / Active 行为假设:任意偏离协议 攻击能力:伪造、中止、不一致输入 安全目标:行为可验证或偏差可检测 典型原语:零知识证明、MAC、SPDZ 通信轮数:较多(如10-20轮) 工程代价对比(以两方计算为例,相对半诚实基准) 维度 半诚实 隐蔽 恶意 计算开销 1× 3–10× 10–100× 通信量 1× 2–5× 5–50× 实现复杂度 低 中 高 适用场景 可信合作方 有声誉约束 互不信任

半诚实模型:性能优先的默认选择

半诚实模型是MPC工程中最常见的起点。以两方半诚实安全计算为例,基于不经意传输(OT)和混淆电路(Garbled Circuit)的协议,通信轮数可以压缩到常数轮,计算开销主要来自对称密码学操作。在具体实现中,发送方生成混淆电路,对每条线缆分配两个随机标签,用AES等对称加密算法加密真值表;接收方通过OT协议获取自己输入对应的标签,逐门解密得到输出。整个过程不需要零知识证明,也不需要消息认证码(MAC)来验证一致性。

一个典型的教学示例参数:假设双方要计算一个32位整数的比较函数,混淆电路包含约200个门。在半诚实模型下,发送方生成200个门对应的密文,每个密文约16字节,总通信量约3.2KB;接收方执行200次AES解密。若网络延迟为20ms,整个协议可在3轮通信内完成,总耗时约60ms加上计算时间。这个量级对于许多隐私保护查询场景已经足够。

但半诚实模型的工程风险在于:它完全依赖参与方“守规矩”。一旦某一方在OT阶段发送错误的选择位,或在混淆电路评估阶段篡改标签,协议无法检测,输出结果可能被操纵。因此,半诚实模型只适用于参与方有强信任关系或声誉约束的场景,例如同一集团下的子公司之间、或受合同约束的合作方之间。

恶意模型:安全优先但代价高昂

恶意模型要求协议在参与方任意偏离时仍能保证安全。工程上通常通过两种途径实现:一是让每个参与方证明自己的行为正确(零知识证明),二是让偏差可被检测并归因(MAC、cut-and-choose)。以SPDZ协议为例,它在半诚实协议基础上增加了信息论MAC:每个秘密份额附带一个全局密钥的MAC值,计算过程中MAC随份额同步变换。最终打开结果时,各方校验MAC一致性;若不一致,则协议中止并指出存在恶意行为。

恶意模型的代价体现在多个层面。首先是计算开销:SPDZ中的乘法三元组生成需要大量同态加密或OT扩展操作,计算量可达半诚实协议的10倍以上。其次是通信量:MAC值本身增加约1倍数据量,而cut-and-choose类协议需要重复执行多次电路生成,通信量可能膨胀5到50倍。第三是实现复杂度:需要处理中止、归因、公平性等额外逻辑,代码量和测试用例显著增加。

一个具体的工程取舍示例:某医疗数据联合统计场景,三家医院希望计算患者数据的聚合统计量。若采用半诚实模型,基于秘密共享的协议可在秒级完成;若采用恶意模型,同样的计算可能需要数十秒甚至分钟级。如果三家医院之间有长期合作协议和审计机制,半诚实模型可能是合理选择;如果彼此互不信任且结果涉及利益分配,则恶意模型的中止和归因能力是必要的。

隐蔽模型:折中方案的实际价值

隐蔽模型试图在安全与性能之间取得平衡。其核心思想是:允许敌手作恶,但作恶被检测到的概率至少为1-ε。工程上常通过cut-and-choose实现:发送方生成s个混淆电路,接收方随机选择其中一部分要求发送方打开验证,剩余部分用于实际计算。若发送方在任何一个电路中作弊,被检测到的概率为1-(1/2)^s。当s=40时,检测概率超过99.999%。

隐蔽模型的工程优势在于:它不需要零知识证明的完整开销,也不需要MAC的全程维护,而是通过“抽查”机制以概率方式约束敌手。对于ε=2^-40的典型配置,额外开销约为半诚实模型的3到10倍,远低于恶意模型的10到100倍。这使得隐蔽模型在需要一定安全保障、但参与方并非完全互不信任的场景中具有实际吸引力,例如供应链中的多方对账、联盟链中的隐私计算等。

选择隐蔽模型时,工程上需要明确ε的取值。ε越小,安全越强,但cut-and-choose的重复次数s越大,开销越高。通常建议根据参与方的作恶动机和可承受的检测概率来设定:若作恶收益远小于声誉损失,ε=2^-20可能足够;若涉及高价值数据,则应选择ε=2^-40或更低。

工程选型的决策依据

在实际项目中,安全模型的选择不应仅由技术团队决定,而应结合业务信任模型、合规要求和性能预算综合判断。以下是一份可参考的决策检查表:

判断维度 半诚实 隐蔽 恶意
参与方信任关系 强信任或合同约束 有声誉机制,作恶有代价 互不信任,无外部约束
结果可验证性要求 低,接受信任假设 中,需概率性检测 高,需确定性检测或中止
性能预算 毫秒到秒级 秒到十秒级 十秒到分钟级
合规与审计 内部审计即可 需记录检测证据 需完整行为证明
典型协议 OT+GC、Beaver三元组 Cut-and-choose、LEGO SPDZ、BMR、零知识证明
工程提示:安全模型不是“越强越好”。恶意模型虽然安全强度最高,但其开销可能使项目无法落地。建议从半诚实模型开始原型验证,若业务方对安全性有更高要求,再评估升级到隐蔽或恶意模型的增量成本。升级时优先考虑协议是否支持“安全模型可插拔”,例如SPDZ系列协议允许在同一框架下切换半诚实和恶意模式,减少重复开发。

最后需要强调的是,安全模型的选择必须与敌手能力假设一致。如果实际参与方可能篡改消息,却选择了半诚实协议,那么整个系统的安全性就是虚假的。工程上应通过威胁建模明确敌手能做什么、不能做什么,再据此选择模型。同时,协议实现中的侧信道、随机数质量、密钥管理等工程细节,也可能成为绕过安全模型的攻击入口,需要在实现和部署阶段一并考虑。