|
ISSN 1214-9675 Server vznikl za podpory Grantové agentury ČR. 21. ročník |
Témata
Doporučujeme
Kontakt
|
Využití proudových šifer v současnostiVydáno dne 10. 08. 2009 (20625 přečtení)Použití konkrétních kryptografických primitiv lze hodnotit podle různých kritérií z hlediska úrovně bezpečnosti, funkcionality, režimů činnosti, výkonu a jednoduchosti implementace. Důležitost rozdílných kritérií podstatně závisí na konkrétním typu použité aplikace a dostupných zdrojích. Tento příspěvek se bude věnovat problematice proudových šifer a jejich současném použití v praktických aplikacích. The current usage of stream ciphersAbstractThe usage of particular cryptographical primitives can be evaluated according to different aspects such as security level, functionality, operation modes, performance and ease of implementation. The importance of different criterias significantly depends on the particular type of aplication used and available sources. This paper deals with the current usage of stream ciphers in practical applications. Informační bezpečnostPro dosažení informační bezpečnosti na úrovni elektronické komunikace je třeba rozsáhlých technických a právních prostředků. Technické prostředky poskytuje kryptografie, studující matematické techniky související s aspekty ochrany informací jako jsou důvěrnost, integrita dat, autentizace entit a zdrojů dat. Důvěrnost je vlastnost zajišťující ochranu obsahu informace před neautorizovanými osobami (zajišťuje soukromí). Integrita dat je schopnost poskytnout detekci neautorizovaných změn v datech, jako je vložení, mazání nebo záměna dat. Autentizace je služba související se vzájemnou identifikací dvou stran vstupujících do procesu komunikace. Kryptografické aspekty bezpečnosti jsou z těchto důvodů obvykle rozděleny do dvou hlavních tříd: autentizace entity a autentizace zdroje dat. Autentizují se tedy komunikující strany (entity) i původ dat. Elementárním úkolem kryptografie je optimálně aplikovat uvedené oblasti jak v teorii, tak i v praxi. Kryptografie slouží k prevenci a detekci podvodů či jiných zlomyslných aktivit. Základní kryptografické nástroje (primitiva) zobrazuje následující obr. 1. Obr. 1: Taxonomie kryptografických primitiv Použití konkrétních kryptografických primitiv lze hodnotit podle různých kritérií z hlediska úrovně bezpečnosti, funkcionality, režimů činnosti, výkonu a jednoduchosti implementace. Důležitost rozdílných kritérií podstatně závisí na konkrétním typu použité aplikace a dostupných zdrojích. Pokud existuje požadavek na omezený výpočetní výkon, lze například redukovat velmi vysokou úroveň zabezpečení ve prospěch celkového lepšího výkonu systému. Obvykle je složité vyčíslit úroveň bezpečnosti, takže je často vyjádřena počtem nejlepších, aktuálně známých metod použitých k ochraně zamýšleného cíle. Funkcionalita spočívá ve stanovení nejefektivnější kombinace primitiv pro zajištění jednotlivých cílů informační bezpečnosti, na základě primárních vlastností použitých primitiv. Kryptografické nástroje produkují odlišné výstupní charakteristiky v závislosti na použitých vstupech a způsobech použití, takže jeden nástroj může poskytovat rozdílné funkcionality podmíněné použitým režimem činnosti. Výkonnost souvisí s efektivitou daného nástroje a může být například vyjádřena počtem bitů, které daný šifrovací algoritmus dokáže zašifrovat za jednotku času. Jednoduchost souvisí se složitostí implementace daného nástroje, ať už po softwarové nebo hardwarové stránce. Tento příspěvek se bude s ohledem na obr. 1 věnovat problematice symetrických kryptografických nástrojů konkrétně proudovým šifrám (vyznačeno tučně) [1]. Symetrická kryptografieŠifra symetrického klíče je takové šifrovací schéma, které obsahuje množiny šifrovacích resp. dešifrovacích transformací {Ee: e ∈ κ} resp. {Dd: d ∈ κ}, kde κ je prostor klíčů a splňuje podmínku, že pro každý šifrovací/dešifrovací pár klíčů (e, d) je výpočetně „jednoduché“ určit d ze znalosti e a určit e ze znalosti d. V praktických schématech symetrické kryptografie obvykle platí e = d. Komunikaci dvou stran lze za použití šifry symetrického klíče popsat pomocí blokového diagramu uvedeného na obr. 2. Při komunikaci jsou použity dva komunikační kanály: jeden nezabezpečený pro přenos zabezpečené informace a druhý zabezpečený pro přenos šifrovacího klíče e, kterým vysílací strana data zašifrovala. Přijímací strana může relativně jednoduše vypočítat dešifrovací klíč d z přijatého použitého šifrovacího klíče e. Nejsložitější úkol není v tomto případě výpočet d z e, ale zajištění efektivní metody zabezpečené výměny klíčů. Tato oblast se nazývá problematika distribuce klíčů a je více popsána např. v [2]. Nabízí se otázka, proč nevyužít stávající „bezpečný“ kanál, použitý pro přepravu dešifrovacího klíče d, i pro vlastní utajované zprávy. Efektivní by pak bylo zprávu nešifrovat a poslat ji v otevřené podobě bezpečným kanálem, který byl dříve realizován pomocí důkladně prověřeného a velmi důvěryhodného kurýra. Bezpečnost takového kanálu je velmi závislá na důvěryhodnosti kurýra (vliv různých metod nátlaku jako vyhrožování, vydírání atp.) Dnes je obvykle vytvoření bezpečného kanálu řešeno asymetrickou metodou (např. Diffie-Hellman algoritmus), ale ty jsou náročnější na výpočet v porovnání se symetrickými algoritmy, takže jsou využívány pouze pro přenesení tajného (dešifrovacího) klíče a otevřený text se pak přenáší v zašifrované podobě skrz nezabezpečený kanál. Obr. 2: Komunikace dvou stran za použití šifry symetrického klíče Předpoklad pro úspěšný zabezpečený přenos dat v tomto případě je, že všechny komunikující strany znají množinu šifrovacích resp. dešifrovacích transformací (šifrovací schéma). Klíč d se pak stává jedinou informací, kterou je třeba přenést v utajené podobě. Tento požadavek ovšem zahrnuje i nutnost utajení klíče e, neboť d lze z e odvodit. Běžně jsou rozlišovány dvě třídy schémat šifer symetrického klíče: blokové šifry a proudové šifry. Bloková šifra je takové šifrovací schéma, které rozděluje zprávu otevřeného textu před odesláním do řetězců pevné délky t nad abecedou A zvaných bloky a šifruje vždy jeden blok v jednom čase. Existují dvě základní třídy blokových šifer; šifry substituční a transpoziční. Algoritmy, vyžívající kombinace obou šifrovacích schémat, se nazývají šifry složené (Product ciphers). Sekvence symbolů e1e2e3…ei ∈ κ se nazývá proudovým klíčem, je-li κ je prostorem klíčů množiny šifrovacích transformací. Nechť A je abeceda q symbolů a nechť Ee je jednoduchá substituční šifra s délkou bloku 1, kde e ∈ κ. Nechť m1m2m3… je řetězec otevřeného textu a nechť e1e2e3… je proudový klíč κ. Proudová šifra produkuje řetězec šifrového textu c1c2c3… z řetězce otevřeného textu, kde ci = Eei(mi). Pokud di označuje inverzi ei, pak Ddi(ci) = mi dešifruje řetězec šifrového textu. Proudová šifra aplikuje jednoduchou šifrovací transformaci v závislosti na použitém proudovém klíči, který může být generován náhodně, nebo pomocí algoritmu, který jej generuje z malého inicializačního proudového klíče zvaného jádro (seed), nebo z jádra a předchozích šifrovaných symbolů. Takovýto algoritmus se nazývá generátor proudového klíče [1]. Porovnání symetrických algoritmůVzhledem k tomu, že symetrické blokové algoritmy používají k šifrování po sobě následujících bloků stejnou funkci, nemají blokové šifry paměť. Naproti tomu symetrické proudové algoritmy zpracovávají otevřený text po blocích o velikosti jeden bit, přičemž se šifrovací funkce v průběhu procesu zpracování mění. Proto se označují proudové šifry jako šifry s pamětí resp. šifry stavové, neboť šifrovací transformace je závislá jak na klíči a na otevřeném textu (jako je tomu u blokových algoritmů), tak i na aktuálním stavu [3]. Dělení proudových šiferKlasickou proudovou šifrou je Vernamova šifra, jež je definovaná na binární abecedě A = {0,1}. Binární zpráva m1m2…mt pracuje s řetězcem binárního klíče k1k2…kt o stejné délce a vytváří řetězec šifrového klíče c1c2…ct, kde c1 = mi ⊕ ki, 1 ≤ i ≤ t. Vernamova šifra se vlastně skládá ze dvou substitučních šifer na množině A, kde jedna E0 mapuje 0 na 0 a 1 na 1 a druhá E1 mapuje 0 na 1 a 1 na 0. Pokud proudový klíč obsahuje 0, pak se aplikuje E0 na odpovídající symbol otevřeného textu, jinak se aplikuje E1. One-time pad (Jednorázový heslář) je Vernamova šifra, pro kterou je proudový klíč generován náhodně. Takováto šifra je nepodmíněně bezpečná proti útoku na šifrovaný text, neboť její entropie H(M|C) = H(M) resp. I(M;C) = 0, kde M je zpráva otevřeného textu a C šifrovaný text. Jinými slovy šifrovaný text neobsahuje informace o otevřeném textu. Shannonova nutná podmínka pro zajištění absolutní bezpečnosti je H(κ) ≥ H(M), neboli entropie klíče musí být větší nebo rovna entropii otevřeného textu. V praxi tato podmínka omezuje použití proudových šifer, neboť nemohou zajistit absolutní bezpečnost. Proto se šifry s entropií H(κ) << M(M) spoléhají na svou výpočetní bezpečnost. Další problém je v požadavku na bezpečnou distribuci klíče (nutná existence důvěryhodného kurýra). Matematický důkaz nepodmíněné bezpečnosti Vernamovy šifry je možné najít v [4]. Pokud je proud klíče generovaný nezávisle na otevřeném a šifrovaném klíči, nazývá se taková proudová šifra synchronní. Obr. 3: Model synchronní proudové šifry Takováto šifra vyžaduje, aby odesílatel a příjemce byli synchronizováni při použití proudu klíče a operací na shodné pozici. Je-li bit ztracen nebo naopak přidán, je dešifrování znemožněno a je nutná resynchronizace obou stran. Technika resynchronizace spočívá ve vkládání speciálních značek do šifrového textu, které reinicializují ztracenou synchronizaci. Další vlastností je nešíření chyb. Pokud je bit šifrovaného textu změněn (nesmí být ztracen či zdvojen), pak tento stav neovlivní dešifrovací proces. Sama o sobě je šifra náchylná na útoky typu mazání, vložení či opakování bitů, jejichž důsledkem je ztráta synchronizace. Proto je nutné tuto situaci detekovat a zavést mechanizmy pro zajištění autentizace a integrity dat. Speciálním případem synchronní proudové šifry je tzv. binární aditivní proudová šifra vyznačující se binární reprezentací otevřeného textu, šifrového textu (bity) a výstupní funkce je funkcí XOR. Obr. 4: Model binární aditivní proudové šifry Dalším typem jsou proudové šifry s vlastní synchronizací (asynchronní). Vyznačují se generováním proudového klíče v závislosti na klíči a pevně daném počtu předchozích šifrovaných bitů. V praxi se nejčastěji používají v režimu jednobitové zpětné vazby (CFB). Obr. 5: Model proudové šifry s vlastní synchronizací Vlastní synchronizace je možná, i když jsou některé bity smazané či vložené, protože dešifrovací mapování závisí na pevném počtu předchozích zašifrovaných bitů. Tyto šifry jsou schopny znovuustavit správné dešifrování automaticky po ztrátě synchronizace, přičemž se ztratí pouze pevný počet bitů otevřeného textu. Předpokládá se, že stav asynchronního proudu šifry závisí na t předchozích šifrovaných bitech. Je-li jeden šifrovaný bit modifikován (smazán nebo vložen) během přenosu, potom může být dešifrování maximálně t následujících bitů šifrového textu nesprávných, než nastane opět správné dešifrování. Z předchozí vlastnosti (omezeného šíření chyb) vyplývá, že jakákoliv modifikace bitů šifrového textu útočníkem, způsobí špatné dešifrování pouze několika dalších zašifrovaných bitů, a tím vylepší (oproti synchronním proudovým šifrám) pravděpodobnost její detekce na dešifrovací straně. Proto musí být u synchronních proudových šifer bez vlastní synchronizace zavedeny další mechanizmy, aby byla zajištěna příslušná datová integrita a autenticita dat. Jelikož každá číslice otevřeného textu ovlivňuje následující šifrovaný text, jsou statistické vlastnosti šifrového textu rozptýleny přes celý šifrový text. Z tohoto důvodu jsou asynchronní šifry odolnější v porovnání se synchronními proudovými šiframi proti útokům založeným na redundanci otevřeného textu [1]. Proudové šifry v současnostiAlgoritmus RC4Proudové šifry jsou v současné době stále využívány v běžně dostupných technologiích. Stále se lze setkat se zabezpečením bezdrátových WiFi sítí pracujících v bezlicenčních pásmech nazývaným WEP (Wired Equivalent Privacy), které je součástí původního standardu IEEE 802.11 z roku 1999. Tato aplikace algoritmu RC4 však není ideálním příkladem použití. WEP používá nevhodně aplikovanou proudovou šifru RC4 (Rivest Cipher verze 4). Podrobný popis algoritmu RC4 (vyvinutý Ronem Rivestem v roce 1987) byl známý pouze osobám, které podepsali důvěrný dodatek, neboť byl ve vlastnictví RSA Data Security, Inc. V září roku 1994 však anonymní odesílatel uveřejnil zdrojový kód algoritmu, a tak se rychle rozšířil po celém světě. RC4 je ochranná známka RSA Data Security, Inc., takže je zveřejněný údajný RC4 algoritmus označován jako ARC4 (Alleged RC4). Již v roce 1997 ve své publikaci J. Golic [5] poukázal na statistickou slabinu generátoru klíče u ARC4. V roce 2001 S. Fluhrer, I. Mantin a A. Shamir publikovali objevenou slabinu v algoritmu generování klíčů, zjistili, že existuje množina tzv. slabých klíčů, a na základě této myšlenky provedli pasivní útok na šifrovaný text [6]. Algoritmus byl oficiálně označen jako zastaralý a nedoporučený bohužel až v roce 2004 [7]. Naneštěstí se i přesto na počátku roku 2009 vyskytují veřejně dostupné sítě „zabezpečené“ pomocí WEP, jež je implementována pouze z důvodů zpětné kompatibility bezdrátových systémů. Obr. 6: Zapouzdření WEP a začlenění RC4 Algoritmus A5A5 je proudová šifra vyvinutá k šifrování GSM hovoru mezi mobilní stanicí a základnovou stanicí BTS (Base Transceiver Station). Hovor v síti operátora, tj. od BTS přes BSC (Base Station Controller) až do ústředny MSC (Mobile Switching Center), není dále šifrován, takže ho lze odposlouchávat. Existuje ve dvou variantách, které jsou na bázi proudových šifer: A5/1 a A5/2 [7]. Šifra A5/1 byla vyvinuta již v roce 1987 v USA. Ačkoliv byl algoritmus A5/1 spolu s algoritmem její nástupkyně A5/2 utajován, unikly v roce 1994 informace o jejich obecné struktuře a v roce 1999 byly oba algoritmy zpětným inženýrstvím detailně zrekonstruovány [8]. A5/1 využívá klíč délky 64 bitů spojený s veřejně známým číselným rámcem dlouhým 22 bitů. V implementaci GSM je ovšem deset bitů klíče pevně nastaveno na nulu, takže je efektivní délka klíče 54 bitů. To dělá z A5/1 šifru méně bezpečnou, než byl např. DES s klíčem délky 56 bitů. Teoretický útok pomocí předem vypočítaných stavů prezentoval v roce 1997 J. Golić [9]. Šifra A5/2 byla vyvinuta o dva roky později především pro oblast Asie a východní Evropy a byla podstatně slabší. V průběhu času byla nahrazována původní A5/1, neboť za velmi krátkou dobu po vydání byla možné šifru prolomit i na běžném osobním počítači [10]. Teprve od roku 2006 podle asociace GSMA (GSM Association) nepodporují mobilní telefony algoritmus A5/2, asociace 3GPP ji však ve svých standardech jako volitelnou stále podporuje. Až v roce 2006 předvedli E. Barkan, E. Biham a N. Keller útoky v reálném čase a možnost prolomit uloženou zachycenou komunikaci později [11]. Obr. 7: Princip A5/1 Nedostatečná bezpečnost zapříčinila vývoj novějšího algoritmu A5/3 (v roce 2002) nazývaného též KATSUMI, který je ze skupiny blokových šifer. Více informací je možné získat z doporučení ETSI TS 135 202 [12]. Neveřejně známá varianta šifrovacího algoritmu A5 je rovněž používána v systému GPRS (General Packet Radio Service), kde je šifrován datový tok mezi mobilní stanicí a paketovou ústřednou SGSN (Serving GPRS Support Node). Šifra E0Proudová šifra E0 byla zkonstruována pro šifrování datového toku bezdrátového komunikačního protokolu pro relativně krátké vzdálenosti (desítky metrů) zvaného Bluetooth (IEEE 802.15). E0 v inicializační fázi generuje klíč pro blok dat, v druhé fázi produkuje jednotlivé bity proudu klíče na principu Massey-Rueppelova generátoru klíče. Ve třetí fázi se pak realizuje vlastní šifrování resp. dešifrování (viz obr. 8). I přesto, že byl Massey-Rueppelův algoritmus generování klíče navržen s ohledem na známé kryptoanalytické metody, je náchylný na korelační útoky. Pravděpodobnost úspěchu takového útoku snižuje vysoká resynchronizační frekvence (podle doporučení měla být vždy po odeslání bloku dat E0 resynchronizována). Každé zařízení Bluetooth má svou jedinečnou 48bitovou adresu BD_ADDR, která je použita k šifrování stejně jako šifrovací klíč KC, 26 bity master clock a 128bitová náhodně vygenerovaná hodnota RAND. Princip funkce je zobrazen v obr. 8. Další podrobné informace o standardu IEEE 802.15 je možné nalézt v [13]. Obr. 8: Princip E0 Projekt eSTREAMeSTREAM je projekt organizovaný evropským konsorciem výzkumných organizací zvaným ECRYPT (European Network of Excellence for Cryptology) spuštěný v únoru 2004 za účelem vytvoření nového šifrovacího algoritmu, který poskytne vyšší stupeň důvěrnosti a současně vyšší rychlost než AES (Advanced Encryption Standard). Na základě výzvy Call for Stream Cipher Primitives byl v dubnu 2005 ukončen příjem nových návrhů algoritmů proudových šifer, kterých bylo do té doby předloženo velké množství [14]. Výběrové řízení spočívalo ve třech fázích. Během první fáze, která skončila v únoru 2006, proběhla rámcová analýza všech podaných návrhů na základě předem daných kritérií bezpečnosti, rychlosti, jednoduchosti, flexibility, kompletnosti dokumentace apod. Detailní požadavky kladené na jednotlivá kryptografická primitiva projektu eSTREAM jsou uvedeny v [15]. Pro potřeby testování byly vytvořeny 2 testovací profily: Profile 1 testující proudové šifry pro softwarové aplikace s požadavkem na vysokou propustnost a Profile 2 testující proudové šifry pro hardwarové aplikace s omezenými zdroji jako např. omezený úložný prostor, počet hradel nebo spotřeba energie. Do Profile 1 byly přijaty ty projekty, které splňovaly lepší softwarovou výkonnost, než AES-128 v CTR režimu. Druhá fáze začala v červnu 2006, kdy proběhly podrobné testy kandidátů vyšlých z první fáze, a trvala do září roku 2007. Pro oba profily jsou dodatečně přijímány nové algoritmy a kandidáti fáze 2 každých šest měsíců reklasifikováni. Do třetí fáze postoupily dvě osmice kandidátů v Profilu 1 a v Profilu 2, z nichž byly vybrány pro Profil 1 algoritmy HC-128, Rabbit, Salsa20/12 a SOSEMANUK, a pro Profil 2 Grain v1, MICKEY v2 a Trivium [16].
Tab. 1: Revidované portfolio algoritmů projektu eSTREAM Proudová šifra HC-128 je zjednodušená verze proudové šifry HC-256, která používá 128 bitů dlouhý klíč tak, aby byla jednodušší, softwarově efektivnější, ale přitom dostatečně bezpečná a zdarma dostupná [17]. Proudová šifra Rabbit byla navržena tak, aby šifrovala rychleji, než běžně používané proudové šifry používající délku klíče 128 bitů. Rabbit umožňuje šifrovat otevřený text až s 264 bloky. Šifra aplikuje operaci XOR na tajný 128bitový klíč a 64bitový inicializační vektor, takže vygeneruje v každé iteraci 128 bitů dlouhý pseudonáhodný proudový klíč [18]. Základem proudové šifry Salsa20 je hešovací funkce pracující v CTR režimu, přičemž produkuje 64bajový výstupní blok. Hešovací funkce používá 32bajtový klíč, 8bajtový nonce, 8bajtový čítač a zbylých 16 bajtů je pevně daných specifikací, takže Salsa20 mapuje 64 vstupních bajtů na 64 bajtů. Varianta Salsa20/12 používá redukovaný počet rund, z původních 20 na 12 rund, pro vylepšení rychlosti při zachování dostatečné bezpečnosti [19]. Proudová šifra SOSEMANUK využívá základní principy návrhů proudové šifry SNOW 2.0 a blokové šifry SERPENT, používá 128bitovou inicializační hodnotu a usiluje o vylepšení principu SNOW 2.0 jako po stránce bezpečnosti, tak i efektivnosti (např. urychluje inicializační proces IV) [20]. Proudová šifra Grain je navržena s ohledem na použití omezených prostředků použitého hardware, jako počet hradel, spotřeba elektrické energie a velikost paměti. Šifrovací algoritmus je navržen modulárně tak, že umožňuje zvýšení rychlosti za cenu výkonnějšího hardware [21]. Proudová šifra MICKEY (zkratka z angl. Mutual Irregular Clocking KEYstream generator), rovněž jako algoritmus Grain, vychází z podmínky hardwarové platformy s omezenými prostředky. Je založena na myšlence zajistit minimální HW složitost při zachování dostatečně vysokého stupně bezpečnosti. MICKEY využívá nepravidelně taktované zpětnovazební registry zkombinované s novými technikami, přičemž zajišťuje požadavky na periodu a pseudonáhodnost, aby se minimalizoval úspěch kryptografických útoků [22]. Poslední proudovou šifrou splňující kritéria druhého profilu je algoritmus s názvem Trivium. Tento algoritmus poskytuje flexibilní kompromis mezi rychlostí a rozsahem. Její autoři testovali, kam až lze šifrovací algoritmus zjednodušit při zachování dostatečné bezpečnosti, rychlosti a flexibility. Algoritmus generuje 264 bitů proudového klíče z 80bitového tajného klíče a 80bitové inicializační hodnoty (IV) [23]. ZávěrProudové šifry se stále v praxi používají a jsou stále aktuálním tématem problematiky ochrany dat. Jejich výhody spočívají především v jejich nízkém zpoždění (resp. času potřebném pro zpracování), rychlosti a v neposlední řadě i relativní jednoduchosti HW implementace pomocí zpětnovazebních registrů. Díky projektu eSTREAM, organizovaným evropským konsorciem zvaným ECRYPT, jsou zapojeny týmy výzkumných pracovišť z celého světa, aby důkladným testováním zvolily potenciálního nástupce algoritmu AES. Literatura
[1] MENEZES, A. J., OORSCHOT, P. C., VANSTONE, S. A. Handbook of applied cryptography. CRC PRESS, 1997. 780 s. ISBN 0-8493-8523-7 Autor: M. Rohlík Pracoviště: České vysoké učení technické v Praze, FEL |
Zprávy
UPOZORNĚNÍ
Činnost serveru byla ukončena.
|
Tento web site byl vytvořen prostřednictvím phpRS - redakčního systému napsaného v PHP jazyce.
Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
nebo registrovanými ochrannými známkami příslušných vlastníků.