04
Symetrické šifrování (šifrování privátním klíčem) využívá kšifrování adešifrování pouze jednoho klíče anavíc takzvaný inicializační vektor (IV). Symetrické algoritmy jsou vcelku rychlé a mohou být použity i pro větší objemy dat. Použijeme-li vsymetrickém šifrování jeden klíč, bude vstup vždy reprezentován stejným šifrovaným výstupem. Při symetrickém šifrování se uskutečňují 2 typy algoritmů: proudové a blokové šifrování.
Velkým nedostatkem symetrických kryptosystémů je situace, kdy vzájemnou komunikaci mezi sebou provádí ne tři, čtyři osoby, ale stovky a tisíce lidí. V tomto případě je nutné, pro každý pár, který si vzájemně dopisuje, vytvořit svůj tajný symetrický klíč. Což ve výsledku přivádí k existenci v systému N uživatelů N2/2 klíčů. A to už je velmi vysoké číslo. Kromě toho, při porušení důvěrnosti kteroukoliv pracovní stanicí, získá záškodník přístup ke všem klíčům tohoto uživatele a může odesílat, jakoby jeho jménem, zprávy všem abonentům s kterými si "oběť" dopisovala.
Pracují sbitovými proudy otevřeného textu ašifrovaného textu (někdy také s proudy 32bitových slov). Proudová šifra při každém šifrování transformuje jeden a týž bit nebo veřejného textu do různých bitů šifrovaného textu. Proudové šifry transformují otevřený text do šifrovaného textu po jednom bitu za operaci. Obvykle se používá operace XOR (eXclusive OR). Výsledek šifrování nezáleží na již dříve proběhlém vstupním proudu.
Proudové šifry se používají v systémech přenosu proudů informací, tj. v těch případech, kdy přenos informace začíná a končí v libovolných časových okamžicích a může se náhodně přerušit. Jsou vhodné pro šifrování nepřetržitých proudů dat – hovor, video atd.
Proudové šifry jsou založeny na pseudonáhodných klíčových posloupnostech. Generátor proudu klíčů vytváří bitový proud, který je podobný náhodnému, ale ve skutečnosti je determinován a může být bezchybně obnoven při dešifrování. Čím blíže je výstup z generátoru proudu klíčů k náhodnému, tím více času potřebuje kryptoanalytik, aby rozlomil šifru. Avšak, jestliže generátor proudu klíčů při každém zapnutí vytváří jeden a týž bitový proud, tak není těžké rozlomit jím používaný kryptografický systém. Celkově je možné zobrazit schéma šifry následujícím způsobem:
Princip proudového šifrování.
Nejjednodušší realizací proudové šifry je skramblování. Podstata skramblování spočívá v bitové změně proudu dat procházejících přes systém. Prakticky jedinou operací používanou vskramblerech je XOR. Paralelně se procházejícímu informačnímu proudu v skrambleru podle určitého pravidla generuje proud bit – kódující proud. Jak přímé, tak i zpětné šifrování se provádí naložením XOR kódující posloupnosti na výchozí. Jeho realizace je možná jak na elektronickém, tak i elektrickém základě, což také zabezpečilo jeho široké rozšíření v polních podmínkách. A co více, fakt, že každý bit výstupní posloupnosti záleží pouze na jednom vstupním bitu ještě posílil pozici skramblerů při ochraně proudového přenosu dat. Je to spojené s nevyhnutelně vznikajícími poruchami v přenosovém kanálu, které mohou deformovat v tomto případě pouze ty bity, které připadají a ne na s nimi spojenou skupinu bajtů, jak je tomu v blokových šifrách.
Jedním ze závažných problémů s šiframi na základě skramblerů je synchronizace přenášejícího (kódujícího) a přijímajícího (dekódovacího) zařízení. Při vynechání nebo špatném vložení alespoň jednoho bitu se veškerá přenášená informace nevratně ztrácí. Proto se v systémech šifrování na základě skramblerů věnuje velká pozornost metodám synchronizace. V praxi se pro tyto účely obvykle používá kombinace dvou metod:
přidáním do informačního proudu synchronizujících bitů, předem známých přijímací straně, což jí umožňuje při nenalezení takového bitu začít aktivně hledání synchronizace s odesílatelem,
využívání vysoce přesných generátorů časových impulsů, což umožňuje ve chvílích ztráty synchronizace provádět dekódování přijímaných informačních bitů "podle paměti" bez synchronizace.
Při dostatečně dlouhé činnosti skrambleru dojde nevyhnutelně k zacyklení. Po provedení určitého počtu taktů se vkomůrkách skrambleru vytvoří bitová kombinace, která v něm již jednou byla a od tohoto okamžiku se začne kódovací posloupnost cyklicky opakovat sfixovanou periodou. Uvedený problém je neodstranitelný podle své povahy, protože v N bitech skrambleru nemůže být více než 2N kombinací bitů a tudíž maximálně po 2N-1 cyklech se určitě uskuteční opakování kombinace.
Dalším nedostatkem skramblovacích algoritmů je jejich nestabilita vůči falzifikaci. Je také důležité poznamenat, že čím vyšší je bitovost skrambleru, tím je vyšší kryptoodolnost systému založeného na jeho využití.
K přednostem proudových šifer patří:
možnost dosažení vysokých rychlostí šifrování,
koeficient rozmnožení chyby je rovný jedné,
proudovost šifrování a rozšifrování,
uchování velikosti textu při šifrování.
Systémy proudového šifrování jsou blízké kryptosystémům sjednorázovým klíčem ukterých je velikost klíče rovná velikosti šifrovaného textu. Při kryptoanalýze na základě známého otevřeného textu se stabilita systému určuje nelineárními booleovými funkcemi, což umožňuje ocenit kryptostabilitu systému na základě analýzy typu používaných funkcí. V systémech proudového šifrování nedochází k rozmnožení chyb nebo je omezené. Z těchto důvodů a také vzhledem k vysoké rychlosti zpracování systému proudového šifrování (šifrování proudu dat se uskutečňuje bez zdržení vkryptosystému) zvyšují důvěru spotřebitelů a specialistů.
Pracují s bloky otevřeného textu nebo šifrovaného textu – obvykle o délce 64 bitů nebo delší. Výchozí otevřená zpráva se rozdělí na bloky – odřezky s fixovanou délkou, šifrování se uskutečňuje způsobem použití tabulky záměny (závislé na klíči, ale ne na čísle bloku) bloku za blok. Bloková šifra používající jeden a týž klíč vždy při šifrování transformuje jeden a týž blok otevřeného textu do jednoho a téhož šifrovaného textu. Výsledek šifrování záleží na všech výchozích bajtech tohoto bloku. Schéma se používá při paketovém přenosu informací a šifrování souborů.
V závislosti na charakteru aplikací prováděných s daty se algoritmy dělí na:
Přestavující – bloky informací (bajty, bity, větší jednotky) se sami od sebe nemění, ale mění se pořadí jejich postupu, což dělá informaci nedostupnou pro postranního pozorovatele.
Substituční – samotné bloky informací se mění podle požadavků algoritmu.
Jakékoliv kryptografické transformace nezvětšují objem informace, ale pouze mění její znázornění. Jestliže proces šifrování významně zvětšuje objem výstupního souboru, příčinou je obvykle neoptimální popř. nekorektní algoritmus. Objem šifrovaného souboru je možné zmenšit pouze algoritmem archivace zabudovaným v kryptosystému a za podmínky komprese informace.
Substituční šifrou nazýváme šifru u které se každý symbol otevřeného textu všifrovaném textu nahrazuje jiným symbolem. Příjemce invertuje substituci šifrovaného textu a obnovuje otevřený text.
V klasické kryptografii existují 4 typy substitučních šifer:
Jednoduchá substituční šifra neboli monoabecední šifra - je to šifra, která každý symbol otevřeného textu nahrazuje odpovídajícím symbolem šifrovaného textu. Jednoduchými substitučními šiframi jsou kryptogramy v novinách. Jednoduché substituční šifry se lehce otevírají, protože šifra netají frekvenci používání různých symbolů v otevřeném textu.
Jednozvučná (homofonická) substituční šifra je podobná na jednoduchý substituční kryptosystém kromě toho, že jeden symbol otevřeného textu se zobrazuje na několik symbolů šifrovaného textu. Například “?” může odpovídat 5,13,25 nebo 56, “?”- 7,19,31 nebo 42 atd. Jsou složitější pro otevření než jednoduché substituční šifry, ikdyž neskrývají všechny statistické vlastnosti jazyku otevřeného textu. Za pomoci otevření známým otevřeným textem se tyto šifry triviálně otevírají. Otevření za pomoci pouze šifrovaného textu je složitější, ale zabírá v počítači pouze několik vteřin.
Polygramová substituční šifra – je to šifra, která bloky symbolů šifruje podle skupin. Například “???” může odpovídat “RTQ”, “ABB” může odpovídat “SLL” atd.
Polyabecední substituční šifra se sestává z několika jednoduchých substitučních šifer. Například může být použito pět jednoduchých substitučních šifer; každý symbol otevřeného textu se nahrazuje s použitím jedné konkrétní šifry. V polyabecedních substitučních šifrách jsou množstevní jednopísmenné klíče, každý z nich se používá pro šifrování jednoho symbolu otevřeného textu. Prvním klíčem se šifruje první symbol, druhým klíčem – druhý symbol atd. Po použití všech klíčů se cyklicky opakují. Jestliže se používá 20 jednopísmenných klíčů, tak se každé 20 písmeno šifruje stejným klíčem. Tento parametr se nazývá periodou šifry. V klasické kryptografii se šifry s dlouhou periodou otevíraly obtížněji než s krátkou periodou. Použití počítačů umožňuje lehce odhalit substituční šifry s velmi dlouhou periodou.
Znamenitá Caesarova šifra, ve které se každý symbol otevřeného textu nahrazuje symbolem nacházejícím se o tři symboly napravo podle modulu 26 (“A” se nahrazuje za “D”, “B”-za “E”,...,”Y”-za “B”, “Z”- za “C”), představuje jednoduchou substituční šifru. Je opravdu velmi prostá, protože abeceda šifrovaného textu představuje posunutou ane náhodně rozdělenou abecedu otevřeného textu.
V substituční šifře není otevřený text, ale řada symbolů. V jednoduché sloupcové substituční šifře se otevřený text píše horizontálně na diagramovém listu papíru o fixované šířce a šifrovaný text se odečítá na vertikále. Dešifrování je záznam šifrovaného textu vertikálně na diagramovém listu papíru o fixované šířce a poté se odečítá otevřený text horizontálně.
Otevřený text:
COMPUTER GRAPHICS MAY BE SLOW BUT AT LEAST IT’S EXPENSIVE
Postup šifrování:
COMPUTERGR
APHICSMAYB
ESLOWBUTAT
LEASTITSEX
PENSIVE
Šifrovaný text:
CAELP OPSEE MHLAN PIOSS UCWTI TSBIV EMUTE RATS GYAE RBTX
Symetrické kryptosystémy nehledíc na množství předností, mají jeden velký nedostatek. Je spojený se situací, kdy vzájemnou komunikaci mezi sebou provádí ne tři, čtyři osoby, ale stovky a tisíce lidí. V tomto případě je nutné, pro každý pár, který si vzájemně dopisuje, vytvořit svůj tajný symetrický klíč. Což ve výsledku přivádí k existenci v systému N uživatelů N2/2 klíčů. A to už je velmi velké číslo. Kromě toho, při porušení důvěrnosti kteroukoliv pracovní stanicí, získá záškodník přístup ke všem klíčům tohoto uživatele a může odesílat, jakoby jeho jménem, zprávy všem abonentům s kterými si "oběť" dopisovala.
Svérázným řešením tohoto problému bylo objevení se asymetrické kryptografie. Asymetrická kryptografie byla od začátku pojata jako prostředek předání zpráv od jednoho objektu druhému (a ne pro důvěrnou archivaci informací, která je zajištěna pouze symetrickými algoritmy). Základní myšlenka asymetrických kryptoalgoritmů je v tom, že pro šifrování zprávy se používá jeden klíč a pro dešifrování – jiný.
Kromě toho je procedura šifrování zvolena tak, aby byla nevratná i se známým šifrovacím klíčem – to je druhá nutná podmínka asymetrické kryptografie. To znamená, že se znalostí šifrovacího klíče a zašifrovaného textu je nemožné obnovit původní zprávu – je možné jej přečíst pouze s pomocí druhého klíče – dešifrovacího klíče. A jestliže je to tak, je možné šifrovací klíč pro odesílání dopisů jakékoliv osobě vůbec neskrývat – vědouc, že je stejně nemožné přečíst zašifrovanou zprávu. Proto se šifrovací klíč v asymetrických systémech nazývá "otevřeným klíčem“ a dešifrovací klíč musí příjemce zpráv uchovávat v tajnosti – nazývá se "zavřeným klíčem". Vnucuje se otázka: "Proč, když známe otevřený klíč nelze vypočítat zavřený klíč?" – toto je třetí nutná podmínka asymetrické kryptografie – algoritmy šifrování a dešifrování se vytvářejí tak, aby bylo, znaje otevřený klíč, nemožné vypočítat zavřený klíč. Takže do základů zařízení asymetrických krypto systémů je položen pojem jednostranné funkce.
Asymetrická kryptografie učinila ještě dostatečně významný průlom v technologii primárního šíření klíčů. Jestliže byla pro symetrické kryptosystémy povinná předběžná výměna na uzavřeném kanálu (obvykle osobně z ruky do ruky), tak nyní se pro to objevily úplně nové způsoby. Metoda Diffie-Hellmana používá algoritmus podobný algoritmu RSA, pro prvotní výměnu klíčů v symetrických krypto systémech na otevřeném kanálu, ale jen v takovém, kde je nemožná falzifikace zpráv. Tato metoda je podmíněna obtížností řešení úlohy diskrétního logaritmování.
Algoritmus RSA je pilířem asymetrické kryptografie. Používá se v něm pro odesílání zpráv nevratná transformace s velkou mocninou celých čísel podle modulu.
Jak se ukázalo, asymetrická transformace umožňuje velmi hezky řešit i úlohu autenticity autora zprávy – jednoduchou změnou pořadí použití otevřeného a zavřeného klíče.
Prakticky pro každý kryptoodolný algoritmus nebo protokol může být ukázáno, že v převážné většině případů (a se správným výběrem parametrů) se útok svádí na řešení určité obtížné úlohy, například rozložení na násobky (faktorizace) velkého složeného čísla. Přitom nebyla z hlediska existence dokázána optimální výpočetní složitost algoritmu řešení úlohy pro náhodně vybrané parametry.
Většina prostředků kryptografické ochrany dat je realizováno ve formě specializovaných technických zařízení. Tyto zařízení zabudované ve spojovací vedení a uskutečňují šifrování celé přenášené informace. Hardwarová realizace šifrování má několik přednosti před softwarovou:
Větší rychlost než u softwarové realizaci. Kryptografické algoritmy se skládají s obrovského počtu složitých operací provádějících nad bity otevřených dat. Moderní univerzální počítače nedostatečně přizpůsobené k efektivnímu vykonání těch operací. Specializované zařízení umí dělat je o mnoho rychleji.
Snadněji ochránit fyzicky před proniknutím zvenku. Program běžící na počítače prakticky bezbranný. Zlomyslník může tajně vnést změny, aby snížit odolnost kryptografického algoritmu anikdo ani nevšimne. Co se týká specializovaného technického zařízení, tak obvykle se to nachází ve zvláštním kontejneru, které brání jeho funkční schéma od změn. Čip se pokrývá shora speciální chemickou sestavou. A v důsledku pokusu odolat ochrannou vrstvu tohoto čipu přivádí ke samo zničení vnitřní logické struktury. Navíc proti magnetickému záření můžeme použit zaclonění čipu.
Hardwarové zařízení je jednodušší vinstalaci. Velmi často potřebujeme šifrování v těch místech, kde doplňkové počítačové zařízení je absolutně zbytečným. Telefony, faxy, modemy je mnohem levněji vybavit hardwarovou realizaci šifrování, než vmontovat mikropočítače s příslušným programovým zabezpečením.
Ideálně šifrování musí být realizováno nenápadně pro uživateli. Aby to dosáhnout pomoci programového vybavení, šifrování musí být schováno hluboce do operačního systému. Provést to s odladěným OS není tak jednoduché. Ale napojit šifrovací blok k počítači s jedné strany a modem s druhé dokáže i neprofesionál. DES je typickým příkladem propastného rozdílu mezi softwarovou a hardwarovou implementací, neboť při šifrování hardwarových čipem je několiksetkrát rychlejší.
Jakýkoliv kryptografický algoritmus může být realizován v programovém tvaru. Přednosti takové realizace je zřetelná: softwarovou realizaci šifrování se dá snadno kopírovat, jednoduchá v použití, snadno modifikovat podle konkrétních potřeb.
Každý rozšířený operační systém má zabudované šifrovací prostředky. Obvykle jsou určené pro šifrování jednotlivých souborů, práce s klíče se celkem ukládá na uživatele. Proto použití těch prostředků vyžaduje zvláštní pozornost, tj. v žádném případě uchovávat klíče na disku spolu s šifrovanými soubory a nezašifrované kopie souboru je nutno smazat hned po zašifrování.
Šifrování souborů lze na první pohled připodobit k šifrování zpráv, kde odesilatel a adresát je stejná osoba (prostředím přenosu slouží počítačové zařízení uchování dat jako magnetní nebo optický disk, operativní paměť). Nicméně není to tak jednoduché jak se může zdát.
Při šifrování souborů (nezáleží jaký kryptografický algoritmus se používá) je potřeba pamatovat na takové zvláštnosti jak:
Dost často se stává, že po šifrování zůstává na disku jeho nezašifrovaná kopie či výpis;
Velikost bloku v blokovém algoritmu šifrování může významně převyšovat velikost jednotlivé porce dat vsouboru. Vdůsledku čeho konečná délka zašifrovaného souboru bude mnohem víc, než délka výchozího;
Rychlost šifrování souborů pomoci zvoleného ktomuto účelu kryptografického algoritmu musí odpovídat rychlostem, na kterých pracují vstupní/výstupní jednotky současných počítačů;
Rychlost šifrování souborů pomoci zvoleného ktomuto účelu kryptografického algoritmu musí odpovídat rychlostem, na kterých pracují vstupní/výstupní jednotky současných počítačů;
Práce s klíče je dost složitá, protože různí uživateli obvykle mají přístup nejen k různým souborům a taky k jejích jednotlivým částím;
Nejlépe šifrovat každý soubor jednotlivým klíčem, a potom zašifrovat všechny klíče pomoci master-klíče (masterkey). Tím samým uživateli budou vysvobozeni od zmatků organizace spolehlivého uschování velkého čísla klíčů. Rozlišení přístupu skupin uživatelů k různým souborům bude uskutečněno dělením množství všech klíčů na podmnožiny a šifrování těch podmnožin různými master- klíče. Odolnost takového kryptosystémy bude mnohem výš, než v případě použití jednotného klíče pro šifrování všech souborů na pevném disku, protože klíče použité při šifrování souborů lze udělat víc náhodnými a tak víc odolnými proti slovníkovému útoku.
Algoritmy komprese dat jsou velmi užitečné při společném použití s kryptografickými algoritmy.
Při otevření šifra kryptoanalytik se spoléhá na nadbytečnost (redundance), co je velmi typické jakémukoliv otevřenému textu. Komprese pomáhá zbavit se té nadbytečnosti.
Šifrování dat je docela komplikovaná operace. Při použití komprese se délka otevřeného textu zmenšuje a tím samým se krátí doba procesu šifrování.
Je třeba nezapomenout zkomprimovat soubor před tím, než bude zašifrován, nikoli obráceně. Neboť po šifrování souboru pomoci kvalitního kryptografického algoritmu je získaný šifrovaný text velmi obtížné zkomprimovat. Parametry šifrovaného textu budou blízké ke parametrům absolutně náhodného souboru písmen. Komprese může sloužit zvláštním testem pro kontrolu kvality kryptografického algoritmu. Pokud se dá šifrovaný text zkomprimovat, znamená to, že použitý algoritmus je možno vyměnit na více modernější.