RC5 on lohkosalausalgoritmi, jonka on kehittänyt Ron Rivest. RC5 tukee muuttuvaa lohkokokoa, avainkokoa ja kiertojen määrää. Salaus perustuu kolmelle operaatiolle: XOR, yhteenlasku ja kierto. RSADSI on patentoinut algoritmin vuonna 1995 ja sen nimi on suojattu tavaramerkillä, mutta patentti on vanhentunut vuonna 2015.[1][2]
Vuonna 1994 suunniteltu RC5 käyttää Feistelin verkon kaltaista rakennetta eli symmetristä lohkosalausta: samaa avainta käytetään salaamiseen ja salauksen purkamiseen. Algoritmi tunnetaan yksinkertaisuudesta ja soveltuvuudesta erilaisille suorittimille eri sanan pituuksilla.[3][4]
Salausalgoritmi on seuraava:[4]
A = A + S[0];
B = B + S[1];
for (i = 1; i <= r; i++) {
A = ((A ^ B) << B) + S[2*i];
B = ((B ^ A) << A) + S[2*i + 1];
}
Salauksen purkaminen on käänteisesti johdettavissa salauksesta:[4]
for (i = r; i > 0; i--) {
B = ((B - S[2*i +1]) >> A) ^ A;
A = ((A - S[2*i]) >> B) ^ B;
}
B = B - S[1];
A = A - S[0];
Algoritmissa oletetaan suorittimen käyttävän little-endian tavujärjestystä.[4]
|