第9章-密码协议(不经意传输和掷硬币协议).ppt_第1页
第9章-密码协议(不经意传输和掷硬币协议).ppt_第2页
第9章-密码协议(不经意传输和掷硬币协议).ppt_第3页
第9章-密码协议(不经意传输和掷硬币协议).ppt_第4页
第9章-密码协议(不经意传输和掷硬币协议).ppt_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章 密码协议,2,协议,协议是一系列步骤 它包括两方或多方 设计它的目的是要完成一项任务,3,协议特点,协议中的每人都必须了解协议,并且预先知道所要完成的所有步骤。 协议中的每人都必须同意遵循它。 协议必须是不模糊的,每一步必须明确定义,并且不会引起误解。 协议必须是完整的,对每种可能的情况必须规定具体的动作。,4,密码协议,密码协议,有时也称作安全协议,是以密码学为基础的消息交换协议,其目的是在网络环境中提供各种安全服务。密码学是网络安全的基础,但网络安全不能单纯依靠安全的密码算法。安全协议是网络安全的一个重要组成部分,我们需要通过安全协议进行实体之间的认证、在实体之间安全地分配密钥或其

2、它各种秘密、确认发送和接收的消息的非否认性等。 密码协议包含某种密码算法. 参与该协议的伙伴可能是朋友和完全信任的人,或者也可能是敌人和互相完全不信任的人。 在协议中使用密码的目的是防止或发现偷听者和欺骗.,5,协议的目的,计算一个数值想共享它们的秘密部分 共同产生随机序列 确定互相的身份 同时签署合同,6,对协议的攻击,被动攻击 主动攻击 被动骗子 主动骗子 协议对被动欺骗来说应该是安全的 合法用户可以发觉是否有主动欺骗,7,9.5 不经意传输协议,设A有一个秘密,想以1/2的概率传递给B,即B有50%的机会收到这个秘密,另外50%的机会什么也没有收到,协议执行完后,B知道自己是否收到了这个

3、秘密,但A却不知B是否收到了这个秘密。这种协议就称为不经意传输协议。 例如A是机密的出售者,A列举了很多问题,意欲出售各个问题的答案,B想买其中一个问题的答案,但又不想让A知道自己买的是哪个问题的答案。,8,9.5 不经意传输协议,1. 基于大数分解问题的不经意传输协议 设A想通过不经意传输协议传递给B的秘密是整数n(为两个大素数之积)的因数分解。这个问题具有普遍意义,因为任何秘密都可通过RSA加密,得到n的因数分解就可得到这个秘密。 协议基于如下事实: 已知某数在模n下两个不同的平方根,就可分解n。,9,9.5 不经意传输协议,协议如下: B随机选一数x,将x2 mod n发送给A。 A(掌

4、握n=pq的分解)计算x2 mod n的4个平方根x和y,并将其中之一发送给B。由于A只知道x2 mod n,并不知道4个平方根中哪一个是B选的x。 B检查第步收到的数是否与x在模n下同余,如果是,则B没有得到任何新信息;否则B就掌握了x2 mod n的两个不同的平方根,从而能够分解n。而A却不知究竟是哪种情况。 显然,B得到n的分解的概率是1/2。,10,9.5 不经意传输协议,2. “多传一”的不经意传输协议 设A有多个秘密,想将其中一个传递给B,使得只有B知道A传递的是哪个秘密。设A的秘密是s1,s2,sk,每一秘密是一比特序列。协议如下: A告诉B一个单向函数f,但对f-1保密。 设B

5、想得到秘密si,他在f的定义域内随机选取k个值x1,x2,xk,将k元组(y1,y2,yk)发送给A,其中,11,9.5 不经意传输协议, A计算zj=f-1(yj)(j=1,2,k),并将zj sj(j=1,2,k)发送给B。 由于zi=f-1(yi)=f-1(f(xi)=xi,所以B知道zi,因此可从zi si获得si。 由于B没有zj(ji)的信息,因此无法得到sj(ji),而A不知k元组(y1,y2,yk)中哪个是f(xi),因此无法确定B得到的是哪个秘密。,12,9.6 掷硬币协议,在某些密码协议中要求通信双方在无第三方协助的情况下,产生一个随机序列,因为A、B之间可能存在不信任关系

6、,因此随机序列不能由一方产生再通过电话或网络告诉另一方。这一问题可通过掷硬币协议来实现,掷硬币协议有多种实现方式,下面介绍其中的3种。,13,9.6 掷硬币协议,1. 采用平方根掷硬币 协议如下: A选择两个大素数p、q,将乘积n=pq发送给B。 B在1和n/2之间,随机选择一个整数u,计算zu2 mod n,并将z发送给A。 A计算模n下z的4个平方根x和y(因A知道n的分解,所以可做到),设x是x mod n和-x mod n中较小者,y是y mod n和-y mod n中较小者,则由于1un/2,所以u为x和y之一。,14,9.6 掷硬币协议, A猜测u=x或u=y,或者A找出最小的i使

7、得x的第i个比特与y的第i个比特不同,A猜测u的第i个比特是0还是1。A将猜测发送给B。 B告诉A猜测正确或不正确,并将u的值发送给A。 A公开n的因子。,15,9.6 掷硬币协议,因u是B随机选取的,A不知道u,所以要猜测u只能是计算模n下z的4个平方根,猜中的概率是1/2。再考虑B如何能欺骗A,如果B在A猜测完后能够改变u的值,则A的猜测必不正确,A可通过 zu2 mod n 检查出B是否改变了u的值,所以B要想改变u的值就只能在x和y之间进行。而B若掌握x和y,就可通过gcdx-y, n或gcdx+y, n求出p和q,说明B的欺骗与分解n是等价的。,16,9.6 掷硬币协议,例9.1 A

8、取p=3,q=7,将n=21发送给B。 B在1和21/2之间,随机选择一个整数u=2,计算z22 mod n4并将z=4发送给A。 A计算模21下z=4的4个平方根x=2,-x=19,y=5,-y=16,取x= 2,y= 5。,17,9.6 掷硬币协议, A猜测u=5并将猜测发送给B. B告诉A猜测不正确,并将u=2发送给A,A检验u=2在1和21/2之间且满足422 mod 21,A知道自己输了。 A公开n=21的因子p=3,q=7,B检验n=pq,知道自己赢了。,18,9.6 掷硬币协议,2. 利用单向函数掷硬币 设A、B都知道某一单向函数f(x),但都不知道该函数的逆函数,协议如下: B

9、选择一个随机数x,求y=f(x)并发送给A。 A对x的奇偶性进行猜测,并将结果告诉B。 B告诉A猜测正确或不正确,并将x发送给A。 由于A不知道f(x)的逆函数,因此无法通过B发过来的y得出x,即只能猜测x的奇偶性。而B若在A做出猜测以后改变x,A可通过 检查出来。,19,9.6 掷硬币协议,3. 利用二次剩余掷硬币 设n是两个大素数p、q的乘积,即n=pq。整数a满足0an和gcd(a,n)=1,则有一半的a,其Jacobi符号 ,而在满足 的所有a中,只有一半是模n的平方剩余,而判断a是否为模n的平方剩余与分解n是等价的。,20,9.6 掷硬币协议,协议如下: B选择p、q,计算n=pq;再选取满足 的随机数a,将n和a发送给A。 A猜测a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论