簡述RC5加密算法

Ron Rivest這個人之前在我們的文章中多次出現(xiàn),他除了是RC系列算法的發(fā)明者之外,還是RSA算法中的“R”。今天我們就來了解一下由他設(shè)計的對稱分組加密算法——RC5加密算法。

RC5加密算法簡介

RC5算法是1994年設(shè)計發(fā)明的,是一種比較“年輕”的對稱加密算法,它只使用了異或和位移等原始的運算,輪數(shù)可變,密鑰位數(shù)可變,因此相對來說更加簡單、快速。

對于RC5來說,其中有3個可變參數(shù),分別為w/r/b。這里w是字長其值可以是16、32或64對于不同的字長明文和密文塊的分組長度為2w位,r是加密輪數(shù),b是密鑰字節(jié)長度。

RC5加密算法

RC5加密算法的加密流程

假設(shè)輸入明文塊的長度為64位,在一次性初始操作中,輸入明文塊分成兩個32位塊A和B,前兩個子密鑰S[0]和S[1]分別加進(jìn)A和B,分別產(chǎn)生C和D,表示一次性操作結(jié)束。

然后開始各輪,每一輪完成系列操作:

  1. 位異或運算;
  2. 循環(huán)左移;
  3. 對C和D增加下一個子密鑰,先是加法運算,然后將結(jié)果用2的w次方求模(由于這里w=32,因此為232 )。

RC5加密算法

從上圖可以看出,初始操作有兩步,然后是幾輪操作,輪數(shù)可以取0~255。也可以從中看出,一個塊的輸出是另一個塊的輸入,使整個邏輯很難破譯。

RC5加密算法的解密流程

RC5的解密流程基本與加密流程相反,將加密時的循環(huán)左移變成循環(huán)右移即可。

RC5加密算法的優(yōu)缺點

RC5加密算法在RSA試驗室中的表現(xiàn)相當(dāng)不錯,加之其簡單、快速的特性,執(zhí)行所需的內(nèi)存更少,目前來看算得上是一個比較不錯的算法。但是,由于RC5屬于對稱加密算法,這就始終無法擺脫對稱加密算法的缺點。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。