0%

安全多方计算

唔,头要裂开了,感觉要长脑子了😣

Multi-Protocol SPDZ

文档
安装

“TL;DR” $\leftrightarrow$”too long;didn’t read”

1
sudo apt-get install automake build-essential clang cmake git libboost-dev libboost-thread-dev libgmp-dev libntl-dev libsodium-dev libssl-dev libtool python3
libboost-dev libboost-thread-dev libgmp-dev libntl-dev libsodium-dev libssl-dev libtool
arch源中有boost,boost-libs 同左侧,archlinux中boost包搞得很大,似乎是把什么都塞进去了 同理,gmp ntl Network communication,cryptography and signaturing library, 简写为Nacl,发音salt,lmao 。在arch源中是libsodium,同时还有个php-sodium 同理,包含在arch openssl库中 GNU的工具,在arch源中也是libtool

顺嘴一提啊,markdown这个表格搞得很是梦靥,虽然最后渲染出来还行

sudo pacman -S automake base-devel clang cmake git boost boost-libs gmp ntl libsodium openssl libtool python3

git clone https://github.com/data61/MP-SPDZ.git
make setup

make -j8 mascot-party.x #?

echo 1 2 3 4 > Player-Data/Input-P0-0

echo 1 2 3 4 > Player-Data/Input-P1-0

Scripts/compile-run.py -E mascot tutorial

纯纯给自己找事,解压tar.xz包那个法顺畅无比

概况
Lecture 1 安全多方计算(MPC)的基本概念及基础组件 —— 冯登国院士

厦大国家天元数学东南中心的暑期短课程https://tianyuan.xmu.edu.cn/cn/course/34.html 它课程概述里有这么段话:

安全多方计算主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。也就是多个持有各自私有数据的参与方,在不泄露各自真实数据的情况下,共同执行一个计算逻辑,从而获得计算结果。它主要用到的技术是秘密共享、不经意传输、混淆电路、同态加密、零知识证明等关键技术。

还得是人厦大,童哥去厦大能不能把我装箱子里带着。

亿万富翁问题,两个富翁在没有第三方的情况下比较谁更富有

安全多方计算能打破数据孤岛,实现数据流通,保护数据隐私。

安全多方计算分类

敌手行为

  • 半诚实敌手(按照协议描述执行,但试图从协议记录中获取信息)
  • 恶意敌手(可以执行任何攻击,发送任意消息)

腐化门限t

n表示参与方的总数,t表示不诚实参与方数量的上界。

  1. t < n/2 ,诚实大多数
  2. 不诚实大多数 , n/2 <= t < n

输出可达性

  1. 中止安全:腐化实体(被敌手控制)获得输出后,可以阻止诚实实体获得输出
  2. 公平性:要么腐化实体和诚实实体均获得输出,要么他们均没有输出
  3. 保证输出传送:所有诚实实体总是获得输出

一般而言,不诚实大多数$\rightarrow$仅能达到中止安全;

诚实大多数$\rightarrow$能达到公平性和保证输出传送

计算模型

敌手计算能力


在不诚实大多数情况下,MPC协议设计不出来(?)

腐化策略


考虑自适应腐化,就没法达到实际,高效了.

网络模型

MPC基础组件

线性秘密分享


share算法将x分成n份;打开算法,每个参与方都运行重构算法,从而使每个参与方获得x


听不大明白,云里雾里

MOOC 第2讲 :「隐私计算基础理论」多方安全计算技术基础


这里与上个视频所讲的一大不同就是:
敌手计算能力要求概率多项式时间,两种情况下都可以;

要求无限计算能力时,仅能在诚实大多数情况下.



混淆电路方法

四种算法Garble,Encode,Eval,Decode

κ音卡帕

不经意传输

ROT,Random 随机选的

还是很懵懵的