B.2.4 RC5-CBC-Pad
RC5-CBC-Pad 是 CBC 模式下的 RC5 加密算法 [RC5], 具有 RFC 5652 [RFC5652] 中指定的填充操作, 这是 RFC 1423 [RFC1423] 中指定的填充操作的泛化.该方案在 [RFC2040] 中完全指定.RC5-CBC-Pad 具有可变密钥长度 (从 0 到 256 个八位字节), 并支持 64 位块大小和 128 位块大小.对于前者, 它具有八个八位字节的初始化向量, 对于后者, 具有 16 个八位字节的初始化向量.RC5-CBC-Pad 在加密操作中还具有可变数量的 "rounds" (轮), 从 8 到 127.
注意: 对于具有 64 位块大小的 RC5, 填充串如 RFC 1423 [RFC1423] 中所定义.对于具有 128 位块大小的 RC5, 填充串由 16-(||M|| mod 16) 个八位字节组成, 每个八位字节的值为 16-(||M|| mod 16).
对象标识符 rc5-CBC-PAD [RFC2040] 标识 RC5-CBC-Pad 加密方案:
rc5-CBC-PAD OBJECT IDENTIFIER ::= {encryptionAlgorithm 9}
在 AlgorithmIdentifier 中与此 OID 关联的参数字段应具有类型 RC5-CBC-Parameters:
RC5-CBC-Parameters ::= SEQUENCE {
version INTEGER {v1-0(16)} (v1-0),
rounds INTEGER (8..127),
blockSizeInBits INTEGER (64 | 128),
iv OCTET STRING OPTIONAL }
类型 RC5-CBC-Parameters 的字段具有以下含义:
-
version 是算法的版本, 应为
v1-0. -
rounds 是加密操作中的轮数, 应在 8 到 127 之间.
-
blockSizeInBits 是块大小 (以位为单位), 应为 64 或 128.
-
iv 是初始化向量, 对于 64 位 RC5 为八个八位字节的字符串, 对于 128 位 RC5 为 16 个八位字节的字符串.默认值是由零八位字节组成的适当长度的字符串.