当前位置:首页 > 体育 >

数据分组的关键和核心怎么理解

来源:原点资讯(www.yd166.com)时间:2023-10-31 07:06:57作者:YD166手机阅读>>

当需要加密任意长度明文时,就需要分组迭代进行加密。 下面我们会聊到常用的分组模式和使用场景

分组密码有很多模式,如果模式选择不当,就无法充分保证明文的机密性(还记得密码加密体系要完成的三个目标么?)。比如当我们使用密钥加密一个全是'A'字符的文件时,如果没有分组迭代,那么密文可能都是相同字符的重复。 虽然我们没办法通过密文反推出明文,但根据不断重复出现的密文,可以大致推测出明文的字符分布规律。借助其他统计概率方法,可以大幅降低解密难度(参考通过词频破解凯撒加密的案例)。

那什么是模式呢?

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

模式是分组密码特有的方式,在流密码中并不存在模式。那何为流密码呢?

分组密码每次只能处理特定长度的一块数据,一块有时也称之为block。一个分组(block)的比特数就是分组长度。 流密码是对数据流进行连续处理的加密算法。流密码在加解密时需要保存上次计算的状态(分组密码则不需要,因为分组密码只需要计算当前 block 数据就可以了)。

我们在本节中只介绍分组密码,暂不介绍流密码。

下面来看常见的几种分组模式。

  • ECB

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

数据分组的关键和核心怎么理解,(1)

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

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

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

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

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

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

  • CBC

密文分组链接模式

顾名思义,CBC 是将密文分组像链条一样相互连接起来。典型的加密流程如下:

数据分组的关键和核心怎么理解,(2)

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

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

数据分组的关键和核心怎么理解,(3)

一般来说,每次加密时都应该随机产生一个不同比特的 IV 分量(如何随机产生,请参考本系列最后的随机工具箱说明)

在 CBC 模式中,我们无法单独解密某个分组。从图中也很容易理解,每个分组都需要前向分组信息才可以计算。这样设计有利有弊,好的是安全性高,但不好的地方是如果某个分组数据被损坏,会导致当前分组和下个分组的数据无法正常解密。

  • CFB

对 CBC 模式的一种改进

CFB 是对 CBC 模式的一种优化,加密流程看起来很类似:

数据分组的关键和核心怎么理解,(4)

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

  • OFB

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

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

数据分组的关键和核心怎么理解,(5)

注意: 加密函数的顺序一定要保持一致,无论是加密和解密都需要相同顺序的加密函数序列

从图中可以看出 OFB 模式和 CFB 模式很相近,区别仅仅在于密码算法的输入。

CFB 是将前一个密文分组作为下一个密码算法的输入,所以叫做密文反馈模式。 OFB 则是将前一个密码算法的输出当作下一个密码算法的输入,所以叫做输出反馈模式.

这四种是常用的分组密码模式,那么我们应该选择哪种模式作为分组加密模式呢?

  1. 首先可以排除 ECB,虽然它简单、快速和支持并行。 但无法隐藏明文信息所以不安全。
  2. CBC 可以支持并行解密,并且可以解密任意的密文分组。 所以在可以容忍串行加密的场景中,推荐使用 CBC。
  3. CFB 同样支持并行解密,并且可以解密任意的密文分组。但 CFB 不能抵御重放攻击。
  4. OFB 不需要对明文进行填充 Padding。如果密文包含错误比特时,只有明文中相对应的比特会出错。但不支持并行解密,存在比特反转攻击的问题。

所以综上所述,除了 ECB 不推荐之外。其他三种,只能可以容忍缺点,那么都是推荐使用的分组模式。

数据分组的关键和核心怎么理解,(6)

栏目热文

数据库分组查询是怎么分组(数据库如何分组查询平均值)

数据库分组查询是怎么分组(数据库如何分组查询平均值)

在BOS2.0课程学习spring data JPA的时候,已经对复杂的多表多条件联合查询进行讲解,对于分组的操作,sp...

2023-10-31 06:58:31查看全文 >>

灯心草功效及图片(灯心草图片功效与危害)

灯心草功效及图片(灯心草图片功效与危害)

灯心草、麦冬,泡茶饮用治急慢性咽炎、口腔炎。灯心草治急喉痹甚捷,麦冬润肺养阴,故泡茶饮能治急慢性咽炎、口腔炎来源产地《中...

2023-10-31 06:51:38查看全文 >>

灯心草泡水喝的功效(灯心草搭配什么煮水最好)

灯心草泡水喝的功效(灯心草搭配什么煮水最好)

既然昨天炖了灯芯草,今天老梁我就和大家介绍一下灯芯草大家在药店或者网上买的灯芯草大概是这样的之所以叫灯芯草是因为,古时候...

2023-10-31 06:47:02查看全文 >>

灯心草的作用及禁忌症(灯心草有什么副作用吗)

灯心草的作用及禁忌症(灯心草有什么副作用吗)

大家好,我是王小医。中成药,具有服用简便、疗效确切、可自行购买的优点,是很多家庭进行自我治疗的首选方式殊不知,中医诊治疾...

2023-10-31 06:36:33查看全文 >>

灯心草治失眠用多少克(灯心草治疗失眠配方)

灯心草治失眠用多少克(灯心草治疗失眠配方)

经过一夜酣睡,醒来时就觉得精神饱满,体力充沛,可是如果睡不好,就会明显觉得精神状态不行,头晕头昏,难以集中注意力。几种常...

2023-10-31 06:32:31查看全文 >>

数据在什么情况下需要分组整理(数据分组整理时间表)

数据在什么情况下需要分组整理(数据分组整理时间表)

“ hello小伙伴们大家好,本节内容我们继续学习Excel Power Query数据处理实用18种方法的第3种——分...

2023-10-31 07:08:20查看全文 >>

数据分组一般用在数值型数据上(数据分组的基本要求是什么)

数据分组一般用在数值型数据上(数据分组的基本要求是什么)

Excel可以使用分组功能来实现折叠展开行列的效果,同时可以在单元格内添加 号或-号来进行操作。具体步骤如下:1. 选中...

2023-10-31 07:07:02查看全文 >>

数据分组的最后一个步骤(如何以固定值将一组数据平均分组)

数据分组的最后一个步骤(如何以固定值将一组数据平均分组)

来源:我得学城本文约5900字,建议阅读10分钟本文我们将介绍比较两个(或多个)分布以及评估它们之间差异的大小和显著性的...

2023-10-31 06:33:54查看全文 >>

数值型数据分组的方法有哪些(数值型数据分组有哪些方法)

数值型数据分组的方法有哪些(数值型数据分组有哪些方法)

为帮助学习pandas,特意从和鲸社区中提炼出120道经典数据处理常见操作例题,从基础入门到进阶来更快速、更专业的角度理...

2023-10-31 07:08:57查看全文 >>

简单的数据排序和分组要知道什么(数据如何排序和分类汇总)

简单的数据排序和分组要知道什么(数据如何排序和分类汇总)

在登记各类的销售数据或者是部门分组数据的时候,我们经常会需要在上百条或者上千条数据中去进行数据筛选,以便可以得到我们想要...

2023-10-31 06:33:35查看全文 >>

文档排行