第10章 数字签名与消息认证.ppt_第1页
第10章 数字签名与消息认证.ppt_第2页
第10章 数字签名与消息认证.ppt_第3页
第10章 数字签名与消息认证.ppt_第4页
第10章 数字签名与消息认证.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10章 数字签名与消息认证,10.1 数字签名 10.2 Hash函数 10.3 消息认证 思考题 实验10 PGP软件的安装与使用,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-1 数字签名过程示意图,数字签名是利用密码运算实现“

2、手写签名”效果的一种技术,它通过某种数学变换来实现对数字内容的签名和盖章。在ISO7498-2标准中,数字签名的定义为“附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性,并保护数据,防止被人伪造”。 一个数字签名方案一般由签名算法和验证算法两部分组成。要实现“手写签名”的效果,数字签名应具有不可伪造、不可抵赖和可验证的特点。,对于数字签名方案的攻击主要是想办法伪造签名。按照方案被攻破的程度,可以分为三种类型,分别是: 完全伪造,即攻击者能计算出私钥或者能找到一个能产生合法签名的算法,从而可以对任何消息产生合法的

3、签名; 选择性伪造,即攻击者可以实现对某一些特定的消息构造出合法的签名; 存在性伪造,即攻击者能够至少伪造出一个消息的签名,但对该消息几乎没有控制力。,10.1.2 基本签名算法 数字签名方案一般利用公钥密码技术来实现,其中私钥用来签名,公钥用来验证签名。比较典型的数字签名方案有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

4、签名方案。,1. ElGamal签名方案 假设p是一个大素数,g是GF(p)的生成元。Alice的公钥为y = gx mod p, g,p私钥为x。 签名算法: Alice首先选一个与p-1互素的随机数k Alice计算a = gk mod p Alice对b解方程M = x*a + k*b (mod p-1). Alice对消息M的签名为(a,b) 验证算法: 检查yaab mod p = gM mod p是否成立 例如:,p = 11, g = 2,Bob 选 x = 8为私钥 y = 28 mod 11 = 3 公钥: y = 3, g = 2, p = 11 Bob要对M = 5进行签

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的离散对数。,目前对离散对数最有效的攻击方法是指数演算攻击,其计算量为 在1996年的欧洲密码学会(Proceedings of EUROCRYPT 96)上,David Pointcheval和Jacques Stern给出一个ElGamal签名的变体,并基

6、于所谓分叉技术证明了在随机预言模型下所给方案是安全的(在自适应选择消息攻击下能抗击存在性伪造)。,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,1xq。,签名算法: Alice首先选一个与p-1互素的随机数k Alice计算r = h(M, gk m

7、od P) Alice计算s = k + x*r( mod q) 验证算法: 计算gk mod P=gsyr mod P. 验证r = h(M, gk mod P) Schnorr签名较短,由|q|及|H(M)|决定。在Schnorr签名中,r=gk mod p可以预先计算,k与M无关,因而签名只需一次mod q乘法及减法。所需计算量少,速度快,适用于智能卡。,10.1.3 特殊签名算法 目前国内外研究重点已经从普通签名转向具有特定功能、能满足特定要求的数字签名。如适用于电子现金和电子钱包的盲签名、适用于多人共同签署文件的多重签名、限制验证人身份的条件签名、保证公平性的同时签名以及门限签名、代

8、理签名、防失败签名等。盲签名是指签名人不知道签名内容的一种签名,可用于电子现金系统,实现不可追踪性。如下是D. Chaum 于1983年提出的一个盲签名方案:,假设在RSA密码系统中,Bob的公钥为e,私钥为d,公共模为N。Alice想让Bob对消息M盲签名 (1) Alice 在1和N之间选择随机数k通过下述办法对M盲化:t = Mke mod N。 (2) Bob对t签名,td = (Mke)d mod N。 (3) Alice用下述办法对td脱盲:s = td/k mod N = Md mod N,s即为消息M的签名。,10.2 Hash 函 数,10.2.1 Hash函数的概念 在前面

9、的章节里,我们不只一次地用到了Hash函数,已经初步知道了这是一类单向(计算h = H(m)是容易的,但求逆运算是困难的)函数,本节我们对这类函数做进一步讨论。 Hash函数h = H(m)也称为散列函数,它将任意长度的报文m映射为固定长度的输出h(摘要),另外该函数除满足单向性外,还应具备下列两项条件之一:,(1) 抗弱碰撞性。对固定的m,要找到,使得在计算上是不可行的。 (2) 抗强碰撞性。要找到m和,使得在计算上是不可行的。 显然,满足(2)的Hash函数的安全性要求更高,这是抗击生日攻击的要求。有关Hash函数的描述可如图10-2所示。,图10-2 Hash函数示意图,10.2.2 H

10、ash函数的构造 可以用很多办法构造Hash函数,但使用最多的是迭代型结构,著名的MD-5、SHA-1等都是基于迭代型的。如图10-3所示。,图10-3 用迭代方法构造Hash函数示意图,函数的输入M被分为L个分组Y0,Y1,YL-1,每一个分组的长度为b比特,最后一个分组的长度如果不够的话,需对其做填充。最后一个分组中还包括整个函数输入的长度值,这样一来,将使得敌手的攻击更为困难,即敌手若想成功地产生假冒消息,就必须保证假冒消息的杂凑值与原消息的杂凑值相同,而且假冒消息的长度也要与原消息的长度相等。 算法中重复使用一压缩函数f,f的输入有两项,一项是上一轮(第i-1轮)输出,另一项是算法在本

11、轮(第i轮)的b比特输入分组Yi。f的输出又作为下一轮的输入。算法开始时还需指定一个初值IV,最后一轮n比特输出即为最终产生的杂凑值。通常有bn,因此称函数f为压缩函数。算法的核心就是设计无碰撞的压缩函数f。,10.2.3 Hash函数的安全性 对Hash函数的攻击就是想办法找出碰撞,相关攻击方法主要有生日攻击、中途相遇攻击、修正分组攻击和差分分析攻击等。MD-5和SHA-1算法都已经被攻破,中国密码学者王小云在这方面做出了很优秀的研究成果。开发人员应该使用更为安全的SHA-2(SHA-256、SHA-512)算法,研究人员目前已经开始讨论设计更安全的新Hash函数SHA-3,2011年筛选出

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

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

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

15、算上是不可行的。 (2) CK(M)均匀分布的条件是:随机选取两个消息M、M,PrCK(M)=CK(M)=2-n,其中n为MAC的长。,(3) 若M是M的某个变换,即M=f(M),例如f为插入一个或多个比特,那么PrCK(M)=CK(M)=2-n。 MAC的构造方法有很多种,但MAC函数的上述要求很容易让我们想到Hash函数。事实上,基于密码杂凑函数构造MAC正是一个重要的研究方向,RFC2104推荐的HMAC已被用于IPSec和其他网络协议。HMAC的结构大致如图10-5所示。,图10-5 HMAC的结构示意图,思 考 题,(1) 比较并对照传统签名和数字签名的异同,列举数字签名能提供的安全

16、服务。 (2) 比较存在性伪造和选择性伪造的区别。 (3) 列举一些特殊签名并说明其用途。 (4) 什么是Hash函数,常用的Hash函数有哪些? (5) 消息认证码和对称加密方法在实现消息认证方面有何不同? (6) 消息认证码有哪些安全性要求,HMAC的安全性如何?,实验10 PGP软件的安装与使用,一、实验目的 (1) 理解消息摘要的基本概念和用途。 (2) 掌握PGP软件的安装方法。 (3) 掌握PGP软件公钥与私钥的生成方法,PGPKeys管理密钥的方法。 (4) 学会使用PGP软件收发加密邮件。,二、实验准备 (1) PGP软件是一款非常优秀的加密软件。它能对文件、邮件、磁盘以及IC

17、Q通信内容实现加密、解密、签名与认证的功能,适合企业、政府机构、卫生保健部门、教育部门、家庭个人进行安全通信使用。请查阅相关资料,熟悉PGP密钥对的产生,掌握PGP加密与签名的一般流程。,(2) 图10-6是PGP的认证业务和保密业务示意图。其中KS为分组加密算法所用的会话密钥,EC和DC分别为分组加密算法和解密算法,EP和DP分别为公钥加密算法和解密算法,SKA和PKA分别为发送方的秘密钥和公开钥,SKB和PKB分别为接收方的秘密钥和公开钥,H表示杂凑函数,表示链接,Z为ZIP压缩算法,R64表示基64变换。基64变换是将每3个8 bit位组的二元数据映射为4个ASCII字符的一种方法。之所

18、以使用基64变换,是因为有些邮件系统仅允许使用ASCII码文本串。,图10-6 PGP的认证业务和保密业务示意图,(3) 在FTP服务器上建立一个公开账户(可读写,不可删除),在其中建立名为“公钥”和“密件”两个文件夹。“公钥”文件夹用来模拟“公钥”服务器,任何人都可以向该文件夹上传自己的公钥或取得别人的公钥。“密件”文件夹用来模拟不安全的信息传递通道,任何人都可以向该文件夹上传密件或从中获取密件。 (4) 从互联网上下载非商业用途的PGP8.0免费版。,三、实验内容 (1) 安装PGP软件。 双击PGP安装文件进行安装, PGP软件将出现注册窗口,此时输入我们提供的用户名、组织名、序列号及授权信息等内容后,点击“认证”即可完成安装。安装时选择新用户,并注意输入通行码(千万不能忘记)。完成后必须重启计算机。,(2) 用PGP KEYDS管理密钥环。 进入PGPKeys可以看到我们注册的邮箱,对应已有密钥管理内容。此时我们可导出自己的公钥,生成 ASC文件。方法:右击邮箱,选择Export,输入文件名即可,此文件可交流、发布等。,(3) 文件加密与解密。 加密信息:打开记事本程序,输入“information security”。右击PGP图标,选择CurrentWindowEncrypt,进行记事本内容加密。完成后观察结果。若有多个密钥,则进行选择

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论