数字签名与消息认证.ppt

上传人:re****.1 文档编号:567969705 上传时间:2024-07-22 格式:PPT 页数:41 大小:411.50KB
返回 下载 相关 举报
数字签名与消息认证.ppt_第1页
第1页 / 共41页
数字签名与消息认证.ppt_第2页
第2页 / 共41页
数字签名与消息认证.ppt_第3页
第3页 / 共41页
数字签名与消息认证.ppt_第4页
第4页 / 共41页
数字签名与消息认证.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《数字签名与消息认证.ppt》由会员分享,可在线阅读,更多相关《数字签名与消息认证.ppt(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?上述过程中

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

3、应具有不可伪造、不可抵赖和可验证的特点。第第10章章 数字签名与消息认证数字签名与消息认证 对于数字签名方案的攻击主要是想办法伪造签名。按照方案被攻破的程度,可以分为三种类型,分别是: 完全伪造,即攻击者能计算出私钥或者能找到一个能产生合法签名的算法,从而可以对任何消息产生合法的签名; 选择性伪造,即攻击者可以实现对某一些特定的消息构造出合法的签名; 存在性伪造,即攻击者能够至少伪造出一个消息的签名,但对该消息几乎没有控制力。第第10章章 数字签名与消息认证数字签名与消息认证 10.1.2 基本签名算法基本签名算法数字签名方案一般利用公钥密码技术来实现,其中私钥用来签名,公钥用来验证签名。比较

4、典型的数字签名方案有RSA算法(R. L. Rivest, A. Shamir, and L. M. Adleman, 1978)、ElGamal 签名(T. ElGamal, 1985)、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互素的随机数kA

5、lice计算a = gk mod p Alice对b解方程M = x*a + k*b (mod p-1).Alice对消息M的签名为(a,b)验证算法:检查yaab mod p = gM mod p是否成立例如:第第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是否成立。上述方案的安全性是基

6、于如下离散对数困难性问题的:已知大素数p、GF(p)的生成元g和非零元素y GF(p),求解唯一的整数k, 0kp 2,使得y gk(mod p),k称为y对g的离散对数。第第10章章 数字签名与消息认证数字签名与消息认证 目前对离散对数最有效的攻击方法是指数演算攻击,其计算量为在1996年的欧洲密码学会(Proceedings of EUROCRYPT 96)上,David Pointcheval和Jacques Stern给出一个ElGamal签名的变体,并基于所谓分叉技术证明了在随机预言模型下所给方案是安全的(在自适应选择消息攻击下能抗击存在性伪造)。第第10章章 数字签名与消息认证数字

7、签名与消息认证 2Schnorr签名方案签名方案Schnorr签名方案是一个短签名方案,它是ElGamal签名方案的变形,其安全性是基于离散对数困难性和hash函数的单向性的。假设p和 q是大素数,是q能被p-1整除,q是大于等于160 bit的整数,p是大于等于512 bit的整数,保证GF(p)中求解离散对数困难;g是GF(p)中元素,且gq1 mod p;Alice公钥为y gx (mod p),私钥为x,1xn,因此称函数f为压缩函数。算法的核心就是设计无碰撞的压缩函数f。第第10章章 数字签名与消息认证数字签名与消息认证 10.2.3 Hash函数的安全性函数的安全性对Hash函数的

8、攻击就是想办法找出碰撞,相关攻击方法主要有生日攻击、中途相遇攻击、修正分组攻击和差分分析攻击等。MD-5和SHA-1算法都已经被攻破,中国密码学者王小云在这方面做出了很优秀的研究成果。开发人员应该使用更为安全的SHA-2(SHA-256、SHA-512)算法,研究人员目前已经开始讨论设计更安全的新Hash函数SHA-3,2011年筛选出了Blas、JH、Grostl、Keccak和Skein共5个候选算法,年终将决定SHA-3算法。 第第10章章 数字签名与消息认证数字签名与消息认证 10.3 消消 息息 认认 证证10.3.1 消息认证与消息认证码消息认证与消息认证码消息认证是指验证者验证所

9、接收到的消息是否确实来自真正的发送方,并且消息在传送中没被修改的过程。消息认证是抗击伪装、内容篡改、序号篡改、计时篡改和信源抵赖的有效方法。 第第10章章 数字签名与消息认证数字签名与消息认证 加密技术可用来实现消息认证。假如使用对称加密方法,那么接收方可以肯定发送方创建了相关加密的消息,因为只有收发双方才有对应的密钥,并且如果消息本身具有一定结构、冗余或校验和的话,那么接受者很容易发现消息在传送中是否被修改。假如使用公钥加密技术,则接收者不能确定消息来源,因为任何人都知道接收者的公钥,但这种技术可以确保只有预定的接收者才能接收信息。数字签名也可用来实现消息认证。验证者对签名后的数据不仅能确定

10、消息来源,而且可以向第三方证明其真实性,因而还能防止信源抵赖。第第10章章 数字签名与消息认证数字签名与消息认证 消息认证更为简单的实现方法是利用消息认证码。消息认证码(MAC)也称密码校验和,是指消息被一密钥控制的公开单向函数作用后,产生的固定长度的数值,即MAC=CK(M)。如图10-4所示,假设通信双方A和B共享一密钥K,A欲发送给B的消息是M,A首先计算MAC=CK(M),其中CK()是密钥控制的公开单向函数,然后向B发送MMAC,B收到后做与A相同的计算,求得一新MAC,并与收到的MAC做比较,如果B计算得到的MAC与接收到的MAC一致,则:第第10章章 数字签名与消息认证数字签名与

11、消息认证 (1) 接收方相信发送方发来的消息未被篡改,这是因为攻击者不知道密钥,所以不能够在篡改消息后相应地篡改MAC,而如果仅篡改消息,则接收方计算的新MAC将与收到的MAC不同。 图10-4 用消息认证码来实现消息认证第第10章章 数字签名与消息认证数字签名与消息认证 (2) 接收方相信发送方不是冒充的,这是因为除收发双方外再无其他人知道密钥,因此其他人不可能对自己发送的消息计算出正确的MAC。 第第10章章 数字签名与消息认证数字签名与消息认证 10.3.2 消息认证码的构造消息认证码的构造安全的MAC函数MAC=CK(M)不但要求要具有单向性和固定长度的输出,而且应满足:(1) 如果敌

12、手得到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函数。事实上,基于密码杂凑函数构造MAC正是一个重要的研究方向,RFC2104推荐的HMAC已被用于IPSec和其他网络协议。HMAC的结构大致如图10-5所

13、示。第第10章章 数字签名与消息认证数字签名与消息认证 图10-5 HMAC的结构示意图第第10章章 数字签名与消息认证数字签名与消息认证 思思 考考 题题(1) 比较并对照传统签名和数字签名的异同,列举数字签名能提供的安全服务。(2) 比较存在性伪造和选择性伪造的区别。(3) 列举一些特殊签名并说明其用途。(4) 什么是Hash函数,常用的Hash函数有哪些?(5) 消息认证码和对称加密方法在实现消息认证方面有何不同?(6) 消息认证码有哪些安全性要求,HMAC的安全性如何?第第10章章 数字签名与消息认证数字签名与消息认证 实验实验10 PGP软件的安装与使用软件的安装与使用一、实验目的一

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

15、-6是PGP的认证业务和保密业务示意图。其中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章章 数字签名与消息认证数字签名

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

17、装时选择新用户,并注意输入通行码(千万不能忘记)。完成后必须重启计算机。第第10章章 数字签名与消息认证数字签名与消息认证 (2) 用PGP KEYDS管理密钥环。进入PGPKeys可以看到我们注册的邮箱,对应已有密钥管理内容。此时我们可导出自己的公钥,生成 ASC文件。方法:右击邮箱,选择Export,输入文件名即可,此文件可交流、发布等。第第10章章 数字签名与消息认证数字签名与消息认证 (3) 文件加密与解密。加密信息:打开记事本程序,输入“information security”。右击PGP图标,选择CurrentWindowEncrypt,进行记事本内容加密。完成后观察结果。若有多

18、个密钥,则进行选择。解密信息:同样将光标保持在记事本中,右击PGP图标后,选择Current WindowDecrypt即可解密信息(需要输入通行码)。解密结果显示在“Text Viewer”中。第第10章章 数字签名与消息认证数字签名与消息认证 (4) 交换公钥(从PGP导出,并通过FTP“公钥”文件夹)。(5) 文件的加密与解密(通过FTP“密件”文件夹进行密件传送)。(6) 第三方获取密件并尝试破解(当然不可能成功的)。(7) 学生相互发送加密文件并解密,探索PGP的其他功能。(8) 利用Outlook发送加密电子邮件。第第10章章 数字签名与消息认证数字签名与消息认证 进入Outloo

19、k,若你的邮箱地址不是Outlook默认的邮箱或无邮箱,则应进入工具账户进行添加。最好使用163信箱。撰写邮件,选择PGP加密并发送即可。注意只能给提供公钥的地址发送,也可用你自己的私钥签名。 第第10章章 数字签名与消息认证数字签名与消息认证 四、实验报告四、实验报告1通过实验回答下列问题(1) PGP在进行消息签名时,为什么只对Hash值签名?(2) PGP主要基于什么算法来实现加密和解密?(3) 使用邮件加密时,对于收件人和发件人的使用环境有什么要求?(4) PGP如何配置用户的公钥及私钥,如何导入其他用户的公钥?(5) PGP的“文件粉碎”功能有什么作用?(6) PGP的密钥是如何管理的?第第10章章 数字签名与消息认证数字签名与消息认证 2简答题(1) 什么是会话密钥?(2) 描述SHA-256算法的基本流程。(3) 描述PGP进行数字签名的工作流程。给出你对消息“information security”的签名和对应该签名的公、私钥。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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