RC5
RC5 je šifrirni algoritem, ki ga je profesor Ronald Rivest razvil leta 1994. Je parameteriziran algoritem z variabilno velikostjo bloka, variabilno velikostjo ključa in variabilnim številom ciklov. Razlika med RC4 in RC5 je v tem, da RC4 šifrirni tok jemlje bit po bit, medtem ko RC5 blok jemlje celotne besede. Dopustne velikosti bloka so 32, 64 in 128 bitov, število ciklov je lahko med 0 in 255, medtem ko je ključ lahko velik med 0 in 2040 bitov. Takšna vgrajena variabilnost zagotavlja fleksibilnost na vseh nivojih varnosti in učinkovitosti.
RC5 uporablja tri rutine
- razširitev ključa
- enkripcija
- dekripcija.
V rutini razširitve ključa se tajni ključ razširi tako, da zapolni tabelo ključa, katerega velikost je odvisna od števila ciklov (iteracij). Ta tabela se uporablja tako pri enkripciji kakor tudi pri dekripciji.
Enkripcija je sestavljena iz treh enostavnih operacij:
- dodajanje integerja,
- bitni XOR
- variabilna rotacija.
Takšna enostavnost algoritma RC5 zagotavlja preprosto implementacijo in analizo.
Varnost zagotavlja mešanica različnih operacij, predvsem pa uporaba podatkovno odvisnih rotacij, ki onemogočijo diferencialne in linearne napade na šifrirnik. Odlikuje pa ga tudi majhna poraba pomnilnika, kar je tudi plus za strojno implementacijo in implementacijo na pametne kartice ter podobne naprave z omejenim spominom.