链闻 ChainNews

安全多方计算对网络信息安全与数据市场的发展具有重要价值。

撰文:钱柏均,就职于 HashKey Capital Research审校:邹传伟,万向区块链、PlatON首席经济学家本文对安全多方计算做出技术及应用分析。结论是,安全多方计算能够解决互不信任的参与方之间保护隐私的协同计算问题。安全多方计算拓展了传统分布式计算的边界以及信息安全范畴,对解决网络环境下的信息安全具有重要价值。安全多方计算能够结合多行业领域进行数据融合,对数据市场的发展十分重要。数据是一个复杂概念,有多种类型和丰富特征。随着时代从互联网转变至区块链,数据即将成为可产生经济价值的资产。但是,大多数企业考虑到数据安全和个人隐私等问题,对数据共享都非常谨慎。对个人数据而言,控制权和隐私保护的重要性超过所有权。因此,企业在面临数据输入的隐私及输出的结果上常常遇到平衡上的困难。举例来说 : 医院需要与保险公司分享病患数据,但是又不能泄露病患的个人隐私。安全多方计算(Secure Muti-party Computation)提供了一种技术上的解决方案,能够在无可信第三方的情况下安全地进行多方协同的计算。本文分为三个部分 : 第一部分探讨安全多方计算的架构。第二部分研究安全多方计算的技术实现方式。第三部分分析安全多方计算应用及未来发展。安全多方计算定义与架构定义安全多方计算可以定义为在一个分布式网络且不存在可信第三方的情况下,多个参与实体各自持有秘密输入,并希望共同完成对某函数的计算并得到结果,前提是要求每个参与实体均不能得知除自身外其他参与实体任何输入信息。

以下为安全多方计算的数学表述:

安全多方计算架构安全多方计算主要分为两个参与方 :参与节点枢纽节点。各个参与节点地位相同,可以发起协同计算任务,也可以选择参与其他方发起的计算任务。枢纽节点不参与实际协同计算,主要用于控制传输网络、路由寻址及计算逻辑传输。此外,在去中心化的网络拓扑里,枢纽节点是可以删减的,参与节点可以与其他参与节点进行点到点连接,直接完成协同计算。安全多方计算过程中,每个数据持有方可发起协同计算任务,并通过枢纽节点进行路由寻址,选择相似数据类型的其余数据持有方进行安全的协同计算。参与协同计算的多个数据持有方的参与节点会根据计算逻辑,从本地数据库中查询所需数据,共同就安全多方计算任务在密态数据流间进行协同计算。整个过程各方的明文数据全部在本地存储,并不会提供给其他节点。在保证数据隐私的情况下,枢纽节点将计算结果输出至整个计算任务系统,从而各方得到正确的数据结果。

安全多方计算主要有三个特性 :

  1. 隐私性。安全多方计算首要的目的是各参与方在协作计算时如何对隐私数据进行保护,即在计算过程中必须保证各方私密输入独立,计算时不泄露任何本地数据。
  2. 正确性。多方计算参与各方通过约定安全多方计算协议发起计算任务并进行协同计算,运算数据结果具备正确性。
  3. 去中心化。安全多方计算中,各参与方地位平等,不存在任何有特权的参与方或第三方,提供一种去中心化的计算模式。

图 1: 安全多方计算技术框架图,来源:中国信息通信研究院云计算与大数据研究所安全多方计算信任环境安全多方计算的信任环境或者说整体安全定义通常由真实-理想模型 (Real-Ideal Paradigm) 来表达。在真实-理想模型中,存在一个虚拟的「理想」环境,与真实环境进行比较。在理想环境里,所有参与方都会将各自的秘密数据发送给一个可信第三方,由可信第三方完成计算。而在真实环境下,不存在这样的可信第三方,所有参与方通过互相交换信息,完成协同计算,并且会存在敌手进行控制其中部分参与方的情况。一个安全多方计算系统满足在真实-理想模型下的安全性,是指真实环境下的敌手无法产生比理想环境下的攻击者更多的危害;换言之,如果存在敌手可以对真实环境造成危害,那么也存在敌手可以对理想环境造成同等效果的危害。由逆否命题可知,事实上,不存在敌手能对理想环境造成危害,从而可以得出结论:不存在真实环境下的成功的敌手

一般而言,在安全多方计算中,根据攻击者的能力差异可以定义两种不同的攻击者相关的安全模型。

  1. 半诚实模型 (Semi-Honest Adversaries’ Security)。在半诚实行为模型中,假设敌手会诚实地参与安全多方计算的具体协议,遵照协议的每一步进行,但是会试图通过从协议执行过程中获取的内容来推测他方的隐私。
  2. 恶意行为模型 (Malicious Adversaries’ Security)。在恶意行为模型中,恶意节点可能会不遵循协议,采取任意的行为(例如伪造消息或者拒绝响应)获取他方的隐私。

目前有许多安全多方计算的改进方案,可以达到恶意行为模型下的安全性,但是都需要付出很大的性能代价,大规模的安全多方计算产品,基本上通常只考虑半诚实模型,恶意行为模型的解决方案会严重影响效率和实用性安全多方计算的实现形式秘密共享秘密共享是在一个常被应用在多方安全签名的技术,它主要用于保护重要信息被丢失、或篡改。通过秘密共享机制,秘密信息会被拆分,每个参与者仅持有该秘密的一部分,个人持有部分碎片无法用于恢复秘密,需要凑齐预定数量(或门限) 的碎片。

不经意传输 (Oblivious Transfer)

不经意传输是一种密码学协议,被广泛应用于安全多方计算领域,它解决了以下问题 :

举例来说,Alice 手上有两组密封的密码组合,Bob 只能获得一组密码且 Bob 希望 Alice 不知道他选择哪一组密码。这时候就能利用不经意传输来完成交易。

图 2: 不经意传输示意图,来源 : 链闻

不经意传输存在双方角色,发送者与接收者。一个可行的具体实现过程,分为四个步骤:

混淆电路 (Garbled Circuit)混淆电路是姚期智教授在 80 年代提出的安全多方计算概念。混淆电路是一种密码学协议,遵照这个协议,两个参与方能在互相不知晓对方数据的情况下计算某一函数。

姚氏百万富翁问题(Yao's Millionaires' Problem)为例,两个百万富翁 Alice 和 Bob 想在不知道对方精准财富值的情况下比较谁的财富值更高。比如 Alice 的财富值是 20,Bob 的财富值是 15。藉由混淆电路,Alice 和 Bob 都可以知道谁更富有,但是 Alice 和 Bob 都不知道对方的财富值。混淆电路的核心逻辑是先将计算问题转换为由与门、或门、非门所组成的布尔逻辑电路,再通过公钥加密、不经意传输等技术来扰乱这些电路值以掩盖信息,在整个过程双方传输的都是密码或随机数,不会有任何有效信息泄露。因此双方在得到计算结果的同时,达到了对隐私数据数据保护的目的。假设存在双方 Alice 及 Bob 进行混淆电路协议。混淆电路实现过程分为四个步骤 :

  1. Alice生成混淆电路。由图 4 可知,Alice 生成的混淆电路中间会连接许多逻辑门,每个逻辑门都有输入线及输出线,且都有一组真值表(Truth table)
  2. Alice 与 Bob 通信。Alice 将逻辑门的真值表对称加密并将真值表的行列打乱成混淆表 (Garbled table) 传送至 Bob。
  3. Bob 在接收到加密真值表后,对加密真值表的每一行进行解密,最终只有一行能解密成功,并提取相关的加密信息。其中,Bob 通过不经意传输协议从 Alice 获得对应的解密字符串。不经意传输能够保证 Bob 获得对应的解密字符串,且 Alce 无法得知 Bob 获得哪一个。
  4. 最后,Bob 将计算结果返回给 Alice,双方共享计算结果。由于双方需对电路中每个逻辑门进行几个对称密钥操作,因此使用混淆电路的方案的计算复杂度相对也较高,并且当扩展到参与方较多的计算场景时会更加复杂。

图 3: 一般电路、门及真值表,来源 : 安全计算与密码学零知识证明零知识证明指的是示证者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明存在双方或多方角色:示证者 (prover)验证者 (verifier)。示证者宣称某一命题为真,而验证者确认该命题是否为真。经典的零知识证明(Sigma 协议)通常包含三个步骤 :

  1. 示证者先根据命题内容向验证者发送命题论述,这个论述必须经过处理转换成密态论述(一般称为「承诺」),且命题内容无法在后续的某一时刻进行篡改和抵赖。
  2. 验证者随机生成一个挑战并发给示证者。
  3. 示证者根据挑战和命题论述生成证明信息发给验证者。验证者利用证明信息判断示证者是否通过了该次挑战。

重复多次这三个步骤,可以降低示证者是因为运气的成份通过挑战的概率。示证者提供的密态命题论述有两个作用,一来可以防止示证方对命题内容临时造假,二来可以让验证者无法得知全部信息,保持隐私性。

零知识证明具备三个属性 :

  1. 完备性。如果论述命题确实为真,那么诚实的验证者一定会被诚实的示证者说服。
  2. 可靠性,如果论述命题为假,那么示证者只能以很小的机率欺骗诚实的验证者。
  3. 零知识。验证者只能知道论述命题是否为真这一结果,而无法从整个交互式证明过程里获得其它任何有用的讯息。安全多方计算通常会利用零知识证明作为辅助手段,举例来说,验证恶意节点发送虚假数据或是做节点身份证明等等。

安全多方计算应用与困难目前来说,安全多方计算主要是通过混淆电路秘密共享两个方式实现。基于混淆电路的协议更适用于两方逻辑运算,通讯负担较低,但拓展性较差。而基于秘密分享的安全多方计算其拓展性较强,支持无限多方参与计算,计算效率高,但通讯负载较大。目前安全多方计算的应用可以分为两个部分 :数据融合数据资产化数据融合让双方或多方数据融合并合作是目前安全多方计算能够发挥最大价值之处。举例来说,联合征信。银行拥有用户金融行为相关数据,而互联网公司一般拥有用户网络的使用数据,如何让两方的数据合作,共同建立一个信用模型,是数据协作的一个关键的问题。利用安全多方计算,可以在双方保留隐私的情况下找到共用的数据集,并且在多方数据基础上训练出的信用模型将更加准确,从而对未知情形提供更加合理的预测,减少数据融合的外部性。除此之外,数据安全存储也是一大应用。企业可使用秘密共享技术将数据以秘密的方式存储,有效防止内部人员非法盗用数据的情况发生。同时,存储的数据无需解密即可进行其他计算,既保证了安全性,又提升了计算效率。数据资产化安全多方计算有机会能够促进未来数据资产化数据市场的发展。由于安全多方计算能够在数据传输的过程中从技术层面保证数据确权的问题,使数据的所有权与使用权划清界线,因此企业或个人将可以通过安全多方计算将有价值的数据视为资产,并在市场上流动或进行交易。数据提供方可以规定数据的用途、用量、有效期等使用属性,数据的使用者在拿到数据后只能在授权范围内合理地使用数据,并能将剩余数据的使用权量化或做进一步流通。安全多方计算可以将数据市场的本质由数据所有权转向数据使用权,保障原始数据所有者的权益,有效遏制原始数据泄漏,降低数据泄漏引起的数据流通风险,促进数据的大规模应用。未来挑战随着区块链和大数据等技术的逐渐发展,我们对数据及计算的要求相对更高。比如:区块链要求匿名性,数据计算需要隐私保护等等。因此类似安全多方计算等密码学技术在实际使用过程中,就会出现解释成本非常高,且效率低的问题。安全多方计算会涉及庞大的计算量及通信量,尤其是涉及公钥运算。目前安全多方计算单个运算可以达到毫秒级,也就是说每秒钟最多能做几百次计算。但是在大数据的场景下,一个数据应用或模型训练往往涉及数十万单位的数据样本及特征量,运算效率会是一个问题。除此之外,对于某些在线或需要实时计算并且计算任务较复杂的应用场景,安全多方计算目前可能难以负担。

作者:链闻;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com

mpc 安全多方计算协议_HashKey:说透安全多方计算 MPC 技术方案、挑战与未来相关推荐

  1. mqtt协议详解_IoT物联网设备上云技术方案详解

    随着传感器和通信技术的不断发展,物联网行业方兴未艾,业务链路涉及数据采集,通信连接,数据存储,数据可视化,洞察,行动决策.但,在实施过程中,碎片化的设备端通信连接难题往往就阻碍了项目落地进程. 今天, ...

  2. 《隐私计算法律适用规则报告》:隐私计算如何助力数据合规

    近日六分仪法律实验室发布了<隐私计算法律适用规则报告>,本报告在剖析不同类型隐私计算技术特点的基础上,结合产业实践,对这一技术在保障目的限制.最小必要以及安全可信原则方面的供给作用进行了深 ...

  3. mpc 安全多方计算协议_BNC公链 | 不看到数据却能进行计算?一文了解安全多方计算...

    今天,数据可以用来分析复杂问题,提供解决方案,甚至解决无法回答的问题.但是,当涉及到利用数据为公众服务时,数据共享和数据保护之间往往存在着许多矛盾.而安全多方计算(MPC)如何在不泄露隐私数据的情况下 ...

  4. mpc 安全多方计算协议_一文揭秘跨链、密钥管理、合约隐私背后的技术, 你不可不知的安全多方计算(MPC)...

    安全多方计算已经被公认为区块链发展中重要的密码学技术和工具,其在交易或者合约隐私保护,钱包密钥管理,跨链交易,区块链扩容等问题中都发挥了独有的作用. 然而由于其具体技术涉及诸多密码学算法和数学背景知识 ...

  5. 冯登国院士团队重磅论文!《具体高效的安全多方计算协议综述》解读

    论文作者为中国科学院院士.北京信息科学技术研究院院长.中国科学院软件所客座研究员.博士生导师冯登国教授和密码科学技术国家重点实验室杨糠副教授.本文为开放隐私计算社区整理,分享仅供学习参考,如有转载,请 ...

  6. 【计算机研究与发展】一种基于区块链的泛用型数据隐私保护的安全多方计算协议——CCF A

    一种基于区块链的泛用型数据隐私保护的安全多方计算协议 刘峰1,3,杨杰3,李志斌 2*,齐佳音3* (1华东师范大学 计算机科学与技术学院,上海,200062: 2华东师范大学 数据科学与工程学院,上 ...

  7. 有限理性建模的方法和计算机平台,有限理性假设下的多方计算协议建模与仿真...

    有限理性假设下的多方计算协议建模与仿真 始于2004年的理性多方计算(Rational Multiparty Computation,RMPC)是密码学的新兴研究方向,在多方隐私保护合作计算.电子商务 ...

  8. 浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源

    在知乎上上看到如下问题: 浮点数精度问题的前世今生? 1.该问题出现的原因 ? 2.为何其他编程语言,比如java中可能没有js那么明显 3.大家在项目中踩过浮点数精度的坑? 4.最后采用哪些方案规避 ...

  9. python 浮点数精度丢失_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源...

    浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源 无论在java python javaScript里面都存在 1+ 2!== 3 问题,这个问题的产生根源在于计算存储数字是二进制,对无限循环小 ...

最新文章

  1. C++11 带来的新特性 (2)—— 统一初始化(Uniform Initialization)
  2. 在汇编程序中调用C函数
  3. PHP面试题:你常用到的mysql命令?
  4. 026-微软Ajax异步组件
  5. of_property_read_string 剖析~
  6. DelayedOperationPurgatory分析
  7. SQL中GROUP BY的理解
  8. 7z 头部错误 数据错误_Vue项目组件数据类型错误处理
  9. 理解这几个安全漏洞,你也能做安全测试【干货建议收藏】
  10. Android 广播接收器注册与注销源码分析
  11. 从二分逼近领略计算科学的魅力
  12. 网络嵌入之STNE model
  13. 关于jvm的OutOfMemory:PermGen space异常的解决
  14. 拒绝了对对象 'data'(数据库 'xxx',所有者 'dbo')的 SELECT 权限 解决方案
  15. 小程序访问第三方服务器,第三方微信小程序服务器地址设置
  16. Win10 VS2019+QT/OpenCV/灰点相机/函数信号发生器 配置及其使用
  17. Unity 3D 如何获取鼠标移动事件
  18. 网络爬虫-re库-正则表达式
  19. 全文搜索引擎solr使用说明
  20. rtl驱动 ubuntu 禁用_转载:Ubuntu 14.04 安装 rtl8188cus 驱动

热门文章

  1. 程序员如何达到年薪百万?java程序员必读书籍!
  2. 深度学习福利入门到精通第三讲——VGGNet模型
  3. 一个模型使召回阶段又准确又多样
  4. 从四大造字法看文字所承载的文化_对央视“汉字的魅力”讲授之管见(《天津教育报》2012年6月15日)...
  5. LeNet-5 卷积神经网络
  6. Redis基础(五)——删除策略和内存淘汰机制
  7. 一些值得注意的算法题——双指针
  8. 西瓜书+实战+吴恩达机器学习(五)监督学习之线性判别分析 Linear Discriminant Analysis
  9. selenium学习过程中遇到的问题
  10. 流程图外部数据内部数据图形_数据治理工具:基于SQL图形化数据血缘系统的实现和使用...