Yao‘s GC 的通信最优解:Half Gate

news/2024/5/7 5:29:54/文章来源:https://blog.csdn.net/weixin_44885334/article/details/127189305

参考文献:

  1. Bellare M, Hoang V T, Rogaway P. Foundations of garbled circuits[C]//Proceedings of the 2012 ACM conference on Computer and communications security. 2012: 784-796.
  2. Zahur S, Rosulek M, Evans D. Two halves make a whole[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 2015: 220-250.
  3. Biçer O. Efficiency Optimizations on Yao’s Garbled Circuits and Their Practical Applications[J]. arXiv preprint arXiv:1703.03473, 2017.

文章目录

  • Garbling Schemes Abstraction
  • Secret Shares
  • AND Gate
    • Generator Half Gate
    • Evaluator half-gate
    • Two halves make a whole
  • Arbitrary gates
  • The complete scheme

Garbling Schemes Abstraction

2012年,Bellare, Hoang, Rogaway 给出了混淆电路协议的抽象。

一个 Garbling Scheme 是算法四元组 (Gb,En,Ev,De)(Gb,En,Ev,De)(Gb,En,Ev,De)

  • Gb(1k,f)→(F,e,d)Gb(1^k,f) \to (F,e,d)Gb(1k,f)(F,e,d):安全参数kkk,将布尔电路fff转化为混淆电路FFFeee是编码信息(encoding information),ddd是解码信息(decoding information)
  • En(e,x)→XEn(e,x) \to XEn(e,x)Xxxx是明文输入,根据eee编码为混淆值XXX
  • Ev(F,X)→YEv(F,X) \to YEv(F,X)Y:将XXX输入混淆电路FFF,运算后结果为YYY
  • De(d,Y)→yDe(d,Y) \to yDe(d,Y)yYYY是混淆输出,根据ddd解码为明文yyy

安全属性:

  1. Privacy(F,X,d)(F,X,d)(F,X,d)不会泄露比f(x)f(x)f(x)更多的关于xxx的信息
  2. Obliviousness(F,X)(F,X)(F,X)不会泄露xxx的任何信息
  3. Authenticity:只给定(F,X)(F,X)(F,X),任何敌手都无法计算一个Y′≠Ev(F,X)Y' \neq Ev(F,X)Y=Ev(F,X)使得De(d,Y′)≠⊥De(d,Y') \neq \perpDe(d,Y)=,除了可忽略的概率

Secret Shares

混淆电路的任意一条线www,我们将线标签kw0,kw1k_w^0,k_w^1kw0,kw1和置换比特(permute bitpwp_wpw写在一起:
Ww0=kw0∥pwWw1=kw1∥(pw⊕1)\begin{aligned} W_w^0 &= k_w^0 \| p_w\\ W_w^1 &= k_w^1 \| (p_w \oplus 1)\\ \end{aligned} Ww0Ww1=kw0pw=kw1(pw1)

vw=0v_w=0vw=0的选择比特(select bit)为sw=pws_w = p_wsw=pw,而值vw=1v_w=1vw=1的选择比特为sw=pw⊕1s_w = p_w \oplus 1sw=pw1。易知,vw=sw⊕pwv_w = s_w \oplus p_wvw=swpw,秘密共享为:
[vw]=(pw,pw⊕vw)[v_w] = (p_w,\, p_w \oplus v_w) [vw]=(pw,pwvw)

使用 Free XOR 技术,随机选择kw0k_w^0kw0,那么kw1=kw0⊕Rk_w^1 = k_w^0 \oplus Rkw1=kw0R。或者说,随机选择Ww0W_w^0Ww0(包含了pwp_wpw),然后设置lsb(R)=1lsb(R)=1lsb(R)=1,那么Ww1=Ww0⊕RW_w^1 = W_w^0 \oplus RWw1=Ww0R

此时的秘密共享为:
[vw]=(Ww0,Ww0⊕vw⋅R)[v_w] = (W_w^0,\, W_w^0 \oplus v_w \cdot R) [vw]=(Ww0,Ww0vwR)

可以提取lsb(⋅)lsb(\cdot)lsb()重新得到(pw,pw⊕vw)(p_w,\, p_w \oplus v_w)(pw,pwvw)

AND Gate

令 Alice 是混淆电路的生成者,令 Bob 是混淆电路的计算者。

一个 AND Gate,它的输入线为a,ba,ba,b,输出线为ccc

简记:a=0a=0a=0的混淆值为AAAb=0b=0b=0的混淆值为BBBc=0c=0c=0的混淆值为CCC,Free XOR 技术的全局偏移为RRR

Generator Half Gate

这个所谓的 Generator Half Gate 是指:Alice 知道其中一条输入线(不失一般性的,aaa)的明文值,只知道另一条线(对应的,bbb)的混淆值。

为了计算 c=a∧bc = a \wedge bc=ab,因为 Alice 知道aaa的值,因此它是关于bbb的一元门(unary gate),

  1. 如果a=0a=0a=0,那么这个一元门就是c=0c=0c=0
  2. 如果a=1a=1a=1,那么这个一元门就是c=bc=bc=b

Alice 构造这个一元门的混淆表:
H(B)⊕CH(B⊕R)⊕C⊕aR\begin{aligned} H(B) \oplus C\\ H(B \oplus R) \oplus C \oplus aR\\ \end{aligned} H(B)CH(BR)CaR

Bob 持有bbb上的混淆值,但无法区分b=0/1b=0/1b=0/1

  1. 如果 Bob 持有BBB,那么可以得到CCC,对应c=a∧0=0c=a \wedge 0 = 0c=a0=0

  2. 如果 Bob 持有B⊕RB \oplus RBR,那么可以得到C⊕aRC \oplus aRCaR,对应c=a∧1=ac=a \wedge 1 = ac=a1=a

利用 P&P 技术和 GRR3 技术,Alice 根据bbb的置换比特pb:=lsb(B)p_b := lsb(B)pb:=lsb(B),将选择比特sbvb=0s_b^{v_b}=0sbvb=0所对应的vb=pbv_b=p_bvb=pb的条目的密文置为零,即:
C={H(B),pb=0H(B⊕R)⊕aR,pb=1C = \left\{ \begin{aligned} H(B), && p_b = 0\\ H(B \oplus R) \oplus aR, && p_b = 1 \end{aligned} \right. C={H(B),H(BR)aR,pb=0pb=1

pb=0p_b=0pb=0时,
H(B)⊕C=0TG:=H(B⊕R)⊕C⊕aR=H(B)⊕H(B⊕R)⊕aR\begin{aligned} H(B) \oplus C &= 0\\ T_{G} := H(B \oplus R) \oplus C \oplus aR &= H(B) \oplus H(B \oplus R) \oplus aR\\ \end{aligned} H(B)CTG:=H(BR)CaR=0=H(B)H(BR)aR

pb=1p_b=1pb=1时,
H(B⊕R)⊕C⊕aR=0TG:=H(B)⊕C=H(B)⊕H(B⊕R)⊕aR\begin{aligned} H(B \oplus R) \oplus C \oplus aR &= 0\\ T_{G} := H(B) \oplus C &= H(B) \oplus H(B \oplus R) \oplus aR\\ \end{aligned} H(BR)CaRTG:=H(B)C=0=H(B)H(BR)aR

所以,我们只需发送一个密文TGT_GTG即可。

Evaluator half-gate

这个所谓的 Evaluator half-gate 是指:Bob 知道其中一条输入线(不失一般性的,aaa)的明文值,只知道另一条线(对应的,bbb)的混淆值。

为了计算 c=a∧bc = a \wedge bc=ab,因为 Bob 知道aaa的值,因此它是关于bbb的一元门(unary gate

Alice 构造这个如下的密文(这并非真值表对应的混淆表):
H(A)⊕CH(A⊕R)⊕C⊕B\begin{aligned} H(A) \oplus C\\ H(A \oplus R) \oplus C \oplus B\\ \end{aligned} H(A)CH(AR)CB

如果 Bob 知道a=0a=0a=0,此时它持有AAA,那么可以得到CCC,对应c=0∧b=0c=0 \wedge b = 0c=0b=0

如果 Bob 知道a=1a=1a=1,此时它持有A⊕RA \oplus RAR,那么可以得到C⊕BC \oplus BCB,然后还需要再与bbb上的混淆值(Bob 无法区分b=0/1b=0/1b=0/1)异或,

  1. 如果 Bob 持有BBB,计算出C⊕B⊕B=CC \oplus B \oplus B = CCBB=C
  2. 如果 Bob 持有B⊕RB \oplus RBR,计算出C⊕B⊕B⊕R=C⊕RC \oplus B \oplus B \oplus R = C \oplus RCBBR=CR

对应c=1∧b=bc=1 \wedge b = bc=1b=b

由于 Bob 知道aaa的明文值,因此知道自己持有的是AAA还是A⊕RA \oplus RAR,所以根本不必利用随机置换来隐藏这个信息。

利用 GRR3 技术,我们简单地设置C=H(A)C = H(A)C=H(A),那么有:
H(A)⊕C=0TE:=H(A⊕R)⊕C⊕B=H(A)⊕H(A⊕R)⊕B\begin{aligned} H(A) \oplus C &= 0\\ T_{E} := H(A \oplus R) \oplus C \oplus B &= H(A) \oplus H(A \oplus R) \oplus B\\ \end{aligned} H(A)CTE:=H(AR)CB=0=H(A)H(AR)B

所以,我们只需发送一个密文TET_ETE即可。

Two halves make a whole

容易发现:
c=a∧b=(a∧r)⊕(a∧(b⊕r))\begin{aligned} c &= a \wedge b\\ &= (a \wedge r) \oplus (a \wedge (b \oplus r))\\ \end{aligned} c=ab=(ar)(a(br))

Alice 和 Bob 都不知道a,ba,ba,b的明文值,只有混淆值Wava,WbvbW_a^{v_a},W_b^{v_b}Wava,Wbvb

将置换比特和线标签视为秘密共享。对于bbb上的值的 shares,Alice 持有置换比特pb:=rp_b := rpb:=r的明文(根据lsb(Wb0)lsb(W_b^{0})lsb(Wb0)),Bob 持有选择比特sb:=b⊕rs_b := b \oplus rsb:=br的明文(根据lsb(Wbvb)lsb(W_b^{v_b})lsb(Wbvb)

因此,我们将 AND Gate 转化为:

  • 111个 Generator Half Gate:c1=a∧rc_1 = a \wedge rc1=ar,其中 Alice 知道rrr,但是不知道aaa(同时也不知道bbb
  • 111个 Evaluator half-gate:c2=a∧(b⊕r)c_2 = a \wedge (b \oplus r)c2=a(br),其中 Bob 知道b⊕rb \oplus rbr,但是不知道a,ba,ba,b
  • 111个 XOR Gate:c=c1⊕c2c = c_1 \oplus c_2c=c1c2,这可以利用 Free XOR 技术

Alice 构造 Generator Half Gate,根据pa:=lsb(Wa0)p_a:=lsb(W_a^0)pa:=lsb(Wa0)设置恰当的Wc10W_{c_1}^0Wc10,发送一个密文,
TG:=H(Wa0)⊕H(Wa0⊕R)⊕pbRT_{G} := H(W_a^0) \oplus H(W_a^0 \oplus R) \oplus p_bR TG:=H(Wa0)H(Wa0R)pbR

构造 Evaluator half-gate,设置Wc20=H(Wbpb)W_{c_2}^0=H(W_b^{p_b})Wc20=H(Wbpb)(使得b⊕r=0b \oplus r = 0br=0vb=pbv_b=p_bvb=pb),发送另一个密文,
TE:=H(Wb0)⊕H(Wb0⊕R)⊕Wa0T_{E} := H(W_b^0) \oplus H(W_b^0 \oplus R) \oplus W_a^0\\ TE:=H(Wb0)H(Wb0R)Wa0

共计发送222个密文。

Bob 接收到两个 Half Gate 后,

  1. 根据aaa线上的混淆值WavaW_a^{v_a}Wava,计算出c1c_1c1线的混淆值Wc1vc1W_{c_1}^{v_{c_1}}Wc1vc1
  2. 根据bbb线上的sb:=lsb(Wbvb)s_b := lsb(W_b^{v_b})sb:=lsb(Wbvb),解密得到Wc20⊕Wa0W_{c_2}^{0} \oplus W_a^0Wc20Wa0,再与aaa线上的WavaW_a^{v_a}Wava异或,得到Wc2vc2W_{c_2}^{v_{c_2}}Wc2vc2
  3. 计算Wc1vc1⊕Wc2vc2W_{c_1}^{v_{c_1}} \oplus W_{c_2}^{v_{c_2}}Wc1vc1Wc2vc2,得到ccc线上的混淆值WcvcW_c^{v_c}Wcvc

Arbitrary gates

任意的 even gate(非凡的只有 XOR, NXOR),应用 Free XOR 技术,都是 free 的。

任意的 odd gate(例如 AND, NAND, OR, NOR)都可以写作:
f(va,vb)=(αa⊕va)∧(αb⊕vb)⊕αcf(v_a,v_b) = (\alpha_a \oplus v_a) \wedge (\alpha_b \oplus v_b) \oplus \alpha_c f(va,vb)=(αava)(αbvb)αc

其中αc\alpha_cαc控制111的个数是:

  • αc=0\alpha_c=0αc=0时,有一个111,三个000
  • αc=1\alpha_c=1αc=1时,有三个111,一个000

αa,αb\alpha_a,\alpha_bαa,αb控制那一个不同的数的位置:

  • 对于va=1−αa,vb=1−αbv_a=1-\alpha_a,v_b=1-\alpha_bva=1αa,vb=1αb,这一个条目的真值只有一个
  • 而其他的三个条目,它们的真值相等

三元组(αa,αb,αc)∈{0,1}3(\alpha_a,\alpha_b,\alpha_c) \in \{0,1\}^3(αa,αb,αc){0,1}3的取值范围大小是23=82^3=823=8,分别对应888种 odd gate:

  1. 设置αa=αb=αc=0\alpha_a=\alpha_b=\alpha_c=0αa=αb=αc=0,那么就是 AND Gate
  2. 设置αa=αb=αc=1\alpha_a=\alpha_b=\alpha_c=1αa=αb=αc=1,那么就是 OR Gate

如果把f(va,vb)f(v_a,v_b)f(va,vb)写成:
fG(va,pb):=(αa⊕va)∧(αb⊕pb)⊕αcfE(va,pb⊕vb):=(αa⊕va)∧(pb⊕vb)f(va,vb)=fG(va,pb)⊕fE(va,pb⊕vb)\begin{aligned} f_G(v_a,p_b) &:= (\alpha_a \oplus v_a) \wedge (\alpha_b \oplus p_b) \oplus \alpha_c\\ f_E(v_a,p_b \oplus v_b) &:= (\alpha_a \oplus v_a) \wedge (p_b \oplus v_b)\\ f(v_a,v_b) &= f_G(v_a,p_b) \oplus f_E(v_a,p_b \oplus v_b) \end{aligned} fG(va,pb)fE(va,pbvb)f(va,vb):=(αava)(αbpb)αc:=(αava)(pbvb)=fG(va,pb)fE(va,pbvb)

因为 Alice 知道pbp_bpb,而 Bob 知道pb⊕vbp_b \oplus v_bpbvb,那么就可以利用 Half Gate 技术,将这个 odd gate 的通信量降低到222个密文。

在这里插入图片描述

The complete scheme

将电路fff的各个逻辑门拓扑排序,对电线依次标号{1,2,⋯}\{1,2,\cdots\}{1,2,},输出线为iii的逻辑门记为GiG_iGi,它的输入线为a,b<ia,b < ia,b<i

利用 P&P 技术、Half Gate 技术、Free XOR 技术、GRR3 技术,完整的 GC 协议为:

在这里插入图片描述

易知 Free XOR 技术使得 even gate 的所需的密文数量为。可以证明,实现 odd gate 至少需要两个密文。而 Half Gate 技术使用个密文就完成了 odd gate 的构造。因此,上述的协议达到了最优的通信复杂度

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

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

相关文章

MyBatisPlus入门宝典(二)CRUD

目录 一.添加 二.相关注解 三.修改 四.删除 五.查询 六.条件构造器 七.分页查询 八.全局配置 一.添加 1.配置文件开启SQL日志打印 # 开启SQL日志 mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 2.测试添加方法&#xff1a; …

Unity URP 色彩之旅

Unity URP 色彩之旅 这一切只是色彩科学的冰山一角… 文章目录Unity URP 色彩之旅1 我们是如何感知世界的&#xff1f;1.1 首先要有光&#xff01;1.2 人眼响应1.3 奇怪的大脑2 我们是如何描述颜色的&#xff1f;2.1 CIE 1931 RGB Color Space2.2 CIE 1931 XYZ Color Space2.3 …

JavaScript高级学习笔记:数据_变量_内存

1. 什么是数据? 2. 什么是内存? 3. 什么是变量? 4. 内存,数据, 变量三者之间的关系 变量保存的是内存中存储的地址值&#xff0c;而变量赋值就是将一个变量保存的内容拷贝一份到另一个变量中 这里面的.就是找obj对应地址值&#xff0c;中内存保存的相应数据 那么是不是所有…

SRv6----报文转发流程

按照下图路径&#xff0c;报文需要从主机H1转发到主机H2,H1将报文发送给节点A处理。节点A、B、D和F均为支持SRv6的设备&#xff0c;节点C和节点E为不支持SRv6的设备。 我们在SRv6源节点A上进行了网络编程&#xff0c;希望报文经过B-C和D-E这两条链路&#xff0c;然后送达节点F&…

华为面向5G的室内覆盖数字化概述

概述 数字化技术催生各行业的不断创新&#xff1a;ICT、媒体、金融、保险在数字化发展 曲线中已经独占鳌头&#xff0c;零售、汽车、油气化工、健康、矿业、农业等也在加速 其进程。促进数字化进程的关键技术包括软件定义设备、大数据、云计算、区 块链、网络安全、时延敏感网…

(附源码)SSM医疗垃圾管理系统JAVA计算机毕业设计项目

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

美团java一面面经

目录1.了解static吗&#xff0c;static数据存在哪&#xff1f;生命周期什么样的2.了解final吗&#xff0c;讲讲下面这段代码的结果3.讲讲volatile吧4.讲讲两个锁的区别(reentrantlock和synchronized)5.讲讲线程池里线程的创建与销毁&#xff0c;核心线程可以销毁吗&#xff1f;…

.NET 开源项目推荐之 直播控制台解决方案 Macro Deck

在直播圈有个很受欢迎的直播控制台程序Macro Deck, 它是基于Apache 2.0协议开源的.NET 应用。流媒体是一个吸引数亿万玩家的严肃行业。 最受欢迎的游戏锦标赛的转播获得了数百万的观看次数,从商业角度来看,这也使游戏行业变得有趣。在直播圈有个很受欢迎的直播控制台程序Mac…

牛客网专项练习30天Pytnon篇第07天

1.在Python中&#xff0c;使用open方法打开文件,语法如下&#xff1a;open(文件名&#xff0c;访问模式)&#xff0c;如果以二进制格式打开一个文件用于追加&#xff0c;则访问模式为:&#xff08;C&#xff09; A.rb B.wb C.ab D.a 解析&#xff1a; "r",&q…

看完这篇 教你玩转渗透测试靶机vulnhub——hackableII

Vulnhub靶机hackableII渗透测试详解Vulnhub靶机介绍&#xff1a;Vulnhub靶机下载&#xff1a;Vulnhub靶机安装&#xff1a;Vulnhub靶机漏洞详解&#xff1a;①&#xff1a;信息收集&#xff1a;②&#xff1a;FTP匿名登录&#xff1a;③&#xff1a;回弹shell&#xff1a;④&am…

Mybatis - 一二级缓存的原理

Mybatis - 一二级缓存的原理前言一. 一级缓存原理1.1 原理分析1.2 一级缓存 Key1.3 查询逻辑1.4 一级缓存的清除或失效场景1.5 一级缓存总结二. 二级缓存原理2.1 二级缓存的实验2.2 二级缓存的开启和相关配置解析2.3 二级缓存的封装Cache类2.4 二级缓存的存储2.5 二级缓存总结前…

指静脉代码学习---9.图像质量评价(分类)

一、论文背景 1.论文三--Song 本文提出了一种自适应增强框架的算法流程 先通过质量评价将图像分类,①针对高质量的图像,采用类似直方图均衡化的简单方法②低质量图像,采用类似滤波器增强的方法(虽然时效性较差,但是效果比较明显) ①对质量评价方法历程的概述:

Python 变量作用域

Python 变量作用域1.变量作用域2.局部变量3.全局变量4.同名的局部变量和全局变量5.global 语句1.变量作用域 Python 中规定每个变量都有它的作用域&#xff0c; 即变量只有在作用域范围内才是可见可用的。 作用域能避免程序代码中的名称冲突&#xff0c;在一个函数中定义的变量…

Java学习 --- 面向对象-继承

一、为什么需要继承 我们编写了两个类&#xff0c;一个是Pupil类&#xff0c;一个是Graduate类 问题&#xff1a;两个类的属性和方法有很多是相同的&#xff0c;怎么办&#xff1f; Pupil类&#xff1a; package com.javase.extend_;public class Pupil {public String nam…

docker搭建2048小游戏

下载2048游戏包 链接: https://pan.baidu.com/s/1E5RkGgfLSo3XYmvJ7RId_Q 提取码: 1gc5 复制这段内容后打开百度网盘手机App,操作更方便哦 打包成镜像 [root@docker ~]# ls game2048.tar [root@docker ~]# docker load -i game2048.tar [root@docker ~]# docker images REPOSI…

10月7日第壹简报,星期五,农历九月十二

10月7日第壹简报&#xff0c;星期五&#xff0c;农历九月十二1. 2022年诺贝尔文学奖揭晓&#xff0c;82岁法国女作家埃尔诺获奖。2. 我国新添4处世界灌溉工程遗产&#xff1a;四川省通济堰、江苏省兴化垛田灌排工程体系、浙江省松阳松古灌区和江西省崇义县上堡梯田全部申报成功…

【C语言】学生考勤管理系统

✅作者简介&#xff1a;一位CSDN万粉博主的小娇妻&#xff0c;一名在读大二学生&#xff0c;希望大家多多支持&#x1f44d;&#x1f44d;&#x1f44d; &#x1f525;系列专栏&#xff1a;C语言 &#x1f4ac;个人主页&#xff1a;梦园的CSDN博客 学生考勤管理系统1 问题描述2…

使用Vue和SpringBoot开发实验室耗材智能运维系统

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;浙江某公司软件工程师&#xff0c;负责开发管理公司OA、CRM业务系统&#xff0c;全栈领域优质创作者&#xff0c;CSDN学院、蓝桥云课认证讲师&#xff0c;开发过20余个前后端分离实战项目&#xff0c;主要发展方向为Vue…

(附源码)计算机毕业设计ssm大学生社团管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

SPAFA 和Dijkstra的区别

Dijkstra算法和SPFA算法都可以用于求单源最短路,前者可以用小根堆进行优化,后者用就是用队列优化过的Bell-man Ford,下面说一说这两者的区别: Dijkstra算法是基于贪心和DP的思路,一开始先将所有点到原点的距离设置为无穷大,特别的是dis[s]=0,此处的s为原点,它是每次找到…