美文网首页
分组密码算法的填充模式

分组密码算法的填充模式

作者: frankiegao | 来源:发表于2019-01-25 18:10 被阅读0次

分组密码中,需要将明文按指定大小进行分组,由于明文并非指定大小的整数倍,因此在明文的最后一个分组需要将其填充至加密算法所要求的分组大小后进行加密。

在解密时,按照同样的填充模式将填充的数据去除。

斜体表示 SunJCE 支持,非斜体为 BouncyCastle 支持

NoPadding

不填充,在此填充下原始数据必须是分组大小的整数倍,非整数倍时无法使用该模式

PKCS5Padding / PKCS7Padding

填充至符合块大小的整数倍,填充值为填充数量数

  • 原始:FF FF FF FF FF FF FF FF FF
  • 填充:FF FF FF FF FF FF FF FF FF 07 07 07 07 07 07 07

PKCS5Padding 的块大小应为 8 个字节,而 PKCS7Padding 的块大小可以在 1~255 的范围内。但 SunJCE 的 Provider 实现中 PKCS5Padding 也按 PKCS7Padding 来进行处理了。

ISO10126Padding

填充至符合块大小的整数倍,填充值最后一个字节为填充的数量数,其他字节随机处理

  • 原始:FF FF FF FF FF FF FF FF FF
  • 填充:FF FF FF FF FF FF FF FF FF 3F 7A B4 09 14 36 07

ISO7816-4Padding

填充至符合块大小的整数倍,填充值第一个字节为 0x80,其他字节填 0

  • 原始:FF FF FF FF FF FF FF FF FF
  • 填充:FF FF FF FF FF FF FF FF FF 80 00 00 00 00 00 00

ZeroBytePadding

填充至符合块大小的整数倍,填充值为 0

  • 原始:FF FF FF FF FF FF FF FF FF
  • 填充:FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00

X923Padding

填充至符合块大小的整数倍,填充值最后一个字节为填充的数量数,其他字节填 0

  • 原始:FF FF FF FF FF FF FF FF FF
  • 填充:FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 07

TBCPadding(Trailing-Bit-Compliment)

填充至符合块大小的整数倍,原文最后一位为“1”时填充 0x00,最后一位为“0”时填充“0xFF”

  • 原始:FF FF FF FF FF FF FF FF FF
  • 填充:FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00
  • 原始:FF FF FF FF FF FF FF FF F0
  • 填充:FF FF FF FF FF FF FF FF F0 FF FF FF FF FF FF FF

PKCS1Padding

该填充模式是 RSA 加密中使用的,详见 RFC 2313。RSA 加密时,需要将原文填充至密钥大小,填充的格式为:

00 + BT + PS + 00 + D

  • 00 为固定字节
  • BT 为处理模式。公钥操作时为 02,私钥操作为 0001
  • PS 为填充字节,填充数量为 k - 3 - Dk 表示密钥长度,D 表示原文长度。PS 的最小长度为 8 个字节。填充的值根据 BT 值不同而不同:
    • BT = 00 时,填充全 00
    • BT = 01 时,填充全 FF
    • BT = 02 时,随机填充,但不能为 00

相关文章

  • 分组密码算法的填充模式

    分组密码中,需要将明文按指定大小进行分组,由于明文并非指定大小的整数倍,因此在明文的最后一个分组需要将其填充至加密...

  • 【加密解密】加密解密介绍

    参考文章 Base64 Base64编码/解码 填充算法,mac与java的区别 块密码的工作模式 分组密码 PK...

  • 初等数据加密——对称加密算法

    对称加密算法是当今应用范围最广,使用频率最高的加密算法。根据加密方式分为密码和分组密码,分组密码工作模式又可分为E...

  • Java分组密码算法DES

    Java分组密码算法DES 1实验内容 掌握分组密码算法DES方法,能用高级语言实现分组密码算法DES。DES算法...

  • 分组密码与模式

    什么是分组密码和模式 前面我们讲过了DES和AES算法,他们每次都只能加密固定长度的明文,这样的密码算法叫做分组密...

  • 图解密码技术学习-第四章 分组密码的模式

    概述 什么是模式 第三章介绍的对称密码算法DES、AES都属于分组密码,分组密码的特点是分组的长度是固定的。但是由...

  • 分组密码DES

    分组密码的原理 DES是分组密码,分组密码将消息进行等长分组,使用同一密钥对每个分组进行加密。 DES算法 DES...

  • 分组密码

    分组密码的处理方式 (1)分组密码算法只负责固定长度消息的加、脱密;(2)工作模式负责长消息的处理方式;(3)短块...

  • 对称加密模式

    分组密码和流密码 分组密码:每次只能处理特定bit长度的一块数据的密码算法,这里的“一块”就是分组(block)。...

  • 对称加密的填充方式

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

网友评论

      本文标题:分组密码算法的填充模式

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