Základy kryptologie
Definice kryptologie. Historický přehled utajovacích metod. 
Šifry: záměnné, transpoziční, heslové, strojové. 
Shannonova teorie bezpečnosti šifer. 
Difúze a konfúze. Klasifikace tříd složitosti algoritmů. 
Prvočísla důkazy prvočíselnosti, rozklad na prvočinitele, prvočísla v kryptografii. 
Generace náhodných bitů metody generování náhodných bitů, testování kvality posloupností náhodných bitů, využití posloupností náhodných bitů v kryptografii.


 

Kryptografie neboli šifrování je nauka o metodách utajování smyslu zpráv převodem do podoby, která je čitelná jen se speciální znalostí. 
Slovo kryptografie pochází z řečtiny – kryptós je skrytý a gráphein znamená psát. 
Někdy je pojem obecněji používán pro vědu o čemkoli spojeném se šiframi jako alternativa k pojmu kryptologie. 
Kryptologie zahrnuje kryptografii a kryptoanalýzu, neboli luštění zašifrovaných zpráv.

 
Základní pojmy
  • Šifra nebo šifrování budeme označovat kryptografický algoritmus, který převádí čitelnou zprávu neboli prostý text na její nečitelnou podobu neboli šifrový text. 
  • Klíč je tajná informace, bez níž nelze šifrový text přečíst. 
  • Symetrická šifra je taková, která pro šifrování i dešifrování používá tentýž klíč. 
  • Asymetrická šifra používá veřejný klíč pro šifrování a soukromý klíč' pro dešifrování.
  • Hašovací funkce je způsob, jak z celého textu vytvořit krátký řetězec, který s velmi velkou pravděpodobností identifikuje nezměněný text. 
  • Certifikáty a elektronický podpis jsou softwarové prostředky, které umožní šifrování textu.
Starší sestrou kryptografie je steganografie neboli ukrývání zprávy jako takové. 
Sem patří různé neviditelné inkousty, vyrývání zprávy do dřevěné tabulky, která se zalije voskem apod. 
V moderní době lze tajné texty ukrývat například do souborů s hudbou či obrázky namísto náhodného šumu.

 
Šifry: záměnné, transpoziční, heslové, strojové. 

 
Substituční (záměnné) šifry
Substituční šifra obecně spočívá v nahrazení každého znaku zprávy jiným znakem podle nějakého pravidla. 
Posun písmen
Caesarova šifra je pojmenovaná po Juliu Caesarovi, který ji pravděpodobně používal jako první. 
Každé písmeno tajné zprávy je posunuto v abecedě o pevný počet pozic.
Šifra je z dnešního pohledu velmi snadno luštitelná, protože je jen málo možných klíčů.
Ve své době ale představovala nevídanou metodu a osvědčila se velmi dobře.
Příklad tabulky záměny, s použitím slova VESLO jako klíče:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
V E S L O A B C D F G H I J K M N P Q R T U W X Y Z
Vigenèrova šifra
Jedná se o speciální případ polyalfabetické šifry. 
Vigenèrova šifra používá heslo, jehož znaky určují posunutí otevřeného textu a to tak, že otevřený text se rozdělí na bloky znaků dlouhé stejně jako heslo a každý znak se sečte s odpovídajícím znakem hesla.  Vigenèrova šifra způsobuje změny pravděpodobnosti rozložení znaků a tím podstatně znemožňuje kryptoanalýzu na základě analýzy četnosti znaků v textu. 
Příklad s použítím slova HESLO jako klíče k zašifrování:
otevřený text S T A S T N E A V E S E L E
klíč H E S L O H E S L O H E S L
šifrový text A Y T E I V J T H T A J E Q
Vernamova šifra
je anglicky často nazývaná one-time pad, v českém překladu jednorázová tabulková šifra. 
Jde dosud o jedinou známou šifru, o níž bylo exaktně dokázáno, že je nerozluštitelná. 
Podobně jako Vigenèrova šifra i tahle spočívá ve sčítání písmen otevřeného textu a hesla, avšak heslo je blok náhodně zvolených dat o stejné velikosti jako je otevřený text. 
Pokud jsou splněny podmínky zcela náhodného klíče o stejné délce jako zpráva sama (a není použit opakovaně), je tato šifrovací metoda absolutně bezpečná. 
Délka klíče však pro běžné účely použití této metody zpravidla znemožňuje, metoda se používá hlavně pro velice specializované účely, např. tzv. horká linka spojující za dob studené války Moskvu a Washington používala Vernamovu šifru. D

 
Transpoziční šifry
Transpozice neboli přesmyčka spočívá ve změně pořadí znaků podle určitého pravidla. 
Například tak, že otevřený text je zapsán do tabulky po řádcích a šifrový text vznikne čtením sloupců téže tabulky.

 
Transpoziční mřížka
Tabulka, v níž jsou některá políčka vystřižena a do těchto je vpisován otevřený text. 
Po zaplnění všech políček je tabulka otočena o 90° a postup se opakuje. 
Tuto šifru použil Jules Verne ve své knize Matyáš Sandorf (Nový hrabě Monte Christo). 
Jsou možné i jiné tvary tabulky než čtverec. Například lze použít šestiúhelník se šestiúhelníkovými políčky, který se 5× otáčí o 60°. 
Klíčem této šifry je rozložení vystříhaných políček.
  • Příklad transpoziční mřížky (horní strana je označena červeně pro snazší orientaci a použití)
           
           
           
           
           
           

 
Šifrování strojem
Použití mechanických a elektronických strojů přineslo do šifrování zcela nové možnosti. 
Zejména proto, že stroje jsou schopny velkého počtu opakování určitého úkonu v krátkém čase.

 

Enigma
Německo za 2. světové války používalo k utajování zpráv mechanický stroj Enigma, který prováděl poměrně složité operace se vstupním textem, ale zároveň se dal poměrně snadno ovládat.
Poláci ovšem ještě před vypuknutím války pracovali na prolomení šifry a jejich zjištění byla později nedocenitelná pro spojenecké armády.
Šifra byla již během války zlomena a poskytovala tak německé straně pouze falešný pocit bezpečí.
Nutno ovšem dodat, že prolomení Enigmy bylo ve své době možné pouze díky nevhodným a nedostatečně propracovaným postupům při jejím používání jako byly např. nevyužití maximálního možného zabezpečení poskytovaného propojovací deskou (Steckerbrett), opakování tříznakového klíče na začátku každé zprávy, snadno odhadnutelné fráze v textu apod.
Pokud je Enigma používána správně, není rozluštění jejich zpráv triviální záležitostí ani při použití dnešní výpočetní techniky.
Enigma měla původně 3 rotory, které se otáčely, podobě jako mechanické počítadlo a každý měl jinak propojené vstupní a výstupní kontakty, tím se měnil průběh proudu a i výsledné písmeno zašifrovaného textu.
Později začalo ponorkové námořnictvo používat čtyřrotorové Enigmy a stroj byl zdokonalován i zaváděním dalších prvků (Uhr Box a. j.).

Shannonova teorie bezpečnosti šifer
Všechny klasické šifry (s jedinou výjimkou Vernamovy šifry) mají tu vlastnost, že čím delší je šifrový text, tím snazší je šifru rozluštit.
Shannonova teorie vysvětluje, proč tomu tak je.
  • Vzdálenost jednoznačnosti (Unicity Distance = UD)
    • Intuitivně můžeme posoudit, proč delší šifrový text poskytuje více informací o otevřeném textu.
    • Použijeme-li jednoduchou záměnu, pak ze šifrového textu o délce jednoho písmene U  nemůžeme usoudit vůbec nic o příslušném otevřeném textu.
    • Ze šifrového textu o dvou písmenech UV  už můžeme usoudit, že příslušný otevřený text není složený ze dvou stejných písmen. 
    • Máme-li smysluplný otevřený text v přirozeném jazyce o délce dejme tomu 500 písmen, pak si lze těžko představit, že by mohla existovat nějaká permutace písmen, která by jej opět proměnila v jiný smysluplný text v otevřeném jazyce.
    • Proto k šifrovému textu o 500 písmenech může existovat nejvýše jeden smysluplný text v přirozeném jazyce, který nějakou jednoduchou záměnou vede k tomuto šifrovému textu.
    • Nejmenší délka šifrového textu, ke kterému existuje jednoznačně určený smysluplný otevřený text, se nazývá  vzdálenost jednoznačnosti.
    • Vzdálenost jednoznačnosti je pro každou šifru jiná.
  • Entropie
    • Základem Shannonovy teorie je pojem entropie.
    • Entropie zhruba řečeno vyjadřuje, kolik informace je v nějaké zprávě.
    • Máme-li v dotazníku vyplnit rubriku pohlaví, odpověď  ženské nebo mužské obsahuje informaci velikosti jednoho bitu, nikoliv 48 bitů, kolik potřebujeme k jejímu zápisu pomocí ASCII kódu.
    • Tuto informaci totiž můžeme také zakódovat jako 0 - mužské,           1 - ženské.
    • Informaci o velikosti jednoho bitu ovšem nese pouze v případě, že ji pokládáme v situaci, kdy o pohlaví dotazované osoby předem nic nevíme.
    • Na setkání dobrovolnic armády spásy nám neposkytne informaci vůbec žádnou.
Difúze a konfúze. 
Důvod proč historické šifry jsou luštitelné přímo ze šifrového textu je ten, že text u nich příliš přímočaře odráží statistické charakteristiky otevřeného textu.
Shannon navrhl dvě metody, jak tomu zabránit - difúzi a konfúzi.

 
Difúze rozprostírá statistické charakteristiky otevřeného textu do delších úseků šifrového textu.
Difúzi docílíme zobrazením znaků otevřeného textu do jednoho znaku šifrového textu přepisem c(n) = (o(n-s+1) + o(n-s+2) + ... + o(n)) mod 26
Jednoduchá záměna ponechává zcela nepozměněny vazby mezi hláskami, neboť jejich četnosti zůstávají stejné v šifrovaném jako v otevřeném textu.
Velmi dobrá difúze je dosažena, když jakákoliv redundance v otevřeném textu je rozprostřena do celého šifrového textu.

 
Konfúze činí vztah mezi statistickými vlastnostmi šifrového textu a klíčem co nejsložitější a nejobsažnější (tj. zahrnující co největší části šifrového textu a klíče).

 

 
Klasifikace tříd složitosti algoritmů. 
  • Třída úloh P
    • lze je řešit deterministickým TS s časovou náročností, kterou můžeme vyjádřit polynomiální funkcí vzhledem k velikosti vstupu algoritmem
  • Třída úloh NP
    • lze řešit nedeterministickým TS s časovou náročností, kterou můžeme vyjádřit polynomiální funkcí vzhledem k velikosti vstupu algoritmem. 
    • A pokud máme řešení, toto lze verifikovat v polynomiálním čase
  • Třída úloh NPC (NP-Complete)
    • složité problémy, které jsou na sebe redukovatelné v polynomiálním čas, ale pokud máme řešení, lze toto verifikovat v polynomiálním čase
  • Třída úloh NPH (NP-Hard)
    • všechny NPC, ale i složitější, kde ani verifikace není proveditelná v polynomiálním čase
  • Třída úloh U (Undecidable problems)
    • obsahuje problémy, pro které je dokázáno, že neexistuje algoritmus, který by je řešil¨
Prvočísla důkazy prvočíselnosti, rozklad na prvočinitele, prvočísla v kryptografii. 
Prvočísla jsou přirozená čísla větší než 1, která jsou beze zbytku dělitelná pouze jedničkou a samo sebou. 
Celá čísla větší než 1, která nejsou prvočíslem se nazývají složená.
Prvočísel je nekonečně mnoho.

 
Rozložení prvočísel
Každé složené číslo lze jednoznačně vyjádřit jako součin prvočísel. 
Proces rozkladu čísla na jeho prvočíselné činitele (prvočinitele) se nazývá faktorizace.
Např. 24 = 2^3 * 3

 
Zjištění počtu prvočísel mezi 1 a x je velice blízký funkci x/ln (x).
Toto se používá pro odhad pravděpodobnosti výskytu velkých prvočísel při jejich tvorbě pomocí náhodného generování velkých čísel.

 
Velká prvočísla jsou potřeba v kryptografii pro PKC algoritmus RSA. 

 
Eratosthenesovo síto
metoda určí všechna prvočísla menší nebo rovná n.
Postup:
  • napište řadu všech přirozzených čísel (2,3,4,5,6,7,8,9,10,...,n)
  • počínaje 4 vyškrtněte všechny násobky čísla 2 (2,3,5,7,9,11,13,15,17,....,n)
  • dále vyškrtneme všechny násobky čísla 3 větší než 3 (2,3,5,7,11,13,17,19,23,25,...,n)
  • pokračujeme pořád dále až do √n a vyškrtneme tím všechna neprvočísla
  • tato metoda je na první pohled nepraktická pro velká n
Prvočísla v kryptografii
  • Prvořadou úlohu hrají prvočísla v oblasti asymetrických šifer. 
  • Nejznámější asymetrická šifra RSA stojí a padá se složitostí faktorizace čísel
  • Protože digitální podpis založený na asymetrických šifrách je v současné době jediná bezpečná instance elektronického podpisu, mají prvočísla a faktorizace dopad i na tuto oblast
  • Při konstrukci proudových šifer se využívají jako jeden ze stavebních kamenů registry se zpětnou vazbou. Konkrétně lineární registry se zpětnou vazbou, jejichž délky jsou prvočísla. Tato prvočísla mají výhodné a teoreticky dobře popsatelné vlastnosti.

 
Generace náhodných bitů metody generování náhodných bitů, testování kvality posloupností náhodných bitů, využití posloupností náhodných bitů v kryptografii.

 
Generátor náhodných bitů (RBG)
  • zařízení sestrojené k produkci posloupnosti statisticky nezávislých a rovnoměrně rozdělených binárních náhodných veličin
  • RBG má splňovat
    • rovnoměrnost
      • pravděpodobnost nuly a jedničky = 0,5
    • nezávislost měřítka
      • co platí pro celou posloupnost musí platit i pro libovolnou podposloupnost
    • konzistenci
      • chování generátoru nezávisí na vstupní hodnotě - seed
Použití RBG v kryptografii
  • Přímé šifrování náhodným helsem (Vernamova šifra)
    • One-time pad - jediný absolutně bezpečný systém
  • Generování klíčů pro
    • symetrické šifry
    • asymetrické šifry
  • Generování dat pro vytváření elektronických podpisů
    • zvláštní případ použití asymetrických šifer
Rozdělení RBG
  • Fyzikální generátory 
    • produkují true-random posloupnosti (TRBG)
    • pracují na základě náhodných fyzikálních procesů
    • podle typu je dělíme na
      • fundamentálně náhodné
        • radioaktivní rozpad
        • tepelný šum v tranzistorech
        • dopad světelného kvanta
      • prakticky náhodné
        • Ruleta
        • losovací zařízení loterií (např. Sportka)
    • Výhody pro kryptografii
      • maximální bezpečnost
      • naprostá neopakovatelnost
    • Nevýhody pro kryptografii
      • pomalost generace
      • problémy při technické realizaci zařízení
  • Generátory algoritmické (DRBG)
    • produkují pseudo-random posloupnosti
    • posloupnost se počítá deterministickým algoritmem založeným na nějaké jednosměrné funkci
    • použité algoritmy
      • hashovací funkce (SHA-1, MD-5)
      • blokové šifry (DES, 3-DES, AES)
      • proudové šifry
    • Výhody pro kryptografii
      • vysoká rychlost generování
      • cenově nejlevnější realizace
    • Nevýhody pro kryptografii
      • nižší bezpečnost
      • periodicita
      • při špatně zvoleném sestavení i možnost opakování
  • Generátory smíšené
    • spojení true a pseudo-random generátoru
    • používá se na zlepšení pravděpodobnostních charakteristik u fyzikálních generátorů
    • Výhody pro kryptografii
      • všechny výhody true-random a navíc vysoká rovnoměrnost četnosti znaků
      • ideální pro použití v kryptografických aplikacích (generování klíčů)
    • Výhody pro kryptografii
      • pomalost generování
      • nevhodné pro online šifrování
Testování posloupností
Q:Proč by měla být jedna konečná náhodná posloupnost lepší než-li druhá?
A: Použijeme-li jako heslo k zašifrování náhodnou posloupnost s relativní četností nuly 99,999%, protivník si ji hned přečte.
Pokud jich bude 90%, protivník ji také vyluští.
Při relativní četnosti 50,00001% mu však nepomohou ani všechna počítače světa

 
Klasické testy
  • test frekvence (frequency test)
  • test n-tic (serial, poker test)
  • test serií (run test)
  • test rozložení sérií
  • autokorelační test (autocorrelation test)
  • univerzální test - Maurer & Coron
  • spektrální test
Testovací baterie
každý z testů testuje nějakou vlastnost, kterou by měla mít kryptologicky kvalitní náhodná posloupnost znaků. 
Proto se tyto testy shlukují do tzv. baterií, aby posloupnost testovaly komplexně.

 
Testovací baterie používané pro kryptografické účely:
  • FIPS 140-2 (NIST USA)
    • mezinárodní standard na kvalitu kryptografických zařízení od 2001 (předtím FIPS 140-1)
    • obsahuje i baterii statistických testů na generátory binárních posloupností pro kryptografické účely
    • Použité testy:
      • test frekvence
      • poker test pro K=4
      • testy sérií pro L=1,...,6
      • test na nevýskyt extrémně dlouhé série (L>33)
    • Hodnocení generátoru nastaveno na hladinu významnosti 0.0001
  • NIST Statistical Test Suite
  • DIEHARD
  • CRYPT-XS
  • VANAD