替换成1 比如电路图中左上方的 XOR 门的输入是 a0、c0 输出是 d 对应的 Truth Table 可以做如下转换
第三步
Alice 对每一个替换后的 Truth Table 的输出进行两次对称密匙加密(即加密和解密的密匙相同) 加密的密匙是 Truth Table 对应行的两个输入 比如 Truth Table 的第一行是
第四步
Alice 对第三步加密过后的 Truth Table 的行打乱得到 Garbled Table 所以 Garbled Table 的内容和行号就无关了 混淆电路的混淆二字便来源于这次打乱
Step 2: Alice 和 Bob 进行通信
第一步
Alice 将她的输入对应的字符串发送给 Bob 比如 a0=1 那 Alice 会发送
第三步
Alice 将所有逻辑门的 Garbled Table 都发给 Bob 在这个例子中,一共有四个 Garbled Table
Step 3: Bob evaluate 生成的混淆电路
Alice 和 Bob 通信完成之后 Bob 便开始沿着电路进行解密 因为 Bob 拥有所有输入的标签和所有 Garbled Table 他可以逐一对每个逻辑门的输出进行解密 在这个例子中,假设 Bob 拥有的输入标签为
双方就能获得电路输出的逻辑值了
Zero-Knowledge Proof (零知识证明)
零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下 使验证者相信某个论断是正确的
洞穴里有一个秘密,知道咒语的人能打开 C 和 D 之间的密门 但对任何人来说,两条通路都是死胡同 假设 P 知道这个洞穴的秘密 她想对 V 证明这一点,但她不想泄露咒语 下面是她如何使 V 相信的过程 1、V站在A点 2、P一直走进洞穴,到达C或者D点 3、在P 消失在洞穴中之后 V走到B点 4、V向P 喊叫,要她: 从左通道出来,或者从右通道出来 5、P答应 若有必要则用咒语打开密门 6、P和V重复步骤(1)-(5)多次 若多次重复中 若每次P都从V要求的通道中出来 则能说明P确实知道咒语 并且V不知道咒语的具体内容