对称加密算法常用的五种分组模式(ECB/CBC/CFB/OFB/CTR)

6 篇文章 2 订阅
订阅专栏

版权声明:本文为作者原创,如需转载,请注明出处
https://blog.csdn.net/weixin_42940826
注:以下图片来自于《图解密码学》,这本书讲的更全面细致,建议阅读,在我资源库中有此书,还有使用go语言具体实现和解释此书中的各种加密算法的文档,有需要的可以自习前往免费下载

Q:为什么需要分组模式?
A:明文的长度不固定,而分组密码只能处理特定长度的一块数据,这就需要对分组密码的算法进行迭代,以便将一段很长的明文全部加密,而迭代的方法就是分组的模式。

一图全览五种分组模式

常用分组模式全览

五种模式详解

1. ECB - Electronic Code Book, 电子密码本模式

  • 特点: 简单, 效率高, 密文有规律, 容易被破解
  • 最后一个明文分组必须要填充
    • des/3des -> 最后一个分组填充满8字节
    • aes -> 最后一个分组填充满16字节
  • 不需要初始化向量

ECB模式图解


2. CBC - Cipher Block Chaining, 密码块链模式(推荐使用)

  • 特点: 密文没有规律, 经常使用的加密方式
  • 最后一个明文分组需要填充
    • des/3des -> 最后一个分组填充满8字节
    • aes -> 最后一个分组填充满16字节
  • 需要一个初始化向量 - 一个数组
    • 数组的长度: 与明文分组相等
    • 数据来源: 负责加密的人的提供的
    • 加解密使用的初始化向量值必须相同
      CBC模式的加密

3. CFB - Cipher FeedBack, 密文反馈模式

  • 特点: 密文没有规律, 明文分组是和一个数据流进行的按位异或操作, 最终生成了密文
  • 需要一个初始化向量 - 一个数组
    • 数组的长度: 与明文分组相等
    • 数据来源: 负责加密的人的提供的
    • 加解密使用的初始化向量值必须相同
  • 不需要填充
    CFB模式加密

4. OFB - Output-Feedback, 输出反馈模式

  • 特点: 密文没有规律, 明文分组是和一个数据流进行的按位异或操作, 最终生成了密文
  • 需要一个初始化向量 - 一个数组
    • 数组的长度: 与明文分组相等
    • 数据来源: 负责加密的人的提供的
    • 加解密使用的初始化向量值必须相同
  • 不需要填充
    OFB分组模式

5. CTR - CounTeR, 计数器模式(重点,推荐使用)

  • 特点: 密文没有规律, 明文分组是和一个数据流进行的按位异或操作, 最终生成了密文
  • 不需要初始化向量
    • go接口中的iv可以理解为随机数种子, iv的长度 == 明文分组的长度
  • 不需要填充
    这里我们有必要给出CTR模式额解密流程,因为CTR模式的解密和加密是一模一样的过程,在程序实现中也是可逆的,具体程序在文章实现底部有链接
    CTR分组模式
    CTR解密流程
    通过对比发现CTR加密即解密,解密即加密,且各分组之间是独立的,可以并发完成,效率高。

总结

以上五种分组模式中,ECB模式很容易被破解,如今已经很少再使用,其余四种分组模式各有千秋。
但极力推荐CBC模式和CTR模式,尤其是CTR模式,不需要填充,代码实现起来很方便。而且加密和解密的方法是一样的,并且可以实现并发分组,效率高,安全性也有保障

Q:何时需要填充,何时不需要填充?
A:观察分组模式的图示可以看出,加密后再进行亦或操作的不需要填充,而先进性亦或操作再加密的则不需要填充,这是因为亦或操作需要两个相同长度的数据,一一对比计算!


代码实现

篇幅有限,我在这篇帖子用以上分组模式实现了AES、DES、3DES的加密解密(go语言),轻戳了解。
CBC模式实现DES和3DES加密解密
CTR模式实现AES加密解密

安全基础学习-SM4加密算法
小夭的博客
08-16 2272
SM4 是一种对称加密算法,意味着加密和解密使用相同的密钥。它是一个 128 位(16 字节)分组密码,意味着它将明文分成 128 位的块,然后对每个块进行加密。SM4 使用了 128 位的密钥进行加密和解密。SM4 算法的主要特点是:分组长度:128 位。密钥长度:128 位。加密模式:支持多种模式,如ECB(电子密码本)、CBC(加密分组链接)、CTR(计数器模式)等。
对称加密DES(ECB/CBC/CFB/OFB/CTR
BlockchainY的博客
04-10 7392
对称加密 DES(Data Encryption Standard) DES密钥长度是56bit,从规格上来说,DES的密钥长度是64bit,但由于每隔7bit会设置一个错误检查的bit,因此实质上其密钥长度是56bit。 DES是以64bit的明文为一个单位进行加密,以64个bit进行分组,因此DES每次加密只能加密64bit的数据,当加密明文比较长,则进行迭代。所以当进行加密时对明文拆分每8个字节(64bit)一组,通过加密算法进行加密。 3DES加密 加密 -> 解密 -> 加密 可以兼
对称加密常用五种分组模式ECB/CBC/CFB/OFB/CTR)及哈希
木晓的博客
09-07 357
密码学对称算法五种模式理论介绍
国密SM4的5种加密模式(ECB CBC CFB OFB CTR XTS)源码及其参考文档.rar
11-13
包含内容:SM4国密加密算法C语言实现 包括 Spec,C代码,测试用例和分组密码有五种工作体制: 1.电码本模式(Electronic Codebook Book (ECB)); 2.密码分组链接模式(Cipher Block Chaining (CBC)); 3.计算器模式(Counter (CTR)); 4.密码反馈模式(Cipher FeedBack (CFB)); 5.输出反馈模式(Output FeedBack (OFB))
对称加密算法--分组模式&填充方式&python实操
m0_53202844的博客
05-03 1528
因为工作需要,接触到了各种加密算法 ,在学习过程中,也对其原理产生了一些兴趣,于是有了这篇学习笔记,也方便自己以后查阅。若文中有任何不正确的地方,敬请指正。
分组加密模式 ECBCBC、PCBCCFBOFBCTR
u013073067的博客
02-13 1万+
分组加密算法中,有几种不同的工作模式,分别是ECB(Electronic CodeBook,电子密码本模式)、CBC(Cipher-block chaining,密码块连接模式)、PCBC(Propagating cipher-block chaining,填充密码块链接模式)、CFB(Cipher feedback,密文反馈模式)、OFB(Output feedback,输出反馈模式)、CTR...
对称加密算法分组加密的六种工作模式ECBCBC、PCBCCFBOFBCTR
张维鹏的博客
10-07 1万+
加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric Key Encryption)。对称加密又分为分组加密和序列密码。 (1)分组加密,也叫块加密(block cyphers),一次加密明文中的一个块。是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组。具有代表性的块加密算法有...
C#加密 解密对接java 的加密AES/CBC/PKCS7Padding 转16进制.rar
05-08
AES的工作模式包括ECBCBCCFBOFBCTR等,其中**CBC(Cipher Block Chaining)**模式是一种常见的选择,它通过前一密文块与当前明文块异或后再加密,增强了安全性。 **PKCS7Padding**:PKCS7(Public-Key ...
梦想加密器 支持DES 3DES AES等加密算法ECBCBCCFBOFBCTR模式
06-19
首先,DES是一种对称加密算法,由IBM在1970年代开发,并在1977年被美国国家标准局采纳为标准。它基于64位的密钥和64位的数据块进行操作,但实际只有56位的密钥有效,因为它包含了8位的奇偶校验位。尽管DES在当时是一...
常用对称加密算法分组模式
wzw_42412605的博客
08-29 988
一、常用对称加密算法有 DES:特点是每隔7位做一次奇偶校验,加密时8个字节为一组,得到的密文长度不变 3DES:三重DES 加密过程为 加密-解密-加密(不是加密-加密-加密,是为了兼容以前的DES) 特点:安全,效率高,密钥为8*3=24bit,数据分组长度与DES相同 ①:如果密钥1与密钥2相同,或者密钥2与密钥3相同则相当于DES,体现了兼容性 ②:如果密钥1与密钥3相同,则相当于有两个密钥,专业名字:3des-EDE2 ...
AES加密模式ECB,CBC,CFB,OFB,CTR
07-15
NIST标准,AES加密模式介绍包括(ECB,CBC,CFB,OFB,CTR)。This recommendation defines five confidentiality modes of operation for use with an underlying symmetric key block cipher algorithm: Electronic Codebook (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB), and Counter (CTR). Used with an underlying block cipher algorithm that is approved in a Federal Information Processing Standard (FIPS), these modes can provide cryptographic protection for sensitive, but unclassified, computer data.
java aes 填充_【JAVA】AES加密 简单实现 AES-128/ECB/PKCS5Padding
weixin_30977281的博客
02-12 1528
AES加密AES 是一种可逆加密算法,对用户的敏感信息加密处理。本文暂不深入AES原理,仅关注JAVA代码实现AES加解密。JAVA代码实现这是一个在线AES加密网站。从页面上我们可以看到如下几点:AES加密模式ECB/CBC/CTR/OFB/CFB填充:pkcs5padding/pkcs7padding/zeropadding/iso10126/ansix923数据块:128位/192位/25...
常用分组密码算法五种模式加密(python)
qq_51608750的博客
05-11 3182
本文介绍常用分组密码AES,DES,3DES,Blowfish,CAST,Camellia的五种模式CBCECBCFBOFBCTR)加密。 需要使用的包: from Crypto.Cipher import AES,DES,DES3,Blowfish,CAST,ARC2,ARC4 from Crypto import Random from binascii import b2a_hex import string import random import os AES ..
简述分组密码的五种常用模式
xing的博客
11-01 1万+
简述分组密码的五种常用模式 分组密码是每次只能处理特定长度的一块数据的算法,每块都是一个分组分组的比特数就称为分组长度,但是当加密的内容超过分组密码的分组长度时,就要对分组密码算法进行迭代,迭代的方法称为分组密码的模式。 例如:DES和AES都是分组密码算法,DES和三重DES的分组长度都是64比特,AES的分组长度可以是128比特、192比特或256比特。 分组密码的模式主要有以下五种: EC...
加密与安全_常见的分组密码 ECBCBCCFBOFB模式介绍
最新发布
小工匠
07-07 2756
介绍分组密码基本概念。讲解ECB模式的工作原理、优缺点及应用场景。详细介绍CBC模式的工作原理、优缺点及应用场景。说明CFB模式的工作原理、优缺点及应用场景。解释OFB模式的工作原理、优缺点及应用场景。总结并给出模式选择的建议。模式分组密码的迭代算法比如我们常使用的 DES 算法中的 ECB 模式ECB 模式就是将明文分割成多个分组并逐个加密的方法。ECB 算法计算量小,加解密速度快,但现在已经证实 ECB 是不可靠的模式了。所以正式场合中不要使用 ECB 模式
密码之AES五种加密模式CBCECBCTR、OCF、CFB
u010029439的博客
01-27 1753
分组密码有五种工作体制: 1.电码本模式(ElectronicCodebookBook(ECB)); 2.密码分组链接模式(CipherBlockChaining(CBC)); 3.计算器模式(Counter(CTR)); 4.密码反馈模式(CipherFeedBack(CFB)); 5.输出反馈模式(OutputFeedBack(OFB))。 以下逐一介绍一下: 1.电码本模式(ElectronicCodebookBook(ECB) 这种模式是将整个明文分成若干...
块加密 工作模式 ECBCBC、PCBCCFBOFBCTR
热门推荐
新手村
10-25 3万+
块加密 块加密,英文Block Cyper,又称分组加密,是一种常见的对称加密,具有代表性的块加密有DES,AES,3DES等。块加密的工作模式允许使用同一个分组密码密钥对多于一块的数据进行加密,并保证其安全性。 ECB模式 又称电子密码本模式:Electronic codebook,是最简单的块密码加密模式,加密前根据加密块大小(如AES为128位)分成若干块,之后将每块使用相同的
下列哪种分组密码的工作模式易受字节翻转攻击 ECB CBC CFB OFB CTR
06-09
下列是易受字节翻转攻击的分组密码工作模式: 1. ECB模式ECB模式将明文分成块后,每个块都使用相同的密钥进行加密,因此同样的明文块会加密成相同的密文块,这样就容易受到字节翻转攻击。 2. CBC模式CBC模式使用前一个密文块进行异或操作后再进行加密,因此如果对一个密文块进行修改,就会影响到后续的密文块,从而产生错误结果。 因此,ECBCBC模式都容易受到字节翻转攻击。而CFBOFBCTR模式使用反馈机制,每个密文块都依赖于前一个密文块和密钥流,因此不容易受到字节翻转攻击。
写文章

热门文章

  • 对称加密算法常用的五种分组模式(ECB/CBC/CFB/OFB/CTR) 27272
  • 程序员的十个等级(最详尽) 20824
  • <Golang>MD5、SHA256等哈希算法介绍、应用场景及具体实现 8634
  • 《GO语言圣经》学习初感与建议 6663
  • Golang输出世界上所有的语言文字(Unicode的力量) 3868

分类专栏

  • golang 13篇
  • IT 1篇
  • 密码学 6篇
  • 区块链

最新评论

  • CTR分组模式实现AES加密解密(go语言)

    Jack_August: 这里大家注意下,在main里其实调用的AES_CTR_crypter就是解密,而博主给的Aes_CTR_Decrypt里面iv是不一样的所以在调用进行解密是会报错,主要就是理解CTR就行,所谓的AES更多的是封装好了的,所以倒也无所谓是构造什么AES,博主展示的是AES在分组模式CTR的一种go的实现

  • golang实现贪吃蛇(go面向对象版)

    ding-pa-mao: newbing 搜索首推过来

  • 《GO语言圣经》学习初感与建议

    saiumr: 看了一半重新找学习路径了,语法和特性倒还好,但是那个练习题真的太难了,我要是再死磕得学个一年半载,我不想做go专家表情包

  • go使用条件变量实现生产者消费者模型

    狂风是我的热情: 请问惊群是什么意思?

  • go使用条件变量实现生产者消费者模型

    Kirstie111: for len(ch)==3 那里为什么一定要用for呢?如果进入了这个for循环,wait之后被notify,那么一定是len(ch) < 3了啊,这个生产者没往下进行之前len(ch)只可能变少不可能变多了啊?还是说你考虑了多个生产者的情况?

大家在看

  • 228基于java jsp SSM Springboot走失老人员报备平台系统小程序(源码+文档+运行视频+讲解视频)
  • 微信支付开发-后台功能总结 736
  • 力扣 中等 1901.寻找峰值II
  • 软件开发常用工具、参考资料文档
  • 你的未来职业已经等着你了!揭秘霍兰德职业兴趣测试的成功密码

最新文章

  • <golang>MAC消息认证码及RSA数字签名
  • go语言实现非对称加密——RSA加密解密的实现
  • CTR分组模式实现AES加密解密(go语言)
2018年20篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王网站seo内部优化青浦区公司网站优化公司seo网站优化广州网站优化注意栾城区网站seo优化排名网站产品优化原来是易速达虞城专业网站优化推广报价网站排名优化软件推广方法网站关键字优化教程网站初期优化做什么青岛如何优化网站关键词网站速度优化程序南海网站优化方式罗湖哪里网站优化效果好赤壁网站seo优化哪家好淮北网站优化选哪家好崇明区搜索引擎网站优化排名优化网站的人员叫什么作用支付行业网站优化云龙区网站推广优化价格网站怎样seo云优化梅州百度网络推广网站优化菏泽网站自然优化优化一个网站权重多长时间北京市网站seo优化网站的优化策略及SEO建议安阳企业seo网站优化推荐唐海网站优化网站推广优化代理费用南宁网站优化推广服务商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化