资源描述:
《第11章密码协议》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第11章密码协议概述密钥分配与密钥协商秘密共享身份识别零知识证明不经意传输习题防止重放攻击密钥确证这里TA不同于在线密钥分配中的TA,他只负责初始化时发放证书,以及必要时的纠纷处理,一般情况下的密钥协商过程不需要TA参与。每个用户的证书C(U)实际上是此用户的一个可信的(经可信第三方“盖章”的)验证签名算法。注:总假设证书发放时TA会验明身份,不存在冒充W无法伪造U和V的签名,因此不能成功实施中间人攻击实际上求密钥只需要将前面三式中的常数项相加即可u相当于是代表自己身份的密钥,不可泄露出去仍假设发放证书时不存在假冒。即保证证书中的v一定是A提供给TA的这
2、个证书说明:TA能保证(只有)真正的A有v的离散对数u识别思路?A向B证明他知道u的值零知识洞穴Quisquater和Guillou给出了一个非常形象的例子来解释零知识证明。在洞穴深处的位置C和位置D之间有一道门,只有知道秘密咒语的人才能打开它。假设P知道打开门的咒语,P想向V证明自己知道咒语,但又不想向V泄露咒语。P可以利用下列协议来达到这个目的:协议如下:①B选择p、q,计算n=pq;再选取满足的随机数a,将n和a发送给A。②A猜测a是模n的平方剩余或非平方剩余,并将结果告诉B。③B告诉A猜测正确或不正确,并将p、q发送给A④A检查p、q都是素数且n
3、=pq。显然,A猜中的概率是1/2。协议执行完后,A根据p、q可求出amodn的4个平方根(如果a是模n的平方剩余),以检查B是否在A猜测完后将结果做了修改。设A有一个秘密,想以1/2的概率传递给B,即B有50%的机会收到这个秘密,另外50%的机会什么也没有收到,协议执行完后,B知道自己是否收到了这个秘密,但A却不知B是否收到了这个秘密。这种协议就称为不经意传输协议。不经意传输1.基于大数分解问题的不经意传输协议设A想通过不经意传输协议传递给B的秘密是整数n(为两个大素数之积)的因数分解。这个问题具有普遍意义,因为任何秘密都可通过RSA加密,得到n的因数
4、分解就可得到这个秘密。协议基于如下事实:已知某数在模n下两个不同的平方根,就可分解n。协议如下:①B随机选一数x,将x2modn发送给A。②A(掌握n=pq的分解)计算x2modn的4个平方根±x和±y,并将其中之一发送给B。由于A只知道x2modn,并不知道4个平方根中哪一个是B选的x。③B检查第②步收到的数是否与±x在模n下同余,如果是,则B没有得到任何新信息;否则B就掌握了x2modn的两个不同的平方根,从而能够分解n。而A却不知究竟是哪种情况。显然,B得到n的分解的概率是1/2。2.基于离散对数问题的不经意传输协议下一个不经意传输协议是非交互的,
5、其中B不向A发送任何消息。设系统中所有用户都知道一个大素数p、GF(p)-{0}的生成元g和另一大素数c,但无人知道c的离散对数。假定计算离散对数是不可行的,因此从gxmodp和gymodp无法计算gxymodp。协议中所有运算都在GF(p)中进行。B按如下方式产生公开的加密密钥和秘密的解密密钥:随机选取一个比特i和一个数x(0≤x≤p-2),计算yi=gx,y1-i=c(gx)-1,以(y0,y1)作为公开的加密密钥,以(i,x)作为秘密解密密钥。由于B不知道c的离散对数,所以他知道y0和y1两者其中一个的离散对数,而A无法知道y0和y1中哪个离散对数
6、是B已知的。A可通过方程y0y1=c来检查B的公开加密密钥是否正确。协议中设A的两个秘密s0和s1是二进制数,是异或运算,若进行异或运算的两个数不等长,可在较短数前面补0。协议如下:①A在0到p-2之间随机取两个整数k0、k1,对j=0,1计算将c0,c1,m0,m1发送给B。②B用自己的秘密解密密钥计算。由于B不知道y1-i的离散对数,所以无法得到d1-i和s1-i。注:本协议相当于“二传一”不经意传输。若其中一个为有效秘密一个为空,则成为前一种不经意传输。3.“多传一”的不经意传输协议设A有多个秘密,想将其中一个传递给B,使得只有B知道A传递的是哪
7、个秘密。设A的秘密是s1,s2,…,sk,每一秘密是一比特序列。协议如下:①A告诉B一个单向函数f,但对f-1保密。②设B想得到秘密si,他在f的定义域内随机选取k个值x1,x2,…,xk,将k元组(y1,y2,…,yk)发送给A,其中③A计算zj=f-1(yj)(j=1,2,…,k),并将zjsj(j=1,2,…,k)发送给B。④由于zi=f-1(yi)=f-1(f(xi))=xi,所以B知道zi,因此可从zisi获得si。由于A不知k元组(y1,y2,…,yk)中哪个是f(xi),因此无法确定B得到的是哪个秘密。然而如果B不遵守协议,他用f对多个
8、xj求得f(xj),就可获得多个秘密。因此总假定这种“多传一”协议中所有用户都遵