数字签名与认证协议.ppt

上传人:牧羊曲112 文档编号:5984811 上传时间:2023-09-11 格式:PPT 页数:21 大小:207.63KB
返回 下载 相关 举报
数字签名与认证协议.ppt_第1页
第1页 / 共21页
数字签名与认证协议.ppt_第2页
第2页 / 共21页
数字签名与认证协议.ppt_第3页
第3页 / 共21页
数字签名与认证协议.ppt_第4页
第4页 / 共21页
数字签名与认证协议.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《数字签名与认证协议.ppt》由会员分享,可在线阅读,更多相关《数字签名与认证协议.ppt(21页珍藏版)》请在三一办公上搜索。

1、第十章 数字签名与认证协议,1 EIGamal签名方案 该方案是特别为签名的目的而设计的。1985年提出,很大程度上为Diffe-Hellman密钥交换算法的推广和变形。这个方案的改进已被美国NIST(国家标准和技术研究所)采纳作为数字签名标准。方案:P为素数,FP中的离散对数问题是难处理的。取本原元Fp*,消息集合M=Fp*,签名集合A=Fp*Zp-1,定义K=(p,a,)|=a(modp),值p,和是公开的,a是保密的。对K=(p,a,)和一个(秘密)随机数k Zp-1*,对消息x,M进行签名:SigK(x,k)=(,),其中,=k(modp),=(x-)k-1(modp-1)对x,Fp*

2、和Zp-1,验证签名定义为 Ver(x,)=真(true)x(modp)对EIGamal签名方案安全性的讨论:若Oscar在不知道a的情况下企图伪造一个给定消息x的签名:Sigoscar(x,k)=(,)(1)Oscar先选定一个,然后企图找,这样,他就必须解一个关于未知数的方程:x(modp)这个方程是一个已知无可行解法的难处理问题!,(2)Oscar先选定一个,使其满足:x(modp),于是,-x(modp),这样,他就必须计算离散对数 log(-x)=?,这自然是难处理的问题!(3)若两者,都被 Oscar首先选定,然后企图解出一个随机消息x,使得x(modp),于是Oscar利用这种方

3、式也不能伪造随机消息的签名。(4)Oscar同时选择,和x来伪造签名问题:假设i和j是整数,0=I=p-2,0=j=p-2,且(j,p-1)=1,先完成下列计算:ij(modp)-j-1(modp-1)x=-ij-1(modp-1)(其中j-1是用模p-1来计算的),可以证实(,)是一个消息x的有效签名:例子:假设p=467,=2和=132,它们为Bob公开的签名方案中的参数。Oscar利用这些参数伪造对一随机信息x的签名:选择i=99和j=179,那么j-1(modp-1)=151,计算出下列的x,:,那么(117,41)是消息331的一个有效签名。验证:因此,这个伪造的签名有效!(5)其他

4、类型的伪造签名:Oscar依据Bob已签名的消息来做伪签名。假设(,)是一个消息x的有效签名,那么Oscar可以用此来伪签其它消息:设h,i,j为整数,0=h,i,j=p-2且,计算,(其中 是模p-1算出)然后可验证出因此,为假消息 的一个有效签名讨论两个问题:(1)用EIGamal方案计算一个签名时,使用的随机数k为什么不能泄露?(2)若Bob用相同的值来签名不同的两份消息,Oscar能否攻破这个体制?,2 数字签名标准,公布于1994年5月19日的联邦记录上,并于1994年12月1日采纳为标准DSS。DSS为EIGamal签名方案的改进。DSS:p为512bit的素数,q为160比特的素

5、数,且q|p-1,Fp*,且为模p的q次单位根。消息集合P=Fp*,签名集合A=FqFq,定义K=(p,a,)|=a(modp),值p,q,和是公开的,a是保密的。取xP,对K=(p,q,a,)和一个(秘密)随机数k(1=k=q-1),定义 SigK(x,k)=(,),其中,=k(modp)(modq),=(x+)k-1(modq)对xFp*和,Fq来说,按下述计算来验证签名的真伪:,注:1*.DSS的使用涉及到Smart卡的使用,要求短的签名。DSS以一个巧妙的方法修改了EIGamal方案,使得签名160bits消息产生一个320bit的签名,但是计算使用了512比特的模p.2*.要求 在整

6、个签名算法中,如果计算了一个值,程序自动拒绝,并且产生一个新的随机值计算新的签名,事实上,的发生概率大约为2-160.,3*.DSS是一个产生签名比验证签名快得多的方案,验证签名太慢!4*.Smart卡的应用!Smart卡有有限的处理能力,但是能与计算机进行通信。人们企图设计一种让Smart卡仅作小量运算的签名方案。该方案必须完成签名、验证签名两部分,而且方便安全。用DSS签名的例子:假设取q=101,p=78*9+1=7879,3为F7879的一个本原元,所以能取=378(mod7879)=170为模p的q次单位根。假设a=75,那么a(mod7879)=4567.现在,假设Bob想签名一个

7、消息x=1234,且他选择了随机值k=50,可算得k-1(mod101)=99,签名算出:=(17050(mod7879)(mod101)=2518(mod101)=94,=(1234+75*94)99(mod101)=97签名为(1234,94,97)。验证:-1=97-1(mod101)=25,e1=1234*25(mod101)=45,e2=94*25(mod101)=27(17045*456727(mod7879)(mod101)=2518(mod101)=94因此,该签名是有效的。,3 一次签名,任何单向函数都可用来构造一次签名方案。该签名对一个消息来说,唯一对应着一个确定的签名。这

8、样的签名可验证任意多次。Lamport方案:设k为一个正整数,P=0,1K,设f:YZ是一个单向函数,签名集合A=YK,对于1=i=k,j=0,1来说,yijY可随机地选择。选后,可算得 Zij=f(yij)1=i=k,j=0,1 密钥K由2k个y值和2k个Z值组成,y值保密而Z值公开.消息x=x1x2.xk(kbit串)。对于K=(yij,Zij|1=i=k,j=0,1),定义其中,yixi=ai,f(ai)=Zixi验证:注:1*.待签名的消息为一个二进制 元组,每一个都单独签名.这个特征决定了“一次签名”2*.验证是简单的检查:签名结果的每一个元素是相应公开钥元素的愿象.例子:取单向函数

9、f(x)=x(modp),设p=7879(素数),3为F7879的本原元,定义f(x)=3x(mod7879)假设Bob想签名3比特消息,他选择了6个(秘密的)随机数:,y10=5831,y11=735,y20=803,y21=2467,y30=4285,y31=6449在f的作用下计算y的像:z10=2009,z11=3810,z20=4672,z21=4721,z30=268,z31=5732将这些Z值公开。现在Bob打算签名消息x=(1,1,0),那么对的签名为(y11,y21,y30)=(735,2467,4285).验证签名:3735(mod7879)=3810 32467(mod7

10、879)=4721 34285(mod7879)=268 因此,该签名有效。注:该方案,仅能用于签一个消息!一次,无法伪造。,4 不可否认的签名,(Chaum和Van Antwerprn 1989年提出)该签名的特征是:验证签名者必须与签名者合作。验证签名是通过询问-应答协议来完成。这个协议可防止签名者Bob否认他以前做的签名。一个不可否认的签名方案有三个部分组成:签名算法、验证协议、否认协议 设p=2q+1是一个素数,它满足q为素数,且Fp中的对数问题是难解的。,且阶为q,取1,(事实上G由模p的二次剩余组成)设P=A=G,且定义K=(p,a,)|=a(modp),值p,和是公开的,a是保密

11、的。,对K=(p,a,)和消息xG,定义y=SigK(x)=xa(modp)易见y G。按如下协议完成验证:(1).Alice 随机选择(2)Alice计算,且将C送给Bob.(3)Bob计算,且d将送给Alice.(4)Alice接受y作为一个有效签名,当且仅当 对上述这个签名方案,要证明以下两点:1)Alice将回接受按如上方案的有效签名2)Bob几乎不可否认经Alice 验证过的自己的签名。证明(1):(alice接受Bob的签名)。下面计算的所有指数都已做到模q约简.,知代入上式得刚好与协议(4)相符,故Alice接受Bob的签名。对于(2)Bob几乎不可否认经Alice验证过的自己的

12、签名。相当于证明下述定 理。定理1:若,那么Alice以概率1/(q-1)接受y作 为x的有效签名.证明:Bob对x做了签名y(=xa)给Alice后。Bob接受了Alice的一个询问,这个询问对应于q-1个有序对(e1,e2)。(原因是 一旦固定,e2=f(e1)。然而,Bob不知Alice选择了哪一对(e1,e2)来构造出C。,如果,那么Bob能做的任何可能回答,刚好与q-1个可能的有序对(e1,e2)中的一个相对应。由 G=,所以对C,d,x,y来说,可设C=i,d=j,x=k,y=l,i,j,k,l,考虑同余式:写出关于 的指数表示:等价于下述方程组:,既然假设 而 y=2l,xa=(

13、k)a=ak,所以lak,相当于说上述方程的系数行列式:知该方程组仅有唯一一组解。即对每一个dG,对于q-1个可能的有序对中(e1,e2),刚好有一个是正确的回答,Bob给Alice的一个回答d,将被验证的概率刚好为1/(q-1)。定理得证!,下面讨论否认协议:目的:(1)Bob能使Alice相信一个无效的签名是伪造的.(2)Bob签名有效,而导致Alice判决错误的概率为小概率事件。否认协议:(y?=xa)暂视为对的签名1)Alice 随机选取2)Alice计算 且将送给Bob,3)Bob计算,且将他回送Alice4)Alice验证5)Alice再随机选取6)Alice计算,且将他送给Bob7)Bob计算,且将他回送给Alice8)Alice验证,9)Alice推出 y是伪造的定理2:如果 yxa(modp),且Alice和Bob都遵守否认协议,那么证明:注意,,而 又,从而有进一步有,类似地,按如上方式推出 证毕。注:我们不能假设遵守了否认协议,他可以想方设法构造d,D,来达到否认自己签过名的目的。然而,只要Alice严格遵守协议,Bob是无法否认的。可证。定理3,假设yxa(modp)且Alice遵守否认协议,如果那么成立的概率为1-1/(q-1)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号