第四讲 对称密码的使用方法
- 对称加密算法实现的保密性
- 对称加密算法实现的完整性(利用消息认证码MAC)
完整性指网络信息未经授权不能进行改编的特性,即:信息在存储或传输过程中保持不被偶然或蓄意德删除、修改、伪造、乱序、重放、插入等破坏和丢失的特性。 - 案例分析:
- 在什么链路上传输
- 采取什么加密方法
- 密钥的长度
端到端与链路加密对比:
- 数据加密保护地址,端到端加密保护数据的内容
端到端加密
- 信息头在传输过程中为明文,易受流量分析攻击
- 应用层
链路加密
- 整个网络需要维护密钥的数量庞大
- 应用层以下的加密均为链路加密
- 消息头被加密,减少传输分析的机会,但无法抵御流量分析攻击
- 验证消息来源的难度加大。接收方拿到的消息是最后一段链路解密后的明文。
※消息认证码
CRC不能用于完整性校验是因为它在被捕获之后也可以被中间人一同修改,起不到完整性校验的作用。
利用密钥生成一个固定长度的短数据块,称为消息认证码MAC,并将MAC附加在消息之后。接收方通过计算MAC来认证该消息。
-
计算公式:\(MAC=C_K(M)\)
\(M\):长度可变的消息
\(K\):收发双方共享的密钥
\(C_K(M)\):定长的认证符 -
消息认证码的使用方式:
第二种方式比第三种方式好很多,为了第二次验证(仲裁),第三种需要保存密文而第二种不需要。
- 消息认证码的讨论
保密性与真实性是两个不同的概念。从根本上说,信息加密提供的是保密性而非真实性。加密代价大(公钥算法代价更大)。某些信息只需要真实性,不需要保密性。
消息认证码的安全性
一般的加密算法:\(k\)位密钥,穷举攻击需要大约\(2^{(k-1)}\)次运算。
消息认证码的密钥位数比MAC长,因此许多密钥都会产生正确的MAC,而攻击者却不知哪一个是正确的密钥。
不需要密钥的攻击方法
因为异或算法的特殊性,也就是可以交换,所以这里利用之前的\(\Delta(M)\)来计算\(M'\)的最后一块\(Y_m\)使得\(M'\)计算后的\(\Delta(M)\)必然符合要求,\(MAC\)也自然得到认证。
对MAC函数的要求
- 构造\(C_K(M')=C_K(M)\)在计算上不可行
- \(C_K(M)\)应均匀分布
- 例子:基于DES的消息认证码
数据认证算法DEA使用CBC方式,初始向量为0.它是使用最广泛的MAC算法之一。
将数据按64位分组,必要时最后一个数据块用0向右填充,运用DES加密算法E,密钥为K。