1. Feistelova šifra a algoritmus Lucifer



Feistelova šifra a algoritmus Lucifer


V souvislosti s vývojem informačních a komunikačních technologií se vyvíjí i šifrování dat. V dalších studijních aktivitách se tedy budeme především věnovat šifrování v oblasti počítačů. Sami určitě nejčastěji s někým komunikujete přes elektronickou komunikaci. Bude nás tedy zajímat, jak takováto komunikace probíhá, co se s daty děje a jakým způsobem jsou chráněna.

Jde především o znepřístupnění dat nepovolaným osobám. Takovými daty můžeme rozumět osobní údaje, které všude uvádíme a všichni souhlasíme s jejich používáním a dalším zpracováním, nebo třeba různé výsledky výzkumů, anket, či úložiště, kam nahráváme svá vytvořená díla. Pro běžného uživatele jsou důležitá všechna data, která má uložena ve svém počítači, ať už mluvíme o nějakých semestrálních pracích, dokumentech či osobních fotografiích. Jak se tedy spolehlivě „bránit“ proti možnému útoku?


Symetrické šifrování

Kapitola, která nás teď čeká je naplněna algoritmy, které jsou založeny na principu symetrického šifrování.

Symetrické šifrování je takové šifrování, které používá stejného klíče jako pro zašifrování otevřeného textu, tak pro dešifrování zašifrovaného textu. Hlavním problémem je zde transport klíče mezi odesílatelem a adresátem.


Blokové šifry

Jak jste se sami mohli přesvědčit, bezpečné, silné a zároveň těžko prolomitelné šifry jsou ty, které kombinují transpoziční a substituční algoritmus, jejich klíč je v ideálním případě kratší než šifrovaný text a může se použít vícekrát.

Základem pro pochopení symetrického způsobu šifrování je pochopení principu Feistelovy šifry. Pojďme si nejdříve přiblížit některé z klíčových pojmů, které budeme v následující problematice potřebovat a poté se podíváme přímo na Feistelovu šifru.

Blokové šifry jsou zajímavé tím, že pracujeme s celky a operace, které s nimi provádíme, aplikujeme právě na celý celek. Bloky procházejí jednotlivými rundami (podobně jako boxer v ringu). Rundy mají obvykle stejnou funkci, ale probíhají několikrát za sebou. Synonymem pro rundu může být kolo či iterace.


Zkusili byste si na základě Vašich zkušeností formulovat, co to iterace je?

  • opakování
  • představuje způsob řešení problému, kdy postupně opakujeme a přibližujeme se k výsledku, při každém opakování se mění počáteční „text“, na který aplikujeme další krok


Další z důležitých a nedílných součástí toho způsobu šifrování je permutace.


šipka

„Permutace n prvků je každá uspořádaná n-tice vytvořená z těchto prvků. Každý z n prvků se v této n-tici vyskytuje právě jednou. Jednotlivé permutace se od sebe liší pouze pořadím prvků.“[1]

U permutace je tedy důležité pořadí prvků, které je odlišné před vstupem do této rundy a po jejím průběhu.

Princip Feistelovy šifry

Nyní si přiblížíme jednotlivé operace, které postupně probíhají:
  • Vstupem do algoritmu je vygenerovaný klíč a otevřený text.
  • Otevřený text (čili blok, který chceme zašifrovat) rozdělíme na dvě poloviny - pravou (R) a levou (L).
  • Každá polovina projde x rundami.
  • Při každém kole je použit speciální podklíč.
  • Podklíče jsou generovány z klíče zvláštním algoritmem.
  • Struktura každé iterace je stejná. Probíhají operace jako transpozice či substituce.
  • Výstupem všech těchto operací je šifrovaný text.

Blok klíče a generování podklíčů lze vidět na schématu obr. 1. 

Obr. 1 Blokově znázorněné generování podklíčů


Obdobně poté vstup do algoritmu a probíhající iterace s přičtením příslušného podklíče obr. 2. 

Obr. 2 Bloky dat, iterace a přičtení podklíčů


Feistelův způsob šifrování není přímo algoritmus, je to spíš struktura, která je společná pro všechny blokové šifry. Blokovou šifrou zde rozumíme například algoritmus DES, o kterém se blíže dozvíme v dalších aktivitách.

Lucifer & DES

V 60. letech minulého století vyvinul tým pod vedením Horsta Feistela obr. 3 šifrový standard pojmenovaný Lucifer. Lucifer měl klíč o délce 64 bitů a velikost bloku byla 128 bitů. Jednalo se o vůbec první blokovou šifru tohoto typu.V roce 1973 vyhlásil úřad NBS (National Bureau of Standarts) konkurz, ve kterém hledal vhodný šifrovací standard pro ochranu transakcí v obchodních aplikacích. Přihlásilo se několik možných kandidátů, ovšem žádný nevyhovoval přísným kritériím. Až v roce 1975, po příslušných testech a prověřeních, byl upravený Lucifer publikován a v roce 1976 přijat jako DES (Data Encryption Standard). Upravení algoritmu je opředeno řadou nejasností a kritik, ovšem jisté je, že pro svou dobu byl postačující. Klíč byl z původních 64 bitů zkrácen na 56 bitů, a DES byl přijat jako standard pro šifrování neklasifikovaných informací. O rok později byl poté normalizován pro všechny typy dat a používán do roku 2001, a následně nahrazen svým nástupcem - algoritmem AES.

Obr. 3 Horst Feistel


Shrnutí

Z historické části našeho kurzu jsme se přesunuli do relativně současné doby, kdy je důležité a efektivní chránit a šifrovat data, která jsou pro nás hodnotná. Vysvětlili jsme si pojmy jako blokové šifry, či zopakovaliy podstatu symetrického šifrování.

Zdroje

[1] - http://www.priklady.eu/cs/Matematika/Kombinatorika/Permutace.alej - ze dne 9.1.2012DOSTÁLEK, Libor a Marta VOHNOUTOVÁ. Velký průvodce infrastrukturou PKI a technologií elektronického podpisu. vyd. 1. Brno: Computer Press, 2006, 534 s. ISBN 80-251-0828-7.JIROUŠEK, Radim. Principy digitální komunikace. Vyd. 1. Voznice: Leda, 2006, 309 s. ISBN 80-733-5084-X.