Diamant 2

Diamant 2
Tvůrce Michael Paul Johnson
Vytvořeno 1995 _
zveřejněno 1995 _
Velikost klíče 128 (8-65536) bitů v 8bitových krocích
Velikost bloku 128 bit
Počet kol 10 (10-15)
Typ Substitučně-permutační síť

Diamond2  je symetrický blokový kryptografický algoritmus vyvinutý Michaelem Paulem Johnsonem v roce 1995. Algoritmus používá 128bitový blok a klíč libovolné délky, standardně 128 bitů.

Zabezpečení

Účelem vytvoření šifry bylo vyvinout algoritmus, který je odolný vůči všem existujícím typům útoků s rezervou bezpečnosti po dlouhou dobu a schopností používat jednoduchý vygenerovaný klíč. V tomto případě se velikost klíče volí v závislosti na požadované úrovni ochrany a dostupnosti velkého množství materiálu klíče. V současné době existuje řada hashovacích funkcí s proměnným výstupním blokem (například Skein ), které lze použít k vytvoření klíčového materiálu delšího než 512 bitů. Zároveň autor požaduje 128 bitů entropie nezbytných pro spolehlivou ochranu. Bez speciálních typů útoků bude útok hrubou silou proti 128bitovému klíči na stávajícím hardwaru v dohledné době technicky nemožný. To také využívá poměrně složitou a relativně pomalou funkci rozšíření a instalace klíče. Předpokládá se, že změna klíče bude prováděna mnohem méně často než operace šifrování a dešifrování v softwarových i hardwarových implementacích. Použití 128bitového bloku, atypického pro šifry při vývoji Diamond2, je odůvodněno nutností bránit útokům hrubou silou pomocí předem vygenerovaných tabulek.

Navzdory proklamované blízkosti ideální šifry není tento algoritmus široce používán. Přestože byla šifra zveřejněna v roce 1995, za posledních 13 let nebyla provedena žádná podrobná studie kryptografické síly Diamond2. Ve skutečnosti se tato bloková šifra používá v některých aplikacích jako jeden z dodatečně dostupných symetrických šifrovacích algoritmů [1] a šifra je implementována i v některých kryptografických knihovnách.

Popis algoritmu

Koncepce designu

  1. Lineární funkce a kombinace funkcí lze často řešit analytickými způsoby, které nejsou pro autory šifry zřejmé a je třeba se jim vyhnout. To zahrnuje standardní aritmetické funkce, matematiku konečných polí a Booleovu algebru.
  2. Reverzní blokové šifry s velikostí bloku n bitů lze považovat za jednoduchou substituční šifru nad abecedou 2n znaků s klíčem, který vybírá použitou permutaci.
  3. Jednoduché substituční šifry mohou být reprezentovány vyhledávací tabulkou nebo polem, ale požadované praktické pole je příliš velké na to, aby bylo praktické v RAM.
  4. Adekvátní předimenzovanou podmnožinu vyhledávací tabulky lze modelovat jednoduchým vrstvením bitových permutačních kol substituce podbloků, které slouží k šíření funkčních závislostí za hranicemi podbloků.

Algoritmus

Bloková šifra Diamond2 se skládá ze tří hlavních částí: 1 - klíčový rozvrh, 2 - substituční kroky, 3 - permutační kroky. Šifrování a dešifrování sestává z n kol substitučních operací, kde n je alespoň 10. Každá substituční operace vezme každý ze 16 vstupních bajtů po 8 bitech a nahradí je jinými bajty. To je odvozeno z obsahu substitučního pole na základě pozice bajtu a čísla zaokrouhlení. Operace plánu klíče naplní interní vyhledávací pole na základě klíče. Mezi každou substitucí používá krok nastavené permutace proces vzorkování bitů, aby byl každý výstupní bajt funkcí osmi různých vstupních bajtů. Na rozdíl od DES každé kolo změní každý bajt vstupního bloku (místo pouze poloviny vstupního bloku). Po 5 kolech je každý bit výstupního bloku nelineární funkcí každého bitu vstupního bloku a každého bitu klíče. Další kola po pátém kole se používají k zajištění toho, že výpočet obsahu jednotlivých substitučních polí je obtížnější než útok hrubou silou na šifru. Slouží také ke zvýšení počtu možných funkčních závislostí na klíči, čímž se algoritmus přibližuje ideální blokové šifře a ztěžuje kryptoanalýza.

Poznámky

  1. Implementace Diamond2 v DarkCrypt TC/GUI (nedostupný odkaz) . Získáno 7. ledna 2009. Archivováno z originálu 17. prosince 2008. 

Odkazy