混淆电路论文学习笔记——part2

Posted 艰难前行的李同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了混淆电路论文学习笔记——part2相关的知识,希望对你有一定的参考价值。

阅读论文(Foundation of Garbled Circuits)

一、往期回顾

混淆电路论文学习笔记——part1
part1已经简单介绍了混淆方案,电路,边际信息函数以及混淆方案的三个安全性质。接下来进一步介绍三个安全性质以及三个安全性之间的关系。

二、代码游戏

密码学安全性证明大多都是通过游戏归约的方式来进行证明的。因此这里先介绍一下代码游戏
游戏中一般包括三个可选程序,分别是初始化程序,交互程序,最终程序。
一般初始化程序最先执行,进行一系列初始化操作。并且它的输出(如果有输出的话)就是敌手 A \\mathcal{A} A的输入(这个时候敌手可能正在和其他程序进行交互)。敌手可以进行产生问询。每次产生问询,交互程序就会启动,然后对敌手的问询进行答复。最终敌手给出一个输出,由最终程序来判断敌手是否在游戏中获胜。

三、隐私性、不经意性、认证性之间的关系

我们接下来从编码游戏的角度来理解这三个性质。下面所有游戏的初始化程序都是初始化一个挑战比特 b b b。最终程序都是检验敌手猜测的比特 b ′ b' b和初始化的挑战比特是否一致。接下来我们详细说明其中的交互程序。

1.隐私性

关于隐私性,我们一共有两种定义方式,一个是不可区分角度(indistinguish),一个是模拟器角度(simulation)。

1.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):
  2. if Φ ( f 0 ) ≠ Φ ( f 1 ) \\varPhi(f_0)\\neq\\varPhi(f_1) Φ(f0)=Φ(f1) then return false
  3. 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
  4. 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
  5. ( 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) XEn(e,xb)
  6. 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,x1,并且要求 f 0 ( x 0 ) = f 1 ( x 1 ) f_0(x_0) = f_1(x_1) f0(x0)=f1(x1)。第5行中下标b就是初始化程序选择的挑战比特,为0或者1。
程序理解: 这个游戏就是判断敌手是否能够通过返回的 ( F , X , d ) (F,X,d) (F,X,d)来判断该输出来自于哪一个 f , x f,x f,x

1.2、模拟隐私性

在模拟隐私性游戏中,有一个模拟器 ( S ) \\mathcal(S) (S),模拟器的功能就是通过安全参数 k k k f f f泄露的信息 Φ ( f ) \\varPhi(f) Φ(f),和计算结果 y y y来获得一个假的 ( F , X , d ) (F,X,d) (F,X,d).

  1. proc p r v s i m ( f , x ) : prv_{sim}(f,x): prvsim(fx):
  2. if x . l e n g t h ( ) ≠ f . n x.length() \\neq f.n x.length()=f.n,then return false.
  3. if b=1 then ( F , e , d ) ← G b ( 1 k , f ) (F,e,d)\\leftarrow Gb(1^k,f) (F,e,d)Gb(1k,f) X ← E n ( e , x ) X\\leftarrow En(e,x) XEn(e,x)
  4. else ( F , X , d ) ← S ( 1 k , X , d ) (F,X,d)\\leftarrow S(1^k,X,d) (F,X,d)S(1k,X,d)
  5. return (F,X,d).

程序理解: 该程序表示敌手输入 f , x f,x f,x,然后获得一个三元组 ( F , X , d ) (F,X,d) (F,X,d)。敌手能不能猜出结果是不是对应输入的 f , x f,x f,x

2、不经意性(obliviousness有的博客把这个翻译为茫然性)

2.1、不可区分不经意性

  1. proc o b v i n d ( f 0 , f 1 , x 0 , x 1 ) : obv_{ind}(f_0,f_1,x_0,x_1): obvind(f0,f1,x0,x1):
  2. if Φ ( f 0 ) ≠ Φ ( f 1 ) \\varPhi(f_0)\\neq\\varPhi(f_1) Φ(f0)=Φ(f1) then return false
  3. 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
  4. ( F , e , d ) ← G b ( 1 k , f b ) (F,e,d) \\leftarrow Gb(1^k,f_b) (F,e,d)Gb(1k,fb

    以上是关于混淆电路论文学习笔记——part2的主要内容,如果未能解决你的问题,请参考以下文章

    速通版吴恩达机器学习笔记Part2

    并发编程(学习笔记-Java线程)-part2

    Unity2019.4.16f1c1 2d学习笔记 part2

    《统计学:从数据到结论》学习笔记(part2)--总体是人们所关心的所有个体的集合

    集成电路模拟版图入门-版图基础学习笔记

    集成电路模拟版图入门-版图基础学习笔记