当前课程知识点:大学计算机基础 > 第九章 信息安全 > 9-2 密码技术及应用 > 9-2 密码技术及应用
密码技术
被认为是保护信息安全最实用的方法
这一节我们就来学习一下
密码技术和它的应用
密码是一个古老的话题
早在4000年前
古埃及人就开始使用密码
来保护传送的信息
2000多年以前,罗马国王凯撒就开始使用
我们现在称为凯撒密码的密码系统
但是密码技术的重大发展则是近代的事
特别是20世纪70年代后期
Diffie和Hellmann
他的开创性的论文叫密码学新方向的发表
成为现代密码学的一个重要的里程碑
现代密码学得到重要发展的
另外一个原因
也是由于飞速的计算机
和电子通讯这些技术
经典的密码学是关于加密和解密的理论
主要用于保密通讯
但如今密码学已经得到了更加广泛的应用
它的内容也不再是单一的加密技术
而是被用在了数据的
保密性,完整性和真实性等各个方面
现代秘密技术的应用
也是深入到数据处理的各个环节
包括数据的加密
密码的分析,数字签名等等
学习密码技术之前
我们先来了解一下
密码技术当中的一些基本概念
现在假设Alice他要发送一个报文给Bob
那Alice报文的最初的形式
我们把它称为明文叫M
Alice使用加密算法对这个明文进行加密
结果被称为密文
那入侵者即使截获了这个密文
得到的也只是一些乱码
在现代密码系统当中
很多加密的方法都是公开的
即使入侵者他也知道
那么一定要有一些秘密的信息
可以阻止入侵者解密被传输的数据
这些秘密信息就是密钥
Alice使用他的加密密钥KA
密钥往往是一串数字或者字符
作为加密算法的输入
加密算法将密钥KA和明文M作为输入
生成的密文我们就用KA(M)来表示
密文在到达Bob之后呢
Bob的解密算法
将这个密文和Bob的解密密钥KB作为输入
就可以恢复出原始的明文了
密码系统主要包括对称密钥密码系统
和公开密钥密码系统
在对称密钥密码系统当中
收发双方Alice和Bob的密钥是相同的
并且必须是保密的
对称密钥密码系统
它的优点是加解密的速度非常快
保密程度也高
但双方的共享密钥
是这个保密通讯的关键
如何才能把这个密钥安全地传送给这双方
这个是对称加密技术
它的一个突出的问题
当有很多人要进行通讯的时候
密钥的数量就会出现爆炸性的增长
如果n个人要进行两两通讯
那总共需要的������数就是
N乘以N减1除以2个
在公开密钥密码系统当中使用一对密钥
加密和解密分别由两个密钥来实现
一个密钥是公开的,称为公钥
另外一个密钥是保密的,称为私钥
例如Bob将他的公钥发送给Alice
而将他的私钥保密
Alice用Bob的公钥加密信息发送给Bob
即使这个消息和公钥被第三方截获
因为没有私钥
第三方他也不能解密消息
而只有Bob用他的私钥可以解密这个消息
公开密钥密码系统它的优点是密钥少
也便于管理
网络当中每一个用户
只需要保存自己的私钥
那n个用户要进行安全通讯的话
我们只需要n对密钥
密钥分配也简单
公钥分配给其他的用户
而私钥由用户自己保管
但公开密钥密码系统
它的缺点就是加解密的速度慢
下面我们来看一下密码技术的应用
看看在计算机网络当中
数据是怎么加密的
现在计算机网络
它是按照分层的思想设计的
计算机网络当中的数据加密
可以在OSI七层模型的多个层次上来实现
但从加密技术应用的逻辑位置来看呢
主要是链路加密和端到端加密两种方式
在这张网络加密方式的示意图当中呢
我们看到ABC是三台主机
N1到N5是通讯子网当中的设备
我们用短粗的黑线来表示链路加密设备
那每两个网络节点之间
都要有这些加解密的设备
网络节点可能是主机
也可能是网络通讯的设备
例如A和N1之间
N1和N2之间 N2和N5之间
我们看到都有加密设备
那这张图当中的黑点
它表示的是端加密设备
这个密码设备只在通讯的两端设置
通讯的两端是主机
例如主机A B C都有端加密设备
那下面我们就来看一下这两种加密方式
首先是链路加密
那它是面向物理层的一个数据加密方式
在通讯链路的两个节点之间进行
链路加密是在将数据
放入物理通讯链路传输之前对其进行加密
到达另一个网络节点之后再进行解密
每个网络节点都要有加解密设备
而且不同的链路还要使用不同的密钥
以免相互影响安全
链路加密它的优点是
可以方便地采用硬件来实现
不依赖于主机的机型和操作系统
对用户来说是透明的
用户感觉不到加解密的存在
但链路加密的缺点
是在消息传输路径上的所有的中间节点
消息都是明文的
因为中间节点
它得先把接收到的消息进行解密
然后再用它和下一条链路共享的密钥
再重新加密,把消息发送出去
所以必须维护这个中间节点的安全
链路加密的硬件开销也比较大
每个节点都要有加解密的设备
并且要维护与机器相连的所有链路的密钥
所以密钥处理的开销也大
当网络当中的主机是相对安全
而这个传输链路不安全
比如我使用的是共享链路的时候
链路加密就是一个最简单易用的方法
另外一种网络加密方式
我们使用的是端到端的加密
它属于的是高层的加密方式
在两台网络主机的应用进程之间进行
密钥设备只需要在通讯的两端设置
中间节点一律不需要设置密码设备
它的加密是假设现在主机A
要发送数据给主机B
中间要经过网络节点CDEFG的转发
A端的应用进程在发送消息之前
它将这个消息加密
并且这个消息它是以密文的形式经过CDEFG
最后到达B端的应用进程
对传输通路上的各个中间节点
数据都是保密的
那只有接收端这个用户才能够正确地解密
恢复出明文
端到端加密方法它的优点
是数据从源到目的的整个传输的过程当中
始终是以密文形式存在的
不进行解密
即使有中间节点损坏了
也不至影响整个数据的安全
但是端到端的加密
它只对消息或者我们称为报文
它的内容进行加密了
消息在进行网络传输的时候
网络的各个层次
还要添加若干个报头信息
比如说报文的源目的地址
那这些报头信息
在端到端加密中都是明文传送的
网络的中间节点需要这些内容
对这个数据进行转发
而链路加密它是加密整个报文
能保护报文当中所有的敏感信息
因此我们可以把这两种加密方式
结合到一起
就产生了下面这种叫做混合加密
下面我们来看一个混合加密的例子
当用户1要发送消息给用户2的时候
首先用二者的一个共享密钥K1
对消息的内容进行加密
此时属于端到端的加密
然后假设用户1
他所在的网络节点是节点1
在节点1整个的报文
包括消息的内容和报头在内
全部的内容
再用节点1和消息交换中心之间的
共享密钥K2来加密
此时就属于链路加密
在消息交换中心,消息先被解密
然后消息交换中心
用它和节点2的共享密钥K3再进行加密
因为用户是在网络节点2上的
消息到达网络节点2之后
先用密钥K3来解密
最后,用户2
再用它跟用户1的共享密钥K1来解密
就获得了这个消息的内容
在整个的这个传输过程当中我们看到
消息也就是这个报文它是被加密了两次
而报头它只是在链路加密方式当中
被加密了一次
现在密码技术
它已经不仅仅是用在数据的加密上了
还用来保证消息的完整性
和进行用户身份的认证
数字签名技术就是密码技术的一种应用
可以实现消息的完整性和身份的认证
它是传统的手写签名的一种数字化
在网络通讯当中
假设Alice发送了一个消息给Bob
那针对这次通讯
双方事后可能会发生一些争执
比如说Bob他可能伪造了一个不同的消息
但声称是从Alice收到的
比如说在电子资金转账当中
Bob更改了Alice要转账的金额
篡改了Alice消息的内容
另外一种争议可能是
Alice她虽然发送了这个消息给Bob
但是他可能事后否认
比如说在电子股票交易当中
Bob是股票经纪人
那他收到客户Alice的消息
要他进行一笔股票交易
但事后这笔交易让Alice赔了钱
于是Alice抵赖
说他从来没有发过这个消息给Bob
那如何解决这些网络争端呢
在现实生活当中
我们经常会在支票,信用卡收据等等
上面签名
签名能证明我们签发了这些内容
而且签名后的文件的内容是不可更改的
事后也不可抵赖
要解决上面我们提到的这个网络争端
我们也可以采用数字签名的这种方法
数字签名它是如何做到
和手写签名一样的功效的呢
数字签名是公开密钥密码体制发展的
一个重要的成果
那当Alice要发送消息给Bob的时候
Alice首先将他的私钥和要发送的消息
作为输入,输入到签名算法当中
生成的结果被称作数字签名
然后Alice将这个签名和原始的消息
一起发送给Bob
那Bob收到了带签名的消息的时候
他首先要进行验证
将Alice的公钥和得到的签名作为输入
输入到签名验证算法当中
如果得到的结果跟收到的消息是一致的
那Bob可以确定下面两件事情
第一 这个消息确实是来自Alice
因为Bob是用Alice的公钥来验证签名的
只有Alice拥有对应的私钥
所以消息一定是Alice发送的
而且Alice她不可以抵赖发送过这个消息
第二
消息在传输的过程当中没有被篡改过
如果消息被第三方篡改
由于第三方没有Alice的私钥
所以他不能伪造出对应消息的签名
����Bob在��证的时候
用Alice的公钥和原来的消息签名作为输入
输入到签名验证算法当中
得到的结果和修改后的消息肯定不一致
那从以上的学习我们看出
签名和加密不同
加密提供的是数据的保密性
而数字签名提供的是对消息的真实性
包括完整性,身份认证
和不可否认性的保护
最后我们来总结一下
在这一节里
我们主要学习了对称密钥密码技术
和公开密钥密码技术
关于密码技术的应用
我们学习了一下
计算机网络当中的数据加密
包括链路加密和端到端的加密
最后我们学习了数字签名
它是现代密码技术的一种应用
保证消息的完整性和进行用户身份的认证
谢谢大家观看
-1-1 计算机的诞生
--第一章 习题1
--计算机的诞生1
--计算机的诞生2
-1-2 计算机的分类
--第一章 习题2
--计算机的分类
-1-3 计算机的应用领域
--第一章 习题3
-1-4 计算机系统组成
--第一章 习题4
--计算机系统组成1
--计算机系统组成2
-1-5 计算机思维的定义
--第一章 习题5
--计算思维1
-1-6 计算思维的特点
--第一章 习题6
--计算思维2
-1-7 计算思维的应用案例
--第一章 习题7
--计算思维3
-第一章 章测试
-2-1 进位计数制表示方法
--第二章 习题1
-2-2 进位计数制的相互转换
--第二章 习题2
--进位计数制2
-2-3 整数的表示方法
--第二章 习题3
--整数的表示1
-2-4 浮点数表示方法
--第二章 习题4
--浮点数的表示1
-2-5 BCD格式表示法
--第二章 习题5
--BCD码
-2-6 算术运算
--2-6 算术运算
--第二章 习题6
-2-7 运算溢出及判断
--第二章 习题7
--运算的溢出
-2-8 逻辑运算
--2-8 逻辑运算
--第二章 习题8
--逻辑运算
-2-9 ASCII编码
--第二章 习题9
-2-10 Unicode编码
--第二章 习题10
-2-11汉字编码
--2-11汉字编码
--第二章 习题11
--汉字编码
-2-12数据校验编码
--第二章 习题12
--数据校验编码
-第二章 章测试
-3-1中央处理器
--3-1中央处理器
--第三章 习题1
--中央处理器
-3-2 存储器
--3-2 存储器
--第三章 习题2
--存储器1
--存储器2
--存储器3
-3-3 总线和接口
--第三章 习题3
--总线
-3-4 外部设备
--3-4 外部设备
--第三章 习题4
--外部设备
-3-5 冯.诺依曼体系结构
--第三章 习题5
-3-6 计算机常用性能指标
--第三章 习题6
--性能指标1
--性能指标2
-3-7嵌入式系统
--第三章 习题7
--嵌入式系统
-3-8哈佛体系结构
--第三章 习题8
--哈佛体系结构
-3-9 DSP简介
--3-9DSP简介
--第三章 习题9
--DSP
-3-10 虚拟台式计算机模拟器
--虚拟桌面架构
-3-11 4位计算机模拟器
-第三章 章测试
-4-1计算机软件分类
--第四章 习题1
--软件分类
-4-2软件的工作模式
--第四章 习题2
--软件的工作模式
-4-3软件的安装方法
--第四章 习题3
--软件安装
-4-4计算机软件生命周期
--第四章 习题4
--生命周期1
--生命周期2
--生命周期3
--软件测试1
--软件测试2
-4-5计算机软件开发过程模型
--第四章 习题5
- 4-6 常用软件介绍-办公软件
--第四章 习题6
-办公软件实例1 文字处理软件
-办公软件实例2 电子表格软件
-办公软件实例3 演示文稿软件
-4-7 常用软件介绍-多媒体创作软件
--第四章 习题7
-多媒体创作软件实例1 音频处理软件
-多媒体创作软件实例2 图像处理软件
-多媒体创作软件实例3 动画制作软件
-多媒体创作软件实例4 视频处理软件
-4-8 常用软件介绍-网页制作软件
--第四章 习题8
-第四章 章测试
-5-1 操作系统概述
--第五章 习题1
--操作系统
--操作系统分类
--操作系统管理
-5-2 Windows 7基本操作
--第五章 习题2
-5-3 Windows 7文件管理
--第五章 习题3
-5-4 Windows 7程序管理
--第五章 习题4
-5-5 Windows 7系统安全
--第五章 习题5
--操作系统安全
-5-6 Windows 7计算机管理
--第五章 习题6
-5-7 Dos命令
--第五章 习题7
--dos
-5-8 Windows 7常用软件
--第五章 习题8
-5-9 Linux操作系统
--第五章 习题9
--Linux
-5-10 手机操作系统
--第五章 习题10
-5-11 虚拟机及Vmware介绍
--第五章 习题11
--虚拟机
--虚拟机使用
-第五章 章测试
-6-1 算法基础
--6-1 算法基础
--第六章 习题1
-6-2 程序设计语言分类
--第六章 习题2
-6-3 程序设计过程
--第六章 习题3
-6-4 程序设计方法
--第六章 习题4
-6-5 程序设计语言基本要素(一)
--第六章 习题5
-6-6 程序设计语言基本要素(二)
--第六章 习题6
-6-7 Python简介及编程环境配置
--第六章 习题7
-6-8 程序设计应用举例
--第六章 习题8
-第六章 章测验
-7-1 数据库技术概述
--第七章 习题1
--信息和数据
-7-2 数据库管理系统
--第七章 习题2
--数据库管理系统
-7-3 数据库系统的组成与功能
--第七章 习题3
--独立性
--数据库系统分类
-7-4 关系模型的数据结构
--第七章 习题4
--E-R图
--三级模式结构
-7-5 关系模型的数据操作及完整性约束
--第七章 习题5
--关系模型
--数据库范式
--完整性约束
-7-6 Access数据库的建立
--第七章 习题6
--Access
-7-7 Access的数据查询
--第七章 习题7
-第七章 章测试
-8-1计算机网络概述
--第八章 习题1
--定义
-8-2网络分类
--8-2网络分类
--第八章 习题2
--分类
-8-3数据传输
--8-3数据传输
--第八章 习题3
--数据传输
-8-4网络拓扑结构
--第八章 习题4
--网络拓扑结构
-8-5网络体系结构
--第八章 习题5
--网络体系结构
-8-6网络互连
--8-6网络互连
--第八章 习题6
--网络互连
-8-7Internet基础:TCP╱IP协议结构
--第八章 习题7
--TCP/IP模型
--IP协议
-8-8Internet基础:IP地址
--第八章 习题8
--IP地址
-8-9Internet基础:域名系统
--第八章 习题9
--域名
-8-10Internet基础:Internet的基本服务
--8-10Internet基础:Internet的基本服务
--第八章 习题10
--Internet
-8-11Internet基础:Internet的接入
--第八章 习题11
-第八章 章测试
-9-1信息安全的基本概念
--第九章 习题1
--信息安全的CIA
--攻击与防御
-9-2 密码技术及应用
--第九章 习题2
--数字签名
-9-3防火墙技术
--9-3防火墙技术
--第九章 习题3
--防火墙的分类
--防火墙的基本特性
-9-4恶意软件
--9-4恶意软件
--第九章 习题4
--恶意软件类型
-9-5入侵检测技术
--第九章 习题5
--入侵检测概念原理
--入侵检测分类
-第九章 章测试
-10-1 云计算
--10-1 云计算
--第十章 习题1
-10-2大数据
--10-2大数据
--第十章 习题2
-10-3物联网
--10-3物联网
--第十章 习题3
-10-4机器学习
--10-4机器学习
--第十章 习题4
-10-5人工智能
--10-5人工智能
--第十章 习题5
-10-6物联网应用
-第十章 章测验
-1-0 准备步骤
--1-0 准备步骤
-1-1 台式机组装
-1-2 笔记本电脑组装
-3-1 启动和退出Word
-3-2 创建、编辑和保存Word文档
-3-3 封面的制作
--封面的制作-1
--封面的制作-2
--封面的制作-3
--封面的制作-4
-3-4 长文档编辑
--长文档编辑
-3-5 页面插入与目录
-3-6 页眉页脚与页码
-3-7 完成文档
-4-1 创建和编辑Excel表格
-4-2 简单公式和函数
-4-3 插入图表
--4-3 插入图表
-4-4 电子表格中数据的管理
-5-1 创建演示文稿与添加幻灯片
-5-2 编辑演示文稿
-5-3 设置演示文稿外观
-5-4 交互式演示文稿的设置
-5-5 设置演示文稿动画和音乐
-5-6 演示文稿放映
-6-1 图像的修饰
-6-2 淡黄色的记忆
-6-3 心形贺卡
--6-3 心形贺卡
-6-4 燃烧字
--6-4 燃烧字
-6-5 闻味的小狗狗
-6-6 换脸
--6-6 换脸
-7-1 逐帧动画的制作
-7-2 动作补间动画的制作
-7-3 形状补间动画的制作
-8-1 网站制作前期工作
-8-2 在Dreamweaver中建立和管理站点
-8-3设计制作网站主页
-8-4 制作网站导航栏
-8-5 修饰美化页面
-8-6 填写页面内容
-8-7 设计制作次级页面并建立链接
-9-1 Python的下载
-9-2 Python的安装
-9-3 IDLE的使用
-9-4 求矩形的周长和面积
-9-5 求三角形的面积
-9-6 求素数
--9-6 求素数
-10-1 数据库的建立
-10-2 SQL的应用
-11-1 Packet Tracer简介及下载方法
-11-2 有线网络的组网与配置
-11-3 无线网络的组网及无线路由配置
-12 无线网络安全配置