对称加解密算法的填充模式

2022年10月26日09:15:28

对称算法

对称算法一般分为流加密(按照单个bit位或byte字节进行运算)和块加密(根据特定长度分块进行运算)两种类型。

常见的对称算法基本都属于块加密算法,它们的分块长度也不同:

    8字节:DES算法、3DES算法

    16字节:AES算法、SM1算法、SSF33算法、SM4算法、SM6算法

填充模式

  PKCS5 Padding  Mode(在BC包中和PKCS7是一致的)

一种基于口令的加密标准(PKCS#5)中定义的填充模式。若数据长度L,对称算法的分块长度B,则需填充B-(L%B)个字节的B-

(L%B)。如使用SM1加密9个字节的数据,此时L=9,B=16,则需填充7个字节的0x07;若L=16,则需填充16个字节的0x10。

填充前:0x12 0x34 0x56 0x78 0x90 0xab 0xcd 0xef 0x01

填充后:0x12 0x34 0x56 0x78 0x90 0xab 0xcd 0xef 0x01 0x07 0x07 0x07 0x07 0x07 0x07 0x07(填充7个0x07)

SSL 3 Padding Mode

SSL3定义的填充方式是:若数据长度L,对称算法的分块长度B,则需填充B-(L%B)个字节的B-(L%B)-1。如使用SM1加密9个字节

的数据,此时L=9,B=16,则需填充7个字节的0x06;若L=16,则需填充16个字节的0x0f。正好是PKCS#5填充数字减1。

填充前:0x12 0x34 0x56 0x78 0x90 0xab 0xcd 0xef 0x01

填充后:0x12 0x34 0x56 0x78 0x90 0xab 0xcd 0xef 0x01 0x06 0x06 0x06 0x06 0x06 0x06 0x06(填充7个0x06)

  • 作者:fz505934129
  • 原文链接:https://blog.csdn.net/fz505934129/article/details/106649610
    更新时间:2022年10月26日09:15:28 ,共 752 字。