Secure Multi‐Party Computation

  • 什么是Secure Multiparty Computation
  • 安全定义
  • Ideal/real model
  • Oblivious transfer (OT)
    • 1‐out‐of‐2 string OT
    • 用ElGamal encryption实现OT
  • Garbled circuits [Yao86]
  • GMW Protocol (GMW87)
  • Reference

本文中的所有内容是基于自己所学和理解整理而成的,解释部分可能会因为个人的理解产生错误和不严谨的问题。仅供初学者参考,欢迎交流指正。

什么是Secure Multiparty Computation

A set of parties with private inputs wish to compute some joint function of their inputs.
各方希望保留一些安全属性。例如,隐私和正确性。
例子:安全选举协议,隐私保护ML

如果存在可信的第三方,MPC很容易实现,每方只需要将它们的信息告诉这个信任的第三方,由第三方进行统一整合处理。这样各方用户之间就不会暴漏彼此的相关信息。

我们希望用一个协议来取代信任的第三方(TTP),同时实现相同的安全性和正确性目标。

安全定义

Privacy and correctness.

Privacy: parties 之间互相不知道输入。
Correctness:输出对应的输入一定是正确的。

Ideal/real model

在这里我们通过理想的/真实的模型来定义安全。
模型的范例

理想模型:
各方将输入发送给受信任的一方,后者计算函数并发送输出。
真实模型:
各方在没有TTP帮助的情况下运行一个真正的协议
如果对真实协议的任何攻击都可以在理想模型中执行(或模拟),那么协议就是安全的。
由于在理想的模型中基本上不可能进行任何攻击,因此隐含了安全性。

结合图来说一下。
上图左边是 real world 右边是 ideal world 右上那个人是 trust third-party. 总得来说就是,如果左边 real world 的中红色的 attacker 有什么能力的话,右边 ideal world 会有一个红色的模仿者,它与左边的 attacker 有着相同的能力,如果左边人能够获得任何跟 x 有关的信息的话,右边的模仿者应该也能获得跟 x有关的信息,但是对于理想世界模型来说,这个模仿者不应该能获得跟 x 有关
的信息,所以 real world 和 ideal world 有区别,不是 indistinguishable 的,所以左侧的 protocol 不安全。

用定义来说就是:
A protocol is secure if for every (efficient) real‐world adversary, there is an ideal world adversary such that for all x, y the joint distributions of the above are computationally indistinguishable.
为了证明安全性,我们必须取一个任意的(有效的)真实世界的攻击者A,然后构造一个理想世界的攻击者B,对所有x, y的分布是不可区分的。
B被称为a的模拟者
B(在理想世界中)将模拟A在现实世界中的view。
View = randomness + messages.

Oblivious transfer (OT)

Introduced by Rabin in 1982.
是密码协议的主力。
OT有许多基于它的变种,在这里我们举一个1‐out‐of‐2 string OT

1‐out‐of‐2 string OT


为方便理解,我们把中间蓝色当作 trust third-party,左边的 sender 将 M0 和 M1 给这个中间商,他只想让 receiver 获得其中的一个的同时,对另一个 M 一无所知。右边 Receiver 有一个 b,这个 b 是 0 或者是 1,他将这个 b 给中间商,中间商根据 b 的取值给 b 相应的 m,如果 b=0,那么 Receiver 将会获得 M0 ,b 在获得M 0 的同时,中间商将会销毁 M 1 ,所以 Receiver 将会对 M1 的内容一无所知。同时 sender 也不会知道 Receiver 到底是获得的 M1 还是 M0。

用ElGamal encryption实现OT

如何实现 OT 呢?举个简单的例子ElGamal encryption。

ElGamal encryption is IND‐CPA under DDH assumption.

//这个模型只在半诚实(Semi‐honest)的 receiver 前提下生效。

什么是Semi‐honest?简单理解就是说右边的 receiver 想作弊,但是他仍然按照这个模型的算法步骤走。Malicious receiver的话就是完全不按照模型的算法走,这种情况我们就不在模型中考虑了。

左边是 sender,右边是 receiver,我们假设 receiver 的 b=0右边的先选一个 secret key r0 ,计算 public key h0。

H1 是在 G 中任意选择的一个数,之后把 h0 和 h1 发给 sender。
Sender 用拿到的 h0 和 h1 进行加密,得到 c0 和 c1 ,但是他不知道 h0 和 h1 哪个是hb。发送 h0 和 h1 给 receiver,receiver 用他的 secret key r0 来对 c0 和 c1 解密,其中 c0 可以解密成 m0 ,得到了他想要的。c1 无法解密,所以丢掉。

为什么这个模型只在半诚实的 receiver 前提下生效?
因为 Malicious receiver 可以让 h0 和 h1 都通过 r0 和 r1 计算得出,不是随机得出的,所以他两个c都可以解开,这样这个模型都无效了。

Garbled circuits [Yao86]

主要思想:把任何的计算和方程都转换为Boolean circuit.

在这里我要举一个简单的2 parties的Garbled circuits例子来介绍。
Garbled gate 是AND gate

a,b,c都是random string,只有A知道他们具体map的是什么(比如a0代表着0,a1代表着1,在B眼中他们都是一串random string)

左下角是choese table,这个choese table的内容是基于gate的算法的,在我们这个例子中是AND gate所以我们根据choese table生成了And gate表,And gate中a0,b0等组合可以当做secret key去加密ouput c0。加密后A将And gate表的上下顺序打乱后发送给B,B只能在表中看到4个random string。

首先如果A的input是0,那么A就将能map0的a0发送给B,B的input是1,那么B通过上面提到的某种OT算法来得到b1. 那么B此时就拥有了a0和b1,但是B不知道a0代表的是0,因为在B眼中他是一串random string。B将手里的a0和b1当做Key来解密And gate表中的4个random string,B需要一个一个的尝试,直到尝试出可以用手中的key成功解密的c0。

最后B得到c0后把c0给A看。A告诉B你得的C是c0,因为在B眼中c0是一串random string。
在这整个过程中A.B都实现了零知识。A不知道B的input是0还是1,B也不知道A的input是0还是1。

这个例子作为讲解看起来很简单,但是在实际中要很复杂,因为他会涉及很多方的parties和很多不同的gate,这个例子只是两个parties和一个and gate而已。

GMW Protocol (GMW87)

基于 secret‐sharing.
For each wire w with value b (when evaluated on parties’ inputs), parties will hold a random secret sharing of b.

还是举个2 parties AND gate的简单例子来介绍。
P1和P2分别持有a和b的一半。
P1有a1,b1.
P2有a2,b2.
P1和P2都不知道c是多少,那么P1如何在零知识的情况下让P2计算出正确的C2呢?
首先P1随机选一个C1.(0/1)
P1不知道P2的a2,b2是0还是1,所以他可以把四种情况都列出来。
00,01,10,11
如下图,x代表的就是a2的取值,y代表的是b2的取值。
And gate 本质上可以用乘法代替(1 and 0 是0,1 and 1是1).
所以可以写出图中的代表C的公式。
之后把C的公式XOR C1,我们就得到了Cxy的公式。
那么如何实现零知识呢?
我们使用了1‐out‐of‐4 string OT
OT会根据P2所掌握的a2和b2的值来返回给P2正确的Cxy。
如果a2=0,b2=1,那么经过OT,P2将获得C01,这个C01就是P2想要得到的正确的C2.

Reference

  1. Wenbo Mao, Modern Cryptography, Prentice-Hall, 2003.
  2. Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, 2nd Edition, CRC Press, 2015.
  3. W Stallings, Cryptography and Network Security, Fourth (or later) Edition, Prentice Hall, 2006.
  4. J. Pieprzyk, T, Hardjono and J. Seberry, Cryptography: an introduction to computer security,
    Springer Verlag, 2003.
  5. Guo, F., Susilo, W., Mu, Y. Introduction to Security Reduction, Springer, 2018.

现代密码学之安全多方计算相关推荐

  1. 探索密码学的未来:SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算

    密码算法在现代通信与信息安全中发挥着至关重要的作用,SM1.SM2.SM3.SM4.同态加密.密态计算.隐私计算和安全多方计算等密码算法被广泛应用于各种信息安全领域.本篇博客将会为大家介绍这些密码算法 ...

  2. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第52篇]选择一个先进的应用概念,如电子投票、拍卖或多方计算。这种系统的大致安全要求是什么?

    这是我们认为每个密码学博士一年级都应该知道的52件事中的最后一件.你可能已经收集了过去的52个博客,我们希望学生知道从理论到实践的各个方面.但关键是你需要在密码学中考虑的不仅是对遵守规则的玩家的安全, ...

  3. 区块链BaaS云服务(14)华大BGI区块链“安全多方计算“

    数据流通安全一直是大数据时代难以解决的难题:在保护本地数据隐私安全的情况下,促进不同地区.不同机构间的数据共享与协同计算. 1. 定义 1.1 安全多方计算(SMC) 由图灵奖得主姚期智院士在 198 ...

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

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

  5. mpc 安全多方计算协议_HashKey:说透安全多方计算 MPC 技术方案、挑战与未来

    链闻 ChainNews 安全多方计算对网络信息安全与数据市场的发展具有重要价值. 撰文:钱柏均,就职于 HashKey Capital Research审校:邹传伟,万向区块链.PlatON首席经济 ...

  6. 安全多方计算与证券业数据生态

    区块链技术的出现,使得各方事务在去中心化的方式下协调执行,数据在不可篡改.公开验证的方式下共享,这种特性天然适合用以解决证券行业信息共享的问题.但是,在传统区块链系统中,事务涉及数据会为全体成员所公开 ...

  7. 什么是多方计算multi-party computation (MPC)

    文章目录 什么是多方计算multi-party computation (MPC) MPC和TEE比较 外包计算 安全模型 MPC问题分类 其他参考 什么是多方计算multi-party comput ...

  8. 安全多方计算 # 个人笔记

    一个优美令人如痴如醉的领域. Data is the oil of the 21st century 欢迎读者拍砖和提供本文修改建议.本文长期维护. 第二次编辑于2021/10/20,新增了部分阅读材 ...

  9. 安全多方计算-入门学习笔记(三)

    四.基于非噪音的安全多方计算介绍 1概念 非噪音方法一般是通过密码学方法将数据编码或加密,得到一些奇怪的数字,而且这些奇怪的数字有一些神奇的性质,比如看上去很随机但其实保留了原始数据的线性关系,或者顺 ...

  10. 基于同态加密体制的安全多方计算

    本文首发公众号VenusBlockChain,关注公众号后可免费阅读!VenusBlockChain致力于区块链技术研究,传播区块链技术和解决方案.区块链应用落地.区块链行业动态等.有兴趣的小伙伴们, ...

最新文章

  1. R语言write.xlsx函数将数据写入Excel文件:写入Excel文件并自定义表单的名称、将数据写入Excel文件新的表单(sheet)中、将文件保存为xls文件格式(而不是xlsx)
  2. 我在51cto微职位学软考——宝妈一次性通过高项的学习经历
  3. (二)Javascript面向对象编程:构造函数的继承
  4. CentOS升级gcc到4.8.2以支持C++11标准的方法
  5. Pandas练习题-提高你的数据分析技能
  6. “手机”是个什么机器?
  7. Rails IDE 有很多选择,但是具体到ubuntu 64bit 选择的余地就不多了,这里选择Aptana Studio 3 Beta...
  8. 49. 字母异位词分组
  9. ecs硬盘数据迁移_阿里云ECS新增数据盘以及迁移数据方法
  10. android activity焦点,android启动activity文本框不获得焦点
  11. 深入理解line-height
  12. tensorflow 的版本差异与变化
  13. 非常有价值的电商系统,包括前台商城和后台管理系统!直接拿来用
  14. python迭代遍历目录下所以文件(Iterating through directories with Python)
  15. 局域网共享工具_win10一键局域网共享工具使用教程
  16. 计算机网络学习笔记3-ARP+广播风暴
  17. oracle 基本命令及常用的查询语句
  18. vscode翻译插件最佳搭配、翻译变量、划词翻译、中译英(提高生产效率)
  19. ROS从入门到精通系列(十三)-- PR2移动双臂机器人基础
  20. Windos下安装nexus私服(nexus-2.12.0-01)

热门文章

  1. 环境工程学(整理知识点)
  2. mac版android sdk安装手机模拟器
  3. Zotero——下载知网PDF文件
  4. 第2.2节 串行SPI接口控制PE4312数控衰减器
  5. 第二章 SQL命令参考-BEGIN
  6. 图像处理基础:特征金字塔
  7. oracle制造分销模块,oracle ebs表结构及功能总结(财务,制造,分销模块)
  8. [TSP-FCOS]Rethinking Transformer-based Set Prediction for Object Detection
  9. 此页上的ActiveX控件和本页上的其他部分的交互可能不安全的解决办法
  10. Excel查找快捷键:Ctrl+F