安全多方计算

安全多方计算是解决在一个互不信任的多用户网络中,两个或多个用户能够在不泄漏各自私有输入信息时,协同合作执行某项计算任务的问题。它在密码学中拥有相当重要的地位,是电子选举、门限签名以及电子拍卖等诸多应 用得以实施的密码学基础。

研究现状

安全多方计算(secure multi-party computation,简称 SMPC)是由姚期智于 1982 年 为解决百万富翁问题提出,而后经过Goldreich、Micali 和 Wigderson 等人的不断的研究给出了实质性的描述,称为 GMW 协议。

现实中考虑到协议的实际应用和协议参与者的行为,对于协议安全问题,主要研究半诚实模型和恶意模型两种情况,通常以半诚实模型为主研究高效的 SMPC 协议。 Garg S 等人在半诚实的情况下,讨论了构建两轮 SMPC 协议的几个扩展,在两轮不经意传输(OT)条件下,给出了新的两轮多方安全计算(SMPC)协议。证明了任何 SMPC 协议都可以在保持其正确性和安全性的同时转换成符合标准的协议。Benhamouda F等人提出了基于半诚实模型的 OT 协议的轮高效或者是轮优化的多方计算协议的构造。并证明了用于构造 SMPC 协议的乱码交互电路可以用 OT 实现。在半诚实条件下对 SMPC 协议的讨论都基于混淆交互电路的框架。并在有限轮数下,对 k 轮半诚实 OT 和 k 轮恶意通用可组合协议进行了分析。

以上协议只对半诚实模型下的安全问题进行了较为详细的研究,但没有对恶意模型下的安全问题深入的描述,而 SPDZ 协议主要探讨了在恶意模型下的安全问题,SPDZ 表示预处理模型中基于某种同态加密的多方计算方案,并且是最为实用的 SMPC 协议。Keller M等人提出的方案在存在恶意对手的情况下,需要保证各方确实加密了他们应该加密的信息。Spini G等人重新讨论了基于 SPDZ 多方计算协议,在不诚实者存在的情况下安全地计算一个函 数。方案同时增强了 SPDZ 协议对不诚实者行为的检测,不诚实参与者强制停止协议或 退出协议致使计算失败都被认为作弊者。

近年来,对安全多方计算的分类研究主要包含以下几个维度:

1.不经意传输和混淆电路:

不经意传输(Oblivious Transfer,OT)(称为茫然传输):发送者具有多个秘密数据,将其中一个秘密数据发送给接受者,接受者除了知道已接收的秘密数据而不知道发送者的其他秘密数据,发送者也无法知道发送给接收者的秘密数据。

混淆电路(加密电路):电路实现主要由与或非门模拟任意计算函数,通过对电路的加密来隐藏实际输入,实现对各个参与者的数据保密,以电路计算实现安全多方计算函数。

2.半诚实模型和恶意模型:

半诚实参与者(被动攻击):参与者遵守计算协议进行计算过程,但有可能将自己的计算结果透露给攻击者。

恶意参与者(主动攻击):参与者完全按照攻击者的要求执行计算任务,不但将输入数据和计算结果泄漏给攻击者,而且根据攻击者的意图篡改数据,甚至终止协议。

3.安全两方计算和安全多方计算:

安全两方计算:是安全多方计算的特殊形式,仅仅只有两位计算参与者。两方计算概念定义方式有两种,第一种是功能函数的输出分布计算不可区分性,也称为两方保密计算;第二种是采用实际需求分析和理想函数框架定义。 安全多方计算:计算参与者数量较多,并且协议的设计是为了抵抗任意敌手的攻击, 其中有参与者之间相互串通修改计算结果或不合法的输入导致计算协议终止,与安全两方计算协议不同,无论敌手情况还是编译器构造都是比较复杂的。

4.通用协议和具体问题协议:

通用协议:Yao 将安全多方计算的功能函数抽象为混淆门的电路,实现对任意函数的计算,经过不断的优化提高了计算效率,但此方案只适用于半诚实模型,在恶意模型下,利用通用编译器的方法,借助比特承诺与零知识证明等工具编译协议,但执行效率较低。

具体问题协议:针对实际问题设计专门的协议。

参考文献:王旭升 基于区块链的安全多方计算研究与分析

posted @ 2021-12-28 16:06  凯在想peach  阅读(1535)  评论(0编辑  收藏  举报