Veľmi významným krokom v kryptografii bolo vytvorenie postupov asymetrického šifrovania. Úžasné na asymetrickej šifre je, že na rozdiel od symetrickej, odosielateľ a prijímateľ sa nemusia stretnúť a dohodnúť sa na jednotnom spoločnom kľúči. Pri asymetrickej šifre máme dva rôzne kľúče, ktoré sú spolu úzko matematicky prepojené. Jeden slúži na šifrovanie správy (šifrovací kľúč), zatiaľ čo druhý na jej dešifrovanie (dešifrovací kľúč).
V prípade, že chceme poslať tajnú správu konkrétnej osobe, zašifrovanú správu by mal vedieť dešifrovať dešifrovacím kľúčom iba ten, pre koho je určená a nikto iný. V tom prípade musí byť dešifrovací kľúč súkromný (jeho vlastník si ho drží v bezpečí) a keďže zašifrovať správu pre príjemcu šifrovacím kľúčom by mal mať možnosť každý, šifrovací kľúč je verejný.
V prípade, že nechceme utajiť obsah, len chceme jednoznačne deklarovať, že danú správu posielame my, práve my a nikto iný, tak môžeme dať pod správu pečať kráľovským prsteňom. Alebo môžeme správu zašifrovať – podpísať. Správu by sme mali vedieť zašifrovať len my, a dešifrovať hocikto iný. V tom prípade musí byť dešifrovací kľúč verejný a šifrovací kľúč súkromný.
Všeobecný postup pri asymetrickom šifrovaní tajnej správy:
Alica chce poslať Betke tajnú správu. Prečítať ju môže iba Betka, teda má byť dešifrovateľná iba jej súkromným kľúčom, z čoho vyplýva, že ju Alica musí zašifrovať jej verejným kľúčom. Aký bude postup?
- Betka si vygeneruje svoju dvojicu kľúčov. Jednu časť zverejní (verejný kľúč), druhú si ponechá (súkromný kľúč).
- Alica si skopíruje Betkin verejný kľúč.
- Alica zašifruje správu Betkiným verejným kľúčom.
- Alica pošle zašifrovanú správu Betke.
- Betka prijatú správu dešifruje svojim súkromným kľúčom.
Pre úplnosť dodajme, že ak chce Betka odpísať Alici, musí si nahrať jej verejný kľúč a správu zašifrovať ním.
Všeobecný postup pri asymetrickom šifrovaní digitálneho podpisu:
Betka chce poslať Alici správu. Betka chce mať istotu, že správu cestou ku Alici nikto nepozmení. Musí byť isté, že správu nezašifroval nikto iný, len Betka, zašifruje ju teda svojím súkromným kľúčom. Prečítať ju môže každý, teda má byť dešifrovateľná Betkiným verejným kľúčom. Aký bude postup?
- Betka si vygeneruje svoju dvojicu kľúčov. Jednu časť zverejní (verejný kľúč), druhú si ponechá (súkromný kľúč).
- Alica si skopíruje Betkin verejný kľúč.
- Betka zašifruje správu svojím súkromným kľúčom.
- Betka pošle zašifrovanú správu Alici .
- Alica prijatú správu dešifruje Betkiným verejným kľúčom.
Matematický princíp
Ako je možné, že dešifrovací kľúč je iný ako šifrovací? Ukážeme si to na zjednodušenom príklade:
Majme množinu čísel 0,1,2…7. V matematike sa označuje ako zvyšková trieda Z8. Sčítanie pre takúto množinu je definované cyklicky, čiže 7+1=0. Teraz si predstavme, že šifrovací kľúč je 3 a dešifrovací kľúč je 5 (číslo 5 je inverzné k číslu 3 vo zvyškovej triede Z8). Chcem zašifrovať správu, ktorá pozostáva z čísla 7. Najprv ju zašifrujem tak, že pričítam šifrovací kľúč (7+3=2). Dešifrujem ju tak, že pričítam dešifrovací kľúč (2+5=7). Vo výsledku vlastne máme 7+3+5 = 7+0 = 7.
Bezpečnosť algoritmu (t.j. za aký čas je možné prelomiť algoritmus a dostať sa k pôvodnej správe bez znalosti druhého kľúča) je daná náročnosťou matematického výpočtu. Pri naozajstnom šifrovaní sa používajú zvyškové triedy veľmi veľkých čísel.
Matematický princíp je síce zložitá matematická funkcia, ale zjednodušene hovorí to, že ak aplikujeme na správu oba kľúče, dostaneme znova pôvodnú správu. Ak sa nad tým trochu zamyslíme, uvedomíme si, že asymetrické šifrovanie je len špeciálnym prípadom symetrického šifrovania – len tá symetria je podľa „inej osi“… Pri symetrickom šifrovaní máme napríklad posun o +K, pričom dešifrovací kľúč by bol inverzný, a síce -K. Pri asymetrickom šifrovaní musí byť dešifrovací kľúč tiež inverzný ku šifrovaciemu, lenže v priestore zvyškových tried.
Príkladom asymetrickej šifry je:
Vyskúšaj sa, ako zvládaš matematiku zvyškových tried. Otestuj sa v krátkom kvíze.