GuideKryptering

Romerne og grekerne prøvde, nå har vi mestret krypteringen

Her kan du se de vanvittige kalkulasjonene som må til.

Sikkerhet er en het potet for tiden, den ene skandalen avløser den andre. Det har gjort kryptering til et dagsaktuelt tema, og faktisk er det slik at bruken av krypteringen er mer enn firedoblet på ett år. Kryptering er ganske så sikkert, og det er slettes ingen heksekunst heller.

Tenkt deg at du har en flott strikkegenser som du ikke vil at noen andre skal få se, en du liker å ha på deg når du er alene hjemme og skal se på noe artig på TV. For å være sikker på at ingen andre får se den kan du rakke den opp mellom hver gang du tar den på deg. Heldigvis er har du notert ned oppskriften på en lapp, slik at du kan strikke den sammen igjen før du skal bruke den. For en utenforstående som kommer over «genseren» vil den fremstå som en haug med garn, uten noe system, men siden du har oppskriften kan du snu garnhaugen til å bli en genser. Slik er på en måte krypteringen også.

Det er nemlig ikke slik at dataene dine forsvinner når de blir kryptert. Det ligger fremdeles enorme mengder med bits og bytes med data på lagringsmediene dine, men for en utenforstående vil det bare fremstå som en masse rabbel.

Kunsten å kryptere har eksistert siden tidenes morgen, eller i alle fall nesten. Poenget var enkelt, utenforstående skulle ikke skjønne hva innholdet dreide seg om. De eneste som skulle skjønne det var den som hadde kryptert det aktuelle innholdet, og eventuelle andre som hadde fått vite hvordan det skulle gjøres.

Siden den gang har krypteringsteknologien vokst seg seg stor og sterk, og i dag kan hvermannsen lett sette opp krypterte volumer på datamaskinen sin. Dette er vel og bra, men dette bringer spørsmålet om hva som egentlig skjer i kulissene inn på banen.

Digitale nøkler er særdeles sentralt innen krypteringen.Foto: Shutterstock
Julius Caesar var blant de første som tok i bruk kryptering.Foto: Shutterstock

Romerne var tidlig ute

Kryptering har vært brukt på all verdens meldinger, som var ment å holdes unna nysgjerrige øyne. En av de tidligst kjente eksemplene på utbredt bruk av kryptering er det selveste Julius Cæsar som står bak. Han brukte krypterte meldinger som han sendte rundt til alle krinker og kroker av sitt enorme Romerrike.

Dette var en helt enkel og grunnleggende krypteringsmetode, som gikk ut på å bytte ut bokstav for bokstav. Litt nærmere bestemt gikk det ut på å forskyve alfabetet et gitt antall plasser, til høyre eller venstre. A ble da for eksempel erstattet med D, mens B da ble erstattet med E.

Reell tekst: ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
Kryptert tekst: DEFGHIJKLMNOPQRSTUVWXYZÆØÅABC

Denne substitusjonsmetoden har sine klare svakheter. Kjenner du språket som ligger bak er det bare å forskyve alfabetet til en eller annen vei, så vil du relativt raskt ha løst krypteringen.

Grekerne fant en raskere løsning

Grekermetoden hadde sine åpenbare svakheter.Foto: Wikipedia

Grekerne hadde en annen variant, som muligens var hakket bedre, selv om den også var skremmende enkel. De surret en pergamentremse, eller tilsvarende, rundt en stokk. Deretter skrev de meldingen bortover. Når meldingen var klar fjernet de stokken og det fremstod som en remse med en rekke bokstaver uten mål og mening.

Greide du å finne en stokk med tilsvarende diameter var det likevel en grei sak å forstå innholdet.

En løsning som har blitt mye brukt, og som brukes den dag i dag, er å ha en mer unik nøkkel enn en pinne, som hver av de partene som skal ha tilgang på meldingene har et eksemplar av. Denne løsningen ble flittig brukt under den siste verdenskrigen, og de ulike kodemaskinene som ble brukt på hver av sidene var til tider ekstremt innviklede. Dette var mekaniske maskiner som greide å dytte ut tilfeldige bokstaver, alt etter hva brukeren sendte inn i maskinen.

Nøkkelen kunne gjerne byttes, og dette ble gjort etter ulike intervaller. Det kunne også legges opp til at ulike nøkkelsett ble brukt på hver melding, og at melding om hvilket sett som skulle sendes først. Så snart meldingen ble sendt gjennom maskinene fremstod teksten som komplett vrøvl.

I krigens dager satt det en rekke personer som forsøkte å løse kodene, men dette var utrolig tidkrevende arbeid, og det hendte også at koder ikke ble løst.

Slik fungerer moderne kryptering: AES

I dag skjer majoriteten av informasjonsutvekslingen over Internett, og her tas det i bruk en rekke forskjellige krypteringsmetoder for å beskytte informasjonen. De har alle sine svakheter og styrker. Grunntanken bak en god krypteringsmetode er at den er både sikker, men også rask. Som regel blir det dermed en kombinasjon av de to faktorene, slik at den er god nok, og sikker nok.

AES-kryptering er den mest kjente av dem, og det er ikke småtteri som blir gjort med dataene dine. Dataene dine kan du låse opp og igjen med et eget passord, og ut fra dette passordet vil krypteringen generere en egen nøkkel som brukes. Den kommende forklaringen er en sterk forenkling, men det viser hvor utrolig mye som faktisk skjer, og hvordan dataene dine blir sikret.

Det aller første som blir gjort er at datasettet ditt blir delt opp i datablokker på 128-bits. Disse blir så samlet i kvadrater på fire ganger fire ruter, med én byte i hver. Dette er utgangspunket for alle de kommende operasjonene.

Dette kvadratet blir så XOR-kodet ut fra en gitt nøkkel. Allerede her ser kombinasjonen av datasett og nøkkel ut som det reneste tullball av tegn. XOR står for exclusive or, og dersom de to verdiene som sammenlignes er ulike vil XOR-verdien bli sann. Er verdiene derimot like vil XOR-verdien ende opp som usann.

Deretter dannes en serie med nye nøkler, som skal brukes i senere runder av krypteringen. Disse ekstra nøklene skapes ut fra den første nøkkelen, og denne biten er kanskje ikke den beste isolert sett, men mer enn god nok i denne sammenhengen. Som en ren bonus er den også særdeles rask.

Disse ekstra nøklene blir laget ved å ta siste delen av den første nøkkelen, også erstattes disse verdiene med andre verdier. Etter det blir verdiene kjørt gjennom en XOR-operasjon med en egen konstant som endrer seg fra runde til runde. Dette nye settet blir så XOR-et med den første delen av den første nøkkelen, og dette blir den første delen av nøkkel nummer to.

De neste kolonnene er enklere, og de blir generert ut fra den tilsvarende kolonnen i den forrige nøkkelen og kolonnen rett foran.

Deretter er det på tide å gjøre noe med selve datasettet, og alt etter kompleksitet gjøres dette over flere runder. Det første som står på dagsorden er å skape litt forvirring. Hver eneste byte blir her forandret til en annen byte etter et spesielt mønster. Dette er altså det klassiske substitusjons-elementet, der en A blir byttet om til en D, og B gjort om til E.

Det neste steget er å forskyve radene i forhold til hverandre – et radskift – og fylle opp med de løse bytene på motsatt side. For en ytterligere forvirring blir også kolonnene mikset om.

Radskift – først forskyves det, så flyttes feltene inn på andre siden av kvadratet.

Dette er egentlig hele runden, og som en avslutning blir datasettet kjørt gjennom en ny XOR-operasjon mot nøkkelen for den neste runden. Alle disse elementene gir en fin blanding av forvirring og spredning.

Totalt sett kan dete gjølres mange ganger, alt etter hvor mange bits kryptering du er ute etter. Hver eneste runde sender dataene dine på en runddans, og desto flere runder vil gjøre det hele enda vanskeligere å nøste opp. Sitter du med nøkkelen har du heldigvis også oppskriften på hvordan du kom deg både frem og tilbake.

Er du ute etter 256-bits kryptering må du gjennom 13 runder, mens om du er fornøyd med 128-bits er du i mål etter ni runder.

Er det sikkert?

Dersom du har kryptert dataene dine er det for at ingen andre skal få se dem, og da er det naturlig å forutsette at krypteringen faktisk holder vann. Litt av problemet er at vi, sett i lys av slikt som NSA-avsløringene, ikke kan vite om det er helt sikkert. De som eventuelt vet at det er usikkert vil i alle fall ikke fortelle det til noen andre, det er vel omtrent det eneste som er sikkert. Ryktene sier dog at NSA bruker AES selv, og om det ikke var sikkert ville de neppe gjort det.

AES-krypteringen, og lignende varianter, regnes offisielt sett som sikkert per i dag, og det vil mest trolig være det i flere år fremover.

Professor Patrick Bours.Foto: NISlab, HiG

– Rent teoretisk vil det kunne finnes måter å finne en nøkkel på som er raskere enn et uttømmende søk, altså der en angriper forsøker med alle potensielle nøkkelkombinasjoner, men dette tar fremdeles mye tid. For å sette det litt i perspektiv så ble det sagt av Andrey Bogdanov en gang at om du hadde en trillion datamaskiner, som hver kunne teste én milliard nøkler per sekund, så ville det fremdeles ta to milliarder år å gjenopprette en AES 128-bits nøkkel, kan Professor Patrick A.H. Bours ved NISlab fortelle til Hardware.no.

– Krypteringsalgoritmer kan brytes på ulike måter. Uttømmende søk er bestemt metode for å finne en nøkkel, selv om det tar milliarder av år, men andre metoder søker etter svakheter i algoritmen. AES har så langt vist seg å være godt rustet mot angrep som søker etter svakheter, i hvert fall for svakheter som brekker den totalt. Dette betyr at AES-algoritmen vil gi god sikkerhet for fremtiden. Det å gi en slik prognose forutsetter en viss forsiktighet, men det virker i øyeblikket som at AES er en sikker algoritme, fortsetter Bours.

Selv om du kanskje kan puste ut med tanke på sikkerheten rundt AES, er det andre skjær i sjøen.

– Den endelige styrken vil likevel avhenge av hele systemet. Selv om AES-algoritmen er sikker, kan andre deler av systemet være utsatt. Man bør passe på at informasjon om selve nøkkelen ikke slipper ut via andre kanaler, som for eksempel ved et timing-angrep, avslutter Bours.

Vil du kryptere filene dine?
Slik kan du låse snokere ute fra dokumentene dine »

Les også
Denne tasten kan være datatyvens beste venn
Les også
Krever lavere sikkerhet på mobiltelefoner
Les også
Nå blir Microsofts tjenester tryggere å bruke
Les også
Nå er det slutt for populær krypteringstjeneste
Les også
Derfor er eBay-hackingen så alvorlig
annonse