covert security:秘密安全,介于半诚实安全和恶意安全之间。秘密安全的威慑因子低,不足以大概率的制止想要作弊的参与者。因为诚实方在抓到有作弊者时,不能出具有说服力的证书来证明作弊者的作弊行为。使用零知识证明协议来证明作弊行为可能会泄露自己的秘密输入。
1.Signed Oblivious Transfer.可签名的不经意传输。Sender输入两个消息m0,m1以及用于签名的私钥sk,Receiver输入一个比特b。在协议的最后,Receiver收到消息mb和对mb的签名(mb,Sig_sk(b,mb)),Sender没有收到任何消息。
2.秘密安全在最初被提出来时有三个定义,这三个定义有层次结构,最高层的是strong explicit cheat formulation(强显示欺骗方程)
3.秘密安全中,恶意敌手可能存在的作弊行为
a.Constructing bad circuits:不根据双方商量好的函数构造混淆电路。那如何让Sender构造正确的混淆电路呢?
--->解决办法
Sender构造s个混淆电路,Receiver选择其中s-1个混淆电路进行检测,如果检测出恶意电路,则说明Sender作弊,否则继续执行协议。
---->问题
上述方法存在一个问题:当Receiver确定好检测哪些混淆电路时,Sender明白自己可能会被抓到作弊,于是提前终止协议。那如何防止Sender提前终止协议呢?
------>解决办法
采用1-out-of-s signed OT来得到Sender对混淆电路的签名。这些签名可以用于向第三方证明Sender作弊。
b.Selective failure attack on P2’s input values:Sender通过猜测Receiver的输入,来获取Receiver的输入。具体方法:Sender猜测Receiver的输入为g,并且设置k(1-g)=r,其中r是随机选择的数。如果Receiver的输入b=g话,则Receiver会得到正确的标签,如果b!=g的话,Receiver收到一个随机数r,Receiver就会发现Sender作弊,并终止协议。Sender根据Receiver的反应来判读自己的猜测是否正确,无论哪种情况,Sender都能够得到Receiver的正确输入。
----->解决办法
和问题a的解决办法类似,当Receiver想输入b时,它会先选择m-1个随机的比特,总共有m个输入,如果m-1个输入得到的结果没有问题,说明Sender没有作弊。Sender正确猜测m-1个输入的概率=(1/2)^(m-1),也是作弊成功的概率,因此Receiver成功抓到Sender作弊的概率为1-(1/2)^(m-1)
同样把OT换成signed OT,得到Sender对混淆电路的签名,防止Sender提前终止协议。