理论教育 安全协议第2版:身份零知识证明

安全协议第2版:身份零知识证明

时间:2023-10-28 理论教育 版权反馈
【摘要】:假设P为被认证方,V为认证方,我们把合法用户的个人信息看作是P的秘密,P通过零知识证明向V证实自己的身份就是零知识身份证明。下面我们举一个零知识证明的例子。该过程是对身份的零知识证明的一种攻击。当Alice准备结账并对Bob证明其身份时,Bob立刻发信号给Carol让她准备行动,此时的Carol早已挑好了许多名贵的钻石,于是她也唤来Dave准备对其证明她的身份。

安全协议第2版:身份零知识证明

假设P为被认证方,V为认证方,我们把合法用户的个人信息看作是P的秘密,P通过零知识证明向V证实自己的身份就是零知识身份证明

下面我们举一个零知识证明的例子。选定一个数n,作为一个中心系统的公钥,其中n=p×q,p、q是两个大素数,并且只有中心系统知道它们的信息。对于每一个申请该项服务的用户,系统产生一个j,再加上用户的身份信息I(包括姓名、住址、最喜欢的电视节目等),经过一个单向函数f,使Y=f(I,j)为mod n的二次剩余。系统计算出Y最小的平方根S,并把它发送给用户。以后我们将把S作为用户的身份证明。

如果Alice想要向Bob证明她的身份,她可以履行如下协议。首先,她告诉Bob她的身份信息I和j,Bob计算出与I和j相对应的Y值。然后,按如下步骤执行:

(1)Alice选取两个随机数R1和R2,R1 R2=S(mod n),Alice计算X1=R21(mod n)和X2=R22(mod n),并将X1和X2发给Bob。

(2)Bob检查X1 X2=Y(mod n),Bob随机选择X1或X2发给Alice并要求提供平方根。

(3)Alice发送平方根给Bob,Bob验证该平方根的正确性。

为了减少Alice欺骗的可能性,我们可以将该过程重复多次以确保其安全性。接下来,我们看一下攻击身份的零知识证明的一些例子。(www.daowen.com)

1.象棋大师问题

一个有预谋的用户Alice想使其他人相信她是一个象棋高手,她可以通过这样的方法来实现:她找到两位世界顶尖级象棋高手Bob和Carol,向他们提出挑战,并定于同一时间、在同一地点的不同房间和他们进行比赛。在比赛的过程中,每当Bob或Carol下一步棋,Alice就跑到隔壁的房间如法炮制,走同一步棋。也就是说,尽管Bob和Carol以为他们都在和Alice对弈,但实际的情况是Bob和Carol在彼此对弈。无论最后是Bob和Carol哪个赢,Alice总会是某一局棋的得胜者,从而向其他人证明她的确是一名象棋高手。该过程是对身份的零知识证明的一种攻击。想要解决该问题,我们可以强迫下棋的双方一直坐在各自的位置上,直至对弈结束。

2.黑手党骗局

Alice正在Bob(黑手党)的餐厅吃饭。此时,Carol(黑手党)按照计划来到一家Dave开的高档珠宝店买东西。Bob和Carol随时可以通过一条秘密的无线电路保持联系,而Alice和Dave都对即将到来的骗局一无所知。

当Alice准备结账并对Bob证明其身份时,Bob立刻发信号给Carol让她准备行动,此时的Carol早已挑好了许多名贵的钻石,于是她也唤来Dave准备对其证明她的身份。当Dave开始提问时,Carol用无线电把问题传给Bob,Bob则向Alice询问同样的问题,得到了答复后Bob再把答案通过无线电传给Carol。我们可以看出,其实是Alice在对Dave证明她的身份,并买了一些贵重的钻石。

防止这一骗局发生的一种方法是让所有的交易行为都在法拉第罩内进行,这样可以阻止所有的电磁辐射。另一种方法是使用一个很精确的时钟,规定协议中的每一步都必须在一个给定的时间内发生,这样就使得同谋者之间无法进行通信

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈