Šifrovanie verejným kľúčom alebo asymetrické šifrovanie je oblasť kryptografických systémov, ktoré používajú páry súvislých kľúčov. Každý kľúčový pár pozostáva z verejného kľúča a príslušného privátneho kľúča. Páry sú generované kryptografickým algoritmom založeným na matematických problémoch nazývaných jednosmerné funkcie. Zabezpečenie kryptografie verejného kľúča závisí na bezpečnej úschove privátneho kľúča, verejný kľúč môže byť verejne distribuovaný a zabezpečenie nebude narušené.

V šifrovacom systéme verejného kľúča vie ktokoľvek s verejným kľúčom zašifrovať správu, čím sa získa zašifrovaný text, ale iba tí ktorí majú zodpovedajúci privátny kľúč vedia odšifrovať zašifrovaný text aby získali pôvodnú správu.  

Napríklad, novinár vie publikovať verejný kľúč z páru šifrovacích kľúčov na webovej stránke aby zdroje mohli posielať tajné správy do novinárskych organizácií v zašifrovanej forme. Iba novinár, ktorý vlastní príslušný privátny kľúč vie odšifrovať šifry aby získal zdrojové správy – ak by útočník odchytil zašifrovaný email na ceste ku novinárovi, nevie dešifrovať zašifrovaný text. Avšak, šifrovanie verejným kľúčom neskryje metadáta - akým počítačom alebo z akej adresy sa posielali správy, kedy ich posielali alebo ako dlho to trvalo. Šifrovanie verejným kľúčom tiež samé o sebe nepovie príjemcovi čokoľvek o odosielateľovi správy – skrýva obsah v šifrovaných správach ktoré môžu byť dešifrované privátnym kľúčom.

V systéme digitálneho podpisu, odosielateľ vie použiť privátny kľúč spolu so správou aby vytvoril podpis. Ktokoľvek so zodpovedajúcim verejným kľúčom si vie overiť či sa podpis zhoduje so správou, ale falšovateľ, ktorý nepozná privátny kľúč, nemôže vygenerovať akýkoľvek pár správ/podpisov ktoré by prešli overením s verejným kľúčom.

Napríklad, vydavateľ softvéru môže vytvoriť pár podpisových kľúčov a zahrnúť verejný kľúč do softvéru inštalovaného na počítačoch. Neskôr, vydavateľ vie distribuovať aktualizáciu softwaru  podpísanú pomocou privátneho kľúča a akýkoľvek počítač prijímajúci aktualizáciu vie potvrdiť, že je pravá overením podpisu pomocou verejného kľúča. Dovtedy pokiaľ vydavateľ softvéru udrží svoj privátny kľúč v tajnosti, falšovateľ softvéru, ktorý by chcel distribuovať škodlivé aktualizácie do počítačov, by tieto počítače nepresvedčili, že akákoľvek škodlivá aktualizácia je pravá.

Algoritmy verejného kľúča sú základné bezpečnostné prvky v moderných kryptosystémoch, vrátene aplikácií a protokolov, ktoré poskytujú zabezpečenie dôvernosti, autentickosti a nepopierateľnosti elektronického komunikovania a dátového úložiska. Sú obsiahnuté v mnohých internetových štandardoch ako sú TLS, SSH, S/MIME a PGP. Niektoré algoritmy verejných kľúčov poskytujú distribúciu kľúčov a utajenia (napr., Diffieho-Hellmanova výmena kľúčov), niektoré poskytujú digitálny podpis (napr., Algoritmus digitálneho podpisu (DSA)) a niektoré poskytujú oboje (napr., RSA). V porovnaní so symetrickým šifrovaním je asymetrické šifrovanie pomalšie než dobré symetrické šifrovanie, a na mnoho účelov až príliš pomalé. Dnešné kryptosystémy (napr., TLS, Secure Shell) používajú obe - symetrické šifrovanie a asymetrické šifrovanie, často používajú asymetrické šifrovanie pre bezpečnú výmenu tajného kľúča, ktorý je potom použitý na symetrické šifrovanie.

Popis Pred prvou polovicou 70-tych rokov, všetky šifrovacie systémy využívali algoritmus symetrického kľúča, v ktorom ten istý kryptografický kľúč bol použitý spolu so šifrovacím algoritmom na strane odosielateľa aj prijímateľa a tieto údaje obaja museli držať v tajnosti. Z tohoto dôvodu musel byť kľúč v každom takomto symetrickom systéme vymenený medzi účastníkmi komunikácie nejakým bezpečným spôsobom pred samotným začatím šifrovania – napríklad, cez iný zabezpečený kanál (telefón, bezpečnostná schránka, osobné stretnutie...). Táto požiadavka nie je nikdy jednoduchá a s rastúcim počtom účastníkov sa stáva nezvládnuteľnou, alebo keď zabezpečené kanály nie sú k dispozícii, alebo keď sa kľúče často menia. Najmä, pokiaľ správy majú byť oddelené od ostatných používateľov, pre každý možný pár používateľov je potrebný samostatný kľúč.

V asymetrickej krypotgrafii môžu byť verejné kľúče otvorene šírené a iba zodpovedajúce privátne kľúče potrebujú byť držané v tajnosti.

Dve z najznámejších spôsobov použitia verejného kľúču v kryptografii sú:

Šifrovanie verejným kľúčom, v ktorom je správa šifrovaná s použitím verejného kľúča zamýšľaného príjemcu. So správnou voľbou a použitím šifrovacích algoritmov nemôžu byť správy v praxi dešifrované nikým, kto nevlastní zodpovedajúci privátny kľúč, teda nikým o kom sapredpokladá, že je vlastníkom toho kľúča a taktiež človeka spojeného s verejným kľúčom. Toto môže byť použité pre uistenie sa o dôvernosti správy. Digitálne podpisy, pri ktorých sú správy podpísané odosielateľovým privátnym kľúčom a vedia byť overené hocikým, kto má prístup ku odosielateľovmu verejnému kľúču. Toto overenie dokazuje to, že odosielateľ mal prístup ku privátnemu kľúču a preto je veľmi pravdepodobné, že je to osoba spojená s verejným kľúčom. Taktiež to dokazuje to, že podpis bol presne pripravený pre správu, pretože overenie zlyhá pre akúkoľvek inú správu, ktorá by sa dala vymyslieť bez použitia privátneho kľúča.

Jeden z dôležitých problémov je dôvera/dôkaz, či je konkrétny verejný kľúč pravý, t.j. že je správny a patrí danej osobe alebo subjektu a nebol sfalšovaný alebo vymenený nejakou (možno škodlivou) treťou stranou. Tu je niekoľko možných prístupov :

Infraštruktúra verejného kľúča (PKI), pri ktorej jedna alebo viac tretích strán – známych ako aj certifikačné autority – certifikujú vlastníctvo kľúčových párov. Na tomto je založený protokol TLS. To znamená že PKI systém (software, hardware a riadenie) je považovaný za dôveryhodný všetkými zapojenými.

„Sieť dôvery“ umožňuje decentralizovať overenie kľúčov a nespoliehať sa výlučne na certifikačné autority. Funguje to tak, že ak si napr. Alica overila platnosť Braňovho kľúča cez bezpečný kanál (napr. telefónom) a Cyril si podobne overil platnosť Alicinho kľúča, tak aj Cyril bude dôverovať kľúčom, ktoré overila Alica, teda aj Braňovmu kľúču. PGP používa tento prístup v súčinnosti s vyhľadávaním v DNS. DKIM systém, ktorý digitálne podpisuje e-maily taktiež používa tento prístup.

Aplikácie Najviac zrejmá aplikácia šifrovacieho systému verejného kľúča je šifrovanie komunikácie pre poskytnutie dôvernosti – správa ktorú odosielateľ zašifroval pomocou prijímateľovho verejného kľúča, môže byť odšifrovaná iba prijímateľovým privátnym kľúčom.

Ďalšia aplikácia v kryptografii verejného kľúča je digitálny podpis. Schéma digitálneho podpisu môže byť použitá pre potvrdenie totožnosti odosielateľa.

Systémy „nepopierateľnosti“ používajú digitálne podpisy na ubezpečenie, že nejaká strana v komunikácii nemôže úspešne spochybniť svoje autorstvo na dokumente alebo komunikácii.

Ďalšie aplikácie postavené na tomto základe zahŕňajú: digitálnu hotovosť, heslom overenú výmenu kľúča, služby časovej pečiatky a protokoly nepopierateľnosti.

Hybridné kryptosystémy Pretože algoritmy asymetrického kľúča sú skoro vždy oveľa viac výpočtovo náročnejšie než tie symetrické, je bežné použiť algoritmus výmeny verejného/privátneho asymetrického kľúča na zašifrovanie a výmenu symetrického kľúča, ktorý je potom použitý kryptografiou symetrického kľúča pre prenášanie dát pomocou dohodnutéhp symetrického kľúča pre šifrovací algoritmus verejného kľúča. PGP, SSH a SSL/TLS skupina schém používajú túto procedúru; volajú sa hybridné kryptosystémy. Počiatočná výmena kľúčov založená na asymetrickej kryptografii na zdieľanie serverom vygenerovaného symetrického kľúča zo servera ku klientovi má tú výhodu, že nevyžaduje aby sa symetrický kľúč vopred zdieľal manuálne, napr. vytlačený na papieri alebo cez disky prepravované kuriérom, pričom poskytuje väčšiu dátovú priepustnosť kryptografie symetrického kľúča oproti kryptografie asymetrického kľúča pre zvyšok zdieľaného pripojenia.

Zraniteľnosti Pre všetky systémy súvisiace s bezpečnosťou, je dôležité identifikovať potencionálne slabiny a zraniteľnosti. Okrem zlého výberu algoritmu asymetrického kľúča (je tu viacero, ktoré sú široko považované za uspokojivé) alebo pri použití príliš krátkeho kľúča, hlavným bezpečnostným rizikom je to, že privátny kľúč kľúčového páru sa stane známym. Všetka bezpečnosť správ, autentifikácia, atď. ..., by bola stratená.

Algoritmy Všetky schémy verejného kľúča sú teoreticky náchylné na hľadanie kľúča hrubou silou. Avšak, takýto útok je nepraktický pokiaľ množstvo výpočtov potrebných na úspech – Claude Shannon to pomenoval ako „pracovný faktor“ – je mimo možností všetkých potenciálnych útočníkov. U mnohých prípadov, pracovný faktor môže byť jednoducho zvýšený pomocou voľby dlhšieho kľúča. Ale ostatné algoritmy môžu mať oveľa nižšie pracovné faktory, takže odolnosť voči útoku hrubou silou (napr. z dlhších kľúčov) je nepodstatná. Niektoré špeciálne a špecifické algoritmy boli vyvíjané, aby pomohli pri napadnutí šifrovacích algoritmov verejného kľúča; obe RSA a EIGamal šifrovania majú známe  útoky, ktoré sú omnoho rýchlejšie než prístup hrubou silou. Žiadny z nich však nie je dostatočne vylepšený aby boli skutočne praktické.

Závažnejšie problémy sa našli na dovtedy sľubných algoritmoch asymetrického kľúča. Algoritmus „knapsack packing“ prestal poskytovať zabezpečenie správ po tom, čo boli vyvinuté nové útoky. Ako so všetkými kryptografickými funkciami, implementácie verejného kľúča môžu byť zraniteľné voči útokom vedľajšieho kanálu, ktoré zneužíva informačné úniky aby zjednodušili hľadanie tajného kľúča. Tie sú často nezávislé od použitého algoritmu. Prebieha výskum zameraný na objavenie a aj ochranu pred novými útokmi.

Podvrhnutie verejných kľúčov Ďalšia potenciálna bezpečnostná zraniteľnosť je používanie asymetrických kľúčov pri ktorých je možnosť man-in-the-middle útoku (MITM), je to zachytávanie komunikácie pri ktorej sa vymieňajú verejné kľúče treťou stranou („man-in-the-middle“) a potom upravovanie tak, aby namiesto toho príjemca dostal iné verejné kľúče. Zašifrované správy a odpovede musí útočník vo všetkých prípadoch – zachytiť, dešifrovať a znovu zašifrovať aby nevzbudil podozrenie, pričom používa správny verejný kľúč pre rôzne komunikačné segmenty.

Komunikácia nie je bezpečná tam, kde sa dáta prenášajú spôsobom, ktorý by umožňoval odpočúvanie. Komunikácia je obzvlášť nebezpečná keď odpočúvaniam sa nedá zabrániť alebo monitorovať odosielateľom.    

Útok MITM môže byť ťažko realizovateľný kvôli moderným bezpečnostným protokolom. Avšak, úloha sa stane jednoduchšia keď odosielateľ využíva médiá, ktoré neposkytujú vysokú bezpečnosť, napr.: verejné siete, internet alebo bezdrôtovú komunikáciu. Pri týchto prípadoch útočník dokáže kompromitovať komunikačnú infraštruktúru skôr než samotné dáta. Hypoteticky, ľstivý zamestnanec poskytovateľa internetových služieb (ISP) môže považovať tento útok za relatívne jednoduchý. Zachytenie verejného kľúča by vyžadovalo iba vyhľadanie kľúča pri jeho odoslaní cez komunikačný hardware poskytovateľa internetových služieb; v správne realizovaných schémach asymetrického kľúča to nie je významné riziko.