RC6加密算法隶属于RC系列算法,是Ron Rivest为RSA公司设计的一系列密码算法。在上个世纪末AES算法公开选拔中,RC6加密算法成为最终入选的五个算法之一,今天我们就来了解一下它。

RC6加密算法

要了解RC6加密算法,我们先来了解一下它同系列的“前辈们”。

现在我们用到的RC系列算法包括RC2、RC4、RC5、RC6算法,其中RC4是序列密码算法,其他三种是分组密码算法。

  • RC2算法

该算法设计的目的是用来取代DES算法,它采用密钥长度可变的对明文采取64位分组的分组加密算法,属于Festel网络结构。

  • RC4算法

该算法是一个密钥长度可变的面向字节流的加密算法,以随机置换为基础。该算法执行速度快,每输出1字节的结果仅需要8~16字节的机器指令。

  • RC5算法

该算法是一种分组长度、密钥长度、加密迭代轮数都可变的分组加密算法。该算法主要包含三部分内容:密钥扩展、加密算法和解密算法。

  • RC6算法

RC6秉承了RC5设计简单、广泛使用数据相关的循环移位思想,同时增强了抵抗攻击的能力,改进了RC5中循环移位的位数依赖于寄存器中所有位的不足。

RC6加密算法

RC6加密算法原理

RC6分组长度为128bit,使用了4个寄存器,并使用32bit的整数模乘运算,用于加强扩散特性。RC6更精确的表示是RC6-w/r/b,其中字长为w(bit),r为加密轮数,b为加密密钥,用字节表示的长度。通常令w=32,r=20,b=16(24,32)。

RC6继承了RC5的优点,在加密过程中不需要查表,加上算法中的乘法运算可以用平方代替,所以该算法对内存要求极低,这使得RC6适合在单片机上实现。

对RC6最为有效的攻击是强力攻击,但由于分组长度和密钥都至少是128bit,穷举法并不可行。对20轮的RC6,用线性分析法至少需要2^155个明文,用查分分析法至少需要2^238个明文。

RC6加密算法

RC6加密算法的特点

RC6加密算法秉承了RC5设计简单、广泛使用数据相关的循环移位思想,同时增强了抵抗攻击的能力,改进了RC5中循环移位的位数不依赖于寄存器中所有位的不足。

RC6加密算法新的特色是输入的明文由原先2个区块扩展为4个,另外在运算方面则是使用了整数乘法,而整数乘法的使用则在每一个运算回合中增加了扩散(diffusion)的行为,并且使得即使很少的回合数也有很高的安全性。

同时,RC6加密算法中所用的操作可以在大部分处理器上高效率地实现,提高了加密速度。

RC6加密算法是一种安全、架构完整而目简单的区块加密法。它提供了较好的测试结果和参数方面相当大的弹性,可以抵抗近乎所有已知的攻击。

免责声明:素材源于网络,如有侵权,请联系删稿。