当前课程知识点:网络空间安全技术 > 第4章 网络空间安全防御加密与认证技术 > 4.2 对称加密技术 > 4.2.1 对称加密技术(上)
同学们,大家好
本讲我们来一起学习
《网络空间安全技术》
第三篇
网络空间安全防御技术体系
第4章
网络空间安全防御加密认证技术的
第2节内容
对称加密技术
在这一节里面
我们准备分四个小点
来跟大家一起讨论
首先是对称加密的
基本模型与基本变换
我们要想一下
为什么要使用对称加密呢
对称加密含哪些要素
第二个问题
是序列密码算法
序列密码算法
主要讲授序列密码的
思想、模型和相关的算法
第三个是分组密码算法
含分组密码的思想、模型和算法
最后是思考与拓展
我们要考虑一下
序列密码与分组密码
它的相同点和不同点在什么地方
对称加密技术有什么优缺点
接下来
我们来看这一节的
第一个知识点内容
对称加密的基本模型与基本变换
这里面分三个小问题
首先是对称加密的定义
第二个是对称加密的基本模型
第三是源自古典密码的
对称加密的基本变换
我们来看对称加密的定义
所谓对称加密又称为单钥加密
或者是共享密钥加密
它是指:若加密系统的
加密密钥和解密密钥二者相同
或者能够从其中之一
推知到另外一个
我们就称之为对称加密
在对称加密当中
有一个密钥共享的问题
由于要求加密与解密
使用同一个共享密钥
因此要求通信双方
必须在通信前商定好密钥
并妥善地保存
接下来我们来看一下
对称加密的基本模型
从这个图片我们可以看到
它概括了加密算法的
基本要素和基本流程
包括以下几个环节
第一:发送
发送方将明文
进行对称加密运算形成密文
第二是传输
密文经由不安全的信道传输
这个里面
有可能存在攻击者窃听
并截获密文的风险
第三个是接收
接收方接收密文
进行解密运算
也就是加密运算的逆运算
将密文恢复为明文
在这个过程当中
有一个重要的运算参数叫做密钥
它是加密运算
和解密运算的控制参数
在对称加密当中
加密密钥和解密密钥是相同的
接下来我们来介绍一下
源自古典密码的对称加密基本变换
对称加密基本变换分为三大类
第一个是置换变换
又称为换位变换
第二类是代换变换
又称为替换代换
第三个是轮换密码
我们来看一下置换变换
置换变化是指明文当中
每个字符的位置次序
重新排列得到密文
分为列置换和周期置换两种方式
第二个是代换变换
又称为替换变换
它是指明文当中每个字符
替代成密文中的另一个字符
替代后的各个字母保持原位
对密文逆替换就可以得到明文
第三个是轮换密码
所谓轮换密码
其实它是一类特殊的代换
也就是多表代换
它的典型代表是Enigma密码机
不断地改变明文
和密文的字母映射关系
对明文字母连续换表加密
这就是轮换密码的基本思想
接下来我们看一下
序列密码算法
在这个知识点里面
我们分四小点来讨论
首先是序列密码算法的基本思想
第二个是序列密码算法的基本模型
第三个是传统序列密码算法
第四是国产商用序列密码算法
我们首先来看序列密码的算法思想
序列密码我们又称为流密码
它的加密过程如下
首先是将明文M
看成是连续的比特流
或者是字节流
并用密钥流当中的第i个元素ki
对明文当中的mi
逐位进行异或操作得到密文
这里面明文长度
和密钥长度是一致的
在序列密码的加密强度方面
它的加密强度取决于
密钥的随机性和不确定性
接下来我们看一下序列密码
或者称流密码
它的解密过程
它的解密过程事实上
是和加密过程相类似
也就是用同样的密钥流
对密文再进行按位的异或
从而从密文得到明文
我们说序列密码算法
它的思想其实是对一次一密
绝对安全加密思想的一种模拟
所谓一次一密
又称为One-Time-Pad
它是由Vernam等人
在1917年所发明的
在一次一密方案当中
收发双方密钥一次一变
而且没有办法猜测
也就是用随机的
非重复的字符集合作为输出密文
以此来保证数据传递的安全
1949年著名科学家香农
证明了只有一次一密的密码体制
是绝对安全的
这种安全它的关键在于
使用了不可预知的随机数
因此序列密码是模拟一次一密
如果序列密码使用真正随机的数字
与消息流等长的密钥流
此时的序列密码也就是一次一密
但是在工程上
如果想要产生真正的随机流
是非常困难的
因此我们需要使用伪随机数发生器
来模拟真正的随机密钥流
而这一密钥流
则是由密钥所确定
利用这样的密钥流
即可以进行逐位或者是逐字节的
加密和解密工作
接下来我们来看一下
序列密码算法的基本模型
左侧
我们给出了序列算法
它的基本模型示意图
这里面包含了明文流M
密钥流K
加密算法C
解密算法M
具体的形式化描述
见我们PPT所示
在这个算法基本模型里面
有几个重要的参数
需要给大家交代一下
首先第一个是密钥K
它是指收发双方
仅需协商和分发的共享密钥K
因为这里面是对称加密
它的加密密钥
和解密密钥是同一个
第二个概念是密钥流
我们刚才说了密钥K非常重要
但是在序列密码算法当中
实际起作用的加密控制参数
其实是密钥流
我们需要密钥流
因此需要密钥流生成器
来产生这个密钥流
通过输入共享密钥K
利用伪随机流发生器
可以得出伪随机流
把它用作密钥流
接下来我们来讨论一下
序列密码算法实现
需要考虑的主要因素
我们说主要需要考虑三个因素
第一个是加密序列
也就是加密流
它的周期
应该是尽量的长
第二个因素
是密钥流及其生成器
密钥流生成器产生的密钥流
应尽可能接近于一个
真正的随机流的特征
而且需要保证加密
解密密钥流的精确同步
第三个需要考虑的主要因素
就是密钥本身
输入密钥的值
它决定了密钥流生成器的输出值
为了防止穷举攻击
或者叫枚举攻击
我们通常需要保证
密钥的长度要足够长
接下来我们看一下
密钥流的生成分类
根据序列密码
密钥流生成方式的不同
我们可以分为两类
第一类是同步流密码
第二类是自同步流密码
所谓同步流密码
它的核心是密钥流的
生成过程是独立的
明文和密文不参与
密钥流的生成过程本身
与此相对应
自同步流密码
我们又称之为异步流密码
异步流密码的主要特征
是明文不参与密钥流的生成
但是密文是参与
密钥流生成的
这是它与同步流密码不同的地方
接下来我们看一下
传统的序列密码算法
目前国际上公开的
序列密码算法主要有
RC4、A5、SEAL等等
这些都是非常著名的
序列密码算法
RC4算法
它是在1987年
由Ron Rivest设计的
密钥长度可变的流加密算法簇
这位Rivest
就是著名的RSA算法三人组之首
A5算法是1989年
由法国人开发的
一款主要用于移动通信
GSM系统的序列密码算法
此外还有SEAL算法
它是由IBM提出的
适合于软件实现的
160位序列密码算法
接下来我们重点看一下RC4算法
从整体实现上来看
它首先是用
不大于256字节的可变长密钥
初始化一个256字节的
状态数组变量S
然后对S当中的字节
进行适当的置换
置换后的S始终包含
0-255所有的8bit数
每次置换后
会产生1字节的密钥
RC4算法
它的具体步骤如下
首先第一步
要初始化状态数组向量S
这是256个字节
用来作为密钥流生成的种子1
第二是初始化密钥
这个是由用户输入的
它的长度是任意的
第三需要对状态向量S
进行置换操作
它的作用
是用来打乱初始种子1
第四步是要进行
密钥流的生成与明文加密
第五步是要将
密钥流与密文字节异或
从而得到明文
这个是RC4算法的具体步骤
接下来我们来看一下
国产商用序列密码算法
我们这里给大家介绍的
是祖冲之算法集
又叫做ZUC算法
祖冲之算法集是由我国学者
自主设计的加密和完整性算法
包括祖冲之算法
加密算法128-EEA3
和完整性算法128-EIA3
ZUC序列密码算法
是我国商用密码算法体系的
重要组成部分
是实现网络空间安全的
基础算法和核心技术
作为中国在商用密码领域
取得的一次重大突破
体现了中国商用密码应用的开放性
和商用密码设计的高能力
2020年含有ZUC算法的
ISO/IEC18033-4/AMD1
加密算法第4部分:序列算法-补篇1
成为了ISO/IEC的国际标准
这个事件标志着我国
商用密码标准体系的日益完善
水平和国际影响力的不断提升
为国际网络空间安全
提供了中国方案
贡献了中国智慧
接下来我们来看一下
ZUC算法逻辑上的结构
ZUC算法从总体上看
它分为三层结构
首先是上层
上层主要是采用了
线性反馈移位寄存器LFSR
中间层的作用
是实现比特重组
采用取半合并技术
实现了LFSR数据单元
到非线性函数F
和密钥输出的数据转换
下层主要是非线性函数F
采用结构化设计的S盒
和高扩散特性的线性变换L
接下来我们来看一下
国产商用序列密码算法
ZUC算法的特点
它的特点主要是
实现代价小、安全强度高
第一是低成本
它的功耗和实现的成本是比较低的
第二是高强度
它综合运用了三层结构
具有非常高的安全强度
能够抵抗目前常见的
各种流密码攻击方法
同学们
我们这一讲就讲到这里
感谢观看
下次再见
-课程总览
-1.1 网络与网络空间
-1.2 网络安全与网络空间安全
-1.3 网络空间安全与国家安全
-1.4 网络空间安全威胁 风险与攻防
-第1章 习题
--第1章 习题
-2.1 安全理论 技术 与工程的关系
-2.2 网络空间信息系统安全工程
-2.3 网络空间安全技术体系
-2.4 网络安全与攻防对抗模型
-第2章 习题
--第2章 习题
-3.1 攻击模型与攻击链
-3.2 攻击向量与攻击面
-3.3 攻击图
--3.3 攻击图
-3.4 网络安全攻击技术分类
-3.5 典型的安全攻击方法
-第3章 习题
--第3章 习题
-4.1 密码与加密概述
-4.2 对称加密技术
-4.3 非对称加密技术
-4.4 哈希技术
--4.4 哈希技术
-4.5 认证技术与PKI体系
-第4章 习题
--第4章 习题
-5.1 信任体系与零信任安全
-5.2 操作系统与终端安全
-5.3 网络安全防护架构
-5.4 典型的网络安全技术
-第5章 习题
--第5章 习题
-6.1 漏洞扫描与漏洞挖掘技术
-6.2 Web安全技术
-6.3 软件安全技术
-6.4 数据安全技术体系
-6.5 信息隐藏技术
-第6章 习题
--第6章 习题
-7.1 网络安全风险评估技术
-7.2 网络安全测评技术
-7.3 网络安全等级保护
-7.4 网络安全情报分析与态势感知技术
-7.5 内容安全技术
-第7章 习题
--第7章 习题
-8.1 工业控制系统安全保障
-8.2 物联网安全保障
-8.3 信息物理系统安全保障
-8.4 云计算安全保障
-8.5 区块链安全保障
-第8章 习题
--第8章 习题