Anvendt Kryptering
Symmetrisk vs Asymmetrisk (del 2)
May 13, 2015Tidligere skrev jeg om forskjellen på symmetrisk og asymmetrisk kryptering. Der gikk vi gjennom flere metoder for hvordan asymmetrisk kryptering blir brukt. De to mest anvendte metodene i dag er, som allerede diskutert, følgende: Diffie-Hellman (DH) og Rivest-Shamir-Adleman (RSA). De skumle forkortelsene består, som dere ser, altså bare av skapernes navn.
Jeg snakket tidligere om hvordan en hemmelig nøkkel kan avtales mellom to parter uten å sende sensitiv data ubeskyttet over internett. DH-metoden, som ble forklart der, gjør nettopp dette. To parter kan først bli enig om en hemmelig nøkkel, for så å bruke den videre til å kommunisere hemmelig. Nøkkelen avtales da først vha asymmetrisk kryptering, og den videre kommunikasjonen gjøres så via symmetriske kryptering med den avtalte nøkkelen.
Det er ikke alltid dette er praktisk. Tenk dere en stor sikret nettside, som har kontakt med tusenvis av brukere. Det ville ikke vært praktisk å måtte utveksle et eget forskjellig nøkkelpar med hver enkelt bruker. Det er her idèen om "åpen lås" kom inn. I stedet for at den sikrede nettsiden må ha et utall av nøkler, fant forskere frem til en metode der nettsiden heller sender over informasjonen sin i lag med en åpen lås.
Den åpne låsen gjør at alle kan lese innholdet, og samtidig positivt vite at innholdet virkelig kom fra rett avsender. En slik verifisering av avsenderen kalles digital signering. Mottageren kan legge inn sin beskjed og "klikke igjen" låsen, og sende den tilbake. Nå er innholdet som skal tilbake igjen kryptert, og bare den sikre nettsiden som eier låsen kan åpne den. Høres ikke dette flott ut?
RSA-metoden gjør dette, og er den mest utbredte asymmetriske krypteringsmetoden på internett. Så og si alle internettsider som viser en hengelås og "https" foran webadressen (aka TLS) er kryptert vha RSA. Da kan nemlig nettsurfere være sikker på at den aktuelle nettsiden er legitim, riktignok bare hvis det digitale sertifikatet for siden er ok.
Digitale sertifikater på internett blir håndtert av sertifikatbyråer slik at vanlige nettbrukere normalt ikke trenger å forholde seg til dette. Alt en måtte foreta seg på nettsiden blir dermed sterkt kryptert. Kort sagt, RSA-metoden gjør at en nettside er trygt tilgjengelig og verifisert / autentisert ut til verden.
RSA-metoden benytter primtallsfaktorisering, slik som DH-metoden, for å gjøre krypteringen ekstremt vanskelig å tyde uten den hemmelige nøkkelen. Primtallsfaktorisering er eksempel på en vanskelig matematisk operasjon. Den inverse operasjonen, primtallsmultiplikasjon, er derimot triviell. Dette gjør at det er lett å kryptere med denne metoden, og svært vanskelig å dekryptere (uten en jukselapp - dvs den hemmelige nøkkelen).
Senere har forskere kommet opp med en alternativ matematisk operasjon som er enda vanskeligere å beregne, dersom en ikke har den hemmelige nøkkelen: elliptisk kurve kryptering. Denne metoden har egenskaper som gjør at krypteringsnøkkelen kan være mye mindre (dvs ha færre bits), og samtidig være like sikker som ved primtallsfaktorisering med en vesentlig større nøkkel. Bitcoin sin Blockchain bruker elliptisk kurve kryptering, og jeg vil gå nærmere inn på dette når vi tar for oss Blockchain senere.
Video: Rivest-Shamir-Adleman's asymmetriske kryptering (engelsk):
RSA-metoden enkelt forklart!