研究 | 安全多方计算之混淆电路_ALICE:alice币最新消息

导读:混淆电路(GarbledCircuit),又称姚氏电路(Yao’sGC)是由姚期智教授于1986年针对百万富翁问题提出的解决方案。

它的核心技术是将两方参与的安全计算函数编译成布尔电路的形式,并将真值表加密打乱,从而实现电路的正常输出而又不泄露参与计算的双方私有信息。由于任何安全计算函数都可转换成对应布尔电路的形式,相较其他的安全计算方法,具有较高的通用性,因此引起了业界较高的关注度。

混淆电路发展

姚氏电路是基于半诚实模型(semi-honest)的安全两方计算(Two-Party-Security-Computation)。

简单来说,可将整个计算过程分为两个阶段:

第一阶段将安全计算函数转换为电路,称之为电路产生阶段;

第二阶段,利用OT、加密等密码学原语等执行电路,称之为执行阶段。

每一阶段由参与运算的一方来负责,直至电路执行完毕输出运算后的结果。针对参与运算的双方,从参与者的视角,又可以将参与安全运算的双方分为电路的产生者(circuitgenerator)与电路的执行者(circuitevaluator)。

示意图如下所示:

美国财政部正在研究如何使用数字美元来保护隐私:金色财经报道,负责金融机构的助理部长Graham Steele表示,美国财政部一直在研究如何使潜在的数字美元的零售交易尽可能保持私密和匿名,尽管他说美国还没有决定是否推进中央银行数字货币(CBDC)的发展。

然而,Steele也指出了零售业CBDC可能存在的风险,特别是运行的危险。最近的美国银行业动荡表明,\"使存款流动的技术只会越来越快,\"这增加了高速、恐慌性的资金流动的危险。斯蒂尔说,一个由财政部领导的小组正在研究建立美国中央银行数据中心的可能性,\"该小组正在评估与全球金融领导地位、国家安全、隐私、非法金融和金融包容性有关的政策目标。[2023/6/14 21:34:44]

▲?步骤一:电路产生阶段

参与运算的双方先就需要安全计算的目的依靠专有编程语言(DSL)或相关编程语言扩展等进行编程,然后针对实现计算的程序进行编译,生成布尔电路文件;

然后针对双方输入值以及中间输出结果随机产生映射label,再利用这些label做为key对每个对应的电路输出真值表采用分组密码方式进行加密,并对真值表值进行打乱操作,这一步就是混淆电路的概念。

▲?步骤二:电路执行阶段

电路执行者针对布尔电路文件进行执行,执行时电路生成者需要将自己的输入所对应的label发给电路执行者;电路执行者依据自己所有信息通过OT方式选择自己对应的label,这样电路生成者与执行者均不到对方的输入数据;电路执行者此时获取双方输入对应的label,作为key的相关信息对真值表进行解密,即可获取真值表的内容,循环往复,直至所有电路执行完毕,输出执行结果。

动态 | G20要求IMF研究稳定币可能带来的风险:二十国集团(G20)已向国际货币基金组织(IMF)寻求帮助,以确定稳定币的含义。 各国在新闻稿中表示:“我们要求IMF审查全球稳定币的宏观经济影响,包括成员国的货币主权问题。在承认金融创新的潜在好处的同时。我们认为全球稳定币会引发一系列严重的公共政策、监管风险问题。需要对、非法融资、保护消费者和投资者等风险进行评估和处理,然后才能开始稳定币的运作。”同样在今天,德国、法国和意大利宣布,三个国家将共同努力,阻止Libra稳定币。(fxstreet)[2019/10/19]

姚氏电路是第一个安全两方计算协议,后续大多数安全地计算布尔电路/算术电路的安全多方计算协议都是基于姚氏混淆电路进行扩展的。

比较常见有GMW/CCD/BGW/BMR等,这些协议将姚氏协议支持的两方安全计算扩展到多方安全计算;将布尔电路扩展到算术电路;将安全模型由半诚实模型扩展到恶意模型,以抵抗一定数量恶意敌手攻击。

上期文章已经就两方安全计算混淆电路进行介绍,我们在此基础上介绍下支持多方安全计算协议GMW。

GMW协议介绍

GMW协议是由Goldreich等人提出,支持多方(2+)安全计算,它不但支持布尔电路还支持算术电路。但与姚氏电路协议略有不同,电路评估时不再使用混淆的真值表,而是在本地直接进行计算,这样大大节省混淆真值表带来的解密操作,节省比较多的计算量。

动态 | 研究:比特币矿工盈亏点为每枚比特币3300美元:近日,加密资产研究公司 CoinShares 发布了比特币挖矿报告,称比特币网络在持续增长,以每千瓦时5美分的电费加上15 的冷却及其他运营成本计算,比特币矿工平均现金流盈亏持平点在比特币价格 3300 美元左右。此外,CoinShares还指出,过去6个月中,比特币矿场离开中国的趋势减缓,有可能的原因是中国西南地区丰水期来临,为矿场提供了便宜的电力。于此同时,比特币矿场在中国国内出现了迁移,从新疆、内蒙古等地迁到了四川、云南、贵州,主要也是受丰水期电力成本变化的影响。[2019/6/10]

GMW协议采用秘密分享及OT等常见的加密原语,可将整个计算过程分为三个阶段:

▲?秘密分享阶段

参与运算的多方将自己的私有数据采用线性秘密分享方式对参与运算的多方进行秘密分享,保证每一个参与方都可以获得自己秘密的分量。

▲?电路执行阶段

将接收到的每个秘密分量输入到电路中,本地逐门执行电路(AND门需要再执行OT协议),重复此过程,直到所有门都执行完成,获得结果的分量。

▲?结果广播再计算

每一方将最后的执行结果广播出来,各参与方获得各个参与方结果分量后求取最终结果。

举例分析

参与运算的双方有Alice和Bob:

分析 | Coinbase新研究:18%美国大学生持有加密货币:据bitcoinist报道,Coinbase与研究创业公司Qriously对675名美国学生进行的一项调查显示,18%的受访大学生表示他们持有某种加密货币,9%已正式研究过加密货币,此外还有近三分之一的学生计划在未来研究加密货币。[2018/8/30]

Alice拥有私密信息u,将秘密进行加法秘密分享(additivesecretsharing)后,使得⊕=u,可以看作u的秘密分量,Alice将发给Bob;

Bob拥有私密信息v,将秘密进行分拆后,使得⊕=v,可以看作v的秘密分量,Bob将秘密分量发给Alice。

这样Alice与Bob都拥有彼此的秘密分量,如下表所示:

PartyAlice_shareBob_sharecommentsAliceAliceholdssharesBobBobholdsshares

uv

(1)布尔电路之XOR(相当于加法)

Alice与Bob安全计算和(异或门),表示成电路形式如下所示:

欧洲央行和日本央行联合发布Stella项目研究报告:周二,欧洲央行和日本央行发布了一份关于Stella第二部分的联合报告,该报告主要关注证券结算系统:在分布式分类帐环境中交付与支付(DvP)。尽管在单一分类或交叉分类的DvP系统中,证券结算在概念上是可行的,但银行表示,还需要进行额外的研究。[2018/3/31]

Alice和Bob进行秘密分享后,Alice与Bob获取的秘密分量及计算电路如下所示:

Alice与Bob分别在本地执行此电路:

Alice:u1⊕v1?=w1

Bob:u2⊕v2?=w2

Alice与Bob分别将执行电路后的结果分量广播出去,本地计算后获取最终结果:

w1⊕w2?=(u1⊕v1)⊕(u2⊕v2)

=(u1⊕u2)⊕(v1⊕v2)?(异或满足交换律)

=u⊕v

(2)布尔电路之AND(相当于乘法)

Alice与Bob安全计算乘积(and门),其表示成电路的形式如下所示:

Alice和Bob进行秘密分享后,Alice与Bob获取的秘密分量及计算电路如下所示:

Alice本地计算AND门时,求得u1v1

Bob本地计算AND门时,求得u2v2

可以发现还缺少其他分量u1v2⊕?v1u2,此时GMW协议构造1-4OT进行计算,Alice作为sender,拥有变量u1,v1,Bob拥有选择bit变量u2和v2,作为receiver。

记T=(u1v2)⊕(v1u2),Alice在构造1-4OT时,对真值表加了干扰σ⊕T,这样做的目的主要是防止Bob根据T的结果推测出Alice的秘密分量u1。

经过1-4OT后,双方值情况如下:

Alice计算得到的值为:u1v1⊕σ

Bob计算得到的值为:u2v2⊕σ⊕T

Alice与Bob分别将本方的结果分量广播出去,本地计算后获取最终结果:

w=u1v1⊕σ⊕u2v2⊕σ⊕T

=u1v1⊕u2v2⊕T

=u1v1⊕u2v2⊕(u1v2⊕v1u2)

=(u1+u2)⊕(v1+v2)

三方或者更多方扩展

(1)异或门(XOR)

各参与方获得各个分量后本地执行电路,与两方计算类似,然后广播自己本地计算结果,当收集全各个参与方自己计算结果时再计算最终结果。

(2)与门(AND)

c=a∧b,a1...an,b1..bn代表a,b分量

每个参与方本地计算ai⊕bi,然后每两个参与方相互组合计算ai⊕bj

最后各参与方广播自己最终本地计算结果(a∧b分量),求得最终安全计算结果a∧b

总结

混淆电路的优化可以分为两个方面:

一方面:电路优化(circuitoptimization),主要是减少编译后电路的size,常用技术有free-xor/Garbledrowreduction/Circuitsimplification等;

另一方面:执行阶段优化,常用的技术有fasttablelookup(减少解密混淆真值表次数)和pipelinedcircuitexecution(将原来电路的产生与执行两阶段转换成一个阶段,一边产生一边执行电路,这样可以提高安全计算的效率)。?

基于姚氏混淆电路进行扩展的协议与方法,大多已不再使用混淆真值表的做法,只保留电路的形式,且为了扩展至多方(2+)安全计算,普遍采用秘密分享/不经意传输等技术。

相较其他安全计算方案,混淆电路是一种比较通用的解决方案,安全性相对高,但其性能一般,尤其是当参与运算多方数目超过3+且数据量较大时,安全计算的过程中通信量会比较大(两方各1000个数据情况下求PSI通信量可达到GB数量级),特别不适合带宽受限或WAN网络环境下使用。

所以业内给混淆电路的评价是“efficientbutexpensive”,有效但计算代价比较高。

作者简介

滕海明

来自趣链科技数据网格实验室BitXMesh算法研究团队

研究方向:数据安全

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:15ms0-0:961ms