V kryptografii je RC5 jednoduchá bloková šifra so symetrickým kľúčom. RC5 navrhol Ronald Rivest v roku 1994 a je to parametrizovaný algoritmus s premenlivou veľkosťou bloku, premenlivou veľkosťou kľúča a premenlivým počtom kôl. Skratka „RC“ znamená „Rivestova šifra“ alebo alternatívne „Ronova šifra“.
Parametre a notácia
RC5 je navrhnuté tak, aby bolo ľahko konfigurovateľné: používá sa notácia RC5-w/r/b, kde w je šírka slova v bitoch, r je počet kôl a b je dĺžka kľúča v bajtoch. S cieľom zabezpečiť rôzne úrovne bezpečnosti a účinnosti má RC5 premenlivú veľkosť bloku (slovo w môže byť typicky 16, 32 alebo 64 bitov, čo dáva bloky 2w bitov) — bežné implementácie používajú 32‑bitové slovo (teda 64‑bitový blok) alebo 64‑bitové slovo (128‑bitový blok). Dĺžka kľúča môže byť až do 2040 bitov (0 až 255 bajtov), často sa uvádza príklad RC5-32/12/16 (32‑bitové slovo, 12 kôl, 16‑bajtový kľúč = 128 bitov) ako pôvodne navrhovaná voľba parametrov. Praktické implementácie však môžu používať odlišné hodnoty podľa požiadaviek na rýchlosť a bezpečnosť.
Konštrukcia a operácie
RC5 je založené na kombinácii troch jednoduchých typov operácií: modulárnom sčítaní, eXclusive OR (XOR) a rotáciách závislých od údajov. Dátovo závislé rotácie sú jednou z kľúčových inovácií RC5 a významne ovplyvňujú správanie šifry; autori chceli preskúmať, ako takáto kombinácia operácií funguje ako primitív v oblasti kryptografie. Všeobecná štruktúra algoritmu pripomína sieť podobnú Feistelovej, ale konštrukčne sa od nej líši použitím dátovo závislých rotácií.
Šifrovacie a dešifrovacie procedúry sú z hľadiska implementácie relatívne jednoduché a dajú sa vyjadriť v niekoľkých riadkoch kódu. Na druhej strane je rozvrh kľúča navrhnutý tak, aby z kľúča vyprodukoval sériu podkľúčov pomocou miešania, súčtov a rotácií. Kľúč sa rozširuje do poľa S a pri tom sa používajú tzv. „magické konštanty“ odvodené z matematických konštánt; konkrétne sa v dokumentácii ako zdroje týchto konštánt uvádzajú hodnoty odvodené z e a zlatého rezu, ktoré slúžia ako čísla „nič v rukáve“. Táto kombinácia jednoduchých operácií a špeciálnych konštánt bola zámerne zvolená tak, aby rozvrh kľúča bol efektívny a zároveň ťažko predvídateľný bez znalosti kľúča.
Bezpečnosť a použitie
Jednoduchosť algoritmu spolu s novosťou dátovo závislých rotácií urobili z RC5 predmet intenzívnej štúdie pre kryptoanalytikov. Od uvedenia boli publikované analytické výsledky pre redukovaný počet kôl a tiež praktické skúsenosti s hľadaním kľúčov pomocou distribuovaných výpočtov a súťaží (napr. verejné „challenge“). V dôsledku toho sa odporúčajú primerane väčšie hodnoty r a dostatočne dlhé kľúče pre reálne nasadenie; menšie konfigurovateľné varianty môžu byť vystavené útokom hrubou silou alebo špecifickej kryptoanalýze.
RC5 ovplyvnilo ďalšie návrhy (napríklad RC6, ktorý rozširuje myšlienky z RC5) a slúžilo ako dôležitý predmet výskumu v 90. rokoch. V súčasnosti sa pri nových štandardoch preferujú algoritmy, ktoré prešli rozsiahlym verejným hodnotením a štandardizačnými procesmi, avšak RC5 zostáva významným historickým príkladom konštrukcie blokovej šifry s dátovo závislými rotáciami.