精华内容
参与话题
问答
  • 安全多方计算

    千次阅读 2019-09-02 10:05:07
    安全多方计算从入门到精通:MPC简介&JUGO平台 简介:今天我们来介绍一下基于安全多方计算所设计出来的产品JUGO。从安全性角度来看,数据泄露——隐私安全问题严重;facebook的数据泄露事件闹得很大,原因就是...

    安全多方计算从入门到精通:MPC简介&JUGO平台

    简介:今天我们来介绍一下基于安全多方计算所设计出来的产品JUGO。从安全性角度来看,数据泄露——隐私安全问题严重;facebook的数据泄露事件闹得很大,原因就是facebook单方面将用户的个人数据提供给了第三方机构,这为个人数据的拥有权敲响了警钟。从数据价值角度来看,数据孤岛——数据之间由于各种原因造成了壁垒,(政府数据由于政策保密性完全不能对外公布,运营商、互联网每家都在收集客户的数据信息,但他们不会将这些数据透露给第三者),所有这些,使得这些数据都无法互通,那么就不能够为数据使用者提供利用价值,达不到1+1>2的效果。因此目前急需一个既能保护数据隐私又能实现数据流动起来最大化其价值的解决方案——JUGO。

    1.概述

      大数据时代,海量数据的交叉计算可以为科研、医疗、金融等提供更好支持。许多企业或组织出于信息安全或利益的考虑,内部数据是不对外开放的。形成一个个数据孤岛,数据的价值无法体现或变现。安全多方计算(MPC)可以很好解决这一难题。保证各方数据安全的同时,又得到预期计算的结果。

      为了让数据安全地碰撞出更多价值,打破数据在行业、企业间流动的壁垒,矩阵元推出了JUGO安全多方计算平台。JUGO提供安全多方计算底层平台,并集成了通用MPC算法的SDK。同时提供编写高级语言Frutta的IDE,方便用户将Frutta语言编写的程序转换成电路。用户可以在平台上编写MPC算法并发布,也可以发起计算任务,邀请第三方进行安全多方计算或可以申请参与他人发起的计算任务。

      用户将计算节点部署到本地,可以选择JUGO开放服务平台作为代理(也可以是第三方), 节点之间通过代理进行加密通讯,所有节点不保留任何数据。整个计算过程没有任何明文或原始数据传播或存在,最后计算结果发送给事前约定的接收方。

    JUGO开放服务平台是一个数据加工厂,也是一个算法和数据集市。在保护数据安全的前提下帮助卖方用户数据增值、变现,帮助买方用户寻找所需的数据和服务。

      为了数据的流动是矩阵元的口号和愿景,流动的数据才更有价值。

    JUGO特性:

    • 支持semi-honest通用两方算法:GC+OT。
    • 支持Frutta编写的IDE,提供MPC算法的SDK,用户使用IDE和SDK进行开发。
    • 支持加法(addition),比较(comparison)多方算法。
    • 后续支持通用多方算法和硬件加速

    2.MPC名词解释

    名称 全称 中文名称 说明

    MPC

    Secure Multi-Party Computation

    安全多方计算

    一种保护数据安全隐私的多方计算算法。

    GC

    Garbled Circuit

    加密电路

    一种通过加密处理电路的方式。

    OT

    Oblivious Transfer

    不经意传输

    一种安全的选择、传输协议。

    MPC介绍

    1.安全多方计算的价值

           MPC是密码学的一个重要分支,旨在解决一组互不信任的参与方之间保护隐私的协同计算问题,为数据需求方提供不泄露原始数据前提下的多方协同计算能力。

      在目前个人数据毫无隐私的环境下,对数据进行确权并实现数据价值显得尤为重要。MPC就是实现此目的的计算协议,在整个计算协议执行过程中,用户对个人数据始终拥有控制权,只有计算逻辑是公开的。计算参与方只需参与计算协议,无需依赖第三方就能完成数据计算,并且参与各方拿到计算结果后也无法推断出原始数据。

    2.安全多方计算的来源

      安全多方计算(MPC:Secure Muti-Party Computation)研究由图灵奖获得者、中国科学院院士姚期智教授在1982年提出,姚教授以著名的百万富翁问题来说明安全多方计算。百万富翁问题指的是,在没有可信第三方的前提下,两个百万富翁如何不泄露自己的真实财产状况来比较谁更有钱。通过研究此问题,形象地说明了安全多方计算面临的挑战和问题解决思路,经Oded Goldreich、Shaft Goldwasser等学者的众多原始创新工作,安全多方计算逐渐发展成为密码学的一个重要分支。

    3.问题抽象

     

      安全多方计算可以抽象的理解为:两方分别拥有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数 的结果。整个计算完成时,只有计算结果对双方可知,且双方均不知对方的数据以及计算过程的中间数据。

     

    4.什么是安全多方计算?

      多个持有各自私有数据的参与方,共同执行一个计算逻辑计算逻辑(如,求最大值计算),并获得计算结果。但过程中,参与的每一方均不会泄漏各自数据的计算,被称之为MPC计算。

      举个例子,Bob和Alice想弄清谁的薪资更高,但因为签署了保密协议而不能透露具体薪资。如果Bob和Alice分别将各自的薪资告诉离职员工Anne,这时Anne就能知道谁的薪资更高,并告诉Bob和Alice。这种方式就是需保证中间人Anne完全可信。

      而通过MPC则可以设计一个协议,在这个协议中,算法取代中间人的角色,Alice和Bob的薪资以及比较的逻辑均交由算法处理,参与方只需执行计算协议,而不用依赖于一个完全可信的第三方。

      安全多方计算所要确保的基本性质就是:在协议执行期间发送的消息中不能推断出各方持有的私有数据信息,关于私有数据唯一可以推断的信息是仅仅能从输出结果得到的信息。

     

    4.1.什么是算法

      算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

      如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

      算法具有以下五个重要特征:

    • 有穷性:算法的有穷性是指算法必须能在执行有限个步骤之后终止;
    • 确切性:算法的每一步骤必须有确切的定义;
    • 输入项:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
    • 输出项:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
    • 可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。

           注意:文档中提到的“算法”,特指MPC底层算法;“计算逻辑”特指为执行具体运算而编写的算法,运行在MPC底层算法之上。

    4.2.MPC问题分类

    • 由算法适用性来看,MPC既适用于特定的算法,如加法、乘法、AES,集合交集等;也适用于所有可表示成计算过程的通用算法。
    • 根据计算参与方个数不同,可分为只有两个参与方的2PC和多个参与方(≥3)的通用MPC。
    • 安全两方计算所使用的协议为Garbled Circuit(GC)+Oblivious Transfer(OT);而安全多方计算所使用的协议为同态加密+秘密分享+OT。
    • 在安全多方计算中,安全挑战模型包括半诚实敌手模型和恶意敌手模型。市场大部分场景满足半诚实敌手模型,也是JUGO技术产品所考虑的敌手模型。
    • 半诚实敌手模型:计算方存在获取其他计算方原始数据的需求,但仍按照计算协议执行。半诚实关系即参与方之间有一定的信任关系,适合机构之间的数据计算;
    • 恶意敌手模型:参与方根本就不按照计算协议执行计算过程。参与方可采用任何(恶意)方式与对方通信,且没有任何信任关系。结果可能是协议执行不成功,双方得不到任何数据;或者协议执行成功,双方仅知道计算结果。更多适用于个人之间、或者个人与机构之间的数据计算。

    5.MPC算法基本原理(2PC半诚实模型)

      下面介绍安全两方计算的半诚实模型下的MPC算法原理:

    5.1.MPC算法执行过程

    • 先对输入数据做预处理。

      遵循原则:1、尽量少的数据输入;2、尽量多的数据预处理

    ——数据量太大时会大幅降低算法执行效率。

    • 计算逻辑转化为布尔电路。

      遵循原则:尽量简单的计算逻辑

    ——由于MPC是计算密集型和通信密集型算法,若计算逻辑很复杂,会对执行效率产生很大影响。

      转化方式:手动/电路编译器Frutta

    • 将输入的布尔电路做GC和OT算法(详细在下面叙述),得到输出结果。

    5.2.GC+OT的两方计算基本框架

    GC+ OT是在两方semi-honest模型下的通用型算法,即可以支持任意计算逻辑的安全两方计算。

      总体框架如下图:

     

    6.小结

      安全多方计算是一种在不泄漏原始数据的情况下,对数据进行的计算。上述内容首先介绍了MPC的价值及来源,然后详述了两方安全计算的技术实现原理,主要包括GC和OT算法,并对一些技术基础知识做了简要概述。

    二、JUGO与MPC

    1.JUGO定位

      针对企业级用户,基于MPC的安全数据交易平台。通过在本地部署MPC节点,进行数据协同计算。

    2.JUGO特性

    • 支持semi-honest通用两方算法:GC+OT。
    • 支持Frutta编写的IDE,提供MPC算法的SDK,用户使用IDE和SDK进行开发。
    • 支持加法(addition),比较(compare)等多种算法。
    • 以浏览件插件的形式提供MPC个人体验。
    • 后续支持通用多方算法和硬件加速。

    3.JUGO架构

     

      针对计算逻辑提供者,MPC-IDE实现计算逻辑的编写,并通过集成的电路编译器转化为电路文件;作为数据执行方,矩阵元提供的MPC-SDK直接为计算逻辑提供者服务;并且矩阵元对MPC-SDK内部算法实现GPU、FPGA等硬件加速,使协同计算过程更快地完成。

    展开全文
  • 安全多方计算的公平性能够保证所有参与者都能得到正确的输出,现有的安全多方计算协议只实现了部分公平性。基于逐比特的混淆电路提出一个通用安全多方计算协议,该协议在具有少数诚实参与者的情况下能实现完全公平性。
  • 针对现有的安全基因序列编辑距离计算方案效率很低没有实用性的问题,利用基于秘密共享理论Goldreich-Micali-Wigderson(GMW)的安全多方计算协议(secure multiparty computation,SMC)设计了一个安全的分布式基因...
  • Protocols for Multi-Party Computations Overview Passive secure protocol Active secure protocol
  • 安全多方计算总结

    万次阅读 2018-03-19 10:35:03
    定义: 安全多方计算(SMC)是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他成员。主要是针对无可信第三方的情况下,如何安全地...

        定义:

        安全多方计算(SMC)是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他成员。主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题,安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。

         例1:百万富翁问题

        两个百万富翁Alice和Bob,想知道他们两个谁更富有,但他们都不想让对方知道自己财富的任何信息,这就是百万富翁问题。百万富翁问题是由姚期智提出的,两个百万富翁Alice和Bob想知道他们两个谁更富有,但他们都不想让对方知道有关自己财富的任何信息,这就是百万富翁问题。有具体实现方案。

         例2:安全电子选举问题

        电子选举方案需要满足,选票保密性、无收据性、健壮性、公平性和普遍验证性等性质。整个选举方案没有可信第三方,任何投票人都可以计票,比一般的方案具有更强的安全性。有具体解决方案。

    展开全文
  • 本书是由我国著名密码学家刘木兰先生编写,内容涵盖了多方安全计算与秘密共享体制的全部内容
  • 安全多方计算MPC

    2020-03-18 22:09:00
    最近看了很多关于安全多方计算的内容,我觉得它主要是隐私计算下的一个方案,和它具有同等地位的还有零知识证明、秘密共享、同态加密等方案。安全多方计算更多是在描述场景,数据是分布式存储在多个用户手里的,起初...

            最近看了很多关于安全多方计算的内容,我觉得它主要是隐私计算下的一个方案,和它具有同等地位的还有零知识证明、秘密共享、同态加密等方案。安全多方计算更多是在描述场景,数据是分布式存储在多个用户手里的,起初只是为了通信过程中的安全,要进行一些公钥操作。但是后来人们变得贪心了,不仅要防着外面的坏人,连一起合作的自己人也想留一手,你的数据不想告诉我,我的算法也不想告诉你,干脆大家都摸着黑合作。而有时候安全多方计算狭义上表达一种方法的时候,我更喜欢把它称为安全多方计算协议,这样比较不容易引起误会。

            对于安全多方计算的研究已经有40多年的历史了,最早应该追溯到1982年姚期智先生提出的两方安全计算协议,他以一个百万富翁问题出发,提出了一套方案。两个百万富翁想比一比谁更有钱,但是不想透露给对方自己具体有多少钱,那要怎么比呢?我理解中的方案是这样:先编写一个不对外公开的逻辑,然后按照这个逻辑对双方取数据。比如让富翁A输入自己财产的5%设为x,再让富翁B输入自己财产的7%设为y,但是除了他们没人知道取的比例是这样,然后内部进行7y和5x的比较,返回结果。这样即使x和y流露出去,别人也不知道这是以怎样的比例取的,不会透露两个富翁的具体财产。

            后来很多安全多方计算方案不断涌现,逐渐发展成了三个流派:混淆优化电路的freexor和改进的flexor,基于cut and choose的技术和改进技术,不经意传输OT协议。这些具体是怎样我没有去了解,但是基本上能涵盖主流的安全多方计算实现的技术了。实际应用中,安全多方计算往往要配合承诺、零知识证明这些方法一起用,因为安全多方计算是不具备可验证性的。这个可验证性通俗说就是,虽然逻辑已经给双方设计好了,但是我其实不知道人家有没有按照步骤去算出正确答案,毕竟我也不知道正确答案是什么。

            一些厉害的会议上给出了一些解决这个问题的方案,复杂的数计算我不知道对不对,但是我人为地取一个好算的混进去,算完检验这个好算的结果对不对就行了。比如我希望别人帮我算55667788的10次方,我自己算不出来,但是2的10次方我很容易口算出来是1024,所以我把1和55667788一起加密交给对方,如果1024算对了,那我就知道复杂的结果也是对的。有的方案在这个基础上更加严谨,混了很多个知道结果的数字进去,让对方挑对检验样本的几率变得更小。虽然安全概率上去了,可想而知的是越安全,检验样本越多,通信和计算的开销就越大。

     

    展开全文
  • 上海交通大学计算机科学与工程系 安全多方计算协议的研究与应用
  • 安全多方计算之计算平均工资

    千次阅读 2018-11-03 21:19:03
    安全多方计算就是不依靠第三方或是其他方进行之间的的某个值的计算,其中的平均工资计算就是典型的例子之一,另一个百万富翁问题之前讲过。 背景:工资是很隐私的数据,很多公司的工资也很隐蔽,主要原因是员工必须...

    安全多方计算就是不依靠第三方或是其他方进行之间的的某个值的计算,其中的平均工资计算就是典型的例子之一,另一个百万富翁问题之前讲过。


    背景:工资是很隐私的数据,很多公司的工资也很隐蔽,主要原因是员工必须签署工资保密协议,就是不准你透漏你的工资,但是员工还特别想知道自己所拿到的工资在公司处于怎样一个层次。安全多方计算就能解决这个问题,通过秘密的计算平均工资,和平均工资一比较,就知道你的层次的。


    具体过程:

    假设有五个员工,A,B,C,D,E,他们的工资分别为小写的a,b,c,d,e,他们都有自己的公钥,私钥PK,SK

    1. A先选择一个大的随机整数,然后将自己的工资与其相加,然后用B的公钥加密,发给B。
    2. B获取密文后,用自己的私钥解密后,将自己的工资与该明文数字相加,然后用C的公钥加密,发给C
    3. C ->D...
    4. D->E...
    5. E获取密文后,用自己的私钥解密后,将自己的工资与该明文数字相加,然后用A的公钥加密,发给A
    6. A拿到密文后,用自己的私钥解密后,将之前的大的随机数减去,除以5即得平均工资,发给其他人。

    具体演示(如下图点击进入全屏):

    平均工资


    据反映演示太快,考虑到动图大小限制,只将其中重要步骤放慢

    展开全文
  • 基于安全多方计算的隐私保护聚类挖掘,单家伟,刘念,针对聚类挖掘过程中的数据隐私泄露问题,本文将安全多方计算协议和K-Means聚类算法相结合,设计了一种数据水平分布下的用户隐私保��
  • 安全多方计算具有输入隐私性、计算正确性以及去中心化特征,能使数据既保持隐私又能被使用,从而释放隐私数据分享,隐私数据分析,隐私数据挖掘的巨大价值。 安全多方计算是密码学中非常活跃的研究领域,被认为是...
  • 安全多方计算MPC学习笔记

    万次阅读 多人点赞 2018-07-31 09:27:38
    参考:... MPC Secure Multi-Party Computation 安全多方计算 一种保护数据安全隐私的多方计算算法。 GC Garbled Circuit 加密电路 ...
  • 安全多方计算(Secure Multi-party Computa-tion)是分布式密码学的理论基础,也是分布式计算研究的一个基本问题,最早由姚期智于1982年通过姚氏百万富翁问题提出。简单的说,安全多方计算是指一组人,比如P1....PnP...
  • 背景 在过去几个世纪,石油被认为是最具价值的有形资产之一。而在数字时代, 数据这种新型商品正在崛起以取代石油的地位。数据有自己的独特性。石油总量是固定的, 但数据总量的增长却难以衡量。...
  • 一种基于安全多方计算的评审协议的设计,易子仪,辛阳,电子投票是网络化形式的现实投票,而电子评审是一种特殊的电子选举形式。随着现代社会的发展,人民的隐私保护越来越受到重视,电
  • 提出了一个销售量问题:不同的厂家有不同的商品,他们想知道相同商品在市场上的销售总量,但各自都不...同时提出了一个解决销售量问题的协议,并且在半诚实模型下对协议的安全性和计算复杂度及通信复杂度进行了分析。
  • 本次上传资源是有关安全多方计算之百万富翁问题的研究与实现的一个文献检索的大作业,总字数20000字左右,文章是自己原创,包括摘要、前言、研究现状、意义,检索过程等,希望能给您提供帮助。
  • #!/usr/bin/env python # coding -*- utf:8 -*- ...算法无安全性 ''' # 获取小于等于指定数的素数数组 def get_prime_arr(max): prime_array = [] for i in range(2, max): if is_prime(i): prime_array.app.
  • 由于任何安全计算函数都可转换成对应布尔电路的形式,相较其他的安全计算方法,具有较高的通用性,因此引起了业界较高的关注度。 混淆电路发展 姚氏电路是基于半诚实模型(semi-honest)的安全两方计算(Two-Party-...
  • 基础知识 机器学习隐私泄露问题的必要性来源于:(1)训练数据集中有敏感信息;(2)机器学习训练或者预测阶段存在不可信参与方; 机密性与完整性、可用性一同构成机器学习模型的评价指标:(1)机密性威胁是指攻击者获取...
  • 安全多方计算之百万富翁问题

    千次阅读 2018-10-31 20:06:14
    百万富翁问题是姚期智先生在1982年提出的第一个安全双方计算问题 ...中国唯一图灵奖获得者,安全多方计算鼻祖。 具体过程: 假设富翁A的财富值为a,富翁B的财富值为b A:公钥:,私钥:。用A的公钥加密财富值:...
  • 本文首次实现了一种“公开可验证(PVC)” 的安全两方计算方案,这种方案的性能接近半诚实方案,同时其PVC特性能够对作弊行为形成威慑力,令其具有远强于半诚实模型的安全性。 阿里妹导读:近日,阿里安全双子座...
  • 本PPT是研读2014年李顺东教授的一篇information science论文后制作的课堂汇报PPT,大致分为五部分,背景介绍、前置知识介绍、提出几何问题以及对应的解决方法,然后对其复杂度进行分析,最后分析一个例子作为结尾。
  • 关于安全多方计算协议解决百万富翁问题的本科论文,能比较1-100以内的两位百万富翁的财富值比较(单位:百万)
  • 安全多方计算是什么 为了了解安全多方计算,让我们先看两个场景例子 (1)Alice认为她的了某种遗传疾病,想验证自己的想法。正好她知道Bob有一个关于疾病的DNA模型的数据库。如果她把自己的DNA样品寄给Bob,那么...
  • 安全多方计算之隐私保护集合交集

    千次阅读 2020-02-28 22:58:11
    作为安全多方计算领域具有广泛的应用场景的一类协议,隐私保护集合交集技术在近年来得到了极大的优化,达到了在某些场景下与目前正在使用的非安全交集技术同一量级的运行复杂度。 摘要:隐私保护集合交集...
  • 阐述安全多方计算(SMC)密码原语在分布式数据挖掘隐私保护中的相关应用后,对方炜炜等人提出的基于SMC的隐私保护数据挖掘模型进行分析,论证该类模型所基于的离散对数公钥加密协议不具有全同态的特性,并用简单实例...
  • 安全多方计算(SMC)是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他成员。主要是针对无可信第三方的情况下,如何安全地计算一个...
  • 具有加法同态性的门限密码体制是构造安全多方计算协议的一个基本工具。具体来说,设(sk,pk,M,C,E,D)(sk,pk,M,C,E,D)(sk,pk,M,C,E,D)是一个公钥密码体制,其中sksksk是私钥,pkpkpk是公钥,MMM是明文空间,CCC...

空空如也

1 2 3 4 5 ... 15
收藏数 282
精华内容 112
关键字:

安全多方计算