计算机网络之网络安全基础-消息完整性与数字签名

2020-12-22 15:41:09 浏览数 (1)

1. 消息完整性检测方法

消息完整性( 报文认证) 的目标:

1. 证明报文确实来自声称的发送方;

2. 验证报文在传输过程中没有被篡改;

3. 预防报文的时间、 顺序被篡改;

4. 预防报文持有期被篡改;

5. 预防抵赖;

消息完整性检测方法:散列函数。主要有以下两种:

1. MD5:128位散列值;

2. SHA-1:160位散列值;

散列函数的特性:

1. 散列函数算法公开;

2. 快速计算;

3. 对任意长度报文进行散列产生定长输出;

4. 对于任意报文无法预知其散列值;

5. 不同报文不产生相同的散列值;

6. 单向性;

2. 报文认证

报文认证: 消息的接收者能够检验收到的消息是否是真实的方法。

报文认证要完成 消息源的认证 和 消息的认证。

报文认证术语:

报文摘要: 对报文m应用散列函数H, 得到固定长度的散列码。

报文认证的方式:

1. 简单报文验证。

(1). 发送方对报文m应用散列函数, 得到固定长度的散列码, 获得报文摘要h, 将扩展报文(m,h)发送给接收方;

(2). 接收方收到扩展报文后, 提取出报文m和报文摘要h, 同样对报文m应用散列函数H获得新的报文摘要H(m), 将H(m)和 h 比较;

(3). 若相同, 报文认证成功,否则报文认证失败。

简单报文验证的不足: 无法达到对消息源认证。

2. 报文认证码MAC( Message Authentication Code)

(1). 发送方和接收方共享一个认证密钥s, 发送方对报文m和认证密钥s应用散列函数H得到报文认证码h, 将扩展报文(m,h)发送给接收方;

(2). 接收方收到扩展报文后, 提取出报文m和报文认证码h, 对报文m和认证密钥s应用散列函数H获得新的报文认证码H(m s), 将H(m s)与h比较;

(3). 若相等, 则报文认证成功,否则失败。

报文认证码MAC不足: 无法保证消息在接收方没有被篡改。

3. 数字签名

数字签名: 在公开密码体制中, 一个主体使用自己的私钥加密消息, 得到的密文。 密文可以使用该主体的公钥解密, 恢复成原来的消息。 如此生成的 "密文" 对该消息提供认证服务。

数字签名应满足:

1. 接收方能够确认发送方的签名, 但不能伪造;

2. 发送方发出签名的消息给接收方后, 就不能再否认他所签发的消息;

3. 接收方对已收到的签名消息不能否认, 有收报认证;

4. 第三者可以确认收发双方之间的消息传送, 但不能伪造这一过程;

数字签名的方式:

1. 简单数字签名

(1). Bob利用自己的私钥对报文m加密, 创建签名报文,将扩展报文(报文, 签名报文)发送给Alice;

(2). Alice收到扩展报文, 利用Bob的公钥解密签名报文, 并检验解密后的签名报文和报文m是否一致;

(3). 若一致, 则签名m的一定是Bob的私钥。

2. 签名报文摘要

(1). Bob对报文m应用散列函数H生成报文摘要H(m), 然后Bob通过其私钥对报文摘要进行加密生成加密的报文摘要, 将扩展报文(报文, 加密的报文摘要)发送给Alice;

(2). Alice收到报文m以及加密的报文摘要, Alice利用Bob的公钥解密加密的报文摘要, 并对m应用散列函数生成新的报文摘要;

(3). 如果两者一致, 则签名报文m的一定是Bob的私钥。

0 人点赞