Proudová šifra: Porovnání verzí

Skočit na navigaci Skočit na vyhledávání
Odebráno 78 bajtů ,  před 11 lety
m
Oprava typografie
m (Oprava typografie)
{{Upravit}}
[[Image:A5-1 GSM cipher.svg|280px|thumb|Činnost proudové šifry [[A5/1]], která slouží k zašifrování komunikace [[Mobilní telefon|mobilním telefonem]].]]
'''Proudová šifra''' je v [[Kryptografie|kryptografii]] typ [[symetrická kryptografie|symetrické šifry]], kde vstupní datový tok je kombinován (typicky pomocí funkce [[Exkluzivní disjunkce|XOR]]) s [[Pseudonáhodná čísla|pseudonáhodným]] proudem bitů ({{Vjazyce2|en|''keystream''}}) vytvořeným z [[Šifrovací klíč|šifrovacího klíče]] a šifrovacího algoritmu.<ref> Sloučení proudu bitů se zprávou lze přirovnat k [[Modulace|modulaci]], kde šifrovací klíč je nosným signálem a zpráva je modulační signál. Zašifrovaný výstup je pak obdobou modulovaného signálu.</ref> Výsledkem je zašifrovaný datový tok (''proud''), který je kódován neustále se měnící transformací (na rozdíl od [[Bloková šifra|blokové šifry]], kde je transformace konstantní). Proudové šifry jsou typicky rychlejší než blokové šifry a pro implementaci potřebují jednodušší [[hardware]]. Naopak jsou na rozdíl od blokových šifer náchylnější ke [[Kryptoanalýza|kryptoanalytickým]] útokům, pokud jsou nevhodně implementovány (počáteční stav nesmí být použit dvakrát).
 
== Inspirace Vernamovou šifrou ==
Na proudovou šifru může být nahlíženo jako na implementaci neprolomitelné [[Vernamova šifra|Vernamovy šifry]] šifry. Tato jednorázová tabulková šifra používá [[šifrovací klíč]] zcela [[Náhoda|náhodných]] čísel. Šifrovací klíč je kombinován pomocí jednoduché funkce se vstupním textem a tak je vytvořen šifrovaný tvar. Tento systém vytvořil [[Claude E. Shannon]] v roce 1949. Avšak šifrovací klíč musel být (alespoň) o stejné délce jako šifrovaný text a musel být generován úplně náhodně. Systém tak byl velmi těžkopádný, než aby byl zaveden do běžné praxe. Byl používán jen na kritické aplikace.
 
Proudová šifra využívá mnohem menší klíč, se kterým se lépe pracuje (např. [[128bitový]]). Principem využití tohoto klíče je generování [[Pseudonáhodná čísla|pseudonáhodného]] proudu bitů ({{Vjazyce2|en|''keystream''}}), který nahrazuje původní jednorázový klíč, který musel být dlouhý jako šifrovaný text. Odstranil se tak problém nutnosti existence dlouhého jednorázového klíče, avšak vnikl jiný problém, protože šifrovací klíč je nyní pseudonáhodný, není opravdu náhodný. S důkazem bezpečnosti si nemůžeme být v takovém případě zcela jisti.
 
== Typy proudových šifer ==
 
=== Synchronní proudové šifry ===
V '''synchronní proudové šifře '''je proud pseudonáhodných čísel generován nezávisle na jednoduchém textu a zašifrované zprávě. Potom dojde ke kombinaci vygenerovaných čísel a jednoduchého textu (k zakódování ) nebo šifrovaného textu (k dekódování). Nejběžnější formou binárních čísel jsou ([[bity]]) a šifrovacího klíče je kombinace prostého textu používajícího [[logické funkce|exklusivní or]] operaci (XOR). Tomu se říká' ''binární doplňková proudová šifra'''.
 
V synchronní proudové šifře odesilatel a příjemce musí být přesný v krocích rozkódování, aby to bylo úspěšné. Pokud jsou čísla přidána nebo odebrána ze zprávy v průběhu přenosu, synchronizování je ztraceno. K obnově synchronizace různých offsetů se můžeme pokusit systematicky získat správné dešifrování. Další možností je označit si šifrovaný text značkami v pravidelných intervalech při výstupu.
 
=== Samosynchronní proudové šifry ===
Jiný přístup používá několik předchozích ''N'' čísel šifrovaného textu k vypočítání šifrovacího klíče. Podobná schémata jsou známá jako ''samosynchronní proudové šifry''',' ''asynchronní proudové šifry''' nebo '''šifrovaný text automatickým klíčem (CTAK)'''. Tato myšlenka samosynchronních šifer byla patentována v roce 1946, a má tu výhodu, že příjemce bude automaticky synchronizován s generátorem šifrovacích klíčů po obdržení ''N'' čísel zašifrovaného textu. Ovlivňuje to jednoduší obnovu, pokud jsou čísla ztracena nebo přidána do zprávy proudu. U jednočíselných chyb je jejich vliv omezen pouze do výše ''N'' čísel prostého textu.
 
Příkladem sebesynchronní proudové šifry je bloková šifra v [[šifra se zpětnou vazbou]] (CFB) [[bloková šifra režimy provozu|režimu]].
 
=== Nelineární kombinační metody ===
Protože LFSR jsou ze své podstaty lineární, jedna technika pro odstranění linearity je naplnit výstupy několika paralelními LFSR--->LFSR→ do nelineární [[logické funkce]] ''formou kombinačního generátoru''. Různé vlastnosti takové ''kombinační funkce''jsou rozhodující k zajištění bezpečnosti výsledného systému, například aby se zabránilo [[srovnávacím útokům]].
 
=== Generátory ovládané hodinovým vstupem ===
Normálně LFSRy fungují pravidelně. První přístup zavádí nelinearitu LFSR, tj. nepravidelnost taktování → kontrolující druhý výstup LFSR. Mezi takové generátory patří [[:enw:stop-and-go generator|stop-and-go generátor]], [[:enw:Alternating step generator|střídavý krokový generátor]] a [[enw:shrinking generator|komprimační generátor]].
(pozn. V této části nepřesný překlad, nutno opravit)
[[:enw:alternating step generator|Střídavý krokový generátor]] se skládá ze tří lineárních posuvných registrů se zpětnou vazbou, které budeme pro přehlednost nazývat LFSR0, LFSR1 a LFSR2. Výstup jednoho z registrů rozhoduje o tom, který ze zbylých dvou bude používán; například pokud LFSR2 výstup je 0, LFSR0 je synchronní, a pokud výstup je 1, LFSR1 pracuje místo něho (LFSR2). Výstupem exkluzivního ORu jsou poslední bity tvořené LFSR0 a LFSR1. Počáteční stav tří LFSR je klíčem.
Normálně LFSRy fungují pravidelně. První přístup zavádí nelinearitu LFSR, tj. nepravidelnost taktování → kontrolující druhý výstup LFSR. Mezi takové generátory patří [[enw:stop-and-go generator|stop-and-go generátor]], [[enw:Alternating step generator|střídavý krokový generátor]] a [[enw:shrinking generator|komprimační generátor]].
[[enw:alternating step generator|Střídavý krokový generátor]] se skládá ze tří lineárních posuvných registrů se zpětnou vazbou, které budeme pro přehlednost nazývat LFSR0, LFSR1 a LFSR2. Výstup jednoho z registrů rozhoduje o tom, který ze zbylých dvou bude používán; například pokud LFSR2 výstup je 0, LFSR0 je synchronní, a pokud výstup je 1, LFSR1 pracuje místo něho(LFSR2). Výstupem exkluzivního ORu jsou poslední bity tvořené LFSR0 a LFSR1. Počáteční stav tří LFSR je klíčem.
 
Stop-and-go generátor (Beth a Piper, 1984) tvoří dva LFSR. Jeden LFSR je synchronní, pokud výstup druhého je „1“, jinak opakuje svůj předchozí výstup. Tento výstup je pak (v některých verzích) v kombinaci s výstupem třetího LFSR dosahujícího pravidelné úrovně.
 
Dvě LFSR používají synchronizaci. Pokud je výstup prvního "1"„1“, výstup druhého LFSR se stává výstupem generátoru. Pokud je výstup prvního LFSR "0"„0“, avšak výstup druhého je vyřazen, tak výstupem generátoru není žádný bit. Tento mechanizmus trpí načasováním od druhého generátoru, jelikož rychlost výstupu je variabilní a to způsobem, který závisí na stavu druhého generátoru. Toto může být zmírněno tím, že ukládáme do vyrovnávací paměti na výstupu.
 
== Bezpečnost ==
Pro bezpečnost proudové šifry je důležité, aby šifrovací klíč měl velikost [[enw:periodic function|periody]] a musí být nemožné jeho obnovení nebo zjištění vnitřního stavu šifrovacího klíče. Kryptografici také požadují, aby šifrovací klíč byl nepředpojatý a rozdílný tak, aby útočníci rozlišili proud od náhodného šumu. Také aby byl snadno zjistitelný vztah mezi šifrovacími klíči, které odpovídají ''souvisejícím klíčům'' nebo souvisí s [[:enw:cryptographic nonce|kryptografickými příležitostmi]]. To by mohlo platit pro všechny klíče, které nejsou slabými klíči a platí v případě jestliže útočník může znát nebo vybrat nějaký ''jednoduchý text'' či ''šifrovaný text''.
 
Stejně jako u ostatních útoků v kryptografii, může být proudová šifra napadena ''osvědčeně'', což znamená, že nejsou nutné běžné způsoby, jak rozluštit šifru, ale naznačují, že šifry mohou mít jiné nedostatky.
Bezpečné použití zabezpečené synchronní proudové šifry vyžaduje, aby člověk nikdy používal stejné šifrovací klíče dvakrát. Aplikační návrháři si musí také uvědomit, že většina proudových šifer neposkytuje ''věrohodnost''. Soukromé zašifrované zprávy mohou být změněny v průběhu přenosu.
 
Krátké období proudových šifer bylo praktickým zklamáním. Například 64bit blokové šifry, jako je [[Data Encryption Standard| DES]], lze použít ke generování šifrovacího klíče v [reakci výstupu](OFB) režimu. Nicméně, když nepoužíváte plnou zpětnou vazbu, výsledný proud má podobu asi 2<sup>32</sub> bloků v průměru. Pro mnoho aplikací je toto období příliš krátké. Například pokud je šifrování vykonáváno ve výši 8 [[MB]]ů za sekundu, tak při proudovém období 2<sup>32</sup> se budou bloky opakovat asi po dobu půl hodiny.
 
Některé aplikace využívající proudovou šifru [[RC4]] jsou napadnutelné kvůli nedostatkům v klíčových nastaveních. RC4 je rutinní, nové aplikace by měly být schopné buď se vyhnout RC4 nebo se ujistěte,že všechny klíče jsou jedinečné a ideálně [[souvisejícími klíčovými|nesouvisející]] (např. generované [[kryptografické hashovací funkce]]) a že první bajty šifrovacího klíče jsou zahozeny.
první bajty šifrovacího klíče jsou zahozeny.
 
== Reference ==
14

editací

Navigační menu