Kryptering

(2002-01-06)

Kryptering handlar om att förvränga informationen så ingen annan än den den är avsedd för ska kunna förstå den. Från att ha använts mest hos underrättelsetjänsterna har kodade meddelanden idag blivit något vardagligt för de flesta av oss. När du pratar i mobiltelefon krypteras det du säger så att det inte ska gå att avlyssna, och gör du bankaffärer över internet krypteras dina koder och kontonummer för att förhindra att någon snappar upp dem. Vidare är vissa TV-utsändningar krypterade så bara de som betalar ska kunna titta, och DVD-filmer är krypterade så de bara ska gå att spela upp i godkända spelare.

Grundprincipen för kryptering är att man kombinerar en text med ett kodord (nyckel) och får en kodad text. Meningen är sedan att bara den som har tillgång till nyckeln ska kunna få tillbaka den riktiga texten. För att åstadkomma det krävs både att nyckeln är svår att gissa och att man har kombinerat ursprungstexten med nyckeln på ett bra sätt (använt en bra algoritm) så att det inte finns några spår av nyckeln i den kodade texten.

Ett enkelt sätt att koda text på är att man gör om bokstäverna i nyckeln till tal som motsvarar deras plats i alfabetet och sedan flyttar fram ursprungstextens bokstäver med lika många steg. Ett exempel kommer här. Säg att vi ska kryptera "Santana" och så väljer vi nyckeln "abc". Vi kombinerar första bokstaven i ursprungstexten med första bokstaven i nyckeln, andra bokstaven med andra, osv. När nyckeln har tagit slut börjar vi om. Resultatet blir alltså S + 1 = T, a + 2 = c, n + 3 = q, t + 1 = u, a + 2 = c, n + 3 = q och a + 1 = b: Tcqucqb. För att få fram ursprungstexten tar vi vår nyckel och går baklänges, dvs räknar minus istället.

Den här krypteringsalgoritmen är enkel, men inte så säker. Krypterar man en längre text så börjar mönster att uppträda. Det finns dock en krypteringsalgoritm som är enklare för en dator att använda och den kallas XOR. Den fungerar på ungefär samma sätt fast man använder binära tal istället. Det sättet att kryptera är inte heller säkert och borde egentligen vara utrotat men används tyvärr fortfarande i vissa produkter. Om intresse finns kan jag i ett framtida nummer berätta mer om xor.

Låt oss nu återgå till algoritmen och nyckeln. Det finns en viktig skillnad dem emellan. Upptäcker man en brist i nyckeln så leder det bara till att man kan knäcka just den text där man använde den nyckeln. Men om man upptäcker en brist i algoritmen så leder ju det till att alla texter som har krypterats med den algoritmen - oavsett vad kodordet var - kan knäckas.

Får att få bra kryptering är det alltså viktigt med en stark krypteringsalgoritm, och en stark krypteringsalgoritm är en sådan som gör att man inte kan få fram ursprungstexten på något annat sätt än att veta kodordet - som alltså är nyckeln till det hela. Därför krävs naturligtvis också en stark nyckel. Men poängen är den att eftersom det bara är med nyckelns hjälp man ska kunna få fram klartexten så ska det inte spela någon roll om man får reda på algoritmen. Det ska ändå inte gå att knäcka om det är en bra algoritm.

Det är här de stora företagen brukar falera. De vill inte gärna berätta om sina krypteringsalgoritmer eftersom de ser dem som företagshemligheter och inte vill hjälpa konkurrenterna att ta fram lika bra eller bättre krypteringsmetoder. Det är ju naturligtvis fullt förståeligt, men det leder ofta till att krypteringsalgoritmerna inte blir så säkra. Visst kan en hemlig algoritm också vara säker, men den blir inte säker för att den är hemlig. Det var precis detta som hände DVD-filmerna. De skyddades nämligen av en hemlig kryptering, och det fungerade bra ända till den dag någon människa någonstans tittade lite närmare och såg att det fanns några brister. Algoritmen knäcktes därmed och det medförde ju då att alla DVD-filmer helt plötsligt var knäckta eftersom de hade krypterats med samma algoritm.