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∈R​Zzk​, 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​+y0​mod2k)+(x1​+y1​mod2k)

注:本地计算,无需交互,非常高效。

乘法门⋅\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​=a0​b0​+a0​b1​+a1​b0​+a1​b1​−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)

乘法三元组

  1. P1P_1P1​计算发送给P0P_0P0​: E(b1),E(a1)E(b_1),E(a_1)E(b1​),E(a1​)
  2. 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​)a0​E(a1​)b0​E(a0​b0​−c0​)=E(a0​b0​+a0​b1​+a1​b0​−c0​)
  3. P1P_1P1​解密并计算:a0b0+a0b1+a1b0−c0+a1b1a_0b_0+a_0b_1+a_1b_0-c_0+a_1b_1a0​b0​+a0​b1​+a1​b0​−c0​+a1​b1​ 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)0​mod2k)+(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+c0​mod2k)+(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+c0​mod2k)+(ef−fa1​−eb1​+a0b0+a0b1+a1b0−c0+a1b1a_0b_0+a_0b_1+a_1b_0-c_0+a_1b_1a0​b0​+a0​b1​+a1​b0​−c0​+a1​b1​ mod2kmod2^kmod2k)     (question3)

Arithmetic Sharing(算术共享)相关推荐

  1. 秘密共享之算术共享、布尔共享

    PS:一直以来都没有写东西的习惯,每次看完的东西想起来时总是手忙脚乱找不到依据,甚至很多看过很多遍的东西也一直遗忘.趁着2020年年末之际,尝试将一些有用的.会用的等知识进行整理,培养一下自觉性(被女 ...

  2. Modular Arithmetic 模算术

    Modular Arithmetic 模算术 我们都见过时钟,在时钟上有12个刻度.假设某天晚上时针指向6的位置,那么它表示的是晚上六点钟,可是到了第二天早上,当时针再次指向6时,它表示的又是早上六点 ...

  3. Arithmetic Slices 算术序列

    Arithmetic Slices 算术序列 如果一个序列包含三个以上元素,而且连续两个元素之间的差值相等,这样的序列叫做算术序列 例如,这是一些算术序列 1, 3, 5, 7, 9 7, 7, 7, ...

  4. 【密码学】【多方安全计算】Secret Sharing秘密共享浅析

    Secret Sharing秘密共享浅析 什么是秘密共享 加解密过程 验证加解密 参考文献 秘密共享(Secret Sharing)是实现多方安全计算的一种常用方式,MPC当然也可以用混淆电路(Gar ...

  5. Arithmetic Code 算术编码

    Principle: 算术编码的原理是非常直白的.在算术编码中我们考虑对[消息序列整体]进行编码,以这里的消息序列[210]为例,其落在概率区间[0.68,0.712]中.然后我们需要用二进制编码去表 ...

  6. verifiable secret sharing可验证的秘密共享

    1. secret sharing秘密共享 1.1 secret sharing definition 在Adi Shamir 1979年论文<How to share a secret> ...

  7. BGW协议(算数共享)

    概述 BGW协议可以用于对域上包含加法.乘法.常数乘法门的算术电路求值,此协议可依赖Shamir秘密分享方案,利用其同态特性对各个秘密份额进行适当的处理,就可以在秘密值上进行安全计算. 加法门 算数加 ...

  8. sql算术运算符_SQL运算符教程–按位,比较,算术和逻辑运算符查询示例

    sql算术运算符 At its core, the internet and all its applications are just data. 互联网及其所有应用程序的核心只是数据. Every ...

  9. 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上基本已经修复 ...

最新文章

  1. grpc通信原理_容器原理架构详解(全)
  2. Generator函数的语法以及异步的应用
  3. (Q 2)netstat命令 检测TCP/IP 网络链接是否存在异常
  4. 在C代码调用C++代码
  5. 单元测试之Mockito与PowerMock
  6. inputstream 初始化_如何完美回答面试官问的Mybatis初始化原理!
  7. android 查找所有dialog_android 布局文件layout分组的简单使用
  8. 互联网Internet体系结构以及网关协议OSPF
  9. IDC:无线数字化转型持续进行 第二季度全球企业WLAN市场强劲增长
  10. shell 选择对话框
  11. (三)MFC学习之动画
  12. iOS 10.2 越狱更新到yalu102 beta7,很稳定,很多注意事项及修复ssh和scp连接教程
  13. Gherkin简单使用
  14. 史上最硬核全套Java视频教程(学习路线+视频+配套资料)
  15. 【CDN】- 什么是CDN
  16. 陶瓷天线的选型(二)
  17. mysql如何进行算术运算_MySQL教程53-MySQL算术运算符
  18. Python数据可视化plt.savefig 将图片存入固定路径
  19. 开启沉浸式体验 艺画开天《灵笼》积极探索文化与国漫发展
  20. 石油测井仪器专题(六)MCM工艺在LWD的应用

热门文章

  1. 人大李崇轩:我的生成模型修炼之路丨智源大会嘉宾风采
  2. Canvas doesn't allow drawing
  3. Redis-高并发缓存问题及解决方案
  4. vivox6s Android7.1,vivo计划为7款机型升安卓7.1 今日公测
  5. 转自程先的专栏:如果是初学C语言请看完 一些成功人士的心得
  6. 小练习1(银行储蓄问题)
  7. Qt - QSettings实现用户偏好保存
  8. python 向量交叉乘积与模计算
  9. Python 位运算的操作
  10. js实现的猜拳小游戏