Kriptografinė santraukos funkcija

**Kontrolinis parašas** – kriptografinės funkcijos () rezultatas, naudojamas informacijos autentiškumui ir integralumui nustatyti. Maišos (hash) funkcija 'apdorojama' informacija (dokumentas / byla / tekstas) ir apskaičiuojama fiksuoto ilgio santrumpa (digest). Šią santrumpą užšifravus privačiu raktu gaunamas kontrolinis parašas.

## Kriptografinės savybės

Kontrolinio parašo kriptografinės funkcijos turi šias savybes:
* Vienpusiškumas () – iš parašo atgaminti pradinę informacija yra  *labai* sunku.
* Atsparumas kolizijoms () – *labai* sunku rasti dvi žinutes *m*1 ir *m*2, kurių f(*m*1) = f(*m*2).

## Algoritmai
Populiariausi kontrolinio parašo algoritmai:
* MD5 (Message-Digest algorithm 5) – šiuo metu populiariausias algoritmas, apskaičiuojantis 128 bitų ilgio parašą. Nors MD5 algoritmas (kaip ir kiti algoritmai) gali apskaičiuoti parašą nuo begalinio skaičiaus žinučių (), galimų parašų skaičius yra baigtinis – 2128, todėl jau seniai buvo žinoma kad kolizijos egzistuoja. Anksčiau tai nebuvo aktualu dėl reliatyviai silpnų kompiuterių pajėgumų, tačiau dabar MD5 algoritmas laikomas nesaugiu, ką parodė 2004 metais atrasti pažeidžiamumai. Pavyzdys:
:MD5(„Labas rytas“) = 23f00289ee3181c0ab6ab3fcd20f983b

* SHA-1 (Secure Hash Algorithm) – dar vienas populiarus algoritmas, naudojamas įvairiose programose ir protokoluose kaip antai – TLS, SSL, PGP, SSH, S/MIME, IPSec. SHA-1 buvo laikomas pažeidžiamo MD5 algoritmo įpėdiniu, tačiau 2004 ir 2005 metais atrasti pažeidžiamumai daro šį algoritmą nerekomenduotinu. Yra sukurta saugesnių SHA-1 algoritmo variacijų (SHA-224, SHA-256, SHA-384, SHA-512), kuriose pažeidžiamumų kol kas nerasta. SHA-1 apskaičiuoja 160 bitų parašą:
:SHA-1(„Labas rytas“) = 55c3271b687491019ebef614b4261927cd266af4

* RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) – sukurtas 1996 metais akademinės bendruomenės, todėl nėra suvaržytas patentų. Šis algoritmas yra mažiau populiarus nei MD5 ar SHA-1, todėl atitinkamai mažiau ir analizuotas. Pažeidžiamumų kol kas nerasta. RIPEMD-160 apskaičiuoja 160 bitų parašą:
:RMD160(„Labas rytas“) = 2755eae08ccb73b63872dded3982e50b47d47388

Visi kontrolinio parašo algoritmai turi baigtinį galimų parašų skaičių, todėl yra pažeidžiami grubios jėgos () atakoms. ***Buvo manoma***, jog su dabartinių pajėgumų kompiuteriais, tokios atakos įgyvendinimas gali užtrukti labai daug metų (pvz., buvo manoma, jog MD5 sudėtingumas yra 264, o SHA-1, RIPMD-160–280).

2004 m. buvo atrasti analitiniai būdai visų šių algoritmų nulaužimui. MD5, RIPEMD-160, HAVAL-128 algoritmų sugeneruotoms reikšmėms galima rasti kolizijas per valandas. Detaliau skaitykite čia. T. y. jas galima nesunkiai „nulaužti“. Kurį laiką saugiu laikytam SHA-1 algoritmui taip pat rasti kriptoanalitiniai būdai, leidžiantys sumažinti sudėtingumą tiek, kad koliziją galima rasti priimtino laiko ribose. Todėl specialistai ragina pereiti prie SHA-2 versijos. Kol kas didesnės praktinės naudos įsilaužėliams iš to nėra, tačiau manoma, jog artimoje ateityje bus galima panaudoti šiuos atradimus kenkėjiškų programų plitimui (t. y. panaudojant pre-image ataką).

## Susiję algoritmai

Kontrolinių sumų () algoritmai yra panašūs i kontrolinio parašo, tačiau nėra naudojami duomenų apsaugos tikslams dėl įvairių pažeidžiamumų.