2. Princip algoritmu DES



Princip algoritmu DES


šipka

„DES je typický blokový algoritmus, který bere text určité délky a transformuje ho pomocí mnoha komplikovaných operací na text stejné délky.“ [1]

Vrhneme se na vysvětlení komplikovaných operací.Princip algoritmu můžeme rozdělit na několik částí:

  • generování klíčů (podklíčů z klíče)
  • vstup, vstupní permutace a rozdělení na P a L
  • aplikace rundy (funkce f) na P a L + použití klíče
  • co se děje v rundě - S-box jako součást
  • výstupní permutace a výstup

Generování klíčů (podklíčů z klíče)

Abychom mohli DES použít, potřebujeme mít 56 bitů dlouhý hlavní klíč, který se zadává jako 8 bytů (poznámka pro matematiky: 8 bytů = 64 bitů; my potřebujeme pouze 56 bitů dlouhý klíč, vynechají se paritní bity - 8, 16, 24...64). Z tohoto klíče získáme 16 podklíčů (iteračních klíčů, rundových klíčů), které jsou použity v jednotlivých kolech. Generování klíčů se jinak také říká expanze. Rozsah možných klíčů je tedy 2^56 = 72 057 594 037 927 936.Klíč, který vstupuje do algoritmu je označen K obr. 1. 

Obr. 1 Expanze klíče K1


Proběhne výběrová permutace PC-1 obr. 2, která přeskupí bity a rozdělí výstupní data z této operace na C0 a D0 (přeskupení bitů znamená, 57. bit bude na první pozici, 49. bit na druhé pozici, 41. bit na třetí pozici ..... a konečně 4. bit na poslední pozici; po přeskupení se celý blok rozdělí na dvě poloviny, které jsou zde označeny jako C0 a D0).

Obr. 2  DES - Výběrová permutace PC-1


Na obě tyto části je poté aplikován tzv. levý posun (posun jednotlivých bitů podle tabulky - probíhá pro všech 16 iterací, v první iteraci posune o 1 pozici, ve druhé rovněž o jednu pozici, při třetím průchodu o 2 pozice atd) a vzniknou bloky C1 a D1 (bloky C1, D1 tedy vzniknou aplikací levého posunu na bloky C0, D0), jak lze vidět v tabulce obr. 3.

Obr. 3 DES - Levý posun


Na bloky C1, D1 je poté aplikována permutace PC-2 obr. 4, která opět zpřehází bity (na prvním místě bude 14. bit, na druhém místě bit 17. atd) a zúží na 48 bitů (zúžení probíhá vynecháním některých bitů například 9. bit, 18. bit), výsledkem je první podklíč - označení K1.

Obr. 4 DES - Výběrová permutace PC-2


Analogicky je takto vytvořeno všech 16 podklíčů - jak můžete vidět na obrázku obr. 5. Část této operace si můžete vyzkoušet v připraveném cvičení.

Obr. 5 Princip expanze všech 16 rundových klíčů


Vstup, vstupní permutace a rozdělení na P a L

Další, co nám vedle klíče vstupuje do algoritmu, je zpráva (bitový řetězec, který musí být rozdělen na 64 bitové bloky - popřípadě poslední blok doplněn na 64 bitů; tyto bity jsou poté uspořádány do tabulky, kam se zapisují po řádcích).Jednotlivé bity jsou „očíslovány“ podle své pozice z důvodu jednoduššího pochopení, co se s tabulkou děje obr. 6. 

Obr. 6 Vstupní matice



Tabulka je podrobena vstupní permutaci IP obr. 7, 

Obr. 7 Vstupní permutace IP


(vstupní permutace IP zpřehází jednotlivé bity - na prvním místě bude 58. bit, na druhém místě 50. bit, na posledním místě 7. bit.) a výstupem z ní jsou dva 32 bitové bloky - levý (L1) a pravý (P1) obr.8. 

Obr. 8 Vstup, permutace a rozdělení na L0 a R0 blok


Oba bloky tedy vzniknou rozdělením tabulky, po vstupní permutaci. Tyto dva bloky jsou 32 bitové a je na ně aplikována další permutace.Přehledně je to zobrazeno na obrázku obr. 9. 

Obr. 9 Polovina před doplněním



(Nahoře vidíme celkovou tabulku po permutaci, ta je rozdělena na dva bloky. Pro lepší názornost se jednotlivé bity v obou blocích opětovně očíslovaly dle pozice. Následně je na ně aplikována permutace.Př.: první 58 bit je současně v levé polovině, kde se nachází na pozici 1. Po permutaci se bude nacházet ve třetím řádku prvního sloupce, kde je rovněž označen 1)

Aplikace rundy (funkce f) na P a L + použití klíče

V tomto bodě se poprvé setkáme s aplikací vygenerovaného klíče - v první rundě to bude podklíč K1. Pravá polovina P0 má 32 bitů. Aby k ní mohl být přičten klíč, jenž má 48 bitů, musí být pravá část rozšířena na 48 bitů obr. 10. 

Obr. 10 DES - Expanze - rozšíření 32 bitů na 48 bitů


Toto rozšíření proběhne pomocí tzv. tabulky expanze - všimněte si dvojího zastoupení některých bitů. Takto upravená pravá polovina + podklíč vstupuje do šifrovací funkce f. Povšimněte si také jednotlivého prohazování z levé na pravou stranu.(např. výsledek L2 se přesune na pravou stranu a tvoří tedy základ pro operace na pravé straně.Poznámka: zápis v celkovém grafu popisuje již to, co naznačují šipky. Neznamená tedy, že se provedou operace s již zmíněnou částí L2, ta se přesune na pravou stranu a tam proběhnou operace znovu.)

Co se děje v rundě (f) - S-box jako součást

Osm S-boxů tvoří jeden z nejdůležitějších prvků, co se týče bezpečnosti DES obr. 11. 

Obr. 11  DES S-Boxy


Vyrobí z 6 příchozích bitů 4 výstupní bity. A záleží právě na vnitřním uspořádání S-boxu. Příklad: na vstupu budeme mít 6bitové slovo 000111 obr. 12

Obr. 12  S-box - příklad


  • dva krajní bity (první a poslední) určují řádek S-boxu
  • čtyři zbylé prostřední bity určují sloupec S-boxu
  • průsečík je poté výstup
  • v tomto případě se dostaneme na 04 - což binárně je 0100

Do S-boxu vstupuje výsledek, který je rozdělen na osm 6 bitových řetězců. Po transpozici, podle uvedené tabulky, zúží vstupní 6 bitové bloky na 4 bitové výstupní bloky, kterých je opět osm. Po spojení všech osmi řetězců dostaneme 32 bitový řetězec, který je znovu podroben permutaci (P).V roce 1990 v souvislosti s neustálou kritikou přijatého standardu bylo zjištěno, že náhodnou volbou S-boxu se bezpečnost ještě zvětší. (Do té doby byl S-box volen podle předem nastaveného řádu).

Výstupní permutace a výstup

Permutovaný výstup z S-boxů je opětovně permutován (permutace IP-1, inverzní ke vstupní obr. 13) a výstupem z algoritmu je zašifrovaný 64 bitový šifrovaný text. 

Obr. 13 Výstupní permutace IP-1


Celkový pohled na algoritmus tedy můžeme vidět zde obr. 14.

Obr. 14 DES a jeho blokové schéma


Shrnutí

Podrobně jsme si přiblížili generování podklíčů z hlavního klíče u algoritmu DES, stejně tak jsme si přiblížili princip celkového algoritmu i aplikaci vygenerovaných podklíčů.

Zdroje

Problematika blokových šifer a algoritmů je velice přehledně a srozumitelně popsána i v knize JIROUŠEK, Radim. Principy digitální komunikace. Vyd. 1. Voznice: Leda, 2006, 309 s. ISBN 80-733-5084-X.[1] - http://www.kryptografie.wz.cz/data/des.html - ze dne 31.12.2011