美文网首页
对称加密的填充方式

对称加密的填充方式

作者: 夜月行者 | 来源:发表于2017-11-27 18:28 被阅读0次

什么是填充

对称密钥加密设计的块密码工作模式要求输入明文长度必须是块长度的整数倍,因此信息必须填充至满足要求。
分组加密模式中,有些情况下无法进行流加密,这个时候就需要对明文数据分组,最后不满足的块长度要求的就要进行填充
对于cbc,ebc是要填充的,cfb,ofb等是不需要填充的

不带模式和填充来获取AES算法的时候,其默认使用ECB/PKCS5Padding。

填充的模式

JCE中AES支持五中模式:CBC,CFB,ECB,OFB,PCBC;支持三种填充:NoPadding,PKCS5Padding,ISO10126Padding。
不支持SSL3Padding。不支持“NONE”模式。

1.位填充
位填充可用于任意大小的信息。
于信息后添加一个“设定”位(“1”),再添加“重设”位(“0”)至要求大小。“重设”位(“0”)的数量取决于信息末尾到块边缘的距离。以比特表示为“1000 ... 0000”。
这个方法可用于填充任何位长度的信息,而不限于整字节长度的信息。比如,一段 23 位的信息可填充 9 位以填满一个 32 位的块:
2.字节填充:字节填充可用于可编码为整数字节大小的信息。
2.1 ANSI X.923 (美国国家标准协会第 X.923 号标准)

例:下例中,块大小为 8 字节,需要填充 4 字节(以十六进制表示)。
... | DD DD DD DD DD DD DD DD | DD DD DD DD 00 00 00 04 |

2.2 ISO 10126 (国际标准化组织第 10126 号标准)[编辑]
这种是只是最后一个是需要填充的数据的长度,中间的都是随机数,这样的话加密更加具备迷惑性,这样也导致了如果是加密块整数倍的话需要多出来一个块

例:下例中,块大小为 8 字节,需要填充 4 字节。
... | DD DD DD DD DD DD DD DD | DD DD DD DD 81 A6 23 04 |

2.3 PKCS7 (公钥密码学标准第 7 号)[编辑]
PKCS#7 定义于 RFC 5652 (征求意见草案第 5652 号)。
以整字节填充。每个填充字节的值是用于填充的字节数,即是说,添加 N 个字节,每个的值都是 N 。 填充的字节数取决于信息末尾到块边缘的距离。
这样如果是整数倍的话也要多加一个块的长度

01
02 02
03 03 03
04 04 04 04
05 05 05 05 05


下例中,块大小为 8 字节,需要填充 4 字节。
... | DD DD DD DD DD DD DD DD | DD DD DD DD 04 04 04 04 |

2.4 补0

2.5 nopaddig
在java中使用cbc,ebc中如果使用nopadding模式,那么明文的长度必须等于8字节的倍数,否则会报错。

2.6 密文窃取
密文窃取的加密方式,比较复杂一点
密文窃取:把最后一个密文分组传递给ECB模式的密码,并且把它的输出和剩余的明文信息字节(或位)进行异或。

算法/模式/填充 16字节加密后数据长度 不满16字节加密后长度
AES/CBC/NoPadding 16 不支持
AES/CBC/PKCS5Padding 32 16
AES/CBC/ISO10126Padding 32 16
AES/CFB/NoPadding 16 原始数据长度
AES/CFB/PKCS5Padding 32 16
AES/CFB/ISO10126Padding 32 16
AES/ECB/NoPadding 16 不支持
AES/ECB/PKCS5Padding 32 16
AES/ECB/ISO10126Padding 32 16
AES/OFB/NoPadding 16 原始数据长度
AES/OFB/PKCS5Padding 32 16
AES/OFB/ISO10126Padding 32 16
AES/PCBC/NoPadding 16 不支持
AES/PCBC/PKCS5Padding 32 16
AES/PCBC/ISO10126Padding 32 16

相关文章

  • 对称加密的填充方式

    什么是填充 对称密钥加密设计的块密码工作模式要求输入明文长度必须是块长度的整数倍,因此信息必须填充至满足要求。分组...

  • [ 对称加密 ] 既生AES 何生 DES

    对称加密算法 对称我是认真的 对称加密算法的加密与解密 密钥相同 主要成员 算法密钥长度工作模式填充模式DES56...

  • https传输过程

    HTTPS传输过程主要涉及到对称加密和非对称加密两种方式,对称加密用来加密数据内容,非对称加密用来加密对称加密的秘...

  • 网络协议-- 底层网络知识详解(应用层-Https)

    对称加密/非对称加密 加密分为两种方式一种是对称加密,一种是非对称加密。在对称加密算法中,加密和解密使用的密钥是相...

  • 公钥、私钥、数字签名和数字证书简介

    公钥、私钥、数字签名和数字证书简介 加密方式 加密方式一共分为两种对称加密和非对称加密 对称加密 加密和解密使用的...

  • Spring Cloud学习day105:配置中心的安全与加密

    一、对称加密 1.什么是对称加密? 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(d...

  • 前端初级加密学习

    感谢王亚伟同志对本笔记RSA部分的支持。 都知道加密分为 对称加密 和 非对称加密。 1.对称加密 这种加密方式原...

  • 对称加密与非对称加密

    对称加密(Symmetric Cryptography)   对称加密是最快速、最简单的一种加密方式,加密(enc...

  • 对称加密和非对称加密

    # 对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(enc...

  • 对称加密与非对称加密

    一.对称加密 常用的对称加密DES、AES,DES也有衍生的3DES等加密方式 对称加密用到的加密模式有ECB、C...

网友评论

      本文标题:对称加密的填充方式

      本文链接:https://www.haomeiwen.com/subject/rbwdbxtx.html