收藏 分享(赏)

现代密码学第8讲:数字签名.ppt

上传人:精品资料 文档编号:11161467 上传时间:2020-02-10 格式:PPT 页数:45 大小:824.50KB
下载 相关 举报
现代密码学第8讲:数字签名.ppt_第1页
第1页 / 共45页
现代密码学第8讲:数字签名.ppt_第2页
第2页 / 共45页
现代密码学第8讲:数字签名.ppt_第3页
第3页 / 共45页
现代密码学第8讲:数字签名.ppt_第4页
第4页 / 共45页
现代密码学第8讲:数字签名.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、1,数字签名,现代密码学第八讲,2,上章内容回顾,公钥密码体制的提出及分类 公钥密码体制的基本概念 单向陷门函数的概念 设计公钥加密算法-背包密码体制 RSA算法及攻击方法 ElGmal算法 椭圆曲线密码体制,3,本章主要内容,数字签名的基本概念一般数字签名算法 RSA数字签名技术 数字签名标准 基于离散对数的数字签名 椭圆曲线数字签名,4,数字签名的基本概念,手写签名与数字签名的区别手写签名是一种传统的确认方式,如写信、签订协议、支付确认、批复文件等. 手写签名是所签文件的物理组成部分;数字签名必须与所签文件捆绑在一起。 手写签名通过与标准签名比较或检查笔迹来验证,伪造签名比较容易;数字签名

2、是通过公开的验证算法来验证。好的数字签名算法应该伪造签名十分困难。 手写签名不易复制;数字签名是一个二进制信息,十分容易复制,所以必须防止数字签名重复使用。,5,数字签名和消息认证码的异同:消息完整性验证、消息源认证.消息认证的作用是保护通信双方以防第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗或伪造. B伪造一个消息并使用与A共享的密钥产生该消息的认证码,然后声称该消息来自于A. 由于B有可能伪造A发来的消息,所以A就可以对自己发过的消息予以否认.,数字签名的基本概念,6,数字签名技术则可有效解决这一问题, 类似于手书签名,数字签名应具有以下性质: 能够验证签名产生者的身份,以

3、及产生签名的日期和时间. 能保证被签消息的内容的完整性. 数字签名可由第三方公开验证,从而能够解决通信双方的上述争议. 数字签名在网络安全中提供数据完整性、数据源认证性、数据不可否认性等性质,数字签名的基本概念,7,数字签名的基本概念,所谓数字签名(Digital Signature),也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码,它是利用数学方法对该电子文档进行关键信息提取并与用户私有信息进行混合运算而形成的,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造.,8,数字签名的基本概念,数字签名的目的是提供一种手段,使得

4、一个实体把他的身份与某个信息捆绑在一起. 一个消息的数字签名实际上是一个数,它仅仅依赖于签名者知道的某个秘密和被签名信息的本身. 数字签名基于两条基本的假设:一是私钥是安全的,只有其拥有者才能获得;二是产生数字签名的惟一途径是使用私钥。,9,数字签名的基本概念,1976, W Diffie 和 M Hellman 在“New Directions in Cryptography”, 首先提出了数字签名的思想并猜测存在这样的方案 1978,R Rivest, A Shamir, 和 L Adleman 发明了RSA算法可以用作数字签名算法. 1984, S Goldwasser, S Mical

5、i, 和 R Rivest 首次粗略提出了数字签名算法的安全性要求. 2004,中国颁布电子签章法,10,数字签名的攻击: 惟密钥攻击:攻击者只有用户公开的密钥. 已知消息攻击:攻击者拥有一些消息的合法签名,但是消息不由他选择.选择消息攻击:攻击者可以自由选择消息并获取消息的签名. 攻击结果: 完全破译:攻击者恢复出用户的密钥. 一致伪造:攻击者对于任意消息可以伪造其签名. 选择性伪造:攻击者可以对一个自己选取的消息伪造签名. 存在性伪造:攻击者可以生成一些消息的签名,但在伪造前对该消息一无所知.,数字签名的基本概念,11,数字签名的基本概念,数字签名算法满足的条件: 签名是可以被确认-接受者

6、能够核实发送者对消息的签名. 签名是不可伪造- 除了发送者,任何人(包括接受者)不能伪造消息的签名. 签名是不可重用- 同一消息不同时刻其签名是有区别的. 签名是不可抵赖- 发送者事后不能抵赖对消息的签名,出现争议时,第三方可解决争端.,12,一般签名算法包含密钥生成(公钥/私钥)消息签名 S=Sigx(M)用私钥对消息(消息摘要)进行签名运算消息验证用公钥验证消息的签名是否正确,输出“True”或“False”,一般数字签名算法,任何人(包含消息接收方)都可以验证消息是否正确,消息摘要的用途:效率更高(公钥算法效率较低);避免消息分块签名,完整性保证。,13, 参数和密钥生成选两个保密的大素

7、数p和q,计算n=pq,(n)=(p-1)(q-1);选一整数e,满足1e(n),且gcd(n),e)=1;计算d,满足de1 mod (n); 以e,n为公开钥, d,n为秘密密钥.,一般数字签名算法-RSA,14, 签名过程设消息为m,对其签名为 smd mod n 验证过程接收方在收到消息m和签名s后,验证是否成立,若成立,则发送方的签名有效.,一般数字签名算法-RSA,实际应用时,数字签名是对消息摘要加密产生,而不是直接对消息加密产生,15,RSA数字签名,加密算法和签名算法同用,攻击者可以方便解密 一般攻击者是将某一信息作一下伪装( Blind),让拥有私钥的实体签署。然后,经过计算

8、就可得到它所想要的信息。 解决方法: 不对自己一无所知的信息签名; 不对陌生人送来的随机文档签名; 签名时首先使用One-Way HashFunction 对文档作HASH处理; 同时使用不同的签名算法。,16,数字签名标准DSS (Digital Signature Standard) 是美国NIST公布的联邦信息处理标准FIPS PUB 186,其中采用了SHA和新的签名技术-DSA (Digital Signature Algorithm). DSS最初公布于1991年,在考虑了公众对其安全性的反馈意见后,于1993年公布了其修改版.,一般数字签名算法-DSA,17,参数 p:满足2L-

9、11的任一整数. 用户秘密钥x(0xq的随机数或伪随机数); 用户的公开钥y:ygx mod p.,一般数字签名算法-DSA,18,签名过程 用户为待签消息选取的秘密数k,k是满足0kq的随机数(伪随机数). 用户对消息m的签名为(r, s)r(gk mod p) mod q,sk-1(h(m)+xr) mod q,H(M)是由SHA求出的消息M的杂凑值.,一般数字签名算法-DSA,19,验证过程设接收方收到的消息为M及其签名(r,s),计算w(s)-1 mod q, u1h(M)w mod qu2r w mod q, v(gu1yu2) mod p mod q检查 若相等,则认为签名有效.,

10、一般数字签名算法-DSA,20,一般数字签名算法-DSA,正确性证明因为若(m,r, s)=(m,r,s),则DSA是在ElGamal和Schnorr两个签名方案的基础上设计的,其安全性基于有限域上求离散对数的困难性.,21,DSA 安全性基于离散对数的困难性,敌手从r恢复k或从s恢复x都是不可行的.注1. 最初建议使用一个共同的 素数模p ;现在建议不同的工作组使用不同的 (p,q,g)。注2. Gus Simmons 发现存在潜信道,能够泄露私钥。注3. 签名产生过程中的运算主要是求r的模指数运算r=(gk mod p) mod q,而这一运算与待签的消息无关,因此能被预先计算. 事实上,

11、用户可以预先计算出很多r和k-1以备以后的签名使用,从而可大大加快产生签名的速度。,一般数字签名算法-DSA,22,RSA签名与DSA签名的异同,23,RSA签名与DSA签名的异同,RSA算法既能用于加密和签名,又能用于密钥交换; DSS使用的算法只能提供数字签名功能. RSA算法是确定算法,相同消息,其签名相同; DSA是非确定算法,它有随机输入,相同消息签名不同. RSA的安全性基于分解因子;DSA的安全性基于离散对数,24,基于离散对数问题的数字签名体制是数字签名体制中最为常用的一类,其中包括ElGamal签名体制、DSA签名体制、Okamoto签名体制等.,一般数字签名算法,25,离散

12、对数签名体制1) 参数和密钥生成p:大素数;q:p-1或p-1的大素因子;g:gRZ*p,且gq1(mod p),gR Z*p表示g是从Z*p中随机选取的,Z*p=Zp-0;x:用户A的秘密钥,1xq;y:用户A的公开钥,ygx(mod p).,一般数字签名算法,26,2) 签名的产生过程对于待签名的消息m,A执行以下步骤: 计算m的杂凑值h(m)。 选择随机数k:1kq,计算r (gk mod p) mod q. 从签名方程ak b+cx (mod q)中解出s,以(r, s)作为产生的数字签名.,一般数字签名算法,27,方程的系数a、b、c共有120中选择方法:,一般数字签名算法,28,1

13、) a=r, b=s, c=h(m); 2) a=r, b=h(m), c=s; 3) a=s, b=r, c=h(m); 4) a=s, b=h(m), c=r; 5) a=h(m), b=r, c=s; 6) a=h(m), b=s, c=r. 7) a=-r, b=s, c=h(m); 8) a=-r, b=h(m), c=s; 9) a=s, b=-r, c=h(m); 10) a=s, b=h(m), c=-r; 11) a=h(m), b=-r, c=s; 12) a=h(m), b=s, c=-r.,13) a=r, b=-s, c=h(m); 14) a=r, b=h(m),

14、c=-s; 15) a=-s, b=r, c=h(m); 16) a=-s, b=h(m), c=r; 17) a=h(m), b=r, c=-s; 18) a=h(m), b=-s, c=r. 19) a=-r, b=-s, c=h(m); 20) a=-r, b=h(m), c=-s; 21) a=-s, b=-r, c=h(m); 22) a=-s, b=h(m), c=-r; 23) a=h(m), b=-r, c=-s; 24) a=h(m), b=-s, c=-r.,一般数字签名算法,例:a,b,c的值从第一行选取,共有24中取法,29,3) 签名的验证过程接收方在收到消息m和签名

15、(r, s)后,可以按照以下验证方程检验:,一般数字签名算法,30,一般数字签名算法,例:a,b,c从第一行选取,都只选正号情况 1) a=r, b=s, c=h(m); 2) a=r, b=h(m), c=s; 3) a=s, b=r, c=h(m); 4) a=s, b=h(m), c=r; 5) a=h(m), b=r, c=s; 6) a=h(m), b=s, c=r.,31,签名等式 1) 2) 3) 4) 5) 6),一般数字签名算法,验证等式,32,例. ElGamal签名算法1) 参数:p:大素数;g:Z*p的一个生成元;x:用户A的秘密钥,xRZ*p;y:用户A的公开钥,yg

16、x(mod p).,一般数字签名算法,33,2) 签名的产生过程对于待签名的消息m,A执行以下步骤: 计算m的杂凑值h(m); 选择随机数k:kZ*p,计算rgk(mod p); 计算s(h(m)-xr)k-1(mod p-1), 以(r,s)作为产生的数字签名.,一般数字签名算法,34,3) 签名验证过程接收方在收到消息m和数字签名(r, s)后,先计算h(m),并按下式验证: 正确性可由下式证明:.,一般数字签名算法,35,ElGamal 签名方案举例 取 p=11, g=2;选择私钥 x=8 ;计算: y = gx mod p = 28 mod 11 = 3 公钥是: y=3,g=2,p

17、=11; 对 h(m)=5 签名: 选择随机数 k=9,确定 gcd(10,9)=1, 计算: r= gk mod p = 29 mod 11 = 6; 解 s(h(m)-xr)k-1(mod p-1): s = 9-1.(5-8*6) mod 10, 又因为 9-1 = 9 mod 10,因此 s = 3 mod 10. 对 h(m)=5的签名是 (k=6,s=3). 要验证签名, 确认yrrs=gh(m):左边36.63 = 10 mod 11 ;右边25 = 10 mod 11. 左边= 右边,所以验证通过.,一般数字签名算法,36,椭圆曲线1) 参数设GF(p)为有限域,E是有限域GF

18、(p)上的椭圆曲线。选择E上一点GE,G的阶为满足安全要求的素数q.选择一个随机数x,x1,q-1;计算Y,使得Y = xG;那么公钥为Y,私钥为x.,一般数字签名算法,37,2) 签名者A对消息m签名的过程如下:用户随机选取整数k,k1,p-1,计算kG = (kx,ky),r = kx mod p,计算:h1 = h(m), s = (h1+rx) k-1mod p,则对消息m的签名值为(r,s).,一般数字签名算法,如果r = 0 或 s = 0,则另选随机数k,重新执行上面的过程.,38,3)验证签名 接收方收到消息m及签名(r,s)计算:h1 = h(m);u = s-1 h1 mo

19、d p, v = s-1rmod p,然后计算椭圆曲线上的点(x,y) = (u+vx)G=uG+vQ, 然后令r= x mod p,比较r = r,如果相等则签名有效;否则,签名无效.,一般数字签名算法,39,正确性验证 因为 s= (h1+rx) k -1mod p,所以k = (h1+rx) s-1mod p. 所以 kG=(s-1 h1 + s-1r*x) G =(u+vx)G=uG+vQ,一般数字签名算法,40,由加密算法产生数字签名又分为外部保密方式和内部保密方式,外部保密方式是指数字签名是直接对需要签名的消息生成而不是对已加密的消息生成,否则称为内部保密方式. 外部保密方式便于解

20、决争议,因为第3方在处理争议时,只需得到明文消息及其签名. 但如果采用内部保密方式,第3方必须得到消息的解密密钥后才能得到明文消息. 如果采用外部保密方式,接收方就可将明文消息及其数字签名存储下来以备以后万一出现争议时使用.,加密认证方式,41,A)RSA签名加密,加密认证方式,42,本章要点回顾,数字签名的基本概念一般数字签名算法 RSA数字签名技术 数字签名标准 基于离散对数的数字签名 椭圆曲线数字签名,43,作业,1. 在DSS数字签名标准中,取 p=83=241+1,q=41,h=2,g224 mod 83,若取x=57,则ygx457=77 mod 83.在对消息M=56签名时(忽略压缩过程),选择k=23,计算签名并进行验证. 2. 在DSA签名算法中,参数k泄露会产生什么后果?参数k重用呢?,44,3 设通信双方使用RSA加密体制,接收方的公开钥是(e,n)=(5,35),消息为28,求签名.4 利用椭圆曲线签名体制,设椭圆曲线是E11(1,6), 生成元G=(2,7). 接收方A的秘密钥d=7,A欲对消息e=h(m)=10签名,选择随机数k=3,求签名.,作业,45,THE END!,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报