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 [1].

Vlastnosti

upraviť

Okrem vlastností hašovacej funkcie musí kryptografická hašovacia navyše spĺňať:[2]

  • 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

upraviť

Kryptografické hašovacie funkcie

upraviť

Kľúčované hašovacie funkcie

upraviť

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

Príklady

upraviť

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

upraviť

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.[3][4][5] 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[6] 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.[7][8] 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

upraviť

Referencie

upraviť
  1. SHA1 Deprecation: What You Need to Know
  2. Hašovacie funkcie a overenie integrity z referenčnej Handbook of Applied Cryptography
  3. Proof Of Work Explained. www.publish0x.com. Dostupné online [cit. 2023-09-27].
  4. Commonly Used Blockchain Terms And Their Definitions. rihusoft.com. Dostupné online [cit. 2023-09-27].
  5. Alternatives to Proof of Work. cryptomorrow.com. Dostupné online [cit. 2023-09-27].
  6. Proof-of-Work Consensus Algorithm in Crypto and Blockchain, Explained. changelly.com. Dostupné online [cit. 2023-09-27].
  7. Which of the following defeats the purpose of securing the correct in text. vdanang.com. Dostupné online [cit. 2023-09-27]. Archivované 2023-09-27 z originálu.
  8. Bitcoin: A Peer-to-Peer Electronic Cash System. fermatslibrary.com. Dostupné online [cit. 2023-09-27].