加法秘密共享比较-PPA

2023-10-25 19:59
文章标签 比较 共享 秘密 加法 ppa

本文主要是介绍加法秘密共享比较-PPA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概要:加法秘密共享的比较可以简化为MSB提取操作,即
a < b = MSB ( a − b ) . a<b = \textbf{MSB}(a-b). a<b=MSB(ab).
值得注意的是,MSB是二元秘密共享, a a a b b b是环上的秘密共享。需要 B2A \textbf{B2A} B2A转换。

1. 空间编码

为了表达有符号整数,把环分成两半,其中下半环 [ 0 , 2 l − 1 − 1 ] [0,2^{l-1}−1] [0,2l11]表示非负值和上半环 [ 2 l − 1 [2^{l-1} [2l1, 2 l − 1 ] 2^{l}−1] 2l1]表示负值。

2. 基础知识

2.1. 加法器

考虑1比特的加法器:输入有三个: A A A B B B C C C。其中, A A A B B B 代表输入, C C C 表示低位的进位。输出中, X = A ⊕ B ⊕ C X=A\oplus B\oplus C X=ABC 表示本位置的结果, Y = A ⋅ B ⊕ C ⋅ ( A ⊕ B ) Y=A\cdot B\oplus C\cdot(A\oplus B) Y=ABC(AB) 表示对高位的进位。真值表:

ABCXY
00000
01010
10010
11001
00110
01101
10101
11111

可以看到,在求解高位进位 Y Y Y时,当 A A A B B B 00 00 00或者 11 11 11低进位不起作用,只有当 A A A B B B互补时需要低进位参与。
因而,在计算两个 l l l 比特的份额 e e e f f f 的时候,可以定义:
p i = e i ⊕ f i , g i = e i ⋅ f i p_i=e_i\oplus f_i,g_i=e_i\cdot f_i pi=eifi,gi=eifi
其中, p i p_i pi被称为 propagate bit, g i g_i gi被称为 generate bit。可得(与真值表一致):
c i = g i ⊕ ( p i ⋅ c i − 1 ) = e i ⋅ f i ⊕ c i − 1 ⋅ ( e i ⊕ f i ) c_{i}=g_i\oplus (p_i\cdot c_{i-1})=e_i\cdot f_i\oplus c_{i-1}\cdot(e_i\oplus f_i) ci=gi(pici1)=eifici1(eifi)
因而:
c 0 = g 0 c 1 = g 1 ⊕ ( p 1 ⋅ g 0 ) c 2 = g 2 ⊕ ( p 2 ⋅ g 1 ) ⊕ ( p 2 ⋅ p 1 ⋅ g 0 ) ⋮ c l − 1 = g l − 1 ⊕ ( p l − 1 ⋅ g l − 2 ) ⊕ ⋯ ⊕ ( p l − 1 ⋯ p 1 ⋅ g 0 ) c_0=g_0\\ c_1=g_1\oplus (p_1\cdot g_0)\\ c_2=g_2\oplus (p_2\cdot g_1)\oplus (p_2\cdot p_1\cdot g_0)\\ \vdots\\ c_{l-1}=g_{l-1}\oplus (p_{l-1}\cdot g_{l-2})\oplus\cdots\oplus(p_{l-1}\cdots p_1\cdot g_0) c0=g0c1=g1(p1g0)c2=g2(p2g1)(p2p1g0)cl1=gl1(pl1gl2)(pl1p1g0)

2.2. PPA

为了减少与门的深度,PPA在计算 c i c_i ci时进行了并行优化,即利用分层的思路,每层进行一些 p i p_i pi g i g_i gi的合并减少总计算。
g o = g i 2 ⊕ ( p i 2 ⋅ g i 1 ) , p o = p i 2 ⋅ p i 1 g_o=g_{i_2}\oplus (p_{i_2}\cdot g_{i_1}),p_o=p_{i_2}\cdot p_{i_1} go=gi2(pi2gi1),po=pi2pi1
而目前的多种PPA变体,其主要设计思路是在加法器范围、电路深度、节点输出数量和整体布线四点上做出均衡。
常见的Sklansky变体,利用二分法进行求解。
即:

  1. 计算两两相邻比特 i i i i + 1 i+1 i+1之间的合并
  2. 计算数量减半,重复第一步。
    在这里插入图片描述

2.3. MSB

提取秘密共享份额的最高有效位。

  1. 将份额本地分解为比特
  2. 计算PPA公式
  3. 并行分层聚合
  4. 求解最高有效位 c l − 1 c_{l-1} cl1
    在这里插入图片描述

3. 比较

本地计算 a − b a-b ab 的份额,通过PPA算法 MSB ( a − b ) \textbf{MSB}(a-b) MSB(ab)求解其最高有效位 c l − 1 c_{l-1} cl1,由于明文空间编码,当 c l − 1 = 1 c_{l-1}=1 cl1=1时负数空间, a < b a<b a<b;否则正数空间, a ≥ b a\ge b ab

图片来源:

X. Liu, Y. Zheng, X. Yuan, and X. Yi, “Medisc: Towards secure and lightweight deep learning as a medical diagnostic service,” in Proc. of ESORICS, 2021

.

这篇关于加法秘密共享比较-PPA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284830

相关文章

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

Linux使用粘滞位 (t-bit)共享文件的方法教程

《Linux使用粘滞位(t-bit)共享文件的方法教程》在Linux系统中,共享文件是日常管理和协作中的常见任务,而粘滞位(StickyBit或t-bit)是实现共享目录安全性的重要工具之一,本文将... 目录文件共享的常见场景基础概念linux 文件权限粘滞位 (Sticky Bit)设置共享目录并配置粘

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

uva 10069 DP + 大数加法

代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>#include <cl

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

关键字synchronized、volatile的比较

关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随着JDK新版本的发布,synchronized关键字的执行效率上得到很大提升,在开发中使用synchronized关键字的比率还是比较大的。多线程访问volatile不会发生阻塞,而synchronize

# VMware 共享文件

VMware tools快速安装 VMware 提供了 open-vm-tools,这是 VMware 官方推荐的开源工具包,通常不需要手动安装 VMware Tools,因为大多数 Linux 发行版(包括 Ubuntu、CentOS 等)都包含了 open-vm-tools,并且已经优化以提供与 VMware 环境的兼容性和功能支持。 建议按照以下步骤安装 open-vm-tools 而不

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

【C++】作用域指针、智能指针、共享指针、弱指针

十、智能指针、共享指针 从上篇文章 【C++】如何用C++创建对象,理解作用域、堆栈、内存分配-CSDN博客 中我们知道,你的对象是创建在栈上还是在堆上,最大的区别就是对象的作用域不一样。所以在C++中,一旦程序进入另外一个作用域,那其他作用域的对象就自动销毁了。这种机制有好有坏。我们可以利用这个机制,比如可以自动化我们的代码,像智能指针、作用域锁(scoped_lock)等都是利用了这种机制。