Hva er asymmetrisk kryptering?

Det er mange forskjellige deler av kryptografi. Hvis du imidlertid ønsker å kryptere noen data, er det to typer algoritmer du kan bruke: symmetriske krypteringsalgoritmer og asymmetriske krypteringsalgoritmer. Konseptet er det samme: de kan kryptere data, men fungerer etter andre prinsipper og har andre bruksområder.

Tittelforskjellen beskriver imidlertid krypteringsnøklene. En symmetrisk krypteringsalgoritme bruker en enkelt delt nøkkel for å kryptere og dekryptere data. En asymmetrisk krypteringsalgoritme bruker to koblede nøkler, en for å dekryptere og en for å dekryptere.

Terminologi

Asymmetriske krypteringsalgoritmer er avhengige av bruken av to forskjellige nøkler. En nøkkel kan brukes til å kryptere data og den andre til å dekryptere. De to krypteringsnøklene er ikke bare noen gamle to verdier. De er iboende relatert og må genereres av en nøkkelgenereringsalgoritme.

Et alternativt navn for asymmetrisk kryptering er offentlig nøkkelkryptering. Dette er fordi det er meningen at en av de to nøklene skal være offentlig. Det tradisjonelle konseptet er at krypteringsnøkkelen deles offentlig, og dekrypteringsnøkkelen holdes strengt privat. Av denne grunn blir krypteringsnøkkelen referert til som den offentlige nøkkelen, og dekrypteringsnøkkelen er den private nøkkelen.

Denne konfigurasjonen lar hvem som helst kryptere en melding slik at bare eieren av den private nøkkelen kan dekryptere den. Dette er nyttig fordi hvem som helst kan kommunisere sikkert med den tiltenkte mottakeren med én enkelt publisert krypteringsnøkkel. For å kommunisere sikkert tilbake, må mottakeren bruke den offentlige nøkkelen til den opprinnelige avsenderen.

Teoretisk sett er det ingen grunn til at du ikke kunne bytte nøklene rundt og dele dekrypteringsnøkkelen mens du holder krypteringsnøkkelen privat. Dette kan brukes til å verifisere ektheten til kilden, hvis ikke gi noen meningsfull sikkerhet. Dette gjøres imidlertid ikke i praksis, da det finnes andre mekanismer for å oppnå samme resultat.

Egenskaper for symmetriske krypteringsalgoritmer

Asymmetriske krypteringsalgoritmer krever bruk av mye større nøkler enn symmetriske krypteringsalgoritmer når de gir samme sikkerhetsnivå. Vanligvis anses en symmetrisk krypteringsalgoritme med en 128-bits krypteringsnøkkel som sikker, selv om 256-biters nøkler foretrekkes. I en asymmetrisk krypteringsalgoritme anses 2048-biters nøkler som trygge.

2048-bits nøkkeleksemplet gjelder RSA, som lenge har vært standarden for asymmetrisk kryptering. Elliptisk kurvekryptografi er imidlertid et nyere konsept som også er asymmetrisk, men som bruker betydelig mindre nøkler. En 2048-biters RSA-nøkkel tilbyr tilsvarende sikkerhet som en 224-bits elliptisk kurvenøkkel.

Tips: Verdiene ovenfor anses som sikre for kommersiell bruk, men NSA krever sterkere nøkler for topphemmelig kryptering. RSA-nøkler på minst 3072-bits er nødvendig, mens 384-bits elliptiske kurvetøkler er nødvendige. Det er verdt å merke seg at en 3072-biters RSA-nøkkel er svakere enn en 384-biters elliptisk kurvetøkkel.

Asymmetriske krypteringsalgoritmer har en tendens til å være relativt trege sammenlignet med symmetriske krypteringsalgoritmer. Sikker kommunikasjon kan utføres over en usikker kanal hvis begge parter genererer et asymmetrisk nøkkelpar og deretter bytter offentlige nøkler. På denne måten kan begge parter sende meldinger som bare den andre kan dekryptere.

I praksis må minst én av partene verifisere integriteten til sin offentlige nøkkel. Dette gjøres gjennom PKI eller Public Key Infrastructure. Dette tar form av sertifiseringsinstanser som signerer nøklene til andre for å vise at deres identitet er verifisert. I dette systemet må alle sertifiseringsinstanser være klarert; uten det vil systemet falle fra hverandre.

Bruk i praksis

Asymmetriske krypteringsalgoritmer brukes vanligvis ikke til bulkkryptering, spesielt når tid eller ytelse er et problem. De kan brukes til å kryptere engangsmeldinger som innholdet i en e-post. Imidlertid gjør deres evne til å sikre en usikker kanal dem til et utmerket valg for en nøkkelutvekslingsprotokoll som overfører symmetriske nøkler som deretter kan brukes til mer effektiv bulkkryptering.

Dette er brukstilfellet i TLS, som gir sikkerhet i HTTPS. En bruker kobler til en webserver; de utveksler deretter offentlige nøkler for å kryptere små meldinger til hverandre. Serveren genererer deretter en symmetrisk nøkkel, krypterer den med brukerens offentlige nøkkel og sender den til dem. Brukeren dekrypterer nøkkelen og kan deretter bruke den symmetriske nøkkelen til å kryptere fremtidig kommunikasjon til serveren effektivt.

En sertifiseringsinstans i prosessen ovenfor bekrefter serverens offentlige nøkkel. Dette lar brukeren være trygg på at de kommuniserer med hvem de prøver å kommunisere med. I de fleste tilfeller genererer brukeren en engangsnøkkel, siden serveren ikke trenger å bekrefte hvilken bruker den kommuniserer med.

Konklusjon

Asymmetriske krypteringsalgoritmer bruker to forskjellige nøkler. Den ene nøkkelen brukes til kryptering, og den andre til dekryptering. Nøklene er matematisk koblet og må genereres av en nøkkelgenereringsalgoritme; tilfeldige verdier fungerer ikke. Vanligvis deles krypteringsnøkkelen offentlig, slik at alle kan kryptere en melding beregnet på nøkkelparets eier.

Så lenge dekrypteringsnøkkelen forblir privat, er det bare nøkkeleieren som kan dekryptere meldinger kryptert med den offentlige nøkkelen. Som sådan blir asymmetrisk kryptering ofte også referert til som offentlig nøkkelkryptering.