杨波《现代密码学(第2版)》07 ppt课件_第1页
杨波《现代密码学(第2版)》07 ppt课件_第2页
杨波《现代密码学(第2版)》07 ppt课件_第3页
杨波《现代密码学(第2版)》07 ppt课件_第4页
杨波《现代密码学(第2版)》07 ppt课件_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

第 7章 数字签字和密码协议 数字签字的基本概念 数字签字标准 其他签字方案 认证协议 身份证明技术 其他密码协议 数字签字由公钥密码发展而来,它在网络安全,包括 身份认证 、 数据完整性 、 不可否认性 以及 匿名性等方面有着重要应用。 本章首先介绍数字签字的 基本概念 和一些常用的 数字签字算法 ,然后介绍 身份认证协议 、 身份证明技术 以及其他一些常用的密码协议。7.1 数字签字的基本概念7.1.1 数字签字应满足的要求 消息认证 的作用是保护通信双方以防第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗或伪造。通信双方之间也可能有多种形式的欺骗,例如通信双方 A和 B(设 A为发方, B为收方)使用图 6.1所示的消息认证码的基本方式通信,则可能发生以下欺骗: B伪造一个消息并使用与 A共享的密钥产生该消息的认证码,然后声称该消息来自于 A。 由于 B有可能伪造 A发来的消息,所以 A就可以对自己发过的消息予以否认。这两种欺骗在实际的应用中都有可能发生:例如 在电子资金传输中 ,收方增加收到的资金数,并声称这一数目来自发方。又如用户通过电子邮件向其证券经纪人发送对某笔业务的指令,以后这笔业务赔钱了,用户就可否认曾发送过相应的指令。因此,在收发双方未建立起完全的信任关系且存在利害冲突的情况下,单纯的消息认证就显得不够。数字签字技术则可有效解决这一问题。类似于手书签字, 数字签字 应具有以下 性质 : 能够验证签字产生者的身份,以及产生签字的日期和时间。 能用于证实被签消息的内容。 数字签字可由第三方验证,从而能够解决通信双方的争议。由此可见,数字签字具有认证功能。为实现上述 3条性质,数字签字应满足以下 要求 : 签字的产生必须使用发方独有的一些信息以防伪造和否认。 签字的产生应较为容易。 签字的识别和验证应较为容易。 对已知的数字签字构造一新的消息或对已知的消息构造一假冒的数字签字在计算上都是不可行的。7.1.2 数字签字的产生方式数字签字的产生可用 加密算法 或 特定的签字算法 。1. 由加密算法产生数字签字利用加密算法产生数字签字是指 将消息或消息的摘要加密后的密文作为对该消息的数字签字。其 用法 根据是 单钥加密 还是 公钥加密 而有所不同。(1) 单钥加密如图 7.1(a)所示,发送方 A根据单钥加密算法以与接收方 B共享的密钥 K对消息 M加密后的密文作为对M的数字签字发往 B。该系统能向 B保证所收到的消息的确来自 A,因为只有 A知道密钥 K。再者 B恢复出 M后,可相信 M未被篡改,因为敌手不知道 K就不知如何通过修改密文而修改明文。具体来说,就是 B执行解密运算 Y=DK(X),如果 X是合法消息M加密后的密文,则 B得到的 Y就是明文消息 M,否则 Y将是无意义的比特序列。图 7.1 消息加密产生数字签字的基本方式(2) 公钥加密如图 7.1(b)所示,发送方 A使用自己的秘密钥 SKA对消息 M加密后的密文作为对 M的数字签字, B使用 A的公开钥 PKA对消息解密,由于只有 A才拥有加密密钥 SKA,因此可使 B相信自己收到的消息的确来自 A。然而由于任何人都可使用 A的公开钥解密密文,所以这种方案不提供保密性。为提供保密性, A可用 B的公开钥再一次加密,如图 7.1(c)所示。下面以 RSA签字体制为例说明数字签字的产生过程。 体制参数。选两个保密的大素数 p和 q,计算 n=pq,(n)=(p-1)(q-1);选一整数 e,满足 1e(n),且gcd(n), e)=1;计算 d,满足 de1 mod (n);以e, n为公开钥 , d, n为秘密钥。 签字过程。设消息为 M,对其签字为SMd mod n 验证过程。接收方在收到消息 M和签字 S后,验证 是否成立,若成立,则发送方的签字有效。实际应用时,数字签字是对消息摘要加密产生,而不是直接对消息加密产生,如图 6.3(a)图 6.3(d)所示。由 加密算法 产生数字签字又分为 外部保密方式和 内部保密方式 , 外部保密方式 是指数字签字是直接对需要签字的消息生成而不是对已加密的消息生成,否则称为内部保密方式。外部保密方式便于解决争议,因为第 3方在处理争议时,需得到明文消息及其签字。但如果采用内部保密方式,第 3方必须得到消息的解密密钥后才能得到明文消息。如果采用外部保密方式,接收方就可将明文消息及其数字签字存储下来以备以后万一出现争议时使用。2. 由签字算法产生数字签字签字算法的输入是明文消息 M和密钥 x,输出是对 M的数字签字,表示为 S=Sigx(M)。相应于签字算法,有一验证算法,表示为 Verx(S, M),其取值为算法的安全性在于从 M和 S难以推出密钥 x或伪造一个消息 M使 M和 S可被验证为真。7.1.3 数字签字的执行方式数字签字的执行方式有两类: 直接方式 和 具有仲裁的方式 。1. 直接方式指数字签字的执行过程只有通信双方参与,并假定双方有共享的秘密钥或接收一方知道发方的公开钥。直接方式的数字签字有一 公共弱点 ,即 方案的有效性取决于发方秘密钥的安全性 。如果发方想对已发出的消息予以否认,就可声称自己的秘密钥已丢失或被窃,因此自己的签字是他人伪造的。可采取某些 行政手段 ,虽然不能完全避免但可在某种程度上减弱这种威胁。例如,要求每一被签字的消息都 包含有一个时戳 (日期和时间)并要求 密钥丢失后立即向管理机构报告 。这种方式的数字签字还存在 发方的秘密钥真的被偷的危险 ,例如敌手在时刻 T偷得发方的秘密钥,然后可伪造一消息,用偷得的秘密钥为其签字并加上 T以前的时刻作为时戳。2. 具有仲裁方式的数字签字上述直接方式的数字签字所具有的缺陷都可通过使用仲裁者得以解决。和直接方式的数字签字一样,具有仲裁方式的数字签字也有很多实现方案,这些方案都按以下方式运行: 发方 X对发往收方 Y的消息签字后,将消息及其签字先发给仲裁者 A, A对消息及其签字验证完后,再连同一个表示已通过验证的指令一起发往收方 Y。此时由于 A的存在, X无法对自己发出的消息予以否认。在这种方式中, 仲裁者 起着重要的作用并应取得所有用户的信任。以下是具有仲裁方式数字签字的几个实例,其中 X表示发方, Y表示收方, A是仲裁者, M是消息,XY : M 表示 X给 Y发送一消息 M。例 7.1 签字过程如下: XA : MEKXAIDXH(M)。 AY : EKAYIDXMEKXAIDXH(M)T。其中 E是单钥加密算法, KXA和 KAY分别是 X与 A共享的密钥和 A与 Y共享的密钥, H(M)是 M的杂凑值, T是时戳, IDX是 X的身份。在 中, X以 EKXAIDXH(M)作为自己对 M的签字,将 M及签字发往 A。在 中 A将从 X收到的内容和IDX、 T一起加密后发往 Y,其中的 T用于向 Y表示所发的消息不是旧消息的重放。 Y对收到的内容解密后 ,将解密结果存储起来以备出现争议时使用。如果出现争议 , Y可声称自己收到的 M的确来自 X,并将EKAYIDXMEKXAIDXH(M)发给 A,由 A仲裁, A由 KAY解密后,再用 KXA对EKXAIDXH(M)解密,并对 H(M)加以验证,从而验证了 X的签字。以上过程中,由于 Y不知 KXA,因此不能直接检查X的签字,但 Y认为消息来自于 A因而是可信的。在整个过程中, A必须取得 X和 Y的高度信任: X相信 A不会泄露 KXA,并且不会伪造 X的签字 ;Y相信 A只有在对EKAYIDXMEKXAIDXH(M)中的杂凑值及 X的签字验证无误后才将之发给 Y;X, Y都相信 A可公正地解决争议。如果 A已取得各方的信任,则 X就能相信没有人能伪造自己的签字 , Y就可相信 X不能对自己的签字予以否认。本例中消息 M是以 明文形式 发送的,因此未提供保密性,下面两个例子可提供保密性。例 7.2 签字过程如下: XA: ID XEKXYMEKXAIDXH(EKXYM)。 AY: EKAYIDXEKXYMEKXAIDXH(EKXYM)T。其中 KXY是 X, Y共享的密钥,其他符号与例 7.1相同。X以 EKXAIDXH(EKXYM)作为对 M的签字,与由KXY加密的消息 M一起发给 A。 A对EKXAIDXH(EKXYM)解密后通过验证杂凑值以验证 X的签字,但始终未能读取明文 M。 A验证完 X的签字后,对 X发来的消息加一时戳,再用 KAY加密后发往 Y。解决争议的方法与例 7.1一样。本例虽然提供了保密性,但还存在与上例相同的一个问题,即 仲裁者可和发方共谋以否认发方曾发过的消息 , 也可和收方共谋以伪造发方的签字 。这一问题可通过下例所示的采用公钥加密技术的方法得以解决。例 7.3 签字过程如下: XA : IDXESKXIDXEPKYESKXM。 AY : ESKAIDXEPKYESKXMT。其中 SKA和 SKX分别是 A和 X的秘密钥, PKY是 Y的公开钥,其他符号与前两例相同。第 步中, X用自己的秘密钥 SKX和 Y的公开钥PKY对消息加密后作为对 M的签字,以这种方式使得任何第 3方(包括 A)都不能得到 M的明文消息。A收到 X发来的内容后,用 X的公开钥可对ESKXIDXEPKYESKXM解密,并将解密得到的IDX与收到的 IDX加以比较,从而可确信这一消息是来自于 X的(因只有 X有 SKX)。第 步, A将 X的身份 IDX和 X对 M的签字加上一时戳后,再用自己的秘密钥加密发往 Y。与前两种方案相比,第 3种方案有很多优点:首先,在协议执行以前,各方都不必有共享的信息,从而可防止共谋。第二,只要仲裁者的秘密钥不被泄露,任何人包括发方就不能发送重放的消息。最后,对任何第三方(包括 A)来说, X发往 Y的消息都是保密的。7.2 数字签字标准数字签字标准 DSS(Digital Signature Standard)是由美国 NIST公布的联邦信息处理标准 FIPS PUB 186,其中采用了上一章介绍的 SHA和一新的签字技术,称为 DSA(Digital Signature Algorithm)。 DSS最初于 1991年公布,在考虑了公众对其安全性的反馈意见后,于 1993年公布了其修改版。7.2.1 DSS的基本方式首先将 DSS与 RSA的签字方式做一比较。 RSA算法既能用于加密和签字,又能用于密钥交换。与此不同, DSS使用的算法只能提供数字签字功能 。图 7.2用于比较 RSA签字和 DSS签字的不同方式。图 7.2 RSA签字与 DSS签字的不同方式采用 RSA签字时,将消息输入到一个杂凑函数以产生一个固定长度的安全杂凑值,再用发方的秘密钥加密杂凑值就形成了对消息的签字。消息及其签字被一起发给收方,收方得到消息后再产生出消息的杂凑值,且使用发方的公开钥对收到的签字解密。这样收方就得了两个杂凑值,如果两个杂凑值是一样的,则

温馨提示

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

评论

0/150

提交评论