Algoritmer och nycklar

Krypteringsmatematik är en av de viktigaste grenarna inom matematiken. Det används så fort information skickas via internet. Några exempel är när räkningar betalas, när pengar tas ut från en bankomat eller när sms skickas.

Kryptering tror många har funnits ungefär lika länge som skriftspråket i sig, men ingen vet exakt. Att skicka hemliga meddelanden till varandra har inspirerat människor i århundraden. Redan på Julius Caesars tid fanns det kryptering, men den är väldigt enkel att knäcka.

Caesarchiffer är ett av det första chiffer som utnyttjade substitution. Krypteringen går till så att alla bokstäver i meddelandet byts ut mot en annan bokstav. Bokstaven den byts ut mot är steg längre fram i alfabetet. Om n=10 byts exempelvis bokstaven A ut mot K.

Som nämnts är denna kryptering oerhört enkel att knäcka, det är bara att testa de 29 olika tal som n kan vara.

Hur ska vi göra för att hålla meddelanden hemliga i dagens samhälle? En populär metod är att vi krypterar meddelanden med hjälp av ett så kallat öppet nyckelutbyte. I nästa avsnitt går vi igenom den första metod som använde sig av detta, Diffie-Hellmans nyckelutbyte.

Algoritmer och nycklar

Det finns väldigt många olika algoritmer som används för att kryptera ett meddelande, två exempel är DES och AES.

Algoritmer är det som krypterar meddelanden genom att "blanda" om dem. Olika algoritmer blandar om på olika sätt. Dessa algoritmer är det ofta patent på och för att få använda en krypteringsalgoritm krävs det ofta en licens. För att dekryptera ett meddelande som är blandat av en algoritm krävs det en nyckel.

Det finns två olika sorters kryptering, symmetrisk kryptering och asymmetrisk kryptering.

Symmetrisk kryptering

Vid symmetrisk kryptering används en och samma nyckel för att kryptera och dekryptera meddelandet. Fördelen med symmetrisk kryptering är att algoritmerna är snabba att utföra. Detta leder till att den används när stora datamängder krypteras och skickas.

En vanlig längd på nycklar för symmetrisk kryptering är 128 bitar. Det innebär att det finns \(2^{128}\) olika nycklar. Att slumpmässigt gissa sig fram till nyckeln tar väldigt lång tid. Det förväntade antalet nycklar som måste prövas är hälften av antalet som finns, det vill säga \(2^{127}\) nycklar.

Säg att en dator kan testa en biljon (\(1000000000000=10^{12}\)) olika nycklar per sekund, då kommer det att ta cirka \(5\cdot 10^{18}\) år för datorn att få fram rätt nyckel!

Asymmetrisk kryptering

Asymmetrisk kryptering innebär att enbart mottagaren av ett meddelande behöver känna till en hemlig nyckel. För att assymetrisk kryptering ska anses säkert behövs idag nycklar med längder från 512 till uppemot 4096 bitar, beroende på vilken algoritm som används för att kryptera.

RSA-kryptering är vanligt i dagens samhälle. Förr ansågs en nyckel på 1024 bitar vara säkert för att använda RSA. RSA bygger på att det är svårt att primtalsfaktorisera stora tal. I december 2009 lyckades några primtalsfaktorisera RSA där nyckellängden var 768 bitar, vilket lett till att RSA anses säkert om nycklarna har längden 2048 bitar. 

Har du en fråga du vill ställa om Algoritmer och nycklar? Ställ den på Pluggakuten.se
Har du hittat ett fel, eller har du kommentarer till materialet på den här sidan? Mejla matteboken@mattecentrum.se