Keccak

Vidēji sarežģītas tēmas

Keccak (izrunāts kā "kečak") ir daudzpusīga kriptogrāfiska funkcija, kuru izstrādājuši Gvido Bertoni, Džoans Demens, Mikaels Pēters un Žils Van Aše. Lai gan Keccak var izmantot arī citiem mērķiem, tā primāri ir zināma kā jaucējfunkcija, kas garantē augstāka līmeņa drošību, salīdzinot ar senākiem jaukšanas algoritmiem, piemēram, SHA-1 vai SHA-2.

SHA ("Secure Hash Algorithm" jeb drošs jaukšanas algoritms) ietver kriptogrāfisko jaucējfunkciju kopumu, ko publicējis ASV Nacionālais standartu un tehnoloģiju institūts (NIST). Gan SHA-1, gan SHA-2 izstrādāja ASV Nacionālā drošības aģentūra (NSA), tāpēc tiem ir līdzīga uzbūve. Lai gan Keccak atbalsta tādu pašu izvades lielumu (jaucējkoda garumu) kā SHA-2, to darbības mehānismi atšķiras. Taču Keccak joprojām pieder pie SHA kategorijas un bieži tiek saukts par SHA-3.

Teorētiskie uzbrukumi SHA-1 notika 2004. gadā un 2005. gadā kļuva publiski pieejami. Pēc pāris gadiem, 2011. gadā, NIST pasludināja SHA-2 par jauno izmantojamo jaucējfunkcijas standartu. Taču pāreja no SHA-1 uz SHA-2 bija visai lēna, un tikai 2017. gada sākumā liela daļa izstrādātāju un datorzinātnieku beidzot migrēja uz SHA-2. Drīz pēc tam Google paziņoja par sekmīgu SHA-1 sadursmes uzbrukumu 2017. gada februārī, un kopš tā laika SHA-1 vairs netiek uzskatīts par drošu un tā izmantošana netiek rekomendēta.
Keccak funkcijas (SHA-3) izstrāde tika uzsākta aptuveni 2007. gadā pēc tam, kad NIST izziņoja publisku konkursu un vērtēšanas procesu, meklējot jaunu kriptogrāfisko jaucējfunkciju, kas varētu novērst SHA-1 un SHA-2 trūkumus.

Lai gan tobrīd nebija notikuši nozīmīgi uzbrukumi SHA-2, ir paredzams, ka laika gaitā jaucējfunkcijas tiek uzlauztas, un jaunu standartizētu funkciju izstrāde prasa vairākus gadus. Ņemot vērā to un sekmīgi notikušos uzbrukumus pret SHA-1 2004. un 2005. gadā, NIST uzskatīja par nepieciešamu izveidot jaunu kriptogrāfisku jaukšanas algoritmu. 2012. gadā NIST paziņoja, ka konkursā uzvarējušais algoritms ir Keccak, un tas tika standartizēts kā jaunākais SHA saimes pārstāvis (tātad – SHA-3). 

Viens no iemesliem, kāpēc NIST izvēlējās Keccak, bija tā inovatīvā uzbūve, kas izrādījās drošāka un efektīvāka par citiem algoritmiem. Tehniski SHA-3 algoritms izmanto t. s. "sūkļa" funkcijas (jeb "sūkļa" uzbūvi) atšķirībā no SHA-1 un SHA-2 izmantotās Merkles Damgård uzbūves.

Pagaidām SHA-2 joprojām tiek uzskatīts par drošu un tiek plaši izmantots. Piemēram, SHA-256 izmanto Bitcoin un citas kriptovalūtas, un tam ir nozīmīga loma ieguves procesā. Nākotnē SHA-3 izmantošanas apjomi varētu palielināties, jo ir maz ticams, ka tuvākajā laikā šis algoritms varētu ciest sekmīgus uzbrukumus. Taču turpmākajos gados, kriptogrāfijai attīstoties un atklājoties arvien jauniem riskiem, visticamāk, tiks izstrādāti arvien jauni kriptogrāfiskie jaukšanas algoritmi.