什么是安全多方计算?
在过去的几十年里,数据隐私和安全已经成为每个人最关心的问题。由于技术进步和互联网的兴起,当数据分布在大型分布式网络上时,提供数据的数据安全性和数据隐私一直是一项具有挑战性的任务。由于现在每个人都关心他们的数据,因此正在进行大量研究如何为网络中的参与者提供数据安全和隐私。为数据安全和数据隐私问题提供解决方案的技术之一是安全多方计算。
安全多方计算可以定义为“n”个玩家在不泄露输入的情况下安全地在约定的函数上联合计算的问题。
历史
安全多方计算始于 1970 年代初期。当时被称为多方计算。它当时并没有得到普及,因为它没有实际实施。在 1982 年,它被引入为安全的两方多方计算。它用于解决许多计算问题,而无需向其他方透露输入。最后,它以安全多方计算的名称出现,其中计算了不同类型的函数,这就是它有时被称为SFE-安全函数评估的原因。
- 安全的多方计算用于在不损害隐私的情况下利用数据。
- 它是有助于保护数据隐私的加密子字段。
- 区块链、移动计算、物联网、云计算等新兴技术导致了安全多方计算的重生。
- 由于区块链技术的兴起,安全多方计算已成为过去十年的热门研究领域。
- 研究人员现在对在分布式系统中实现安全多方计算更感兴趣。
- 与集中式系统不同,安全多方计算在分布式系统中可能具有更好的性能。
建筑学
安全多方计算提供了一种协议,在该协议中,在跨多方分发数据时,任何人都无法看到其他方的数据。它使数据科学家和分析师能够在不暴露分布式数据的情况下私下计算。
同事们想要计算最高工资而不向其他人透露他们的个人工资。为了执行这样的计算,实现了安全的多方计算来计算最高工资。各方以分布式方式共同执行一个函数来计算它而不透露工资。使用中的数据以加密形式保存、分解和分布在各方之间,没有量子攻击的机会。在现实世界中不可能有一个受信任的一方,因为所有各方都以一种或另一种方式相互通信。在这种情况下,各方可能会被破坏。腐败的一方有半诚实和恶意的行为。
- 半诚实的对手是遵循指定协议但使各方腐败的人。该协议是诚实运行的,但他们试图从各方之间交换的消息中提取信息。
- 恶意对手试图破坏安全性并且不遵循指定的协议。攻击者可以在协议的执行过程中进行更改。在使用多方计算时,我们假设该方是诚实的,遵循所有协议。
例子
假设我们想在不透露实际工资的情况下计算三个员工的平均工资,对于这样的问题,可以使用安全的多方计算。我们举个例子——
问题的数学表示可以表示为:
F(A, B, C) = Average (A, B, C)
Sam、Bob 和 Cassy 想要计算他们的平均工资。
- 假设 Sam 的薪水是 4 万美元。使用附加共享,40k 美元被分成随机生成的三部分 $44k、$-11k 和 $7k。
- Sam 将其中一件秘密物品留给自己,并将另外两件分发给每个人。
- 所有三个都遵循相同的程序。
- 秘密共享在使用时以加密形式保存数据。程序如下-
Sam | Bob | Cassy | |
44 | -11 | 7 | $40 |
-6 | 32 | 24 | $50 |
20 | 0 | 40 | $60 |
$58 | $21 | $71 |
Total salary = $150
Average Salary = 150/3
= $50
从以上分享的数据来看,没有关于实际工资的线索,但正在计算平均工资。
技术
为安全多方计算协议构建开发了许多具有不同特征的技术。下面列出了安全多方计算中使用的一些技术:
- Shamir 秘密共享:当安全多方计算中存在诚实多数时,秘密共享被用作基本工具。秘密共享方案是在 n 方之间共享秘密 s,使得 t+1 或更多方聚集在一起以重建秘密。小于 t 的各方无法获得任何信息或重建秘密。满足 n 中的 t+1 个要求的方案称为阈值秘密共享方案。
- 诚实多数 MPC:函数可以用布尔值或诚实多数的算术电路表示。对于具有诚实多数的基于MPC的秘密共享,算术电路存在p>n的有限域Zp,并且该电路是图灵完备的。
- 输入共享:每一方使用 Shamir 秘密共享共享输入。该电路被提供用于计算的输入。每一方通过在输入中添加一些随机数来保持其输入的私密性,最后,在获得输出后,该方已知的随机数被移除,我们得到输出。
- 电路评估:电路由各方一次评估一个门。从输入到输出对门进行连续评估。评估包括加法和乘法门的计算。对于输入 a(x) 和 b(x),第 i 方的加法输出计算为c(i) = a(i) + b(i) 。同样,第i方的乘法输出计算为c(i) = a(i) 。双)。
- 私有集交集:私有集交集协议对于双方的问题非常有效。希望在不透露输入的情况下找到与私有输入集相交的元素的两方,对于诚实和不诚实的对手来说,私有集相交是更好的方法。
- 阈值密码术:阈值密码术旨在为一组方执行密码操作,而不由任何一方持有秘密。 RSA 算法用于基本函数为 y=xe mod n 的方案。 RSA 用于加密秘密或消息。
- 不诚实的多数 MPC:在安全的多方计算中,可以有诚实方和不诚实方。只要有诚实的多数,安全的多方计算就是安全的。如果对手的腐败程度超过大多数,则需要新的安全方法。对于不诚实的大多数人,有 GMW 不经意传输、乱码电路、Tiny oz 等协议以及更多协议。
安全多方计算的好处
让我们讨论安全多方计算的一些好处:
- 受信任的第三方:在安全多方计算中,我们可以在没有任何第三方的情况下,以分布式的方式与不同的组织共享数据,甚至在共享数据的同时保护数据的隐私。
- 数据隐私:可以共享组织的私人数据以用于计算目的。数据隐私的关注是通过使用安全的多方计算来提供的,它使使用中的数据保持加密形式。因此,数据不会被泄露或泄露。
- 高精度:安全多方计算为使用密码学的不同计算提供高精度结果。
- 量子安全:各方之间共享的数据对量子攻击是安全的,因为数据在分配给各方进行计算时会被分解和加密。
安全多方计算的局限性
用于解决不同问题的安全多方计算,但几乎没有限制。主要限制是计算开销和高通信成本。
- 计算开销:为了提供生成随机数所需的安全性,随机数生成需要更多的计算开销,这会减慢运行时间。
- 高通信成本:通过网络将数据分发给多方进行计算会导致更高的通信成本。