
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.
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.
Salausalgoritmi on seuraava:
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:
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ä.