Kriptografija javnog ključa
Kriptografija s javnim ključem ili asimetrična kriptografija kriptografski je sustav koji koristi parove ključeva. Svaki par se sastoji od javnog ključa (koji može biti poznat drugima) i privatnog ključa (koji ne može biti poznat nikome osim vlasniku).[1] Generiranje takvih parova ključeva ovisi o kriptografskim algoritmima koji se temelje na matematičkim problemima koji se nazivaju jednosmjerne funkcije.[2] Učinkovita sigurnost zahtijeva čuvanje privatnog ključa privatnim, dok javni ključ može se otvoreno distribuirati bez ugrožavanja sigurnosti.[1]
U takvom sustavu svaka osoba može šifrirati poruku pomoću javnog ključa namijenjenog primatelja, ali ta se šifrirana poruka može dešifrirati samo privatnim ključem primatelja.[3] To omogućuje, na primjer, poslužiteljskom programu da generira kriptografski ključ namijenjen odgovarajućoj kriptografiji sa simetričnim ključem, a zatim da koristi klijentov javni ključ za šifriranje tog novogeneriranog simetričnog ključa. Poslužitelj tada može poslati ovaj šifrirani simetrični ključ preko nesigurnog kanala klijentu; samo ga klijent može dešifrirati koristeći vlastiti privatni ključ (koji se uparuje s javnim ključem kojeg poslužitelj koristi za šifriranje poruke). S obzirom na to da i klijent i poslužitelj imaju isti simetrični ključ, mogu sigurno koristiti šifriranje simetričnog ključa (koje je mnogo brže) za komunikaciju putem nesigurnih kanala. Ova shema ima prednost u tome što ne mora ručno unaprijed dijeliti simetrične ključeve (što predstavlja težak problem) dok se postižu prednosti veće propusnosti podataka kriptografije šifriranjem simetričnim ključem .
Uz kriptografiju s javnim ključem moguća je i robusna autentifikacija. Pošiljatelj može kombinirati poruku s privatnim ključem kako bi stvorio kratki digitalni potpis na poruci. Svatko s odgovarajućim javnim ključem pošiljatelja može kombinirati tu poruku s traženim digitalnim potpisom; ako potpis odgovara poruci, potvrđuje se podrijetlo poruke.[4][5]
Šifriranje pomoću javnog ključa temelj je sigurnosti u modernim kriptosustavima, uključujući aplikacije i protokole koji nude jamstvo povjerljivosti, autentičnosti i nepobitnosti elektroničkih komunikacija i pohrane podataka. Oni su temelj brojnih internetskih standarda, kao što su sigurnost transportnog sloja (TLS), S/MIME, PGP i GPG. Neki algoritmi javnog ključa pružaju distribuciju i tajnost ključa (npr. Diffie-Hellman razmjena ključeva), neki pružaju digitalne potpise (npr. Algoritam digitalnog potpisa), a neki obe (npr. RSA). U usporedbi sa simetričnom enkripcijom, asimetrična enkripcija je sporija od dobre simetrične enkripcije te je prespora za mnoge svrhe.[6] Današnji kriptosustavi (kao što su TLS i Secure Shell) koriste i simetričnu i asimetričnu enkripciju, često korištenjem asimetrične enkripcije za sigurnu razmjenu tajnog ključa koji se zatim koristi za simetrično šifriranje.
Prije sredine 1970-ih, svi sustavi šifriranja koristili su algoritme simetričnog ključa, u kojima se isti kriptografski ključ koristi s temeljnim algoritmom od strane pošiljatelja i primatelja, koji ga moraju čuvati u tajnosti. Nužno je ključ u svakom takvom sustavu morao biti razmijenjen između strana koje komuniciraju na neki siguran način prije bilo kakvog korištenja sustava – na primjer, putem sigurnog kanala. Ovaj zahtjev nikada nije trivijalan i vrlo brzo postaje neizvediv kako se broj sudionika povećava, ili kada sigurni kanali nisu dostupni, ili kada se (kao što je razumna kriptografska praksa) ključevi često mijenjaju. Konkretno, ako je zamišljeno da poruke budu zaštićene od drugih korisnika, potreban je zaseban ključ za svaki mogući par korisnika.
Nasuprot tome, u sustavu javnih ključeva, javni ključevi se mogu otvoreno širiti, a vlasnik mora čuvati tajnim samo odgovarajuće privatne ključeve.
Dvije najpoznatije upotreba kriptografije s javnim ključem su:
- Šifriranje javnog ključa, u kojem je poruka šifrirana javnim ključem željenog primatelja. Za pravilno odabrane i korištene algoritme, poruke u praksi ne može dešifrirati nitko tko ne posjeduje odgovarajući privatni ključ, za koga se stoga pretpostavlja da je vlasnik tog ključa, a time i osoba povezana s javnim ključem. To se može koristiti za osiguranje povjerljivosti poruke.[7]
- Digitalni potpisi, u kojima je poruka potpisana privatnim ključem pošiljatelja i može je provjeriti svatko tko ima pristup javnom ključu pošiljatelja. Ova provjera dokazuje da je pošiljatelj imao pristup privatnom ključu, te je stoga vrlo vjerojatno da je osoba povezana s javnim ključem. To također dokazuje da je potpis pripremljen upravo za tu poruku, budući da provjera neće uspjeti za bilo koju drugu poruku koja se može osmisliti bez korištenja privatnog ključa.
- ↑ a b Stallings, William. 3. svibnja 1990. Cryptography and Network Security: Principles and Practice (engleski). Prentice Hall. str. 165. ISBN 9780138690175
- ↑ Dujella, Andrej. Kriptografija: Kriptosustavi s javnim ključem. Inačica izvorne stranice arhivirana 11. ožujka 2016. Pristupljeno 19. studenoga 2020.
- ↑ Asymmetric encryption: using public key encryption to ensure secure data transfer. IONOS Digitalguide (engleski). Pristupljeno 6. svibnja 2022.
- ↑ Menezes, Alfred J.; Oorschot, Paul C. van; Vanstone, Scott A. Listopad 1996. 11: Digital Signatures (PDF). Handbook of Applied Cryptography. CRC Press. ISBN 0-8493-8523-7. Pristupljeno 14. studenoga 2016.
- ↑ Bernstein, Daniel J. 1. svibnja 2008. Protecting communications against forgery (PDF). Algorithmic Number Theory. 44. MSRI Publications. §5: Public-key signatures, pp. 543–545. Pristupljeno 14. studenoga 2016.
- ↑ Alvarez, Rafael; Caballero-Gil, Cándido; Santonja, Juan; Zamora, Antonio. 27. lipnja 2017. Algorithms for Lightweight Key Exchange. Sensors (engleski). 17 (7): 1517. doi:10.3390/s17071517. ISSN 1424-8220. PMC 5551094. PMID 28654006
- ↑ Asymmetric encryption. IONOS Digitalguide (engleski). Pristupljeno 2. lipnja 2022.