第6章 数字签名技术1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程主要内容




第 1章 第2章 第 3章 第 4章 第 5章 第 6章 第7章 第 8章 第 9章 第10章
密码学概述 古典密码技术 分组密码 公钥密码体制 散列函数与消息鉴别 数字签名技术 密钥管理技术 身份鉴别技术 序列密码基础 密码技术应用
1/34
本章主要内容
6.1 数字签名概述 6.2 基于公钥密码体制的典型数字签名方案 RSA数字签名方案
四川大学电子信息学院
22/34
典型的数字签名体制(续)
1. RSA数字签名体制
RSA数字签名体制使用了RSA公开密钥密码算法进行数字签名。 鉴于RSA算法在实践中已经被证明了的安全性,RSA签名体制 在许多安全标准中得以广泛应用。ISO/IEC 9796和ANSI X.30 -199X以及美国联邦信息处理标淮FIPS 186-2已经将RSA作 为推荐的数字签名标准算法之一。另外,美国RSA数据安全公 司所开发的安全标准PKCS#l也是以RSA数字签名体制作为其 推荐算法的。 RSA数字签名体制的安全性决定于RSA公开密钥密码算法的 安全性。 由RSA体制可知,由于只有签名者才知道用于签名的秘密密 钥d,虽然其他用户可以很容易地对消息M(明文)的签名S(密文) 进行验证,但他们将无法伪造签名者的签名。
D
H KUa D 比较
KRa
H E
EK[M||EKRa(H(M))]
EKRa(H(M))
数字签名+机密性保护,为了防止攻击者窃密,可以在发送时用对称密码体制对整 10/34 个消息和签名进行加密
6.1.2 数字签名的产生方式
数字签名的产生可用加密算法或特定的签名算法。
1. 由加密算法产生数字签名
利用加密算法产生数字签名是指将消息或消息的摘 要加密后的密文作为对该消息的数字签名,其用法 又根据是单钥加密还是公钥加密而有所不同。
算法的安全性在于从M和S难以推出密钥x或伪造一 个消息M′,使M′和S可被验证为真。
6.3 数字签名的执行方式
数字签名的执行方式有两类: 直接数字签名方式和具有仲裁的数字签名方式。 1. 直接数字签名方式 直接方式是指数字签名的执行过程只有通信双方参与, 并假定双方有共享的秘密密钥,或者接收一方知道发送方的 公开密钥。 直接数字签名的局限性: 方案的有效性依赖于发送方秘密密钥的安全性。
(2) 应用对称加密,仲裁者不能看到消息内容 该方案的前提是每个用户都有与仲裁者共享的秘密密钥, 而且两两用户间也有共享密钥。数字签名过程如下: (1)S→A:IDS||EKSR[M]||EKSA[IDS||H(EKSR[M])] (2)A→R:EKAR[IDS||EKSR[M]||EKSA[IDS||H(EKSR[M])]||T] 其中KSR是S,R共享的密钥,其他符号与前面相同。 S以EKSA[IDS‖H(EKSR [M])]作为对M的签名,与由KSR加 密的消息M一起发给A。A对EKSA[IDS‖H(EKSR[M])]解密后 通过验证散列值以验证S的签名,但始终未能读取明文M 。A验证完S的签名后,对S发来的消息加一时戳,再用 KAR加密后发往R。
wenku.baidu.com
由加密算法产生数字签名又分为外部保密方式 和内部保密方式,外部保密方式是指数字签名是直 接对需要签名的消息生成而不是对已加密的消息生 成,否则称为内部保密方式。
外部保密方式便于解决争议,因为第3方在处 理争议时,需得到明文消息及其签名。但如果采用 内部保密方式,第3方必须得到消息的解密密钥后 才能得到明文消息。
如果采用外部保密方式,接收方就可将明文消 息及其数字签名存储下来以备以后万一出现争议时 使用。
2. 由签名算法产生数字签名 签名算法的输入是明文消息M和密钥x,输出是 对M的数字签名,表示为S=Sigx(M)。相应于签名算 法,有一验证算法,表示为Verx(S,M),其取值为
True S Sig x M Verx S , M False S Sig x M
将消息和拥有消息的实体可信地联系起来。
普通签名 数字签名 特殊签名 代理签名、不可否认签名、 盲签名、公平盲签名、群 签名、门限签名、一次性 签名等。
四川大学电子信息学院
3/34
数字签名概述(续) 1. 传统签名及其应用: 手写签名与印章。
(1) 对其所签署的文件进行确认;
(2) 如果日后签署文件的双方针对文件的内容发生争执,根 据签署文件时留下的签名,第三方可以对签名进行检查以便 对争执进行调解。
(2) 公钥加密 如图7.1(b)所示,发送方A使用自己的秘密钥SKA对消 息M加密后的密文作为对M的数字签名,B使用A的公开 钥PKA对消息解密,由于只有A才拥有加密密钥SKA, 因此可使B相信自己收到的消息的确来自A。
然而由于任何人都可使用A的公开钥解密密文,所以 这种方案不提供保密性。为提供保密性,A可用B的 公开钥再一次加密,如图7.1(c)所示。
四川大学电子信息学院
17/34
数字签名的执行方式(续)
2. 具有仲裁的数字签名方式 具有仲裁的数字签名是在通信双方的基础上引入了第三方
仲裁者参与。
下面给出几个需要仲裁者的数字签名方案。其中S表示发送 方,R表示接收方,A是仲裁者,M是传送的消息。
四川大学电子信息学院
18/34
(1) 应用对称加密,仲裁者可以看到消息内容 该方案的前提是每个用户都有与仲裁者共享的秘密密钥。数 字签名过程如下: (1) S→A:M||EKSA[IDS||H(M)] (2) A→R:EKAR[IDS||M||EKSA[IDS||H(M)]||T] 其中E是对称密钥加密算法,KSA和KAR分别是仲裁者A与发 送方S、接收方R的共享密钥,H(M)是M的散列值,T是时间戳, IDS是S的身份标识。 •在①中,S以EKSA[IDS‖H(M)]作为自己对M的签名,将M及签名 发往A。A用KSA解密签名,用H(M)验证消息M,确认此签名是 由S发出的。在②中A将从S收到的内容和IDS、T一起加密后发 往R,其中的T用于向R表示所发的消息不是旧消息的重放。R对 收到的内容解密后,将解密结果存储起来以备出现争议时使用。
四川大学电子信息学院
5/34
4. 数字签名与传统手写签名的比较
(1)数字签名:签名与消息是分开的,需要一种方法将签名 与消息绑定在一起。 手写签名:签名认为是被签名消息的一部分。 (2)数字签名:在签名验证的方法上,数字签名利用一种公 开的方法对签名进行验证,任何人都可以对签名进行验证。
手写签名:验证是由经验丰富的消息接收者通过同以前
(2)签名是不可抵赖的:签名者事后不能否认自己的签名。
(3)签名是可信的:任何人都可以验证签名的有效性。 (4)签名是不可复制的:对一个消息的签名不能通过复制变为另 一个消息的签名。如果对一个消息的签名是从别处复制得到的, 则任何人都可以发现消息与签名之间的不一致性,从而可以拒 绝签名的消息。
(5)签名的消息是不可篡改的:经签名的消息不能被篡改。一旦 签名的消息被篡改,则任何人都可以发现消息与签名之间的不 一致性。
Ver(M, S)= false ;S≠Sig(M)
7/34
验证算法的结果表示了签名是否真实可靠。
6. 数字签名的设计要求

签名必须依赖于被签名消息的比特模式 (签名与消息应该是一
个不可分割的整体);

签名必须使用某些对发送者是唯一的信息,以防止伪造和抵
赖;

数字签名的产生、识别和验证应该相对容易; 伪造一个数字签名在计算上是不可行的; (无论是通过对已有
的数字签名来构造新报文,还是对给定的报文伪造一个数字签 名)
8/34
7. 基于公开密钥密码体制的数字签名
为了保证签名的有效性,对消息进行签名的签名者与对签 名进行验证的验证者绝对不能拥有完全相同的用于签名和验证 的信息,因为一旦验证者能够用与签名者相同的信息(参数和算 法)来验证报文与签名,那么他同样可以伪造报文与签名。 公开密钥密码体制很好地满足了这一要求。
M
E
D
EKRa(M) KUa
M
KRa
公钥加密:鉴别和数字签名
带有消息恢复的数字签名方案
9/34
思考:该方法的问题? 解决方案:将签名信息与报文分离,形成一个独立的签名块, 无论报文多长,这个签名块的长度都是固定的。 数字签名 H M || M KRa 比较 KU
a
H
M
E
||
EKRa(H(M)) E K D K M
四川大学电子信息学院 23/34

RSA数字签名方案 基于RSA公钥密码体制的数字签名方案通常称为RSA数字签 名方案。 RSA数字签名体制的基本算法可以表述如下:
2. 数字签名
是一种作用类似于传统的手书签名或印章的电子标记,它 可以达到与手写签名类似的作用,即使用数字签名。 定义:数字签名是这样一种鉴别机制,它可以使一个报文 附加上一段起到签名作用的代码。这个代码可保证报文的来 源和完整性。
四川大学电子信息学院 4/34
3. 数字签名应具有的特性
(1)签名是不可伪造的;除了合法的签名者之外,任何其他人伪 造其签名是困难的。
ElGamal数字签名方案
数字签名标准DSS 基于椭圆曲线密码的数字签名算法ECDSA 6.3 特殊数字签名方案 不可否认签名
盲数字签名
群签名
四川大学电子信息学院 2/34
6.1 数字签名概述
数字签名在信息安全,包括鉴别、数据完整性、抗抵赖 性等方面,特别是在大型网络安全通信中的密钥分配、鉴别 及电子商务系统中,具有重要作用。 数字签名的主要作用:
(1) 单钥加密
如图7.1(a)所示,发送方A根据单钥加密算法以与接 收方B共享的密钥K对消息M加密后的密文作为对M 的数字签名发往B。该系统能向B保证所收到的消息 的确来自A,因为只有A知道密钥K。
再者B恢复出M后,可相信M未被篡改。具体来说, 就是B执行解密运算Y=DK(X),如果X是合法消息M 加密后的密文,则B得到的Y就是明文消息M,否则 Y将是无意义的比特序列。
2. 具有仲裁的方式(续) (3)应用公钥加密,仲裁者不能看到消息内容 该方案的前提是每个用户都能安全获取仲裁者和其它用户的公 开密钥。数字签名过程如下: (1) S→A:IDS||EKRS[IDS||EKUR[EKRS[M]]] (2) A→R:EKRA[IDS||EKUR[EKRS[M]||T] 其中KRS和KRA分别是发送方S和仲裁者A的私钥,KUR是接收方 R的公钥。 第①步中,S用自己的秘密钥KRS和R的公开钥KUR对消息加密后作 为对M的签名,以这种方式使得任何第3方(包括A)都不能得到M 的明文消息。 A收到S发来的内容后,用S的公开钥可对EKRS[IDS||EKUR[EKRS[M]]] 解密,并将解密得到的IDS与收到的IDS加以比较,从而可确信这一 消息是来自于S的(因只有S有KRS )。 第②步,A将S的身份IDS和S对M的签名加上一时戳后,再用自己的 秘密钥加密发往R。
的签名相比较而进行的。 (3)数字签名:有效签名容易被复制。因此,在数字签名方 案的设计中要预防签名的再用。 手写签名:签名的复制是无效的。
四川大学电子信息学院 6/34
5. 数字签名方案的组成部分
(1) 签名算法(Signature Algorithm):签名密钥一定是秘密的。 签名者A对消息M使用签名算法,记作S=Sig(M) ,有时为 了强调用户A或所使用的签名密钥k,签名算法也记为 S= SigA(M) 或S= Sigk(M) (2)验证算法(Verification Algorithm):验证算法及有关参数一定是公开的。 验证者可以通过验证算法,记作Ver(M, S) ,有时为了强调 用户A或所使用的签名密钥k,也记为 VerA(M, S)或Verk(M, S) 判断其真实性。 验证算法返回的结果为布尔值,“真(true)”或“假(false)”, 即: true ;S=Sig(M)
6.3 典型数字签名方案
数字签名方案的三个过程:
(1)系统的初始化过程:产生的数字签名方案中用到
的一切参数,有公开的,也有秘密的。 (2)签名产生过程:在此过程用户利用给定的算法对 消息产生签名,这种签名过程可以公开也可以不公开。 (3)签名验证过程:验证者利用公开验证方法对给定
消息的签名进行验证,得出签名的有效性。
相关文档
最新文档