0 数字签名与消息认证

上传人:豆浆 文档编号:50962034 上传时间:2018-08-11 格式:PPT 页数:41 大小:411.50KB
返回 下载 相关 举报
0 数字签名与消息认证_第1页
第1页 / 共41页
0 数字签名与消息认证_第2页
第2页 / 共41页
0 数字签名与消息认证_第3页
第3页 / 共41页
0 数字签名与消息认证_第4页
第4页 / 共41页
0 数字签名与消息认证_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《0 数字签名与消息认证》由会员分享,可在线阅读,更多相关《0 数字签名与消息认证(41页珍藏版)》请在金锄头文库上搜索。

1、第10章 数字签名与消息认证 第10章 数字签名与消息认证 10.1 数字签名10.2 Hash函数10.3 消息认证思考题实验10 PGP软件的安装与使用第10章 数字签名与消息认证 10.1 数 字 签 名10.1.1 数字签名的概念在RSA公钥密码体制中,假如Alice用自己的私钥d来计算Smd(mod n),然后把S连同消息m一起发送给Bob,而Bob用Alice的公钥(n, e)来计算mce(mod n),那么则有m=m。大家想一下,这是否意味着Bob相信所收到的s一定是来自Alice?上述过程中的S是否相当于Alice对消息m的签名?上述过程可用图10-1来概括。第10章 数字签名

2、与消息认证 图10-1 数字签名过程示意图第10章 数字签名与消息认证 数字签名是利用密码运算实现“手写签名”效果的一种技术,它通过某种数学变换来实现对数字内容的 签名和盖章。在ISO7498-2标准中,数字签名的定义为“附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性,并保 护数据,防止被人伪造”。一个数字签名方案一般由签名算法和验证算法两 部分组成。要实现“手写签名”的效果,数字签名应具有不可伪造、不可抵赖和可验证的特点。第10章 数字签名与消息认证 对于数字签名方案的攻击主要是想办法伪造签名。按照方案被攻

3、破的程度,可以分为三种类型,分别是: 完全伪造,即攻击者能计算出私钥或者能找到一个能产生合法签名的算法,从而可以对任何消息产生合法的签名; 选择性伪造,即攻击者可以实现对某一些特定的消息构造出合法的签名; 存在性伪造,即攻击者能够至少伪造出一个消息的签名,但对该消息几乎没有控制力。第10章 数字签名与消息认证 10.1.2 基本签名算法数字签名方案一般利用公钥密码技术来实现,其中私钥用来签名,公钥用来验证签名。比较典型的数字签名方案有RSA算法(R. L. Rivest, A. Shamir, and L. M. Adleman, 1978)、ElGamal 签名(T. ElGamal, 19

4、85)、Schnorr签名(C. P. Schnorr, 1989)和DSS签名(NIST, 1991)。我们这里仅给出ElGamal签名方案和Schnorr签名方案。 第10章 数字签名与消息认证 1. ElGamal签名方案 假设p是一个大素数,g是GF(p)的生成元。Alice的公钥 为y = gx mod p, g,p私钥为x。签名算法:Alice首先选一个与p-1互素的随机数kAlice计算a = gk mod p Alice对b解方程M = x*a + k*b (mod p-1).Alice对消息M的签名为(a,b)验证算法:检查yaab mod p = gM mod p是否成立例

5、如:第10章 数字签名与消息认证 p = 11, g = 2,Bob 选 x = 8为私钥y = 28 mod 11 = 3公钥: y = 3, g = 2, p = 11Bob要对M = 5进行签名选k = 9 (gcd(9, 10) = 1)a = 29 mod 11 = 6,b=3读者可检查yaab mod p = gM mod p是否成立。上述方案的安全性是基于如下离散对数困难性问 题的:已知大素数p、GF(p)的生成元g和非零元素y GF(p),求解唯一的整数k, 0kp 2,使得y gk(mod p),k称为y对g的离散对数。第10章 数字签名与消息认证 目前对离散对数最有效的攻击

6、方法是指数演算攻击,其计算量为在1996年的欧洲密码学会(Proceedings of EUROCRYPT 96)上,David Pointcheval和Jacques Stern 给出一个ElGamal签名的变体,并基于所谓分叉技术证 明了在随机预言模型下所给方案是安全的(在自适应选 择消息攻击下能抗击存在性伪造)。第10章 数字签名与消息认证 2Schnorr签名方案Schnorr签名方案是一个短签名方案,它是ElGamal签名方案的变形,其安全性是基于离散对数困难性和hash函数的单向性的。假设p和 q是大素数,是q能被p-1整除,q是大于等于160 bit的整数,p是大于等于512 b

7、it的整数,保证GF(p)中求解离散对数困难;g是GF(p)中元素,且gq1 mod p;Alice公钥为y gx (mod p),私钥为x,1n,因此称函数f为压 缩函数。算法的核心就是设计无碰撞的压缩函数f。第10章 数字签名与消息认证 10.2.3 Hash函数的安全性对Hash函数的攻击就是想办法找出碰撞,相关攻击方法主要有生日攻击、中途相遇攻击、修正分组攻 击和差分分析攻击等。MD-5和SHA-1算法都已经被攻破,中国密码学者王小云在这方面做出了很优秀的研 究成果。开发人员应该使用更为安全的SHA-2(SHA-256、SHA-512)算法,研究人员目前已经开始讨论设计更安全的新Has

8、h函数SHA-3,2011年筛选出了Blas、JH、Grostl、Keccak和Skein共5个候选算法,年终将决定SHA-3算法。 第10章 数字签名与消息认证 10.3 消 息 认 证10.3.1 消息认证与消息认证码消息认证是指验证者验证所接收到的消息是否确实来自真正的发送方,并且消息在传送中没被修改的过程。消息认证是抗击伪装、内容篡改、序号篡改、计时篡改和信源抵赖的有效方法。 第10章 数字签名与消息认证 加密技术可用来实现消息认证。假如使用对称加 密方法,那么接收方可以肯定发送方创建了相关加密 的消息,因为只有收发双方才有对应的密钥,并且如 果消息本身具有一定结构、冗余或校验和的话,

9、那么 接受者很容易发现消息在传送中是否被修改。假如使 用公钥加密技术,则接收者不能确定消息来源,因为 任何人都知道接收者的公钥,但这种技术可以确保只 有预定的接收者才能接收信息。数字签名也可用来实现消息认证。验证者对签名 后的数据不仅能确定消息来源,而且可以向第三方证 明其真实性,因而还能防止信源抵赖。第10章 数字签名与消息认证 消息认证更为简单的实现方法是利用消息认证码。消息认证码(MAC)也称密码校验和,是指消息被一密钥控制的公开单向函数作用后,产生的固定长度的数 值,即MAC=CK(M)。如图10-4所示,假设通信双方A和B共享一密钥K,A欲发送给B的消息是M,A首先计算MAC=CK(

10、M),其中CK()是密钥控制的公开单向函数,然后向B发送MMAC,B收到后做与A相同的计算,求得一新MAC,并与收到的MAC做比较,如果B计算得到的MAC与接收到的MAC一致,则:第10章 数字签名与消息认证 (1) 接收方相信发送方发来的消息未被篡改,这是因为攻击者不知道密钥,所以不能够在篡改消息后相应地篡改MAC,而如果仅篡改消息,则接收方计算的新MAC将与收到的MAC不同。 图10-4 用消息认证码来实现消息认证第10章 数字签名与消息认证 (2) 接收方相信发送方不是冒充的,这是因为除收发双方外再无其他人知道密钥,因此其他人不可能对自己发送的消息计算出正确的MAC。 第10章 数字签名

11、与消息认证 10.3.2 消息认证码的构造安全的MAC函数MAC=CK(M)不但要求要具有单向性和固定长度的输出,而且应满足:(1) 如果敌手得到M和CK(M),则构造一满足CK(M ) = CK(M)的新消息M 在计算上是不可行的。(2) CK(M)均匀分布的条件是:随机选取两个消息M、M,PrCK(M)=CK(M)=2-n,其中n为MAC的长。第10章 数字签名与消息认证 (3) 若M 是M的某个变换,即M = f (M),例如f为插入一个或多个比特,那么PrCK(M)=CK(M )=2-n。MAC的构造方法有很多种,但MAC函数的上述要求很容易让我们想到Hash函数。事实上,基于密码杂凑

12、函数构造MAC正是一个重要的研究方向,RFC2104推荐的HMAC已被用于IPSec和其他网络协议。HMAC的结构大致如图10-5所示。第10章 数字签名与消息认证 图10-5 HMAC的结构示意图第10章 数字签名与消息认证 思 考 题(1) 比较并对照传统签名和数字签名的异同,列举数字签名能提供的安全服务。(2) 比较存在性伪造和选择性伪造的区别。(3) 列举一些特殊签名并说明其用途。(4) 什么是Hash函数,常用的Hash函数有哪些?(5) 消息认证码和对称加密方法在实现消息认证方面有何不同?(6) 消息认证码有哪些安全性要求,HMAC的安全性如何?第10章 数字签名与消息认证 实验1

13、0 PGP软件的安装与使用一、实验目的(1) 理解消息摘要的基本概念和用途。(2) 掌握PGP软件的安装方法。(3) 掌握PGP软件公钥与私钥的生成方法,PGPKeys管理密钥的方法。(4) 学会使用PGP软件收发加密邮件。第10章 数字签名与消息认证 二、实验准备(1) PGP软件是一款非常优秀的加密软件。它能对文件、邮件、磁盘以及ICQ通信内容实现加密、解密、签名与认证的功能,适合企业、政府机构、卫生保健部门、教育部门、家庭个人进行安全通信使用。请查阅相关资料,熟悉PGP密钥对的产生,掌握PGP加密与签名的一般流程。 第10章 数字签名与消息认证 (2) 图10-6是PGP的认证业务和保密

14、业务示意图。其中KS为分组加密算法所用的会话密钥,EC和DC分别为分组加密算法和解密算法,EP和DP分别为公钥加密算法和解密算法,SKA和PKA分别为发送方的秘密钥和公开钥,SKB和PKB分别为接收方的秘密钥和公开钥,H表示杂凑函数,表示链接,Z为ZIP压缩算法,R64表示基64变换。基64变换是将每3个8 bit位组的二元数据映射为4个ASCII字符的一种方法。之所以使用基64变换,是因为有些邮件系统仅允许使用ASCII码文本串。第10章 数字签名与消息认证 图10-6 PGP的认证业务和保密业务示意图第10章 数字签名与消息认证 (3) 在FTP服务器上建立一个公开账户(可读写,不可删除)

15、,在其中建立名为“公钥”和“密件”两个文件夹。“公钥”文件夹用来模拟“公钥”服务器,任何人都可以向该文件夹上传自己的公钥或取得别人的公钥。“密件”文件夹用来模拟不安全的信息传递通道,任何人都可以向该文件夹上传密件或从中获取密件。(4) 从互联网上下载非商业用途的PGP8.0免费版。 第10章 数字签名与消息认证 三、实验内容(1) 安装PGP软件。双击PGP安装文件进行安装, PGP软件将出现注册窗口,此时输入我们提供的用户名、组织名、序列号及授权信息等内容后,点击“认证”即可完成安装。安装时选择新用户,并注意输入通行码(千万不能忘记)。完成后必须重启计算机。第10章 数字签名与消息认证 (2

16、) 用PGP KEYDS管理密钥环。进入PGPKeys可以看到我们注册的邮箱,对应已有密钥管理内容。此时我们可导出自己的公钥,生成 ASC文件。方法:右击邮箱,选择Export,输入文件名即可,此文件可交流、发布等。第10章 数字签名与消息认证 (3) 文件加密与解密。加密信息:打开记事本程序,输入“information security”。右击PGP图标,选择CurrentWindowEncrypt,进行记事本内容加密。完成后观察结果。若有多个密钥,则进行选择。解密信息:同样将光标保持在记事本中,右击PGP图标后,选择Current WindowDecrypt即可解密信息(需要输入通行码)。解密结果显示在“Text Viewer”中。第10章 数字签名与消息认证 (4) 交换公钥(从PGP导出,并通过FTP“公钥”文件夹)。(5) 文件的加密与解密(通过FTP“密件”文

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号