分组密码的模式 |
您所在的位置:网站首页 › aes加密解密算法分析 › 分组密码的模式 |
分组密码的模式
分组密码和流密码ECB模式CBC模式CFB模式OFB模式CTR模式分组密码模式比较表
分组密码和流密码
分组密码是每次只能处理特定长度的一块数据的一类密码算法,这里的“一块”就称为分组。一个分组的比特数就称为分组长度。 流密码是对数据流进行连续处理的一类密码算法。流密码一般以1比特、8比特或32比特等为单位进行加密和解密。 分组密码算法只能加密固定长度的分组,但需要加密的明文长度可能会超过分组密码的分组长度,这就需要对分组密码算法进行迭代,以便将一段很长的明文全部加密。迭代的方法就被称为分组密码的模式。 分组密码的模式主要有以下5种。 ECB模式:Electronic CodeBook mode(电子密码本模式)CBC模式:Cipher Block Chaining mode(密码分组链接模式)CFB模式:Cipher FeedBack mode(密文反馈模式)OFB模式:Output FeedBack mode(输出反馈模式)CTR模式:CounTeR mode(计数器模式)明文分组是指分组密码算法中作为加密对象的明文。明文分组的长度与分组密码算法的分组长度是相等的。 密文分组是指使用分组密码算法将明文分组加密之后所生成的密文。 ECB模式 在ECB模式中,将明文分组加密之后的结果将直接成为密文分组。ECB模式的加密 ECB模式的解密 ECB模式中,明文分组和密文分组是一一对应的关系,因此,如果明文中存在多个相同的明文分组,则这些明文分组最终将被转换为相同的密文分组。 安全性低,易攻击。 CBC模式 CBC模式的密文分组像链条一样相互连接在一起。在CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。 CBC模式的加密 CBC模式的解密
假设CBC模式加密的密文分组中有一个分组损坏了,例如由于硬盘故障导致密文分组的值发生了改变等,这种情况下,只要密文分组的长度没有发生变化,则解密时最多只会有2个分组收到数据损坏的影响。 假设CBC模式加密的密文分组中有一些比特缺失了,例如由于通信错误导致没有收到某些比特等,那么此时即使缺失1比特,也会导致密文分组的长度发生变化,此后的分组发生错位,这样一来,缺失比特的位置之后的密文分组也就全部无法解密。 填充提示攻击是一种利用分组密码中的填充部分来进行攻击的方法。在分组密码中,当明文长度不为分组长度的整倍数时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。在填充提示攻击中,攻击者会反复发送一段密文,每次发送时都对填充的数据进行少许改变。由于接收者(服务器)在无法正确解密时会返回一个错误消息,攻击者通过这一错误消息就可以获得一部分与明文相关的消息。这一攻击模式并不仅限于CBC模式,而是适用于所有需要进行分组填充的模式。 确保互联网安全的通信协议之一SSL/TLS,就是使用CBC模式来确保通信的机密性,如使用CBC模式三重DES的3DES_EDE_CBC以及CBC模式256比特AES的AES_256_CBC等。 CFB模式在CFB模式中,前一个密文分组会被送回到密码算法的输入端。所谓反馈,这里指的就是返回输入端的意思。 CFB模式的加密 CFB模式的解密
在生成第一个密文分组时,由于不存在前一个输出的数据,因此需要使用初始化向量(IV)来代替,与CBC模式相同。 OFB模式在OFB模式中,密码算法的输出会反馈到密码算法的输入中。 OFB模式并不是通过密码算法对明文直接进行加密的,而是通过将“明文分组”和“密码算法的输出”进行XOR来产生“密文分组”的,这点与CFB模式相似。 OFB模式的加密 OFB模式的解密
CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码。最终的密文分组是通过将计数器加密的到的比特序列,与明文分组进行XOR而得到的。 CTR模式的加密 CTR模式的解密
![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |