SSL salaus, joka on nykyään laajalti käytössä pohjautuu asymmetriseen private/public avainpariin. Avainparit generoidaan yhdessä ja niillä on matemaattinen relaatio sillä tavalla, että data joka on kryptattu käyttäen julkista avainta voidaan purkaa vain käyttäen saman avainparin privaattia avainta. Sitä ei voida purkaa toisella julkisella avaimella, edes lähettävä tietokone ei voi purkaa itse kryptaamaansa viestiä.
Julkinen avain on helppoa generoida privaatti avaimesta, mutta julkisesta avaimesta ei saa toisinpäin laskettua privaatti avainta. Se veisi tyyliin miljoonia vuosia nykyisillä tietokoneilla. En ole matemaatikko enkä tiedä tarkemmin miksei, mutta kaavojen turvallisuus perustuu isoihin alkulukuihin. Oikein tarkoissa sovelluksissa etsitään ja valitaan kryptografiaan parhaiten sopivia alkulukuja joillain kriteereillä.
Tehokkaat kvanttikoneet voi joskus hamaassa tulevaisuudessa kuitenkin murtaa tuon avainparien yksisuuntaisuuden.
SHA hashiin tuo liittyyn taas siten että yleensä käytetään ns. signed SHA:ta, jossa SHA hash on signattu käyttäen privaatti avainta, ja silloin sen oikeellisuuden voi tarkastaa luotettavasti käyttäen saman avainparin julkista avainta. Tämä liitty SSL kryptaukseen sillä tavalla että jokaisella SSL suojausta käyttävällä palveluntarjoalla on SSL sertifikaatti josta käy ilmi kuka palvelun tarjoaa, ja sertifikaatit on signattu varmennettuja sertifikaatteja myöntävien instanssien privaatti avaimella. Näiden julkiset avaimet on vapaasti saatavilla, nettiselain hoitaa homman automaattisesti ja näyttää avaimenmerkkiä osoitekentän vieressä.
Jos joku pystyisi väärentämään näitä, voisi tehdä huijauksen jossa danske bankin verkkopankki ei olisikaan danske bankin vaan venäläisen hakkeriryhmän valesivusto, eikä käyttäjällä olisi oikein mitään tapaa tietää tätä.