零知识证明

时间 : 17-10-15 评论 : 0 点击 : 302 次

“零知识证明”-zero-knowledge proof,是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。 在零知识证明中,个人(或器件)可以在不泄漏任何秘密的情况下,证明他知道这个秘密。

举例: A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法: 1、A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。 2、B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。 方法2属于零知识证明,好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。

零知识证明不是确定性证明,无法100%保证是正确的,属于概率性证明,不排除证明者欺骗验证者,但是可以通过一些手段将欺骗的概率降低到接近于0。比如以上例子中,A如果没有房间钥匙,A拿出的不是房间的东西给B,而是另外一个跟房间内的东西一模一样的东西给B,则欺骗了B。可以通过一些手段保证A只能从房间里拿东西,从而减少被A欺骗的可能性。

零知识证明在密码学中有广泛的应用,比如不对称加密,不对称加密是指加密秘钥和解密秘钥不一样的加密算法,验证者持有公钥,证明者用私钥加密一串字符,如果验证者用公钥能够成功解密,则表示证明者确实拥有私钥。

安全

零知识证明:等您坐沙发呢!

发表评论