实用密码学
范学雷
前 Oracle 首席软件工程师,Java SE 安全组成员,OpenJDK 评审成员
14948 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 24 讲
开篇词 (1讲)
课前必读 (1讲)
案例分析 (1讲)
实用密码学
15
15
1.0x
00:00/00:00
登录|注册

09 | 为什么ECB模式不安全?

你好,我是范学雷。
上一讲,我们讨论了对称密钥分组算法的计算过程,我们找到了影响对称密钥算法安全性的五个关键因素,以及初始化向量对算法安全性的影响和选择。
不过,还有一些遗留的问题,我们没有来得及讨论,链接模式和数据补齐方案对算法安全性有什么样的影响?它们是怎么影响分组算法安全性的呢?我们又该怎么避免这些安全陷阱呢?
其实,这都是对称密钥分析的核心问题。因为,可以说,每一种链接模式、每一种数据补齐方案都有着不同的构造,当然也就对应着不同的分析办法,而且分析起来都较为复杂。
这一讲,我们先来分析链接模式对安全性的影响,同时,我们还可以借此机会研究一下 ECB 模式到底有什么问题。还记得吧?我们在开篇词提到过,它不是一个安全的加密模式。
在讲 ECB 模式之前,首先,我们先来看看链接模式是怎么一回事。

链接模式怎么连?

我们上一讲说过,链接模式指的是如何把上一个分组运算和下一个分组运算联系起来,使得上一个分组运算可以影响下一个运算。但是,这个联系是怎么建立起来的,上一个运算到底又是怎么影响下一个运算的,这个描述是模糊的。
从道理上来说,上一个分组运算的所有要素,都有可能参与到下一个分组运算里;下一个分组运算的每一个要素,都有可能接收上一个运算的一个要素或者几个要素的组合。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

ECB模式是一种不安全的加密模式,因为它不使用链接模式,也不需要初始化向量,导致相同的明文分组会被加密成相同的密文分组。这使得攻击者可以通过寻找重复的密文,推断未知数据,甚至进行“分组重放”攻击。虽然ECB模式具有独立运算、并行运算的特性,但其安全缺陷使其不适合在实际加密应用中使用。因此,对称密钥算法的链接模式和数据补齐方案对算法安全性有着重要影响,需要特别关注和理解每种模式的原理,避免掉入安全陷阱。 文章提醒读者在加密算法选择和使用时要谨慎,避免出现安全漏洞。虽然ECB模式是分组算法的基础,但有密码学专业知识的算法工程师可以通过合理地使用ECB模式,来构造更复杂、更安全的算法。然而,一般的应用程序不应该使用ECB模式,因为它被认为是一个不安全的加密模式。 通过解构ECB模式,读者可以了解分组算法里,初始化向量缺失可能带来的问题,以及链接模式缺失可能带来的问题。最后,文章还讨论了ECB模式的实际用途,并提出了一个实用性的建议:一般的应用程序不应该直接使用ECB模式。 总的来说,读者通过本文可以了解到ECB模式的安全问题,以及在实际应用中应避免使用的原因。同时,也提醒读者在选择加密算法时要注意安全性,避免出现潜在的安全漏洞。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《实用密码学》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(14)

  • 最新
  • 精选
  • LXX
    老师好,ECB模式下 "如果我们知道数据块对应的密文,我们就可以通过寻找重复的密文,在没有密钥,也不执行解密操作的情况下,知道对应的数据块。" 这,那是每个系统使用ECB的密钥都是 一样的吗?所以,才会在没有初始向量的情况,从其他系统,比如HTTP的头部数据之类的方式来找到重复密文对应的明文?谢谢老师

    作者回复: 要使用相同的密钥,才能重组密文。不同的密钥,不存在密文重组攻击。

    2021-01-12
    1
  • 不知道该叫什么
    老师,其实有点没明白,链接模式是根据上一个分组加密完成的数据与下一组加密,还是取上一组部分的数据进行加密。

    作者回复: 要具体看是什么样的链接模式,接着看下一篇你就有答案了。

    2022-08-15归属地:美国
  • Geek_828b39
    很多应用的场景,尤其是互联网的应用场景,注入特定明文数据、获取对应密文信息的攻击也是轻而易举的事情。如果攻击者没有“0123456789012345”的密文信息,他可以构造一个这样的明文,然后让密钥持有者加密,然后他就可以获得对应的密文分组。 为什么密钥持有者会去加密攻击者构造的明文?

    作者回复: 密钥持有者的一个简单的任务就是加密明文。 辨别明文是来源于攻击者,还是正常的用户,并不总是一件简单的事情。

    2021-08-18
    3
  • 老师 ECB模式 因为没有链接和初始化向量 是不是对于相似的明文 加密出来的密文也是相似的呢, 还有就是 上一个分组可以将他的几个要素通过链接模式传递给下一个分组,这里几个要素指的是啥呀,不是之前说的“分组算法的五个重要组成吧(加解密函数,秘钥, iv ,链接,数据补齐)”😁😁😁😁😁😁

    作者回复: 相同的明文有相同的密文,所以相似的明文也有相似的密文,如果只是对应位改变的话。 这些要素包括输入数据,输出数据,中间计算结果,反正能想到的都可以。后面会讲具体的模式使用的是哪些要素。

    2020-12-30
  • 天天有吃的
    问题2:分组重放攻击的最小单位就是一个组吗?可不可能把某个组内内容修改了?或者再添加一个组,让原本的明文变长?

    作者回复: 当然有可能修改组,这是别的攻击方式,就不是分组重放攻击了。

    2020-12-18
    2
  • 天天有吃的
    小白打卡中... 问题1:王二于二零二零年八月二十二日向李四借款人民币三十亿四千五百万六千圆整,立此为证。 这里有五行,为啥是四个分组?这里的四组是举例还是固定只能四组?

    作者回复: 写错了,应该是5个分组。 谢谢。

    2020-12-18
  • 麋鹿在泛舟
    好处:来自于ECB模式本身的好处,无初始化IV和串行计算,性能会提升。 风险消减点: 没有链接,那么就不会被实施"分组重放”攻击,即攻击者无法通过篡改信息影响系统可用性。 引入的风险点: 随着数据变短,使用注入攻击匹配明文和密文的难度进一步降低,信息泄露风险提高。

    作者回复: 很棒! 分组攻击这一点,还需要考虑更多的使用场景。

    2020-12-16
  • LXX
    如果数据比较小,不需要链接,那么可能就不会存在分组攻击,效率会提高, 但同样可能会存在初始向量缺失带来的问题,而且或许是否有可能经过计算机大量运算逆推出明文
    2021-01-12
    3
  • Litt1eQ
    个人看法,对于比较小的数据分组如果说每次传递的数据都不重复的话 可以使用ECB模式 好处是不需要使用iv数据长度比较短 风险就是 如果两次传递相同的内容 最终的加密结果也是相同的
    2020-12-14
    1
    1
  • 林子茗
    思考题: 使用ECB的好处:不需要管理初始化向量,以及在加密和解密端同步初始化向量。 使用ECP的坏处:相同的明文总是加密成相同的密文;因为只有一个数据分组,并行运算、独立性等优势无法发挥。所以我认为不仅没有优势,反而劣势更大了。
    2023-06-07归属地:广东
收起评论
显示
设置
留言
14
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部