【浙江大学张秉晟分享】RAM模型下的多方隐私函数评估( 二 )


如果你是学习密码学或者密码协议或者隐私计算的圈内人士 , 那我们有相关的狭义定义 。 在狭义定义中 , 安全多方计算一般可以分为两种主要的实现形式:一种是姚氏混淆电路 , 它主要是用于两方计算 , 当然也可以用于多方计算 。 姚氏混淆电路比较好的特点是它对布尔电路的支持非常好 , 这也是安全多方计算 。 姚期智教授是在1982年提出安全多方计算时提出的设想 。 现在的姚氏混淆电路经过40年的优化和改良 , 效率已经非常非常高了 。 第二种是针对布尔电路或者代数电路 , 我们是以秘密分享的形式来实现两方或者多方的协议 。 这种实现方式有什么好处?它的通信量会比姚氏混淆电路整体通信量小 , 但是它的通信轮次会比较多 , 比较适用于带宽比较小、但是延时比较少的应用场景 。 如果延时比较高的话还是建议用姚氏混淆电路 , 当然秘密分享对代数电路的支持肯定是好于姚氏混淆电路 。
当然现在也有一些混合的协议 , 即你在同一个函数中或者同一个计算任务中 , 既要解决布尔电路 , 又要解决代数电路如何在它们之间进行转换 , 比如说ABY系列 。 广义来说 , 就我个人理解而言 , 安全多方计算可以包括密码学的一些原语 , 比如说全同态加密 。
有人问 , 全同态加密和安全多方计算是什么关系?它们是不是两个不同的技术?
在我看来它们是不对等的一个比较 。 因为全同态加密只是一个加密的原语 , 这就相当于在安全多方计算里我可不可以应用例如AES加密 , 你说可以 。 在我看来 , AES加密和全同态加密都是一种加密算法 , 而安全多方计算是一种协议、是一个更高维度的东西 。 安全多方计算的协议如果使用了比如说签名算法、加密算法 , 这个协议仍然是安全多方计算协议 。 所以在我个人的理解里面 , 安全多方计算协议即使使用了同态加密、半同态、全同态 , 它仍然是安全多方计算协议 。 在业界 , 因为一些要求它把基于可信硬件的安全多方计算叫做ConfidentialComputing(机密计算) , 又把联邦学习从安全多方计算中分离出来 。 其实联邦学习提出的时候 , 它并没有安全的定义 。 在我看来 , 联邦学习和安全多方计算其实也是一个不可比较的概念 。 因为联邦学习里面是可以应用安全多方计算技术去做一些隐私保护的事情 。
【浙江大学张秉晟分享】RAM模型下的多方隐私函数评估
文章图片
我们研究这个成果的研究目的是什么呢?
【浙江大学张秉晟分享】RAM模型下的多方隐私函数评估】我们主要是为了解决两方或者多方在比如说云计算的时候 , 要保护计算任务、要保护特定的算法 。 什么意思呢?传统的安全多方计算指你在计算的时候所有的安全多方计算参与方都会知道你要计算的是什么任务 , 也就是说我的算法是公开给所有的安全多方计算参与方 。 而我们要保护的只是数据、只是输入 , 只是这个计算的输入 。 但是对于一些应用场景 , 它的算法是非常重要的 , 比如别人的知识产权 , 比如DNA精准、靶向制药 。 例如我有一个算法 , 我的算法需要应用到你的DNA产生药的配方 , 但是我的算法不能公开给你 , 虽然你的DNA也是隐私保护的 , 但我和你做两方计算的时候你不可以得到我的算法 。 也就是说我有需求是保护算法 , 你有需求是保护输入 。 这个就牵扯到一个分支 , 这个分支一般我们在Community里面会把它称为PrivateFunctionEvaluation , 我把它翻译成隐私函数评估 , 也就是说我们在保护输入的前提下 , 还要保护我们所计算的函数、我们要计算的任务 。 我们不可以让计算方知道在计算什么任务 , 即保护你的计算算法的IP 。