安全多方计算PPT推荐.ppt
《安全多方计算PPT推荐.ppt》由会员分享,可在线阅读,更多相关《安全多方计算PPT推荐.ppt(23页珍藏版)》请在冰豆网上搜索。
一天,他们想了解平均工资,但不想让任何人知道别人的工资,又没有仲裁员,可用如下协议来解决:
4,Alice生成一个随机数,将其与自己的工资相加,用Bob的公钥将结果加密,然后发送给Bob.Bob用自己的私钥解密从Alice收到的信息,加进自己的工资(即在Alice的工资与随机数之和上加上Bob的工资),然后用Carol的公钥加密结果,然后发送给Carol.Carol用自己的私钥解密从Bob收到的信息,加进自己的工资,然后用Dave的公钥加密结果,然后发送给Dave.,5,Dave用自己的私钥解密从Carol收到的信息,加进自己的工资,然后用Alice的公钥加密结果,然后发送给Alice.Alice用自己的私钥解密从Dave收到的信息,将其减去原先的随机数,就得到了工资总和。
Alice将总工资除以人数(4),即得到平均工资,然后宣布结果。
6,关于此协议的漏洞的分析,该协议假定每个人都是诚实的。
如果参与者谎报了他们的工资,则这个平均值将是错误的。
更严重的是,Alice可以对其他人谎报结果。
因为在中没有人知道她可以从结果中减去她喜欢的数而不是她原先选取的那个随机数。
7,阻止Alice的这种行为,可采用位承诺方案要求Alice传送她的随机数。
位承诺方案是设计解决下面这个问题的协议:
A向B承诺一个预测,但到某个时间以后才能揭示她的预测,另一方面B想确信在A承诺了她的预测后,不再改变她的预测。
经常利用对称密码学、单向函数、伪随机序列发生器设计位承诺方案。
但当Alice在协议结束时泄漏了她的随机数,Bob就可以知道Alice的工资。
8,协议2百万富翁问题,Alice知道一个整数i,Bob知道一个整数j,Alice和Bob都想知道是ij,还是ij,但Alice和Bob都不希望泄漏他们各自知道的整数。
这种保密的多方计算的特殊情况,有时称作姚氏百万富翁问题。
如假定i和j的取值范围是从1到100,Bob有一个公开密钥和私人密钥。
协议如下:
9,Alice选择一个大随机数x,并用Bob的公开密钥加密:
c=EkB(x)Alice计算c-i,并将结果发送给Bob.,10,Bob计算下面的100个数:
yu=DkB(c-i+u),其中1u100.他选择一个大的随机素数p(Bob不知道x,但Alice能容易地告诉他x的大小),然后计算下面的100个数:
zu=yumodp然后他对所有的uv验证:
|zu-zv|2并对所有的u验证:
0zup-1如果不成立,Bob就选择另一个素数并重复试验。
11,Bob将以下数列发送给Alice:
z1,z2,zj,zj+1+1,zj+2+1,z100+1,pAlice检查这个数列中的第I个是否同余x模p.如果同余,她得出的结论是ij;
如果不同余,她得出的结论是ij.Alice把这个结论告诉Bob.,12,注,Bob在中所作的验证是为了保证在中产生的数列中没有任何一个数出现两次,否则,如果za=zb,Alice就将知道ajb.该协议的一个缺点:
Alice在Bob之前就获悉了计算的结果。
没有什么能阻止她完成该协议到,然后在拒绝告诉Bob结果,甚至在有可能对Bob撒谎。
13,该协议的一个例子,假设他们使用RSA.Bob的公开密钥是7,私人密钥是23,n=55=115.Alice的秘密值i是4,Bob的秘密值j是2(假设i和j的可能取值仅仅为1,2,3,4)。
Alice选择x=39,而c=EkB(39)=19Alice计算c-i=19-4=15,并把15发送给Bob.,14,Bob计算下面4个数:
y1=DkB(15+1)=26y2=DkB(15+2)=18y3=DkB(15+3)=2y4=DkB(15+4)=39他选择p=31,并计算z1=26mod31=26z2=18mod31=18z3=2mod31=2z4=39mod31=8他完成所有的验证,证明该数列是好的。
15,Bob以下述顺序把这个数列发送给Alice:
26,18,21,81,31=26,18,3,9,31Alice检查这个数列中的第4个数是否同余x模p.因为939mod31,所以ij.Alice把结果告诉Bob.,16,该协议可被用来创建更复杂的协议。
一群人能够在一个计算机网络上进行秘密拍卖。
他们将自己安排在逻辑组中,并通过单一的两两比较来确定出价最高的那个组。
为了防止人们在拍卖中间改变自己的出价,还应当使用某类位承诺协议。
类似的应用还有议价、谈判和仲裁。
17,缺点,该协议不能防止主动欺骗者。
没有办法能防止Alice(或Bob)谎报他们知道的数。
如果Bob是一个荫庇执行这个协议的计算机程序,那么Alice通过反复执行这个协议可以知道Bob知道的数。
18,协议3,Alice喜欢玩具熊,Bob喜欢大理石桌子,他们对自己的癖好特别难为情,但却想找一个有共同生活风格的伴侣。
保密的多方计算约会服务(SecureMultipartyComputationDatingService)为此设计了一个协议。
19,协议的工作过程,使用一个单向函数,Alice将她的癖好m,hash得到一个7位数字的字符串h(m)。
Alice用这7位数字作为一个电话号码,拨号,给Bob留下一条消息。
如果没有人回答或电话号码无效,Alice给这个电话号码申请一个单向函数直到她找到一个与她有相同癖好的人。
20,Alice告诉Bob她为她的癖好申请一个单向函数的次数。
Bob用了和Alice相同的次数hash他的癖好。
他也用这7位数字作为电话号码,询问其他人是否有留给他的消息。
21,注意:
Bob能进行选择明文攻击。
他可以hash一般的癖好并拨所得的电话号码,查找给他的消息。
只有在不可能得到足够多的明文消息的情况下这个协议才真正执行。
22,保密电路计算,保密多方计算的一般性问题也称为保密电路计算(securecircuitevaluation)Alice输入为a,Bob的输入为b.他们希望一起计算一些普通函数f(a,b),但Alice不知道Bob的输入情况,Bob也不知道Alice的输入情况。
在此,Alice和Bob可以创造任意的布尔电路,这个电路接受来自Alice和Bob的输入并产生一个输出。
23,协议如下,Alice可以键入她的输入且Bob不能知道它。
Bob可以键入他的输入且Alice不能知道它。
Alice和Bob都能计算出这个输出,双方确信输出是正确的且没有一方能篡改它。