N-hash | |
---|---|
Vytvořeno | 1990 |
zveřejněno | 1990 |
Velikost hash | 128 bit |
Počet kol | 12 nebo 15 |
Typ | hashovací funkce |
N-Hash je kryptografická hašovací funkce založená na cyklické funkci FEAL . V současnosti považován za nejistý [1] .
Byl vyvinut v roce 1990 společností Nippon Telegraph and Telephone (která také vyvinula FEAL).
Původně měla funkce N-Hash vyřešit problém záměny informací na cestě mezi dvěma telefonními uživateli (Nippon Telegraph a Telephone - telekomunikační společnost) a urychlit načítání dat. Pokud například osoba odešle SMS zprávu, bude před doručením zkontrolována její pravost pomocí hashovací funkce. A pokud uživatel produktů Nippon Telegraph a Telephone potřebuje rychle najít něčí kontakt v telefonu, pak použití N-Hash může zjednodušit proces hledání jména v seznamu. To je způsobeno tím, že první písmeno kontaktu je deklarováno jako hash kód (malá definující část kontaktu) jména.
Algoritmus N-Hash je založen na blokovém šifrovacím algoritmu FEAL . Největší telekomunikační společnost Nippon Telegraph and Telephone vytvořila FEAL na základě DES . Ale ačkoli tento algoritmus překonává DES v rychlosti, je velmi nespolehlivý a snadno zranitelný: kryptoanalytik potřeboval k prolomení algoritmu velmi málo informací. Bylo to hackování algoritmu FEAL, které vedlo v roce 1990 ke vzniku hashovací funkce N-Hash. N-Hash je také rychlejší než DES: ve srovnání s 9Kbps DES běží N-Hash rychlostí 24Kbps pro 15kolové schéma a 29Kbps pro 12kolové schéma. Nippon Telegraph and Telephone zároveň dosáhly zvýšení spolehlivosti oproti FEAL [1] .
Algoritmus N-Hash byl nějakou dobu používán společností Nippon Telegraph and Telephone v souladu s cíli této funkce, ale po chvíli byla vyvinuta narozeninová metoda , která tento algoritmus snadno prolomila. V souvislosti s hackem byl opuštěn nejen N-Hash, ale téměř všechny funkce založené na blokových šifrách, protože všechny mají stejný problém: jsou snadno zranitelné vůči narozeninové metodě. Místo toho nyní používají spolehlivější funkce založené na technologiích MD: MD5 , SHA-1 a další uvedené v seznamu funkcí, které jsou v současnosti považovány za spolehlivé (podle normy ISO / IEC 10118).
Funkce N-Hash se používala krátce na začátku 90. let, dokud nebyla prolomena narozeninovou metodou.
Definice: Nechť je zpráva nějaké délky.
Funkce se nazývá jednosměrná, jestliže z rovnosti
snadno:
velmi pracné:
Jednodušší definici lze napsat takto:
Jednosměrnost je " otisk prstu ":
Jednosměrnost řeší velmi důležitý problém. Zvažme to na příkladu.
Alice a Bob tradičně označují předměty přenosu informací. PříkladyAby Alice nepoužila „narozeninovou“ metodu k oklamání Boba, je velmi vhodné zavést ještě silnější podmínku, než je jednosměrná podmínka. H je takové, že je obtížné najít zprávy a , takže jejich hash kódy se shodují. To znamená, že je nemožné najít dva lidi se stejnými otisky prstů.
Tato podmínka se nazývá odolnost proti kolizi a neplatí pro hashovací funkci N-Hash.
Kvůli nestabilitě kolize může Alice oklamat Boba tímto způsobem (metoda "narozeniny"):
Aby k takovému problému nedošlo, stačí provést kosmetické úpravy podepsané smlouvy. A i když tato akce nijak nemění hashovací funkci H, a tudíž nijak neovlivňuje její odolnost vůči kolizím, touto akcí však osoba obdrží novou verzi smlouvy, jejíž hash kód neodpovídá hash kódu verze smlouvy útočníka. To znamená, že pokud Bob na 5. řádku někde vloží čárku nebo dvě tečky místo jedné, pak Alice nebude schopna prokázat, že podepsal další smlouvu (protože jeho hash kód již neodpovídá hash kódu Alicině smlouvě).
Můžete si vzít příklad z reálného života: když notář orazítkuje podepsanou smlouvu, provede tam kosmetické změny.
Abyste porozuměli tomu, jak funkce N-Hash funguje, musíte přejít na více vědeckou řeč. Níže jsou uvedeny cíle této funkce, nikoli na příkladech, ale podle toho, jak jsou implementovány a s příslušnou terminologií .
Tato vlastnost je nezbytná pro vyloučení možnosti útočníka vložit do původní zprávy nějaké nepravdivé informace. Pro zajištění integrity musí být možné detekovat jakékoli změny v textu zprávy (nahrazení, vložení, smazání). Integrita je zajištěna zavedením redundantních informací do původní zprávy, která bude testovací kombinací. Tato kombinace se nazývá kontrolní součet a lze ji vypočítat pomocí speciálního algoritmu. Protože tento algoritmus závisí na tajném klíči , je nepravděpodobné , že by do zprávy byly vloženy falešné informace .
, kde salt je redundantní informace, M je zpráva - kontrolní součet;
Ze vzorce vyplývá, že pokud se změní sůl, změní se i S (kontrolní součet), což znamená, že obojí a změněno .
To znamená, že můžeme dojít k závěru, že byly přidány nepravdivé informace.
Funkce N-Hash pracuje s M zprávami libovolné délky. V tomto případě je výstupem hash kód pevné délky 128 bitů. Toho je dosaženo díky skutečnosti, že zpráva je rozdělena do bloků o velikosti 128 bitů a algoritmus pracuje sekvenčně s každým z bloků.
Tato vlastnost platí pro jednosměrné funkce, což je N-Hash. Spolehlivost zprávy M je kontrolována dvojím nalezením konečného hash kódu (message digest) (odesílající a přijímající strany). Výsledky se porovnávají a pokud se shodují, pak jsou informace spolehlivé. Bezúhonnost nezaručuje platnost .
na stránkách, kde je třeba zadat přihlašovací jméno a heslo , je heslo po zadání přeloženo do hash kódu. To znamená, že zpočátku uživatel zadá heslo M, ale pro vstup do chráněné oblasti se použije hash kód . Pomocí známého hash kódu h a funkce H je velmi obtížné vypočítat M, což zajišťuje důvěrnost hesla.
Autentizace je postup pro ověření uživatele nebo dat pomocí určitých kritérií.
Nabízí se otázka, jak hashovací funkce zajišťuje pravdivost autentizace. To lze snadno ukázat na příkladu.
Když uživatel zadá uživatelské jméno a heslo na jakékoli stránce , jeho heslo se převede na hash kód a přenese se přes síť k ověření. K přihlášení pod cizím účtem samozřejmě stačí zjistit hash kód hesla a poté pomocí vzorce (h-hash code, M - password) heslo najít. Ale N-Hash, což je jednosměrná funkce, zajišťuje bezpečnost hesla, protože řešení této rovnice pro jednosměrné funkce je velmi pracné (bez použití osobního počítače).
Algoritmus N-Hash je založen na cyklickém opakování (12 nebo 15krát - počet kol) operací. Na vstupu je hašovací kód a může být libovolný, výstupem je hašovací kód h zprávy M , který je nutné hašovat. Velikost odchozího hash kódu je pevná a rovná se 128 bitům, přičemž velikost M je libovolná [2] .
Diagram vpravo ukazuje schematická označení operací, která jsou přítomna v následujících diagramech.
Níže je jeden cyklus N-Hash algoritmu.
Zbývající neznámé něco se najde po průchodu kaskádou osmi transformačních funkcí. Jeho získání lze popsat takto:
.
Transformační funkceVyvstává otázka, jak funguje transformační funkce .
Zvažte horní část okruhu k zaměřovacímu kříži.
Původní zpráva je rozdělena do bloků bitů.
Mezivýstupy budeme považovat za vstupy do spodní části obvodu. a jsou přiváděny na mezivýstupy , zatímco operace a jsou přiváděny na další dva výstupy . Nyní je možné přeznačit výsledky na mezivýstupech a jejich prostřednictvím, podobně jako v horní části, najít výsledky na výstupu spodní části, tedy celého obvodu jako celku.
Po provedení všech nezbytných výpočtů dostaneme, že když je aplikováno na vstup , výstupní zpráva může být reprezentována jako zřetězení zpráv
Protože funkce f pracuje s argumenty, jejichž délka je 32 bitů, pak z vyhledávacího schématu funkce f(x, P) máme:
Argumenty funkce (první šipka zleva) jsou a .
Argumenty funkce (druhá šipka zleva) jsou a .
To znamená, že dvě složky výstupní zprávy jsou již známé a stejné
Dále použijeme již přijaté odcházející části zprávy na výstupu pro usnadnění zápisu:
Hašovací funkce je bezpečná , když kryptoanalytik potřebuje mnoho informací k prolomení hashe (takže je nepravděpodobné, že by prolomil) a pokud hash dosud nebyl prolomen [3] .
Aby byla hašovací funkce bezpečná, musí být splněny následující podmínky:
Jinak by se člověk, který zadá své uživatelské jméno a heslo pro vstup na Wikipedii , mohl dostat na stránku jiného účastníka.
Pokud tato podmínka není splněna, pak umožňuje zjistit hesla uživatelů Wikipedie.
Jinak by bylo možné najít dvě hesla se stejnými hash kódy.
N-Hash není bezpečná funkce, protože pro ni není splněna poslední podmínka.
N-Hash je v současnosti považován za nezabezpečenou funkci. Tento obrázek uvádí všechny zabezpečené jednosměrné funkce v současnosti podle ISO/IEC 10118 [1] :
Z algoritmů vytvořených jako N-Hash založených na blokových šifrách jsou za bezpečné považovány pouze MDC-2 a MDC-4 .
N-Hash se vyznačuje následujícím problémem:
Tento obrázek ukazuje klasifikaci útoků na všechny hashovací algoritmy obecně.
Algoritmově závislé útoky jsou útoky založené na vlastnostech konkrétního algoritmu.
Například N-Hash byl úspěšně napaden pomocí diferenciální metody , útoku s pevným bodem a setkání uprostřed .
Algoritmicky nezávislé útoky lze aplikovat na jakoukoli hashovací funkci, ale to nevylučuje skutečnost, že pro některé algoritmy jsou velmi časově náročné kvůli velkému množství informací nebo rychlosti kódu.
Efektivní útoky na N-HashDen Boer navrhl metodu pro konstrukci kolize pro jednokolové N-Hash schéma.
Biham a Shamir úspěšně použili diferenciální kryptoanalýzu ke kompromitaci 6-kolového N-Hash schématu. Metoda, kterou navrhli pro konstrukci kolize , funguje pro jakoukoli hodnotu N, která je násobkem tří, a zároveň se pro N ≤ 12 ukazuje jako efektivnější než přístup založený na narozeninovém paradoxu .
Pro 12kolové schéma je složitost konstrukce kolizí navrhovanou metodou odhadována na 256 operací (složitost metody založené na narozeninovém paradoxu je 264 operací).
Algoritmově nezávislé útokyZvětšení délky hash kódu a tajného klíče zkomplikuje práci kryptoanalytika. Můžete se pokusit udělat výpočty příliš časově náročné pro osobní počítač a vyžadovat velké zdroje. Pak bude muset kryptoanalytik buď hledat superpočítač, nebo napsat virus, který na základě paralelizace procesu prolomení hashovací funkce použije k řešení problému několik osobních počítačů najednou [3] .
Následující metody ochrany hashovací funkce [4] jsou také účinné :
Algoritmus | Délka hodnoty hash | Rychlost šifrování (KB/s) |
---|---|---|
Simultánní Davies-Meyerův okruh (s IDEA ) | 128 | 22 |
Davies-Meyer (s DES) | 64 | 9 |
Hashovací funkce GOST | 256 | jedenáct |
HAVAL (3 sady) | variabilní | 168 |
HAVAL (4 sady) | variabilní | 118 |
HAVAL (5 sad) | variabilní | 98 |
MD2 | 128 | 23 |
MD4 | 128 | 236 |
MD5 | 128 | 174 |
N-Hash (12 fází) | 128 | 29 |
N-Hash (15 fází) | 128 | 24 |
RIPE-MD | 128 | 182 |
SHA-1 | 160 | 75 |
Snefru (4 průchody) | 128 | 48 |
Snefru (8 sad) | 128 | 23 |
Hashovací funkce | |
---|---|
obecný účel | |
Kryptografický | |
Funkce generování klíčů | |
Kontrolní číslo ( srovnání ) | |
Hashe |
|