Stream cipher attack
Kódy potoku , kde se holého bity v kombinaci s proudem bitovou šifrou výhradní-nebo provozu ( xor ), může být velmi bezpečný, pokud správně používány. Nicméně oni jsou náchylné k útoku, pokud určité opatření nejsou dodržovány:
klíče nesmí být nikdy použit dvakrát
platné šifrování by nikdy nelze dovolávat k označení pravosti
Kódy potoku jsou náchylné k útoku, pokud stejný klíč je použit dvakrát (hloubka dvou) nebo více.
Řekněme, že posílat zprávy a B mají stejnou délku, tak šifrovanou pomocí stejného klíče, K . Proudová šifra vytváří řetězec bitů C (K) stejné délky jako zprávy. Šifrované verze zpráv pak jsou:
E (A) = xor C
E (B) = B xor C
kde xor se provádí bit po bitu.
Řekněme, že protivník zadržena E (A) a E (B) . On může snadno spočítat:
E () XOR E (B)
Nicméně, xor je komutativní a má tu vlastnost, že X xor X = 0 (self-inverzní), tak:
E () XOR E (B) = (xor C) xor (B xor C) = xor B XOR C XOR C = A XOR B
Pokud jedna zpráva je delší než ostatní, náš protivník jen zkrátí delší zprávu velikosti kratší a jeho útok bude jen ukazují, že část delší zprávy. Jinými slovy, jestliže někdo zachytí dvě zprávy šifrované se stejným klíčem, mohou obnovit A XOR B , který je forma běží klíčový kód . I když je známo ani zpráva, tak dlouho, jak obě tyto zprávy jsou v přirozeném jazyce, může být takový šifru často rozdělené podle papíru a tužkou-metody. John Tiltman dosáhne s Lorenz šifra (tuňák), ve druhé světové válce . S průměrnou osobního počítače , lze tyto kódy obvykle rozděleny do několika minut. Je-li jedna zpráva je známo, je řešení triviální.
Další situace, kdy oživení je triviální, je-li dopravních toků bezpečnostní opatření mají každou stanici vysílající nepřetržitý proud šifrovacích bitů, s null znaky (např. LTRS v Baudot ) odesílaným, když není tam žádný skutečný provoz. To je běžné u vojenských komunikací. V tomto případě, a v případě, že přenosový kanál není plně naloženo, tam je dobrá pravděpodobnost, že jeden z proudů šifrového bude jen nuly. NSA jde do velkých délek, aby se zabránilo klíče používány dvakrát. 1960-éra šifrovací systémy často zahrnovaly děrný štítekčtečku pro vkládání klíčů. Mechanismus se automaticky sníží kartu v polovině, kdy byla odstraněna karta, brání jeho opětovné použití.[ pochvalná zmínka potřebovaný ]
Jeden způsob, jak se vyhnout tomuto problému je použít inicializační vektor(IV), poslal v jasné, že je v kombinaci s tajným hlavním klíčem k vytvoření jednorázové klíč pro proudová šifra. To se provádí v několika běžných systémů, které používají populární proudová šifra RC4 , včetně Wired Equivalent Privacy(WEP), Wi-Fi Protected Access (WPA) a Ciphersaber . Jedním z mnoha problémů, s WEP je, že jeho IV bylo příliš krátké, 24 bitů. To znamená, že tam je vysoká pravděpodobnost, že stejný IV by být použita dvakrát, pokud více než několik tisíc pakety byly odeslány se stejným hlavním klíčem (viz útok narozenin ), podrobení pakety s duplikované IV klíčové opětovného použití útoku. Tento problém byl opraven v WPA změnou "master" klíče často.
Hlavní článek: Bit-mizerný útok
Předpokládejme, že útočník zná přesný obsah všech nebo části jednoho z našich zpráv. Jako součást člověka ve střední útoku nebo přehrání útoku , může změnit obsah zprávy bez znalosti klíče, K . Řekněme například, že ví část zprávy, říkají o fondu elektroniky přenos, obsahuje ASCII řetězec "1000,00 dolarů" . On může změnit na "9500,00 dolarů" ani xor'ing, že část šifrového textu s řetězci: "1000,00 dolarů" xor "9500,00 dolarů" . Chcete-li vidět, jak to funguje, se domnívají, že šifra znění zašleme je jen C (K) xor "1000,00 dolarů" .Nová zpráva protivník vytváří, je:
( C (K) xor "1000,00 dolarů") xor ("1000,00 dolarů" xor "9500,00 dolarů") = C (K) xor "1000,00 dolarů" xor "1000,00 dolarů" xor "9500,00 dolarů" = C (K) xor "9500,00 dolarů"
Připomeňme si, že řetězec xor'ed s sebou vyrábí všechny nuly a že řetězec nul xor'ed s jiným řetězcem listy, které řetězec neporušené. Výsledek, C (K) xor "9500,00 dolarů", je to, co naše ciphertext by bylo, kdyby 9500 dolarů bylo správné množství. Viz také: tvarovatelná (kryptografie) .
Bit-mizerný útoky lze zabránit tím, že zahrnuje autentizační kód zprávy , aby zvýšila pravděpodobnost, že manipulace bude detekována.