INNEHÅLL

Forcering

Hemliga nycklar

Publika nycklar

Digitala signaturer

Äkthetsintyg

Matematiska falluckor

Exportrestriktioner

Används av kriminella

Sammtanfattning

 

 

Vi är mitt inne i vad som brukar kallas för informationssamhället. Att utbyta information säkert är nu inte bara en militär angelägenhet utan även civilt nödvändigt . Den moderna IT-tekniken sparar enorma summor åt industrin. Men den medför även risker. Hur skickar man information värd kanske miljarder kronor på ett nätverk som kan avlyssnas hur lätt som helst?

Att använda hemlig skrift för att hindra obehöriga att förstå ett meddelande är antagligen lika gammalt som skriftspråket självt. Metoden att göra ett meddelande oläsbart förutom för mottagaren kallas kryptering.

Bland de första som använde kryptering var Julius Caesar. Han litade inte på sina kurirer och skickade meddelanden där han förskjutit hela alfabetet ett bestämt antal steg. Meddelandet "ANFALL" blev således "CPHCNN" om Caesar och mottagaren kommit överens om att skjuta alfabetet två steg framåt.

Systemet är mycket simpelt och lätt att dekryptera förutsatt att men visste algoritmen. En spion som kom över ett krypterat meddelande kunde lätt pröva alla 26 kombinationer för att se vilket som gav ett läsbart meddelande. Ändå finns likheter med dagens mer sofistikerade system. Ett krypteringssystem består oftast av en algoritm och en nyckel. I Caesars system var algoritmen "skifta n steg framåt" och n var nyckeln.

När man konstruerar krypteringsalgoritmer idag förutsätter man att ens fiender förr eller senare kommer att få reda på hur de fungerar. Säkerheten i systemen ligger därför endast i nyckeln. Bara den som har nyckeln som ett meddelande är krypterat med ska kunna dekryptera det. Tyvärr är det, vad man idag vet, omöjligt att konstruera ett sådant system som dessutom är praktiskt användbart.

 

Forcering

Idag är det alltid teoretiskt möjligt att dekryptera meddelanden även om man inte har nyckeln. Detta kallas forcering. Även om det nu inte finns något hundraprocentigt säkert krypteringsystem finns det ändå vissa som anses som tillräckligt säkra. Om det tar så lång tid att forcera krypterad information att den har blivit värdelös kan man säga att det system man använt är tillräckligt säkert. Hur gör man då för att forcera krypterad information?

För att forcera ett krypterat meddelande krävs att man vet någonting om det okrypterade meddelandet. Antag att engelsmännen har fått tag på ett tyskt meddelande under andra världskriget. Man råkar veta vilken algoritm tyskarna har använt men kan inte enkelt dekryptera meddelandet då man saknar den nyckel som krävs.

Man antar att meddelandet är ett brev och börjar med texten "Guten Tag". Man prövar därefter att dekryptera meddelandet genom att testa sig igenom alla möjliga nyckelkombinationer. Den nyckelkombination som ger början "Guten Tag" är antagligen den rätta och man har således även fått resten av meddelandet.

Man inser lätt att ju längre nyckel man använder desto jobbigare blir det att testa alla kombinationer.

 

Hemliga nycklar

När två parter ska etablera en säker krypterad förbindelse måste de båda använda samma algoritm och nyckel. Sändaren krypterar meddelandet med nyckeln och mottagaren dekrypterar meddelandet med samma nyckel. De krypteringsalgoritmer som bygger på detta system kallas "Hemlig nyckel"-algoritmer.

Dessa har ett stort problem: Hur ska sändaren informera mottagaren om vilken nyckel som ska användas för dekryptering? Han kan ju inte skicka den i klartext eftersom överföringskanalen tydligen inte är säker (då skulle han ju inte ha behövt kryptera meddelandet alls).

 

Publika nycklar

För att komma runt detta problem använder man sig av en speciell typ av algoritmer kallade "dubbel nyckel"-algoritmer. Dessa fungerar så att man krypterar meddelandet med en nyckel och dekrypterar med en annan.

I praktiken fungerar det så att varje person har ett nyckelpar: en publik nyckel som alla vet om och en privat nyckel som bara är tillgänglig för en själv.

Om Arne vill skicka ett meddelande som bara Berit ska kunna läsa tar han reda på Berits publika nyckel och krypterar meddelandet med den. Berit tar emot Arnes meddelande och dekrypterar det med sin privata hemliga nyckel.

Proceduren kan liknas vid ett hänglåssystem. Arne ska skicka en present till Berit. Han går till postkontoret och hämtar ett hänglås som Berit har deponerat där. Han lägger presenten i en kista och sluter hänglåset. Den enda som nu kan öppna kistan är Berit som har nyckeln som passar och Arne kan således riskfritt skicka kistan.

Metoden är inte speciellt ny, men det är först på senare tid som man matematiskt har kunnat analysera dess säkerhet.

 

Digitala signaturer

Systemen med nyckelpar är enormt mycket mer användbart än systemen med bara en nyckel. Algoritmer som använder nyckelpar löser ett annat problem: Hur kan mottagaren av ett meddelande vara säker på att avsändaren verkligen är den han utger sig att vara och hur vet mottagaren att meddelandet inte har blivit ändrat på vägen?

Vi låter KA och KB representera Arnes respektive Berits publika nycklar för kryptering samt DA och DB de privata nycklarna för dekryptering. Vi låter också "M" vara ett meddelande.

Vi återgår till det förra exemplet då Arne skickar ett meddelande till Berit.

Arne skickar då KB(M) och Berit gör DB(KB(M))=M då DB och KB är varandras inverser.

Berit kan dock inte garantera att Bertil är den verkliga avsändaren. Idén med digitala signaturer kan realiseras på följande sätt:

1) Arne sänder KB(DA(M)) till Be rit.

2) Berit tar fram DA(M) genom att använda DB.

3) Berit använder nu Arnes publi ka nyckel KA på DA(M) dvs KA(DA(M)) vilket ger M.

Berit är nu säker på att avsändaren verkligen är Arne . Om det inte var så skulle inte Bertils publika nyckel KB ta fram det ursprungliga meddelandet M. Vi kan även notera att ingen av parterna har behövt avslöja sin privata nyckel.

 

Äkthetsintyg

I många fall är man inte intresserad av att göra texten hemlig. För att garantera ett meddelandes äkthet, dvs att ingen har förändrat det på vägen mellan sändare och mottagare, används ett system med signering. Utifrån meddelandet räknas en kontrollsumma ut. Denna signeras och skickas med det ursprungliga meddelandet som sänds i klartext.

Den person som försöker ändra meddelandet kan givetvis räkna ut en ny kontrollsumma. Däremot kan han inte signera kontrollsumman med avsändarens signatur (han har ju inte tillgång till avsändarens privata nyckel).

 

Matematiska falluckor

Många av dagens krypteringsalgoritmer bygger på så kallade enkelriktade funktioner. En sådan funktion är lätt att beräkna åt ena hållet, men dess invers är snudd på omöjlig att hitta. Sådana funktioner lämpar sig väl för kryptering av information ty det ska vara lätt att kryptera information men mycket svårt att forcera den krypterade informationen.

Man brukar benämna funktionerna "matematiska falluckor", som öppnar sig då man försöker forcera meddelandet. Mottagaren har dock ytterligare information i form av en nyckel vilken gör det möjligt att "gå åt andra hållet".

RSA (efter dess upfinnare Rivest, Shamir och Adleman) kallas en mycket vanlig, och idag säker, krypteringsalgoritm baserad på ett nyckelpar. Den använder en klassisk enkelriktad funktion, nämligen multiplikation av två stora primtal.

Antag att man har de två stora primtalen p och q. Att bilda produkten n=p*q är en mycket enkel beräkningsuppgift. Att gå åt motsatt håll, dvs ur n hitta p och q är mycket svårare. Man kan därför ge ut n som sin publika nyckel utan att avslöja vare sig p eller q som kan vara ens privata nyckel.

Denna metod medför att RSA-krypteringen säkerhet beror på hur snabbt man kan primfaktorisera stora tal. Om man kommer på ett sätt att snabbt primfaktorisera n skulle ens privata nyckel vara lätt att ta fram, och med ens skulle RSA-kryptering bli helt värdelös.

Sannolikheten att man gör en revolutionerande upptäkt inom området primfaktorisering är dock liten. Problemet ligger istället i att man ofta underskattar framtidens beräkningskraft. År 1977 ansåg man att det skulle ta 40 driljoner år att primfaktorisera ett tal av storleksordningen 2125. Redan 1994 lyckades man primfaktorisera ett tal av storleksordningen 2129. Att kryptera information med en metod som idag verkar överdrivet säkert är ett måste, om man vill att informationen ska förbli hemlig även om tio år.

 

Exportrestriktioner

Olika grupper i samhället har olika intressen vad gäller informationshantering. Militären vill exempelvis skydda sin egen information mot spionage samtidigt som man vill kunna spionera på alla sina fiender. USA är ett typiskt exempel på detta. Inom USA's gränser är det fritt tillåtet att använda säker kryptering. Amerikanska företag får dock inte exportera säkra krypteringssystem till andra länder. NSA (National Security Agency) hanterar säkerhetsfrågor beträffande kommunikation i USA. NSA har satt upp en gräns för hur pass säkra system som får exporteras. Man får anta att denna gräns är satt så att NSA kan forcera den krypterade informationen om de behöver.

 

Används av kriminella

Dagens största farhåga med kryptering är att kriminella grupper enekelt kan skydda sin verksamhet. I praktiken innebär de detta att t ex knarklangare kan tala ostört över krypterade telefonförbindelser utan att polisen har möjlighet att avlyssna dem. Detta är ett stort problem som man brottas med världen över. Visserligen skulle man helt och hållet kunna förbjuda kryptering och göra användandet straffbart. Men för att kriminella ska avstå från att kryptera sin information måste straffet för användning av kryptering vara hårdare än det brott de försöker dölja. Detta skulle medföra att en person som krypterar sina kärleksbrev skulle behöva dömmas till samma straff som en grovt kriminell.

Ett annat förslag är att alla som vill använda kryptering måste deponera sin privata nyckel hos en tillförlitlig myndighet. Vid misstanke om brott skulle polisen då efter domstolsbeslut få tillgång till nyckeln. Detta förslag har två svagheter. Att samla alla privata nycklar på ett enda ställe ställer enormt höga krav på säkerhet. Det andra problemet är att kriminella knappast frivilligt kommer deponera sina nycklar.

Som det ser ut idag verkar det inte finnas något bra sätt att hindra kriminella att dra fördel av möjligheterna med kryptering.

 

Sammtanfattning

Kryptering används till att:

· Hemliggöra ett meddelande för alla utom den avsedda mottagaren.

· Påvisa att avsändaren är den han utger sig att vara, dvs signera ett meddelande.

· Säkerställa att meddelandet inte har ändrats på vägen mellan sändare och mottagare.


Det finns två olika typer av krypteringssystem:

· "Hemlig-nyckel"-system där samma nyckel används till kryptering respektive dekryptering.

· "Dubbel-nyckel"-system där en publik/öppen nyckel an vänds för kryptering och en annan privat/hemlig för dekryptering.

 

 

 

© Magnus Larsson 1998