Gå direkt till kursmenyn Gå direkt till innehållet

Asymmetrisk kryptering

Denna lektion riktar specifikt in sig på asymmetrisk kryptering. Vill du få en bredare översikt över kryptering i allmänhet rekommenderar vi Digitekets kurs Kryptering – konsten att göra det förståeliga oförståeligt. 

Varför använder system kryptering?

Om du ska skapa ett decentraliserat system av viktig och många gånger känslig information så är tilltron till säkerheten central. För att försäkra sig om säkerheten använder man kryptering. Historien lär oss att det i princip inte går att skapa en kryptering av information som inte går att knäcka på något sätt i takt med att teknologi och vetenskap utvecklas och därför uttalar sig de som jobbar inom fältet sällan tvärsäkert kring olika nivåer av säkerhet. Vad man strävar efter när man krypterar information är därför inte nödvändigtvis något som kommer att hållas hemligt till världens slut. Istället strävar man efter att skapa ett system som är så användarvänligt som möjligt samtidigt som det har så hög säkerhet som möjligt just nu.  Det man försöker skydda sig mot är illvilliga aktörer  med tillgång till den teknologi som finns idag, och den teknologi som finns på vår kunskapshorisont i den nära framtiden.  En säkerhet som gör att de som har oärlig avsikt kommer att behöva lägga så mycket tid på att forcera kryptot att värdet med informationen inte står i paritet till tiden det kommer att ta att få fram informationen.

Den enklaste tänkbara jämförelsen är att tänka sig ett kombinationshänglås som du har med dig till ditt skåp på gymmet. Ponera att det tar två sekunder per försök att vrida fram en siffra och testa bygeln för att se om låset öppnar sig. Ett hänglås som kräver en tresiffrig kombination skulle kunna knäckas genom att någon systematiskt gick igenom varje tänkbar kombination (999 möjligheter) av siffror på tvåtusen sekunder, vilket ger en dryg halvtimme som allra mest om de har lite otur.  Det är ju en stund men det är ändå inte omöjligt att tänka sig att någon skulle kunna hitta avskildhet nog att försöka sig på det när alla är ute på ett spinningpass. Om samma lås har fyra siffror (9999 möjligheter) tar det som längst tjugotusen sekunder, vilket ger över fem och en halv timme att stå och rycka i ditt lås. Även om de har tur och hittar rätt kombination halvvägs är det låååång tid att syssla med fuffens i ett omklädningsrum. Det ska till ett ganska rejält spinningpass för att någon ska våga sig på det. Du har alltså konkret skalat upp nivån av säkerhet till en plats där värdet av att försöka knäcka din kod understiger tiden och risken det tar att göra det. Hade situationen krävt det hade du kunnat uppgradera till ett femsiffrigt lås (99999 möjligheter) och öka längsta tiden för tänkbar forcering till nästan två och ett halvt dygn.

Är kryptering krångligt?

Med dagens system och användare vana vid att använda lösenord är kryptering inte alls speciellt krångligt och med brett tillgängliga system kan en nivå av kryptering uppnås som skapar säkerhet bortom alla aktörer utom (möjligtvis) vissa nationella säkerhetstjänster och techjättar som Google. I många system som du använder ingår redan en hög nivå av kryptering utan att du ens behöver göra något och även de system likt bitcoins digitala plånböcker som använder asymmetrisk kryptering kräver sällan mer än en enkel installation och en grundläggande nivå av datorkunnighet. Kan du installera Spotify eller digitalkanalerna på din tv kan du säkert installera ett system med asymmetrisk kryptering.

Symmetrisk kryptering

För att förstå asymmetrisk kryptering är det bra om man först förstår symmetrisk kryptering. Symmetrisk kryptering handlar i korthet om att både avsändaren och mottagaren har tillgång till samma nyckel det vill säga sättet som informationen förvandlas till och från ett oläsligt chiffer. När ett meddelande skickas så krypteras det med hjälp av nyckeln – en matematisk algoritm – och förvandlas till oläslig information. Mottagaren som har tillgång till samma nyckel kan sedan använda den för att förvandla tillbaka informationen till ursprungligt läge igen. Endast de som har tillgång till nyckeln kan läsa meddelandet.

I sin enklaste form kan detta jämföras med ett av historiens klassiska chiffer: caesarchiffret. Två alfabet läggs parallellt och förskjuts sedan ett par steg. Nyckeln till att läsa chiffret är att veta hur många steg alfabetet förskjutits. Viktigt att komma ihåg då att dagens chiffer och följaktligen också dagens chiffernycklar är otroligt mycket mer sofistikerade.

Symmetrisk kryptering är relativt enkelt och tydligt och är också snabbare än asymmetrisk kryptering men har den stora nackdelen att den säkra nyckeln först måste distribueras till alla parter för att krypteringen ska fungera, något som skapar en osäkerhet då du står inför det nya problemet att nyckeln kan snappas upp på vägen. Detta är särskilt sant om mängden personer som du måste distribuera nyckeln till är stor. Länge sökte man ett sätt att komma runt detta och under tidigt sjuttiotal utvecklades därför tekniken med asymmetrisk kryptering med tillhörande lämplig algoritm av den brittiska underrättelsetjänsten.

Hur fungerar asymmetrisk kryptering?

Asymmetrisk kryptering handlar om att kryptera sin information med hjälp av två nycklar: en publik som distribueras öppet till alla som vill ha den och en privat som är ytterst hemlig. När någon ska skicka ett meddelande till dig via ett sådant system använder de din publika nyckel för att kryptera informationen. Andra kan snappa upp ditt meddelande under färden men din publika nyckel räcker inte för att läsa meddelandet. För att kunna läsa meddelandet krävs din privata nyckel – och den har bara du tillgång till. På detta sätt löser asymmetrisk kryptering det grundläggande problemet med symmetrisk kryptering. Den hemliga nyckeln behöver inte distribueras till alla som ska ha den för att systemet ska fungera. Tvärtom kan du helt öppet dela din nyckel med hela världen. De har ändå ingen nytta av den om de inte också har tillgång till din privata nyckel. Endast i kombination fungerar de två.

Med asymmetrisk kryptering uppnår du följande:

  • Det är lätt att skapa de nycklar du behöver: en publik och en privat.
  • Det är lätt för de som vill skicka meddelande till dig att kryptera detta med hjälp av din publika nyckel.
  • Det är lätt för dig att låsa upp det krypterade meddelandet som skickats till dig med hjälp av din privata nyckel.
  • Det är inte möjligt för någon att utifrån din publika nyckel kunna räkna sig fram till vilken din privata nyckel är.
  • Det är inte möjligt att dekryptera ett av dina meddelanden med hjälp av bara den publika nyckeln.

Nackdelen är att asymmetrisk kryptering kräver en mer avancerad matematisk algoritm och följaktligen mer datorkraft för att kunna användas av vanliga användare. Fram till och med millennieskiftet var därför asymmetrisk kryptering bortom räckvidden för huvuddelen av datoranvändarna och hade inga direkta kommersiella användningsområden. Teknikutvecklingen har ändrat detta. Dagens användare har tillräckligt med processorkraft och asymmetrisk kryptering har därför blivit den nya standarden.

Tycker du att detta är onödigt tekniskt och svårförståeligt? Se det förklarat som om du gick i lågstadiet:

Länk till filmen Skicka krypterat framtagen av Hackerskolan, på YouTube.

Algoritmerna bakom

På ytan är systemet kanske lätt att förklara men matematiken och algoritmen som ligger bakom krypteringen är avancerad och kräver som sagt en mycket hög processorkraft för att fungera. Nyckeln bakom den höga säkerheten är att ha långa nyckelstorlekar.

Större och större nyckelstorlekar

I kursen Man kan aldrig vara för säker – att skapa säkra lösenord (och minnas dem) som vi tidigare publicerat här på Digiteket, pratar vi mycket om att i slutändan är längden på ett lösenord avgörande för säkerheten. Längre lösenord, eller längre nycklar för att koda och avkoda något  som är krypterat kräver mer beräkningar och mer “gissningar för en dator som vill forcera chiffret”. En sådan metod att lösa problemet, att systematiskt testa den enda tänkbara lösningen efter den andra, kallas i kryptografiska sammanhang för en brute force-attack. I takt med att beräkningskraften i moderna datorer och nätverk av datorer ökar måste även lösenord och nycklar öka i längd.

När vi pratar om längd på nycklar så används storlekar som är så astronomiskt stora att det till och med är pedagogiskt svårt att försöka förklara hur stora de är. Det handlar om tal som är så stora att även om en gissande dator kan testa hundratals miljarder tal per sekund så skulle ändå inte all tid i världen räcka för att hitta rätt. Trots detta gör teknikutvecklingen både i processorkraft och i utvecklingen av nya algoritmer för att forcera krypton, att man ständigt känner behov av att ändå öka nyckellängden.

I detta sammanhang kräver just asymmetrisk kryptering extra långa nyckellängder eftersom de tal som används av algoritmen för att generera nycklar är primtal. Eftersom primtal blir sällsyntare ju större talen blir måste tallängden öka med en än större faktor. Allt detta gör att asymmetrisk kryptering är en långsammare process än en symmetrisk.

Sammanfattningsvis

Asymmetrisk kryptering har med tillgången till kraftigare datorer blivit vanligare och vanligare. Systemet används både i den digitala infrastruktur som du bara tar för givet och i program och system där du själv kan använda – exempelvis PGP (Pretty Good Privacy) eller din digitala plånbok om du handlar med kryptovalutor.

Den asymmetriska krypteringen löser säkerhetsproblemet som uppstår när du måste distribuera din kodnyckel till många parter och den skapar hög säkerhet på ett tillgängligt sätt.

Den asymmetriska krypteringen kräver dock – i takt med att de kryptoforcerande datorernas processorkraft ökar och att de matematiska algoritmerna utvecklas en ständigt ökande nyckellängd och därför är asymmetrisk kryptering långsammare och “klumpigare” än symmetrisk kryptering


Flervalsfråga

Välj rätt svar för att fortsätta till nästa lektion.

Vad är skillnaden mellan symmetrisk kryptering och asymmetrisk kryptering?

Svara rätt på testfrågan för att fortsätta.