hmm to je dost zlozite cele to vysvetlovat, tak iba v skratke:
asymetricka sifra = data zasifrujes jednym klucom a odsifrujes druhym => vznika unikatna dvojica kluc na sifrovanie a kluc na desifrovanie
ty si tuto dvojicu vygenerujes, kluc na sifrovanie = tajny/sukromny/privatny kluc mas len ty, druhy kluc - na desifrovanie zverejnis - verejny/public kluc
takze ty ked nieco zasifrujes svojim privatnym klucom tak odsifrovat to pojde iba tvojim verejnym klucom - vdaka tomu budu ostatni vediet, ze ked im nieco posles a skutocne sa im do podari odsifrovat tvojim klucom, ze si to poslal urcite ty, lebo iba ty mas svoj sukromny kluc
problem:
ako ostatni overia, ze verejny kluc ktory si poskytol je skutocne tvoj? co ak ho niekto podstrcil? - mohol by sa za teba vydavat (krades identity)
riesenie:
CA (certifikacna autorita) ti udeli certifikat, ze tvoj verejny kluc je naozaj tvoj = vytvori vazbu medzi tvojim klucom a informaciami o tebe a tuto vazbu zasifruje svojim sukromnym klucom, pricom je nutne predpokladat, ze verejny kluc CA je trusted.
ako teda funguje e-podpis:
vytvoris nejake data (program, email...) a tieto data chces niekomu poslat a chces aby druha straa vedela skontrolovat, ze je to naozaj od teba. Zoberies svoje data, spravis z nich hash (pozor na vyber hash funkcie, MD5 sa uz nepovazuje za bezpecnu...) alebo hash nemusis robit, ale ak je dat vela tak je to skoro nutnost. Takze potom data alebo radsej iba hash zasifrujes svojim privatnym klucom. Data posles bud zasifrovane, alebo nezasifrovane s pripojenym zasifrovanym hashom. Prijemca odsifruje (data alebo hash) tvojim verejnym klucom ktory je overeny u nejakej CA = prijemca ma 99% istotu ze ten verejny kluc si vytvoril ty. Po odsifrovani ma prijemca data alebo skor ten hash - potom musi este vytvorit hash dat a porovnat tie 2 hashe - ak doslo cestou k zmene dat, hashe sa nebudu rovnat, ak su data v poriadku, hashe sa rovnaju a druha strana vie, ze skoro urcite dostala data od teba.
Ak chces certifikat aby si mohol pouzivat elektronicky podpis tak mas na vyber vela produktov, od certifikatov zadarmo ktore samozrejme nemusia byt kazdym tolerovane az po certifikat ktory ta bude stat tisicky korun rocne... Ak ho budes kupovat tak urcite radsej drahsi u nejakej kvalitnej CA ktora je integrovana v browseroch (napr Thawte).
Samozrejme vlastny si nemozes urobit, jedine ze by si mal vlastnu CA
Mozes si ale vytvorit dvojicu klucov, jeden si niekde tajne strazit a druhy dat napriklad na tvoju web stranku - ak budes chciet potom niekomu poslat nieco a bude zalezat na integrite pripadne tajnosti tak to staci, ak budete ale chciet mat zaruceny povod dat tak musis verejny kluc druhej strane dodat nejako kvalitnejsie (napriklad osobne, fyzickou postou na CD) a podobne
este snad napisem co je to hash funkcia:
je to funkcia f(x) = y (x su povodne data, y je takzvany hash), plati ze y ma vzdy rovnaku dlzku, obycajne to byva 128 alebo 192 bitov pripadne viac - takze zoberies data lubovolne velke, aplikujes funkciu a dostanes 128 bitovy hash, ak tie data zmenis, aplikujes funkciu, dostanes 128 bitovy hash rozdielny od toho prveho. A samozrejme ze hash funkcia je jednosmerna - z hashu nedokazes ziskat data. Idealne by hash funkcia mala byt bezkolizna - nikdy sa nestane ze f(x1) == f(x2) pre x1 != x2 ale taka neexistuje. Myslim, ze hash funkcie 128 bitove sa uz povazuju za nevhodne koli slabej bezpecnosti a momentalne sa za bezpecnu este ako tak povazuje SHA1, ale bude nahradena SHA2 ktora ale myslim este nebola vybrana, ked tak ma niekto opravi...