第4章 数据加密
本章围绕数据加密的主题,介绍保障网络空间安全的核心技术——密码学,纵观密码学的发展历程,阐述密码学的理论基础,总结密码学的应用现状
学习目标
- 对称密码
掌握对称密码机制的基本原理,简单了解常见的对称密码算法 - 公钥密码
掌握公钥密码机制的基本原理,简单了解常见的公钥密码算法 - 摘要与签名
掌握摘要与签名的基本原理,简单了解常见的摘要算法与数字签名算法
一、对称密码
掌握对称密码机制的基本原理,简单了解常见的对称密码算法
基本原理:加密和解密使用相同的密钥:KE=KD;密钥必须使用秘密的信道分配
基本设计原则:扩散(重新排列消息中的每一个比特,使明文中的冗余度能够扩散到整个密文,将每一个比特明文的影响尽可能作用到较多的输出密文位中)和扰乱(密文和密钥之间的统计特性关系尽可能复杂化。如果密钥的一位发生变化,密文的绝大多数位也发生变化)
基本设计方法:多次迭代
1. 分组密码
五种迭代模式:
支持并行运算:ECB,CFB的解密,CTR
1ECB
优点:
(1)每个分组的处理相互独立,可以并行操作
(2)一个密文块传输错误不会影响后续密文解密, 是分组密码的标准工作模式
缺点:
(1)因分组相互独立,信息块可被替换、重排、删除、重放,所以对明文的主动攻击是可能的
(2)无法纠正传输中的同步错误
2.CBC(Cipher Block Chaining模式(密码分组链接模式))
优点:
(1)能够隐藏明文的数据模式,相同的明文可对应不同的密文
(2)在一定程度上抵抗主动攻击
(3)误差有限传递
缺点: 加密不支持并行计算
3CFB(Cipher FeedBack 模式(密文反馈模式) )
优点:
(1)能够隐藏明文的数据模式
(2)在一定程度上抵抗主动攻击
(3)解密支持并行计算
缺点:
(1)加密不支持并行计算
(2)一个密文块传输错误会影响后续密文解密
4OFB(Output FeedBack 模式 (输出反馈模式) )
优点:
没有错误传播,一个密文单元的损坏只影响本单元的解密
缺点:
(1)对密文的主动攻击难以检测
(2)加密时不支持并行计算
5CTR(Counter模式)
优点:
(1) 可以随机地对任意一个密文分组进行解密,对该密文分组的处理与其他密文处理无关
(2) 能并行加解密处理,多个分组同时进行,效率高
缺点:
对密文的主动攻击难以检测
2. DES算法
- 分组长度为64 bits (8 bytes),密文分组长度也是64 bits
- 密钥长度为 64 bits,有8 bits奇偶校验,有效密钥长度为 56 bits
- 16个子密钥产生器
算法主要包括:初始置换、16轮迭代的乘积变换、逆初始置换。
原理:
首先把明文分成以64 bit为单位的块m,对于每个m, 执行如下操作:
DES(m)=IP-1 • T16 • T15 •… T2 • T1 • IP(m)
- 初始置换, IP
- 16轮迭代,Ti , i=1,2,…16
- 末置换,IP-1
DES的轮结构:
4个过程,明文E表扩展,与密钥异或,S盒代换,P盒置换
DES的密钥编排
3. 流密码
一般以1比特、8比特或32比特等为单位进行加密或解密,对一串数据流进行连续处理
分组密码处理完一个分组就结束了,因此不需要通过内部状态来记录加密的进度;相对地,流密码是对一串数据流进行连续处理,因此需要保持内部状态。
4. 一次性密码本
安全度最高的一种加密方法
二、公钥密码
掌握公钥密码机制的基本原理,简单了解常见的公钥密码算法
1. 加密原理
每个通信实体有一对密钥(公钥,私钥),公钥公开,用于加密和验证签名,私钥保密,用作解密和签名,A向B 发送消息,用B的公钥加密,B收到密文后,用自己的私钥解密。
2. RSA算法
1.安全性基于大数分解的难度
2.RSA算法既可以用于公钥密码也可以用于数字签名
3.具体内容
加解密:
3. 应用
- 加密/解密
- 数字签名:发送方用自己的私钥签署报文,接收方用对方的公钥验证对方的签名
- 密钥交换:双方协商会话密钥
其中,RSA均可实现,Diffie-Hellman只能实现密钥交换,DSA只能实现数字签名
三、摘要与签名
掌握摘要与签名的基本原理,简单了解常见的摘要算法与数字签名算法
1. 散列函数
把任意长度的消息压缩为固定长度的二进制串:散列值(hash value):ℎ=𝐻(𝑚)
是进行消息认证的基本方法,主要用于消息完整性检测和数字签名
(1)根据任意长度的消息计算出固定长度的散列值
(2)能够快速计算出散列值
(3)具有单向性
(4)消息不同散列值也不同
哈希算法实例:
RIPEMD160
- 输出:160位的哈希值
- 用途:比特币地址生成,可以让地址更短