Symetrické, operační módy

BI-SPOL.21-10

Symetrické šifry:

Symetrické šifry

  • Používají pro šifrování a dešifrování stejný klíč

Proudové šifry

  • Šifrují otevřený text kontinuálně po jednotlivých bitech (nebo bajtech)

  • Nejdříve se vygeneruje posloupnost hesel z klíče (tzv. key-stream)

  • Každý znak OT šifrují jinou transformací

  • Synchronní šifry

    • Key-stream je závislý pouze na klíči
    • Pokud vypadne jediný znak, zbytek textu už nerozšifrujeme
  • Asynchronní šifry

    • Key-stream je závislý na klíči a na předchozích zpracovaných datech
    • Pokud vypadne znak, po znacích jsme schopni zase dešifrovat správně
  • Příklady šifer

Princip

  • Základní parametry: Velikost vnitřního stavu a délka inicializačního vektoru (IV)
  • Pomocí klíče a IV generuje PRNG nekonečný proud pseudonáhodných bitů (key-stream)
  • Tento key-stream se náhodně kombinuje (XOR) s otevřeným textem
  • Dešifrování je opět XOR (tedy shodná operace)

Zásadní slabina

  • Tzv. "Two-time pad" - když se One-time pad (OTP) klíč použije pro 2 zprávy

  • Nikdy se nesmí použít stejný klíč a stejné IV pro dvě různé zprávy!

  • Pokud by se tak stalo a útočník zachytil dva šifrové texty

  • stačí provést jejich XOR a kompletně eliminovat klíč

  • Sice jsou obě zprávy zXORované, nemáme otevřený text, ale dále statickou analýzou lze oba texty zrekonstruovat

Blokové šifry

  • Zpracovávají otevřený text po fixně velkých blocích dat (nikoliv po jednotlivých bitech)

  • Příklady šifer

Princip

  • Základní parametry: Velikost bloku (typicky 128b, AES) a délka klíče

  • Algoritmus vezme blok dat a klíč a transformuje ho na stejně dlouhý blok šifrového textu

  • Pokud je zpráva kratší než blok, musí se použít zarovnání (padding)

  • Všechny bloky OT jsou šifrovány toutéž transformací a všechny bloky ŠT jsou dešifrovány toutéž transformací

  • Některé blokové šifry využívají principu algoritmů Feistelova typu (Feistelův kryptosystém)

    • Postupnou aplikací relativně jednoduchých transformací lze vytvořit složitý kryptografický algoritmus
    • Např. šifra DES
    • Rozdělí blok na dvě poloviny (levá) a (pravá)
    • se vezme a beze změny překlopí do dalšího kola jako nová levá
    • Zároveň se na pravou aplikuje tzv. rundovní funkce s klíčem , tedy
    • Výstup z této funkce se zXORuje s levou půlkou a stane se novou pravou částí dalšího kola,

Operační módy blokových šifer

  • Pokud máme zprávu delší než jeden blok (což je skoro vždy), nemůžeme ji jen tak rozřezat a zašifrovat
  • Musíme definovat operační mód, který určí, jak se klíč a jednotlivé bloky provážou
  • Mohou zlepšit vlastnosti blokových šifer

ECB (Electronic Codebook)

  • Bloky jsou šifrovány i dešifrovány nezávisle na sobě

  • 1 bit chyby v ŠT poškodí celý aktuální blok OT

  • Slabiny:

    • Stejný blok OT má stejný výsledný ŠT (jsou patrné vzory, např. v obrázcích!)
    • Lze zasahovat do dat - odebírat bloky nebo je přehazovat (tedy útočník může třeba vložit blok navíc, nebo nějaké vyměnit)

../../Attachments/Pasted image 20230321144343.png
../../Attachments/Pasted image 20260611185522.png

CBC (Cipher Block Chainig)

  • Je potřeba inicializační vektor (IV)

  • Každý blok OT se XORuje s přechozím blokem ŠT (první s IV) a následně zašifruje

  • 1 bit chyby v ŠT poškodí celý aktuální blok OT a 1 bit z následujícího

  • Slabina: Padding Oracle Attack

    • CBC vyžaduje zarovnání (padding)
    • Pokud server při dešifrování vrací chybu, že zarovnání bylo nesprávné, útočník dokáže postupnou modifikací šifrového textu a sledováním chybových hlášek dešifrovat zprávu bez znalosti klíče

../../Attachments/Pasted image 20230321144549.png

CFB (Cipher Feedback)

  • Dělá z blokové šifry proudovou asynchronní

  • Šifra samotná nešifruje otevřený text, ale šifruje předchozí šifrový text (CFB) nebo předchozí výstup šifry (OFB)

  • Je potřeba inicializační vektor (IV)

  • Není potřeba žádný padding, Lze šifrovat data libovolné délky, např. po bajtech (proudově)

  • 1 bit chyby v ŠT poškodí 1 bit z aktuálního bloku OT a celý následující blok

  • Slabiny:

    • Stejné jako u proudových šifer (Two-time pad) - nelze použít stejný IV se stejným klíčem dvakrát

../../Attachments/Pasted image 20230321145007.png

OFB (Output Feedback)

  • Dělá z blokové šifry proudovou synchronní

  • Šifra samotná nešifruje otevřený text, ale šifruje předchozí šifrový text (CFB) nebo předchozí výstup šifry (OFB)

  • Je potřeba inicializační vektor (IV)

  • Není potřeba žádný padding, Lze šifrovat data libovolné délky, např. po bajtech (proudově)

  • 1 bit chyby v ŠT poškodí 1 bit z aktuálního bloku OT

  • Slabiny:

    • Stejné jako u proudových šifer (Two-time pad) - nelze použít stejný IV se stejným klíčem dvakrát

../../Attachments/Pasted image 20230321145119.png

CTR (Counter)

  • Dělá z blokové šifry proudovou synchronní

  • Místo řetězení bloků se šifruje unikátní hodnota čítače pro každý blok

  • Má zaručit maximální periodu hesla

  • Slabiny:

    • Stejné jako u proudových šifer (Two-time pad) - obsah čítače se nesmí opakovat, jinak by dvojí použití hesla znamenalo rozluštění OT

../../Attachments/Pasted image 20230321150002.png

MAC (Message Authentication Code)

  • Často označovaný jako "kryptografický checksum"

  • Šifrování samo o sobě nezajišťuje integritu ani autentizaci dat, útočník sice data nepřečte, ale může v nich měnit bity nebo podvrhovat bloky

  • MAC zajišťuje integritu a původ zprávy

  • Zpráva se jakoby šifruje v modu CBC s nulovým IV

  • Až poslední blok ŠT je použit do MAC kódu, přičemž je možné ho ještě zašifrovat

../../Attachments/Pasted image 20230321151122.png


Vytvořeno: 27. 5. 2026, 11:57
Poslední aktualizace: 11. 6. 2026, 19:20