V kryptografii je bloková šifra deterministický algoritmus pracujúci na skupinách bitov s pevnou dĺžkou, nazývaných bloky . Blokové šifry sú špecifikované elementárne komponenty pri navrhovaní mnohých kryptografických protokolov a sú široko používané na šifrovanie veľkého množstva údajov, vrátane protokolov na výmenu údajov. Bloková šifra používa bloky ako nemennú transformáciu.

Dokonca aj zabezpečená bloková šifra je vhodná na šifrovanie iba jedného bloku údajov naraz pomocou pevného kľúča. Množstvo prevádzkových režimov bolo navrhnutých tak, aby umožnili ich opakované používanie bezpečným spôsobom na dosiahnutie bezpečnostných cieľov dôvernosti a autenticity . Blokové šifry sa však môžu vyskytovať aj ako stavebné bloky v iných kryptografických protokoloch, ako sú univerzálne hešovacie funkcie a generátory pseudonáhodných čísel .

Definícia Bloková šifra pozostáva z dvoch párových algoritmov, jeden na šifrovanie ,  a druhý na dešifrovanie , Oba algoritmy akceptujú dva vstupy: vstupný blok veľkosti n bitov a kľúč veľkosti k bitov; a obe poskytujú n-bitový výstupný blok. Algoritmus dešifrovania  je definovaný ako inverzná funkcia šifrovania, tj . Formálnejšie, je bloková šifra špecifikovaná šifrovacou funkciou

ktorý berie ako vstup kľúč , bitovej dĺžky  (nazývaná veľkosť kľúča ) a bitový reťazec , dĺžky  (nazýva sa veľkosť bloku ) a vráti reťazec  dĺžky  bitov. sa nazýva otvorený text a  sa nazýva šifrovaný text . Pre každé , funkcia  musí mať inverzné zobrazenie na {0,1}n. Inverzná funkcia k funkcii je funkcia

ktorá berie kľúč  a šifrovaný text , a vracia otvorený text taký, že

Napríklad šifrovací algoritmus blokovej šifry môže prijať 128-bitový blok otvoreného textu ako vstup a vygenerovať výstup zodpovedajúci 128-bitovému bloku šifrovaného textu. Presná transformácia je riadená pomocou druhého vstupu – tajného kľúča. Dešifrovanie je podobné: dešifrovací algoritmus v tomto príklade berie 128-bitový blok šifrovaného textu spolu s tajným kľúčom a vráti pôvodný 128-bitový blok čistého textu.

Pre každý kľúč K je EK permutácia ( bijektívne zobrazenie) cez množinu vstupných blokov. Každý kľúč vyberá jednu permutáciu z množiny možných permutácií.

História Moderný dizajn blokových šifier je založený na koncepte iterovanej produktovej šifry . Claude Shannon vo svojej kľúčovej publikácii z roku 1949 Komunikačná teória tajných systémov analyzoval produktové šifry a navrhol ich ako prostriedok na efektívne zlepšenie bezpečnosti kombináciou jednoduchých operácií, ako sú substitúcie a permutácie. Iterované produktové šifry vykonávajú šifrovanie vo viacerých kolách, z ktorých každé používa iný podkľúč odvodený od pôvodného kľúča. Jedna rozšírená implementácia takýchto šifier, pomenovaná ako sieť Feistel podľa Horsta Feistela, je implementovaná najmä v šifre DES . Mnohé ďalšie realizácie blokových šifier, ako napríklad AES, sú klasifikované ako substitučno-permutačné siete .

Základ všetkých formátov kryptografických blokov používaných v rámci štandardov PCI DSS ( Payment Card Industry Data Security Standard ) a American National Standards Institute (ANSI) spočíva v Atalla Key Block (AKB), ktorý bol kľúčovou inováciou Atalla Boxu, prvého hardvérového bezpečnostného modulu (HSM). Bol vyvinutý v roku 1972 Mohamedom M. Atallom, zakladateľom spoločnosti Atalla Corporation (teraz Utimaco Atalla ), a vydaný v roku 1973. AKB bol kľúčový blok, ktorý je potrebný na bezpečnú výmenu symetrických kľúčov alebo PINov s inými aktérmi bankového sektora . Táto bezpečná výmena sa vykonáva pomocou formátu AKB. Atalla Box chránil viac ako 90 % všetkých bankomatových sietí v prevádzke od roku 1998 a produkty Atalla stále zabezpečujú väčšinu svetových bankomatových transakcií od roku 2014.

Zverejnenie šifry DES Národným úradom pre štandardy Spojených štátov (následne Národným inštitútom pre štandardy a technológie v USA, NIST) rokom 1977 bolo základom pre verejné chápanie moderného dizajnu blokových šifier. Ovplyvnilo to aj akademický vývoj kryptoanalytických útokov . Diferenciálna aj lineárna kryptoanalýza vyplynuli zo štúdií o dizajne DES. Od roku 2016 existuje paleta útočných techník, proti ktorým musí byť bloková šifra zabezpečená, okrem toho, že musí byť odolná proti útokom hrubou silou .

Dizajn

Iterované (opakované) blokové šifry Väčšina algoritmov blokovej šifry sú klasifikované ako iterované blokové šifry, čo znamená, že transformujú bloky s pevnou veľkosťou otvoreného textu na bloky šifrovaného textu rovnakej veľkosti prostredníctvom opakovanej aplikácie invertovateľnej transformácie známej ako obehová funkcia, pričom každá iterácia sa označuje ako obeh (jedno "kolečko").

Obyčajne obehová funkcia R berie ako druhý vstup rôzne čiastkové kľúče Ki, ktoré sú odvodené od pôvodného kľúča:

kde je čistý text a šifrový text, pričom r je počet obehov.

Okrem toho sa často používa bielenie kľúčom . Na začiatku a na konci sú údaje upravené kľúčom (často pomocou operácie XOR, ale používajú sa aj jednoduché aritmetické operácie ako sčítanie a odčítanie):

Vzhľadom na jednu zo štandardných iterovaných schém návrhu blokovej šifry je pomerne jednoduché zostaviť blokovú šifru, ktorá je kryptograficky bezpečná, jednoducho použitím veľkého počtu kôl. To však spôsobí, že šifra nebude efektívna. Efektívnosť je teda najdôležitejším dodatočným kritériom návrhu pre profesionálne šifry. Okrem toho je dobrá bloková šifra navrhnutá tak, aby sa vyhla útokom na bočný kanál, ako je predikcia vetvenia a prístupy do pamäte závislé od vstupov, cez ktoré by mohli uniknúť tajné dáta cez stav vyrovnávacej pamäte alebo čas vykonania. Okrem toho by šifra mala byť stručná, pre malé hardvérové a softvérové implementácie (napr. na mikropočítačoch). Napokon, šifra by mala byť ľahko kryptoanalyzovateľná, aby bolo možné ukázať, na koľko kôl je potrebné šifru zredukovať, aby fungovali existujúce kryptografické útoky – a naopak, aby bolo možné ukázať, že počet skutočných kôl je dostatočne veľký na to, aby sa pred nimi chránili.

Substitučno-permutačné siete vpravo|náhľad|256x256bod|Náčrt substitučno-permutačnej siete s 3 kolami, ktorá šifruje blok otvoreného textu 16 bitov do bloku šifrovaného textu 16 bitov. S-boxy sú Si, P-boxy sú rovnaké P a okrúhle klávesy sú Ki . Jeden dôležitý typ iterovanej blokovej šifry známej ako substitučná-permutačná sieť (SPN) berie blok otvoreného textu a kľúč ako vstupy a aplikuje niekoľko striedajúcich sa kôl pozostávajúcich z substitučnej fázy, po ktorej nasleduje permutačná fáza – na vytvorenie každého bloku výstupu šifrovaného textu. Fáza nelineárnej substitúcie mieša kľúčové bity s bitmi otvoreného textu, čo vytvára Shannonov zmätok . Štádium lineárnej permutácie potom rozptýli redundancie a vytvorí difúziu .

Substitučný box (S-box) nahrádza malý blok vstupných bitov iným blokom výstupných bitov. Táto substitúcia musí byť jedna k jednej, aby sa zabezpečila invertibilita (teda dešifrovanie). Bezpečný S-box bude mať tú vlastnosť, že zmena jedného vstupného bitu zmení v priemere asi polovicu výstupných bitov, prejaví sa to, čo je známe ako lavínový efekt – tj má tú vlastnosť, že každý výstupný bit bude závisieť od každého vstupného bitu. , pages 166–167.

Permutačný box (P-box) je permutáciou všetkých bitov: berie výstupy všetkých S-boxov jedného kola, permutuje bity a dodáva ich do S-boxov ďalšieho kola. Dobrý P-box má tú vlastnosť, že výstupné bity akéhokoľvek S-boxu sú distribuované na čo najviac vstupov S-boxu.

V každom kole sa podkľúč pre daný beh (získaný z kľúča niekoľkými jednoduchými operáciami, napríklad pomocou S-boxov a P-boxov) kombinuje pomocou nejakej skupinovej operácie, typicky XOR .

Dešifrovanie sa vykonáva jednoduchým obrátením procesu (použitím inverzných S-boxov a P-boxov a použitím okrúhlych kľúčov v opačnom poradí).

Feistelove šifry vpravo|náhľad|387x387bod|Mnohé blokové šifry, ako napríklad DES a Blowfish, využívajú štruktúry známe ako Feistelove šifry Vo Feistelovej šifre je blok obyčajného textu, ktorý sa má zašifrovať, rozdelený na dve rovnako veľké polovice. Funkcia sa aplikuje na jednu polovicu pomocou podkľúča a potom sa výstup XORuje s druhou polovicou. Potom sa obe polovice vymenia.

Nech je obehová funkcia a nech sú podkľúčmi pre kolá .

Potom je základný algoritmus nasledovný:

Rozdeľ blok čistého textu na dve rovnaké časti, ( , )

Pre každé kolo , vypočítaj

.

Potom je šifrovaný text .

Dešifrovanie šifrovaného textu sa dosiahne výpočtom pre

.

Potom je opäť čistý text.

Jednou z výhod Feistelovho modelu v porovnaní so substitučno-permutačnou sieťou je to, že obehová funkcia nemusí byť invertibilná.

Lai-Massey šifry vpravo|náhľad|387x387bod|Schéma Lai-Massey. Archetypickou šifrou, ktorá ju využíva, je IDEA . Schéma Lai–Massey ponúka bezpečnostné vlastnosti podobné tým, ktoré majú Feistelove šifry. Jej výhodou je, že obehová funkcia nemusí byť invertibilná. Ďalšou podobnosťou je, že tiež rozdeľuje vstupný blok na dve rovnaké časti. Obehová funkcia sa však aplikuje na rozdiel medzi týmito dvoma časťami a výsledok sa potom pripočíta k obom polovičným blokom.

Nech je obehová funkcia a pol-obehová funkcia a nech je podkľúčmi pre kolá .

Potom je základný algoritmus nasledovný:

Rozdeľ blok čistého textu na dve rovnaké časti, ( , )

Pre každé kolo , vypočítaj

kde a

Potom je šifrovaný text .

Dešifrovanie šifrovaného textu sa dosiahne výpočtom pre

kde a

Potom je opäť čistý text.

Operácie

ARX (sčítať-rotovať-XOR) Mnohé moderné blokové šifry a hash sú algoritmy ARX – ich obehová funkcia zahŕňa iba tri operácie: (A) sčítanie s modulom, (R) rotácia s pevným počtom rotácií a (X) XOR . Príklady zahŕňajú ChaCha20, Speck, XXTEA a BLAKE . Mnohí autori kreslia sieť ARX ako diagram toku údajov, na ilustráciu takejto obehovej funkcie.

Tieto operácie ARX sú obľúbené, pretože sú relatívne rýchle a lacno realizovateľné v hardvéri a softvéri, ich implementácia môže byť mimoriadne jednoduchá a tiež preto, že bežia v konštantnom čase, a preto sú imúnne voči časovacím útokom . Technika rotačnej kryptoanalýzy sa pokúša napadnúť takéto obehové funkcie.

Iné operácie Medzi ďalšie operácie často používané v blokových šifrách patria rotácie závislé od údajov ako v RC5 a RC6, substitučný box implementovaný ako vyhľadávacia tabuľka ako v Data Encryption Standard a Advanced Encryption Standard, permutačný box a násobenie ako v algoritme IDEA .

Prevádzkové režimy náhľad|Nezabezpečené šifrovanie obrazu v dôsledku kódovania v režime elektronického číselníka (ECB). Bloková šifra sama o sebe umožňuje zašifrovať iba jeden dátový blok s dĺžkou bloku šifry. V prípade správy s premenlivou dĺžkou musia byť údaje najskôr rozdelené do samostatných šifrovacích blokov. V najjednoduchšom prípade, ktorý je známy ako režim elektronického číselníka (ECB), sa správa najprv rozdelí na samostatné bloky s veľkosťou bloku šifry (prípadne predĺži posledný blok o tzv. padding) a potom sa každý blok zašifruje a dešifruje nezávisle. Takáto naivná metóda je však vo všeobecnosti neistá, pretože rovnaké bloky otvoreného textu budú vždy generovať rovnaké bloky šifrovaného textu (pre rovnaký kľúč), takže vzory v nešifrovanej správe sa prejavia vo výstupe zašifrovaného textu.