Nisam siguran jesmo li negde gore opisali razliku izmedju protocnih i blokovskih sifara?
Cilj kursa je overview, i da ljudi razumeju ono sto svakodnevno koriste. Da im potpuno razjasnimo zasto mora https, cemu, zapravo, sluzi taj PIN kada koriste karticu u bankomatu, zasto je njihova kartica bas takva, sta je to digitalni potpis (sertifikat), i tako te stvari koje se koriste svakodnevno.
Detalje implementacije algoritama, matematiku i ostalo, nisam planirao da objasnjavam, da se ne izgubimo u moru svega toga, a i da ne uplasim ljude
E, sada kada ja pauza za rucak gotova, i ja se najeo kao prase - mozemo da nastavimo
ASIMETRICNA KRIPTOGRAFIJA
Za razliku od simetricne kriptografije, u asimetricnoj kriptografiji jedan kljuc se koristi da se poruka sifruje, a drugi da se desifruje.
Dakle, algoritam je tako napravljen, da mu je potrebno jedno da zakljuca, a drugo da otkljuca.
Sad, nakon onoga sto znate na snovu dosada ispricanog, mora da postavljate pitanje "cemu sada to?" "zasto mi uopste treba da dalje komplikujemo, kada je simetricna kriptografija sasvim dovoljna da sakrije poruku?".
Pa, kriptografija nije samo prica o SAKRIVANJU.i o TAJNOSTI. Ako vam je stalo samo da sifrujete nesto, sto niko osim vas ne moze da desifruje, onda cete koristiti simetricnu kriptografiju. I to je sasvim dovoljno da svalerki posaljete skrivenu poruku.
Ali zamislite sledeci scenario: stigla vam je poruka od svalera/svalerke. Upotrebili ste kljuc, i desifrovali, i kaze vam "dodji tad i tad, tu i tu, cekam te.". I ti odes, a tamo, saceka te gomila placenih tabadzija, i olese te od batina!
I to je sve zato je je njen/njegov muz/zena posumnjao/la na prevaru, otkrilo/la kljuc, i napravio/la sacekusu!
Ono sto vi bilo jako zgodno, jeste, sledeci scenario: da vi uvek mozete da znate da je tu poruku poslala bas ta osoba od koje je ocekujete.
Cesto se desava da je cak mnogo vaznije od tajnosti same poruke, upravo saznanje od koga je ta poruka dosla. I to je jedan aspekt pri razmeni poruka -
autenticnost!
Drugi aspekt je
neporecivost. Tacnije, da ne mogu ja da poreknem da sam bas ja poslao tu poruku. Da ne bude puj-pike ne vazi, nego da je nas kripto-protokol tako kreiran da nam obezbedi i autenticnost i neporecivost.
@PerfectOne je na prethodnoj strani postavila jako dobro pitanje: "Da li je moguce da se poruka prilikom desifrovanja promeni, i na kraju dobijemo nesto sasvim drugo?".
Vrlo lako je moguce. Moze se to desiti slucajno, greskom u procesu obrade, moze se desiti i da je se neko docepao naseg sifrata i nesto promenio-dodao (to je jedan od napada, ali kasnije cemo o tome), i jos milion drugih scenarija koje mozete da zamislite.
I sada, dolazimo do treceg glavnog aspekta sigurne digitalne razmene poruka:
integritet poruke.
Dakle, identicno je kao i u obicnoj komunikaciji, tako i u elektronskoj: bilo da pirmate ili saljete poruku, vi zelite da ta poruka stigne do onoga kome je namenjena, da taj zna od koga je poruka stigla, i da ta poruka dodje nepromenjena.
Tu stupa na snagu asimetricna kriptografija.
Glavni elementi koji cine asimetricni kripto sistem su:
- Asimetricni algoritam - necemo detalje o tome, slicna je prica kao i kod simetricnog, javni su, matematicari lome glave oko njih, i na kraju se manje-vise zna koji su dobri i koji algoritmi su bezbedni za koriscenje.
- Par kljuceva (najcesce se taj par kljuceva kreira upravo tim asimetricnim algoritmom, i da korisnicima na upotrebu).
- I jos nesto trece
Upamtite ovo dobro:
PAR KLJUCEVA! Jer ti kljucevi, kao sto ste mozda pretpostavili, moraju biti u nekoj medjusobnoj vezi da bi mogli da otkljucaju i zakljucaju istu poruku. Moraju biti
upareni!
Tako dolazimo do pojmova koje ste, mozda, bar jednom culi, a to su PRIVATNI i JAVNI kljuc.
Asimetricnu kriptografiju cemo nauciti kroz primere. Ali pre nego krenemo dalje, moramo da se upoznamo sa jos jednim pojmom, sa tim "trecim" elementom asimetricne kriptografije, koji cini svu tu magiju mogucom:
JEDNOSMERNA HASH FUNKCIJA.
Jednosmerna HASH funkcija (u daljem tekstu cu je zvati samo HASH funkcija), je takodje jedan matematicki algoritam, koji ima sledece osobine:
- Kakav god da je ulaz u funkciju, izlaz iz funkcije je uvek unapred poznate, i uvek iste velicine. Na primer, propustite 2MB podataka kroz nju, i dobijete 512 bita kao izlaz. To je, zapravo, definicija HASH funkcije.
- Jednosmerna je: dakle radi samo u jednom smeru! U suprotnom smeru, racunanje je ili nemoguce, ili toliko tesko i skupo izvodljivo (treba mnogo vremena i resursa), da je vrlo neprakticno i neisplativo.
Dakle, ne mozete od izlaznog parametra nikakvom poznatom matematikom dobiti ulazni.
Danas postoji jako puno takvih funkcija, i svaka od njih se smatra manje ili vise pouzdanom. Jedna od pouzdanijih je SHA-512.
Mozete na ovom linku (
http://www.md5calc.com/) pogledati kako ona radi:
Prvo odaberite funkciju koju zelite (recimo SHA512, ili MD5), zatim u gornje polje ukucajte tekst koji zelite da propustite kroz funkciju i na kraju kliknite dugme "calculate" i dobicete ispod rezultat HASH funkcije. Obrnuti proces cemo smatrati nemogucim (kazem smatrati, jer kao i kod slucajnog-pseduoslucajnog niza, uvek je nesto moguce, ali cena gotovo uvek prevazilazi vrednost onoga sto kriptujemo).
Jeste li isprobali HASH funkciju?
Ima li sada nekih pitanja?