资源描述:
《第9章 密码协议(不经意传输和掷硬币协议)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章密码协议协议协议是一系列步骤它包括两方或多方设计它的目的是要完成一项任务2协议特点协议中的每人都必须了解协议,并且预先知道所要完成的所有步骤。协议中的每人都必须同意遵循它。协议必须是不模糊的,每一步必须明确定义,并且不会引起误解。协议必须是完整的,对每种可能的情况必须规定具体的动作。3密码协议密码协议,有时也称作安全协议,是以密码学为基础的消息交换协议,其目的是在网络环境中提供各种安全服务。密码学是网络安全的基础,但网络安全不能单纯依靠安全的密码算法。安全协议是网络安全的一个重要组成部分,我们需要通过安全协议进行实体之间的认证、在实体之间安全地分配密钥或其它各种秘密、确认发送和接
2、收的消息的非否认性等。密码协议包含某种密码算法.参与该协议的伙伴可能是朋友和完全信任的人,或者也可能是敌人和互相完全不信任的人。在协议中使用密码的目的是防止或发现偷听者和欺骗.4协议的目的计算一个数值想共享它们的秘密部分共同产生随机序列确定互相的身份同时签署合同5对协议的攻击被动攻击主动攻击被动骗子主动骗子协议对被动欺骗来说应该是安全的合法用户可以发觉是否有主动欺骗69.5不经意传输协议设A有一个秘密,想以1/2的概率传递给B,即B有50%的机会收到这个秘密,另外50%的机会什么也没有收到,协议执行完后,B知道自己是否收到了这个秘密,但A却不知B是否收到了这个秘密。这种协议就称为不经意
3、传输协议。例如A是机密的出售者,A列举了很多问题,意欲出售各个问题的答案,B想买其中一个问题的答案,但又不想让A知道自己买的是哪个问题的答案。79.5不经意传输协议1.基于大数分解问题的不经意传输协议设A想通过不经意传输协议传递给B的秘密是整数n(为两个大素数之积)的因数分解。这个问题具有普遍意义,因为任何秘密都可通过RSA加密,得到n的因数分解就可得到这个秘密。协议基于如下事实:已知某数在模n下两个不同的平方根,就可分解n。89.5不经意传输协议协议如下:①B随机选一数x,将x2modn发送给A。②A(掌握n=pq的分解)计算x2modn的4个平方根±x和±y,并将其中之一发送给B。
4、由于A只知道x2modn,并不知道4个平方根中哪一个是B选的x。③B检查第②步收到的数是否与±x在模n下同余,如果是,则B没有得到任何新信息;否则B就掌握了x2modn的两个不同的平方根,从而能够分解n。而A却不知究竟是哪种情况。显然,B得到n的分解的概率是1/2。99.5不经意传输协议2.“多传一”的不经意传输协议设A有多个秘密,想将其中一个传递给B,使得只有B知道A传递的是哪个秘密。设A的秘密是s1,s2,…,sk,每一秘密是一比特序列。协议如下:①A告诉B一个单向函数f,但对f-1保密。②设B想得到秘密si,他在f的定义域内随机选取k个值x1,x2,…,xk,将k元组(y1,y2
5、,…,yk)发送给A,其中109.5不经意传输协议③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。由于B没有zj(j≠i)的信息,因此无法得到sj(j≠i),而A不知k元组(y1,y2,…,yk)中哪个是f(xi),因此无法确定B得到的是哪个秘密。119.6掷硬币协议在某些密码协议中要求通信双方在无第三方协助的情况下,产生一个随机序列,因为A、B之间可能存在不信任关系,因此随机序列不能由一方产生再通过电话或网络告诉另一方。这一问题可通过掷硬币
6、协议来实现,掷硬币协议有多种实现方式,下面介绍其中的3种。129.6掷硬币协议1.采用平方根掷硬币协议如下:①A选择两个大素数p、q,将乘积n=pq发送给B。②B在1和n/2之间,随机选择一个整数u,计算z≡u2modn,并将z发送给A。③A计算模n下z的4个平方根±x和±y(因A知道n的分解,所以可做到),设x’是xmodn和-xmodn中较小者,y’是ymodn和-ymodn中较小者,则由于1
7、给B。⑤B告诉A猜测正确或不正确,并将u的值发送给A。⑥A公开n的因子。149.6掷硬币协议因u是B随机选取的,A不知道u,所以要猜测u只能是计算模n下z的4个平方根,猜中的概率是1/2。再考虑B如何能欺骗A,如果B在A猜测完后能够改变u的值,则A的猜测必不正确,A可通过z≡u2modn检查出B是否改变了u的值,所以B要想改变u的值就只能在x’和y’之间进行。而B若掌握x’和y’,就可通过gcd{x’-y’,n}或gcd{x’+y’,n}求出p