IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络安全算法 -> 正文阅读

[网络协议]网络安全算法

1.共享密钥加密

  • 加密和解密都使用相同的密钥
  • 也称为对称加密

数据传输过程:

  1. A准备向B发送数据
  2. 为了防止被窃听,A使用密钥将数据加密以后再发送给B
  3. B受到加密的数据后用相同的密钥对数据进行解密

存在的问题

  • 如果A和B无法直接沟通,则需要通过未来来传输密钥,如果密钥被X窃听,X就可以破解密文

2.公开密钥加密

  • 加密和解密使用不同的密钥
  • 加密用的叫公开密钥
  • 解密用的叫私有密钥

数据传输过程:

  1. A准备向B发送数据
  2. 接受方B生成公开密钥和私有密钥,并且把公开密钥发送给A
  3. A使用B发送过来的公开密钥加密数据
  4. A将加密后的数据发送给B,B再使用私有密钥对密文解密
  5. 即使存在像“对称加密”过程发送产生的问题,即通过网络发送的密钥被窃听,但这里发送的是公开密钥,即使被窃听也无法破解数据

存在的问题:

  • 公开密钥加密存在公开密钥可靠性的问题
  1. A准备向B发送数据
  2. 接受方B生成公开密钥和私有密钥,并且把公开密钥发送给A
  3. 在密钥从B->A的过程中,X把传输过程的公开密钥换成了自己的公钥,将X的公钥发送给A
  4. A使用X的公钥加密数据并发送给B
  5. X窃听了A发送的数据,由于数据是由X的公钥加密的,因此X可以使用自己的私钥解密,这样就破解了,同时X使用B的公钥加密数据后发送给B,这样B就不会察觉数据已经被窃听
  6. 解决这个问题需要数字证书

1. 共享密钥存在无法安全传输密钥的问题
2. 公开密钥加密存在加密解密速度较慢的问题

3.混合加密

  • 对数据用对称密钥加密
  • 对密钥使用公开密钥加密

4.消息认证码

  • 消息认证码可以检测出消息是否已经被篡改
  • 使用的是共享密钥加密
  • A在发送信息的时候,A使用密文和密钥生成一个数值,将数值和密文一起发送
  • B在接受到消息时,也使用密文和密钥来生成一个数值,判断这个数值和A发送过来的数值是否一样,如果不一样说明数据被篡改

存在的问题:
A、B双方都可以对消息进行加密并计算出验证码,无法证明原本的消息是A生成的还是B生成的

5. 数字签名

  • 公开密钥加密中,加密使用的是公开密钥P,解密使用的是私有密钥S,任何人都可以使用公开密钥对数据进行加密,只有持有私钥的人才能解密
  • 数字签名的方法域公开密钥的方法相反
  1. 发送者A准备好发送的消息,公钥和私钥(公开密钥加密是接受者B准备好公钥和私钥)
  2. A将公钥发送给B
  3. A使用私钥加密数据的摘要(摘要可以用hash函数产生),加密后的摘要就是数字签名
  4. A将加密后的数据和数字签名一起发送给B
  5. B收到数据和数字签名后,用公钥解密数字签名得到摘要1,用公钥解密消息得到明文,用hash函数处理明文得到摘要2,比较摘要1和摘要2可以判断消息有没有被篡改、是否由A发送、预防事后否认

存在的问题:

使用数据签名后B会相信消息的发送者就是A,但实际上也有可能是X冒充了A
原因在于使用公开密钥加密无法确认密钥的制作者是谁

6.数字证书

  • 公开密钥加密和数字签名都无法保证公开密钥确实来自信息的发送者,因此,就算公开密钥被第三者恶意替换,接受方也不会注意到
  1. A现在要将公开密钥和私有密钥发送给B
  2. A需要先像认证中心CA申请发行证书,证明公钥P是自己的
  3. 认证中心CA里保管着A的公钥和私钥
  4. CA认证A的资料(邮箱、身份证),确认是A本人的资料,认证中心CA使用自己的私钥,根据A的资料和公钥生成数字签名,同时CA也保存了A的资料和数字签名
  5. B接收到A发送的信息和数字签名后,用CA的公钥解密A的数字签名,得到A的信息和公钥
  6. 如果在这个过程中X假冒A发送公钥和数字签名,B使用CA的公钥解密后的信息就不符合A的信息
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:51:07  更:2021-07-24 11:53:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 17:45:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码