【密码学】分组密码的工作模式

1.电码本模式(ECB)

优点: 每个数据块独立加密,可并行加密,实现简单。

缺点: 相同明文会产生相同密文,不具备数据完整保护性。

适用于短消息的加密传输 (如一个加密密钥)。

工作流程:用相同的密钥分别对应明文分组单独加密。

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

优点:每个密文块的加密依赖前一个密文块,具备数据完整性保护。

缺点: 错误传播、不适合并行处理

适用于常规文件加密、非实时加密等场景

工作流程:将前一个密文块与当前明文块进行异或运算后再加密,初始向量(IV)用于第一个块的加密。

3.密文反馈模式(CFB)

优点:可变长度的加密操作,实时性,可以部分解密数据。

缺点:密文分组的错误传播敏感,不适合并行处理的场景,需要保证初始向量的唯一性和完整性。适用于流加密和对特定部分数据进行随机访问的场景。

适用于流加密和对特定部分数据进行随机访问的场景

工作流程:将前一个密文块作为输入进行加密,生成一个密钥流,再与当前明文块进行异或运算得到密文块。

4.输出反馈模式(OFB)

优点:可变长度的加密操作,实时性,对密文分组的错误不敏感。

缺点:传输错误不可恢复,无法提供数据完整性保护,不支持并行加密。

适用于实时数据流加密和随机访问的场景

工作流程:将前一个加密算法的输出作为输入进行加密,生成一个密钥流,再与当前明文块进行异或运算得到密文块。

5.计数器模式(CTR)

优点:并行处理,随机访问,不受错误传播影响。

缺点:计数器必须唯一,密钥流和明文相关性较弱。

适用于并行加密、随机访问和实时加密的场景。

工作流程:每一个明文分组都与一个经过加密的计数器异或。对每个后续的分组,计数器增1。

6.总结:

工作模式

描述

优点

缺点

典型应用

电码本模式(Electronic Codebook,ECB)

用相同的密钥分别对明文分组单独加密

简单直观的加密模式;可以进行并行加密操作;可以随机访问任意块

相同的明文块会生成相同的密文块;缺乏混淆和扩散

单个数据的安全传输

密文分组链接模式(Cipher Block Chaining,CBC)

加密算法的输入是上一个密文分组和下一个明文分组的异或

密文之间的依赖性增加了安全性;可处理任意长度的数据;可抵抗明文和密文的修改

不适合并行处理;需要处理初始向量;算法之间可能存在差异

面向分组的通用传输;认证

密文反馈模式(Cipher Feedback,CFB)

一次处理输入的s位,上一个密文分组作为加密算法的输入,产生的伪随机数输出与明文异或后作为下一个单元的密文

可变长度的加密操作;实时性;可以部分解密数据

错误传播敏感;不适合并行处理;保证初始向量的唯一性和完整性

面向数据流的通用传输;认证

输出反馈模式(Output Feedback,OFB)

与CFB类似,只是加密算法的输入是上一次加密的输出,并且使用整个分组

可变长度的加密操作;实时性;对密文分组的错误不敏感

传输错误不可恢复;无法提供数据完整性保护;不支持并行加密

噪声信道上的数据传输(如卫星通信)

计数器模式(Counter,CTR)

每个明文分组都与一个经过加密的计数器异或。对每个后续的分组,计数器增1

并行处理;随机访问;不受错误传播影响。

计数器必须唯一;密钥流和明文相关性较弱

面向分组的通用传输;用于高速需求

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PR时间轴

简介 时间轴记录整个项目所发生的一切,它包括视频轨道、音频轨道、字幕轨道,可以队单独的任意轨道进行编辑。 时间轴上还可以使用编辑点对素材进行简单编辑,也可以锁定轨道保证素材不会被其他操作改变。 播放指示器(指针&#x…

【RBF SBN READ】hadoop社区基于RBF的SBN READ请求流转

读写分离功能的背景及架构 当前联邦生产集群的各个子集群只有Active NameNode在工作,当读写任务变得繁忙的时候,只有一个Active负责处理的话,此时集群的响应和处理能力业务侧感知会明显下降,为此,我们将引入Observer架构,实现读写功能的分离,使得Active只负责写请求,而…

记事本建java及java命名规范

1.桌面开发:c# 2. 记事本建java: 以class的名称(类名)为名,名称.java 编译jdk:javac 名称.java 调动运行jre : java 名称 查看名称.java里面的内容:cat 名称.java java 的命名规范 大驼峰(每个单词首…

YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标/遮挡目标

本文这次分享的是三重注意力机制Triplet Attention。现在注意力机制在计算机视觉任务中被广泛研究和应用,如 Squeeze-and-Excitation Networks (SENet)、Convolutional Block Attention Module (CBAM) 等。然而,这些方法存在一些局限性,例如需…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型AI工具,成为了超越疫情的热门词条;而在AI的另一个分支——绘图领域,一款名为Midjourney(MJ&#xff…

如何修复和防止 500 内部服务器错误的发生

当遭遇 500 内部错误时,意味着服务器出现了意外状况,以至于无法对请求予以回应。这种错误往往源于服务器端的各类问题,像是服务器配置出现偏差、脚本存在漏洞或者服务器瞬间负荷过重等。在不少情形下,服务器管理员能够化解此难题&…

算法刷题Day11: BM33 二叉树的镜像

点击题目链接 思路 转换为子问题:左右子树相反转。遍历手法:后序遍历 代码 class Solution:def Transverse(self,root: TreeNode):if root None:return rootnewleft self.Transverse(root.left)newright self.Transverse(root.right)# 对root节点…

【项目】基于YOLOv10的目标检测项目

【项目】基于YOLOv10的目标检测项目 (一)模型性能(二)安装与使用(1)环境安装(2)快速使用(3)模型评估Validation(4)模型训练Training&a…

与火山引擎合作深化,观测云携一站式监控解决方案登陆万有商城

近日,观测云正式宣布入驻火山引擎的万有商城。作为一款全栈式数据观测与分析平台,观测云的加入不仅丰富了火山引擎生态,也为广大企业用户带来了更便捷的数字化工具,助力企业快速实现业务监控与优化。 从全球覆盖到本地深耕&#x…

计算机网络原理之HTTP与HTTPS

一、前言 为了理解HTTP,我们有必要事先了解一下TCP/IP协议簇。 通常我们使用的网络(包括互联网)是在TCP/IP协议簇的基础上运作的。而HTTP属于它内部的一个子集。 计算机与网络设备要相互通信,双方必须基于相同的方法。比如&#…

java注解(二):注解的解析以及应用场景、用注解和反射模拟junit框架代码演示

目录 1、什么是注解的解析? 2、解析注解的案例 1、自定义一个注解 2、在类和方法上使用自己定义的注解 3、解析注解 3、模拟Junit框架案例 1、自定义一个MyTest注解 2、定义一个测试类,使用自定义的注解 3、写一个启动类 本文章主要讲解什么是注…

15.三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&am…

03_Webpack模块打包工具

03_Webpack模块打包工具 目录 知识点自测 以下哪个选项是 ECMAScript 默认导出和导入的语法? A:export 和 require B:module.exports {} 和 import 变量名 C:export default 和 import 变量名 D:export 和 import {…

实验七 用 MATLAB 设计 FIR 数字滤波器

实验目的 加深对窗函数法设计 FIR 数字滤波器的基本原理的理解。 学习用 Matlab 语言的窗函数法编写设计 FIR 数字滤波器的程序。 了解 Matlab 语言有关窗函数法设计 FIR 数字滤波器的常用函数用法。 掌握 FIR 滤波器的快速卷积实现原理。 不同滤波器的设计方法具有不同的优…

day07 接口测试(2)

目录 1、接口用例设计 1.1 接口测试的测试点 1.1.1 功能测试 !! (1)单接口功能: (见1.3) (2)业务场景功能:(见1.4) 1.1.2 性能测试&#xf…

CentOS 二进制安装部署MongoDB 4.0

一、安装MongoDB 1. 下载 MongoDB 二进制文件 前往 MongoDB 官方下载页面(https://www.mongodb.com/try/download/community) 选择对应版本的 tar 包。 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.28.tgz 2. 解压并移动至目标目录 解压文件&#xff…

《Scientific Reports》2024最新投稿经验

"Scientific Reports" 是Nature Portfolio旗下一本备受推崇的开放获取多学科期刊,自2011年起被JCR收录。这本月刊致力于发表自然科学、心理学、医学和工程学领域的突破性原创研究。它的收稿范围广泛,覆盖物理学、化学、生物学、地球科学、环境…

C++内存布局以及常用关键字

C内存布局以及常用关键字 C的内存空间 代码存储区域:常量区、代码区、静态区(全局区)、堆区、栈区 栈区向下增长,堆区向上增长。栈由系统管理,没有内存碎片,每个元素之间都是连续的,大小比较…

设计模式:19、桥接模式

目录 0、定义 1、桥接模式的四种角色 2、桥接模式的UML类图 3、示例代码 0、定义 将抽象部门与实现部分分离,使它们都可以独立地变化。 1、桥接模式的四种角色 抽象(Abstraction):一个抽象类,包含实现者&#xf…

Linux中文件操作

文件由文件内容和文件属性构成,因此对文件的操作就是对文件内容或文件属性的操作。所谓的“打开一个文件”就是将文件的属性或内容加载到内存中,而没有被打开的文件存在于磁盘上。打开的文件称作“内存文件”,未被打开的文件称作“磁盘文件”…