Kratak kurs kriptografije - 1. deo

Sto se tice simetricnog kljuca, on moze biti razmenjen koriscenjem asimetricne kriptografije, a moze se koristiti npr. i Diffie-Hellman protokol za razmenu kljuceva?

Mislim da razmenu simetricnih kljuceva nismo pomenuli nigde, pa bismo mogli da napomenemo kako ih razmeniti koriscenjem asimetricne kriptografije. Mislim, na osnovu ovoga gore je vec sasvim ocigledno kako bi islo.
 
Vidim da jos uvek nije razjasnjena prica oko kljuceva u asimetricnoj kriptografiji, pa hajde opet da ponovimo:

Svaki ucesnik ima svoj PAR kljuceva: privatni kljuc i javni kljuc.
Privatni se cuva samo za sebe, a javni se podeli svima.
Privatni kljuc se nikada nikome ne daje. To je aksiom. To je amin. Deset Bozjih zapovesti u jednoj: privatni kljuc se nikada nikome ne daje!!!
Dakle, samo Fred ima svoj privatni kljuc, a svi ostali imaju njegov javni kljuc.

Jos jedna osobina vezana za kljuceve: PAR kljuceva je tako kreiran da cine neku vrstu celine. I to u smislu da ono sto se zakljuca Fredovim kljucem (privatnim, ili javnim - nebitno) moze da se otkljuca takodje samo sa Fredovim kljucem, i to tako da:
Ako je zakljucano privatnim - otkljucava se javnim.
Ako je zakljucano javnim - otkljucava se privatnim.

Jesmo li ovo sada potpuno razjasnili? :)
 
Vidim da jos uvek nije razjasnjena prica oko kljuceva u asimetricnoj kriptografiji, pa hajde opet da ponovimo:

Svaki ucesnik ima svoj PAR kljuceva: privatni kljuc i javni kljuc.
Privatni se cuva samo za sebe, a javni se podeli svima.
Privatni kljuc se nikada nikome ne daje. To je aksiom. To je amin. Deset Bozjih zapovesti u jednoj: privatni kljuc se nikada nikome ne daje!!!
Dakle, samo Fred ima svoj privatni kljuc, a svi ostali imaju njegov javni kljuc.

Jos jedna osobina vezana za kljuceve: PAR kljuceva je tako kreiran da cine neku vrstu celine. I to u smislu da ono sto se zakljuca Fredovim kljucem (privatnim, ili javnim - nebitno) moze da se otkljuca takodje samo sa Fredovim kljucem, i to tako da:
Ako je zakljucano privatnim - otkljucava se javnim.
Ako je zakljucano javnim - otkljucava se privatnim.


Jesmo li ovo sada potpuno razjasnili? :)

E ovo boldovano sam upravo hteo da potvrdim :), dakle ako se recimo poruka zakljuca Fredovim javnim kljucem ne moze tim istim javnim kljucem i da se otkljuca nego je potreban Fredov privatni kljuc...
Ako je ovako mislim da je sada potpuno jasno :)
 
Ako je zakljucano privatnim - otkljucava se javnim.
Ako je zakljucano javnim - otkljucava se privatnim.

Jesmo li ovo sada potpuno razjasnili? :)

aha, to znaci da sam ja Beti poslala na pogresan dejt, jer sam permutovala Betine kljuceve :lol:
znaci,prvo ce Fred za enkriptovanje da upotrebi svoj privatni kljuc, pa Betin javni, a Beti ce za dekriptovanje da upotrebi prvo svoj privatni kljuc, pa onda Fredov javni
kao sto si gore i lepo napisao, a ja previdela, al' sad mi se konacno razjasnila logika tajnosti
 
aha, to znaci da sam ja Beti poslala na pogresan dejt, jer sam permutovala Betine kljuceve :lol:
znaci,prvo ce Fred za enkriptovanje da upotrebi svoj privatni kljuc, pa Betin javni, a Beti ce za dekriptovanje da upotrebi prvo svoj privatni kljuc, pa onda Fredov javni
kao sto si gore i lepo napisao, a ja previdela, al' sad mi se konacno razjasnila logika tajnosti

Bas tako :)
 
Pre nego krenemo dalje, na nesto jos konkretnije, da jos jednom obnovimo sta je jednosmerna HASH funkcija:
Matematicka funkcija koja ima sledece osobine:
- ulazni parametar je bilo sta, a izlazni je uvek iste, unapred utvrdjene duzine, i taj izlaz ss naziva HASH vrednost.
- HASH funkcija nema inverznu funkciju: to znaci da je nemoguce (u neko dogledno vreme) izracunati sta je bilo ulaz u funkciju, kada znamo izlaznu vrednost (HASH vrednost funkcije).
- Mala promena ulazne vrednosti rezultira velikom promenom HASH vrednosti.

Ako je ovo potpuno jasno, i ako je prica o asimetricnim kljucevima jasna, idemo na sledecu jako bitnu i zanimljivu stvar:
Digitalni potpis!
Moze? :)
 
Digitalni potpis, kao i potpis u stvarnom zivotu, sluzi da obezbedi sledece:
1. Autenticnost (da znamo ko je potpisao)
2. Konzistentnost (da znamo da se nije dokument promenio posle popisivanja)
3. Neporecivost (da ne moze taj koji je potpisao da kaze kako nije potpisao).

Kako se ovo sve realizuje u digitalnom svetu?
Pomocu asimetricne kriptografije i HASH funkcije.
Najbolje da vidimo kroz jedan primer.
Scenario je sledeci: Irma je uhvatila Freda u prevari, i oprostice mu ako Fred napise pismo Beti da je kraj i da nece vise da se vidjaju. Da bi Beti poverovala da je to zaista Fred napisao, Fred ce morati da digitalno potpise svoje pismo. I uradice to na sledeci nacin:

1. Fred napise pismo.
2. Fred uzima pismo i propusta ga kroz HASH funkciju i sada pored originalnog pisma, Fred ima i HASH vrednost.
3. Sada, Fred uzima oboje, i salje oboje Irmi: i originalno pismo i HASH vrednost.
4. Irma prima paket, i uzima originalno pismo, propusti ga kroz istu HASH funkciju, i sada uporedjuje: da li je HASH koji je dobila od Freda isti kao onaj koji je sama izracunala. Ako jeste - super, ako nije, onda nesto nije u redu.

NAPOMENA: ovo nije kompletan primer, vec samo skracen, da vidite koja je primena HASH funkcije.
Ako je ovo jasno - idemo dalje? :)
 
auu, ovi kameni ljudi k'o iz XXII veka, ja zaostajem celi vek iza njih, skroz sam se pogubila :lol:


Pre nego krenemo dalje, na nesto jos konkretnije, da jos jednom obnovimo sta je jednosmerna HASH funkcija:
Matematicka funkcija koja ima sledece osobine:
- ulazni parametar je bilo sta, a izlazni je uvek iste, unapred utvrdjene duzine, i taj izlaz ss naziva HASH vrednost.
- HASH funkcija nema inverznu funkciju: to znaci da je nemoguce (u neko dogledno vreme) izracunati sta je bilo ulaz u funkciju, kada znamo izlaznu vrednost (HASH vrednost funkcije).
- Mala promena ulazne vrednosti rezultira velikom promenom HASH vrednosti.


Sto se tice HASH funkcija, njihova primena je visestruka, a glavna se svodi na to da se potvrdi da nije doslo do izmene poruke, u medjuvremenu :)


kad spojim sve ovo, i ja teoretski sve razumem, ali mii prakticno ovo HASHovanje nista nije jasno
idem malo na dopunsku kod cika Gugla, da trazim jos neke primere, da ne ponavljam razred :cool:
 
Poslednja izmena:
joj, kad bih znala sta mi nije jasno, znala bih i da te konkretno pitam :rumenko:
ovo HASHovanje mi kompletno nista nije jasno - kako se to radi
znam da si rekao da necemo te matematicke dimenzije, ali meni treba bas neki konkretan primer kako se HASHuje
ovako samo mogu aksiomatski da usvojim teoriju i toliko, ali to mi nije dovoljno da saberem 2 i 2, a da nije 5
 
Digitalni potpis, kao i potpis u stvarnom zivotu, sluzi da obezbedi sledece:
1. Autenticnost (da znamo ko je potpisao)
2. Konzistentnost (da znamo da se nije dokument promenio posle popisivanja)
3. Neporecivost (da ne moze taj koji je potpisao da kaze kako nije potpisao).

Kako se ovo sve realizuje u digitalnom svetu?
Pomocu asimetricne kriptografije i HASH funkcije.
Najbolje da vidimo kroz jedan primer.
Scenario je sledeci: Irma je uhvatila Freda u prevari, i oprostice mu ako Fred napise pismo Beti da je kraj i da nece vise da se vidjaju. Da bi Beti poverovala da je to zaista Fred napisao, Fred ce morati da digitalno potpise svoje pismo. I uradice to na sledeci nacin:

1. Fred napise pismo.
2. Fred uzima pismo i propusta ga kroz HASH funkciju i sada pored originalnog pisma, Fred ima i HASH vrednost.
3. Sada, Fred uzima oboje, i salje oboje Irmi: i originalno pismo i HASH vrednost.
4. Irma prima paket, i uzima originalno pismo, propusti ga kroz istu HASH funkciju, i sada uporedjuje: da li je HASH koji je dobila od Freda isti kao onaj koji je sama izracunala. Ako jeste - super, ako nije, onda nesto nije u redu.

NAPOMENA: ovo nije kompletan primer, vec samo skracen, da vidite koja je primena HASH funkcije.
Ako je ovo jasno - idemo dalje? :)

ok...
 
@Lunja: HASH funkciju mozes shvatiti kao neku vrstu zaokruzivanja. Recimo, nasa funkcija je takva da ima uvek 20 karakteta kao izlaz. Ako je izlaz duzi od 20 karaktera, zaokruzimo na prvih 20. Ako je kraci, dodajemo karaktere (ne nasumicno, vec po nekoj logici) i eto nam nase HASH vrednosti :)
Sad, zamisli da je sve to mnog matematicki zamrsenije, tako da se ispostuju ona tri pravila koja mora da ispostuje jedna HASH funkcija. I to je to :)

A evo ti jedan primer kvazi-jednosmerne funkcije: y=x^2 ( x na kvadrat.
Vrlo lako je izracunati koliko je Y za neko zadato X.
Ali, koliko je lako (bez digitrona - rukom, na papiru) izracunati inverznu funkciju (X = koren iz Y)? :)
Nije tako jednostavno.

E, te nase jednosmerne HASH funkcije su upravo takve: sadrze u sebi takvu matematiku da je rezultat uvek iste duzine, a obrnuto je gotovo nemoguce da se izracuna (moguce je, ali.bi zahtevalo da 1000 najjacih racunara proracunava narednih 10.000 godina) :)
Eto, to je jednosmerna HASH funkcija.
Ja ne razmisljam kako ona radi - ne intersuje me - znam STA ona radi, i to mi je vise nego dovoljno :)

Neka matematicari lupaju glavu sa tim, to je njihov posao :) Kao sto me ne zanima kako brufen deluje, ali znam kako da ga koristim da me prodje glavobolja :) :)
 
A sada, evo kako izgleda kompletan primer digitalnog potpisivanja, i verifikacije tog digitalnog potpisa:

800px-Digital_Signature_diagram-768x576.png


Pogledajte sami ovu fotku, i pokusajte da mi na primeru razmene poruke izmedju Freda i Beti, objasnite ovo. Da vas vidim malo? :)
 
joj, kad bih znala sta mi nije jasno, znala bih i da te konkretno pitam :rumenko:
ovo HASHovanje mi kompletno nista nije jasno - kako se to radi
znam da si rekao da necemo te matematicke dimenzije, ali meni treba bas neki konkretan primer kako se HASHuje
ovako samo mogu aksiomatski da usvojim teoriju i toliko, ali to mi nije dovoljno da saberem 2 i 2, a da nije 5

Ukratko opisano, imas neku funkciju H, koja kao argument prima bilo koji podatak, bilo koje velicine, a kao rezultat uvek vraca alfanumericke karaktere konstantne duzine, bez obzira na velicinu podatka. Za jedan isti podatak, funkcija H ce stalno vracati iste alfanumericke karaktere. Znaci imamo H(podatak) = (neki alfanumericki karakteri, konstantan broj karaktera).

Imas gomilu hash funkcija koje na razlicite nacine na osnovu ulaza racunaju izlaz. Npr hash funkcija md5 za koju si mozda cula nekad, za bilo koju velicinu podatka, stalno vraca izlaz od 128 bitova. Ako te bas zanima kako to radi, mozes pogledati ovde. Ukratko, postoje neki registri, nad kojima se primenjuju razne logicke operacije nad bitovima u nekoliko iteracija, i to sto se dobija je hash vrednost.

I pogledaj lepo svojstvo hash funkcije (kao primer uzmimo md5):

Kod:
md5("Ovo je neka poruka") = 695ac915b66e540ceac696ec0484c2c5
md5("Ovo je nekb poruka") = ad1fa2e2412e93f8073839ff0b72cd3e

Promena u samo jednom karakteru originalne poruke je prouzrokovala da se hash vrednost skroz promeni, da ne bude cak ni slicna prethodnoj hash vrednosti.

I takodje, ako znas hash vrednost, ne mozes odrediti koja je bila originalna poruka. :)
 
Poslednja izmena:
Da probam ovako...
1. Fred provlaci poruku kroz Hash f-ju i dobija tu Hash vrednost koju zatim enkriptuje svojim privatnim kljucem i dobija digitalni potpis.
2. Fred enkriptuje opet poruku svojim privatnim kljucem i dobija enkriptovanu poruku kojoj pridruzuje digitalni potpis koji je prethodnim korakom dobio.
3. Tako dobijenu enkriptovanu poruku i digitalni potpis Fred enkriptuje Betinim javnim kljucem i salje to Beti.
4. Beti prima enkriptovanu poruku koju najpre otkljucava svojim privatnim kljucem i dobija enkriptovanu poruku i digitalni potpis.
5. Beti otkljucava enkriptovanu poruku Fredovim javnim kljucem i dobija inicijalnu Fredovu poruku.
6. Beti otkljucava digitalni potpis Fredovim javnim kljucem i dobija Hash vrednost.
7. Beti provlaci inicijalnu fredovu poruku kroz Hash f-ju i opet dobija Hash vrednost.
8. Beti uporedjuje 2 Hash vrednosti, ako su jednake potpis je validan.
 
hvala Frederice, hvala Miki, sad mi ova hash funkcija jasnija :pivce:
evo sta sam ja ukapirala i kako sam ja odradila domaci zadatak
malo se razlikuje od Redovog, ali tako sam ja ovo razumela:

Fred svoju poruku za Beti propusta kroz hash funkciju i tako dobije hash vrednost
onda, tu hash vrednost enkriptuje svojim privatnim kljucem i tako daje svoj digitalni potpis
onda, poruku za Beti i tu hash vrednost enkriptuje Betinim javnim kljucem i posalje Beti

Beti, kad to dobije od Freda, uzima svoj privatni kljuc i dekriptuje to pa dobija neku poruku i Fredov digitalni potpis
onda poruku provuce kroz hash funkciju da dobije hash vrednost
onda Fredov digitalni potpis dekriptuje Fredovim javnim kljucem, i dobija neku hash vrednost
ako su obe hash vrednosti iste, onda ide na sastanak u 5 do 5 sa Fredom :lol:

ako sam prolupala, nisam ja kriva, kriva je sema :mrgreen:
 
Poslednja izmena:
@Redmond: odlicno!

To je to. S tim da si ti ovde dodao jos jedan dodatan korak koji bi pokrio i tajnost poruke, sto nije bio zadatak, zadatak je bio samo da demonstriramo upotrebu asimetricne kriptografije i hash funkcije da realizujemo digitalni potpis.
Ali odlicno je sto si ubacio jos i zastitu tajnosti - znaci da si shvatio sustinu cele price :)

Ovo sto smo opisali u ovom primeru zove se genralni protokol digitalnog potpisa.
U praksi, u svakodnevnom zivotu i bukvalno svakodnevnoj upotrebi, on se realizuje malo drugacijim mehanizmom, ali ovo je generalni princip i generalna logika koja stoji iza toga.
Je li svima jasno kako je ovim protokolom obezbedjena autenticnost, konzistentnost poruke, i neporecivost potpisa?
Zamislite sada da objasnjavate nekom ko ne zna, pa pokisajte da objasnite sada kako su ova tri principa ispostovana?

P.S.
Bravo, Lunjo, to je to :)
 
Poslednja izmena:
hvala Frederice, hvala Miki, sad mi ova hash funkcija jasnija :pivce:
evo sta sam ja ukapirala i kako sam ja odradila domaci zadatak
malo se razlikuje od Redovog, ali tako sam ja ovo razumela:

Fred svoju poruku za Beti propusta kroz hash funkciju i tako dobije hash vrednost
onda, tu hash vrednost enkriptuje svojim privatnim kljucem i tako daje svoj digitalni potpis
onda, poruku za Beti i tu hash vrednost enkriptuje Betinim javnim kljucem i posalje Beti

Beti, kad to dobije od Freda, uzima svoj privatni kljuc i dekriptuje to pa dobija neku poruku i Fredov digitalni potpis
onda poruku provuce kroz hash funkciju da dobije hash vrednost
onda Fredov digitalni potpis dekriptuje Fredovim javnim kljucem, i dobija neku hash vrednost
ako su obe hash vrednosti iste, onda ide na sastanak u 5 do 5 sa Fredom :lol:

ako sam prolupala, nisam ja kriva, kriva je sema :mrgreen:

verovatno je ovako, ja sam ekriptovao i obicnu poruku prvo privatnim pa javnim kljucem a verovatno tako ne treba nego samo javnim...
 
I...cekam odgovor? :)
Da mi neko objasni da li su, i kako su to, ispostovana tri zahteva digitalnog potpisa?
1. Cime Fred garantuje autenticnost?
2. Sta nam garantuje da poruka nije u medjuvremenu promenjena?
3. Kako Beti moze kasnije da ucenjuje Freda, a da ovaj ne moze da porekne da je potpisao poruku? :)
 
I...cekam odgovor? :)
Da mi neko objasni da li su, i kako su to, ispostovana tri zahteva digitalnog potpisa?
1. Cime Fred garantuje autenticnost?
2. Sta nam garantuje da poruka nije u medjuvremenu promenjena?
3. Kako Beti moze kasnije da ucenjuje Freda, a da ovaj ne moze da porekne da je potpisao poruku? :)

1. autenticnost garantuje time sto je potpis enkriptovan njegovim privatnim kljucem tako da je mogao da dodje samo od njega
2. konzistentnost, tj nepromenljivost poruke je garantovana ako su obe hash vrednosti jednake
3. neporecivost se valjda garantuje isto kao pod 1. privatnim kljucem, nisam siguran ili kombinacija 1. i 2. :think:
 

Back
Top