3. 安全模型与敌手
在多方安全计算(MPC)工程中,安全模型不是论文里的抽象假设,而是直接决定协议选型、性能预算和系统复杂度的工程约束。同一个计算任务,声明“半诚实安全”还是“恶意安全”,实现代价可能相差一个数量级。理解三种主流敌手模型——半诚实(semi-honest)、恶意(malicious)、隐蔽(covert)——的差异,是做出合理工程取舍的前提。
三种敌手模型的核心区别
半诚实敌手,又称被动敌手(passive adversary),其行为假设是:参与方严格按协议执行,但会记录所有中间值并试图从中推断他人隐私。它不篡改消息、不偏离协议,只是“偷看”。恶意敌手,又称主动敌手(active adversary),可以任意偏离协议:伪造消息、提前中止、选择性丢弃、发送不一致的输入。隐蔽敌手则介于两者之间:它可能作恶,但一旦作恶被检测到的概率超过某个阈值(通常记为 ε),就会因声誉或惩罚机制而放弃攻击。
从安全强度看,恶意 > 隐蔽 > 半诚实;从工程代价看,顺序恰好相反。半诚实协议通常只需保证“视图不可区分”,而恶意协议必须额外保证“行为可验证”或“偏差可检测”。这一根本差异,导致两者在密码学原语、通信轮数和计算开销上全面分化。
半诚实模型:性能优先的默认选择
半诚实模型是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、零知识证明 |
最后需要强调的是,安全模型的选择必须与敌手能力假设一致。如果实际参与方可能篡改消息,却选择了半诚实协议,那么整个系统的安全性就是虚假的。工程上应通过威胁建模明确敌手能做什么、不能做什么,再据此选择模型。同时,协议实现中的侧信道、随机数质量、密钥管理等工程细节,也可能成为绕过安全模型的攻击入口,需要在实现和部署阶段一并考虑。