Julkisen avaimen salaus

Julkisen avaimen salaus on epäsymmetristä salausta, jossa käytettyjä avaimia ei laskutoimitusten vaativuuden takia käytännössä voi päätellä toisistaan. Niinpä vain toinen avaimista tarvitsee pitää yksityisenä, kun taas toinen voidaan julkaista. Julkisen avaimen salausalgoritmit — esimerkiksi RSA ja ECC — ovat laajalti käytetty epäsymmetrisen salauksen muoto, minkä seurauksena "epäsymmetristä" ja "julkisen avaimen salausta" käytetään pitkälti synonyymien tavoin. Julkisen avaimen salaukseen sopivien algoritmien keksiminen mullisti kryptografian 1970-luvun puolivälissä.
Monet Internetissä laajalti käytetyt salausmenetelmät, kuten TLS ja PGP perustuvat julkisen avaimen salaukseen.

Epäsymmetrinen salaus

Epäsymmetrinen salaus on salausmenetelmä, jossa salaukseen käytetään eri avainta kuin salauksen purkamiseen. Salauksen purkavalla avaimella ei siis voi salata, eikä salausavain käy salauksen purkamiseen toisin kuin symmetrisessä salauksessa, jossa salaukseen ja sen purkamiseen käytetään samaa avainta.

Avainlukujen valinta julkisen avaimen salauksessa

Julkisen avaimen salausalgoritmeissa epäsymmetrinen lukupari valitaan vaikeasti ratkaistavan matemaattisen yhteyden (esimerkiksi tekijöihinjaon, kuten RSA:ssa tai diskreettien logaritmien, kuten ECC:ssä) perusteella. Yhteyden ei tarvitse olla periaatteellisesti ratkaisematon; riittää, että sen selvittämiseen kuluisi käytännössä enemmän aikaa kuin viestin salaisuuden tulee säilyä.
Kun lukupari on valittu, toinen luvuista voidaan julkaista, eikä se vaaranna salassa pidettävää lukua.

Avainten käyttö

Mikäli salausavain on julkinen, sillä voidaan salata avaimen omistajalle tarkoitettuja viestejä. Mikäli taas salauksen purkava avain on julkinen, sillä voidaan varmistaa, että viestin lähettäjä pitää salausavainta hallussaan. Jälkimmäisessä tapauksessa riittää, että lähettäjä salaa viestistä pelkän tiivisteen. Viestin lähettäjän todentamista kutsutaan digitaaliseksi allekirjoitukseksi.
Toisin kuin symmetrisen salauksen avulla viestittäessä, julkisen avaimen salaus ei siis edellytä, että salainen avain jaetaan luottamuksellisesti viestijöiden kesken ennen varsinaista viestintää. Symmetrisen salauksen käyttö vaatii kuitenkin useimmiten huomattavasti vähemmän laskentatehoa kuin julkisen avaimen salaus. Siksi salaus tehdään yleensä hybridijärjestelmällä, jossa vain symmetrisen salauksen salainen avain salataan julkisen avaimen salauksella, ja itse viestintä tehdään symmetrisellä salauksella alussa jaettua avainta käyttäen. Näin toimivat esimerkiksi jo mainitut PGP ja TLS.

Julkisen avaimen luotettavuus

Vaikka julkisen avaimen salaus ei edellytä luotettua yhteyttä salaisen avaimen välittämiseen, ongelmana on julkisen avaimen luotettavuus: avaimen käyttäjän luottamus nojaa siihen, että avain todella kuuluu viestintäkumppanille, ja ettei avaimeen ole kajottu.
Täydellistä keinoa julkisen avaimen luotettavuuden varmistamiseen ei tunneta. Ongelmaa lievitetään useimmiten käyttämällä julkisten avainten hallintajärjestelmää (engl. Public Key Infrastructure, lyh. PKI), jossa jokin tunnettu kolmas osapuoli (varmentaja) vastaa hallussaan olevien julkisten avainten ja niiden tunnistetietojen (varmenne) autenttisuudesta omalla digitaalisella allekirjoituksellaan. Varmenteet ovat tyypillisesti voimassa useita vuosia kerrallaan, ja kaikki varmennettuihin julkisiin avaimiin liittyvät salaiset avaimet on pidettävä salassa koko sen ajan.
PGP:ssä on varmennejärjestelmän lisäksi käytössä ns. luottamusverkosto (engl. web of trust), jossa keskitetyn varmentajan sijaan käyttäjä valitsee itse luotettavina pitämänsä avaimenhaltijat, joiden avulla varmistaa muiden julkisten avainten autenttisuus.

Numeronmurskaus

Kaikki julkisen avaimen salausalgoritmit ovat määritelmällisesti alttiita raakaan laskentatehoon nojaaville salauksenmurtomenetelmille, joissa kokeillaan kaikkia mahdollisia avaimia järjestelmällisesti. Salausalgoritmista ja avaimien koosta riippuen murtamisen edellyttämä laskenta-aika voi tehdä tämän lähestymistavan tyhjäksi. Laskentatehon halpeneminen kuitenkin lyhentää siitä riippuvien avainten hyödyllistä elinikää.
Jos kokeiltavien avaimien joukkoa voidaan kohdentaa sopivalla hyökkäysmenetelmällä, tarvitaan paljon vähemmän laskenta-aikaa. Joillekin julkisen avaimen salausalgoritmeille (esimerkiksi RSA:lle ja ElGamalille) on jo olemassa tunnettuja hyökkäystapoja, jotka ovat paljon järjestelmällistä kokeilua nopeampia. Matematiikassa tapahtuvien keksintöjen myötä laskenta-ajat voivat entisestään lyhentyä. Useita aiemmin lupaavina pidettyjä epäsymmetrisiä algoritmeja on osoitettu epäluotettaviksi uusien hyökkäystapojen keksimisen myötä.
Hyökkäys voi myös perustua salauksessa käytettävän laitteiston mittauksella saatavaan tietoon (salauksen vaatimaan laskenta-aikaan, virrankulutukseen, muutoksiin sähkömagneettisessa kentässä).

Laskentatehovaatimukset

Toistaiseksi tunnetut julkisen avaimen salausalgoritmit edellyttävät paljon laskentatehoa verrattuna useimpiin symmetrisiin salausalgoritmeihin. Ero johtuu julkisen avaimen salauksessa tyypillisesti käytetyistä isokokoisista avaimista.

Vaarantuneen tai vanhentuneen avaimen julkisuuden hinta

Julkinen avain on luonteensa takia usein laajalti jaeltu ja käytetty. Kun avaimen voimassaolo halutaan jostain syystä lakkauttaa, kaikkien avaimen käyttäjien tavoittaminen voi olla vaikeaa. Toisaalta taas varmennejärjestelmä, joka reagoi lakkautuksiin tehokkaasti, voi myös saada aikaan paljon vahinkoa siinä tapauksessa, että (esimerkiksi inhimillisen tai ohjelmallisen virheen takia) sillä perutaan avain, jota ei ollut tarkoitus perua.
Varmennehierarkian rakenteen kääntöpuolena on, että kun jokin taso hierarkiassa vaarantuu, kaikki sen alapuolella olevat varmenteet vaarantuvat.