DES algoritmus: popis a příklad

Standard šifrování dat (DES) je standard pro šifrování dat, který byl vynalezen ve Spojených státech v 80. letech dvacátého století. Mezi šifry je považován za "důchodce", zatímco zůstává pracovním koněm kryptografie. DES není vhodný pro vysokorychlostní inženýrství a velké objemy dat z důvodu omezení 56 bitů na klíč a 64 bitů na data. Stále se však používá.

Co jsou blokové šifry?

DES - blokovací šifrovací algoritmus. Během posledních 20-30 let bylo vytvořeno mnoho blokových šifrů, ale vytvořit dobrou šifru, která je bezpečná, je poměrně komplikovaná. Je důležité, aby šifra měla vlastnosti, které jí umožní fungovat v mnoha oblastech a odvětvích. Blokové šifry se skládají z několika iterací střídavého použití některé šifry. Každá iterace se nazývá kolo. Jak ukazuje praxe, i některé primitivní algoritmy s konzistentním použitím mohou vytvářet spolehlivé šifry. Algoritmus DES je příkladem, který zůstal stabilní a nezranitelný po dobu 20 let.


Tento přístup ve vývoji šifrování velmi usnadňuje a zjednodušuje analýzu bezpečnosti. Například testovací útok na blokovou šifru začíná minimálním počtem kol a postupuje metodicky s nárůstem počtu kol.

Použití DES

Ačkoli DES je zastaralá a nesplňuje aktuální požadavky, může být použita například jako 3DES, když se šifra použije třikrát za sebou. Tento přístup odstraňuje omezení velikosti klíče, ale šifrovaný datový blok zůstává nezměněn. Ve svém vlastnímDES čas byl dostatečně rychlý a kryptografický. Nyní to není pravda a 3DES je třikrát pomalejší. Navzdory tomu se DES stále používá v řadě systémů, ale jeho použití v nových projektech je zakázáno.


Oficiální algoritmus DES byl standardem ve Spojených státech do roku 1998. V roce 1997 se začal vytvářet nový standard, který byl nazván AES (Advanced Encryption System), a přestože dešifrování ukazuje, že pokus trhlin DES vede k mnoha soustav nelineárních rovnic, analytické metody nejsou schopny pomoci vyřešit problém - jeho slabinou je malá množina možných klíčů . Jejich počet se rovná 2 56 a všechny varianty lze v poměrně krátké době překonat pomocí moderních technologií. Algoritmus kolo

, jedna

Pro jasnost prezentace a popis algoritmu DES za použití vzoru (linka graf výpočty) 4.1 znázorňuje strukturu z jednoho kola.
Každý obdélník v lineárním diagramu představuje nějaký druh výpočtu a šipka vlevo označuje místo, kde budou výsledky bloku přenášeny. Značka plus v kruhu je označena operací "vyloučit nebo" nazývanou programování XOR. Operace stále nese název "bitwise addition" nebo "add without transfer". Síť může najít algoritmus DES na C a studovat jej pro lepší pochopení. DES přijímá 64bitový textový blok. Prochází počátečním přesunem podle určitého principu. Při analýze algoritmu bylo jasné, že význam v této permutaci je malý, protože nedává žádný kryptografický efekt. TextJednotka je rozdělena na 2 stejné části: vpravo (R) a vlevo (L). Pak jsou šifrované součásti změněny a sloučeny a na konci cyklu je 64bitový datový blok zašifrován.

Obecný algoritmus

Algoritmus DES zahrnuje 16 kol, které se provádějí podle schématu popsaného výše. Všechna kola jsou očíslována i, kde i = (1; 16). Každé i-té kolo páry (Li-1 Ri-1) obdrží nový pár (Li, Ri) pomocí klávesy Ki. Hlavní transformace probíhají v rámci funkce F.

Algoritmus pro funkci F

Jak je patrné z obrázku 4.1, R prochází operací "Expansion". Tento blok duplikuje sérii bitů od R a doplní je s nimi a získá 48bitovou hodnotu. Výsledný výsledek prochází bitovým přidáním pomocí 48-bitového klíče Ke. A výsledek této operace je předán bloku S. Blok S obsahuje 8 malých substitučních matic, které jsou vybrány zvláštním způsobem.
Každá matice přijímá na vstupu 6 bitů informací a vydává 4bitovou hodnotu. Výsledkem je, že blok S přijímá na vstupu 48bitové údaje a na výstupu je výsledkem 32bitová hodnota.
Tento 32-bitová hodnota prochází další operaci permutací poté sečteny operaci XOR L. A konečně, pravé a levé straně jsou prohozeny kulatým zakončením. Jak již bylo zmíněno, 16 takových algoritmů provádí tato kola. Zde nebudeme přetěžovat článek s příklady, které zaberou spoustu místa. Práce šifrovacího algoritmu DES a příklady lze zobrazit online.

Fiesteelův kód

Algoritmus DES je založen na šifře Fiesteel.Jeho myšlenka je velmi sofistikovaná. Každé kolo se skládá z L s hodnotou F (R, Ki) a změna L pozici Key znaku R. Feystelya algoritmu je to, že šifrování a dešifrování stejných kroků, L a R jsou obráceny, a pak provést operaci přidání L a F (R, Ki). To dělá šifrování a dešifrování jednoduché a snadno pochopitelné.
V kódech Feistelu se nejčastěji objevila jedna zajímavá změna - zrušení permutace L a R v poslední iteraci. To činí algoritmy šifrování a dešifrování zcela symetrické. Rozdíl spočívá pouze v použití Ke klíčů. Tento princip se ukázal jako velmi uživatelsky přívětivý pro programovou úroveň, protože šifrování a dešifrování se provádí pomocí jedné funkce. Například lakonický DES implementace šifrovacího algoritmu v C

Šifrovací klíč

pro šifrování dat pomocí DES šestnáct 48-bitové klíče. Jeden klíč na kolo. Každé tlačítko je vytvořeno vzorkováním 48 bitů z 56bitového master klíče. Vytvoření klíče nebo jiných karet je určeno mechanismem popsaným v dokumentaci DES. Stručně řečeno, algoritmus pro vzorek a klíč je následující. Bat je přidán k hlavnímu klíči na pozici 81624 324048 5664. To se děje tak, že každý byte obsahuje lichý počet jednotek. Dodržování pravidel pomáhá identifikovat chyby při přepínání klíčů. Poté pomocí speciálních tabulek je dokončený klíč podroben permutacím a posunům, s výjimkou přidaných bitů. Tak cestazískáte potřebný klíč.

Komponenty DES

Každá složka algoritmu DES řeší problém:
  • Feystelya algoritmus zjednodušuje šifrování a dešifrování, a zároveň zajistit promísení obou polovinách textu.
  • Přidáním vedle sebe textových částí s klíčovými rozhraními otevřete data klíčem a šifruje je.
  • S-blok a tabulky shody dělají algoritmus nelineární a zvyšují jeho odolnost vůči různým útokům.
  • Rozšíření, S-blok a permutace poskytují difúzi algoritmu - lavinový efekt. Jinými slovy, pokud se vstupní data F změní alespoň o 1 bit, pak to způsobí změnu v sadě bitů najednou. Pokud je šifra lavinový efekt není pozorován, změny otevřené dat bude mít za následek odpovídající změnu v zašifrované formě, které mohou být sledovány a použit pro zlem. V kryptografii existuje kritérium pro lavinový efekt. Tento algoritmus ho uspokojuje, pokud se při změně 1 bitu otevřených dat změní alespoň polovina šifrovaných dat. Algoritmus DES to uspokojuje, počínaje 4 koly. Shrnutí - když změníte 1 bit otevřených dat v DES šifry, změní se 29 bitů.

    Problémy s bezpečností v DES

    Zřejmým problémem DES je výběr klíčů šifrovacích klíčů obecně. Co se stane, když vyberete jako klíč klíč (všechny klíče jsou 0)? To bude mít za následek, že všechny klíče pro šifrování v každém kole budou stejné a všechny klíče budou nulové. Nejen to, že 16 šifrovaných půjde s jedním klíčem, vzhledem k tomu, že algoritmy šifrování a dešifrování DESliší se pouze v pořadí použití klíčů, budou zcela totožné. Celý význam šifrování bude ztracen.
    DES má 4 klíče, které se nazývají slabé, což má za následek popsaný efekt. DES má 12 poloslabých a 48 pseudoslabých klíčů, které mají za následek omezení variací generovaných klíčů v kolech. Jinými slovy, je pravděpodobné, že během šifrování bude 16 klíčů použito 16 různých klíčů a 8 4 nebo 2. Méně zřejmá nevýhoda DES je vlastností komplementarity. To znamená, že pokud zašifrujete pomocí textových a doplňkových klíčů s otevřeným zdrojovým kódem, výsledkem bude hodnota, která je doplněním šifrovaného textu. Tato nesmyslná vlastnost může vést k úspěšným útokům na projekty, které používají DES k zajištění bezpečnosti.

    Problém šifrovacího klíče

    je základem DES a je považován za hlavní důvod, proč by měl být tento algoritmus opuštěn. Vzhledem k tomu, že velikost tlačítka DES je 56 bitů, budete muset zobrazit 2 56 možností skenování všech klíčů. Je to tolik? Pokud uděláte 10 milionů klíčových kontrol za sekundu, bude trvat asi 2000 let, než se zkontrolujete. Zdá se, že algoritmus je poměrně stabilní. Bylo to tak v minulém století, kdy bylo vytvoření počítače podobného výkonu téměř nemožné, jak z technického, tak z hlediska finančního hlediska. Pokud vytvoříte počítač s milionem čipů, vyhledávání všech mnoha klíčů DES bude trvat 20 hodin. První takový počítač pro dekódování algoritmu DES se objevil v roce 1998, kterývyřešil úkoly po dobu 56 hodin. Moderní technologie sítí a paralelních procesů umožňují tento čas ještě více snížit.

    a Dešifrování DES

    Není přehnané říci, že DES je příčinou Applied Science, s názvem „kryptografických analýza“. Od počátku vzhledu DES byly pokusy o jeho rozdělení, vědecká práce byla provedena na jeho studiu. To vedlo ke vzniku takových oblastech matematiky, jako jsou:
  • lineární dešifrování - studie a určit vztah mezi prostý text a šifrovaný;
  • diferenciální kryptanalýza - studium a analýza závislosti mezi několika texty s otevřeným zdrojovým kódem a jejich šifrovanými verzemi;
  • kryptoanalýza na propojených klíčích - studie vztahu mezi zašifrovanými texty přijatými na primárním klíči a klíči spojenými s primárním způsobem jakýmkoli způsobem.
  • DES trvalo 20 let globální kryptanalýzy a útoků, ale zůstalo silnou šifrou. Ale kdo hledá - to vždy najde
  • Byhamovo a Shamir, vědci z Izraele v roce 1991 prokázána pomocí diferenciální dešifrování že DES lze provést útok, ve kterém se počítá klíč za předpokladu, že útok je 2 47 speciálně vybraných párů otevřené a šifrované texty.
  • Japonský vědec Mitsui Matsui v roce 1993 ukázal, že klíč lze vypočítat pomocí lineární kryptanalýzy. Chcete-li to udělat, stačí znát 2 47 párů otevřeného textu a odpovídající šifrovanou verzi.Tyto hackerské techniky byly dále mírně revidovány, zdokonaleny a zjednodušeny a řada novýchzpůsoby zlomení. Ale zůstávají příliš složité, v jejich pozadí je úplný přehled všech klíčových voleb považován za nejvhodnější útok na DES.

    Související publikace