分享嘉宾:洪澄 阿里巴巴集团资深安全专家、阿里安全密码学与隐私保护技术负责人
编辑整理:谢彪
出品平台:OpenMPC
导读:在隐私计算技术体系中,一种典型的技术是安全多方计算技术(MPC),安全多方计算允许多个参与方合作计算任意函数,同时保证各个参与方无法获得计算结果之外的任何信息,但是达成这一安全目标是需要前提条件的。这个前提就包括安全模型在内,一般把攻击者分为半诚实模型和恶意模型,在安全多方计算中的安全性也有所差异。
《半诚实模型与恶意模型》
今天主要围绕下面三大内容展开:
两种模型的定义
标准中对恶意模型的描述
如何达到恶意模型
- 半诚实模型中,攻击者会按照预定的协议去执行,得到预定的执行结果。类比日常中的打牌活动,半诚实模型会按规矩切牌,发牌。保证协议的交互过程不会泄露结果之外的更多信息即可。
- 恶意模型中,攻击者可能不会按照预定的协议执行,类比日常中的打牌活动,恶意模型会在打牌时换牌、藏牌。恶意模型首先满足半诚实安全性,其次需要额外的机制验证参与方是否按照预定的协议执行,通常非常昂贵。
如果一个协议仅做到半诚实安全,可能会受到恶意攻击。例如在一个半诚实的不经意传输协议中,如果图中的Alice发送的两个数都知道其离散对数,那Bob加密的两个数Alice都能解密。同样的例子还存在安全神经网络推理案例中。但并不是说半诚实安全的协议一定容易被恶意攻击者“破解”,例如在ECDH的隐私求交方法中,恶意攻击者可以篡改自己的输入,产生非预期的PSI结果,但是并不能推断出对方的原始数据。在秘密共享方案中,同样可以看出半诚实安全的协议并不是一定会被破解。在面对恶意模型时,经常有一些误解,第一个误解:做到Malicious security,就可以防止参与者恶意投毒攻击了。这里需要澄清的是,Malicious security不防“换输入”的攻击,Malicious security只能保证“确实存在这样的输入”。第二个误解:做到Malicious security,就可以防止参与者合谋攻击。这种误解是把合谋攻击当成一种恶意攻击了,其实合谋攻击是和攻击门限相关的,而行为模型和攻击门限是不相关的。第三个误解:基于审计日志检测攻击,可以实现Malicious security。仅“检测到恶意攻击” 是不够的,需要在攻击者成功(泄露信息)之前终止。国内国际相关标准都有关于恶意模型的描述,主要有correctness和privacy两方面的规定描述。学术界一般不区分privacy和correctness,因为privacy和correctness很难严谨的分开描述。而工业界为什么要区分privacy和correctness呢?因为存在某些特定的场景需要,比如数据方、结果方与计算方分离的场景,数据方可能没有对应的计算资源,所以把数据外包给计算方去计算,计算之后把结果发送给结果方。由于计算方不获取最终结果,任何恶意行为都无法获得更多信息,此时correctness的实现难度大于privacy。达到恶意模型的宗旨是“保证自己的行为没有背离预期的协议”,有很多种实现方式,比如MAC、Cut and choose、(D)ZKP等。第一种方案是MAC,一般用在不诚实大多数方,多在两方场景下。在MAC方案中,除了秘密共享数据,还需要额外秘密共享一个key,除了数据的秘密共享分片,还需要保存MAC的分片,加法、常数乘均可本地完成,但乘法需要检查复原的正确性。第二种方案是DZKP,比如ABY3中计算乘法x*y,如果在恶意模型情况下,每一方都要自证自己发送的数据符合约定的计算方式。这样问题就转化为了一个五元方程,其中一方知道三元,另一方知道两元,这时双方无法独立验证,必须合作验证。假设一方生成了5个一次多项式,并且通过两个一次多项式相乘的操作得到二次多项式,将二次多项式的系数以秘密共享的方式发给他方,他方再来检查。自证是否发送了正确的秘密分享分片的主要难点在于生成插值多项式,计算多项式,成本约为半诚实模型的2-10倍。半诚实模型MPC的研究已经接近极限,主要考虑硬件、网络等优化,以及特定场景的优化。恶意模型具备更强的安全性,但恶意模型MPC的成本远超半诚实模型,这方面的研究还有很多可以做。