5.6.3 认证技术

2025-04-30 22:09:24 更新

(一)认证


认证方式

说明

解决方法

1

实体认证

识别通信对方的身份,防止假冒

数字签名

2

消息认证

验证消息在传送或存储过程中有没有被篡改

报文摘要

(1)基于共享密钥的认证

如果通信双方有一个共享密钥,则可以确认对方的真实身份。算法依赖于一个双方都信赖的密钥分发中心(Key Distribution Center, KDC)。

缺点:无法防御重放攻击。

(2)基于公钥的认证

解决了重放攻击可能性。通信双方都用对方公钥加密,用各自私钥解密。

缺点:假定了双方都知道对方公钥。

(二)数字签名

与手写签名的作用一样,数字签名系统向通信双方提供服务。

1)B可以验证消息P确实来源于A。

2)A以后不能否认发送过P。

3)B不能编造或改变消息P。

(1)基于密钥的数字签名

(2)基于公钥的数字签名

(三)报文摘要(Message Digest)

报文检验(用于差错控制):根据冗余位检查报文是否受到信道干扰的影响

报文摘要(Digital Fingerprint,数字指纹):计算密码校验和,即固定长度的认证码,附加在消息后面发送,根据认证码检查报文是否被篡改。是原报文唯一的压缩表,代表了原报文特征。可以加速数字签名算法

散列(Hash)算法:将任意长度的二进制串映射为固定长度的二进制串(散列值)。

散列值:是一段数据唯一的、紧凑的表示形式。如果对一段明文只更改其中一个字母,随后的散列变换都将产生不同的散列值。

理论基础:要找到散列值相同的两个不同的输入在计算上是不可能的,所以数据散列值可以检验数据的完整性

实现方案:对任意长的明文M进行单向散列变换,计算固定长度的位串作为报文摘要。

Hash函数=H(M)的要求:

(1)可用于任意大小的数据块。

(2)能产生固定大小的输出。

(3)软/硬件容易实现。

(4)对于任意,找出x,满足H(x)=m,是不可计算的。单向性

(5)对于任意x,找出y≠x,使得H(x)=H(y),是不可计算的。防止伪造攻击

(6)找出使得H(x)=H(y),是不可计算的。对付生日攻击