Provozní režim blokových šifer

otevřený text
otevřený text
šifrování v režimu kódové knihy šifruje stejné otevřené bloky na stejné šifrové
šifrování v režimu kódové knihy šifruje stejné otevřené bloky na stejné šifrové
zatímco vhodně zvolený režim vytváří zdánlivě náhodná data
zatímco vhodně zvolený režim vytváří zdánlivě náhodná data
V případě obrázku může korespondence mezi stejnými bloky otevřeného a šifrového textu leccos prozradit na první pohled, zatímco řádně použitá šifra by měla při všech zobrazeních vypadat náhodně.

Provozní režim nebo operační mód blokové šifry v kryptologii znamená způsob, kterým je bloková šifra používána především pro umožnění bezpečného šifrování otevřených textů delších, než je její blok, a v kombinaci s vhodnou výplní i pro délky, které nejsou násobkem délky bloku.

Dále slouží také k tomu, aby bylo možné bezpečné opakované užití stejného šifrovacího klíče. Většina režimů využívá kromě klíče takzvaný inicializační vektor, jedinečný (často dokonce povinně náhodný, respektive zaručeně nepředvídatelný) soubor bajtů (obvykle o délce bloku blokové šifry), jehož použitím se předejde tomu, aby opakované zašifrování stejného otevřeného textu stejným klíčem vedlo ke stejnému šifrovému textu.

Některé běžné provozní režimy

ECB (režim kódové knihy)

Šifrování v režimu kódové knihy (ECB)
Dešifrování v režimu kódové knihy (ECB)

Režim „kódové knihy“ (anglicky electronic codebook; z toho zkratka ECB) je režimem nejjednodušším a základním. Bloková šifra se při něm přímo aplikuje nezávisle na jednotlivé bloky, tedy při daném klíči odpovídá stejnému bloku otevřeného textu stejný blok šifrového textu. Odtud pochází název režimu: Konkrétní blok je v tomto režimu „překládán“ na jiný blok podobně, jako se v různých historických substitučních šifrách překládaly jednotlivé znaky nebo slova na jiné pomocí tabulky obsažené v kódových knihách.

To má nežádoucí důsledky z hlediska bezpečnosti: Pokud se například tento režim použije pro šifrování nějakého protokolu s pevně danou strukturou, může útočník po zachycení určitého počtu zpráv začít rozlišovat jejich obsah, když rozpozná opakování nějakého klíčového bloku obsaženého v některých dřívějších zprávách. Aktivní útočník může i sám sestavovat podvržené zprávy jako nové kombinace zachycených bloků, což může usnadňovat útoky přehráním zprávy.

Z hlediska chybovosti je výhodou, že přenesení bloku chybně nemá vliv na dešifrovatelnost jiných bloků, a obecnou výhodou je jednoduchost tohoto režimu. Pro zabezpečení ale může být použit pouze tehdy, je-li zaručena dlouhodobá jedinečnost bloků šifrovaných stejným klíčem – tedy v rámci moderní kryptografie není používán prakticky nikdy.

CBC (řetězení šifrových bloků)

Šifrování v režimu řetězení šifrových bloků (CBC)
Dešifrování v režimu řetězení šifrových bloků (CBC)

V režimu „řetězení šifrových bloků“ (anglicky cipher block chaining) je každý blok před šifrováním xorován zašifrovaným předchozím blokem a první blok je xorován inicializačním vektorem.

Matematicky lze šifrování tedy zapsat

a dešifrování zapsat

Tento režim je široce používán. Dvě nevýhody plynou ze zřetězené závislosti, kdy šifrový blok závisí na všech předcházejících: Šifrování nelze paralelizovat a při poškození šifrového bloku nelze dešifrovat ani blok přímo následující. Dešifrování paralelizovat lze.

Z tohoto režimu je odvozena technika konstrukce autentizačního kódu zprávy zvaná CBC-MAC.

CFB (šifrová zpětná vazba)

Šifrování v režimu šifrové zpětné vazby (CFB)
Dešifrování v režimu šifrové zpětné vazby (CFB)

Režim „šifrové zpětné vazby“ (anglicky cipher feedback) je velmi podobný řetězení šifrových bloků (CBC) popsanému výše, jen prohazuje pořadí operací, tedy místo aby nejprve xoroval otevřený blok s předcházejícím šifrovým a pak výsledek šifroval blokovou šifrou, nejprve zašifruje předchozí šifrový blok a výsledkem xoruje otevřený blok. Toto prohození má významné implementační dopady: dešifrovací funkce vypadá obdobně jako šifrovací, tedy z blokové šifry se používá pouze šifrování, zatímco dešifrování není potřeba, tedy také není potřeba jeho hardwarová podpora. Symbolicky zapsány vypadají operace takto:

Opět platí, že šifrování paralelizovat nelze, zatímco dešifrování ano, a že poškození šifrového bloku znemožní dešifrování jeho samého a bloku následujícího, dalších pak už ne.

OFB (výstupní zpětná vazba)

Šifrování v režimu výstupní zpětné vazby (OFB)
Dešifrování v režimu výstupní zpětné vazby (OFB)

Režim „Výstupní zpětné vazby“ (anglicky output feedback) převádí blokovou šifru na šifru proudovou. Šifrování probíhá pouhým xorováním otevřeného bloku s heslem, které je v každém kroku zašifrováno použitou blokovou šifrou. První blok hesla je získán zašifrováním inicializačního vektoru.

CTR (čítačový režim)

„Čítačový režim“ (anglicky counter mode) převádí stejně jako OFB blokovou šifru na proudovou. Heslo, se kterým se blok otevřeného textu xoruje, je však získáno zašifrováním čítače, který se každou iteraci zvětšuje o pevně danou hodnotu, zpravidla o 1. Obsah čítače je opět před šifrováním nastaven inicializačním vektorem.

Dešifrování v čítačovém režimu (CTR)
Šifrování v čítačovém režimu (CTR)

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Block cipher mode of operation na anglické Wikipedii.


Literatura

  • BURDA, Karel. Aplikovaná kryptografie. Brno: VUTIUM, 2013. ISBN 978-80-214-4612-0. Kapitola Provozní režimy blokových šifer. 

Externí odkazy

Média použitá na této stránce

CTR encryption 2 cs.svg
Šifrování v čítačovém režimu (CTR)
Tux secure.jpg
Autor: en:User:Lunkwill, Licence: Attribution
Tux cifrado con otro método
CBC decryption cs.svg
Dešifrování v režimu řetězení šifrových bloků (CBC)
CFB encryption cs.svg
Šifrování v režimu šifrové zpětné vazby
ECB decryption cs.svg
Dešifrování v režimu elektronické kódové knihy (ECB)
Tux ecb.jpg

Image of Tux encrypted using the ECB method.
CTR decryption 2 cs.svg
Dešifrování v čítačovém režimu (CTR)
CBC encryption cs.svg
Šifrování v režimu řetězení šifrových bloků (CBC)
CFB decryption cs.svg
Dešifrování v režimu šifrové zpětné vazby (CFB)
OFB decryption cs.svg
Dešifrování v režimu zpětné vazby z výstupu (OFB)
OFB encryption cs.svg
Šifrování v režimu zpětné vazby z výstupu (OFB)
ECB encryption cs.svg
Šifrování v režimu kódové knihy (ECB)
Tux.jpg

Tux, the penguin mascot of Linux, is used to advertise Linux products.