基于云计算服务的安全多方计算

[1]蒋瀚, 徐秋亮. 基于云计算服务的安全多方计算[J]. 计算机研究与发展, 2016, 53(10):11.

知识点

茫然传输https://blog.csdn.net/u012386311/article/details/103852022

基于yao混乱电路:最初的是对于每一个基本的逻辑电路门,电路构造方针对电路门的每一条输入/输出线上的真值选择一个随机数与之对应。而对于该逻辑电路的计算真值表,将2条输入线上的输入真值对应的随机数作为密钥,利用一个对称加密算法,双重加密输出线上输出真值对应的随机数,构造一个混乱表。随后,电路构造方将以自己实际输入对应的随机数发送给电路计算方,然后通过一个不经意传输协议,把与电路计算方实际输入真值对应的随机数发送给电路计算方。电路计算方拿到两个随机数后,作为解密密钥,双重解密混乱表里的密文,得到唯一正确的、与输出真值对应的随机数。如果该逻辑门是最终的输出门,电路计算方通过查询输出线的真值-随机数对应表,可以得到最终输出的真值。

安全多方计算简介:

https://blog.csdn.net/wutianxu123/article/details/122785861?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-122785861-blog-121330076.pc_relevant_3mothn_strategy_and_data_recovery&spm=1001.2101.3001.4242.2&utm_relevant_index=4

不经意传输(茫然传输):

https://blog.csdn.net/u012386311/article/details/103852022

https://blog.csdn.net/qq_43751200/article/details/126232276?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-126232276-blog-103852022.pc_relevant_recovery_v2&spm=1001.2101.3001.4242.1&utm_relevant_index=2

cut-and-choose:在基于Yao混乱电路的通用两方安全计算协议中,用于实现抵抗恶意敌手攻击,电路生成方需要构造多个混乱电路的副本,供电路计算方选择进行检测或计算。虽然有效提高了恶意敌手下安全两方计算的效率,但协议参与方仍需要完成大量的计算任务(多个电路副本的构造、输入一致性检测、混乱电路相关密钥传输、电路计算)。

茫然外包计算:一个服务器不知道其他服务器是否参与外包计算。

布隆过滤器:https://blog.csdn.net/tongkongyu/article/details/124842847

隐私保护的信息检索:https://blog.csdn.net/kaka__22/article/details/123779613

总结

云计算环境正在逐步带来一种新的资源组织、利用模式,在云计算环境下考虑各种安全协议的设计与实施成为必然,针对云计算环境建立新的安全多方计算协议的计算与安全模型是一个迫切的任务。对于云中的安全多方计算,现有的安全模型只是将云服务器看成普通参与方面纳入原有的安全框架下。利用强大的云计算资源来设计、实施安全多方计算协议,成为安全多方计算领域的一个新的研究课题。

通用安全多方计算效率较低是由2个主要因素叠加而成的(为了解决通用性而将函数运算分解为电路门运算;为了抵御敌手的攻击而依次对每个电路门实施安全计算)。而云计算的出现改变了现有的计算模式。

云计算面临的主要安全风险是数据的泄漏、丢失以及隐私泄漏。我们更加需要对数据的机密性、完整性以及隐私性等进行保护。

通用的安全多方计算协议主要有3类:基于yao混乱电路的构造方法、基于秘密分享的构造方法、基于同态加密的构造方法。

基于云的通用安全多方计算

基于yao混乱电路的安全双方计算协议

将任意功能函数看作是一个等价的逻辑电路,协议的参与方分为电路生成方和电路计算方。

kamara等人首先研究了将基于Yao混乱电路的通用安全多方计算协议中参与方的复杂计算任务外包给服务器。设定中,除了要计算函数的参与方之外,还有个不可信的服务器(没有函数的输入、得不到函数的输出、具备强大的计算资源)。这是一个电路计算任务外包的服务器辅助安全多方计算协议。上述设置被称为服务器辅助的安全多方计算(或云辅助的安全多方计算)

考虑外包场景时,电路生成或计算均可以外包给云服务器,将任务外包出去的参与方称为外包方,而其他参与方为非外包方。效率目标:计算任务外包之后,外包方的计算量、通信量只与他的输入/输出相关,而与要计算的函数规模无关。(这个目标事实上已经最小化了外包方的工作量)

为实现上述效率目标,Kamara等人首先提出了【服务器(云)辅助安全多方计算】的形式化定义,云服务器被看作一个特殊的参与方,没有输入输出,本质上没有改变安全多方计算的定义。但是不同于传统的恶意敌手攻击下的安全模型,这个模型要求普通参与方与服务器之间不存在合谋(原因是:依照安全多方计算的敌手模型,相互合谋的参与方事实上是由一个敌手刻画的,因此退化成一个参与方。如果允许普通参与方与服务器合谋,那将违背外包计算的效率目标)。

Damgard等指出,达到该复杂度的安全两方计算协议,只能通过全同态加密实现(无法通过混乱电路实现)。

Kamara等人为达到目标在安全模型中引入了额外的假设:1)云服务器是恶意的但是不与其他参与方合谋,其他参与方是半诚实的;2)至少有一个参与方不是恶意的,云服务器是半诚实的。这种非合谋模型相对于标准恶意模型是较弱的,但是与半诚实模型相比则更强。在这个模型上,在之后的工作中,针对安全函数计算(secure function evaluation,SFE)问题,提出云辅助的安全函数计算的概念,并构造了高效的单一服务器辅助的安全函数计算协议,还通过扩展云辅助模型,实现了安全函数计算的公平性。奠定了基于Yao混乱电路的云辅助安全多方计算协议的基础。

上述工作奠定了基于Yao混乱电路的云辅助安全多方计算协议的基础,此后,基于特定的应用背景,不同的外包计算任务、不同服务器的数量,又出现了一些研究成果。

Carter等人研究移动设备的外包安全函数计算问题,他们的方案是基于cut-and-choose技术的Yao混乱电路两方安全计算协议的,将移动设备看作电路计算方,将电路计算任务外包给云服务器。针对基于cut-and-choose技术的Yao混乱电路两方安全计算协议中的不同计算任务,提出了在云环境下实现数据隐私性保护的实现机制。 针对混乱电路密钥传输问题,提出外包茫然传输机制,将茫然传输过程中涉及到的复杂计算任务外包给云服务器,提出了完全由云服务器执行的对混乱电路的正确性检测及电路生成方输入一致性验证机制(避免了恶意的电路生成方通过恶意构造混乱电路从而获取对方输入的恶意行为,也使得作为电路计算方的移动设备不需要耗费过多的计算量,也有效的阻止了云服务商的不诚实行为)。针对电路计算问题,保证输出信息保密的前提下,云服务器完成所有计算电路的计算和输出一致性验证,最后参与方输出各自的输出。该文章给出了外包协议的性能测试数据,运行时间和带宽分别降低了98.92%和99.95%。在实用性方面针对dijkstra‘s最短路径算法实现了有效的外包转换,为如何设计隐私保护的导航应用系统指明了方向。 在之后的工作中,将移动设备设定为混乱电路生成方,并将电路的生成任务外包给不可信的云服务器。外包协议的设计和安全性证明都有很多不同。混乱电路的生成外包主要运用到2-Universal Hash Function技术,而且协议过程中也避免了外包茫然传输机制的使用,使得电路生成方的计算复杂度与电路大小不相关。并且首次考虑了一种允许电路生成方(外包方)和云服务器合谋,并形式化的证明了在该场景下,所设计的外包安全两方计算协议的安全性,并针对一些具体函数给出了具体的性能评估。借助于云计算的辅助,移动设备的效率得到明显的提高。【比较计算外包前后在移动设备上需要执行的时间和带宽】

上述工作主要考虑单一云服务器辅助模型。


kerschbaum针对Yao混乱电路的外包计算,将计算分给2个或多个相互独立的服务器(在计算时合作但不共享数据),提出了茫然外包计算,并基于格密码构造了一个混乱电路生成外包方案,使得电路生成效率得以提高,但并不增加电路的计算量。主要实现三种茫然性:输入/输出茫然性、函数茫然性以及外包茫然性。针对ajtai和SHA-3密码学Hash函数,秘密分享的生成和组合问题,给出了具体性能测试,结果显示外包方案的效率较之于参与方本地实现,有明显的提高。

mood等人研究安全函数计算过程中机密数据的再次使用问题。将计算过程中的状态信息存储下来,在其他计算需要的时候重新利用,可以使得效率大大提升。该文研究如何重复使用混乱电路计算过程中的加密值,降低重复操作。提出了Partial GC的概念,思想是将一个大的程序分割成许多小片,并在混乱电路计算过程中引入交互式I/O操作。这也是基于Cut-and-choose技术的混乱电路安全计算问题中首次允许交互式I/O操作。

基于秘密共享的安全多方计算协议

任意的功能函数被看作是一个算法电路,由基本的加法门和乘法门构成。对于每个基本的运算门,电路的输入以一种秘密共享的方式分享于各个协议的参与方,参与方以共享份额作为输入,针对加法门和乘法门的不同,执行不同的交互协议完成电路门的计算,而计算结果也以一种共享份额的形式,分享于参与方。加法门和乘法门的交互计算是其中复杂的计算任务,既需要参与方做大量计算,又需要参与方之间多次交互。

jakobsen等人研究将基于秘密共享的安全多方计算协议中n个参与方之间的算法电路门计算的交互协议,外包到m个云服务器(workers)。这个模型中,云服务器是不可信的,但前提是至少有一个服务器是诚实的。安全目标是同时满足隐私性和正确性的要求,即每个参与方的输入(对其他用户和每个云服务器)是保密的,同时每个用户都能得到正确的结果,即使恶意的云服务器依然无法篡改每个用户应该得到的输出。此协议的效率目标是参与方的通信复杂度最小(上传输入和接收输出),同时也尽可能减少所有服务器的工作量。分别给出了半诚实参与方和恶意参与方模型下安全的方案。

半诚实参与方:步骤

1. 每个用户通过秘密分享方案将自己的输入和一个盲化值(用于盲化功能函数的输出结果,从而功能函数的输出对云服务器来说是保密的)分享给m个workers;

2. workers之间运行一个现有的安全多方计算协议,运行结果为每个用户的盲化输出(用户的真实输出加上他的盲化值);

3. 每个workers将盲化输出值分享给用户,每个用户使用来自于各个workers的份额恢复出自己的盲化输出,减去自己的盲化因子得到各自的输出。

恶意敌手:协议有三个问题

1. 恶意的workers可能会篡改来自用户的输入,因此,需要在各个worker拿到各自输入之后,先运行一个校验协议,确认每个worker输入到worker之间的安全多方计算协议是正确的输入值;

2. 恶意的服务器在输出的时候,可能会输出错误的结果;

3. 协议的公平性未得到保障,即:由于worker或者参与方发现错误而终止协议,会导致有的用户得到了输出,有的用户没有得到输出。

对2和3可以通过修改安全多方计算的功能函数使得每个worker都得到全部用户的盲化输出,之后都向全部用户发送各自的盲化输出,这样,用户可以校验是否来自每个worker的输出都相同。既可以发现worker的恶意行为,又能保证要么所有用户都拿到输出,要么任何一个用户都拿不到输出。

基于同态加密的安全多方计算协议

云计算要求保证参与方数据对云服务器的机密性。全同态加密方案一般是有一对公私钥,而安全多方计算协议中有多个参与方。

Asharov等利用门限全同态方案(threshhold fully homomorphic encryption,TFHE),将同态私钥共享于所有参与方,构造一个云辅助的安全多方计算协议。文献[14-15]FHE方案是密钥加同态的(多个密钥的和所对应的公钥即为这些私钥所对应的公钥之和)。TFHE方案使用2轮即可产生所需要的公钥(用于加密)与计算密钥(用于对密文进行计算)。第一轮:各方产生公共密钥与各自的私钥份额;第二轮:各方产生公共的计算密钥,并且使用一轮即可完成解密协议。

之后又构造了4轮协议:

1. 各方运行TFHE密钥生成协议的第1轮并产生公共的公钥;

2. 各方运行TFHE密钥生成协议的第2轮,产生公共的计算密钥,并利用第1轮的公共公钥将各自的输入加密,广播出去;

3. 云服务器拿到方案的公钥,计算密钥以及所有的密文之后自行算出计算结果的密文然后将密文广播,最后,各参与方拿到计算结果的密文,运行解密协议可得到真正的计算结果。

其中各参与方仅需要执行与TFHE相关的计算,真正的计算任务在云服务器执行。该协议可以被证明在半恶意模型下安全,即模型中敌手基本遵照协议进行,但是可能会根据自己的视图恶意地产生运算中使用的随机数。云服务器可以仅利用简明非交互零知识论证系统(succinct non-interactive argument systems),而不使用掷币协议来证明它在诚实的执行协议,将其转化为恶意敌手模型下安全的协议,转化后的协议仍然可以在4轮内完成。

因为实际应用中用户更倾向于在系统建立之初就产生自己的公私钥对,并长期使用。Lopez-Alt等人提出多密钥全同态机密方案(MFHE),提出了动态多方计算(on-the-fly multiparty computation)的概念。这个方案还是一个全同态加密方案,但是运算可以在利用不同公钥加密的密文之间进行,运算后的结果密文大小与运算电路以及运算中使用的密文个数无关,仅与涉及到的公钥数量相关。

上述研究具有很大的理论意义,但是受到全同态加密方案的制约。Peter等仅利用加同态给出了一个实用的解决方案。此方案用户不需交互式的对结果密文进行解密,仅需从云服务器将结果密文下载然后自行解密即可。使用了一个带有主私钥的加同态加密方案(BCP方案)除了用户的公私钥对外,系统还存在一个主私钥(用来解密在公开参数下使用任意公钥加密的密文),并假设用户使用2个不合谋的服务器,一个掌握加密方案的主私钥,可以解密所有出现的密文;另一个保存所有的用户密文。在用户将数据上传之后,可以运行安全多方计算协议自行计算出结果。

具体来说,在系统建立阶段,其中一个产生BCP方案的主私钥公共参数,随后它公开此公共参数并自己保留主私钥;然后用户利用此公开参数产生自己的公私钥对,利用公钥加密自己的数据,并将密文上传到另一个云服务器;当有计算任务,两服务器共同完成计算。此方案是在半诚实敌手模型下安全的,所有用户,包括云服务器,均为半诚实的。为了说明所构造的协议的高效性以及实用性,作者还给出了协议各部分的实际运行时间,以及2个特定应用协议的总体运行时间(隐私保护的人脸识别以及隐私保护的智能测量)

比较

基于同态加密的云辅助安全多方计算,协议结构最为简单,对整个功能函数进行密态计算,避免将任意功能函数转化为相应的电路,然后依次对电路门进行安全计算。它将对任意功能函数的计算能力,封装到全同态加密方案中。这类方法受到全同态密码算法的限制。

Yao混乱电路的不需使用低效的非对称密码操作,但也存在不足:较之同态的,安全模型有所降低,SMPC模型下,不诚实参与方是允许合谋的;要求至少一个非服务器参与方必须做与电路大小线性相关的工作。

秘密共享的,可以完全转化为标准的安全多方计算协议,不需在安全模型上做出进一步改进,但协议效率低。

基于云的几类特定的安全多方计算协议

特定协议:云环境下基于安全多方计算技术的秘密集合求交(private set intersection, PSI)、隐私保护的信息检索(private information retrieval,PIR)、数据库查询和推荐系统等具体应用协议。

秘密集合求交

freedman首先提出秘密集合求交协议,kershbaum提出[22]抗合谋的外包秘密集合求交协议,有两个协议:服务器可获得交集大小的协议,服务器无法获知任何消息的协议。[23]又提出了另一种解决方案,用户不是直接将集合的密文外包给云服务器,而是将集合转换成相应地布隆过滤器,之后将布隆过滤器加密后外包给服务器。云服务器利用加密的布隆过滤器进行求交操作,因而,为了获得求交结果用户不得不自己保存整个集合的副本。[24]中用户首先对集合中的每个元素做一次hash,再加上一个随机值,来保证隐私性。随后将处理后的集合上传到云服务器,由云端在散列值下进行交集操作。[25]中类似于[24]但提供了可验证机制。[24-25]都有信息泄露量大的问题,即服务器可获知求交结果集合的基数,并且如果2个集合都和第3个集合求过交集,那么这2个集合是否有交集就被服务器知道了。

kamara等人提供了较为完善、多个不同安全模型下可证明安全的方案[26](半诚实的和恶意的服务器),同时给出了保证公平性和能够隐藏交集大小的方案。具体来讲,半诚实模型下,用户通过一个伪随机函数对集合每个元素进行盲化,再利用一个伪随机置换将集合内元素顺序打乱。服务器只需做“求交”操作之后返回用户,用户利用为随机函数的逆过程,获得明文。在恶意服务器模型下,为防止服务器返回错误的求交结果,在半诚实模型下安全的协议的基础上,用户将集合的每个元素复制x份,每份后连接上相应地序号。服务器返回求交结果后,用户只需检查序号是否完备。

Abadi提出了一个多用户外包秘密集合求交协议,允许无限多个用户将自己的集合加密后,上传到云服务器,只有在得到每个用户的允许后,服务器才能够求这几个用户的交集。另外,每个用户在将他的集合外包给服务器后,便可和其他不同集合的用户进行求交操作(不需再用不同的密钥加密)。

隐私保护的信息检索及其外包

Chor等人最先提出隐私保护的信息检索。

Olumofin等人的实验显示,传统隐私保护的信息检索模式在数据量增加到TB级别时,仅执行云端的计算任务就要10min。[30]利用MapReduce范型将大数据库下的查询,分解成多个数据库存储上面的并行子查询,而每个服务器上面子查询,采用传统的隐私保护的信息检索方案即可达到效率要求[31-32]。

jarecki等提出了外包隐私保护的信息检索概念。Huang等人同时考虑了外包数据库的茫然更新问题。既保证数据库用户访问模式的隐私性,还要保证数据库本身及其更新模式不被服务器获取。

外包数据库查询及安全多方计算

在云计算数据即服务(data as a service,DaaS)模式下,如何在加密的数据上执行检索操作是数据库安全外包中的核心问题。

可搜索加密(searchable encryption,SE)的概念被提出。在将此方案应用到加密数据库查询协议时,安全多方计算协议是一个重要的工具。

Cash提出支持布尔查询的大数据可搜索对称加密方案中,使用了一个安全两方计算协议,既利用了数据拥有者的秘密陷门,又保护了陷门数据的机密性。从安全多方计算角度讲,数据库安全外包与检索协议的功能函数分为2个阶段:初始化阶段检索阶段。协议的设计希望达到最少的交互轮数和最小的通信量。Hazay等从安全多方计算的角度,在理论上系统地分析了在半诚实模型下,外包数据库查询协议的通信轮数和通信量的下界,并指出为设计出达到该下界的协议,可信的初始化阶段和随机预言机(random Oracle)是必要的。同时给出了一个达到最小交互轮数和最小通信量的具体协议。

推荐系统

也是一个很重要的多方应用协议,在一个推荐系统中,存在一个服务器和多个客户,服务器利用客户的个人信息为客户推荐可能需要的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值