Proud [1] [2] nebo proudová šifra [3] je symetrická šifra , ve které je každý znak otevřeného textu převeden na znak šifrovaného textu v závislosti nejen na použitém klíči, ale také na jeho umístění v proudu otevřeného textu. Proudová šifra implementuje odlišný přístup k symetrickému šifrování než blokové šifry .
Proudové šifry založené na posuvných byly aktivně používány během válečných let, dlouho před příchodem elektroniky. Bylo snadné je navrhnout a realizovat.
V roce 1965 Ernst Selmer, hlavní kryptograf norské vlády, vyvinul teorii sekvence posuvného registru . Později Solomon Golomb , matematik americké Národní bezpečnostní agentury , napsal knihu nazvanou „Sekvence posunového registru“, ve které nastínil své hlavní úspěchy v této oblasti, stejně jako úspěchy Selmera.
Dílo Clauda Shannona , vydané v roce 1949, přineslo velkou popularitu streamovým šifrám , ve kterých Shannon prokázal absolutní bezpečnost Vernamovy šifry (také známé jako jednorázová podložka). Ve Vernamově šifře má klíč délku rovnou délce přenášené zprávy samotné. Klíč se používá jako gama , a pokud je každý bit klíče vybrán náhodně, pak není možné šifru prolomit (protože všechny možné otevřené texty budou stejně pravděpodobné). K dnešnímu dni bylo vytvořeno velké množství algoritmů pro šifrování toku , jako jsou: A3 , A5 , A8 , MUGI , PIKE , RC4 , SEAL .
Nejjednodušší implementace proudové šifry je znázorněna na obrázku. Generátor gama vytváří klíčový proud (gama): . Označme bitový tok prostého textu jako . Poté se bitový proud šifrovaného textu získá použitím operace XOR : kde .
Dešifrování se provádí operací XOR mezi stejnou gama a šifrovým textem: .
Je zřejmé, že pokud sekvence gama bitů nemá periodu a je vybrána náhodně, pak není možné šifru prolomit. Ale tento režim šifrování má také negativní vlastnosti. Klíče, které jsou délkou srovnatelné s přenášenými zprávami, jsou tedy v praxi těžko použitelné. Proto se obvykle používá menší délka klíče (například 128 bitů). Pomocí něj se vygeneruje pseudonáhodná herní sekvence (musí splňovat Golombovy postuláty ). Pseudonáhodnost gama lze přirozeně využít při útoku na proudovou šifru.
Předpokládejme například, že v režimu gama pro proudové šifry byl jeden znak šifrového textu zkreslen během přenosu komunikačním kanálem . Je zřejmé, že v tomto případě budou všechny znaky přijaté bez zkreslení správně dekódovány. Ztratí se pouze jeden znak textu. A nyní si představme, že jeden ze znaků šifrového textu byl ztracen během přenosu komunikačním kanálem. To povede k nesprávnému dekódování veškerého textu následujícího po ztraceném znaku.
Prakticky všechny kanály přenosu dat pro streamingové šifrovací systémy obsahují rušení . Proto, aby se zabránilo ztrátě informací, je vyřešen problém synchronizace šifrování a dešifrování textu. Podle způsobu řešení tohoto problému se šifrovací systémy dělí na synchronní a samosynchronizační.
Definice:
Synchronní proudové šifry (SPC) jsou šifry, ve kterých je proud klíčů generován nezávisle na otevřeném a šifrovaném textu.
Když je zašifrován, generátor toku klíčů vytváří bity toku klíčů, které jsou identické s bity toku klíčů při dešifrování. Ztráta znaku šifrovaného textu způsobí, že se oba generátory nesynchronizují, což znemožní dešifrování zbytku zprávy. Je zřejmé, že v této situaci se musí odesílatel a příjemce znovu synchronizovat, aby mohli pokračovat v práci.
Synchronizace se obvykle provádí vložením speciálních značek do přenášené zprávy. Výsledkem je, že znak ztracený během přenosu vede k nesprávnému dešifrování pouze do doby, než je přijat jeden z tokenů.
Všimněte si, že synchronizace musí být provedena tak, aby se žádná část toku klíčů neopakovala. Proto nemá smysl převádět generátor do dřívějšího stavu.
Výhody SPS:
Nevýhody SPS:
Základní myšlenka konstrukce byla patentována v roce 1946 v USA .
Definice:
Samosynchronizující proudové šifry (asynchronní proudové šifry (ATS)) jsou šifry, ve kterých je proud klíčů tvořen funkcí klíče a pevným počtem znaků šifrovaného textu.
Vnitřní stav generátoru toku klíčů je tedy funkcí předchozích N bitů šifrového textu. Proto je generátor dešifrovacího toku klíčů, který přijal N bitů, automaticky synchronizován s generátorem šifrování.
Implementace tohoto režimu je následující: každá zpráva začíná náhodnou hlavičkou o délce N bitů; hlavička je zašifrována, přenesena a dešifrována; dekódování je špatné, ale po těchto N bitech budou oba generátory synchronizovány.
Výhody APS:
Nevýhody APS:
Existuje několik důvodů pro použití lineárních posuvných registrů v kryptografii:
Definice: Posuvný registr s lineární zpětnou vazbou délky L se skládá z L očíslovaných buněk , z nichž každá je schopna uložit 1 bit a má jeden vstup a jeden výstup; a hodinový signál , který řídí posun dat. Během každé jednotky času se provádějí následující operace:
V prvním kroku:
Ve druhém kroku:
Následující vztah popisuje činnost LFSR obecně:
Pokud do všech buněk zapíšeme bity rovné nule, pak systém vygeneruje sekvenci sestávající ze všech nul. Pokud zapíšeme nenulové bity, dostaneme polonekonečnou posloupnost. Posloupnost je určena koeficienty
Podívejme se, jaká může být perioda takového systému:
Počet nenulových plnění: Proto, .
Po výskytu jedné náplně, která byla dříve, se proces začne opakovat. Proces plnění registru, jak je znázorněno výše, je reprezentován lineární diferenční rovnicí. Přeneseme všechny členy na jednu část rovnosti, dostaneme: .
Označme: . Pak:
Důležitou vlastností tohoto polynomu je redukovatelnost.
Definice:
Polynom se nazývá redukovatelný , pokud jej lze reprezentovat jako součin dvou polynomů menších stupňů s koeficienty z daného oboru (v našem případě s binárními koeficienty). Pokud k takové reprezentaci nedojde, pak se o polynomu říká, že je neredukovatelný .
Pokud je polynom ireducibilní a primitivní , pak bude perioda stejná jako maximální možná perioda, rovna
Příklad:
Vezměte ireducibilní primitivní polynom Tento polynom lze zapsat jako - stupně, ve kterých existují nenulové koeficienty, jsou zapsány.
Do buněk zapíšeme počáteční stav a určíme délku periody generátoru:
Zpětná vazba | Buňka0 | Buňka1 | buňka2 |
jeden | 0 | 0 | jeden |
0 | jeden | 0 | 0 |
jeden | 0 | jeden | 0 |
jeden | jeden | 0 | jeden |
jeden | jeden | jeden | 0 |
0 | jeden | jeden | jeden |
0 | 0 | jeden | jeden |
jeden | 0 | 0 | jeden |
Perioda generátoru je Výstupem generátoru bude sekvence:
Uveďme příklady některých primitivních polynomů modulo 2:
Lineární složitost binární sekvence je jednou z nejdůležitějších charakteristik operace LFSR. Proto se tomuto tématu věnujeme podrobněji.
Před definicí lineární složitosti zavedeme nějakou notaci. - nekonečná posloupnost se členy - konečná posloupnost délky , jejíž členy jsou LFSR, se
říká, že generuje posloupnost , pokud existuje nějaký počáteční stav, ve kterém se výstupní posloupnost LFSR shoduje s . Podobně se říká, že LFSR generuje konečnou sekvenci , pokud existuje nějaký počáteční stav, pro který má výstupní sekvence LFSR jako první členy členy sekvence .
Nakonec uvedeme definici lineární složitosti nekonečné binární posloupnosti. Definice: Lineární složitost nekonečné binární posloupnosti je číslo , které je definováno takto:
Definice:
Lineární složitost konečné binární posloupnosti je číslo , které se rovná délce nejkratšího LFSR, který generuje posloupnost, která má jako první členy . Vlastnosti lineární složitosti:
Nechť a být binární posloupnosti. Pak:
1. Pro libovolnou lineární složitost podposloupnosti vyhoví nerovnosti
2. právě tehdy, když je nulová posloupnost délky .
3. tehdy a jen tehdy, když .
4. Jestliže je periodické s periodou , pak
5. Účinným
algoritmem pro určení lineární složitosti konečné binární posloupnosti je Berlekamp-Masseyův algoritmus .
Bohužel výstupní sekvence LFSR je snadno předvídatelná. Při znalosti 2L znaků výstupní sekvence je tedy snadné najít počáteční zaplnění registru řešením soustavy lineárních rovnic (viz odstavec „Streamové šifry založené na posuvných registrech s lineární zpětnou vazbou“).
Předpokládá se, že pro kryptografické použití musí mít výstupní sekvence LFSR následující vlastnosti:
Existuje několik metod pro návrh generátorů toku klíčů, které ničí lineární vlastnosti LFSR, a tím činí takové systémy kryptograficky bezpečnějšími:
1. pomocí nelineární funkce , která kombinuje výstupy několika LFSR,
2. pomocí funkce nelineárního filtrování pro obsah každé buňky jednoho LFSR
3. použití výstupu jednoho LFSR k řízení hodinového signálu jednoho (nebo několika) LFSR.
Je známo, že každou booleovskou funkci lze zapsat jako modulo 2 součet součinů řádů nezávislých proměnných , . Tento výraz se nazývá algebraická normální forma funkce . Nelineární řád funkce je maximální řád členů v zápisu její algebraické normální formy.
Například booleovská funkce má nelineární řád 3. Maximální možné nelineární řád booleovské funkce je roven počtu proměnných
Předpokládejme nyní, že máme lineární zpětnovazební posuvné registry, jejich délky jsou párově různé a větší než dva. Všechny registry jsou kombinovány s nelineární funkcí , jak je znázorněno na obrázku. Funkce je reprezentována v algebraické normální formě. Pak je lineární složitost toku klíčů .
Jsou-li párová prvočísla, pak je délka periody toku klíčů rovna: . Například když , tak . A délka období klíčového proudu je .
Příklad (Geffův generátor):
Tento generátor používá tři LFSR kombinované nelineárním způsobem. Délky těchto registrů jsou párová prvočísla.
Nelineární funkci pro daný generátor lze zapsat takto:
Délka období:
Lineární složitost:
Geffův generátor je kryptograficky slabý, protože informace o stavech generátorů LFSR 1 a LFSR 3 jsou obsaženy v jeho výstupní sekvenci. Abychom tomu porozuměli, označme -té výstupní bity LFSR 1,2,3 a tok klíčů . Pak pravděpodobnost korelace posloupnosti vzhledem k posloupnosti :
Podobně
z tohoto důvodu, navzdory dlouhému období a poměrně vysoké lineární složitosti, se Geffův generátor hodí ke korelačním útokům.
Výstup každé buňky je přiváděn na vstup nějaké nelineární booleovské filtrační funkce . Předpokládejme, že funkce filtrování je řádná , pak je lineární složitost toku klíčů nanejvýš .
V nelineárních kombinacích oscilátorů a nelineárních filtrových oscilátorů je pohyb dat ve všech LFSR řízen jediným hodinovým signálem.
Hlavní myšlenkou fungování uvažovaného typu generátorů je zavést nelinearitu do provozu generátorů toku klíčů založených na LFSR řízením hodinového signálu jednoho registru výstupní sekvencí druhého.
Existují 2 typy oscilátorů založených na řízení hodin:
1. oscilátor s proměnnou výškou tónu
2. kompresní oscilátor.
Hlavní myšlenka:
LFSR 1 se používá k ovládání pohybu bitů dalších dvou LFSR 2 a 3.
Operační algoritmus:
1. Registr LFSR 1 je synchronizován externím hodinovým signálem
2. Pokud je výstup registru LFSR 1 jedna , pak je registr LFSR 2 napájen hodinovým signálem a LFSR 3 opakuje svůj předchozí výstupní bit (pro počáteční čas je předchozí výstupní bit LFSR 3 považován za rovný 0 )
3. Pokud je výstup registru LFSR 1 nula , pak se do registru LFSR 3 přivede hodinový signál a LFSR 2 zopakuje svůj předchozí výstup bit (pro počáteční dobu je předchozí výstupní bit LFSR 2 rovněž považován za rovný 0)
4. Výstupní bitová sekvence generátoru s proměnným krokem je výsledkem aplikace bitové operace XOR na výstupní sekvence LFSR 2 a LFSR 3 registrů.
Zvýšení bezpečnosti generátorů s proměnným sklonem:
Řídicí registr LFSR 1 se používá k ovládání výstupu LFSR 2. Algoritmus:
Generátor komprese je jednoduchý, škálovatelný a má dobré bezpečnostní vlastnosti. Jeho nevýhodou je, že rychlost generování klíčů nebude konstantní, pokud nebudou přijata určitá opatření.
Pro zvýšení bezpečnosti kompresního generátoru:
Většinu existujících šifrovacích tajných klíčů lze jednoznačně klasifikovat jako proudové šifry nebo blokové šifry . Teoretická hranice mezi nimi je ale dost nejasná. Algoritmy blokové šifry se například používají v režimu proudové šifry (příklad: pro algoritmus DES , režimy CFB a OFB ).
Zvažte hlavní rozdíly mezi proudovými a blokovými šiframi, a to nejen z hlediska jejich bezpečnosti a pohodlí, ale také z hlediska jejich studia ve světě:
Nyní o stavu světa:
Podle Rainera Rueppela existují čtyři hlavní přístupy k návrhu streamové šifry:
Teoretická kritéria Reinera Rüppela pro návrh řadových systémů:
Dosud se neprokázalo, že by tato kritéria byla nezbytná nebo dostatečná pro zabezpečení systému šifrování streamování. Za zmínku také stojí, že pokud má kryptoanalytik neomezený čas a výpočetní výkon, pak jediná realizovatelná proudová šifra, která je proti takovému protivníkovi bezpečná, je jednorázová podložka.
Všechny metody kryptoanalýzy proudových šifer se obvykle dělí na silové (útok „hrubá síla“), statistické a analytické.
Tato třída zahrnuje útoky, které provádějí kompletní výčet všech možných možností. Složitost vyčerpávajícího vyhledávání závisí na počtu všech možných řešení problému (zejména na velikosti klíčového prostoru nebo prostoru otevřeného textu). Tato třída útoků je použitelná pro všechny druhy systémů šifrování proudu. Při vývoji šifrovacích systémů se vývojáři snaží, aby tento typ útoku byl co nejúčinnější ve srovnání s jinými existujícími metodami hackování.
Statistické útoky spadají do dvou podtříd:
Obě metody využívají principu lineární složitosti.
Tento typ útoku je zvažován za předpokladu, že kryptoanalytik zná popis generátoru, veřejný text a odpovídající soukromý text. Úkolem kryptoanalytika je určit použitý klíč (počáteční naplnění registrů). Typy analytických útoků aplikovaných na synchronní proudové šifry:
Jsou to nejběžnější útoky na prolomení proudových šifer.
Je známo, že práce na otevření kryptosystému se může výrazně snížit, pokud nelineární funkce předá na výstup informace o vnitřních součástech generátoru. Proto, aby se obnovilo počáteční plnění registrů, korelační útoky zkoumají korelaci výstupní sekvence šifrovacího systému s výstupní sekvencí registrů.
Existují následující podtřídy korelačních útoků:
Vezměme si příklad Siegenthalerova základního korelačního útoku („split and open“), který je založen na konceptu Hammingovy vzdálenosti mezi dvěma binárními sekvencemi stejné délky. Použitelné pro kombinované generátory.
Pro odhalení vlivu j-tého lineárního posuvného registru (s výstupní sekvencí {x (j) } na šifru gama {g} je část generátoru modelována jako binární symetrický kanál (BSC). Algoritmus útoku se skládá ze dvou fází (někdy nazývaných fáze ):
Pokud je srovnání úspěšné, fáze se nazývá true a dojde k přechodu na další registr . V opačném případě se fáze nazývá neplatná a přejděte na . Výstupní hodnoty tohoto algoritmu jsou stavy , které přispívají informacemi do gama.
Nyní něco málo o výběru prahové hodnoty a počtu gama bitů nezbytných pro úspěšnou kryptoanalýzu :
Vybrali jsme například , kde je délka registru. A pak z těchto podmínek najdeme a .
Útoky založené na kontrole parity s nízkou váhouPříkladem této podtřídy útoků je Mayerův a Staffelbachův rychlý korelační útok. Je použitelný jak pro generátory filtrů, tak pro kombinované generátory a je základem pro všechny ostatní rychlé korelační útoky tohoto typu. Myšlenka útoku je založena na použití rovnic kontroly parity pro lineární polynom zpětné vazby registru.
Rychlé korelační útokyRychlé korelační útoky jsou chápány jako útoky, jejichž výpočetní náročnost je mnohem menší než výpočetní náročnost silových útoků.
Tento typ útoku redukuje problém dekódování v binárním symetrickém kanálu na problém kryptoanalýzy a je modelován jako dekódování náhodného lineárního kódu. Podobně jako základní korelační útoky tato podtřída používá pojem Hammingova vzdálenost .
Účelem tohoto útoku je obnovit počáteční stav posuvného registru (nalezení klíče) pomocí známého schématu zařízení a fragmentu šifrovací sekvence. Složitost útoku závisí na velikosti šifry a délce zachyceného gama.
Skládá se ze dvou fází:
Příklady této třídy útoků jsou útok Steve Babbage a útok Biryukov-Shamir.
"Předpokládej a urči"Útok je založen na předpokladu, že kryptoanalytik zná gama, zpětnovazební polynom, počet posunů registru mezi výstupy obvodu a funkci filtrování. Skládá se ze tří fází:
Složitost algoritmu závisí na zařízení generátoru a na počtu předpokladů.
Symetrické kryptosystémy | |
---|---|
Streamové šifry | |
Síť Feistel | |
Síť SP | |
jiný |