分组加密的工作模式

分组加密算法把数据分成固定长度的分组处理,算法的输入长度为一个分组的长度。为了改善安全性,适应不同的应用环境,分组加密有多种不同的工作模式。最常见的四种工作模式是:ECB,CBC,CFB,OFB。

ECB模式,

ECB模式是最简单的基本模式。在密钥的控制下,把一个分组长度的输入,转换为一个分组长度的输出。一个分组算法设计出来就是ECB模式的。这一模式用于实际应用加密的问题是,容易遭受字典攻击。ECB模式下,只要密钥确定了,相同明文一定输出相同密文。这一特性如同谍战片里的替换密码本,一字对一字。这就是ECB模式这一名称的来源,Electronic Code Book,一个电子密码本。每一种一种明文密文的对应关系,也唯一确定了密钥。由于明文往往存在固定的格式部分,这些固定输入对应的输出的变化仅为密钥的变化所导致。这大大降低了敌方分析密钥的难度,敌方可以预先把这些固定输入以不同密钥加密的密文制成字典,通过查阅字典,使得逆推密钥成为可能。传统的替换密码本会被词频统计方式攻击,ECB模式同样易于被类似的方式攻击。即使不知道密钥,在输入变化种类较少时,敌方只需一次获取这些明文与密文的对应关系,只要密钥未更换,敌方就能够在后续的通信中,持续获得密文对应的明文。

ECB模式加密是很直接的,将明文按照算法规定的分组长度分组并填充(padding),逐个分组分别加密即可。

ECB模式示意图

图片来自http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html

CBC模式,

为了阻止相同的用户明文在密钥不变时输出不变的密文,我们使用一个随机组成的分组作为扰码与第一个明文分组异或,扰乱明文的内在的一些固定结构和冗余,再加密这样扰乱过的分组,分组加密的输出密文分组既是加密结果的一部分,又是下一个分组加密的扰码。最初的那个随机数组成的分组称为初始向量,一般用符号IV表示。前一分组输出与下一个分组输入之间的链接关系使得IV的随机性扩散到整个输出密文之中。IV一般会随着密文一同保存和发送。解密时,逆向使用IV,即可恢复所有明文分组。随机IV的存在,使得相同明文相同密钥在不会输出相同的密文,增加了根据密文分析推测密钥和明文的难度。CBC模式的缺点之一是分组的前后链接关系使得加密难以实现并行处理。

CBC模式示意图

图片来自http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html

CFB模式,

ECB和CBC模式下,分组密码会把任意长度明文填充到分组长度的整数倍,然后这个分组处理。在流媒体的加密处理中,这是一个问题,信道往往不会去适应分组处理带来的长度变化。CFB和OFB模式可以用来把分组密码转换成一个流密码,加密可以做到不改变数据的长度。CFB使用密文反馈,能够支持任意长度数据的等长加密。但是密文反馈使得密文的误码会扩散。

CFB模式示意图

图片来自http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html

OFB模式

OFB模式看起来像一个真正的流密码。OFB的输出反馈机制使得主要的密码运算只需密钥确定了就可以进行,发方无需等待明文就绪,收方也无需等待密文收到。OFB模式下,分组密码具备流密码的使用特性,明密文长度一致,传输误码不会扩散。与真正的流密码算法对比,分组密码的OFB模式及CFB模式存在着运算效率降低,输出流周期难以确定的问题。

OFB模式示意图

图片来自http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html

小结

以上是几种最常见的分组加密工作模式,ECB是一个分组算法的基本模式,其他模式都是在ECB的基础上,引入各种链接、反馈等扩展处理流程所得。通过这些流程的不同组合,当然还能形成更多的工作模式。这些不同的工作模式,有些是为了增强安全性,有些是为了适应不同的加密应用环境。成熟的加密软件包均会支持这几种常用模式。作为加密应用开发者,如果基于这些加密软件包开发,需要关注的只是结合应用需要,选择合适的工作模式。一些加密硬件逻辑往往只会提供基本的ECB模式分组加密。这时,开发者需要按照应用的选择,将ECB模式的基本组件包装成需要的其他工作模式。

时间: 2024-10-31 21:25:30

分组加密的工作模式的相关文章

块密码的工作模式

密码学中,区块(Block)密码的工作模式(英语:mode of operation)允许使用同一个区块密码密钥对多于一块的数据进行加密,并保证其安全性.[1][2] 区块密码自身只能加密长度等于密码区块长度的单块数据,若要加密变长数据,则数据必须先被划分为一些单独的密码块.通常而言,最后一块数据也需要使用合适填充方式将数据扩展到符合密码块大小的长度.一种工作模式描述了加密每一数据块的过程,并常常使用基于一个通常称为初始化向量的附加输入值以进行随机化,以保证安全[1]. 工作模式主要用来进行加密

分组加密工作模式(ECB/CBC/CFB/OFB/CTR)

分组加密工作模式 目录 分组加密工作模式 符号说明 ECB(Electronic Codebook) CBC(Cipher Block Chaining) CFB(Cipher Feedback) OFB(Output Feedback) CTR(Counter) 计数块的生成 参考资料 符号说明 \(b\): 分组位长度; \(n\): 明文中分组或分段个数; \(s\): 分段数据的位长度; \(u\): 最后一个明文块或密文块的位长度; \(C_i\): 第\(i\)个密文块(block)

分组加密的四种模式(ECB、CBC、CFB、OFB)

加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric Key Encryption). 对称加密又分为分组加密和序列password. 分组password.也叫块加密(block cyphers).一次加密明文中的一个块.是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组. 序列password.也叫流加密(stream cyphers),一次加密明文中的一个位.是指利用少量的密钥(

分组加密的四种模式

(以下内容整理自网络文章)加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric Key Encryption). 对称加密又分为分组加密和序列密码.分组密码,也叫块加密(block cyphers),一次加密明文中的一个块.是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组.序列密码,也叫流加密(stream cyphers),一次加密明文中的一个位.是指利用少量的密钥(制乱元素)通过

高级加密标准AES的工作模式(ECB、CBC、CFB、OFB)

高级加密标准(Advanced Encryption Standard: AES)是美国国家标准与技术研究院(NIST)在2001年建立了电子数据的加密规范.它是一种分组加密标准,每个加密块大小为128位,允许的密钥长度为128.192和256位. ECB模式(电子密码本模式:Electronic codebook) ECB是最简单的块密码加密模式,加密前根据加密块大小(如AES为128位)分成若干块,之后将每块使用相同的密钥单独加密,解密同理. CBC模式(密码分组链接:Cipher-bloc

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)

对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB) 一. AES对称加密: AES加密 分组 二. 分组密码的填充 分组密码的填充 e.g.: PKCS#5填充方式 三. 流密码:   四. 分组密码加密中的四种模式: 3.1 ECB模式 优点: 1.简单: 2.有利于并行计算: 3.误差不会被传送: 缺点: 1.不能隐藏明文的模式: 2.可能对明文进行主动攻击: 3.2 CBC模式: 优点: 1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL.IPSec的标准.

分组密码的工作模式

分组密码工作模式的应用背景:多次使用相同的密钥对多个分组加密,会引发许多安全问题.为了应对不同场合,因而需要开发出不同的工作模式来增强密码算法的安全性. 1.ECB(Electronic Code Book) 特别适合数据较少的情况,对于很长的信息或者具有特定结构的信息,其大量重复的信息或固定的字符开头将给密码分析者提供大量的已知明密文对.若明文不是完整的分组,ECB需要进行填充. 2.CBC(Cipher Block Chaining) 由于加密算法的每次输入和本明文组没有固定的关系,因此就算

分组加密的填充

分组算法加解密是以定长的数据块分组为单位的.AES常用的分组长度是128bit,即16个字节,AES算法也有256bit的分组长度模式,其他不同的分组算法分组长度各不相同.明文数据的长度不会总是恰好等于分组长度的整数倍.为了调用分组算法加密,必须把最后一组明文填充到整个分组的长度,解密时去掉填充的字节即可.一种填充方式是,记明文比一个分组缺少的字节数为N,在明文的后面追加N个值为N的字节即可.如果明文长度恰好是分组长度的整数倍,无需填充,则在明文末尾增加一个分组,每个字节的值都是分组长度L.解密

[国嵌笔记][021-022][ARM处理器工作模式]

[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式 5.Abort(abt):异常模式 6.Undefined(und):未定义指令模式 7.System(sys):系统模式 [ARM寄存器详解] ARM寄存器(37个) 通用寄存器(31个) 1.未分组通用寄存器(R0-R7) 2.分组通