Arithmetic Sharing(算术共享)
Sharing Senantics
Sharing Values. For an kkk-bit Arithmetic sharing xxx of x, we have x0+x1=x_0+x_1=x0+x1=x (mod2k)(mod 2^k)(mod2k) with x0,x1∈Zzkx_0,x_1\in\mathbb{Z}_{z^k}x0,x1∈Zzk.
Sharing. PiP_iPi chooses r∈RZzk,r\in_R\mathbb{Z}_{z^k},r∈RZzk, set xi=x_i=xi= x−r-r−r and send rrr to P1−iP_{1-i}P1−i who sets x1−i=rx_{1-i}=rx1−i=r.
Reconstruction. P1−iP_{1-i}P1−i sends its share $x_{1-i} to PiP_iPi who computes x=x0+x1=x_0+x_1=x0+x1.
Operations
一方掌握密文,一方掌握密钥,加密方式为基于环 ring Zzk\mathbb{Z}_{z^k}Zzk的加法操作。(所有操作均为 mod2kmod 2^kmod2k )
加法门+++
goal: 求 x+yx+yx+y
- P0P_0P0掌握密文,P1P_1P1掌握密钥;xxx为P0P_0P0的明文,yyy为P1P_1P1的明文。
- x=x0+x1(mod2k)x=x_0+x_1(mod 2^k)x=x0+x1(mod2k), P0P_0P0将x1x_1x1发送给P1P_1P1,本地保留x0x_0x0;
y=y0+y1(mod2k)y=y_0+y_1(mod 2^k)y=y0+y1(mod2k), P1P_1P1将y0y_0y0发送给P0P_0P0,本地保留y1y_1y1.
P0P_0P0 | x0x_0x0 | y0y_0y0 |
---|---|---|
P1P_1P1 | x1x_1x1 | y1y_1y1 |
compute:
z=x+y=(x0+x1)+(y0+y1)mod2kz=x+y=(x_0+x_1)+(y_0+y_1) mod 2^kz=x+y=(x0+x1)+(y0+y1)mod2k=(x0+y0mod2k)+(x1+y1mod2k)=(x_0+y_0 mod2^k)+(x_1+y_1mod2^k)=(x0+y0mod2k)+(x1+y1mod2k)
注:本地计算,无需交互,非常高效。
乘法门⋅\cdot⋅
goal: 求z=x⋅y=(xy)0+(xy)1z=x\cdot y=(xy)_0+(xy)_1z=x⋅y=(xy)0+(xy)1
- xxx以掩码形式输出不泄露隐私 e=x+ae=x+ae=x+a ; 其中x=x0+x1,a=a0+a1x=x_0+x_1 ,a=a_0+a_1x=x0+x1,a=a0+a1 ; a0,a1a_0,a_1a0,a1分别由P0,P1P_0,P_1P0,P1掌握$。
- yyy以掩码形式输出不泄露隐私 f=y+bf=y+bf=y+b ; 其中y=y0+y1,b=b0+b1y=y_0+y_1 ,b=b_0+b_1y=y0+y1,b=b0+b1 ; b0,b1b_0,b_1b0,b1分别由P0,P1P_0,P_1P0,P1掌握。
- P0P_0P0公开x0+a0,y0+b0x_0+a_0,y_0+b_0x0+a0,y0+b0 ; P1P_1P1公开x1+a1,y1+b1x_1+a_1,y_1+b_1x1+a1,y1+b1 ; 所以双方均可计算 e,fe,fe,f.
∴x⋅y=(e−a)(f−b)=ef−fa−eb+ab\therefore x\cdot y=(e-a)(f-b)=ef-fa-eb+ab∴x⋅y=(e−a)(f−b)=ef−fa−eb+ab mod2kmod2^kmod2k
question1: 如何将 xyxyxy 安全的拆分为(xy)0和(xy)1?(xy)_0和(xy)_1?(xy)0和(xy)1?
- 拆分:
xy=ef−fa−eb+abx y=ef-fa-eb+abxy=ef−fa−eb+ab mod2kmod2^kmod2k
(xy)0=−fa0−eb0+(xy)_0=-fa_0-eb_0+(xy)0=−fa0−eb0+ (ab)0(ab)_0(ab)0 mod2kmod2^kmod2k
(xy)1=ef−fa1−eb1+(xy)_1=ef-fa_1-eb_1+(xy)1=ef−fa1−eb1+(ab)1(ab)_1(ab)1 mod2kmod2^kmod2k
question2: 如何将 ababab 安全的拆分为(ab)0和(ab)1?(ab)_0和(ab)_1?(ab)0和(ab)1?
令c=abc=abc=ab,将ccc拆分为c0c_0c0 c1c_1c1,使得 c=c0+c1c=c_0+c_1c=c0+c1
- P0P_0P0选择随机数c0c_0c0
- c1=(a0+a1)(b0+b1)−c0=a0b0+a0b1+a1b0+a1b1−c0c_1=(a_0+a_1)(b_0+b_1)-c_0=a_0b_0+a_0b_1+a_1b_0+a_1b_1-c_0c1=(a0+a1)(b0+b1)−c0=a0b0+a0b1+a1b0+a1b1−c0
P0P_0P0 | x0x_0x0 | y0y_0y0 | a0a_0a0 | b0b_0b0 | c0c_0c0 |
---|---|---|---|---|---|
P1P_1P1 | x1x_1x1 | y1y_1y1 | a1a_1a1 | b1b_1b1 | c1?c_1?c1? |
question3: 如何使得P1P_1P1隐私获得c1?c_1?c1?
借助支持加法的同态加密实现
- 给定密文 E(m)E(m)E(m) 和 E(n)E(n)E(n) , 则 E(m)E(n)=E(m+n)E(m)E(n)=E(m+n)E(m)E(n)=E(m+n)
- 给定密文 E(m)E(m)E(m) 和 nnn , 则 (E(m))n=E(mn)(E(m))^n=E(mn)(E(m))n=E(mn)
乘法三元组
- P1P_1P1计算发送给P0P_0P0: E(b1),E(a1)E(b_1),E(a_1)E(b1),E(a1)
- P0P_0P0计算发送给P1P_1P1:E(b1)a0E(a1)b0E(a0b0−c0)=E(a0b0+a0b1+a1b0−c0)E(b_1)^{a_0}E(a_1)^{b_0}E(a_0b_0-c_0)=E(a_0b_0+a_0b_1+a_1b_0-c_0)E(b1)a0E(a1)b0E(a0b0−c0)=E(a0b0+a0b1+a1b0−c0)
- P1P_1P1解密并计算:a0b0+a0b1+a1b0−c0+a1b1a_0b_0+a_0b_1+a_1b_0-c_0+a_1b_1a0b0+a0b1+a1b0−c0+a1b1 mod2kmod 2^kmod2k
P1P_1P1获得c1c_1c1.
注:乘法三原则的计算只与随机数有关,所以可预先离线计算,提高计算效率。
∴x⋅y=(e−a)(f−b)=ef−fa−eb+ab\therefore x\cdot y=(e-a)(f-b)=ef-fa-eb+ab∴x⋅y=(e−a)(f−b)=ef−fa−eb+ab mod2kmod2^kmod2k
=(xy)0+(xy)1=(−fa0−eb0+=(xy)_0+(xy)_1=(-fa_0-eb_0+=(xy)0+(xy)1=(−fa0−eb0+ (ab)0mod2k)+(ef−fa1−eb1+(ab)_0mod2^k)+(ef-fa_1-eb_1+(ab)0mod2k)+(ef−fa1−eb1+(ab)1(ab)_1(ab)1 mod2kmod2^kmod2k) (question1)
=(−fa0−eb0+=(-fa_0-eb_0+=(−fa0−eb0+ c0mod2k)+(ef−fa1−eb1+c_0mod2^k)+(ef-fa_1-eb_1+c0mod2k)+(ef−fa1−eb1+c1c_1c1 mod2kmod2^kmod2k) (question2)
=(−fa0−eb0+=(-fa_0-eb_0+=(−fa0−eb0+ c0mod2k)+(ef−fa1−eb1+c_0mod2^k)+(ef-fa_1-eb_1+c0mod2k)+(ef−fa1−eb1+a0b0+a0b1+a1b0−c0+a1b1a_0b_0+a_0b_1+a_1b_0-c_0+a_1b_1a0b0+a0b1+a1b0−c0+a1b1 mod2kmod2^kmod2k) (question3)
Arithmetic Sharing(算术共享)相关推荐
- 秘密共享之算术共享、布尔共享
PS:一直以来都没有写东西的习惯,每次看完的东西想起来时总是手忙脚乱找不到依据,甚至很多看过很多遍的东西也一直遗忘.趁着2020年年末之际,尝试将一些有用的.会用的等知识进行整理,培养一下自觉性(被女 ...
- Modular Arithmetic 模算术
Modular Arithmetic 模算术 我们都见过时钟,在时钟上有12个刻度.假设某天晚上时针指向6的位置,那么它表示的是晚上六点钟,可是到了第二天早上,当时针再次指向6时,它表示的又是早上六点 ...
- Arithmetic Slices 算术序列
Arithmetic Slices 算术序列 如果一个序列包含三个以上元素,而且连续两个元素之间的差值相等,这样的序列叫做算术序列 例如,这是一些算术序列 1, 3, 5, 7, 9 7, 7, 7, ...
- 【密码学】【多方安全计算】Secret Sharing秘密共享浅析
Secret Sharing秘密共享浅析 什么是秘密共享 加解密过程 验证加解密 参考文献 秘密共享(Secret Sharing)是实现多方安全计算的一种常用方式,MPC当然也可以用混淆电路(Gar ...
- Arithmetic Code 算术编码
Principle: 算术编码的原理是非常直白的.在算术编码中我们考虑对[消息序列整体]进行编码,以这里的消息序列[210]为例,其落在概率区间[0.68,0.712]中.然后我们需要用二进制编码去表 ...
- verifiable secret sharing可验证的秘密共享
1. secret sharing秘密共享 1.1 secret sharing definition 在Adi Shamir 1979年论文<How to share a secret> ...
- BGW协议(算数共享)
概述 BGW协议可以用于对域上包含加法.乘法.常数乘法门的算术电路求值,此协议可依赖Shamir秘密分享方案,利用其同态特性对各个秘密份额进行适当的处理,就可以在秘密值上进行安全计算. 加法门 算数加 ...
- sql算术运算符_SQL运算符教程–按位,比较,算术和逻辑运算符查询示例
sql算术运算符 At its core, the internet and all its applications are just data. 互联网及其所有应用程序的核心只是数据. Every ...
- 11gR2游标共享新特性带来的一些问题以及_cursor_features_enabled、_cursor_obsolete_threshold和106001 event...
版本11gR2中引入cursor sharing游标共享和mutex互斥锁增强的一些特性,而这些特性也带来了一些问题(主要体现在版本11.2.0.1和11.2.0.2上,11.2.0.3上基本已经修复 ...
最新文章
- grpc通信原理_容器原理架构详解(全)
- Generator函数的语法以及异步的应用
- (Q 2)netstat命令 检测TCP/IP 网络链接是否存在异常
- 在C代码调用C++代码
- 单元测试之Mockito与PowerMock
- inputstream 初始化_如何完美回答面试官问的Mybatis初始化原理!
- android 查找所有dialog_android 布局文件layout分组的简单使用
- 互联网Internet体系结构以及网关协议OSPF
- IDC:无线数字化转型持续进行 第二季度全球企业WLAN市场强劲增长
- shell 选择对话框
- (三)MFC学习之动画
- iOS 10.2 越狱更新到yalu102 beta7,很稳定,很多注意事项及修复ssh和scp连接教程
- Gherkin简单使用
- 史上最硬核全套Java视频教程(学习路线+视频+配套资料)
- 【CDN】- 什么是CDN
- 陶瓷天线的选型(二)
- mysql如何进行算术运算_MySQL教程53-MySQL算术运算符
- Python数据可视化plt.savefig 将图片存入固定路径
- 开启沉浸式体验 艺画开天《灵笼》积极探索文化与国漫发展
- 石油测井仪器专题(六)MCM工艺在LWD的应用