RC5
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]
Algoritmi
muokkaaSalausalgoritmi 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]
Lähteet
muokkaa- ↑ Schneier; Bruce: Applied Cryptography. (2nd edition) Wiley. ISBN 0-471-11709-9 (englanniksi)
- ↑ Block encryption algorithm with data-dependent rotations patents.google.com. Viitattu 24.2.2024. (englanniksi)
- ↑ RC5 (PDF) lsisreviving.weebly.com. Viitattu 24.2.2024. (englanniksi)
- ↑ a b c d Ronald L. Rivest: The RC5 Encryption Algorithm* (PDF) link.springer.com. Viitattu 24.2.2024. (englanniksi)