Feature phone - online puzzle
Hašovací funkce je matematická funkce (resp. algoritmus) pro převod vstupních dat do (relativně) malého čísla. Výstup hašovací funkce se označuje výtah, miniatura, otisk, fingerprint či hash (česky též někdy jako haš). Hašovací funkce se používají k rychlejšímu prohledávání tabulky, porovnávání dat (například pro hledání položek v databázi, odhalování duplicitních záznamů, hledání malware antivirovým programem), při hledání podobných úseků DNA sekvencí v bioinformatice i jinde. V podobě kryptografické hašovací funkce je používána pro vytváření a ověřování elektronického podpisu, zajištění integrity dat, ochranu uložených hesel atd.
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 velké změny na výstupu (tj. výsledný otisk se od původního zásadně na první pohled liší),
z hashe je prakticky nemožné rekonstruovat původní text zprávy (což je rozdíl oproti klasickému šifrování),
v praxi je vysoce nepravděpodobné, že dvěma různým zprávám odpovídá stejný hash, jinými slovy pomocí hashe lze v praxi identifikovat právě jednu zprávu (ověřit její správnost).Hašování v základní variantě dovoluje testovat vstupní data na shodu, tedy rovnost. Nezachovává podobnost dat ani uspořádání.
Popis
Formálně jde o funkci h, která převádí vstupní posloupnost bitů (či bytů) na posloupnost pevné délky n bitů.
Z definice plyne existence kolizí, to znamená dvojic vstupních dat (x,y), x ≠ y, takových, že h(x) = h(y), tj.