Kryptografická hašovací funkce: Porovnání verzí

Skočit na navigaci Skočit na vyhledávání
Odstranění chybného označení jako kontrolní součet
m (Oprava odkazu)
(Odstranění chybného označení jako kontrolní součet)
'''Hashovací funkce''' je předpisreprodukovatelná metoda pro výpočetpřevod vstupních [[kontrolní součetdata|kontrolního součtudat]] zedo zprávy(relativně) čimalého čísla, většíhokteré množstvívytváří jejich '''otisk''' (můžeme ho označit jako ''charakteristika dat''). Výsledný kontrolní součetotisk se často označuje také jako ''hashvýtah'', ''výtahminiatura'', ''otiskfingerprint'', či ''miniaturahash'' či(česky též někdy jako ''fingerprinthaš''). Funkce může sloužit ke kontrole integrity dat, k rychlému porovnání dvojice zpráv, indexování, vyhledávání apod. Je důležitou součástí [[kryptografie|kryptografických]] systémů pro [[Elektronický podpis|digitální podpisy]]. Formálně je to funkce ''h'', která převádí vstupní posloupnost [[bit]]ů (či [[byte|bytů]]) na posloupnost pevné délky ''n'' bitů.
 
Výsledný otisk se často nesprávně označuje jako [[kontrolní součet]].
 
== Vlastnosti ==
 
Mezi hlavní vlastnosti této [[funkce]] patří:
 
# jakékoliv množství vstupních dat poskytuje stejně dlouhý výstup (otisk)
# malou změnou vstupních dat dosáhneme velkou změnu na výstupu (tj. výsledný otisk se od původního zásadně na první pohled liší)
# vysoká pravděpodobnost, že dvě zprávy se stejným kontrolním součtem jsou stejné
 
== Popis ==
 
Formálně jde o funkci ''h'', která převádí vstupní posloupnost [[bit]]ů (či [[byte|bytů]]) na posloupnost pevné délky ''n'' bitů.
 
<math>h:D\rightarrow R\,,</math>
kde |''D''|>|''R''|.
 
Z definice plyne existence '''kolizí''', to znamená dvojic vstupních dat (''x'',''y'') takových, že ''h''(''x'')=''h''(''y''), tj. dvojice různých vstupních dat může mít stejný otisk. Kolize jsou nežádoucí, ale v principu se jim nelze úplně vyhnout. Lze jen snižovat pravděpodobnost, že nastane kolize pro podobná data, například při náhodné změně v části vstupní posloupnosti. Cílem je vysokátedy pravděpodobnostdosáhnout co nejvyšší pravděpodobnosti, že dvě zprávy se stejným kontrolním součtem jsou stejné.
 
== Bezpečnost ==
 
Nejdůležitější je následující trojice vlastností, která určuje obtížnost napadení hashovací funkce. Obtížností se v tomto kontextu myslí [[výpočetní složitost]]., která by měla být za současných technologických možností mimo možnosti reálného použití:
== Požadavky na hashovací funkci ==
Nejdůležitější je následující trojice vlastností. Obtížností se v tomto kontextu myslí [[výpočetní složitost]].
 
# Odolnost vůči získání předlohy. Pro daný hash ''c'' je obtížné spočítat ''x'' takové, že ''h''(''x'')=''c''. (Hashovacíhashovací funkce je [[jednosměrná funkce|jednosměrná]].)
# Odolnost vůči získání jiné předlohy. Pro daný vstup ''x'' je obtížné spočítat ''y '' takové, že ''h''(''x'')=''h''(''y'').
# Odolnost vůči nalezení kolize. Je obtížné systematicky najít dvojici vstupů (''x'',''y''), pro které ''h''(''x'')=''h''(''y'').
== Známé hashovací funkce ==
* [[Message-Digest algorithm]] &ndash; oblíbená MD5, ale již [[kompromitovaná funkce]]. Od srpna [[2004]] je veřejně znám postup pro nalezení kolizního páru zpráv.<ref name="hash_klima">[http://cryptography.hyperlink.cz/2004/kolize_hash.htm Stránka věnovaná kolizím hashovacích funkcí, Vlastimil Klíma]</ref>
* [[Secure Hash Algorithm]] (SHA):
** [[Secure Hash Algorithm|SHA-1]] &ndash; oblíbená, ale již kompromitovaná funkce. V únoru [[2005]] byl zveřejněn objev [[algoritmus|algoritmu]], který umožňuje nalézt kolizi podstatně rychleji než hrubou silou. Výpočetní náročnost je ale stále mimo současnou techniku.
** [[Secure Hash Algorithm|SHA-2]] &ndash; rodina 4 hashovacích funkcí (SHA-256, SHA-384, SHA-512 a SHA-224), které jsou součástí standardu FIPS 180-2<ref name="FIPS180">[http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf FIPS 180-2 (pdf)]</ref>, a u kterých dosud nebyly nalezeny žádné bezpečnostní slabiny.
* [[Tiger (hash)]] &ndash; funkce z roku 1995, používána v [[peer-to-peer]] aplikacích
 
== Podívejte se také ==
* [[Cyklický redundantní součet|CRC]] (CRC)
* [[Kontrolní součet]]
 
== Externí odkazy ==

Navigační menu