How to Play Any Mental Game [GMW86](上)
A completeness Theorem for Protocols with Honest Majority
本文主要是对[GMW86]的翻译和思考,说是翻译可能有不对的地方,说是思考可能有错误的地方,仅仅供有兴趣的同学参考,如有错误请批评指正!
Abstract
我们提出了一个PPT算法,被作为一个输入描述一个游戏在不完整的信息和任意的参与者,生成一个协议执行这个游戏并且不泄露任何参与方的信息在多数是诚实的条件下;
我们的算法自动的解决所有的多方协议在基于计算复杂性的密码学问题,这实际上是一个完整的理论对于这一类分布式协议在多数诚实的情况下. 从这意义上说,这个完整的理论是最佳的,如果多数的参与者都是不诚实的,那么一些协议问题是没有意义的。
Introduction
“图灵机游戏”:有n个不用的输入,x1,x2,…,xn; 在正确运行一个给定的图灵机M并尽最大的可能保证隐私;也就是说,他们想要计算y = M(x1,…,xn) 并且不揭露更多关于各个输入更多的超过从y上可以获得更多的内容;例如,如果图灵机计算了所有输入的和,那么任何其他参与者个人是不能学习到超过所有输入之和更多内容的;这里M可能是概率图灵机;在这个例子中,所有的参与者想要去认同一个单一的字符串y, 在一个正确的概率分布上,作为M的输出;
一个TM-game 的正确性和保密性可以借助一个TTP来解决,每个参与者简单的将自己的输入给与P,P将保密的运行图灵机M,然后公布M的输出;使得一个TM-game 能够运行本质上意味着正确性和保密性能够由这n个参与者来保证,并且不调用额外的可信第三方帮助;证明TM-game 是合理可行的覆盖了我们通用理论的所有困难和问题;
Preliminary Definitions
设计算法描述为:A(.) A(.,.) 其中A是算法,接受的参数为点号表示。
RV:定义为随机变量,在本文中我们假设随机变量是{0,1}* 的。实际上,我们只处理来自于概率算法的随机变量;
PA: 定义概率多项式算法集合。
Game Networks and Distributed Algorithm
在这个游戏中,形式上的,所有参与方组成的网络,每一个参与方都是概率多项式时间图灵机,每个机器有一个私有只读带,私有只写带,和一个私有读写带。所有的机器分享一个公用的只读输入带和一个公共的只写输出带。这个n个机器之间通信使用n*(n-1)个带,这个很容易理解,n个参与方,两两之间通信当然只有n(n-1)个带。机器i 向机器j 发送一条消息,通过i->j 使用一个特殊的带,只有i能写,并且其他带可以读。存在一个公共的时钟,定义了时间间隔,(这里有一个问题,在一个分布式系统中,到底是否该假定存在同一的时钟?或者说同一时钟这种技术在此处是否合适?)发送的消息从某个消息发送一定会在同一个时间戳收到消息。
一个概率多项式算法S,运行在一个游戏网络中,每个图灵机运行一个算法S的副本。此处定义PDA:为所有概率多项式分布式算法集合。定义S属于PDA,在运行S的网络中。存在公共输入,CI和自己的隐私输入x1,x2,…xn. 然后使用HS(x1,…xn,CI)定义了RV有公共的历史组成。这是所有的S发送的消息的集合。HS-i 定义了一个参与方的私有RV结果。其中参数列表中定义的是私有的发送的所有消息内容;OS-i 定义了RV包括第i个机器的私有输出。
Adversaries
我们考虑两种类型敌手:passive ones and malicious ones;
一个消极的敌手是一个机器,能够按照预先定义的程序执行,但是它发送的消息和它输出的消息是来源于原始程序的。一个消极的敌手可以被当做一个机器仅仅违反隐私规则。他们保持运行之前的定义的正确协议,但是也要站在另一边跑,他们最合适的多项式算法去尝试计算超过他们已经得到分享到的知识内容。在一个电子协议中,一个消极的敌手代表了大多数参与方的选择,因此不会想要去破坏结果而想知道谁选择了他们。
一个恶意的敌手,相对的,他偏离了本身预定的程序在任何可能的操作中,也就是说,允许机器替换已经存在的概率多项式算法。恶意敌手不仅仅能够违反隐私原则并且能够改变TM-game的输出;
我们允许机器在游戏网络中去变成敌手在“dynamic fashion”上,在协议的执行期间。我们也允许敌手机器在不被检测下进行合作;敌手机器不能被允许去监控好的机器的私有带和内部状态。我们相信恶意敌手的方案在所有的自然行为中时最有挑战性的其中密码学也许有所帮助。
转到开始的内容,我们展示所有的图灵游戏是可以运行的在任意多的消极敌手和小于一半的恶意敌手情况下;
Indistingguishability of Random Varables
在整篇的文章中,我们将仅仅只考虑 RVs U = {Uk} , k 取值与自然数集合;定义 U = {Uk} ;V = {Vk} 是RVs的两个集合,不可区分性基于以下的事实,当k的长度增加,Uk变得可以被VK替换在下面的情况下。一个简单的随机数来源于来源于上述两个集合中的某一个集合,然后用来进行评判(判断来源于那个集合)然后输出0,1如果是0 则来自于第一个集合,如果是1则来自于第二个集合。这是非常自然的可以说Uk变成了可以替换的通过Vk,当k足够长的时候,当k增加,对于任意的计算便捷判定将变得没有意义,这本质上不相关的这两个分布。
定义不可区分性:如下图所示:
Tm-games with passive Adversary
图灵游戏在消极敌手下的应用:
一个图灵游戏包括一对(M,1k)一个图灵机和一个安全参数,假设存在公共的输入在游戏网络中,所有的私有输入有一样的输入长度l, M的运行时间在l长度输入,小于k.
使得S属于PDA ; S是图灵游戏解决方案对于消极敌手,对于所有的图灵游戏给与公共输入和所有参与方的私有输入:x1,x2,…xn
对于上边三个定义的解释如下:
The agreement constraint : 所有的机器认同一个单一,公共的字符串作为S的输出。
The correctness constraint: 正确性确保了游戏的输出等于S的输出,如果是概率性的,则进一步存在不可区分。
The privacy constraint: 隐私保护的本质就是确保消极敌手能够获得的内容从自己得到的输入输出也能够获得。
4.1 A New and General Oblivious Transfer Protocol
Rabin 提出了一种OT方案,这是一个概率多项式时间算法,A知道一个素数的因式分解,B只知道这个素数本身,然后A向B发送信息,B收到这个因式分解内容的概率为二分之一,并且A不知道B是否收到了这个内容。很明显,Rabin的OT方案假设了因子分解是困难的。在这种假设下,我们提出了一个协议如下,如果A和B至少为消极敌手,正确的实现一个OT协议。这个协议可能是不能正常工作的(例如不在拥有一个正确的证明),如果A和B被允许是恶意的敌手,使用一个交互式证明系统例如[GMR] ,在[FMRW]中实现了一个协议能够正确的实现OT在一个简单的假设下(因子分解是困难的);Rabin 的方案被证明是有效的,并被应用在【Blumn】中。
一种更加通用和有用的OT为【EGL】,这是一个二传一协议,在这个框架中,A拥有两个消息m0 和 m1, 通过使用一个密码学系统E,计算C1=E(m1) ; C0=E(m0) ,然后将C0和C1发送到B;B选择其中的一个进行解密; A 2-1 OT 协议允许B读取其中的一个消息mi 但是A不知道B读取的是哪一条消息;这个协议达到了普遍性的正确性,对下文内容非常重要。EGL首先实现了一个2传1的OT协议使用公钥密码学系统。他们实现的优点是将OT的实现从代数设置中解放了出来。他们的协议在一定程度要求更强的假设,即是敌手是消极的。
本文提出了一个新的协议正确的实现了2传1的OT在消极敌手情况下。陷门置换的存在足以证明我们协议的正确性;
Trap-door and One-way function
陷门和单向函数;
陷门函数的定义在[GoMiRi] 中,我们形式化的定义一个陷门置换 f 短语定义如下:
- 给与一个整数k, 随机的选择一个置换f , 其中f以k为安全参数,存在额外的陷门信息,导致容易求逆;
- 简单的随机选取一个置换上的点;
- 在没有陷门信息时是极难求出函数f的逆;
陷门函数的一个特殊例子就是单向函数,这里存在置换满足上述三个属性,并且没有陷门信息存在;
Random bits in One-Way Permutations
我们的协议使用陷门函数隐藏一个随机比特Bf,这里Bf 是一个多项式时间可计算的布尔函数;
我们说{Bf}是一个随机的比特在函数族{f}中,如果所有预定的算法Alg, 输入f = fk 和 f(x). 输出在T(k) 步内出结果,对于Bf(x) 的猜测是正确的在概率e下,存在算法alg`, 输入f 和 f(x),输出x 在多项式时间下;
【这里的内容还有待商榷,我需要在琢磨下GMW87的随机比特定义】
GMW87 协议
A,B是概率多项式算法;
A的输入是一对比特(b0, b1)并且他们对应的加密内容为(E(b0),E(b1)),其中E是概率加密算法;这对加密后的内容是B的输入,额外的B选择一个私有的随机比特; 即使一些参与方是消极敌手,也满足以下的两个属性:
- B 智能读取一个加密内容;
- A不能预测B读取的是哪个内容;
协议步骤:
这个协议是满足上边提到的两个属性的:
(1)B 仅仅只能读取自己的内容;
(2)A不能确定B到底读取了什么内容;
PS1:这个协议只能抵抗消极的敌手,对于恶意的敌手还需要使用额外的方法,例如在第二步中,B是清楚所有发送内容的;
PS2:这里不用加密b0 和 b1; 在后边将会使用加密系统来防止恶意敌手行为;
PS3: 以上协议是针对一个比特的情况,所以任意的消息可以反复多次执行这个协议;