分组密码工作模式

 

 

在密码学中,分组密码工作模式可以提供诸如机密性或真实性的信息服务。 基于分组的对称加密算法(DES 、AES等)只是描述如何根据加密密钥对一段固 定长度(块)的数据进行加密,对于比较长的数据,分组密码工作模式描述了如 何重复应用某种算法加密分组操作来安全地转换大于固定长度的数据量。常见的 分组密码工作模式有ECB 、CBC 、CFB 、OFB 、CTR 5种,下面将对这5种工作模 式的分组密码进行简单介绍。

1.ECB

ECB(Electronic Codebook ,电子密码本)模式是最简单的加密模式,明文消 息被分成固定大小的块(分组),并且每个块被单独加密。每个块的加密和解密 都是独立的,且使用相同的方法进行加密,所以可以进行并行计算,但是一旦有 一个块被破解,使用相同的方法就可以解密所有的数据,安全性比较差。ECB模  式适用于数据较少的情形,加密前需要把明文数据填充到块大小的整倍数,如图 6-3所示为ECB模式示意图。

2.CBC

CBC(Cipher Block Chaining ,密码块链)模式中每一个分组要先和前一个分 组加密后的数据进行XOR(异或)操作,然后再进行加密。这样每个密文块依赖 该块之前的所有明文块,为了保持每条消息都具有唯一性,第一个数据块进行加 密之前需要用初始化向量IV进行异或操作。CBC模式是一种最常用的加密模式,

主要缺点为加密是连续的,不能并行处理,并且与ECB一样,消息块必须填充到 块大小的整倍数。如图6-4所示为CBC模式示意图。

 

 

 

 

 

52967073ff9841eda69c48f9d5cc0c12.png

图6-3    ECB模式示意图

 

 

 

 

 

bebfde6aaa9f404f9e746560381ca0d8.png

图6-4    CBC模式示意图

3.CFB

CFB(Cipher Feedback ,密码反馈)模式和CBC模式比较相似,前一个分组 的密文加密后和当前分组的明文进行XOR(异或)操作,生成当前分组的密文。 CFB模式的解密和CFB加密在流程上也是非常相似的,如图6-5所示为CFB模式示 意图。

 

 

 

 

 

eb963007d6164b22a9d57fe09ff21872.png

图6-5    CFB模式示意图

4.OFB

OFB(Output Feedback ,输出反馈)模式将分组密码转换为同步流密码,也 就是说可以根据明文长度先独立生成相应长度的流密码。在加密流程中可以看

出,OFB和CFB非常相似,CFB是前一个分组的密文加密后与当前分组明文进行 XOR操作,OFB是将前一个分组异或之前的流密码与当前分组明文进行XOR处

理。由于异或操作的对称性,OFB模式的解密与加密的流程完全相同,如图6-6所 示为OFB模式示意图。

 

 

 

 

 

ef68ffda0f594d74ab2104a695851c37.png

图6-6    OFB模式示意图

5.CTR

CTR(Counter ,计数器)模式与OFB模式相同,计数器模式将分组密码转换 为流密码。加密“计数器” 的连续值用来产生下一个密钥流块,原理如图6-7所示。

 

 

 

 

 

7f8b88d467f04a2899cb955173815d42.png

图6-7    CTR模式示意图

 

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

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

相关文章

Spring AOP的基本使用

Spring AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它允许开发者在不修改原有代码的基础上,通过动态代理的方式,在程序的执行过程中插入额外的逻辑。这种编程方式可以有…

C++ 预处理器

预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。 所有的预处理器指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C 语句,所以它们不会以分号(;&#xff09…

【Spring Boot 源码学习】BootstrapRegistry 详解

《Spring Boot 源码学习系列》 BootstrapRegistry 详解 一、引言二、往期内容三、主要内容3.1 源码初识3.2 register 方法3.3 registerIfAbsent 方法3.4 isRegistered 方法3.5 getRegisteredInstanceSupplier 方法3.6 addCloseListener 方法3.7 InstanceSupplier 内部接口类3.7…

使用Go的并发模型

Golang提供了强大的并发支持,可以轻松编写高效的并发程序。以下是一些使用Go并发模型的技巧: Goroutine:通过使用goroutine,您可以并发地执行函数或方法,从而充分利用多核处理器的能力。Channel:使用chann…

故障诊断 | 一文解决,GRU门控循环单元故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,GRU门控循环单元故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

基于spring boot实现邮箱发送和邮箱验证

目录 一、邮箱发送实现1. 开通邮箱服务2. 添加邮箱依赖3.添加配置4.添加邮箱通用类5. 测试类 二、邮箱验证实现1.添加依赖2. 添加配置3.添加controller4. 测试 项目地址: https://gitee.com/nssnail/springboot-email 一、邮箱发送实现 1. 开通邮箱服务 使用qq邮箱、163邮箱都…

1月无代码资讯 | 两项低代码无代码行业报告相继重磅发布;GitHub Copilot Chat全面开放使用

栏目导读:无代码资讯栏目从全球视角出发,带您了解无代码相关最新资讯。 TOP3 大事件 1、ResearchAndMarkets.com "低代码无代码开发平台市场—— 2018-2028 年全球行业规模、份额、趋势、机遇及预测"报告发布 据雅虎财经近日资讯显示&#xf…

网络层 IP协议(1)

前置知识 主机:配有IP地址,但是不进行路由控制的设备 路由器:既配置了IP地址,又能进行路由控制的设备 节点:主机和路由器的总称 IP协议主要完成的任务就是 地址管理和路由选择 地址管理:使用一套地址体系,将网络设备的地址描述出来 路由选择:一个数据报如何从源地址到目的地址 …

【LVGL源码移植】

LVGL源码移植 ■ LVGL源码移植一:下载LVGL源码二:修改LVGL文件夹1: 将这5个文件,复制到一个新的文件夹2: 简化文件,减少内存消耗(去除不必要的文件)3: 为了规范化,我们将下列文件进行重命名 三&…

git使用方法(简易版)

一、git使用过程 1.注册git账号,并新建一个仓库; http://t.csdnimg.cn/ePcsx可以参考链接 2.在电脑文件夹中,右键选择 Git Bash Here,输入git init(初始化仓库); git init - 初始化仓库。 Git 使用 git …

【Java万花筒】驶入未来:利用Java库构建智能自动驾驶与车联网系统

加速汽车智能化:解析自动驾驶与车联网的Java库应用技巧 前言 随着自动驾驶和车联网技术的发展,开发人员需要强大的工具和资源来构建智能交通系统。本文将介绍几个重要的Java库,包括Autoware、Apollo、OpenXC、CarSync和V2XLib,它…

webassembly003 MINISIT mnist/convert-h5-to-ggml.py

数据结构 # Convert MNIS h5 transformer model to ggml format # # Load the (state_dict) saved model using PyTorch # Iterate over all variables and write them to a binary file. # # For each variable, write the following: # - Number of dimensions (int) # …

张维迎《博弈与社会》多重均衡与制度和文化(1)多重均衡问题

什么是多重均衡 我曾经在课堂上做过这样一个实验:随机选择男女两位同学参加一个选数字的游戏。游戏的基本规则为:每一个同学随机地从1到10十个数字中任意选择5个。如果两人选择的数字没有任何重复的话,则每人可以得到50元;如果两人…

npm install 安装依赖,为什么有时候会修改项目 package-lock.json,怎么解决?

前端开发时经常会接手一个别人创建的项目已经上线了,后期让我来修复缺陷,或者子新增功能。 上来就使用npm install 安装项目依赖,一看package-lock.json文件被自动修改了,可是我也没有修改package.json文件内容啊,不管…

深入了解协议栈内核源码

三次握手内核源码 深入理解 Linux 的 TCP 三次握手_tcp_v4_conn_request-CSDN博客 socket.c 内核态函数入口 三次状态变化 创建socket入口 ping Breakpoint 7, SyS_socket (family2, type3, protocol1) at net/socket.c:1325 1325 SYSCALL_DEFINE3(socket, int, famil…

Google Gemini Pro 国内版

Google Gemini Pro 国内版:【直达链接】 Google Gemini Pro 国内版 能力分类基准测试描述更高分数更好Gemini UltraGPT-4通用MMLU57个主题(包括STEM、人文等)的问题表示是90.0%86.4%(5-shot, 报告)推理Big-Bench Hard…

微信小程序(二十九)交互提示-界面加载框和提示框

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.showLoading加载框示范 2.showToast提示框示范 源码&#xff1a; index.wxml <!-- 列表渲染基础写法&#xff0c;不明白的看上一篇 --> <view class"students"><view class"it…

音视频数字化(音乐CD)

上篇文章【音视频数字化(音频数字化)】我们聊了音频数字化原理,其中谈到了音乐CD,结尾也提到了一个小问题:“CD音质是最高吗?为什么?”不知道大家是怎么理解的。 其实CD质量只是“无损”存储,但是数字化标准只是“44.1kHz,16bit”,因此相对于现在,音质不能说最高。 …

故障诊断 | 一文解决,BP神经网络的故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,BP神经网络的故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

策略模式+SpringBoot接口,一个接口实现接收的数据自动分流处理

策略模式 定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式的精髓就在于将经常变化的一点提取出来,单独变成一类,并且各个类别可以相互替换和组合。 1、策略接口 CalculationStrategy //算数 public interface…