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ů.
Úč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.
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.
Symetrické kryptosystémy | |
---|---|
Streamové šifry | |
Síť Feistel | |
Síť SP | |
jiný |