Inicializační vektor - Initialization vector
V kryptografii je inicializační vektor ( IV ) nebo počáteční proměnná ( SV ) vstupem do kryptografického primitivu používaného k poskytnutí počátečního stavu. Obvykle se vyžaduje, aby IV byla náhodná nebo pseudonáhodná , ale někdy musí být IV pouze nepředvídatelná nebo jedinečná. Randomizace je pro některá šifrovací schémata zásadní pro dosažení sémantického zabezpečení , vlastnost, kdy opakované použití schématu pod stejným klíčem neumožňuje útočníkovi odvodit vztahy mezi (potenciálně podobnými) segmenty šifrované zprávy. U blokových šifer je použití IV popsáno provozními režimy .
Některá kryptografická primitiva vyžadují, aby se IV neopakovalo, a požadovaná náhodnost je odvozena interně. V tomto případě se IV běžně nazývá nonce ( číslo použité jednou ) a primitiva (např. CBC ) jsou považována spíše za stavová než randomizovaná . Je to proto, že IV nemusí být výslovně předáváno příjemci, ale může být odvozeno ze společného stavu aktualizovaného na straně odesílatele i příjemce. (V praxi se spolu se zprávou přenáší krátká nonce, aby se zvážila ztráta zprávy.) Příkladem stavových šifrovacích schémat je režim provozu čítače , který má pořadové číslo pro nonce.
Velikost IV závisí na použitém kryptografickém primitivu; pro blokové šifry je to obvykle velikost bloku šifry. V šifrovacích schématech má nepředvídatelná část IV v nejlepším případě stejnou velikost jako klíč pro kompenzaci útoků na čas / paměť / data . Když je náhodně zvolena IV, je třeba vzít v úvahu pravděpodobnost kolizí kvůli narozeninovému problému . Tradiční proudové šifry, jako je RC4 , nepodporují explicitní IV jako vstup a je potřeba vlastní řešení pro začlenění IV do klíče nebo interního stavu šifry. O některých návrzích realizovaných v praxi je známo, že jsou nejisté; WEP protokol je pozoruhodný příklad, a je náchylný k související-IV útoky.
Motivace
Bloková šifra je jedním ze základních primitiva v kryptografii, a často používané pro přenos dat šifrováním . Samotný však může být použit pouze ke kódování datového bloku s předdefinovanou velikostí, který se nazývá velikost bloku . Například jedno vyvolání algoritmu AES transformuje 128bitový blok prostého textu na blok ciphertext o velikosti 128 bitů. Klíč , který je uveden jako jeden ze vstupů na šifry, definuje mapování mezi holého textu a ciphertext. Pokud mají být data libovolné délky zašifrována, jednoduchá strategie je rozdělit data do bloků, z nichž každý odpovídá velikosti bloku šifry, a každý blok zašifrovat samostatně pomocí stejného klíče. Tato metoda není bezpečná, protože stejné bloky prostého textu se transformují do stejných šifrových textů a třetí strana, která sleduje šifrovaná data, může snadno určit její obsah, i když nezná šifrovací klíč.
Chcete-li skrýt vzory v šifrovaných datech a zároveň se vyhnout opětovnému vydání nového klíče po každém vyvolání blokové šifry, je nutná metoda náhodného výběru vstupních dat. V roce 1980 NIST zveřejnila národní standardní dokument s názvem Federal Information Processing Standard (FIPS) PUB 81, který specifikoval čtyři takzvané režimy provozu blokové šifry, z nichž každý popisuje jiné řešení pro šifrování sady vstupních bloků. První režim implementuje výše popsanou jednoduchou strategii a byl specifikován jako režim elektronického číselníku (ECB). Naproti tomu každý z ostatních režimů popisuje proces, při kterém se šifrovací text z jednoho kroku šifrování bloku smíchá s daty z dalšího kroku šifrování. K zahájení tohoto procesu je nutné smíchat s prvním blokem další vstupní hodnotu, která se označuje jako inicializační vektor . Například režim řetězení šifrovacích bloků (CBC) vyžaduje jako další vstup nepředvídatelnou hodnotu velikosti rovnající se velikosti bloku šifry. Tato nepředvídatelná hodnota je přidána do prvního bloku prostého textu před následným šifrováním. Na druhé straně je ciphertext vytvořený v prvním kroku šifrování přidán do druhého bloku prostého textu atd. Konečným cílem šifrovacích schémat je poskytnout sémantické zabezpečení : touto vlastností je pro útočníka prakticky nemožné čerpat jakékoli znalosti z pozorovaného šifrovacího textu. Je možné ukázat, že každý ze tří dalších režimů specifikovaných NIST je sémanticky bezpečný v rámci takzvaných útoků vybraného prostého textu .
Vlastnosti
Vlastnosti IV závisí na použitém kryptografickém schématu. Základním požadavkem je jedinečnost , což znamená, že žádná IV nemůže být znovu použita pod stejným klíčem. U blokových šifer opakované hodnoty IV převedou šifrovací schéma do režimu elektronického číselníku: stejné IV a stejný prostý text má za následek stejný šifrový text. Šifrování v proudové šifře je zásadně důležité, protože jinak může být holý text triviálně obnoven.
-
Příklad: Stream šifry šifrování textovou P k ciphertext C odvozením klíče proudu K z daného klíče a IV a počítací C jako C = P xor K . Předpokládejme, že útočník pozoroval dvě zprávy C 1 a C 2 zašifrované stejným klíčem a IV. Poté znalost P 1 nebo P 2 odhalí další prostý text od té doby
- C 1 xor C 2 = ( P 1 xor K) XOR ( P 2 xor K) = P 1 xor P 2 .
Mnoho schémata vyžadují IV být nepředvídatelné pomocí protivníkem . To se provádí náhodným nebo pseudonáhodným výběrem IV . V takových schématech je šance na duplikát IV zanedbatelná , ale je třeba vzít v úvahu účinek problému narozenin . Pokud jde o požadavek jedinečnosti, předvídatelný IV může umožnit obnovení (částečného) prostého textu.
-
Příklad: Zvažte scénář, kdy legitimní strana zvaná Alice šifruje zprávy pomocí režimu řetězení šifrovacích bloků. Zvažte dále, že existuje protivník zvaný Eva, který dokáže tato šifrování pozorovat a je schopen předávat zprávy v holém textu Alice za účelem šifrování (jinými slovy, Eva je schopna útoku zvoleného prostého textu ). Nyní předpokládejme, že Alice poslala zprávu skládající se z inicializačního vektoru IV 1 a počínaje ciphertextovým blokem C Alice . Nechť dále P Alice označuje první blok prostého textu Aliciny zprávy, ať E označuje šifrování, a nechť P Eve je Eviným odhadem prvního bloku prostého textu. Nyní, pokud Eva dokáže určit inicializační vektor IV 2 další zprávy, bude moci otestovat svůj odhad předáním zprávy ve formátu prostého textu Alici počínaje ( IV 2 xor IV 1 xor P Eve ); kdyby byl její odhad správný, tento blok prostého textu se zašifruje do Alice C od Alice. Důvodem je následující jednoduché pozorování:
- C Alice = E ( IV 1 xor P Alice ) = E ( IV 2 xor ( IV 2 xor IV 1 xor P Alice )).
V závislosti na tom, zda IV pro kryptografické schéma musí být náhodné nebo pouze jedinečné, se schéma nazývá randomizované nebo stavové . Zatímco randomizovaná schémata vždy vyžadují, aby byla IV zvolená odesílatelem předána příjemcům, stavová schémata umožňují odesílateli a příjemci sdílet společný stav IV, který je na obou stranách aktualizován předdefinovaným způsobem.
Blokovat šifry
Zpracování dat blokovou šifrou je obvykle popsáno jako provozní režim. Režimy jsou primárně definovány pro šifrování i ověřování , existují však novější návrhy, které kombinují obě řešení zabezpečení v takzvaných ověřených režimech šifrování . Zatímco režimy šifrování a ověřeného šifrování obvykle vyžadují IV odpovídající velikosti bloku šifry, režimy ověřování se běžně realizují jako deterministické algoritmy a IV je nastavena na nulu nebo na jinou pevnou hodnotu.
Streamujte šifry
V proudových šifrách se IV načítají do klíčovaného vnitřního tajného stavu šifry, po kterém se před uvolněním prvního bitu výstupu provede řada kol šifry. Z důvodů výkonu se návrháři proudových šifer snaží udržet tento počet nábojů co nejmenší, ale protože stanovení minimálního bezpečného počtu nábojů pro proudové šifry není triviální úkol, a vzhledem k dalším problémům, jako je ztráta entropie , jsou pro každého jedinečné konstrukce šifry, související IV a další útoky související s IV jsou známým bezpečnostním problémem pro šifry streamů, díky čemuž je načítání IV v šifrách proudu vážným problémem a předmětem probíhajícího výzkumu.
WEP IV
802.11 šifrovací algoritmus nazývá WEP (zkratka pro Wired Equivalent Privacy ) používá krátkou 24-bitový IV, což vede k znovu použít IVS se stejným klíčem, který vedl k tomu být snadno prasklý. Injekce paketů umožnila, aby byl WEP popraskán v časech krátkých několika sekund. To nakonec vedlo k ukončení podpory WEP.
SSL 2.0 IV
V režimu řetězení šifrovacích bloků ( režim CBC) nemusí být IV tajné, ale musí být nepředvídatelné (zejména pro jakýkoli daný prostý text nesmí být možné předpovědět IV, který bude přidružen k holému textu před generace IV.) v době šifrování. Navíc pro režim OFB musí být IV jedinečný. Zejména (dříve) běžná praxe opětovného použití posledního bloku šifrovaného textu zprávy jako IV pro další zprávu je nezabezpečená (například tuto metodu použil SSL 2.0). Pokud útočník zná IV (nebo předchozí blok ciphertextu) dříve, než určí další holý text, může zkontrolovat svůj odhad o holém textu nějakého bloku, který byl předtím zašifrován stejným klíčem. Toto je známé jako útok TLS CBC IV, také nazývaný útok BEAST .
Viz také
- Kryptografická nonce
- Výplň (kryptografie)
- Náhodné semeno
- Sůl (kryptografie)
- Blokové šifrovací režimy provozu
- CipherSaber (RC4 s IV)
Reference
Další čtení
- Schneier, B. (1996). Aplikovaná kryptografie (2. vydání). New York: Wiley. ISBN 978-0-471-12845-8 .
- Ferguson, N .; Schneier, B. (2003). Praktická kryptografie . New York: Wiley. ISBN 978-0-471-22894-3 .