安全多方计算之八:Mix-Match

news/2024/11/17 7:19:22/

Mix-Match

  • 1. 混合网络
    • 基于ElGamal加密方案的混合网络
  • 2. PET协议
  • 3. Mix-Match协议
  • 4. 百万富翁问题的Mix-Match解决方案

M.Jakobsson和A.Juels提出了基于Mix-Match的安全多方计算协议构造方法,该类协议包括Mix与Match两个阶段:

  • Mix阶段:通过构造混合网络,生成盲表(Blinded table)
  • Match阶段:通过执行PET协议进行查表,得到对应的输出

最后参与者共同解密输出,该类协议参与者之间所需传输的消息量较少,对于逻辑运算和Bit运算较为高效。

1. 混合网络

从直观上讲,混合网络是一个多方协议,协议的输入是一个密文表,该密文表中的密文与一组明文有着一一对应的关系。协议将这个密文表随机置换后得到另外一个密文表,输出的密文表和相同的一组明文也是一一对应的。即输出的密文表是输入密文表的随机置换

混合网络的安全性在于攻击者无法确定输出密文表中的某一条密文与输入密文表中的哪一条密文是对应的。

基于ElGamal加密方案的混合网络

假定参与混合网络的nnn个参与者都共享一个具备身份认证的广播信道(或存在一个公告板),将一个ElGamal加密方案的公钥yyy公布给每个参与者。由参与者集合PPP的某一个子集充当混合服务器(Mix Server)的角色,与yyy对应的私钥使用(t,n)(t,n)(t,n)门限方案在混合服务器中分享。

混合网络的参与者将自己的输入广播或传送到公告板上,混合网络的输入是一个ElGamal的密文序列(α1,β1),(α2,β2),⋯,(αk,βk)(\alpha_1,\beta_1),(\alpha_{2},\beta_{2}),\cdots,(\alpha_{k},\beta_{k})(α1,β1),(α2,β2),,(αk,βk)混合服务器依次独立地将混合网络输入的密文序列进行再次加密,随机置换顺序,混合网络的输出也是一个ElGamal密文序列(ασ(1)′′,βσ(1)′),(ασ(2)′′,βσ(2)′),⋯,(ασ(k)′,βσ(k))(\alpha'_{\sigma(1)'},\beta'_{\sigma(1)}),(\alpha'_ {\sigma(2)'},\beta'_{\sigma(2)}), \cdots,(\alpha_{\sigma(k)'},\beta_{\sigma(k)})(ασ(1),βσ(1)),(ασ(2),βσ(2)),,(ασ(k),βσ(k))其中(αi′′,βi′)(\alpha'_{i'}, \beta'_ {i})(αi,βi) 表示(αi,βi)(\alpha_{i},\beta_{i})(αi,βi) 的随机再次加密结果, σ\sigmaσ 表示在kkk个元素上的随机置换。

2. PET协议

假设(α,β)(\alpha,\beta)(α,β)(α′,β′)(\alpha',\beta')(α,β)分别表示 m1,m2m_{1},m_{2}m1,m2 使用ElGamal加密方案加密后的密文,参与相同明文测试协议的参与者在不解密的情况下通过执行协议判断(α,β)(\alpha,\beta)(α,β)(α′,β′)(\alpha',\beta')(α,β)所对应的明文是否相同。

考虑密文(ε,ζ)=(α/α′,β/β′)(\varepsilon,\zeta) = (\alpha/\alpha',\beta/\beta')(ε,ζ)=(α/α,β/β),如果(α,β)≡(α′,β′)(\alpha, \beta)\equiv(\alpha',\beta')(α,β)(α,β),则(ε,ζ)( \varepsilon, \zeta)(ε,ζ) 表示明文111加密后的密文。

PET(Plaintext Equivalence Test) 协议的基本思路是让协议的参与者PiP_{i}Pi使用如下的方法隐藏(ε,ζ)(\varepsilon, \zeta)(ε,ζ):

PiP_{i}Pi选择zi∈Zqz_{i} \in Z_{q}ziZq ,然后计算(εi,ζi)=(εzi,ζzi)(\varepsilon_ {i}, \zeta_ {i}) = (\varepsilon^{z_{i}},\zeta^{z_{i}})(εi,ζi)=(εzi,ζzi)

  • 如果(α,β)≡(α′,β′)(\alpha, \beta)\equiv(\alpha',\beta')(α,β)(α,β)(ε,ζ)(\varepsilon, \zeta)(ε,ζ)代表111加密后的密文,则(εi,ζi)(\varepsilon_ {i}, \zeta_ {i})(εi,ζi)仍是111加密后的密文
  • 如果(α,β)≠(α′,β′)(\alpha, \beta)\neq (\alpha',\beta')(α,β)=(α,β)(ε,ζ)(\varepsilon, \zeta)(ε,ζ)代表 m1/m2m_{1}/m_{2}m1/m2 加密后的密文,由于ziz_{i}zi 是一个随机数,所以(εi,ζi)(\varepsilon_ {i}, \zeta_ {i})(εi,ζi)是一个随机数加密后的密文。

执行过程如下:

  • (1)每个协议参与者PiP_ {i}Pi选择ziz_ {i}ziPiP_{i}Pi 对选择的ziz_{i}zi公布一个Pedersen承诺,Ci=gzihriC_{i}=g^{z_i}h^{r_i}Ci=gzihri,其中ri∈Zqr_{i} \in Z_{q}riZqhhhZqZ_{q}Zq的一个生产元,log⁡gh\log_{g}hloggh对所有的参与者都是未知的。
  • (2)每个PiP_ {i}Pi计算(εi,ζi)=(εzi,ζzi)(\varepsilon_ {i}, \zeta_ {i}) = (\varepsilon^{z_{i}},\zeta^{z_{i}})(εi,ζi)=(εzi,ζzi),然后广播(εi,ζi)(\varepsilon_ {i}, \zeta_ {i})(εi,ζi)
  • (3)每个PiP_ {i}Pi向其他参与者证明(εi,ζi)(\varepsilon_ {i}, \zeta_{i})(εi,ζi)是与CiC_{i}Ci 相关的并且是正确计算的。需要使用零知识证明协议证明他知道一个二元组(zi,ri)(z_ {i}, r_{i})(zi,ri),使得Ci=gzihriC_{i}=g^{z_i}h^{r_i}Ci=gzihri ,并且 εi=εzi,ζi=ζzi\varepsilon_{i}=\varepsilon ^ {z_ {i}},\zeta_{i}=\zeta^{z_i}εi=εzi,ζi=ζzi
  • (4)协议的参与者共同计算(γ,δ)=(∏ni=1εi,∏ni=1ζi(\gamma,\delta)=(\prod^{i=1}_{n}\varepsilon_ {i}, \prod^{i=1}_{n}\zeta_{i}(γ,δ)=(ni=1εi,ni=1ζi,并解密(γ,δ)(\gamma,\delta)(γ,δ)
  • (5)如果解密结果是111,则(α,β)≡(α′,β′)(\alpha, \beta)\equiv(\alpha',\beta')(α,β)(α,β);如果解密结果不为111,则(α,β)≠(α′,β′)(\alpha, \beta)\neq (\alpha',\beta')(α,β)=(α,β)

3. Mix-Match协议

使用Bi={bi1,bi2,⋯,bik}B_{i}=\{b_{i1},b_{i2},\cdots,b_ {ik}\}Bi={bi1,bi2,,bik}表示参与者PiP_{i}Pi的输入,基于Mix-Match的安全多方计算协议目标就是正确计算
f(B1,B2,⋯,Bn)f(B_{1}, B_ {2},\cdots,B_{n})f(B1,B2,,Bn),同时保证PiP_{i}Pi的输入BiB_{i}Bi的保密性。

执行步骤如下:

(1)构建门电路

计算之前,所有协议的参与者将需计算的函数fff用一个由若干门电路组成的单向图CfC_fCf来表示。假设CfC_{f}CfNNN个门电路组成,记作 G1,G2,⋯,GNG_ {1},G_{2},\cdots, G_{N}G1,G2,,GN 。不失一般性,假设每个门电路Gi+1G_{i+1}Gi+1都比GiG_{i}Gi深,也就是说每个门电路的计算应该按照顺序从G1G_{1}G1GNG_{N}GNGNG_{N}GN的输出就是整个电路CfC_{f}Cf的输出。

(2)生成逻辑表

为描述简单起见,假定所有的门电路GiG_{i}Gi都只有两个输入值,一个输出值,并且输入值和输出值都可以用一个位来表示。

使用逻辑表TiT_{i}Ti 表示CfC_{f}Cf中的门电路GiG_{i}Gi,由于假定GiG_{i}Gi都是二进制的门电路,则TiT_{i}Ti是一个4行3列的表。例如,GiG_{i}Gi是一个AND门,则TiT_{i}Ti如下表所示。

左输入右输入输出
000
010
100
111

可以看出,TiT_{i}Ti为一个标准的真值表,包含所有可能的输入与输出。Ti(u,v)T_{i}(u,v)Ti(u,v)表示逻辑表 TiT_{i}Tiuuuvvv列的值。

(3)输入阶段

所有协议参与者中使用秘密分享方案分享系统的私钥,系统的公钥是公开的。协议参与者PiP_iPi将自己的输入BiB_iBi使用公钥随机加密(如ElGamal加密方案),广播加密结果(或贴上公告牌)。

(4)混合阶段(Mix)

使用MN对TiT_{i}Ti进行混合,隐秘,随机置换。经过MN作用后,输出盲表T1ˉ,T2ˉ,⋯,TNˉ\bar{T_{1}},\bar{T_{2}},\cdots,\bar{T_{N}}T1ˉ,T2ˉ,,TNˉTiˉ\bar{T_{i}}Tiˉ表示经过MN混合网络加密、隐秘、随机置换后的逻辑盲表(只有随机行置换,列的顺序不变)。

(5)匹配阶段(Match)

每个协议参与者使用PET协议将加密的输入与混合后的逻辑表进行比较,即查表。和普通的查表不一样的地方在于,Match比较的是密文,所以要使用PET协议,查完一个盲表即是计算了一个门电路,每个参与者依次计算所有的门电路即可得到函数的输出,这个输出也是加密的。

对于组成CfC_{f}Cf的门电路G1,G2,⋯,GNG_{1},G_ {2},\cdots,G_ {N}G1,G2,,GN,协议的每个参与者PiP_{i}Pi独立的进行如下计算:假设lil_{i}lirir_{i}ri分别表示GiG_{i}Gi输入的密文,PiP_{i}Pi使用PET协议对二元组(li,ri)(l_{i},r_{i})(li,ri)Tiˉ\bar{T_{i}}Tiˉ中的每一行的前两项进行比较。

如果PET(li,Tiˉ[u,1])=1PET(l_{i},\bar{T_{i}}[u,1])=1PET(li,Tiˉ[u,1])=1PET(ri,Tiˉ[u,2])=1PET(r_{i},\bar{T_{i}}[u,2])=1PET(ri,Tiˉ[u,2])=1,则 GiG_{i}Gi的输出应该是Tiˉ[u,3]\bar{T_{i}}[u,3]Tiˉ[u,3]PiP_{i}Pi分别对u=1,2,3,⋯u=1,2,3,\cdotsu=1,2,3,进行比较,直到发现匹配的一行为止。

(6)输出阶段

计算完GNG_{N}GN后,PiP_{i}Pi得到了ONO_{N}ON,即GNG_{N}GN的输出,这个输出结果也是fff的输出结果。所有协议的参与者PiP_{i}Pi共同解密ONO_{N}ON,即可得到正确的计算结果。

如果参与者PiP_{i}Pi提供了错误的输入,即该参与者所提供的输入密文不对应任何一个有效的位,则匹配一个Tiˉ\bar{T_{i}}Tiˉ就会找不到匹配的行,由此可发现PiP_{i}Pi提供了错误的输入。其他参与者发现PiP_{i}Pi有欺诈行为后,可将PiP_{i}Pi驱逐出协议的执行,有正确性行协议的参与者一起重新执行协议。Mix-Match 协议的安全性在很大程度上依赖于混合网络的安全性。

Mix-Match协议可以比较容易地扩展到非二进制门电路的形式,如果GiG_{i}Gijjj个输入,则GiG_{i}Gi对应的逻辑表的输人部分也有jjj列,相应的, TiT_{i}Ti应该有2j2^{j}2j行。如果GiG_{i}Gi需要不止一个输出,则扩展GiG_{i}Gi对应的逻辑表TiT_{i}Ti,使TiT_{i}Ti的输出部分具有多个值即可。如果 CfC_{f}Cf需要多个值的输出,则只需简单地将最后的若干门电路GN−k′,GN−k+1′,…,GNG_{N-k^{\prime}},G_{N-k+1'}, \ldots, G_{N}GNk,GNk+1,,GN的输出作为CfC_{f}Cf的输出,在输出阶段进行多次共同解密即可。

使用Mix-Match的协议所需要传输的信息量较少,广播传输的信息量是O(nN)Ο(nN)O(nN),其中nnn是协议参与者的数量,NNN是需要计算的函数被表示为门电路之后电路中门的数量。

4. 百万富翁问题的Mix-Match解决方案

问题描述

Alice拥有财富为A,Bob拥有财富为B,其中A=a1a2,B=b1b2A=a_1a_2,B=b_1b_2A=a1a2,B=b1b2,Alice与Bob需要在不泄露A,BA,BA,B的前提下,计算F(A,B)F(A,B)F(A,B)F(A,B)={0ifA=B1ifA>B2ifA<BF(A,B)= \begin{cases} 0 \;\;\; if \; A=B \\ \\1 \;\;\; if \; A>B \\ \\2 \;\;\; if \; A<B \end{cases}F(A,B)=0ifA=B1ifA>B2ifA<B

(1)构建门电路

F(A,B)F(A,B)F(A,B)可以通过包含3个门G1,G2,G3G_1,G_2,G_3G1,G2,G3的两层门电路来构造。其中G1,G2G_1,G_2G1,G2构成第一层,G1G_1G1的输入为a1,b1a_1,b_1a1,b1,输出为o1o_1o1G2G_2G2的输入为a2,b2a_2,b_2a2,b2,输出为o2o_2o2G3G_3G3构成第二层,输入为o1,o2o_1,o_2o1,o2,输出为F(A,B)F(A,B)F(A,B)

在这里插入图片描述
(2)生成逻辑表

G1,G2,G3G_1,G_2,G_3G1,G2,G3生成逻辑表T1,T2,T3T_1,T_2,T_3T1,T2,T3(包含所有输入及对应输出),其中o1,o2o_1,o_2o1,o2的输出逻辑与F(A,B)F(A,B)F(A,B)一致。oi(i=1,2)={0ifai=bi1ifai>bi2ifai<bio_i(i=1,2) = \begin{cases} 0 \;\;\; if \; a_i=b_i \\ \\1 \;\;\; if \; a_i>b_i \\ \\2 \;\;\; if \; a_i<b_i \end{cases}oi(i=1,2)=0ifai=bi1ifai>bi2ifai<bi针对逻辑表T1,T2,T3T_1,T_2,T_3T1,T2,T3,需要对其进行编码,确保每组输入都是被唯一定义的。编码规则如下:

LiL_iLiLi′{L_i}'LiRiR_iRiRi′{R_i}'RiF(A,B)F(A,B)F(A,B)e(F(A,B))e(F(A,B))e(F(A,B))
010407
121518
232629

如,针对G1G_1G1的输入a1=0,b1=0a_1=0,b_1=0a1=0,b1=0,对应表中的Li=0,Ri=0L_i=0,R_i=0Li=0,Ri=0将会被分别编码为Li′=1,Ri′=4{L_i}'=1,{R_i}'=4Li=1,Ri=4。因此针对a1=0,b1=0a_1=0,b_1=0a1=0,b1=0,将其转换为对应编码的乘积1×4=41\times 4 =41×4=4

在这里插入图片描述
(3)输入阶段

Alice与Bob使用秘密分享方案分享系统的私钥,系统的公钥是公开的。并将自己的输入A=a1ab,B=b1b2A=a_1a_b,B=b_1b_2A=a1ab,B=b1b2使用公钥随机加密,广播加密结果(或贴上公告牌)。

(4)混合阶段(Mix)

使用MN对T1,T2,T3T_{1},T_{2},T_{3}T1,T2,T3进行混合,隐秘,随机置换,输出盲表T1ˉ,T2ˉ,TNˉ\bar{T_{1}},\bar{T_{2}},\bar{T_{N}}T1ˉ,T2ˉ,TNˉ

(5)匹配阶段(Match)

Alice与Bob使用PET协议将加密的输入与混合后的逻辑表进行比较,依次计算所有的门电路,即得到对应的输出。

(6)输出阶段

Alice与Bob然后共同解密得到结果。


http://www.ppmy.cn/news/35649.html

相关文章

计算机视觉知识点(一)——交并比(IoU)及其若干改进

交并比&#xff08;IoU&#xff09;前言IoU公式及示意图IoU Loss缺点GIoU Loss公式及示意图缺点DIoU公式及示意图CIoU前言 目标检测是一个常见的计算机视觉任务&#xff0c;在目标检测任务中&#xff0c;交并比作为评判检测框的标准具有很重要的意义&#xff0c;在实际的应用中…

AI真的快让我们失业了,从ChatGPT到Midjourney

参考文章&#xff1a; https://mp.weixin.qq.com/s/3RdHPPhYgDfB6KY6Y9Sk2A跟AI有关的新闻&#xff0c;一个接着一个。前一天你还和往常一样进入梦乡&#xff0c;第二天醒来就能被新的AI新闻“炸弹”震得心惊。 以ChatGPT为代表的AI语言模型&#xff0c;以Midjourney为代表的…

node-HTTP协议

文章目录一. 概念二. 请求报文的组成三.HTTP请求行四.HTTP请求头五.HTTP的请求体六.响应报文的组成七.创建HTTP服务八.获取HTTP请求报文九.HTTP设置响应十.GET和POST请求的区别一. 概念 HTTP协议. 中文叫超文本传输协议; 是一种基于TCP/IP的应用层通信协议; 这个协议详细规定了…

如何使用MSF复现MS17-010漏洞?

MSF概述 Metasploit Framework(MSF)是一款开源安全漏洞检测工具&#xff0c;附带数千个已知的软件漏洞&#xff0c;并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程&#xff0c;被安全社区冠以“可以黑掉整个宇宙”之名。刚开始的Metasplo…

WPF 常用控件

WPF六种常用控件&#xff1a;布局控件、内容控件、带标题内容控件、条目控件、带标题条目控件和特殊内容控件(如:TextBox,TextBlock,Image等)。实例链接&#xff1a;WPF常用控件实例Window(窗体)Winodw窗体派生自ContentControl&#xff0c;有一个Content属性&#xff0c;里面可…

用于人工智能研究的开源Python微电网模拟器pymgrid(入门篇)

pymgrid是一个开源Python库&#xff0c;用于模拟微型电网的三级控制&#xff0c;允许用户创建或自行选择的微电网。并可以使用自定义的算法或pymgrid中包含的控制算法之一来控制这些微电网&#xff08;基于规则的控制和模型预测控制&#xff09;。 pymgrid还提供了与OpenAI Gy…

Linux硬链接与软链接

图示区别 硬链接 具有相同inode节点号的多个文件互为硬链接文件&#xff1b;删除硬链接文件或者删除源文件任意之一&#xff0c;文件实体并未被删除&#xff1b;只有删除了源文件和所有对应的硬链接文件&#xff0c;文件实体才会被删除&#xff1b;硬链接文件是文件的另一个入…

Linux->文件系统磁盘文件管理

目录 1 磁盘结构 2 逻辑抽象管理磁盘 2.1 逻辑抽象 2.2 管理磁盘 2.3 补充知识 3 软硬连接 1 磁盘结构 本篇的学习需要建立在大家在脑海中有一副磁盘的结构才能进行下去&#xff0c;所以我会以图解的方式为大家简单讲解一下&#xff0c;注&#xff1a;博主对这一部分并不是…