什么是混淆电路?
是姚期智针对百万富翁问题提出的解决方案,目前应用于隐私计算->多方安全计算中
富翁Alice拥有i亿资产,富翁Bob拥有j亿资产,两人资产都在0-10亿之间,双方都希望在彼此均不公布各自金钱数量的情况下,如何知道谁更富有?
假设Alice有4亿,Bob有2亿
不经意传输Oblivious Transfer
发送方可以向接收方传输一系列信息中的某一部分,接收方可以正确收到信息,但不知道信息属于整体的哪个部分 基本三种:1/2概率收到、1-2OT协议、1-NOT协议 实现方式很多,常用rsa来实现(大数分解NPC问题)
1-2OT协议
描述:
消息提供方Alice有两个消息M0和M1,只想提供给Bob其中一个,并且不会泄露另一个
消息接收方Bob想要获取其中一个消息(假设为M1),但不想让Alice知道自己想获取的是哪一个
示例假设:
1-2OT假设Alice有两个消息M0、M1,Bob想获取M1
假设M1、M0长度相同,要求随机数r长度和两者相同
流程
什么是混淆电路?
所有可计算的函数问题都可转换为不同的电路,加法电路、乘法电路、移位电路、选择电路等。而电路本质上由门(gate)组成,逻辑门包括与门、非门、或门、与非门等。混淆电路把这些门的真值表进行加密和打乱来掩盖原本的逻辑信息信息。
基本步骤
下面我们单看XOR门的混淆电路过程(可逆运算不能达到隐私计算效果)
XOR的真值表为
Alice | Bob | out |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Alice首先使用字符串替换真值表,然后使用输入作为对称加密密钥加密输出
Alice | Bob | out |
---|---|---|
a1 | b1 | ENCa1b1(r0) |
a1 | b0 | ENCa1b0(r1) |
a0 | b1 | ENCa0b1(r1) |
a0 | b0 | ENCa0b0(r0) |
数据传递
结果计算
评估:对于单个逻辑门,显然没有达到隐私计算的目的,混淆电路也一般用于不可逆的计算!