RSA je kryptosystém s veřejným klíčem, který se stal základním kamenem bezpečnosti na internetu. Používá se pro dvě hlavní úlohy:
1. **Šifrování dat:** Aby zprávu mohl přečíst pouze zamýšlený příjemce. 2. **Digitální podpisy:** Aby bylo možné ověřit, že zprávu skutečně poslal daný odesílatel a nebyla cestou změněna.
Algoritmus byl zveřejněn v roce 1977 a jeho bezpečnost je založena na extrémní obtížnosti matematického problému: faktorizace (rozkladu) velkých čísel.
RSA využívá asymetrický model, kde má každý uživatel dvojici klíčů:
1. Vyberou se dvě velmi velká prvočísla ($p$ a $q$). 2. Vynásobí se spolu, čímž vznikne číslo $n$ (modul). 3. Najít $p$ a $q$ jen na základě znalosti $n$ je pro dnešní počítače u čísel s tisíci ciframi prakticky nemožné. Právě v tom spočívá síla šifry.
| Úkon | Kdo co dělá | Výsledek |
|---|---|---|
| Šifrování | Odesílatel použije veřejný klíč příjemce. | Pouze příjemce může zprávu přečíst svým soukromým klíčem. |
| Digitální podpis | Odesílatel použije svůj soukromý klíč. | Kdokoliv může veřejným klíčem odesílatele ověřit, že podpis je pravý. |
RSA se dnes málokdy používá k šifrování celých velkých souborů (protože je pomalé). Místo toho funguje jako „přepravka“:
S rostoucím výkonem počítačů musí růst i délka RSA klíčů, aby odolaly útokům hrubou silou:
Budoucnost: S nástupem kvantových počítačů by mohlo být RSA prolomeno pomocí tzv. Shorova algoritmu. Proto se již dnes vyvíjí „post-kvantová kryptografie“.
Související pojmy: Asymetrické šifrování, SSL/TLS, AES, Prvočísla, Digitální podpis, SSH, PGP.