第5章消息认证与数字签名
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个由公开密钥密码体制实现的数字签 名过程如下图
M A 签名 S S 验证 M B
KAd
KAe
一个典型的由公开密钥密码体制实现的、 带有加密功能的数字签名过程如下图
M A S C
信道
签 名
加密 (E)
解密 (D)
S
验 证
M B
KAd
KBe
KBd
KAe
(2) 数字签名过程
只有加入数字签名及验证才能真正实现信 息在公开网络上的安全传输。加入数字签 名和验证的文件传输过程如下(见下图)
SET协议简介
SET(Secure Electronic Transaction,安全电子交易) 协议 由VISA和MasterCard两大信用卡公司于1997年5月联合 推出的规范。 应用于Internet上的以银行卡为基础进行在线交易的安 全标准。
SET协议的特点(优点)
对商家,提供了保护自己的手段,免受欺诈,使运营成本降 低; 对消费者,保证了商家的合法性,保护信用卡号等个人信息 不会被窃取; 对银行和发卡机构、信用卡组织,拓展网上业务,保证网上 支付的安全性; 对参与交易各方,定义了互操作接口,使一个系统可以用不 同厂商的产品。
密钥对,一个密钥对用来对数字签名进行加密/
解密,一个密钥对用来对信息(报文)进行加密/ 解密。这种方式提供了更高的安全性。
数字签名大多采用非对称密钥加密算法, 它能保证发送信息的完整性、身份的真 实性和不可否认性,而数字加密采用了 对称密钥加密算法和非对称密钥加密算 法相结合的方法,它能保证发送信息的 保密性。 数字签名和信息加密过程的区别比较明 显(如下图所示)。
签名后的 信息摘要
用A的私 钥签名
用A的公 钥验证
数字签名和验证过程
发送方选择一个会话密钥对原报文进行加密, 并把加密后的文件通过网络传输到接收方;再
用接收方的公开密钥对会话密钥进行加密,并
通过网络把加密后会话密钥传输到接收方; 接受方使用自己的私有密钥对会话密钥信息进 行解密,得到会话密钥的明文; 接收方再用会话密钥对加密了的报文进行解密,
MD5算法
MD系列单向散列函数是Ron Rivest设计的,包括MD2、 MD4和MD5。MD表示消息摘要(Message Digest)。 MD5以512位分组来处理输入文本,每一分组又划分为16个 32位子分组。算法的输出由四个32位分组组成,将它们级联 形成一个128位散列值。 MD5的安全性弱点在于其压缩函数的冲突已经被找到。1995 年有论文指出,花费 1,000万美元,设计寻找冲突的特制硬 件设备,平均在24天内可以找出一个MD5的冲突。
通过数字签名能够实现对原始报文鉴别与验 证,保证报文的完整性、权威性和发送者对 所发报文的不可抵赖性。数字签名机制提供 了一种鉴别方法,普遍用于银行、电子贸易 等,以解决伪造、抵赖、冒充、篡改等问题。 数字签名与数据加密完全独立。数据可以既 签名又加密,只签名,只加密,当然,也可 以既不签名也不加密。
安全协议综述
应用层 传输层 SET / IKE / SMIME SOCKS / SSL / TLS
网络层 网络接口层
IPSec PPTP / L2F / L2TP / MPLS
SSL协议简介
SSL(Secure Socket Layer ,安全套接层)协议 由Netscape公司1995年6月提出。 1999年被IETF接受后更名为TLS(Transport Layer Security),RFC2246。 SSL被广泛地用于Web浏览器与服务器之间的身份认证 和加密数据传输。
RSA签名、DSS(数字签名系统)签名和
Hash签名。这三种算法可单独使用,也可综
合在一起使用。数字签名是通过密码算法对
数据进行加、解密变换实现的,用DES算法、 RSA算法都可实现数字签名。
(4) 数字签名与信息加密的区别
数字签名的加密/解密过程和信息(报文)的加
密/解密过程虽然都可使用公开密钥算法,但实 现过程正好相反,使用的密钥对也不同。数字 签名使用的是发送方的密钥对,发送方用自己 的私有密钥进行加密(签名),接收方用发送
SSL协议安全信道三个特性
私密性。因为在握手协议定义了会话密钥后,所有的消息都 被加密。 确认性。因为尽管会话的客户端认证是可选的,但是服务器 端始终是被认证的。 可靠性。因为传送的消息包括消息完整性检查。
SSL的缺点 无法知道传输过程中是否窃听、加密数据 是否被解密;对商家有利,对客户不利。
采用密钥K 加密报文P1.Z
RSA
采用PKB 加密密钥K
发送方首先用Hash函数从原报文中得到数 字签名,然后采用公开密钥算法用自己的 私有密钥对数字签名进行加密,并把加密 后的数字签名附加在要发送的报文后面;
发送方A
接收方B 信息 摘要
明文
明文
密文
单向函数 签名后的 信息摘要
密文 签名后的 信息摘要 单向函数
比 较
信息 摘要
信息 摘要
签名后的 信息摘要
了解鉴别、数字签名的概念和作用
数字签名(digital signature )
数字签名技术是实现交易安全的核心技 术之一,它的实现基础就是加密技术。以往 的书信或文件是根据亲笔签名或印章来证明 其真实性的。这就是数字签名所要解决的问 题。数字签名必须保证以下几点:
接收者能够核实发送者对报文的签名; 发送者事后不能抵赖对报文的签名;接收者 不能伪造对报文的签名。
报文摘要实现示意图
发送者A
EK (H(m))
D
接收者B H(m)
H(m) MD算法 报文m 运算E
EK (H(m))
EK (H(m))+m
采用MD算法产生 采用加密运算加 密报文摘要 报文摘要
判断H(m)和 采用解密运算进 H'(m)是否相等? 行解密 m H'(m) MD算法 采用MD算法产生 报文摘要
数字签名
验证
加密
发 送 者
解密 接 收 者
使用发送者的私钥
使用发送者的公钥
加密 数据加密
解密 数据解密
使用接收者的公钥
使用接收者的私钥
数字签名与数据加密的区别
数字签名示意图
发送者A 接收者B
运算D 明文P 采用私钥SKA 进行数字签名
Fra Baidu bibliotek
DSKA(P) 在网络上
传输
DSKA(P)
运算E 明文P 采用A的公钥PKA 进行签名验证
PGP 系统
PGP(Pretty Good Privacy)
MD5(P) MD5算法 邮件P 采用MD算法产生 采用SKA签名 邮件摘要 “邮件摘要” RSA
H P1 P1.Z
ZIP 压缩
IDEA
加密后的密钥K和加密后的 报文P1.Z拼接在一起 ASCII码 文本 BASE64 编码 发送至 网络上
方的公开密钥进行解密(验证)。这是一个一
对多的关系:任何拥有发送方公开密钥的人都 可以验证数字签名的正确性。
而信息(报文)的加密/解密则使用的是接收方的
密钥对,这是多对一的关系:任何知道接收方 公开密钥的人都可以向接收方发送加密信息, 只有唯一拥有接收方私有密钥的人才能对信息 解密。在实用过程中,通常一个用户拥有两个
SET协议与SSL协议的比较
相同点:
都是电子商务中常用的重要的通信协议 都采用了RSA公钥算法
不同点:
SET协议比SSL协议复杂,因为SET不仅加密两个端点间的单个会话,它还非 常详细而准确地反映了卡交易各方之间存在的各种关系。 SET是一个多方的报文协议,它定义了银行、商家、持卡人之间的必须的报 文规范,而SSL只是简单地在两方之间建立了一条安全连接。 SET报文能够在银行内部网或者其他网络上传输,而SSL之上的卡支付系统只 能与Web浏览器捆绑在一起。 SET要求在银行网络、商家服务器、顾客的PC上安装相应的软件。SET还要 求必须向各方发放证书。这些都阻碍了SET的推广。
手工签名是模拟的,因人而异,而数字签 名数字式的(0、1数字串),因信息而异。 数字签名的功能:
收方能够确认发方的签名,但不能伪造; 发方发出签过名的信息后,不能再否认; 收方对收到的签名信息也不能否认; 一旦收发方出现争执,仲裁者可有充足的证 据进行评判。
(1) 直接方式的数字签名
5.1 数字签名基本概念 数字签名就是通过一个单向函数对要传送的 报文进行处理得到的用以认证报文来源并核 实报文是否发生变化的一个字母数字串。用 这个字符串来代替书写签名或印章,起到与 书写签名或印章同样的法律效用。国际社会 已开始制定相应的法律、法规,把数字签名 作为执法的依据。
其使用方式是:报文的发送方从报文文本中生成 一个128位或160位的单向散列值(或报文摘要), 并用自己的私有密钥对这个散列值进行加密,形 成发送方的数字签名,然后,将这个数字签名作 为报文的附件和报文一起发送给报文的接收方。 报文的接收方首先从接收到的原始报文中计算出 散列值(或报文摘要),接着再用发送方的公开 密钥来对报文附加的数字签名进行解密,如果这 两个散列值相同,那么接收方就能确认该数字签 名是发送方的。
得到原报文;
接收方用发送方的公开密钥对加密的数 字签名进行解密,得到数字签名的明文;
接收方再用得到的原报文和Hash函数重 新计算数字签名,并与解密后的数字签 名进行对比。如果两个数字签名是相同 的,说明文件在传输过程中没有被破坏, 信息完整。
(3) 数字签名算法和技术
目前,广泛应用的数字签名算法主要有三种:
单向散列算法
简介
MD5算法 SHA-1算法 其它算法
简介
名称:Hash Function、哈希函数、单向杂凑函数、数据(消息)摘要函数 单向散列函数 H(M) 作用于一任意长度的消息 M,它返回一固定长度的散 列值 h: h = H(M) 单向散列函数的特性: 给定 M,很容易计算 h。 给定 h,根据 h = H(M) 计算 M 很难。 给定 M,要找到另一消息 M’,并满足 H(M) = H(M’) 很难。 单向散列函数的重要之处就是赋予 M 唯一的“指纹”。 密码学上常用的单向散列函数有RSA公司MD系列中的MD2、MD4、MD5,美 国NIST的SHA、SHA-1,欧盟RIPE项目的RIPEMD、RIPEMD-128、 RIPEMD-160等。