首页 > 编程知识 正文

论文学习记录20191220:多方安全计算

时间:2023-05-05 04:32:13 阅读:286781 作者:3094

这是发在ccs2017的一篇有关安全多方计算的论文。
论文题目为 Efficient, Constant-Round and Actively Secure MPC: Beyond the Three-Party Case。

和前几周一样,这还是一个安全多方计算的问题。
先解题:
超过三方,文章主要讲的是5方,但是也可以扩展到n方
高效:指的是他们比那个时候2017年最先进的技术减少了60%的通信,在测评AES电路,比相同环境下的被动安全5方计算快了2.6倍
常数轮,指的轮数固定,比如这篇是8轮,我之前看的几篇好像都是常数轮的
主动安全,就是恶意安全,在这篇论文中,5方中有两个是败坏方

论文主要是讲了一个恶意安全的五方计算协议,这五方中是最多有两个被败坏方.
这篇也是涉及到了混淆电路,在多方计算中的混淆电路大多需要分布式去构造。在这里的这个五方协议,是把其中四方作为乱码者,一方作为评估者,四个乱码者来进行分布式乱码的过程,是基于一个半诚实四方分布式乱码的方案,在此基础上进行修改,让他变成能够容忍两个被败坏方的恶意安全的这么个方案。
他们主要做了三处修改,其中有一处修改,特别提了一下,就是这个AOT,是一个替代不经意传输的操作,把混淆电路中的两方之间的不经意传输用这个AOT取代,这样做主要的作用是能够提高效率。
他在最后面还介绍了可以扩展到n方的情况,去寻找一个通用框架,最后发现是n方中有根号n个被败坏方。但是能容忍根号n个被败坏方并不是他的最佳方案,最佳的情况需要未来再去研究。

这里讲了一种新的协议,用来替换半诚实的4DG中的每个两方OT,我们将这四个方称为Attested OT(AOT),其中,一方是发送方,另一方是接收方,另外两个方是“助手方” ”这两方的作用是通过发送者和接收者检查诚实行为。
p1是带有输入(m0,m1)的发送方,p2是带有比特值b的接收方。p3和p4是测试方:他们获得p1和p2 s输入的副本,并将帮助p1和p2执行OT功能
左边这个图是被动安全中的AOT,可以看出在这个过程中,p3就是帮助p1和p2来完成不经意传输的,本来只是p1和p2之间进行的不经意传输,p1有m1和m2两个,p2有b,然后p2从p1那里吧mb拿走,在AOT中呢,他们都把输入发给第三方p3,让他来帮助p1p2完成这个过程。
而在右图中,是恶意安全情况下的,这里主要是多了一个承诺,可以看到第一步,除了和左边一样p1会将它的输入m0m1发送给p3p4,它还会对m0m1做一个承诺,然后把承诺发送给p2。P2也把输入发送给p3p4。P3p4会互换他们得到的输入,如果一样,他们会计算出承诺发给p2,这个承诺应该是和p1给p2的是一样的,p3也会把openbi(解开承诺的钥匙)发送给p2。如果不匹配,那就说明有被败坏方,于是发了一个中止。

BAOT是批量aot,批量的是混淆电路中的门,也就是每个门本来是有一个aot,现在把所有门批量成baot,协议的主要区别是加了一个哈希。

这篇论文的框架和上次那个有点相似,上次说是n-1方去构建混淆电路,他这个也是类似的思想

第一个点和第二个点:
这篇论文在电路混淆的这一部分,是基于四方的半诚实分布式混淆框架的,它是由四个乱码者,p1p2p3p4,那么假定pi所用的所有的随机值都是由随机种子si生成的,然后这个四个乱码者p1p2p3p4,除了生成自己的种子s1s2s3s4,他还知道另外两方的种子,也就是每一方知道三个种子,一个种子被三方知道,具体的说种子s1被p1p3p4知道,s2被p2p3p4知道,s3被p1p2p3知道,那S4j就是p1p2p4,那这样呢,基于si生成的所有计算和通信都可以由三方进行,并相互核对是否正确,也就是说这使得其他两个参与方能够检查每个参与方的计算。最多有两种腐败的情况下,这三方里,至少一方是诚实的,因此任何恶意行为都会被发现。这样可以确保至少有一个份额是诚实生成的,从而不良的混淆电路可以被检测到。
第三个点:
换成BAOT主要是提高了效率,避免了不经意传输的使用,交互的轮数减少到1轮


第一个点:上面说过了

第二个点:
乱码者:
在前一种情况下,每个乱码者pi都会根据它的种子生成混淆电路的一部分,但需要其他乱码者的帮助才能生成它少的那一部分。为了做这个,pi会把他的输入比特秘密分给其他的乱码者(也就是拥有它缺少的那个种子的其他方,其实按照我们之前说的那个情况,应该其他方都有他没有的这个种子),在这之前,乱码者pi会用0的秘密分享来掩盖他的share。其他的乱码者会基于这些shares来计算乱码标签。
评估者:
为了计算p5的输入的乱码标签,p5首先把他的输入秘密分给p1p2p3p4,接下来这些shares就会被当做p1p2p3p4的输入来对待,但是这里有个问题是,pi可能说谎,对他手上的p5的输入份可能说谎,为了预防这一点,所以就让所有方要对所有的label提供一个承诺

第三个点:
各方执行分布式电路混淆协议,其中一方(比如说p1)把分布式混淆电路发送给p5,同时其他方发送混淆电路的哈希。只有当分布式混淆电路的哈希匹配时,p5才接受

第四点:
接下来p5解密这个混淆电路,得到输出标签Y并发给所有方,每一方解密这个标签,得到输出。
半诚实:
在半诚实的情况下,可以简化上面讲的恶意安全的协议。
这里仅指出了我们可以对主动安全5PC协议进行的简化,其实简化就是把之前所有勾心斗角的都去掉。
(i)首先,所有对F4AOT的引用都可以用前面PPT展示过的一部分半诚实的变体代替,这避免了使用承诺,还提高了通信效率。
(ii)一个乱码(例如,P1)足以计算出整个乱码并将其发送到P5。 其他各方只需提供必要的份额即可将乱码电路计算为P1。 因此,它们也不会将乱码电路散列到P5。
(iii)在乱码输入中进行的一些额外检查也可以删除。 例如,仅足以让一个一方(而不是三个方)发送一部分输入线路的排列位,并且我们可以删除为防止P5乱码输入中的恶意行为而引入的承诺。

实验:
可以看到,像最左边的这个实验,好像和这个BLO方案相比,并没有突出的优势,这是因为左图的实验的延迟比较低,由于网络速度快,所以通信节省看不出来,
那在最右边的高延迟的实验中,可以看到,当双方在美国和欧洲的不同地区时,对于AES,我们的5PC-M的总执行时间比BLO快2.6倍,我们的5PC-SH的速度比BLO快4.8倍。 对于SHA-256,我们的5PC-M比BLO快1.7倍,而5PC-SH比BLO快3.38倍


n-party case
接下来,作者把这个五方的协议扩展到了n方。作者说只要能够找到满足特性的种子分配策略,就很好从五方扩展到n方。
n方的多方计算中,设置最多能够容忍t个败坏方,和五方的情况下相似,五方中是让p5作为评估者,那在n方的情况下,让pn作为评估者, 让剩下的n-1方去运行一个q方分布式混淆来生成混淆电路。
在q方分布式混淆中pi方所需要的所有随机值都是由种子si生成, q个种子分布在n-1个乱码者中,满足以下:
没有t-1个乱码者能够拥有所有的种子。当t-1个乱码者和一个评估者被败坏, 这时就可以保证这个败坏的评估者不能够学习到一个诚实方的输入。
对于每一对种子sisj,都要一方pk持有这对种子,这方就是AOT协议中的证明人,从而就可以用AOT代替OT,这不是必须的步骤,用AOT去代替OT只是为了提高效率。
每个种子都要有至少t+1方持有。这只有在恶意安全的时候才需要,他可以保证,每一条消息从t+1方获取时,当t个乱码者都被败坏了,至少其中有一条消息是由诚实方生成的,这条消息就是一定是正确的,这个诚实的评估者不会得到错误的混淆电路。

(n,t,q)-assignment problem
找到n和q最小,t最大,在五方协议中是(5,2,4),找一个通用的框架。于是提出了n=t²+1和q=t²,所以说他是n方安全计算,容忍根号n个败坏方。
但这个并不是最佳的解决方法,他们没有提出最佳的解决方案,需要后续研究。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。