阅读论文(Foundation of Garbled Circuits)
文章目录
一、往期回顾
混淆电路论文学习笔记——part1
part1已经简单介绍了混淆方案,电路,边际信息函数以及混淆方案的三个安全性质。接下来进一步介绍三个安全性质以及三个安全性之间的关系。
二、代码游戏
密码学安全性证明大多都是通过游戏归约的方式来进行证明的。因此这里先介绍一下代码游戏
游戏中一般包括三个可选程序,分别是初始化程序,交互程序,最终程序。
一般初始化程序最先执行,进行一系列初始化操作。并且它的输出(如果有输出的话)就是敌手 A \mathcal{A} A的输入(这个时候敌手可能正在和其他程序进行交互)。敌手可以进行产生问询。每次产生问询,交互程序就会启动,然后对敌手的问询进行答复。最终敌手给出一个输出,由最终程序来判断敌手是否在游戏中获胜。
三、隐私性、不经意性、认证性之间的关系
我们接下来从编码游戏的角度来理解这三个性质。下面所有游戏的初始化程序都是初始化一个挑战比特 b b b。最终程序都是检验敌手猜测的比特 b ′ b' b′和初始化的挑战比特是否一致。接下来我们详细说明其中的交互程序。
1.隐私性
关于隐私性,我们一共有两种定义方式,一个是不可区分角度(indistinguish),一个是模拟器角度(simulation)。
1.1、不可区分隐私性
我们首先说不可区分角度的交互程序
- proc p r v i n d ( f 0 , f 1 , x 0 , x 1 ) : prv_{ind}(f_0,f_1,x_0,x_1): prvind(f0,f1,x0,x1):
- if Φ ( f 0 ) ≠ Φ ( f 1 ) \varPhi(f_0)\neq\varPhi(f_1) Φ(f0)=Φ(f1) then return false
- if f 0 ( x 0 ) ≠ f 1 ( x 1 ) f_0(x_0) \neq f_1(x_1) f0(x0)=f1(x1) then return false
- if x 0 . l e n g t h ( ) ≠ f 0 . n x_0.length() \neq f_0.n x0.length()=f0.n then retuen false
- ( F , e , d ) ← G b ( 1 k , f b ) (F,e,d) \leftarrow Gb(1^k,f_b) (F,e,d)←Gb(1k,fb), X ← E n ( e , x b ) X \leftarrow En(e,x_b) X←En(e,xb)
- retuen ( F , X , d ) (F,X,d) (F,X,d)
代码解释: 这个不可区分角度隐私性游戏要求输入两对 f 0 , x 0 , f 1 , x 1 f_0,x_0,f_1,x_1 f0,x0,f1,x