加密与安全_常见的分组密码 ECB、CBC、CFB、OFB模式介绍

文章目录

  • Pre
  • 概述
  • why
  • 分组密码和流密码的基本概念
  • 什么是模式
  • 分组密码的常见模式
    • 1. ECB 模式(电子密码本模式)
    • 2. CBC 模式(密文分组链接模式)
    • 3. CFB 模式(密文反馈模式)
    • 4. OFB 模式(输出反馈模式)
  • 模式选择建议

在这里插入图片描述


Pre

在这里插入图片描述
在这里插入图片描述


概述

在这里插入图片描述

  1. 介绍分组密码基本概念。
  2. 讲解ECB模式的工作原理、优缺点及应用场景。
  3. 详细介绍CBC模式的工作原理、优缺点及应用场景。
  4. 说明CFB模式的工作原理、优缺点及应用场景。
  5. 解释OFB模式的工作原理、优缺点及应用场景。
  6. 总结并给出模式选择的建议。

why

当需要加密任意长度明文时,就需要分组迭代进行加密。 分组密码有很多模式,如果模式选择不当,就无法充分保证明文的机密性



分组密码和流密码的基本概念

分组密码:将明文数据划分为固定长度的块(通常为128位或64位),然后逐块加密。每个块称为一个分组(block)。

流密码:对数据流进行连续处理的加密算法,逐位或逐字节加密,适用于数据流的加密。


什么是模式

模式是分组密码的迭代算法

比如我们常使用的 DES 算法中的 ECB 模式。 ECB 模式就是将明文分割成多个分组并逐个加密的方法。 ECB 算法计算量小,加解密速度快,但现在已经证实 ECB 是不可靠的模式了。 所以正式场合中不要使用 ECB 模式


分组密码的常见模式

1. ECB 模式(电子密码本模式)

ECB 将明文进行分组后直接加密产生密文分组

在这里插入图片描述

工作原理

  • 将明文分割成多个固定长度的分组。
  • 每个分组独立加密。

优点

  • 计算简单,速度快。
  • 支持并行处理。

缺点

  • 相同的明文分组会产生相同的密文分组,无法隐藏明文的模式和结构。
  • 容易受到统计分析攻击。

应用场景

  • 不适合用于敏感信息的加密,不推荐在正式场合使用。

ECB 模式中,明文和密文是一一对应的。相同的明文一定可以得到相同的密文。所以虽然不能直接根据密文推导出明文,但可以根据密文的特点进行定向攻击

例如: Bob 向 Alice 发送了一个转账的报文:

分组1 = Bob的银行账号 
分组2 = Alice的银行账号 
分组3 = 转账金额

虽然 Eve 不能直接修改账号和金额(因为没有解密数据),但 Eve 可以通过交换分组 1 和分组 2,造成攻击。

分组1 = Alice的银行账号 
分组2 = Bob的银行账号 
分组3 = 转账金额

这种攻击方式能成功就是因为 ECB 没有隐藏明文信息造成的


2. CBC 模式(密文分组链接模式)

密文分组链接模式

在这里插入图片描述

工作原理

  • 第一个明文分组与初始向量(IV)异或后进行加密,产生第一个密文分组。
  • 后续每个明文分组与前一个密文分组异或后进行加密,产生相应的密文分组。

优点

  • 能够隐藏明文的模式和结构,提高安全性。
  • 支持并行解密。

缺点

  • 加密时不支持并行处理,需串行进行。
  • 若某个密文分组损坏,会影响当前和下一个分组的解密。

CBC 最核心的一个环节,是将前一个密文分组作为一个变量带入了下一个明文加密中。 这样即便明文相同,但经过密文异或操作后,就会出现不同的结果。通过这样就实现了混淆明文信息的目的。

但不知道你有没有发现,第一个明文分组如何处理呢? 在处理第一个明文分组时,异或为 0.那么密文分组 A 就退化成了 ECB 模式。 为了避免出现这种情况,我们就需要人为补充一个初始密文分组,这个初始的密文分组就称为IV分量

在这里插入图片描述

应用场景

  • 在需要高安全性且可以容忍串行加密的场景中使用,如文件加密。

3. CFB 模式(密文反馈模式)

对 CBC 模式的一种改进

在这里插入图片描述
在 CFB 模式中,明文分组和密文分组之间只做异或操作就可以了。在此时此刻,密码算法的输出有一些一次性密码本的意思了.

工作原理

  • 第一个明文分组与初始向量(IV)异或后进行加密,产生第一个密文分组。
  • 后续每个明文分组与前一个密文分组异或后进行加密,产生相应的密文分组。

优点

  • 支持并行解密。
  • 可以解密任意的密文分组。

缺点

  • 不能抵御重放攻击。

应用场景

  • 实时通信加密,如网络数据传输。

4. OFB 模式(输出反馈模式)

输出反馈模式。 密码算法的输出会反馈到密码算法的输入中

OFB 并不是通过密码算法对明文进行加密的,而是通过将明文分组和密码算法的输出进行异或来产生密文的。所以 OFB 和 CFB 也有一些类似.

在这里插入图片描述

工作原理

  • 初始向量(IV)输入到加密算法中,产生一个伪随机输出。
  • 明文分组与该伪随机输出异或,产生密文分组。
  • 伪随机输出反馈给加密算法,继续生成下一个伪随机输出。

优点

  • 不需要填充(Padding)。
  • 若密文包含错误比特,仅对应的明文比特会出错。

缺点

  • 不支持并行解密。
  • 存在比特反转攻击风险。

应用场景

  • 对错误容忍性要求较高的场景,如视频流加密。

模式选择建议

  1. ECB 模式:简单快速,但不安全,不推荐使用。
  2. CBC 模式:适用于高安全性需求的场景,如文件加密,推荐使用。
  3. CFB 模式:适用于实时通信,支持并行解密,但需防范重放攻击。
  4. OFB 模式:适用于错误容忍性要求高的场景,但不支持并行解密。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/782282.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文略读:Can Long-Context Language Models Subsume Retrieval, RAG, SQL, and More?

202406 arxiv 1 intro 传统上,复杂的AI任务需要多个专门系统协作完成。 这类系统通常需要独立的模块来进行信息检索、问答和数据库查询等任务大模型时代,尤其是上下文语言模型(LCLM)时代,上述问题可以“一体化”完成…

Qt/C++音视频开发78-获取本地摄像头支持的分辨率/帧率/格式等信息/mjpeg/yuyv/h264

一、前言 上一篇文章讲到用ffmpeg命令方式执行打印到日志输出,可以拿到本地摄像头设备信息,顺藤摸瓜,发现可以通过执行 ffmpeg -f dshow -list_options true -i video“Webcam” 命令获取指定摄像头设备的分辨率帧率格式等信息,会…

Python 全栈系列258 线程并发与协程并发

说明 最近在大模型调用上,为了尽快的进行大量的数据处理,需要采用并发进行处理。 Before: 以前主要是自己利用CPU和GPU来搭建数据处理程序或者服务,资源受限于所用的硬件,并不那么考虑并发问题。在处理程序中,并发主要…

互联网十万个为什么之什么是数据备份?

数据备份是按照一定的备份频率创建数据副本的过程,将重要的数据复制到其它位置或者存储介质,并对生成的副本保留一定的时长。备份通常储存在不同的物理介质或云端,以确保数据的连续性和完整性。有效的备份策略至关重要,以防止数据…

ESP32-C3-Arduino-uart

引脚图 2实现串口发送接收 1默认值初始化串口(默认是uart0) Serial.begin(UART_BAUD); 参数是波特率 2自定义其他串口 2-1创建实例 HardwareSerial SerialUART(0); //数值指的是uart0 1为uart1.。。。。 2-2初始化 SerialUART.begin(UART_BAU…

LabVIEW的Actor Framework (AF) 结构介绍

LabVIEW的Actor Framework (AF) 是一种高级架构,用于开发并发、可扩展和模块化的应用程序。通过面向对象编程(OOP)和消息传递机制,AF结构实现了高效的任务管理和数据处理。其主要特点包括并发执行、动态可扩展性和强大的错误处理能…

不是哥们?你怎么抖成这样了?求你进来学学防抖吧!全方位深入剖析防抖的奥秘

前言 古有猴哥三打白骨精,白骨精 > 噶 今有用户疯狂点请求,服务器 > 噶 所以这防抖咱必须得学会!!! 本文就来讲解一下Web前端中防抖的奥秘吧!!!! 为什么要做防…

适用于 Windows 11/10/8/7/Vista/XP 的最佳免费分区软件

无论您使用的是 SSD、机械磁盘还是任何类型的 RAID 阵列,硬盘驱动器都是 Windows 计算机中不可或缺的组件。在将文件保存到全新磁盘之前,您应该初始化它,创建分区并使用文件系统格式化。在运行计算机一段时间后,您需要收缩、扩展、…

14-25 剑和侠客 – 预训练模型三部曲2 – 视觉

概述 在第 1 部分中,我们讨论了适用于文本的预训练模型的重要性及其在当今世界的相关性。大型语言模型 (LLM),尤其是 GPT-3 和随后的 GPT-3.5,已经获得了极大的欢迎,从而在 AI 讨论中引起了越来越多的关注。我们已经看到了用于构…

everything高级搜索-cnblog

everything高级搜索用法 基础4选项验证 总结搜索方式 高级搜索搜指定路径文件名: 文件名 路径不含文件名: !文件名包含单词 路径包含指定内容: 路径 content:内容 大小写 区分大小写搜索搜指定路径文件名: case:文件名 路径全字匹配 全字搜指定路径文件名: wholewo…

网络安全基础-2

知识点 1.网站搭建前置知识 域名,子域名,DNS,HTTP/HTTPS,证书等 注册购买域名:阿里云企航_万网域名_商标注册_资质备案_软件著作权_网站建设-阿里云 2.web应用环境架构类 理解不同WEB应用组成角色功能架构: 开发语…

四、(1)网络爬虫入门及准备工作(爬虫及数据可视化)

四、(1)网络爬虫入门及准备工作(爬虫及数据可视化) 1,网络爬虫入门1.1 百度指数1.2 天眼查1.3 爬虫原理1.4 搜索引擎原理 2,准备工作2.1 分析爬取页面2.2 爬虫拿到的不仅是网页还是网页的源代码2.3 爬虫就是…

Golang | Leetcode Golang题解之第213题打家劫舍II

题目: 题解: func _rob(nums []int) int {first, second : nums[0], max(nums[0], nums[1])for _, v : range nums[2:] {first, second second, max(firstv, second)}return second }func rob(nums []int) int {n : len(nums)if n 1 {return nums[0]}…

7.pwn 工具安装和使用

关闭保护的方法 pie: -no-pie Canary:-fno-stack-protector aslr:查看:cat /proc/sys/kernel/randomize_va_space 2表示打开 关闭:echo 0>/proc/sys/kernel/randomize_va_space NX:-z execstack gdb使用以及插件安装 是GNU软件系统中的标准调试工具,此外GD…

【计组OS】I/O方式笔记总结

苏泽 “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家 目录 IO方式:程序查询方式 工作原理 程序查询方式的详细流程: 1. 初始化阶段 2. 发送I/O命令 3. 循环检查状态 4. 数据传输 5. 继续查询 6…

reactor和proactor模型

Reactor模型是非阻塞的同步IO模型。在主线程中也就是IO处理单元中,只负责监听文件描述符上是否有事件发生,有的话就立即将事件通知工作线程,将socket可读可写事件放入请求队列,交给工作线程处理。 总而言之就是主线程监听有事件发…

期末考试结束,老师该如何私发成绩?

随着期末考试的落幕,校园里又恢复了往日的宁静。然而,对于老师们来说,这并不意味着工作的结束,相反,一系列繁琐的任务才刚刚开始。 成绩单的发放,就是其中一项让人头疼的工作。家长们焦急地等待着孩子的考试…

可视化作品集(08):能源电力领域

能源电力领域的可视化大屏,有着巨大的用武之地,不要小看它。 监控能源生产和消耗情况: 通过可视化大屏,可以实时监控能源生产和消耗情况,包括发电量、能源供应情况、能源消耗情况等,帮助管理者及时了解能…

14-39 剑和诗人13 - 顶级大模型测试分析和建议

​​​​​ 随着对高级语言功能的需求不断飙升,市场上涌现出大量语言模型,每种模型都拥有独特的优势和功能。然而,驾驭这个错综复杂的生态系统可能是一项艰巨的任务,开发人员和研究人员经常面临选择最适合其特定需求的模型的挑战。…

React中的useMemo和memo

引言 React是一个声明式的JavaScript库,用于构建用户界面。在开发过程中,性能优化是一个重要的方面。useMemo和memo是React提供的工具,用于帮助开发者避免不必要的渲染和计算,从而提升应用性能。 问题背景 在React应用中&#…