唔,头要裂开了,感觉要长脑子了😣
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 |
- build-essential 包即为arch里的base-devel
- libboost-dev 等包,arch的命名与Debian系命名不同
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包那个法顺畅无比
概况
- 密码学学术讲座 | Mike Rosulek教授开讲安全多方计算
英文讲座,无字幕,实在看不下去
- awesome mpc
github清单,给出了一些资料,其中有一本A Pragmatic Introduction to Secure Multi-Party Computation中文版叫实用安全多方计算导论
- 安全多方计算学习路线
知乎一个叫六三的up,看着写了很多回答都是推荐自己的专栏。在他专栏底下有评论说实用安全多方计算导论写的并不是很好。他在专栏里也是建议先读Applications of Secure Multiparty Computation。
- Multi-Party-Learning-Related-Papers
也是github仓库
- Secure Multiparty Computation (MPC)2020**-**Yehuda Lindell
六三的专栏里给出的一篇综述论文
Lecture 1 安全多方计算(MPC)的基本概念及基础组件 —— 冯登国院士
厦大国家天元数学东南中心的暑期短课程https://tianyuan.xmu.edu.cn/cn/course/34.html 它课程概述里有这么段话:
安全多方计算主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。也就是多个持有各自私有数据的参与方,在不泄露各自真实数据的情况下,共同执行一个计算逻辑,从而获得计算结果。它主要用到的技术是秘密共享、不经意传输、混淆电路、同态加密、零知识证明等关键技术。
还得是人厦大,童哥去厦大能不能把我装箱子里带着。
亿万富翁问题,两个富翁在没有第三方的情况下比较谁更富有
安全多方计算能打破数据孤岛,实现数据流通,保护数据隐私。
安全多方计算分类
敌手行为
- 半诚实敌手(按照协议描述执行,但试图从协议记录中获取信息)
- 恶意敌手(可以执行任何攻击,发送任意消息)
腐化门限t
n表示参与方的总数,t表示不诚实参与方数量的上界。
- t < n/2 ,诚实大多数
- 不诚实大多数 , n/2 <= t < n
输出可达性
- 中止安全:腐化实体(被敌手控制)获得输出后,可以阻止诚实实体获得输出
- 公平性:要么腐化实体和诚实实体均获得输出,要么他们均没有输出
- 保证输出传送:所有诚实实体总是获得输出
一般而言,不诚实大多数$\rightarrow$仅能达到中止安全;
诚实大多数$\rightarrow$能达到公平性和保证输出传送
计算模型
敌手计算能力
在不诚实大多数情况下,MPC协议设计不出来(?)
腐化策略
考虑自适应腐化,就没法达到实际,高效了.
网络模型
MPC基础组件
线性秘密分享
share算法将x分成n份;打开算法,每个参与方都运行重构算法,从而使每个参与方获得x
听不大明白,云里雾里
MOOC 第2讲 :「隐私计算基础理论」多方安全计算技术基础
这里与上个视频所讲的一大不同就是:
敌手计算能力要求概率多项式时间,两种情况下都可以;要求无限计算能力时,仅能在诚实大多数情况下.
混淆电路方法
四种算法Garble,Encode,Eval,Decode
κ音卡帕
不经意传输
ROT,Random 随机选的
还是很懵懵的