Kerckhoffsovo načelo
Kerckhoffsovo načelo ili Kerckhoffsov princip u kriptografiji[1] je postavka koju je iznio nizozemski kriptograf Auguste Kerckhoffs (1835. – 1903.) u radu La Cryptographie militaire (Vojna kriptografija): kriptirani sustav treba biti siguran čak i kada je o njemu javno poznato sve osim samoga ključa.[2][3]
Kerckhoffsovo načelo je američki matematičar Claude Shannon preoblikovao ili neovisno formulirao kao „neprijatelj poznaje sustav“.[4] Načelo da sustave treba dizajnirati pod pretpostavkom da će neprijatelj odmah sve saznati o njima poznato je i kao Shannonova maksima. Ovo su načelo, za razliku od oprečnoga, o sigurnosti koja proistječe iz nejasnoća (eng. security through obscurity), naširoko prihvatili svjetski kriptografi.
U prvome od svoja dva članka La Cryptographie militaire iz 1883. Auguste Kerckhoffs navodi šest počela za vojne šifre. U prijevodu s francuskog ona su:[5][6]
- Sustav mora biti praktički, ako ne i matematički, neodgonetljiv.
- Sustav šifriranja ne bi trebao podrazumijevati tajnost i ne bi trebao predstavljati problem ako padne u neprijateljske ruke.
- Ključ mora biti moguće razmjenjivati i pamtiti bez korištenja pisanih bilješki, a dopisnici ga moraju moći mijenjati po svojoj volji.
- Sustav mora bit primjenjiv na telegrafske komunikacije.
- Sustav mora biti prenosiv i za svoj rad ne zahtijevati rukovanje više osoba.
- Sustav mora biti jednostavan za upotrebu i ne smije zahtijevati od svojih korisnika da poznaju i poštuju prevelik niz pravila.
Neka ovih počela više nisu značajna s obzirom na sposobnost računala da izvode složenu enkripciju. Kerckhoffsova je druga postavka, međutim, i dalje vrlo važna.
Kerckhoffs je kriptografiju smatrao nadmoćnom steganografskom kodiranju kakvo je bilo uobičajeno u devetnaestom stoljeću. Jedan od problema kodiranja skrivanjem i prikrivanjem poruka jest taj što se oslanjaju na tajne, poput rječnika ili šifrarnika, koje posjeduju ili pamte ljudi. Jednom otkriveni rječnici trajno ugrožavaju cijeli sustav kodiranja, a izloženost se povećava kako se povećava broj korisnika koji drže tajne.
Za razliku od steganografskog kodiranja, kriptografija devetnaestog stoljeća koristi jednostavne tablice koje omogućavaju prijevod slova i brojaka na presjecima redaka i stupaca koji se mogao mijenjati ključevima. Ključevi su pak bili kratki, brojčani, i ljudima lako pamtljivi. Sustav se smatrao neodgonetljivim jer tablice same po sebi nisu prenosile značenje. Tajne poruke mogle su biti ugrožene samo ako bi i tablice i ključ i poruke dospjele neprijatelju u nekom kraćem periodu. Kerckhoffs je smatrao da takve poruke vrijede samo nekoliko sati. Kriptografski sustavi sami po sebi nisu nužno bili ugroženi jer su se njihove tablice mogle lako promijeniti.
Upotreba sigurne kriptografije trebala je zamijeniti težak problem čuvanja poruka tajnima jednostavnijim problemom čuvanja malenih ključeva sigurnima. Sustav koji zahtijeva dugotrajnu tajnost za nešto veliko i složeno kao što je cjelokupni dizajn očito ne može postići trajnu sigurnost. Međutim, ako je sustav siguran čak i kad neprijatelj zna sve osim ključa, tada je potrebno samo upravljati čuvanjem tajnosti ključeva.
Postoji velik broj načina na koje se mogu otkriti unutarnji detalji naširoko korištenog sustava. Najočitiji je podmićivanjem, prijetnjom i ucjenom osoblju ili kupcima sustava. Primjerice, u ratu će jedna strana vjerojatno zarobiti nešto opreme i ljudi s druge strane, a i svaka će strana također koristiti špijune za prikupljanje informacija.
Ako metoda uključuje softver, netko bi mogao presnimiti memoriju ili ga pokrenuti pod kontrolom programa za pronalaženje pogrešaka (eng. debuggera) kako bi razumio kriptografsku metodu. Ako se koristi hardver, netko bi mogao kupiti ili ukrasti dio hardvera i izraditi sve programe ili uređaje potrebne za njegovo testiranje.
Bilo koji sigurnosni sustav ovisi o čuvanju bar nekog od svojih dijelova tajnim. Kerckhoffsovo načelo ističe da bi dijelovi kriptografskog sustava koji se drže u tajnosti trebali biti oni koje je najjeftinije i najlakše zamijeniti ako se otkriju.
Kriptografski algoritam može se implementirati pomoću hardvera i softvera koji je rasprostranjen među korisnicima. Ako sigurnost ovisi o čuvanju njih tajnima, otkrivanje dovodi do velikih logističkih poteškoća u razvoju, testiranju i distribuciji novog sustava. S druge strane, ako čuvanje algoritma nije važno pa samo ključevi koji se koriste s algoritmom moraju biti tajni, otkrivanje ključeva traži daleko jeftiniji postupak stvaranja i distribucije novih ključeva.
U skladu s Kerckhoffsovim načelom, većina civilne kriptografije koristi javno poznate algoritme. Nasuprot tome, algoritmi koji se koriste za zaštitu povjerljivih državnih ili vojnih podataka često se drže u tajnosti. Tajnost je tu, međutim, u svrhu dodatne sigurnosti, pa se ne pretpostavlja da bi razotkrivanje algoritama dovelo do smanjenja sigurnosti.
Donekle je uobičajeno da tvrtke, a ponekad čak i tijela za standarde, kao u slučaju CSS zaštite na DVD-ovima, drže unutarnji rad sustava u tajnosti. Neki tvrde da ova sigurnost iz nejasnoća čini proizvod sigurnijim i manje osjetljivim na napad. Protuargument je da to možda može kratkoročno poboljšati sigurnost, ali dugoročno treba vjerovati samo sustavima koji su javni i detaljno analizirani.
- ↑ Andrej Dujella. Kriptografija. Inačica izvorne stranice arhivirana 11. ožujka 2016. Pristupljeno 19. studenoga 2020.
- ↑ Auguste Kerckhoffs. Siječanj 1883. La cryptographie militaire (PDF). Journal des sciences militaires (francuski). IX: 5–83
- ↑ Auguste Kerckhoffs. Veljača 1883. La cryptographie militaire (PDF). Journal des sciences militaires (francuski). IX: 161–191
- ↑ Claude Shannon. 4. listopada 1949. Communication Theory of Secrecy Systems. Bell System Technical Journal (engleski). 28 (4). Pristupljeno 20. lipnja 2014.
- ↑ Fabien Petitcolas. Electronic version and English translation of "La cryptographie militaire". Inačica izvorne stranice arhivirana 10. listopada 2015. Pristupljeno 18. studenoga 2020.
- ↑ John Savard. The Ideal Cipher. Pristupljeno 19. studenoga 2020.
- Andrej Dujella. Kriptografija. Inačica izvorne stranice arhivirana 11. ožujka 2016. Pristupljeno 19. studenoga 2020.
- John Savard. A Cryptographic Compendium. Inačica izvorne stranice arhivirana 9. studenoga 2020. Pristupljeno 19. studenoga 2020.