Kriptografinė santraukos funkcija

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
   'Šį 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[redaguoti | redaguoti vikitekstą]

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 m1 ir m2, kurių f(m1) = f(m2).

Algoritmai[redaguoti | redaguoti vikitekstą]

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[redaguoti | redaguoti vikitekstą]

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ų.