【隐私计算】安全三方计算(3PC)的加法和乘法计算协议

ABY3中采用replicated secret sharing(复制秘密分享)机制,即2-out-of-3秘密分享,三个参与方的每一方都拥有share中的两份。下面来看一下这样做有什么好处。

2-out-of-3秘密分享

x , y x, y x,y两个操作数,先进行秘密分享:

  • P 1 P_1 P1拥有 ( x 1 , x 2 ) , ( y 1 , y 2 ) (x_1, x_2), (y_1, y_2) (x1,x2),(y1,y2)
  • P 2 P_2 P2拥有 ( x 2 , x 3 ) , ( y 2 , y 3 ) (x_2, x_3), (y_2, y_3) (x2,x3),(y2,y3)
  • P 3 P_3 P3拥有 ( x 3 , x 1 ) , ( y 3 , y 1 ) (x_3, x_1), (y_3, y_1) (x3,x1),(y3,y1)

常见的计算

1 加法

⟨ x + y ⟩ = ( x 1 + y 1 , x 2 + y 2 , x 3 + y 3 ) \langle x+y\rangle=(x_1+y_1, x_2+y_2, x_3+y_3) x+y=(x1+y1,x2+y2,x3+y3)

2 加常数

⟨ x ⟩ + c = ( x 1 + c , x 2 , x 3 ) \langle x\rangle+c=(x_1+c, x_2, x_3) x+c=(x1+c,x2,x3),注意只需要加一次 c c c

3 数乘

⟨ c x ⟩ = ( c x 1 , c x 2 , c x 3 ) \langle cx\rangle=(cx_1, cx_2, cx_3) cx=(cx1,cx2,cx3)

4 乘法

⟨ x y ⟩ = ( x 1 + x 2 + x 3 ) ( y 1 + y 2 + y 3 ) = ( x 1 y 1 + x 1 y 2 + x 1 y 3 ) + ( x 2 y 1 + x 2 y 2 + x 2 y 3 ) + ( x 3 y 1 + x 3 y 2 + x 3 y 3 ) 调整一下顺序 = ( x 1 y 1 + x 1 y 2 + x 2 y 1 ) + α 1 [ P 1 → z 1 ] + ( x 3 y 2 + x 2 y 2 + x 2 y 3 ) + α 2 [ P 2 → z 2 ] + ( x 3 y 1 + x 1 y 3 + x 3 y 3 ) + α 3 [ P 3 → z 3 ] \langle xy\rangle=(x_1+x_2+x_3)(y_1+y_2+y_3)\\=(x_1y_1+x_1y_2+x_1y_3)\\+(x_2y_1 + x_2y_2 + x_2y_3)\\+(x_3y_1 + x_3y_2 + x_3y_3)\\调整一下顺序\\=(x_1y_1+x_1y_2+x_2y_1)+\alpha_1 [P_1\rightarrow z_1]\\+(x_3y_2 + x_2y_2 + x_2y_3)+\alpha_2 [P_2\rightarrow z_2]\\+(x_3y_1 + x_1y_3 + x_3y_3)+\alpha_3 [P_3\rightarrow z_3] xy=(x1+x2+x3)(y1+y2+y3)=(x1y1+x1y2+x1y3)+(x2y1+x2y2+x2y3)+(x3y1+x3y2+x3y3)调整一下顺序=(x1y1+x1y2+x2y1)+α1[P1z1]+(x3y2+x2y2+x2y3)+α2[P2z2]+(x3y1+x1y3+x3y3)+α3[P3z3]
暂不管 α \alpha α,可以看到,三个参与方可以分别在本地计算出 z 1 , z 2 , z 3 z_1, z_2, z_3 z1,z2,z3,也就是交叉项的结果。
然而,我们要求各方都持有三份share中的两份,所以需要re-sharing操作,也就是 P i P_i Pi z i z_i zi发给 P i − 1 P_{i-1} Pi1
现在来看 α \alpha α的作用, α \alpha α用于随机化 z z z,我们需要让 α \alpha α满足: α 1 + α 2 + α 3 = 0 \alpha_1+\alpha_2+\alpha_3=0 α1+α2+α3=0。每一方都完全知道这三个值中的一个,这样的三元组 ( α 1 , α 2 , α 3 ) (\alpha_1, \alpha_2, \alpha_3) (α1,α2,α3)被称为zero-sharing(零共享),在one-time setup后的计算无需任何交互。
那么如何生成三元组?基于伪随机函数(PRF)生成,这部分本文不展开。

由此可见,3PC和2PC都在本地计算加法,他们最大的不同就是乘法:在2PC乘法中,交叉项需要借助OT或HE计算,带来巨大的通信或计算开销;而基于复制秘密分享的3PC乘法完全在本地计算交叉项,无需通信,在re-sharing时需要少量的通信。

5 截断

方法1: Π T r u n c 1 \Pi_{Trunc1} ΠTrunc1
核心想法是在一方不参与的情况下,运行两方协议。
令各方有 ⟨ x ′ ⟩ = ⟨ y ⟩ ⟨ z ⟩ \langle x^\prime\rangle=\langle y\rangle \langle z\rangle x=yz的2-out-of-3的share(上面乘法后的结果),现在的目的是计算截断 ⟨ x ⟩ = ⟨ x ′ ⟩ / 2 d \langle x\rangle=\langle x^\prime \rangle/2^d x=x/2d
定义 P 1 , P 2 P_1, P_2 P1,P2之间的2-out-of-2 share为 ( x 1 ′ , x 2 ′ + x 3 ′ ) (x_1^\prime, x_2^\prime+x_3^\prime) (x1,x2+x3),然后双方在本地截断 ( x 1 ′ / 2 d , ( x 2 ′ + x 3 ′ ) / 2 d ) (x_1^\prime/2^d, (x_2^\prime+x_3^\prime)/2^d) (x1/2d,(x2+x3)/2d),最后的结果为 ⟨ x ⟩ : = ( x 1 , x 2 , x 3 ) = ( x 1 ′ / 2 d , ( x 2 ′ + x 3 ′ ) / 2 d − r , r ) \langle x\rangle:=(x_1, x_2, x_3)=(x_1^\prime/2^d, (x_2^\prime+x_3^\prime)/2^d-r, r) x:=(x1,x2,x3)=(x1/2d,(x2+x3)/2dr,r),其中, r ∈ Z 2 k r\in\mathbb Z^k_2 rZ2k是一个 P 2 , P 3 P_2, P_3 P2,P3知道的随机数。最后,为了让三方拥有两份share,需要再做一次re-sharing操作。
这个方法的局限性是两轮计算需要乘法和截断。

在这里插入图片描述

方法2: Π T r u n c 2 \Pi_{Trunc2} ΠTrunc2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/221137.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ttkefu在线客服软件新版即将上线——引领客服行业迈向新篇章

在线客服软件已经成为企业与用户之间沟通的重要桥梁。作为领先的客服解决方案提供商,ttkefu即将推出全新版本的在线客服软件,为客服行业注入新的活力。 一、ttkefu新版在线客服软件的主要特点 智能化客户管理:新版软件将采用先进的自然语言…

sd_webui的实用插件,prompt/lama/human matting/...,持续开源更新!!

热烈欢迎大家在git上star!!!冲鸭!!! 1.prompt优化插件 GitHub - leeguandong/sd_webui_beautifulprompt: beautifulprompt extension performs stable diffusion automatic prompt engineering on a bro…

抖音本地生活服务商申请入口在哪里?具体流程是怎样的?

不论是抖音的本地生活业务,还是后来的支付宝、视频号的本地生活业务,因为市场体量足够庞大,市场前景广阔,一直很受各大创业者的追捧。那么,如此火热的本地生活项目,想要申请成为服务商,具体的申…

某60区块链安全之JOP实战二学习记录

区块链安全 文章目录 区块链安全Jump Oriented Programming实战二实验目的掌握对EVM逆向能力实验环境实验工具实验原理实验内容Jump Oriented Programming实战二 实验步骤Jump Oriented Programming实战二 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约中中Jum…

26、卷积 - 实际上是一个特征提取器

矩阵乘法的本质是特征的融合,卷积算法的本质是特征的提取。 回想一下之前所有介绍卷积的时候,描述了一种卷积运算的场景,那就是一个窗口在图片上滑动,窗口中的数值是卷积核的参数,也就是权值。 卷积的计算本质是乘累…

axios使用

Get请求 Post请求 出问题了: 并发请求 全局配置 多个实例如何处理 拦截器 axios在Vue中的模块封装

Install4J安装界面中如何使用脚本找到依赖程序XShell的安装位置

前言 写了一个工具, 使用Install4j打包, 但因为需要用到XShell, 所以希望在安装界面能够提前让用户配置好XShell的安装位置, 所以对Install4j的安装界面需要自定义, 后期在程序中直接过去安装位置就可以正常使用. 调研 和git-bash不一样, 安装版的XShell没有在注册表里存储安…

FL Studio2024破解版本补丁包下载

FL Studio是一款出色的编曲软件,最新版本的FL Studio21新增了四款全新的插件,覆盖了音频设计、延迟、相位器等等。通过软件的不断更新,我们可以享受到更加智能的电子音乐创作工具,目前,FL Studio的正式版已经推出了超过…

产品创新受赞誉,怿星荣获2023未来汽车(电子和软件)创新创业大赛一等奖

2023未来汽车(电子和软件)创新创业大赛 11月29日,上海临港,由中国汽车工程学会和中国(上海)自由贸易试验区临港新片区管理委员会联合举办的“2023未来汽车(电子和软件)创新创业大赛…

NSSCTF 文件上传漏洞题目

目录 [SWPUCTF 2021 新生赛]easyupload1.0 [SWPUCTF 2021 新生赛]easyupload2.0 [SWPUCTF 2021 新生赛]easyupload3.0 [SWPUCTF 2021 新生赛]easyupload1.0 这是一个文件上传漏洞的题目 我们的思路是上传一句话木马,用工具进行连接 先编写一句话木马 将文件后缀…

一位半加法器,一位全加器,四位全加器

我们这里的加法器只考虑一位的情况。 当我们两个一位相加的话,那么就有两个输入,两个输出,两个输入很好理解,就是两个个位上的数字,0或者是1,那么为什么需要有有个输出呢?难道不是输出一个数就…

麒麟linux将图片批量生成PDF的方法

笔者手里有一批国产linu系统,目前开始用在日常的工作生产环境中,我这个老程序猿勉为其难的充当运维的或网管的角色。 国产linux系统常见的为麒麟Linux,统信UOS等,基本都是基于debian再开发的linux。 问题描述: wind…

28、卷积 - 卷积的基础公式

本节推导一下卷积的基础公式,还是先上一张卷积运算的示意图图。 我们知道,一张图片有 3 个维度,分别是长、宽、通道。 这三个维度分别用 3 个字母代替,分别是 H(Height, 对应的是长这一维度), W(Width, 对应的是宽这一维度),C(Channel,对应的是通道这一维度)。 对于…

unity学习笔记19

一、角色动画的使用练习 从资源商店导入的动画资源(Character Pack: Free Sample)中将资源中的角色创建在场景里,现在场景里存在的角色并没有任何动画。 在资源中找到Animations文件夹,在这个文件有很多模型文件(.FBX…

PYthon数据分析学前导语

文章目录 1.学习计划1.1 第一阶段:数据分析阶段1.2 第二阶段:可视化阶段1.3 第三阶段:项目实战阶段 2. 相关工具库的安装2.1.Pandas与Numpy的安装2.2 matplotlib, seaborn, Pyecharts的安装 1.学习计划 欢迎开始Python数据分析系列博客的学习…

Swift 如何实现自定义 Tab Bar

前言 每个 UI 设计师都喜欢美丽而有动画效果的 Tab Bar。然而,对于开发人员来说,实现这种设计可能是一场噩梦。当然,使用 Apple 的原生 Tab Bar 组件并专注于更有趣的事情,比如业务逻辑的实现,会更容易。但如果我们必…

Postman和Apifox针对不同环境、全局变量的使用与比较

文章目录 一、Postman1、配置环境和全局变量2、验证3、存在问题分析 二、Apifox1、配置环境和全局参数2、创建公共脚本3、测试 总结 一、Postman 1、配置环境和全局变量 在Postman的界面中,点击"Environment",添加我们需要的环境&#xff0c…

QML之动画的使用(含源码+注释)

文章目录 一、动画效果示例图二、个人理解三、源码总结 一、动画效果示例图 下图演示四组动画效果分别包含数值动画(单个方块、多个方块),顺序动画,并行动画等效果 二、个人理解 NumberAnimation:改变控件属性值的…

力扣题:字符的统计-12.4

力扣题-12.4 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:657. 机器人能否返回原点 解题思想:进行统计即可 class Solution(object):def judgeCircle(self, moves):""":type moves: str:rtype: bool""&qu…

解决vue ssr服务端渲染运行时报错:net::ERR_PROXY_CONNECTION_FAILED

现象: 从代码里找了半天也没有找到问题,但是由于ssr服务端渲染配置本身非常复杂,步骤又繁琐, 而且报错又很多,不知道哪里出了问题。 感觉是header或者cookie丢失造成的,因为据说ssr本身有这样的缺陷&…