通用协议(二)

定义一个安全协议及其参数

Functionality and Protocol

协议与函数的定义
定义 f 为一个 m 方参与参与计算的函数,协议PI 为一个m方参与的协议在真实环境下。
对于一个真实的敌手A,它可以控制少数的参与方并且能够监听通信信道,定义 REAL(x) 为敌手在攻击这个协议是获得的输出消息 m 。
对于一个理想模型敌手A`,同样的它可以控制少数的参与方,并且定义IDEAL(x) 为在理想敌手攻击下由输出产生的输出。

我们定义,当协议PI能够安全的实现函数 f 在绝大多数的诚实方的情况下,如果对于任意的可能真实敌手控制少数参与方,存在一个可能的理想敌手, 可以控制一样的参与方,结果是REAL(x) 与 IDEAL(x) 计算不可区分。因此,安全意味着,少数族群的影响本质上仅仅受限于自己能够替换本地输入(在协议执行之前),替换本地的输出(在协议执行之后)。值得注意的是,在真实协议中,少数的参与方趋势还能获得一些信息,但是在安全协议中,少数的参与方什么都获得不到。

在这里我们限定使用的是非私有信道,但是就算是在私有信道中,敌手的设置仅仅也仅仅是在真实的环境下不同,因为在理想的模型中敌手本身也是什么也无法获得。例如对于一个消极的敌手,我们定义如下,在真实模型下,所有的参与方都应当遵循协议的执行,但是敌手可能会修改不诚实方的输出,根据他们所有的内部状态,相对而言,对于理想模型下,敌手不允许去修改不诚实方的输入,但是允许修改他们的输出。

另外,对于超过一半的参与方是不诚实的并且他们采用一种积极的敌手策略的情况下,大多数的计算功能都是不能实现的。这来源于一个不可能的结果,在两方计算中,没有方法能防止一方过早的终止执行。另一方面,安全多方计算在不诚实多数的情况下是安全的当且仅当过早终止协议不被认为是安全问题。

Another Example: Two-Party Protocols Allowing Abort

一个允许中断的两方协议
本质上对于一个两方协议来说,每一方都可以在协议执行时发起终止,特别是,在两方协议中,双方的输出也许都依赖于对方的输出,但是其中的一方一旦得到自己需要的内容,为了防止自己的内容泄露,就可以终止协议的执行。即使,在两方共同生成一个随机字符串这样的协议中也会存在这样的行为。因此在考虑存在积极敌手在两方安全计算中时,我们并不将这种情况考虑为违反安全的情况。所以,我们考虑一个理想模型,其中两方均有能力关闭可信方在任何时间点。

这个两方的理想模型如下:
1.每一方都能将自己的输入发送给可信方,但是不诚实的方可能会替换其中输入,或者说发送一个空的输入给可信方,这时认为发送空的内容就是终止这个协议。
2.当可信方收到这些内容从各个参与方之后,可信方决定相应的输出,然后将应当给与第一方的输出发送给第一方。
3.如果第一方是不诚实的,它就会命令可信方终止,这是显然的,因为不诚实的一方当然不想让诚实的一方获取相应输出。如果第一方是诚实的,那么它不做任何事情,可信方继续执行就好。如果继续执行,那么可信方发送第二方应得的输出给与第二方。
4.当收到来自可信方的输出时,诚实方将这个输出当做本地的输出,但是不诚实方可能会定义它的输出基于已知的所有内容(例如,初始化输出和它接受到的输出)。

一个两方计算允许中断被要求去模拟着个理想的模型,那就是说,安全被定义要求为任何可能的真实敌手,存在一个理想的敌手,控制一样的参与方,真实的概率集合和理想的概率集合是不可区分的,这意味着,每一方的有效故障在安全协议中被限制于他们的输入与选择中断协议的时刻,并且他们最开始输入的值不依赖于任何的一方。另一种处理提前中断的方法是,只考虑一方输出函数,即为每次输出值的内容都由一方来输出,则可以预防中断。

一个主要的定理

假设存在enhaced trapdoor permutations ,通用的安全多方计算在以下的三种模型下是可能的:
1.消极敌手,对于任意数量的不诚实参与方。
2.积极敌手,控制少量的参与方。
3.积极敌手,控制任何的坏的参与方,只要暂停执行不被认为是违反安全的。

在以上的所有例子中,敌手的计算能力是有界的并且是非适应的,另一方面,敌手可能会窃听到诚实方之间的通信(我们假设那这里不存在私有信道)。但是存在广播信道。

其他的定理

在不做任何计算机假设并且允许计算无界的敌手,但是假设存在私有信道,即为敌手不能获得任何的通信信息,通用的安全多方计算是可能的在下述的模型中:
1.消极的敌手,控制少数的参与方。
2.积极的敌手,控制少于三分之一的参与方。(如果储存在广播信道,则可以放宽到普通少数)
在这两种情况下,敌手都是适应性的。

通常的安全多方计算是可能对抗积极的适应性的移动敌手的。这个结果没有计算性假设,但是假设存在私有信道。

假设在RSA的困难性下,通用多方计算时可能的,允许适应性和积极的计算有界的敌手控制少于三分之一的参与方,我们假设是存在私有信道的。

An Extension and Efficiency Considerations

扩展和效率方面的考虑
Secure Reactive Computation 安全反应式的计算,这个概念比较重要,甚至在关于协议的高级主题例如UC安全中都是一个重要的概念。在上文中的结果都可以容易的扩展到一个反应式模型,每一方都与一个高等级的进程交互,高级流程自适应的像每个参与方提供一个输入的序列,然后期望从每个参与方收到相应的输出。也就是说,一个反应式的系统将会经历以下的迭代方式:
1.各方被给与输入在当前轮。
2.根据当前的输入,各方计算当前的轮数的输出。就是说第 j 轮的输出是被第 j 轮的输入确定的。

一个更通用的公式允许每轮的输出依赖于一天个全局的状态,全局的状态可能是可以更新的在每一轮。全局状态可能包括所有的输入和先前轮数的输出,也有可能只被个人所知晓。在一个安全反应式计算中,一个全局的状态可能被维护通过一个秘密共享的方式。

协议的效率分析
1.协议的通讯轮数
2.协议中交互的比特位数
3.协议在本地执行的时间

Construction Paradigms

构建范式
对于计算有界和非适应性敌手的构建模式,这个构建过程需要两个步骤:第一步,一个安全的协议对于消极的敌手提出一个安全协议(敌手控制任何数量的不诚实参与方),并且这个协议被编译成一个满足以下两种安全模式中主动对手模式中的安全性,即要么控制少数参与方,或者提前中断不影响安全性。回忆一下,在消极敌手模型中,所有的参与方遵循描述的协议,但是在执行结束后,敌手可能会修改不诚实方的输出根据执行过程中的内部状态。在后面我们提及的协议中是安全的对于消极的敌手存在消极的安全,或者对于积极的敌手存在积极的安全。

From Passively Secure Protocols to Actively Secure Ones

从消极安全的协议到积极的安全协议
此处将展示如何将一个消极安全的协议转换成一个对应主动安全的协议。通信模型在所有的协议中包括一个广播信道,
因为敌手无论如何都可以看到这些消息,对于主动安全协议,这些广播信道可以使用可验证的拜占庭协议来实现,因此
在标准的点对点模型中提供这样的模拟。我提及的可验证拜占庭协议典型的可以使用一个签名协议来实现,假设每一个部分都知道可验证的公钥。
对于转换本身而言,主要的思想是使用零知识协议来强制参与方以被动安全的形式来行动,我们需要确保每一方的独立行为(此处我认为应该特指的是输出问题),并且保证参与方的输入不能依赖于诚实的参与方输入。因此,一些初始化的步骤必须在模拟之前被执行,具体的被编译过的协议如下所示:

1.在原始协议的模拟之前,每一方提交他们输入(使用承诺协议)。进一步使用零知识证明他们每一方自己的输入,并且可以通过解承诺解开。这些零知识是按照顺序进行的,防止不诚信方的输出在一定程度上依赖诚信方的输出。
2.接下来所有的参与方联和生成一个随机的比特串,但是每个参与方仅仅知道自己为这个随机比特产生的输出但是每个参与方都能获得一个这个随机比特的承诺。这些参与方各自的产生的随机序列将被用在原始协议中。
3.进一步,当编译这个模型时,允许敌手去控制少数的参与方,每个参与方分享它自己的输入和随机输入用可验证的秘密共享协议。这保证了如果有参与方提现终止了协议,其他的参与方有能力恢复出整个秘密继续执行协议。
4.完成以上的这些步骤后,我们将继续转向新的协议模拟原始的协议,在每一步中,每一方都通过零知识证明来断言传送的消息是正确的,进一步,发送者的输入由它的承诺决定,它的随机输入也是一样的,因此下一条消息是已知的公开的字符串。发送方可以证明使用零知识证明他发送的消息确实是来源于原始协议。

总结来说,当参与方使用承诺协议,并且使用零知识证明证明自己的输入时,就可以完全证明他们的消息确实是来自于自己的,这个过程应该主要针对的就是积极敌手对于输出的攻击,在真实模型和理想模型下都适用。

以上内容参考《Foundations.of.Cryptography.Volume.2.Basic.Applications(Oded.Goldreich)》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章