现代密码学理论与实践第13章 数字签名和认证协议.ppt
文本预览下载声明
现代密码学理论与实践-13 现代密码学理论与实践第13章 数字签名和认证协议 Fourth Edition by William Stallings Slides by 杨寿保 syang@ /~syang 2012年11月 本章要点 数字签名是一种认证机制,它使得消息的产生者可以添加一个起签名作用的码字。通过计算消息的散列值并用产生者的私钥加密散列值来生成签名。签名保证了消息的来源和完整性。 相互认证协议使得通信的各方对相互的身份感到放心, 并交换会话密钥。 单向认证时, 接收方想确信消息确实来自声称的发送方。 数字签名标准(DSS)是NIST标准,它使用安全散列算法(SHA)。 13.1 数字签名Digital Signature 数字签名的简单定义 数字签名是使以数字形式存储的明文信息经过特定密码变换生成密文,作为相应明文的签名,使明文信息的接收者能够验证信息确实来自合法用户,以及确认信息发送者身份。 对数字签名的基本要求 在收发双方不能完全信任的情况下,需要除认证之外的其他方法来解决假冒和否认的问题,数字签名则是解决办法; 签名接收者能容易地验证签字者对消息所做的数字签名,包括日期和时间; 任何人,包括签名接收者,都不能伪造签名者的签字; 发生争议时,可由第三方解决。 数字签名的基本形式 数字签名与消息认证的区别 消息认证是使消息接收方验证消息发送者发送的内容有无被修改过,对防止第三者破坏足够,但收发双方有利害冲突时就无法解决纷争,需要更严格的手段,即数字签名。 数字签名的基本形式 对消息签名的两种方法 对消息整体的签字,将被签消息整体经过密码变换得到签字; 对消息摘要的签字,附在被签消息之后,或嵌在某一特定位置上作一段签字图样。 两类数字签名 确定性数字签名,明文与签名一一对应; 概率性数字签名,一个明文可以有多个合法签名,每次都不一样。 13.1.2 直接数字签名 直接数字签名仅涉及通信方(信源、信宿) 假定信宿知道信源的公开密钥 数字签名通过信源对整个报文用私有密钥加密,或对报文的摘要加密来实现 通常先签名,然后对消息和签名一起加密 安全性依赖于信源私有密钥的安全性 13.1.3 仲裁数字签名 涉及到一个仲裁方(arbiter A) 签名方的签名报文首先送给仲裁者 仲裁者对报文和签名进行测试以检验出处和内容,然后注上日期和仲裁说明后发给接收方 要求仲裁方在一定程度上是可以信任的 可以用对称密码或公开密钥密码实现 仲裁方可以知道消息,也可以不知道消息 需要仲裁的数字签名技术 13.2 认证协议 认证服务和功能 认证是证实信息交换过程有效性和合法性的一种手段,包括对通信对象的认证(身份认证)和报文内容的认证(报文认证),起到数据完整性的保护。这里有 信息的真实性 存储数据的真实性 接收方提供回执 发送方不可否认 时效性和公证可能性 认证的目的 防窃听、防假冒或拦截、防窃取等 基本认证方法 单向认证 使用对称加密方法,即一次一密方法的变形 使用公开密钥方法:A向B声称是A,B则向A送一随机数R,A用其私有密钥加密送B,B用A的公开密钥验证。 使用改进的口令方式 双向认证 对称密钥方式(三次握手) 公开密钥方式,A、B双向使用不同的R值 时标方式 可信中继 使用KDC密钥分发中心 通过DASS (Distributed Authentication Security Service) 群认证(Group Authentication) 13.2.1 双向认证 双向认证协议可以使通信双方达成一致并交换会话密钥 重放攻击:合法的签名消息被拷贝后重新送出 简单重放 可检测的重放 不可检测的重放 不加修改的逆向重放 重放攻击的解决方法 使用序列号 使用时间戳(需要同步时钟) 挑战/应答(使用单独的nonce) 对称加密方法 使用两层传统加密密钥结构来保证分布环境中通信的保密性 通常需要可信密钥分发中心Key Distribution Center (KDC) 每一方与KDC共享主密钥 KDC产生双方通信要用的会话密钥 用主密钥来分发会话密钥 Needham-Schroeder Protocol 最初期的第三方密钥分发协议之一 KDC负责为用户A和B之间的通信产生会话密钥 协议如下: 1. A→KDC: IDA || IDB || N1 2. KDC→A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ] 3. A→B: EKb[Ks||IDA] 4. B→A: EKs[N2] 5. A→B: EKs[f(N2)] Needham-Schroeder Protocol Needham-Schroeder Protocol 用于安全地分发A和B通信的新会话密钥 对于重放攻击是脆弱的,如果老会话
显示全部