Úvod do kryptografie

Kryptografie je vlastně věda o způsobu šifrování a dešifrování informací, stejně tak spolu s kryptografií souvisí také steganografie, což je zase věda o způsobu skryvání informací. Kryptografie a steganografie jsou hodně staré obory a vznikly vlastně v době, kdy bylo potřeba začít nějakým způsobem utajit informace.

Začala se používat hlavně z vojenských účelů, kdy bylo potřeba tajit komunikaci, aby nepřitel nevěděl, co ten druhý zamýšlí. I když kdysi dávno ještě nebyly žádné moderní komunikační prostředky a zprávy se předávaly pomocí poslů, tak již v té době bylo zapotřebí informaci doručit bez toho, aniž by ji nepřítel mohl jakkoli zjistit.

Jakmile začali kryptografové (lidé, kteří tvoří šifry) tvořit nějaké šifry, začali se také objevovat kryptoanalytici (luštitelé šifer), aby šifru prolomili (kryptoanalýza). Každá šifra, která kdy vznikla, se dostala pod ruku kryptoanalytiků, kteří se jí pokusili rozluštit a většinou taky uspěli. I když někdy to byla dlouhá doba. Šifry význámně ovlivnily také dějiny, kdy mnohdy ovlivnili bitvy nebo smrt nějakých panovníků. Šifry se začali vyvíjet od nejrůznějších jednoduchých substitučních šifer až po dnešní moderní digitální kryptografii. A s tím také stoupala náročnost na kryptografy, aby vymysleli kvalitnější šifru a také na kryptoanalytiky, kteří zase danou šifru museli prolomit.

Toto byl takový krátký úvod ke kryptografii. Postupně bych chtěl v každém článku popsat detailně nějakou šifru, včetně způsobu jejího dešifrování. Začnu postupně od jednoduchých šifer a pokusím se je co nejlépe vysvětlit. Postupně bych chtěl také vysvětlit i počítačovou kryptografii, kde bych chtěl vysvětlit způsoby šifrování a dešifrování dat na počítači. Při studiu kryptografie mi hodně pomohla kniha "Kniha kódů a šifer (The Code Book)", kterou napsal Simon Singh, kde je velice dobře vysvětlena historie šifer, včetně způsobu šifrování a dešifrování jednotlivých šifer. A dále pak různé informace na internetu.

Na závěr bych ještě vysvětlil pár důležitých pojmů, které se hodí znát, a které také budu využívat v dalších článcích.

 

Slovníček pojmů

Caesarova posunová substituční šifra (Caesar-shift substitution cipher): Šifra, ve které bylo původně každé písmeno zprávy nahrazeno písmenem o 3 pozice v abecedě dále. Obecněji šifra, ve které je každé písmeno zprávy nahrazeno písmenem o x pozic dále v abecedě.

Dekódovat (decode): Převedení kódované zprávy zpět na původní text.

DES (Data Encryption Standard): Šifrá vyvinutá společností IBM.

Dešifrovat (decipher): Převod šifrového textu zpět na otevřený text.

Digitální podpis (digital signature): Metoda pomocí které se potvrzuje autorství elektronického dokumentu.

Homofonní substituční šifra (homophonic substitution cipher): Šifra, v níž existuje pro každé písmeno otevřeného textu několik možných substitucí s tím, že pokud je třeba 6 různých substitucí pro jeden znak v otevřeným textu, tak těchto šest substitiucí je pouze pro ten znak a žádný jiný.

Jednorázová tabulka (one-time pad): Jediná forma šifrování, která je nerozluštitelná, protože používá náhodný klíč o stejné délce, jako zpráva.

Klíč (key): Element, který změní obecný šifrovací algoritmus ve specifický postup šifrování.

Kód (code): Systém pro ukrytí smyslu zprávy, který nahrazuje každé slovo nebo zprávu jiným znakem nebo skupinou znaků. Seznam nahrazení je definován kódovou knihou.

Kódová kniha (codebook): Je seznam nahrazení pro slova nebo fráze v původní zprávě.

Kryptoanalýza (cryptoanalysis): Věda o dešifrování zprávy bez znalosti klíče.

Kryptografie (cryptography): Věda o šifrování zpráv.

Kryptografie s asymetrickým klíčem (asymmetric key cryptography): Forma kryptografie, ve které se k šifrování používá jiný klíč, než k dešifrování.

Kryptografie s veřejným klíčem (public key cryptography): Je to vlastně kryptografie s asymetrickým klíčem, která řeší i distribuci klíčů.

Kryptografie se symterickým klíčem (symmetric key cryptography): Forma kryptografie, ve které je šifrovací a dešifrovací klíč stejný.

Kryptologie (cryptology): Věda o utajení zpráv ve všech formách zahrnující kryptografii a kryptoanalýzu.

Kvantová kryptografie (quantum cryptography): Forma šifrování, která využívá kvantovou teroii, zvláště principu neurčitosti, podle něhož není možné změřit všechny aspekty jevu s absolutní přesností.

Kvantový počítač (quantum computer): Teoreticky nesmírně výkonný počítač, který využívá kvantovou teorii, zvláště pak tu, že jeden předmět může být najednou v mnova stavech (superpozice) nebo současně v mnoha vesmírech.

Monoalfabetická substituční šifra (monoalphabetic substituion cipher): Substituční šifra, v níž je šifrová abeceda pevně dána po celou dobu šifrování.

Otevřený text (plaintext): Původní zpráva (nezašifrovaná)

Polyalfabetická substituční šifra (polyalphabetic substitution cipher): Substituční šifra, ve které se šifrová abeceda mění v průběhu šifrování.

Pretty Good Privacy (PGP, Docela dobré soukromí): Šifrovací program vyvynutý Philem Zimmermannem, založený na RSA.

Rozluštit (decrypt): Dešifrovat nebo dekódovat.

RSA: První použitelný systém, který splňoval požadavky kryptografie s veřejným klíčem, vynalezený Ronem Rivestem, Adi Shamirem a Leonardem Adlemanem v roce 1977.

Soukromý klíč (private key): Klíč používaný příjemcem k dešifrování zpráv v systému kryptografie s veřejným klíčem.

Steganografie (steganography): Nauka o skrývání existence zprávy.

Substituční šifra (substitution cipher): Systém šifrování, v němž je každé písmeno zprávy nahrazeno jiným znakem, ale ve zprávě zachovává svou pozici.

Šifra (cipher): Obecně jakýkoli systém pro ukrytí smyslu zprávy tak, že každé písmeno v původní zprávě je nahrazeno jiným písmenem.

Šifrová abeceda (cipher alphabet): Přeskupení normální abecedy, která určuje, jak je každé písmeno ve zprávě zašifrováno. Může sestávat také z čísel nebo jakýchkoli jiných znaků. Ale vždycky určuje nahrazování písmen v původní zprávě.

Šifrovací algoritmus (encryption algorithm): Jakýkoli obecný proces šifrování, který může být přesně specifikován volbou klíče.

Šifrový text (cipher text): Zpráva po zašifrování.

Transpoziční šifra (transposition cipher): Systém šifrování, v němž se každé písmeno zprávy přemístí ve zprávě na jiné místo, ale zachová svou totožnost.

Veřejný klíč (public key): Klíč používaný odesílatelem k zašifrování zpráv v systému kryptografie s veřejným klíčem.

Vigenerova šifra (Vigenere ciher): Polyalfabetická šifra vyvynutá kolem roku 1500. Vigenerův čtverec obsahuje 26 samostatných šifrových abeced, z nichž každá je jednou z Caesarových posunutých abeced. Klíčové slovo určuje, která abeceda šifry bude použita pro zašifrování konkrétního písmene ve zprávě.

Zakódovat (encode): Převést otevřený text v zakódovaný text.

Zašifrovat (encipher): Převést otevřený text v šifrový text.