第8章 数字签名.ppt
文本预览下载声明
第八章 数 字 签 名 基本概念 数字签名是认证的重要工具 为什么需要数字签名 报文认证用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。假定A发送一个认证的信息给B,双方之间的争议可能有多种形式: B伪造一个不同的消息,但声称是从A收到的。 A可以否认发过该消息,B无法证明A确实发了该消息 数字签名的特性 数字签名实际上是一个把数字形式的消息和某个源发实体相联系的数据串,把它附加在一个消息或完全加密的消息上,以便于消息的接收方能够鉴别消息的内容,并证明消息只能源发于所声称的发送方。 数字签名满足的条件 数字签名的目的是保证信息的完整性和真实性,即消息内容没有被篡改,而且签名也没有被篡改,消息只能始发于所声称的发方。 一个完善的签名方案应满足以下三个条件: ①签名者事后不能否认或抵赖自己的签名。 ②其他任何人均不能伪造签名,也不能对接收或发送的信息进行篡改、伪造和冒充。 ③若当事双方对签名真伪发生争执时,能够在公正的仲裁者面前通过验证签名来确定其真伪。 数字签名的设计要求 签名必须是依赖于被签名信息的比特模式; 签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认; 必须相对容易生成该数字签名; 必须相对容易识别和验证该数字签名; 伪造该数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签名; 在存储器中保存一个数字签名备份是现实可行的。 数字签名方案的描述 一个数字签名方案由两部分组成:带有陷门的数字签名算法(Signature Algorithm)和验证算法(Verification Algorithm)。 数字签名方案的定义是:设M是消息的有限集合,S是签名的有限集合,K是密钥的有限集合,则数字签名算法是一个映射: sig:M×K→S,s=sigk(m) 验证算法也是一个映射: 五元组{M,S,K,sig,ver}就称为一个签名算法。 两类数字签名函数 数字签名的执行方式有两类:直接数字签名方式和具有仲裁的数字签名方。 直接数字签名 直接方式是指数字签名的执行过程只有通信双方参与,并假定双方有共享的秘密密钥,或者接收一方知道发方的公开密钥。 直接数字签名有一些共同的缺点:方案的有效性依赖于发送方秘密密钥的安全性。 直接数字签名 (1) A?B: M||ESKa[H(M)],提供了认证与签名: 只有A具有SKa进行加密; 传输中无法被篡改; 任何第三方可以用PKa 验证签名 直接数字签名 (1’) A?B: EKUb [M||ESKa[H(M)]], 提供了: 1. 保密性,利用KUb 2. 认证与签名,利用KRa 先签名在加密 vs 先加密在签名? 直接数字签名的缺点 验证模式依赖于发送方的保密密钥; 发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。 通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。 改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。 如X的私有密钥确实在时间T被窃取,敌方可以伪造X的签名并附上早于或等于时间T的时间戳。 仲裁数字签名 具有仲裁的数字签名是在通信双方的基础上引入了第三方仲裁者参与。 通常的做法是所有从发送方X到接收方Y的签名消息首先送到仲裁者A,A将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给Y。 仲裁者在这一类签名模式中扮演极敏感和关键的角色,所以要求: 所有的参与者必须极大地相信这一仲裁机制工作正常。(trusted system) 仲裁数字签名技术 对称加密,仲裁者可以看到消息内容。该方案的前提是每个用户都有与仲裁者共享的秘密密钥 签名过程如下: 1) X?A:M||EKxa[IDx|| H(M)] 2) A?Y:EKay[IDx|| M || EKxa[IDx|| H(M)] || T] X与A之间共享密钥Kxa,Y与A之间共享密钥Kay 方案必须要求: (1)发送者X必须确信仲裁者A不会泄露Kxa,也不会产生虚假的数字签名; (2)接收方Y必须确信仲裁者A只有在散列码正确且发送方X的数字签名被证实的情况下才发送; (3) 通信双方必须确信仲裁者A能公平的解决争端。 解决纠纷: Y:向A发送 EKay[IDx|| M || EKxa[IDx|| H(M)]]
显示全部