Základy kryptografie
- pojmy, klasická kryptografie, matematické základy kryptografie.
Steganografie.
Kryptologie - věda, která se zabývá šifrováním (kryptos = skrytý). Kryptologie se skládá z kryptografie - vědy o tvorbě šifer a kryptoanalýzy - vědy o jejich luštění.
Kryptografie - umění a věda zabývající se tím, jak udržet informace v bezpečí, zahrnuje využití šifrování (a dešifrování). Použití kryptografie v dnešním světě znamená, že zde musí být také nějaké prostředky zajišťující, že zpráva byla skutečně napsána osobou, která o sobě prohlašuje, že je jejím autorem (tedy použití digitálních podpisů). Navíc musí kryptografické systémy zajistit, že zpráva po dešifrování odpovídá původní zprávě před jejím zašifrováním.
Digitální podpis -použití soukromého klíče k šifrování, podpis je dešifrován veřejným klíčem
Kryptografický systém - systém provádějící transformaci nechráněného textu na text chráněný (nešifrovaného na šifrovaný). Všechny transformace jsou prováděny příslušným kryptografickým algoritmem s použitím klíčů.
Tradiční kryptografické systémy jsou založeny na tom, že jak odesílatel, tak i příjemce, mají stejný tajný klíč, tj. ten samý klíč je použit k zašifrování i k dešifrování. Tato metoda je známá jako symetrická kryptografie. Problém této metody spočívá v tom, že odesílatel musí nějakým způsobem doručit tento tajný (soukromý) klíč příjemci; a odesílatel nemůže zaručit, že klíč nebude cestou zachycen neautorizovanou osobou. 44726lzs16dlg1n
Kryptografická transformace = libovolné prosté zobrazení množiny celých čísel na množinu celých čísel
Kryptografický systém = parametrický systém kryptografických transformací TK = (Tk : k I K), kde k je klíč a K je prostor klíčů
homofonické šifry - písmeno často frekventované má více číselných ekvivalentů
Shrnutí pro symetrické šifrování - používá stejný klíč pro šifrování i pro dešifrování, má rychlé algoritmy, může vykazovat problémy při zprávě klíčů, využívá algoritmy DES (délka klíče 56 bitů), BlowFish (proměnná délka klíče až 256 bitů) a IDEA (délka klíče 128 bitů), AEC využívá algoritmus CIFER (délka klíče 16 bitů), což je vlastní algoritmus vyvinutý společností ( k dispozici v produktu IW Wall), používá se pro šifrování a dešifrování dat ve formě textu nebo souborů zl726l4416dllg
Správa klíčů - správa klíčů popisuje generování, přenos a uložení šifrovacích klíčů. Protože symetrické kryptografické systémy se od počátku potýkaly s problémy se správou klíčů, byl uveden na svět koncept kryptografických systémů s veřejnými klíči.
Kryptografické systémy s veřejnými klíči (nesymetrická kryptografie) - v kryptografických systémech s veřejnými klíči obdrží každá osoba pár klíčů, jeden z nich je soukromý a druhý je veřejný. Veřejné klíče jsou dostupné komukoliv, ale soukromé klíče jsou udržovány v tajnosti. Při komunikaci dochází k přenosu veřejných klíčů, zatímco soukromý klíč není nikdy nikam přenášen ani není s nikým sdílen. Zašifrované zprávy jsou odesílány otevřeně a po přijetí jsou dešifrovány soukromými klíči. Jediným požadavkem je, aby veřejné klíče byly přiřazeny svým vlastníkům (např. v důvěryhodném adresáři). Tato metoda může být také použita pro autentizaci zpráv (pomocí digitálního podpisu).
Zašifrování pomocí veřejných klíčů - Jestliže chce A poslat tajnou zprávu B, použije veřejný klíč B k zašifrování zprávy a pak ji odešle. B pak užije svůj soukromý klíč k dešifrování zprávy, takže si ji může přečíst. Nikdo jiný nemůže dešifrovat zprávu, protože nemá B soukromý klíč. Bezpečnost tohoto komunikačního systému tedy stojí na skutečnosti, že není možné získat soukromé klíče ze znalosti odpovídajících veřejných klíčů.
Digitální podpisy - Jestliže chce A podepsat svou zprávu B, provede výpočet, který použije její soukromý klíč a zprávu samotnou. Výsledek tohoto výpočtu je nazýván digitální podpis, a ten je připojen ke zprávě před jejím odesláním. Poté, co František zprávu přijme, chce prověřit její pravost. Proto provede výpočet, který využívá zprávu, podpis, který obdržel, a veřejný klíč A. Jestliže je výsledek tohoto výpočtu kompatibilní s jednoduchým matematickým vztahem, pak B ví, že zpráva je pravá, tj. že nebyla podvržena ani pozměněna cestou.
Kryptografie s veřejnými klíči má určité přednosti oproti symetrické kryptografii:
Soukromé klíče nemusí být přenášeny ani nikomu předávány
Prověřování digitálních podpisů pomocí veřejných klíčů nenarušuje odpovědnost uživatele za ochranu svého vlastního soukromého klíče. Tato skutečnost je často nazývána nepopiratelnost zodpovědnosti za zprávu.
Kryptografie s veřejnými klíči využívá algoritmus RSA (s délkou klíče až 1200 bitů) jako průmyslový standard.
Nevýhody šifrování s veřejnými klíči:
Kryptografie s veřejnými klíči je při šifrování pomalejší než symetrická kryptografie, ve skutečnosti populární metody šifrování s tajnými klíči jsou podstatně rychlejší než v současnosti používané šifrovací metody s veřejnými klíči. Proto je obvyklé kombinovat metodu šifrování s veřejnými klíči s metodou šifrování s tajnými klíči a využít tak předností obou; veřejný klíč může být použit k zašifrování tajného klíče, který se potom použije k zašifrování zprávy nebo souboru.
Kryptografie s veřejnými klíči se může stát náchylnou k falšování zpráv i tehdy, když soukromé klíče uživatelů nejsou dostupné pro útočníky. Úspěšný útok na certifikační úřad dovolí útočníkovi využít certifikát veřejného klíče zkompromitovaného úřadu a spojit tak klíč podle volby útočníka se jménem jiného uživatele.
Existují situace, kdy není využití kryptografie s veřejnými klíči nutné, a samotná symetrická kryptografie s tajnými klíči je dostačující, např. v situaci, kdy se obě strany osobně setkají k výměně tajných klíčů.
Navíc využití kryptografie s veřejnými klíči není nutné ani v případě prostředí jednoho uživatele, takže, jestliže si přejete zašifrovat své vlastní osobní soubory, můžete použít jakýkoliv symetrický šifrovací algoritmus a použít, řekněme, své osobní heslo jako tajný klíč.
Obecně, využití kryptografie s veřejnými klíči je nejvhodnější pro otevřené prostředí s více uživateli, a nepředpokládá se, že by nahradilo symetrickou kryptografií. Kombinace obou metod zajišťuje nejlepší úroveň bezpečnosti.
Základy šifrování - pravidla provozu šifrování - nevysílat stejný text zašifrovaný různými klíči, zabránit používání velmi pravděpodobných slov a frází, omezit používání typických kombinací písmen, interpunkčních znamének a mezer mezi slovy
Základní postupy při šifrování:
převedení textu na čísla a následné zobrazení množiny celých čísel na množinu celých čísel
výběr vhodné šifry (monoalfabetické nemají praktický význam) - podle příjemce, možného protivníka, podle počtu a délky vysílaných zpráv
sdělit příjemci způsob kódování ( s výjimkou systémů s veřejnými klíči nejslabší článek)
rozdělení textu na bloky stejné délky, často se kódují jiným algoritmem
vhodné často měnit způsob kódování
Charakteristika dobré šifry:
Šifra by neměla být prolomitelná v reálném čase a s použitím „rozumných“ výdajů (x šifrovací čipy a vlády).
Šifrování by mělo proběhnout rychle.
Množství práce vynaložené na šifrování a dešifrování by mělo být úměrné požadovanému stupni utajení.
Šifrovací algoritmus by neměl obsahovat zbytečná omezení (což je typické pro kódování)
Implementace algoritmu by měla být co nejjednodušší (jednorázový heslář).
Chyby při šifrování by se neměly příliš šířit.
Zprávy by se šifrováním neměly zvětšovat.
Bloková šifra - šifrování skupiny symbolů jako celku
výhody - vysoká úroveň difúze (závislost v rámci bloku resp. bloků), malá náchylnost k modifikacím a zneužití
nevýhody - zpoždění při šifrování (u sloupcové transpozice až celá zpráva), šíří se chyba (vliv chyby na celý blok)
Difuze - změna otevřeného textu se promítá do mnoha míst zašifrovaného textu
Jednosměrné šifrování - šifrování, při kterém není možné dešifrování zašifrovaných dat. Aplikuje se např. na hesla, kdy se nově zadané heslo zašifruje a tato šifrovaná hodnota se porovná s dříve šifrovanou a bezpečně uloženou hodnotou.
Klasické kryptografické systémy - dvě základní metody posun a substituce
Césarovské šifryCk (N) = n + k mod N
prostor klíčů je množina celých čísel, znak je nahrazený znakem ležícím cyklicky o k za ním
ABCDEFGHI ...
DEFEGHIJK ...
Afinní šifryAa,k (N) = a*n + k mod N
prostor klíčů je množina dvojic (a,k) celých čísel, kde a je nesoudělitelné s N, pro a=1 jde o Césarovskou šifru
Monoalfabetické šifry T(n) = f(n)
kde f(n) je prosté zobrazení množiny celých čísel na sebe (celkem je jich N!, kde je N počet písmen abecedy), klíčem je algoritmus přiřazení písmen, Césarovská i afinní šifra jsou monoalfabetické
problém - u složitého přiřazování obtížná zapamatovatelnost
Monoalfabetické šifry založené na klíčovacích frázích
1.heslem mísená standardní abeceda
písmeno a slovo (fráze), ve frázi se vynechají opakující se písmena, pod písmeno se zapíše upravená fráze a za frázi se v přirozeném pořadí zapisují nepoužitá písmena, problém - zachování pořadí většiny abecedy.
Př. písmeno C, fráze JELEN, úprava JELN
ABCDEFGHI ..
XZJELNABC ...
2.transponovaně heslem mísená standardní abeceda
upraví se fráze vynecháním opakující se písmen, pod frázi se postupně zapisují zbývající písmena abecedy
Př. fráze DOBRYCLOVEK, upravená DOBRYCLVEK
DOBRYCLVEK
AFGHIJMNPQ
STUWXZ
_______________________________________________
ABCDEFGHIJKLM
DASOFTBGURHWY
Polyalfabetické šifry - několik po sobě následujících šifer
Polyalfabetická šifra je konečnou nebo nekonečnou posloupností monoalfabetických transformací (T1, T2, T3, ....Tn,...), prostor klíčů tvoří tyto posloupnosti.
vigenérovské šifry - tvoří je konečné posloupnosti césarovských transformací
k = (k1, k2, ...., kn), n je perioda šifry (délka klíče)
použije se fráze, která se několikrát nadepíše nad Vigénérův čtverec a písmeno se zašifruje písmenem z průsečíku sloupce a řádku určeného shodným písmenem fráze a počátečním písmenem na řádku
D O B R Y C L V E K D O B R Y C L V E K D O B R Y C
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
. .
Z 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
Vigenérův čtverec - do čtverce se doplňuje postupně abeceda (zachovává se postupný sled abecedy), ve sloupcích i v řádcích
Matematické základy kryptografie - množství informace ve zprávě = minimální počet bitů nutných pro zakódování všech možných stavů zprávy (dny v týdnu 000 pondělí - 110 neděle)
entropie zprávy H (M)=log2 n n - počet všech možných stavů zprávy
určuje míru neurčitosti zprávy
rychlost národního jazyka - průměrná entropie (angličtina cca 1, bitu/znak) r=H(M)/N
maximální entropie (absolutní rychlost národního jazyka) R=log2 L L=počet znaků abecedy
redundance jazyka D=R-r angličtina 3,4 bitu/znak
Steganografie (tajnopis) - slouží k ukrývání tajných správ tak, že samotná existence tajné informace zmizí. Staré metody - tajné inkousty, nepatrné vpichy ve vybraných znacích, mřížky zakrývající většinu zprávy s výjimkou několika písmen. Dnes se používá ukrývání do tištěných obrazů s využitím více barevných odstínů než kolik může lidské oko rozlišit. Do obrazu 1024 x 1024 s různými stupni šedi lze ukrýt 64 kB zprávu.