密(研)13-数字签名.pdf
- 文档编号:3212213
- 上传时间:2022-11-20
- 格式:PDF
- 页数:96
- 大小:1.44MB
密(研)13-数字签名.pdf
《密(研)13-数字签名.pdf》由会员分享,可在线阅读,更多相关《密(研)13-数字签名.pdf(96页珍藏版)》请在冰豆网上搜索。
第13章数字签名DigitalSignatures课程内容大纲1.引言第一部分:
对称密码2.传统加密技术3.分组密码与数据加密标准(DES)4.数论与有限域的基本概念5.高级加密标准(AES)6.分组密码的工作模式7.伪随机数的产生和流密码第二部分:
公钥密码8.数论入门9.公钥密码学与RSA10.密钥管理和其他公钥密码体制第三部分:
密码学数据完整性算法11.密码学Hash函数12.消息认证码(MAC)13.数字签名第四部分:
相互信任14.密钥管理与分发15.用户认证本章内容一、数字签名的基本概念二、RSA数字签名方案三、ElGamal数字签名方案四、基于DLP的一般数字签名方案补充:
盲签名、电子签名法、软件授权、系统文件保护参考阅读
(1)WilliamStallings,CryptographyandNetworkSecurity:
PrincipleandPractice(ed.5),第13章
(2)杨波,现代密码学(第2版),第7章(3)陈鲁生、沈昌镒,现代密码学,第7章(4)张焕国,密码学课件攻击攻击被动攻击被动攻击窃窃听业务流分析听业务流分析主动攻击主动攻击篡改、重放、旁路、木马冒充、伪造篡改、重放、旁路、木马冒充、伪造拒绝服务、蠕虫病毒、中断拒绝服务、蠕虫病毒、中断抵赖抵赖保密性?
完整性?
真实性?
可用性不可抵赖性?
消息加密消息加密消息加密消息加密消息认证消息认证消息认证消息认证数字签名数字签名数字签名数字签名回顾:
在网络通信环境中,可能有下述攻击:
泄密传输分析伪装内容修改顺序修改计时修改发送方否认接收方否认消息认证数字签名加解密回顾:
消息认证:
?
验证所收到的消息确实是真实的,且是未被修改的消息,它也可验证消息的顺序和及时性。
数字签名:
?
是一种认证技术,其中的一些方法可用来抵抗发送方否认攻击。
(接收者可验证但不能伪造)消息认证数字签名消息认证数字签名回顾:
一、数字签名的基本概念数字签名的特点消息认证可以保护信息交换不受第三方的攻击,但不能处理通信双方自身发生的攻击。
?
例1:
电子资金转账,接收方增加金额,声称来自发送方?
例2:
股票经纪人受委托人要求进行交易而赔钱了,发送方伪称从未发送过交易要求数字签名提供了这种能力:
?
验证签名者、签名的日期和时间?
认证消息内容?
可由第三方仲裁,以解决争执因此,数字签名具有认证功能数字签名的基本概念签名可以用不同的形式来表示:
?
在传统的以书面文件为基础的事物处理中,采用书面签书面签名名的形式:
手签、印章、手印手签、印章、手印等。
书面签名得到司法部门的支持?
在以计算机文件为基础的现代事物处理中,应采用电子形式的签名,即数字签名数字签名(digitalsignature)数字签名已得到一些国家的法律支持1994年月美国政府正式颁布了美国数字签名标准年月美国政府正式颁布了美国数字签名标准DSS(DigitalSignatureStandard)。
)。
1995年我国也制定了自己的数字签名标准(年我国也制定了自己的数字签名标准(GB158511995)。
)。
2004年我国颁布中华人民共和国电子签名法。
年我国颁布中华人民共和国电子签名法。
数字签名过程的一般模型数字签名具有的性质及应满足的条件1)依赖性依赖性:
数字签名必须依赖于要签名消息的比特模式(类似于笔迹签名与被签文件的不可分离性)2)抗伪造性抗伪造性:
伪造一个数字签名在计算上不可行,-无论是通过已知的数字签名来构造新的消息-还是对给定的消息构造一个虚假的数字签名(类似笔迹签名不可模仿性不可模仿性)3)可用性可用性:
数字签名的产生和验证必须相对简单,并且其备份在存储上是可实现的。
显然签名不能太长。
数字签名过程机制的简单描述注意:
密码学注意:
密码学Hash函数的使用函数的使用数字签名的产生方式数字签名基于密码技术,其形式是多种多样的:
?
通用签名?
仲裁签名?
不可否认签名?
盲签名?
群签名?
门限签名?
两类方式:
?
利用加密算法?
利用签名算法数字签名的产生方式:
加密算法
(1)单钥加密方式:
(发送者使用和接收者间共享密钥共享密钥共享密钥共享密钥KKKK,保证了A/B的身份和消息M的真实性)(有安全隐患)ABEk(M)数字签名的产生方式:
加密算法(2.1)公钥加密方式之一:
(发送者使用自己的秘密钥秘密钥SKSKAA进行加密,保证了A的身份和消息M的真实性)ABESKA(M)SKAPKA数字签名的产生方式:
加密算法(2.2)公钥加密方式之二:
(发送者使用自己的秘密钥秘密钥SKSKAA和接收者的公开钥公开钥PKPKBB进行加密,同时保证了A/B的身份和消息M的真实性)ABEPKBESKA(M)SKAPKAPKBSKB注意:
数字签名与公钥加密的区别区别区别区别!
(1)在公钥加密中:
消息发送者用接收者的公钥加密,消息接收者用自己的私钥解密
(2)在数字签名中:
签名者用自己的私钥签名,接收者用签名者的公钥验证ABEPKBESKA(M)SKAPKAPKBSKB数字签名的产生方式:
签名算法一个数字签名体制数字签名体制主要包括两部分:
签名算法签名算法&验证算法验证算法设签名算法签名算法签名算法签名算法为Sig,明文消息为M,密钥为K,产生的签名信息为S,则有:
SigK(M)=S设验证算法验证算法验证算法验证算法为Ver,则验证过程为:
TRUEifS=SigK(M)VerK(S,M)=FALSEifSSigK(M)签名算法的安全性TrueifS=SigK(M)SigK(M)=SVerK(S,M)=FalseifSSigK(M)签名算法的安全性安全性在于:
?
难以从M和S推出密钥k?
难以伪造一个消息M使(S,M)被验证为真签名验证签名生成数字签名的应用在网络应用中,凡是要解决伪造、抵赖、冒充、篡改与身份鉴别伪造、抵赖、冒充、篡改与身份鉴别的问题,都可以运用数字签名数字签名数字签名数字签名来处理:
?
1)网上银行1)网上银行网上银行网上银行通过因特网向客户提供信息查询、网上支付、信贷等,都需要数字签名。
通过因特网向客户提供信息查询、网上支付、信贷等,都需要数字签名。
?
2)在电子商务2)在电子商务电子商务电子商务中,企业与企业之间,企业与消费者之间,在网上进行的商业交换活动,也需要数字签名。
中,企业与企业之间,企业与消费者之间,在网上进行的商业交换活动,也需要数字签名。
?
3)在电子政务3)在电子政务电子政务电子政务中,必须提供身份认证服务、权限控制服务、信息保密服务等,而这些都离不开数字签名。
中,必须提供身份认证服务、权限控制服务、信息保密服务等,而这些都离不开数字签名。
二、RSA数字签名方案RSA数字签名方案基于RSA公钥密码体制的数字签名方案,通常称为RSARSA数字签名方案数字签名方案?
是目前比较普遍使用的一种数字签名方案?
其安全性主要是基于大整数分解的难解性基于大整数分解的难解性回顾:
RSA公钥密码体制(用于加密)c=memodnm=cdmodn
(1)选取两个大素数p和q
(2)计算n=pq,(n)=(p-1)(q-1)(3)随机选取正整数e,要求1e(n)且gcd(e,(n)=1(4)计算d使得ed1mod(n)(5)保密p、q、(n)和d,公开n和e(e,n)(d,n)RSA数字签名方案RSA签名流程图:
M:
消息E:
加密D:
解密H:
Hash运算SKM:
消息E:
加密D:
解密H:
Hash运算SKAA:
A的私钥PK:
A的私钥PKAA:
A的公钥:
A的公钥RSA数字签名方案?
参数选择参数选择:
?
(1)消息发送者选取两个的大素数p和q。
p、q保密。
?
(2)计算n=pq,(n)=(p-1)(q-1)。
n公开,(n)保密。
?
(3)随机选取正整数e,1e(n),且gcd(e,(n)=1。
e是公钥。
?
(4)计算d使得de1mod(n)。
d是私钥。
RSA数字签名方案签名生成签名生成:
?
(1)
(1)消息发送者消息发送者计算消息计算消息mm的散列值的散列值H(m)H(m)?
(2)用私钥私钥dd加密散列值:
s=(H(m)dmodn?
(3)用s作为消息m的数字签名问:
H(m)?
RSA数字签名方案?
签名验证签名验证:
?
(1)消息接收者用公钥e解密签名:
h=semodn?
(2)比较比较hh和和H(m)H(m),如果h=H(m),签名有效;否则签名无效。
正确性证明:
正确性证明:
se=(H(m)d)e=H(m)ed=H(m)modnRSA数字签名方案举例:
选择素数p=5,q=11计算n=pq=55,(n)=410=40选择私钥e=3,由ed1mod(n)计算私钥d=27假设消息H(m)=19签名生成:
s=(H(m)dmodn=1927mod55=24签名验证:
semodn=243mod55=19=H(m)RSA数字签名方案在RSA数字签名方案中,如果不采用H(m),而直直接对消息接对消息mm进行签名进行签名,即?
签名的生成:
计算s=mdmodn作为m的签名?
签名的验证:
验证semodn=m是否成立问:
可行否?
安全否?
问:
可行否?
安全否?
RSA数字签名方案会有如下缺陷(!
):
(亦为攻击方法)?
对于任意y,任何人都可以计算x=yemodn,所以任何人都可以伪造随机消息x的签名y。
?
如果消息x1和x2的签名分别y1和y2,则任何知道x1,y1,x2,y2的人都可以伪造为消息x1x2的签名y1y2,这是因为(x1x2)d=(x1)d(x2)d=y1y2。
?
因消息xZn,所以每次只能对log2n位长的消息进行签名。
解决办法:
对消息的Hash值进行签名!
解决办法:
对消息的Hash值进行签名!
问:
为什么?
RSA数字签名方案安全性分析:
?
RSA算法的安全性就是基于大整数的因子分解困难基于大整数的因子分解困难之上的,到目前为止其还是安全的使用建议:
?
谨慎选择RSA的参数,例如不使用公共模数?
尽量使用散列函数使用散列函数RSA数字签名方案的一个应用:
PGPPGP(PrettyGoodPrivacy),是一个基于RSA公匙加密体系的邮件加密软件。
?
可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。
?
它可以可以提供一种安全的通讯方式,而事先并不需要任何保密的渠道用来传递密匙。
?
它采用了一种RSA和传统加密的混合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。
?
它的功能强大,有很快的速度。
RSA数字签名方案的一个应用:
PGPRSA数字签名的应用:
PGP?
数据M经MD5处理?
利用RSA对MD5(M)签名得到S?
使用ZIP对压缩?
再用IDEA对压缩数据加密:
IDEA(ZIP(M,S)?
用RSA对IDEA的密钥加密:
RSA(k)?
形成数据:
?
将数据转换成ASCII码基于大整数分解问题的数字签名体制(见教材7.3.2)?
Fiat-Shamir签名体制?
Guillou-Quisquater签名体制?
三、ElGamal数字签名方案ElGamal签名方案ElGamal算法既可用于数字签名,也可用于加密可用于数字签名,也可用于加密,其安全性依赖于计算有限域上离散对数的困难性有限域上离散对数的困难性上。
ElGamal数字签名体制是由T.ElGamal于1985年提出的,其变体已经使用于DSS(DigitalSignatureStandard)中。
回顾:
ElGamal密码体制框图(用于加密)C1gkmodpC2ykMmodpMC2/C1xmodpxC=(C1,C2)MMElGamal签名方案?
参数选择参数选择消息发送者进行如下操作:
?
(1)选取大素数p以及Zp*中的一个生成元g?
(2)选择xxZp*作为用户的秘密钥秘密钥?
(3)计算yy=gxmodp作为用户的公开钥公开钥ElGamal签名方案?
签名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 数字签名