zoukankan      html  css  js  c++  java
  • 混淆电路Garbled Circuit介绍

    混淆电路(Garbled Circuit)这个可得好好写写,一则这玩意儿确实有点抽象,每次说半天都未必能对一个程序猿讲明白,毕竟一堆只发乱码的参与者,怎么就得到了计算结果呢?然而密码学方法已经决定了,确实可以这么做。

    先明确一下混淆电路解决的是什么问题。通俗的说,就是一堆人各自拥有其隐私数据,他们想把这些数据合起来算点什么,但又不想把数据交给别人,混淆电路解决的就是此类问题。我们先来考虑一个经典问题——百万富翁问题。两个身价也就那么百来万的人觉得自己是富翁,他们在某会所里碰见,因为某种原因需要比个高下方能取得某种资格,但又觉得自己那些存款数目是多大秘密似的舍不得告诉别人,于是他俩遮遮掩掩地将数据拆散、打乱、加密,最后算出了结果并只解密结果。

    那么,我现在要说说混淆电路具体是如何工作的了。注意关键词“电路(circuit)”,我们知道可计算问题都可以转换为一个个电路,于是就有了加法电路、比较电路和乘法电路等等。当然,更复杂的计算过程,如深度学习等等,也是可以转换成电路的。一个电路是由一个个门(gate)组成的,比如与门、非门、或门、与非门等等。

    如上图所示,封面中的两个人Alice和Bob想要搞点事情,他们搞了个电路(比如比较电路,或者emmmm什么电路),电路里面有一些门,每个门包括输入线(input wire)和输出线(output wire)。混淆电路就是通过加密和扰乱这些电路的值来掩盖信息的。在最经典的混淆电路中,加密和扰乱是以门为单位的。每个门都有一张真值表。比如下图就是与门的真值表和或门的真值表。下面就以与门为例来说明混淆电路的工作原理。

    Alice和Bob想计算一个与门。该门两个输入线 x 和 y 和一个输出线 z ,每条线有0和1两个可能的值。Alice首先给每条线指定两个随机的key,分别对应0和1。

    然后,Alice用这些密钥加密真值表,并将该表打乱后发送给Bob。加密过程就是将真值表中每一行对应的 x 和 y 的密钥加密 z 的密钥。这一加密+打乱的过程,就是混淆电路(garbled circuit)的核心思想。

    那Bob收到加密表后,如何计算呢?首先Alice把自己的输入对应的key发给Bob,比如Alice的输入是0,那就发 k_{0x} ,输入是1就发 k_{1x} 。同时把和Bob有关的key都发给Bob,也就是 k_{0y} 和 k_{1y}。然后Bob根据自己的输入挑选相关的key。由于Bob收到的这些key都是随机数,所以其实并没有任何有效信息泄露。Bob根据收到的 k_x 和自己的 k_y ,对上述加密表的每一行尝试解密,最终只有一行能解密成功,并提取出相应的 k_z 。

    Bob将kz发给Alice,Alice通过对比是 k_{0z} 还是 k_{1z} 得知计算结果是0还是1。由于整个过程大家收发的都是密文或随机数,所以没有有效信息泄露。

    以上就是混淆电路中单个门的计算方法。当然每个电路肯定是由多个门组成的,这时候需要将这些门都串起来。当然,这样的混淆电路方法有点复杂,现在大家已经研究出了很多优化方法,具体方法可以去看论文。

    [1] Kolesnikov, Vladimir, and Thomas Schneider. "Improved
    garbled circuit: Free XOR gates and applications." International Colloquium on
    Automata, Languages, and Programming. Springer, Berlin, Heidelberg, 2008.

    [2] Yao, Andrew Chi-Chih. "How to generate and exchange
    secrets." Foundations of Computer
    Science, 1986., 27th Annual Symposium on. IEEE, 1986.

  • 相关阅读:
    redis 笔记
    经验:什么影响了数据库查询速度、什么影响了MySQL性能 (转)
    对于线程安全的一些理解
    重要的接口需要做哪些检查(转)
    数据库分库分表思路
    代码优化:Java编码技巧之高效代码50例
    java new一个对象的过程中发生了什么
    java如何防止反编译(转)
    运用加密技术保护Java源代码(转)
    redis 工具包
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13312755.html
Copyright © 2011-2022 走看看