RC6(Rivest Cipher 6)是一种对称密钥加密算法,由 Ron Rivest 于 1998 年设计。它是 RC5 算法的改进版本,旨在提供更高的安全性和更好的性能。
RC6 算法是一种分组加密算法,可以处理可变长度的数据块。它采用了分组密码的结构,每次处理一个固定长度的数据块。
RC6 算法的核心思想是通过轮函数和密钥扩展来实现加密和解密操作。它使用了一个变长的轮密钥,通过密钥扩展算法将用户提供的密钥转化为轮密钥。然后,通过多轮的轮函数对数据进行加密。
RC6 算法的轮函数包括数据的置换、混淆和扩散操作,以增加加密的强度。它还引入了一种称为“Mixing”的操作,用于增加算法的非线性性。
填充模式
- None:不填充
- PKCS7:填充字符串由一个字节序列组成,每个字节填充该字节序列的长度
- Zeros:填充字符串由设置为零的字节组成
- ANSIX923:填充字符串由一个字节序列组成,此字节序列的最后一个字节填充字节序列的长度,其余字节均填充数字零
- ISO10126:填充字符串由一个字节序列组成,此字节序列的最后一个字节填充字节序列的长度,其余字节填充随机数据
分组对称加密算法有些运算模式要求明文数据的字节长度必须是其块大小的整倍数,因此在加密明文数据之前我们必须对明文数据进行填充。