kriptografija (kripto- + -grafija), prevođenje (kriptiranje ili šifriranje) razgovijetnoga teksta (jasan, otvoreni tekst), ili kakva drugoga skupa podataka, u nerazgovijetan tekst (kriptirani tekst, kriptogram ili šifrat), kako bi ga jedino onaj koji posjeduje unaprijed utvrđen ključ za odgonetanje (dekriptiranje, dešifriranje) mogao prevesti u izvorni, razgovijetni tekst. Zadaća je kriptografije da omogući dvjema osobama (pošiljatelj i primatelj) očuvanje tajnosti poruka, čak i u komunikaciji nesigurnim komunikacijskim kanalom (računalna mreža, telefonska linija), koji je dostupan trećim osobama. Kriptografija se stoljećima primjenjivala za osiguravanje tajnosti pretežito vojne i diplomatske komunikacije. U predznanstvenome razdoblju klasične kriptografije, postupci kriptiranja svodili su se na različite domišljate kombinacije razmještanja (dislokacija) znakova unutar teksta ili na njihovu zamjenu (supstitucija). Poznato je, npr., da je Julije Cezar kriptirao svoja pisma Ciceronu i drugim prijateljima zamjenjujući svako slovo razgovijetnoga teksta trećim slovom u abecednome slijedu iza njega. Stoljećima su se ljudi domišljali novim načinima kriptiranja, a kriptografija je našla svoje mjesto i u književnosti (E. A. Poe, J. Verne, C. Doyle). Smatra se da znanstveno razdoblje kriptografije započinje djelom C. E. Shannona Komunikacijska teorija tajnih sustava (Communication Theory of Secrecy Systems, 1949). Tim su djelom utemeljene osnove kriptologije kao znanstvene discipline koja se bavi razvojem kriptografskih postupaka. Dio kriptologije koji se bavi postupcima odgonetanja poruka bez poznavanja ključa naziva se kriptoanalizom. Danas, u doba razmjene poruka globalnim računalnim i komunikacijskim mrežama, kriptografija se široko primjenjuje: bilo da se želi osigurati privatnost poruka, ili se time nastoji zaštititi njihova tajnost, kao npr. pri slanju naloga u elektroničkom bankarstvu. U oba se slučaja kriptografija bavi podatcima u digitalnom obliku, postupci kriptiranja i dekriptiranja matematičke su naravi, a provode se automatski, uz pomoć računala. Zbog toga se suvremena kriptologija, kao interdisciplinarna znanost, uglavnom oslanja na informatiku, a znatno je potpomognuta teorijom brojeva i dr. matematičkim teorijama.
Slanje poruka u digitalnom obliku podrazumijeva njihovo pretvaranje u nizove bitova, a tekst neke poruke prikazuje se kao niz binarno kodiranih znakova (brojeva). Načini kodiranja znakova međunarodno su normirani, pa su tako kodirani tekstovi svima poznati. Svi se abecedni znakovi, brojevi i svi interpunkcijski znakovi kodiraju osmorkom bitova, koja čini jedan bajt (→ bajt), čime se može prikazati ukupno 28 = 256 različitih znakova. Ako se nizovi bitova tako kodirana teksta razdijele na blokove proizvoljne duljine, a na takve se blokove primijeni kriptografski postupak zamjene sadržaja, dobiva se kriptirani tekst s vrlo velikim brojem mogućih kombinacija, koje kriptoanalitičkim postupcima nije moguće dekriptirati u prihvatljivom vremenu, pa je time tajnost zajamčena.
U današnjim se postupcima kriptiranja, kao algoritmi koji iz bitova jasnoga teksta izračunavaju bitove kriptiranoga teksta i obrnuto, obično primjenjuju parametarske matematičke funkcije. Parametar funkcije određuje konkretan način izračunavanja i čini ključ kriptiranja. Zato su oblici funkcija kriptiranja i dekriptiranja opće poznati, a tajnost jamči njihov parametar. Funkcije kriptiranja i dekriptiranja zajedno čine kriptosustav.
Simetrični kriptosustavi
Simetrični kriptosustavi
imaju jednak ključ za kriptiranje i dekriptiranje. Takvi su sustavi konvencionalni (u njih ulaze svi postupci predračunalnoga doba), a sigurnost se postiže osiguravanjem tajnosti ključa, pa se još nazivaju i kriptosustavi s tajnim ključem. Danas je najrašireniji simetrični kriptosustav DES (od engl. Data Encryption Standard). Uveden je 1977. u SAD-u, a normiran je u međunar. organizaciji za normizaciju ISO. U tom se sustavu kriptiraju blokovi svaki po 64 bita jasnoga teksta u jednako duge blokove kriptiranoga teksta. Izvorno je ključ imao 56 bitova, a može poprimiti 256 ≈ 7,2 × 1016 vrijednosti. S povećanjem brzina računala pojavila se opasnost od mogućeg otkrivanja ključa, pa je danas u primjeni inačica sustava DES s ključem od 128 bita, što omogućuje odabir jednog od 3,4 × 1038 mogućih ključeva. Kriptiranje i dekriptiranje može se obaviti programski, ali se proizvode i čipovi koji taj posao obavljaju sklopovski, pri čemu se postižu brzine do 1011 b/s. S obzirom na to da se svi digitalizirani sadržaji (slike, zvuk) pohranjuju i prenose kao nizovi bitova, i oni se mogu kriptirati na način jednak kriptiranju teksta. Kada dva sudionika žele razmjenjivati tajne poruke kriptirane tim sustavom, prethodno moraju razmijeniti ključeve, pazeći pritom da ih netko nepoželjan ne otkrije. Zato je razmjena ključeva glavni ograničavajući čimbenik simetričnih kriptosustava. Taj je nedostatak riješen primjenom asimetričnih kriptosustava.
Asimetrični kriptosustavi ili kriptosustavi s javnim ključem
Asimetrični kriptosustavi ili kriptosustavi s javnim ključem
postavljeni su tako da se ključ za dekriptiranje ne može u prihvatljivom vremenu izračunati iz ključa za kriptiranje. Zbog toga se razmjena tajnih ključeva može obaviti preko nesigurnih komunikacijskih kanala. Taj su sustav predložili Whitfield Diffie i Martin E. Hellman u radu Novi smjerovi u kriptografiji (New Directions in Cryptography, 1976), izazvavši pravi preokret u kriptografiji. U asimetričnim kriptosustavima svaki sudionik u komuniciranju mora imati dva ključa: ključ kriptiranja, koji se javno obznanjuje, i ključ dekriptiranja, koji poznaje samo vlasnik. Svatko može kriptirati poruku opće poznatim javnim ključem, ali dekriptiranje može obaviti vlasnik svojega privatnoga ključa. Danas je najrašireniji asimetrični sustav RSA, nazvan po prvim slovima prezimena njegovih autora (Ron Rivest, Adi Shamir i Len Adleman), a zasnovan je na teoriji brojeva. Javni se ključ sastoji od para brojeva (e, n), a privatni ključ od para (d, n), gdje je n umnožak dvaju prostih brojeva p i q (brojevi koji su djeljivi samo s jedan i sa samim sobom), a brojevi e i d mogu se izračunati ako se poznaju prosti brojevi p i q. Iz javno poznatih brojeva e i n mogao bi se, dakle, izračunati broj d samo onda ako se iz poznatoga n odrede njegovi faktori p i q. Za konstrukciju takvih kriptosustava upotrebljavaju se prosti brojevi svaki po stotinjak znamenaka, pa njihov umnožak ima dvjestotinjak dekadskih znamenaka. Za tako velike brojeve, čak i uporabom najmoćnijega računala, nije moguće u prihvatljivom vremenu iz umnoška n odrediti faktore, čime je sačuvana tajnost privatnoga ključa. Asimetrično kriptiranje može se obaviti brzinom do 105 b/s, što je mnogo sporije od simetričnoga pa nije prikladno za prenošenje većih poruka. Međutim, uporabom toga sustava može se između dvaju sudionika u komunikaciji uspostaviti simetrični kriptosustav, tako što se njime na početku pošalje tajni ključ simetričnoga sustava.
Osim kriptiranja, za pouzdano komuniciranje treba osigurati uzajamno pouzdano predstavljanje sudionika u komunikaciji. Kako bi primatelj poruke bio siguran da pošiljatelj nije lažan, pošiljatelj se mora identificirati. Postupak provjere identiteta naziva se autentifikacijom.
Također treba spriječiti pošiljatelja da poslije opovrgava sadržaj svoje poruke. To se postiže funkcijama izradbe kriptografskoga sažetka, odnosno funkcijom sažimanja. Njima se poruke proizvoljne duljine dijele na blokove jednake duljine i iz njih uzastopno izračunavaju sažetci stalne duljine. Funkcije su jednosmjerne jer je iz sažetka nemoguće izračunati izvorni tekst. Asimetrični i simetrični kriptosustavi i funkcije sažimanja omogućuju ostvarenje sigurnih načina komuniciranja, koji su preduvjet za ostvarenje svih oblika elektroničkoga poslovanja.