第162篇 笔记-安全多方计算
创始人
2024-06-02 17:48:07
0

一、主要概念

安全多方计算(Secure Multi-Party Computation):指多个参与者在不泄露各自隐私数据情况下,利用隐私数据参与保密计算,共同完成某项计算任务。

该技术能够满足人们利用隐私数据进行保密计算的需求,有效解决数据的“保密性”和“共享性”之间的矛盾。多方安全计算包括多个技术分支,也可以认为是一堆协议集,主要包括:

  1. 秘密共享:将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。更重要的是,当其中任何相应范围内参与者出问题时,秘密仍可以完整恢复。

  1. 同态加密:一种允许在加密之后的密文上直接进行计算,且计算结果解密后和明文的计算结果一致的加密算法。这个特性属性对于保护信息的安全具有重要意义,利用同态加密技术可以先对多个密文进行计算之后再解密,不必对每一个密文解密而花费高昂的计算代价;利用同态加密技术可以实现无密钥方对密文的计算,密文计算无须经过密钥方,既可以减少通信代价,又可以转移计算任务,由此可平衡各方的计算代价,利用同态加密技术可以实现让解密方只能获知最后的结果,而无法获得每一个密文的消息,可以提高信息的安全性。

  1. 不经意传输:一种可保护隐私的双方通信协议,消息发送者从一些待发送的消息中发送某一条给接收者,但并不知道接收者具体收到了哪一条消息。不经意传输协议是一个两方安全计算协议,协议使得接收方除选取的内容外,无法获取剩余数据,并且发送方也无从知道被选取的内容。

  1. 零知识证明:证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。

  1. 混淆电路:双方进行安全计算的布尔电路。混淆电路将计算电路中的每个门都加密并打乱,确保加密计算的过程中不会对外泄露计算的原始数据和中间数据。双方根据各自的输入依次进行计算,解密方可得到最终的正确结果,但无法得到除结果以外的其他信息,从而实现双方的安全计算。

安全多方计算的优点:

1.基于密码学安全,其安全性有严格密码理论证明,不以信任任何参与方、操作人员、系统、硬件或软件为基础;

2.各个参与方对其拥有的数据拥有绝对的控制权;

3.保障基本数据和信息不会泄露,同时计算准确度高;

4.支持可编程通用计算。

二、在区块链中的应用

在安全多方计算中,程序的输入(更准确地说,是模拟电路的输入,因为安全多方计算不能处理if声明和条件循环)通过Shamir秘密共享算法被分成若干份信息,并且每一份信息分别分发给一位参与者。Shamir秘密共享算法可以用来把任意数据切分成N份,并且只需其中任意K份就能恢复出原始数据,但任意(K-1)份都无法恢复出原始数据。在运行算法时,用户可以算则N和K的值,比如3取2、10取5和1000取501。然后,可以根据切分出来的信息以去中心化的形式来评估电路,从而使得计算完成时每个人都有一份计算结果。但在计算过程中的任何时刻,所有人都对计算状况一无所知。最后,所有的信息都被整合在一起来揭示结果。

这个算法的运行时间是O(n**3),也就是说,它用来评估一个计算的计算步数与参与者数量的三次方大致成正比。比如,在10个节点的情况下,对应1000步计算;而在1000个节点的情况下,对应10亿步计算。一个简单的10亿步计算在普通个人电脑上运行完大约需要10秒,二服务器可以在零点几秒的时间内运行完。因此,在满足计算可行性的前提下,当前节点数量的极限值大约为1000。

结果表明,安全多方计算可以被用来生成区块链的地址和签署交易。地址的生成协议很简单:

  1. 每个人生成一个随机数作为私钥;

  1. 每个人计算对应于私钥的公钥;

  1. 每个人展示自己的公钥,并使用Shamir秘密共享算法来计算一把可以由这1000把已被展示的公钥中的501把密钥重构的公钥;

  1. 地址依据那把公钥生成;

由于公钥可以被整数进行加减乘除运算,这种算法的有效性与预期惊人地完全一致。如果每个人都以相同的方式用1000把密钥中的501把合成一个私钥,则这个密钥将能够花费被发送到它对应公钥所产生的地址里面的资金。

这个方法之所以有效,是因为Shamir秘密共享算法其实只是一个代数公式。也就是说,它仅需要进行加减乘除运算,并且人们在公钥上计算这个公式就像用这个公式计算地址一样简单。因此,无论在私钥转换成公钥的过程之前还是之后使用这一代数都没有关系。签署交易可以用类似的方法完成,只是过程会复杂一些。

相较于多重签名的优势:

假设由1000台可被信任的计算机,令每一台计算机都生成一把私钥,并在它们当中生成一个满足1000取501的多重签名地址。为了使用它里面的资金,只需要使用其中任意501个节点的签名构造一笔交易,然后把这笔交易广播到区块链中。在比特币网络中,这里有一个明显的问题:这笔交易将过于庞大。每个签名大约有70 byte,因此501个签名将有35 KB,而比特币网络默认拒绝脚本超过10 KB的交易,因此这笔交易很难被网络所接受。

安全多方计算可以解决这个问题。

安全多方计算的美妙之处在于,它的应用范围超越了区块链。可以同样方便地用于去中心化组织和公司的运营,甚至人工智能算法。

相关内容

热门资讯

122.(leaflet篇)l... 听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
Vue使用pdf-lib为文件... 之前也写过两篇预览pdf的,但是没有加水印,这是链接:Vu...
PyQt5数据库开发1 4.1... 文章目录 前言 步骤/方法 1 使用windows身份登录 2 启用混合登录模式 3 允许远程连接服...
Android studio ... 解决 Android studio 出现“The emulator process for AVD ...
Linux基础命令大全(上) ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维...
再谈解决“因为文件包含病毒或潜... 前面出了一篇博文专门来解决“因为文件包含病毒或潜在的垃圾软件”的问题,其中第二种方法有...
南京邮电大学通达学院2023c... 题目展示 一.问题描述 实验题目1 定义一个学生类,其中包括如下内容: (1)私有数据成员 ①年龄 ...
PageObject 六大原则 PageObject六大原则: 1.封装服务的方法 2.不要暴露页面的细节 3.通过r...
【Linux网络编程】01:S... Socket多进程 OVERVIEWSocket多进程1.Server2.Client3.bug&...
数据结构刷题(二十五):122... 1.122. 买卖股票的最佳时机 II思路:贪心。把利润分解为每天为单位的维度,然后收...
浏览器事件循环 事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间࿰...
8个免费图片/照片压缩工具帮您... 继续查看一些最好的图像压缩工具,以提升用户体验和存储空间以及网站使用支持。 无数图像压...
计算机二级Python备考(2... 目录  一、选择题 1.在Python语言中: 2.知识点 二、基本操作题 1. j...
端电压 相电压 线电压 记得刚接触矢量控制的时候,拿到板子,就赶紧去测各种波形,结...
如何使用Python检测和识别... 车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计...
带环链表详解 目录 一、什么是环形链表 二、判断是否为环形链表 2.1 具体题目 2.2 具体思路 2.3 思路的...
【C语言进阶:刨根究底字符串函... 本节重点内容: 深入理解strcpy函数的使用学会strcpy函数的模拟实现⚡strc...
Django web开发(一)... 文章目录前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和s...