Kryptografická hašovacia funkcia

Kryptografická hašovacia funkcia je hašovacia funkcia používaná v kryptografii. Kritéria kladené na jej bezpečnosť ju robia vhodnou na použitie v rozličných aplikáciách informačnej bezpečnosti, akými sú napr. autentifikácia či integrita správ.

Dve v súčasnosti najpoužívanejšie kryptografické hašovacie funkcie sú MD5 (Message-digest 5) a SHA1 (Secure hash algorithm 1). V roku 2005 boli nájdené v oboch bezpečnostné nedostatky. V súčasnosti sa odporúča použivať SHA2, napriklad SHA256 .

Vlastnosti 
Okrem vlastností hašovacej funkcie musí kryptografická hašovacia navyše spĺňať:
 Jednocestnosť – funkcia musí byť jednocestná, t. j. inverznú funkciu ťažko nájsť. Teda iba znalosť výstupu nijak nevedie k znalosti vstupného textu. Pre dané  ľahko spočítať , pre dané  ťažko spočítať .
 Silná bezkolíznosť – ak nie je možné v rozumnom čase nájsť akýkoľvek pár vstupov tak, aby nastala kolízia. Nájsť ľubovoľné , , aby platilo .
 Slabá bezkolíznosť – ak nie je možné v rozumnom čase k danému vstupu nájsť vstup iný tak, aby nastala kolízia. Pre dané  nájsť také ,  ≠ , aby platilo .

Implementácie

Kryptografické hašovacie funkcie 
 Message-Digest algorithm (MD)
 Secure Hash Algorithm (SHA)
 RACE Integrity Primitives Evaluation Message Digest (RIPEMD)
 Whirlpool
 HAVAL
 PANAMA
 Tiger

Kľúčované hašovacie funkcie 
Použitie hašovacej funkcie s tajným symetrickým kľúčom, napríklad HMAC.

Príklady 
Príklady výstupov (hašov) niektorých kryptografických hašovacích funkcií z krátkeho textového reťazca (na porovnanie s kontrolným súčtom CRC32). Malá zmena vstupu spôsobuje lavínovité zmeny vo výstupe:
 vstup:     Vyhlasujem, že ti dlhujem 100
 výstup: 
  MD5       fbe8e3408311811c0d182d0193a03a62
  SHA-1     68741d0244e8ce0989af154977ce037c7c75a32e
  SHA-256   da3292bf01f1a5a37ffd1c8650430c3a65766205bad2faac1e1a7ab1d23ccc88
  RIPEMD160 01b5e2da3697a5759d7848e697b1415aeb6e082d
  CRC32     46b88aaa

 vstup:     Vyhlasujem, že ti dlhujem 900
 výstup: 
  MD5       42e4bf834247c94795911ef86b8817e3
  SHA-1     6f6baee4bf87762435f0e245a94c478cbf3d97df
  SHA-256   bfbcd7dbd3ff2b8f6b59142ad352136d70e53ec13c1b263dae685ca3fb46ded5
  RIPEMD160 41392a069ce0a3b58062bbf66f9f528502d3c046
  CRC32     48abdb12

Kontrola zdravotného stavu 
Schéma (alebo protokol či funkcia) dôkazu služby je ekonomické opatrenie na zabránenie útokom na odmietnutie služby a inému zneužívaniu služieb, ako je napríklad spam v sieti, ktoré si vyžaduje určitú prácu od osoby požadujúcej službu, čo zvyčajne znamená čas spracovania na počítači. Kľúčovou vlastnosťou týchto systémov je ich asymetria: práca musí byť mierne náročná (ale vykonateľná) pre stranu, ktorá podáva žiadosť, ale ľahko overiteľná pre poskytovateľa služby.Ide o populárny systém používaný pri ťažbe bitcoinov a hash cache, používa čiastočné inverzie hash na preukázanie vykonanej práce, na odomknutie odmien za ťažbu bitcoinov a na znak dobrej vôle na odoslanie e-mailu do hash cache. Odosielateľ musí nájsť správu, ktorej hodnota hash začína niekoľkými nulovými bitmi. Priemerná práca, ktorú musí odosielateľ vykonať na nájdenie platnej správy, závisí exponenciálne od počtu potrebných nulových bitov v hashovacej hodnote, zatiaľ čo príjemca môže overiť platnosť správy vykonaním jedinej hashovacej funkcie.

Pozri aj 
 Kolízie hašovacích funkcií

Referencie 

 
Kryptografia
Počítačová bezpečnosť
Hašovanie