一、引言
在之前的文章(多方安全计算(3)MPC万能钥匙:混淆电路)中,我们对MPC中一类通用方案混淆电路(GC)与密文比较策略做了介绍。混淆电路通过将任务抽象为电路以及对基础电路提供加密方案达到了万能钥匙的效果。在姚期智先生提出GC方案不久后,Goldreich等人[1]提出了GMW范式,给通用的密文计算任务指明了一条新的方向。
与GC不同,GMW范式认为既然一个电路可以由与门或者或门组成,那么如果对与门和或门都可以做到输入与输出都为密文形式,且加密形式相同,那么就可以将初始的计算任务拆解为若干子计算步骤,通过逐步的完成密文计算就可以做到在密文下完成整个计算任务。当然,一个真实的计算任务从与门、或门出发是不合适的;一个更自然的出发点是加法计算与乘法计算,而本文将介绍如何通过秘密共享(也常被称为秘密分享)技术在MPC任务中完成加法与乘法计算。读者可以想象,这类似于搭积木,而基础的积木块就是密文加法与密文乘法。
宏观上说,如图一所示,多方安全计算以不经意传输为根基,基于此可以构造出混淆电路与秘密共享两类通用方案。值得注意的是,此三类方案在理论上都可以完成任意的密文计算任务;但在实际的方案中,往往由于效率上的取舍而构造更定制化的协议。
图1 多方安全计算概览
二、秘密共享
秘密共享技术事实上早于MPC被提出,其最初是为了解决密钥存储相关的问题,其最初的设计思路可参考文章(秘密共享—隐私计算和区块链共识中的榫卯)。简单起见,本文直接给出秘密共享的通用定义形式。
定义1:(接入结构)。定义
此处通过定义授权集合来确定秘密应该被哪些参与方知晓。
定义2:(秘密共享)如果以下条件成立,那么分配方案是在秘密的给定概率分布
正确性:对于每个授权集合
安全性:对于每个未授权集合
即对授权集合用户来说,更多的其它参与方也不能得到额外的信息;而对未授权集合,他们事实上未得到任何信息。因为上述定义需要绝对的正确性与安全性,以上定义也常被称为完美秘密共享;如将上述公式中的等号换成约等号,则相应方案常被称为统计秘密共享;在MPC计算中通常只关注于完美秘密共享方案。
三、密文加法
完美秘密共享有多种构造方法,通常也对应着不同的密钥管理需求;但在MPC中通常不聚焦于此;与同态类似,我们更关注于其计算的同态性。如本文开头所述,我们需要让单步计算的输入与输出保持同样的密文格式。
在MPC计算中,我们通常使用最简单的秘密共享方案:加法秘密共享。例如,有原始的秘密值4,有两个参与方
那么加法秘密共享是如何保证自然的保证加法同态性的呢?有原始两份秘密
四、密文乘法
上一节中我们描述了加法秘密共享方案如何自然的完成密文加法,然而此类方案在不交互的情况下完成密文乘法是不可能的。早期文献往往通过OT等方案辅助完成密文乘法;幸运的是,Beaver[2]提出一种被称为
具体来说,Beaver将密文计算过程分为离线阶段与在线阶段;离线阶段即获得实际秘密之前的阶段。
然后在某个时间点,参与方分别获得了实际秘密与的分享值
图2 两方密文乘法过程
容易注意到,上述步骤实质上构造出了公式中除
五、例子
本节中我们描述一个简单的使用场景:安全地提取传感器收集信息的特征。简单来说,系统模型如下:
图3 传感器信息密文特征提取
传感器搜集原始图像信息,然后借助两个边缘服务器完成信息的处理,并将结果反馈给用户。此处由于传感器无力完成信息的处理步骤,而不得不借助外部服务器;而传感器直接搜集的信息往往敏感而不能直接公开,因而需要保证边缘服务器们只能得到密文的输入。
针对图像的特征提取往往使用卷积神经网络。卷积神经网络常常由全连接层、卷积层、激活函数层与池化层组成。
卷积层与全连接层仅涉及乘法与加法。例如,某卷积层的神经元共享同样的权重和偏置值;在计算这一层时,第
激活函数层为神经网络提供非线性。常见的激活函数,一类如
池化层分为最大池化与平均池化。最大池化层首先将输入分为若干个非重叠的小块,然后找出每个小块中最大的值并保留该值,而将其余值都置为0;平均池化计算每个小块中值的平均值,并用该平均值替换原来的值。对于前者同样涉及密文比较计算,而后者只是一个普通的密文加法运算,可在秘密共享中各方独立完成。
就这样,依靠本文所介绍的密文加法与乘法策略,再简单结合之前文章中的GC比较策略,我们就可以做到密文神经网络的计算,从而进一步完成密文传感器信息的特征提取,而只需传感器进行简单的加法秘密共享计算。
熟悉联邦学习的朋友可能注意到,上述策略如果应用于密文神经网络训练则与联邦建模目标一致;但请注意两类方案有着本质的不同,MPC对每一步基础计算都做了密文替换,而联邦学习通常只对梯度等信息做了一定程度的遮掩;MPC类方案输入信息与神经网络参数的安全性由严格的困难性假设保证,但在效率上也仍有较大的改善空间。
六、总结
本文简要的介绍了多方安全计算中另一个重要工具秘密共享,并以加法秘密共享这一最简形式为例,介绍了密文加法与密文乘法的计算方法。值得注意的是,相比于GC类方案,秘密共享更符合直觉,也更多停留在数值计算的层次,因而在实际编码实现与应用中更占优势。虽然通过本文介绍的方案,在理论上已可以计算任意的密文计算,然而更高效的计算方式往往需要更定制化的密文计算协议,在真实的计算机中往往也有着更复杂的取舍。在之后的文章中,我们将介绍诸如比较与除法等基础计算模块的密文协议构造方法,也将介绍更多已有的开源密文计算框架。
参考文献
参考文献
[1] Micali S, Goldreich O, Wigderson A. How to play any mental game[C]//Proceedings of the Nineteenth ACM Symp. on Theory of Computing, STOC. ACM, 1987: 218-229.
[2] Beaver D. Efficient multiparty protocols using circuit randomization[C]//Annual International Cryptology Conference. Springer, Berlin, Heidelberg, 1991: 420-432.
往期回顾
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。
关于我们
绿盟科技研究通讯由绿盟科技创新研究院负责运营,绿盟科技创新研究院是绿盟科技的前沿技术研究部门,包括星云实验室、天枢实验室和孵化中心。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。
绿盟科技创新研究院作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。
我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。
长按上方二维码,即可关注我
原文始发于微信公众号(绿盟科技研究通讯):多方安全计算(4)MPC万能积木 秘密共享
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论