|  |  |
| --- | --- |
|    | **Šį puslapį ar jo dalį reikia sutvarkyti pagal Vikipedijos standartus** – daug kur be reikalo naudojami specifiniai terminai, nuorodos į išorę vidury teksto, bereikalingi paryškinimai, etc.**Jei galite, sutvarkykite.** |

**Kontrolinis parašas** – kriptografinės funkcijos (angl. *cryptographic hash function*) 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 (angl. *one way*) – iš parašo atgaminti pradinę informacija yra *labai* sunku.
* Atsparumas kolizijoms (angl. *collision resistance*) – *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ų (angl. *input*), 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 (angl. *brute force*) 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ų (angl. *Checksum*) algoritmai yra panašūs i kontrolinio parašo, tačiau nėra naudojami duomenų apsaugos tikslams dėl įvairių pažeidžiamumų.