Ron Rivest这个人之前在我们的文章中多次出现,他除了是RC系列算法的发明者之外,还是RSA算法中的“R”。今天我们就来了解一下由他设计的对称分组加密算法——RC5加密算法。
RC5加密算法简介
RC5算法是1994年设计发明的,是一种比较“年轻”的对称加密算法,它只使用了异或和位移等原始的运算,轮数可变,密钥位数可变,因此相对来说更加简单、快速。
对于RC5来说,其中有3个可变参数,分别为w/r/b。这里w是字长其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。
RC5加密算法的加密流程
假设输入明文块的长度为64位,在一次性初始操作中,输入明文块分成两个32位块A和B,前两个子密钥S[0]和S[1]分别加进A和B,分别产生C和D,表示一次性操作结束。
然后开始各轮,每一轮完成系列操作:
- 位异或运算;
- 循环左移;
- 对C和D增加下一个子密钥,先是加法运算,然后将结果用2的w次方求模(由于这里w=32,因此为2³² )。
从上图可以看出,初始操作有两步,然后是几轮操作,轮数可以取0~255。也可以从中看出,一个块的输出是另一个块的输入,使整个逻辑很难破译。
RC5加密算法的解密流程
RC5的解密流程基本与加密流程相反,将加密时的循环左移变成循环右移即可。
RC5加密算法的优缺点
RC5加密算法在RSA试验室中的表现相当不错,加之其简单、快速的特性,执行所需的内存更少,目前来看算得上是一个比较不错的算法。但是,由于RC5属于对称加密算法,这就始终无法摆脱对称加密算法的缺点。
免责声明:素材源于网络,如有侵权,请联系删稿。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。