当前位置: 首页 > news >正文

密码学基础——分组密码的运行模式

        前面的文章中文我们已经知道了分组密码是一种对称密钥密码体制,其工作原理可以概括为将明文消息分割成固定长度的分组,然后对每个分组分别进行加密处理。

        下面介绍分组密码的运行模式

1.电码本模式(ECB)

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

3.密码反馈模式(CFB)

4.输出反馈模式(OFB)

5.计数器模式(CTR)

 

1.电码本模式(ECB)

         ECB(Electronic Codebook)模式是最简单的运行模式

工作原理:

        将明文分组后,对每个64bit长的明文分组独立地使用相同的密钥进行加密,得到密文分组。相同的明文分组会产生相同的密文分组。

        当密钥确定时,对明文的每一个分组,都有一个惟一的密文与之对应。因此我们可以形象地认为有一个非常大的电码本,对任意一个可能的明文分组,电码本中都有一项对应于它的密文。

        如果消息长于64比特,则将其分为长为64比特的分组,最后一个分组如果不够64比特,则需要填充。解密过程也是一次对一个分组解密,而且每次解密都使用同一密钥。

 

优点:简单高效,每个分组的加密可以并行处理,易于硬件实现。

缺点:缺乏安全性,由于相同明文分组加密结果相同,容易受到已知明文攻击,且不能隐藏明文的统计特性,不适用于对数据保密性要求较高的场景

 

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

工作原理:在加密时,将前一个密文分组与当前明文分组进行异或操作后再进行加密。第一个明文分组需要与一个初始向量(IV)进行异或操作。解密时,先对密文分组解密,然后再与前一个密文分组异或得到明文分组。

 

优点:安全性较高,因为每个密文分组都依赖于前面的所有明文分组和密钥,相同的明文分组在不同的位置加密后得到的密文不同,能有效隐藏明文的统计特性。

缺点:加密过程是串行的,无法并行处理,且对数据传输中的错误敏感,一个密文分组出错会影响到后续分组的解密

 

3.密码反馈模式(CFB)

工作原理:将前一个密文分组作为输入,通过密钥生成一个与明文分组等长的反馈值,该反馈值与当前明文分组进行异或得到密文分组。解密过程与加密类似,只是将密文分组作为输入来生成反馈值,再与密文分组异或得到明文分组。

CFB加密时,加密算法的输入是64比特移位寄存器,其初值为某个初始向量IV。加密算法输出的最左(最高有效位)  比特与明文的第一个单元   异或,产生出密文的第一个单元   ,并传送该单元。然后将移位寄存器的内容左移  位并将  送入移位寄存器最右边(最低有效位) 位。这一过程继续到明文的所有单元都被加密为止
解密时,将收到的密文单元与加密函数的输出进行异或。

 

 

优点:可以将分组密码转换为流密码,能够对任意长度的数据进行加密,且可以实时处理数据,适用于对实时性要求较高的场景。

缺点:与 CBC 模式一样,加密过程是串行的,无法并行处理,并且对错误敏感。

 

4.输出反馈模式(OFB)

工作原理:通过密钥生成一个与明文分组等长的输出值,该输出值与当前明文分组进行异或得到密文分组。在加密过程中,密钥和一个初始向量通过加密算法不断生成新的输出值。解密时使用相同的密钥和初始向量生成相同的输出值,再与密文分组异或得到明文分组。

 

 

优点:对传输错误不敏感,因为每个明文分组的解密只依赖于自身的密文分组和生成的输出值,不会像 CBC 和 CFB 模式那样出现错误传播。

缺点:安全性相对较低,若攻击者能够修改密文分组,可能会导致解密出的明文出现可预测的变化。

5.计数器模式(CTR)

工作原理:使用一个计数器,每次加密时将计数器的值作为输入,通过密钥生成一个与明文分组等长的密钥流,然后将密钥流与明文分组进行异或得到密文分组。计数器的值在每次加密后递增。

优点:加密和解密可以并行进行,效率高,且对错误不敏感,适用于高速数据处理和并行计算的场景。

缺点:需要确保计数器的值在不同的加密过程中是唯一的,否则可能会导致安全性下降。

 

相关文章:

  • 说话人分离中的聚类方法:深入解析Agglomerative聚类、KMeans聚类和Oracle聚类
  • vue3工程中使用vditor完成markdown渲染并防止xss攻击
  • 网络相关题目
  • 996引擎-疑难杂症:Ctrl + F9 编辑好的UI进入游戏查看却是歪的
  • Git vs SVN 核心区别
  • 《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第一篇:开发环境准备
  • DeepSeek底层揭秘——《推理时Scaling方法》内容理解
  • notepad++日常使用(每行开头、每行末尾增加字符串,每行中间去掉字符串)
  • 接口自动化测试总结
  • EN 60601-1-2(医疗电气设备电磁兼容性要求)及相关EMC标准的全面解读
  • 13_Hugging Face 核心组件介绍
  • Docker 数据挂载教程
  • SQL语言的物联网数据分析
  • 多语言电商系统:外贸货源共享系统的本土化实践
  • java后端对时间进行格式处理
  • Codeforces Round 1000 (Div. 2)
  • 激光干涉仪学习
  • mac 卸载流氓软件安全助手
  • TypeScript 中的 infer 关键字用途
  • C++11QT复习 (十六)
  • 网站建设属于哪个经营范围/网络推广图片大全
  • 网站建设常见问题处理/郑州seo网站有优化
  • 用c 可以做网站吗/经济新闻最新消息财经
  • 百度网站结构/seo推广排名平台有哪些
  • 做网站接单的网站/b2b商务平台
  • 武汉专业网站做网页/新媒体培训