Till startsidan för Jonas Webresurs

Kryptering och digitala signaturer


1. Introduktion

I takt med att virusattacker, intrångsförsök och spionprogram, som letar hemlig information på internet och på våra datorer, höjs också kraven på att säkerheten skall förbättras. Under senaste åren har vi därför fått stifta bekantskap med ord som "virusskydd" och "brandvägg".

Men för den som vill ha ännu bättre säkerhet måste uttryck som "kryptering" och "kryptonycklar" införlivas i vokabulären. Den här sidan är till för att reda ut några av de svårigheter som finns för den som vill förstå dessa begrepp.

Enligt det allmänna språkbruket är kryptering det att chiffrera (dölja) en text så att den inte kan läsas av någon annan. Ett chiffer är alltså en text som förändrats genom kryptering så att den inte går att läsa av obehöriga.

Kryptering används idag på flera olika sätt:

(i) för att dölja information för obehöriga, alltså som ett avlyssningsskydd. Detta är särskilt viktigt när informationen är hemlig och man skickar den över ett publikt nät, som internet.

(ii) Tekniken kan också användas för att skapa en digital signatur, så att man vet vem avsändaren är eller att avsändaren är den rätta.

(iii) Signering används också för att garantera att all information finns med, så att ingen tagit bort eller lagt till delar av den.

Alla dessa tre användningsområdena är grundstenarna inom kryptering och är en förutsättning för att bl.a elektroniska affärer skall kunna skötas via internet.

2. Krypteringens historia

Ordet "krypto" kommer av det grekiska ordet "krupto" som betyder "dold" eller "hemlig". Man har förmodligen haft hemliga tecken och koder sedan urminnes tider, för att inte obehöriga skulle kunna se vad man kommunicerade.

De första bevisen för att människor har använt krypterad text är daterat 1.900 f.Kr. och har hittats i Egypten, i en stad kallad Menet Khufu. Här nedtecknade en skrivare sin husbondes historia med hjälp av en slags hieroglyfer.

Kryptografin har framförallt utvecklats under perioder av krig. Omkring 440 f. Kr. skrev den grekiske generalen Aeneas boken "Taktikern". Den handlar i stort om hur man försvarar eller intar en befästning. I några passager beskriver han hur man kommunicerar utan att fienden förstår det man skriver.

Principen är enkel: Man tillverkar två käppar som är lika tjocka. Käpparna kallas skytale. Genom att sedan rulla en remsa skinn eller papper runt den ena käppen och skriva ett meddelande längs med käppen, får man ett effektivt krypto. Den om saknar en käpp med rätt diameter kommer då inte att förstå vad det står på pappersremsan.

I texter från antiken har man hittat många bevis för att man använder olika slags chiffer för att dölja information för obehöriga. Den grekiske historikern Polybius (203-120 f. Kr.) hittade t.ex på ett sätt att skicka hemliga meddelanden med hjälp av facklor i mörkret.

En av de mer kända kryptona, s.k Ceasar-chiffer eller Ceasar-rullning, skapades under den romerske kejsaren Ceasars tid som regent. Han levde mellan åren 100-44 f.Kr.

Ceasars bytte helt enkelt ut de latinska bokstäverna i sina meddelanden mot grekiska, men gjorde också smärre ändringar, så att det inte skulle gå att se hur bokstäverna skulle bytas tillbaka.

Bild på ett Ceasar-chiffer Ett sådant system kunde vara att man först bytte den latinska bokstaven mot nästa i alfabetet och först därefter bytte den mot den grekiska motsvarigheten.

Ordet "jag" skulle alltså först bli "kbh" (j+1=k, osv) och därefter de grekiska bokstäverna kappa, vitta och itta, som bilden visar.

Kryptot är egentligen inte särskilt avancerat och mycket lätt för dagens datorer att lösa. Men på den tiden fungerade det utmärkt, inte minst eftersom så få kunde läsa och skriva, än mindre förstå två så olika språk.

Under medeltiden utvecklade man framförallt tekniker för att skriva med osynligt bläck. Endast den som visste var texten fanns skriven och utnyttjade den korrekta metoden för att få texten synlig igen kunde läsa det som stod. Alla sådana varianter har jag dock utelämnat i denna redogörelse.

Åter därför till "vanliga" chiffer. Sir Francis Bacon (1561-1626) presenterade år 1623 ett 5-bitars krypto. Den amerikanske presidenten Thomas Jefferson (1743-1826) hade en egen variant, som publicerades 1790, några år innan han blev president. Metoden kallades "the Strip Cipher" och vidareutvecklades till "M-138-A", som användes av amerikanska militären under Andra Världskriget.

1799 reste en fransk expedition till Egypten. I Rosetta fann man en sten med en inskription på tre olika språk: hieroglyfer, demotiska (ett forntida egyptiskt språk) och grekiska. I en passage i den grekiska texten berättades det att skriften innehöll en offentlig och en "krypterad" del.

William Frederick Friedman, född 1891 i Ryssland, arbetade som kryptoanalytiker för den amerikanska staten i början av 1900-talet. Han publicerade 1918 texten " The Index of Coincidence and Its Applications in Cryptography", som många anser är det första verket i kryptologins historia som vetenskap.

Under 1920- och 30-talet arbetade man inom FBI för att försöka knäcka de krypterade meddelanden som maffian använde.

Krypton användes visserligen under Första Världskriget, men det var först i och med det andra kriget, som krypton blev särskilt viktiga för krigets utgång. Tyskarna hade tagit fram en maskin, kallad Enigma, som genererade kryptotext. I Japan användes en motsvarande maskin, kallad Purple.

De första försöken att knäcka koden som föregångaren till Enigma skapade, gjordes i Polen på 30-talet. Men det var inte förrän i början av 40-talet, som man äntligen lyckades, tack vare den brittiske matematikern Alan M. Turing (1912-1954).

Turing arbetade för den brittiska militären och byggde en maskin, "the Turing Bombe", som klarade att dekryptera Enigma-koden på ungefär 15 timmar. Att Turing och hans forskarteam till slut lyckades anses vara en av de viktigaste anledningarna till att de allierade vann kriget.

Samtidigt försökte amerikanerna, via Signals Intelligence Service (SIS), knäcka japanernas krypteringsmaskin, Purple. Denna uppgift var matematiskt något svårare, eftersom japanerna utvecklat ett mer avancerat krypto. Tack vare en maskin kallad ECM Mark II model CSP 889/2900 eller kort och gott SIGABA, lyckades man till slut dekryptera Purples kod.

SIGABA användes fram till 1959, då den ersattes av bl.a ENIAC. Du kan läsa mer om hur datorerna utvecklades på min sida om datorns historia. Läs mer >

Under början av 1970-talet hade man börjat få fram så kraftfulla datorer, att man behövde skapa lagar för hur företag och andra fick använda krypteringsalgoritmer. Den amerikanska statens säkerhetstjänst, National Security Agency (NSA) tog med hjälp av några forskare och datortillverkare, bl.a IBM, fram flera förslag på en gemensam policy.

1977 skapade amerikanska National Bureau of Standards en standard kallad Data Encryption Standard (DES). Man kan säga att DES var det första försöket att skapa en internationell krypteringsstandard. Men den togs också fram för att undvika att vissa svårknäckta krypton hamnade i orätta händer. DES reglerade också vilka krypton som fick användas utanför USA.

Året innan hade Martin Hellman, Ralph Merkle och Whitfield Diffie vid Stanforduniversitetet, presenterat ett förslag på kryptografi med publika nycklar (se mer om det i avsnitt 4). De använde en metod som senare har fått namnet "the knapsack problem". Det bygger på antagandet att det till ett problem av en viss typ endast finns en enda lösning och att man inte kan nå denna lösning på annat sätt än genom att metodiskt pröva sig fram. Det betyder alltså att lösningen tar väldigt lång tid att hitta om problemet är tillräckligt komplext.

Förslaget har diskuterats flitigt och man har inte alltid varit överens i forskarvärlden huruvida antagandet är riktigt eller inte. En av kryptologins viktigaste frågor är ju nämligen om det går att hitta genvägar till lösningar på krypton.

1977 presenterade också Ronald L. Rivest, Adi Shamir och Leonard M. Adleman sin algoritm, som gavs namnet RSA. Jag berättar mer om den i avsnitten som följer.

1990 presenterades det första 128-bitars kryptot. Det ersatte DES och fick namnet IDEA eller "International Data Encryption Algorithm". Det var framtaget speciellt för att gå att använda av vanliga persondatorer. Detta fick amerikanska staten att försöka stoppa användningen, som man var rädd skulle komma i orätta händer.

1991 släppte Phil Zimmerman den första versionen av Pretty Good Privacy (PGP). Programmet använde IDEA och var gratis. Programmet var ungefär lika kraftfullt som militären använde och blev snabbt väldigt populärt. Det utvecklades till en slags kryptostandard.

På senare år har en debatt förts om stark kryptering (strong encryption). Det handlar om sådana krypton som praktiskt taget inte går att lösa. Vissa menar att detta är bra, eftersom säkerheten då blir väldigt hög. Andra menar å andra sidan att sådana krypton kan användas av personer eller företag, som sysslar med kriminell verksamhet eller terrorism.

Amerikanska myndigheter har vid flera tillfällen inte bara förbjudit export av vissa kryptoalgoritmer. Man har också krävt att få en kopia av den privata nyckel som krävs för dekryptering. Det senare har skapat många frågor om hur sådana nycklar skulle kunna förvaras på ett säkert sätt och om detta alls är ett bra sätt att komma bort ifrån problemet med för starka krypton.

3. Kryptoalgoritmer

Kommer du ihåg rövarspråket? Det lärde man sig i scouterna som ett sätt att skicka meddelanden som ingen annan förstod. Man ersatte varje konsonant med ett "o" följt av samma konsonant, vilket gjorde det lätt att koda, men svårt att läsa. Ett ord som "jag" blev på rövarspråket "jojagog".

I krypteringssammanhang skiljer man mellan klartext och kryptotext. Här ser vi alltså att klartexten är "jag" och kryptotexten är "jojagog". "Jag heter Jonas" blir "Jojagog hohetoteror Jojononasos". För att förstå chiffret måste man veta att det finns ett "o" och en konsonant för mycket. Man måste alltså ha en metod för att kunna tyda koden.

Grunden för all kryptografi är den eller de metoder man använder för att skapa kryptot. Det finns många olika metoder inom kryptografin. För varje metod finns dessutom ett antal olika sätt att räkna. Dessa sätt kallas ibland för algoritmer, som är en slags formler.

Algoritmen är alltså ett sätt att räkna. I rövarspråket räknar man enligt principen

{konsonant + o + upprepning av konsonant}

I kryptografin är dock algoritmerna oerhört mycket mer komplicerade och har tagits fram genom forskning. Många algoritmer är skyddade av patent och kräver en särskild licens för den som vill använda dem.

I de flesta länder, bl.a Sverige och USA, regleras krypteringsteknologin av olika lagar och exportregler. En effektiv kryptometod för att dölja information kan ju användas också i krig och betecknas därmed som "dual use" (ungefär "dubbelt användbar"). Därmed kan man inte distribuera den hur som helst.

Ett amerikanskt företag som äger många rättigheter till kryptering och licensierar ut till andra företag är RSA. Jag nämner lite mer om det längre ner på den här sidan.

Det finns två sätt att avgöra om en krypteringsmetod är bra. Först och främst handlar det om tiden det tar för datorn att kryptera ett meddelande. För den som skickar krypterad information via e-post är detta inte så viktigt, men det företag som krypterar nätverkstrafiken måste ha hög hastighet och då är det viktigt att krypteringen sker snabbt.

Det andra som avgör om en krypteringsmetod är bra är tiden det tar att lösa kryptot. Alla krypton går att räkna ut förr eller senare och ju senare desto bättre. Det som avgör hur länge det tar för någon utomstående att lösa kryptot beror på längden som krypteringsnyckeln har.

Ju längre nyckeln är desto längre tid tar det att knäcka. Rövarspråkets nyckel är ju väldigt kort. Lite svårare att läsa den krypterade koden hade det blivit om vi dessutom satt in ett extra steg i chiffret, t.ex

{konsonant + o + upprepning av konsonant + nästa konsonant enligt alfabetet + a + samma konsonant igen}

Då hade "jag" blivit "jojkakagoghah".

För de krypton som används idag för internet är 128 bitars längd vanligt, då det gäller symmetrisk kryptering, t.ex SSL-sessioner. För identifieringskryptering används asymmetrisk kryptering. Här utnyttjar man nycklar med 512 eller 1.024 bitar.

Vanligaste symmetriska algoritmerna var när detta skrevs (oktober 2003) AES, DES och Blowfish:

  • AES: The Advanced Encryption Standard används för icke-militärt bruk. De algoritmer som militären använder hålls hemliga och rent generellt förbjuds symmetriska nycklar som är längre än 40 bitar. Algoritmen togs fram under 1997-99 av "the National Institute of Standards and Technology" (NIST) i USA, som ett försök att hitta på något bättre än DES (se nedan).
  • DES: Data Encryption Standard utvecklades ursprungligen av IBM och var länge förbjuden att exportera utanför USA, eftersom den ansågs generera olösbara krypton. Algoritmen kan skapa minst 72.000.000.000.000.000 (72 kvadriljoner) möjliga nycklar. Finns även i en variant kallad "Triple-DES".
  • Blowfish: Denna algoritm presenterades under 1993 som ett snabbare alternativ till DES och den mindre spridda IDEA. Denna algoritm är helt fri för alla att använda och har därför blivit mycket populär.

De mest använda algoritmerna för asymmetrisk kryptering var RSA och DSA:

  • RSA: Jag nämner en hel del om denna algoritm på denna sida. Läs mer i sista avsnittet.
  • DSA: Signaturalgoritmen i "Digital Signature Standard" (DSS) kallas DSA. DSA står för "Digital Signature Algorithm" och har utvecklats av amerikanska "National Security Agency" (NSA) som en algoritm för att skapa främst digitala signaturer.

4. Symmetrisk och asymmetrisk kryptering

Man brukar skilja mellan två grundmetoder vid kryptering: rak och asymmetrisk.

Symmetrisk kryptering kallas ibland också för "rak" och innebär att man använder samma nyckel för kryptering och dekryptering. Denna metod används ofta när det skall gå snabbt att kryptera och låsa upp kryptot, t.ex vid nätverkstrafik, som jag nämnde nyss.

Vid rak kryptering kan inte nyckeln överföras okrypterad, eftersom obehöriga då skulle kunna få tillgång till den. Den kan inte heller överföras krypterad, eftersom mottagaren då inte kan läsa den och förstå hur man använder den. Nyckeln måste därför överföras på annat sätt, t.ex genom asymmetrisk kryptering eller via vanliga disketter och liknande lagringsmedia, vilka kan skickas med bud eller via posten.

Asymmetrisk kryptering innebär att avsändaren och mottagaren har var sin nyckel, som inte är samma nyckel. Man säger att den ena av nycklarna är privat eller hemlig. På engelska kallas den för "private key". Den andra nyckeln är publik eller offentlig och heter på engelska "public key".

I rövarspråket används endast en privat nyckel och en symmetrisk kryptometod. Det gör att kryptot bara kan dekrypteras av dem som har nyckeln. På motsvarande sätt kan bara de med nyckeln skapa kryptokoden.

Vid asymmetrisk kryptering kan ett krypto skapat med den ena nyckeln endast dekrypteras med den andra. Avsändaren använder en publik nyckel, mottagaren har en privat nyckel. Den ena kan endast användas till att kryptera meddelandet och den andra kan bara låsa upp kryptot. Vill man dölja information för obehöriga, kan man kryptera den med den publika nyckeln. Sedan kan bara den som har den privata nyckeln läsa den. På motsvarande sätt kan man skapa en säker identifiering av sg själv genom att kryptera med den privata nyckeln. Då kan alla som har den offentliga nyckeln se att man verkligen är den man är.

Den asymmetriska krypteringsmetoden brukar användas då det är viktigt att informationen inte går att öppna av utomstående. Den är vanlig då man använder digitala signaturer, som jag återkommer till i nästa avsnitt.

Ett av de vanligaste systemen för asymmetrisk kryptering har varit PGP, som är en förkortning för "Pretty Good privacy". Metoden kom i sin första version 1991 och gör det möjligt att skicka krypterad information via t.ex e-post. En annan, liknande standard för e-post är S/MIME, vilket utläses "Secure Multi-Purpose Internet Mail Extensions".

Förutom e-postkryptering brukar man också tala om fil-, folder-, och hårddiskkryptering. Principerna är desamma som för all annan kryptering. Du hittar länkar till relevanta sajter och program på min sida med surftips. Gå dit >

Privata nycklar måste alltid sparas så att ingen annan kommer åt dem. Ett vanligt sätt är att förvara dem i krypterad form på datorn. För att ytterligare öka säkerheten brukar nycklar bytas ut med jämna mellanrum.

5. Digitala signaturer och elektroniska underskrifter

Som jag tidigare nämnt kan man välja att kryptera olika delar av informationsmassan. Man kan kryptera hela informationen, något som bara brukar omnämnas "kryptering".

Man kan också kryptera informationen om avsändarens identitet eller för att garantera att all information finns med. Detta kallas ofta för "signering" eller "digital signatur".

Digitala signaturer åstadkommer man genom asymmetrisk kryptering. Signaturerna används för att kunna identifiera en avsändare. Tyvärr finns det många missförstånd kring begreppen "signatur" och "namnteckning" och man hör ibland förklaringen att det är samma sak.

När du handlar med kontokort i en vanlig butik och blir ombedd att skriva din signatur, är det egentligen din namnteckning du skall skriva. På engelska blir "namnteckning" visserligen "signature", men på svenska kan signatur snarare sägas vara detsamma som "igenkänningstecken". Det skulle alltså kunna vara ett fingeravtryck eller det att du skriver dina initialer.

På internet är en digital namnteckning en slags digital signatur, som juridiskt skall kunna ersätta en skriven namnteckning. Man kallar sådana digitala signaturer för elektroniska underskrifter och de används för olika juridiska handlingar. Men alla digitala signaturer är inga juridiska handlingar.

6. Principerna för att skapa nycklar

Enkelt uttryckt räknar man fram nycklar genom att en programvara tar fram ett slumptal, som sedan matas in i en matematisk formel. Utifrån denna får man sedan fram två nycklar. Man använder sig ofta av RSA och deras algoritm.

Det är oerhört viktigt att slumptalen verkligen är slumpmässiga. Därför krävs en mycket bra slumptalsprocessor i datorn. Har man en för dålig sådan kan man nämligen se mönster i de tal som matas fram, vilket gör det lättare att knäcka kryptot man sedan skapar.

Steg för steg ser det ut så här:

(i) Först beräknas en kontrollsumma utifrån den information som skall signeras. Principen är densamma som för personnumret, som ju har en kontrollsiffra allra sist. Kontrollsiffran beräknas då utifrån de 9 första siffrorna. Ett annat ord för kontrollsumma är checksumma, som är det engelska uttrycket "checksum".

(ii) Sedan krypteras kontrollsumman med en privat nyckel.

(iii) Kontrollsumman skickas därefter med den övriga, okrypterade informationen och fungerar då som en slags digital signatur. Överföringen kan ske via e-post, t.ex som en bifogad fil, eller publiceras som en fil för nerladdning på en hemsida.

(iv) När mottagaren tar emot informationen dekrypteras signaturen med den publika nyckeln så att kontrollsumman framträder i okodad form.

(v) Mottagaren beräknar därefter en ny kontrollsumma med det program han eller hon har installerat på datorn. Viktigt är dock att detta program använder samma algoritmer som avsändaren.

(vi) Den uträknade kontrollsumman jämförs sedan med avsändarens kontrollsumma. Stämmer värdena överens kan mottagaren dra slutsatsen att avsändaren är korrekt och att all information har kommit fram på ett korrekt sätt.

Ett problem är naturligtvis hur avsändaren och mottagaren kan bekräfta varandras identiteter. Ett annat sätt att uttrycka detta är "Hur vet man vilka nycklar som hänger ihop?". Här använder man sig av något som kallas CA eller "Certificate Authority".

En CA kan vara ett företag eller en organisation. Den instans som fungerar som utfärdare av certifikatet tar då emot ansökningar från personer med offentliga nycklar och bekräftar om en koppling finns med ett intyg. Utfärdaren förser sedan detta intyg eller certifikat med sin elektroniska stämpel.

En CA har till sin hjälp en CPS eller "Certification Practice Statement", som på svenska blir certifieringspolicy. I denna finns riktlinjer för hur man skall kunna jämföra och godkänna nycklar, hur kopplingen skall se ut, hur intygen skall skrivas, osv.

Intyg kan finnas i flera olika nivåer. Det kan finnas kopplingar mellan en användare och en nyckel eller mellan en e-postadress och nyckel, vilket ger två olika innebörder. Den förra väger ju mycket tyngre än den senare, eftersom en e-postadress kan användas av flera personer.

Det finns olika standarder för hur intygen skall se ut. Mycket beror naturligtvis på vad det är för typ av certifikat man vill ha. Andra faktorer som spelar in är hur hög säkerhet man vill ha och hur certifieringen skall användas, t.ex om den bara skall gälla e-post eller om den skall gälla vissa hemsidor, osv.

Man brukar skilja mellan hårda och mjuka certifikat. Hårda är sådana som lagras i ett chip eller sköts via en dosa, som är kopplad till datorn. Mjuka certifikat är sådana som laddats ner i form av en eller flera filer på datorn.

Hela den infrastruktur som möjliggör skapandet av cerifikat (certifiering), samt kontroll (verifiering) och återtagande (revokering) av certifikat, kallas PKI eller "Public Key Infrastructure". Hur denna mijö skall se ut debatterar man om både nationellt och inom världshandeln. Ett försök att skapa en fungerande PKI är t.ex SET.

7. RSA-algoritmen

Som jag tidigare nämnt är RSA ett välkänt begrepp inom kryptografin. Rivest, Shamir och Adelman utvecklade en krypteringsalgoritm som de tog patent på och började licensiera. Algoritmen kallas även för MIT-algoritmen, eftersom de arbetade där.

Problemet med att gå in mer i detalj på hur kryptering fungerar i praktiken är att det kräver ganska omfattande matematiska kunskaper. Nyttan är inte heller särskilt stor, eftersom de flesta som använder kryptering har särskilda program som sköter om det hela.

Jag skall dock ändå göra ett försök att förklara något av hur RSA-algoritmen fungerar. Jag har hämtat exemplet från Johan Garcias text "Säkerhet vid betalningsförmedling. Publik nyckelkryptering ur ett krypotanalytiskt perspektiv" från 1996.

Vi skall skapa ett nyckelpar med en publik nyckel för kryptering och en privat nyckel för dekryptering.

1. Först och främst väljer vi ut två positiva primtal, som vi kallar P och Q. Primtal är tal som endast är jämt delbara med sig själva och med ett. Jag väljer P=5 och Q=11.

2. Nästa steg är att beräkna produkterna av

N= P x Q
X= (P-1) x (Q-1)

Detta blir i min uträkning

N= 5 x 11 = 55
X= 4 x 10 = 40

3. Steg nummer tre är att välja ut ett tal, E, som skall vara ett relativt prima tal till X. Det betyder inte att det mår bra, utan att det måste ha en gemensam nämnare med X som är ett. Två tal är alltså relativt prima om det inte går att hitta något annat tal än ett att dela dem med.

Exempel: 3 och 7 relativt prima eftersom det inte finns något tal som är jämnt delbara med dem. Men 3 och 9 är inte relativt prima eftersom båda går att dela med 3.

Jag väljer ut talet 7. Totalt har vi nu följande:

P=5
Q=11
N=55
X=40
E=7

Den publika nyckeln består av talen E och N, alltså 7 och 55.

4. Nästa steg är att hitta ett tal, D, som uppfyller formeln:

E x D (modX) = 1

Här står (modX) för moduloräkning, som enkelt uttryckt kan sägas vara en slags räkning med heltalsresterna av ett tal. Exempel: 19 (mod 3) blir 1, eftersom 19 går att dela i 3 delar med resten 1. 19 (mod 4) blir följaktligen 3, eftersom 4x4+3=19.

Ok, det betyder att vi måste räkna ut talet 7 x D (mod 72) = 1. Vi söker alltså ett tal som multiplicerat med E ger en rest på 1 när produkten delas med X.

7 x D / 72 = 1

D blir 23, eftersom 7 x 23 = 161 och 161 (mod 40) = 1. D utgör den privata nyckeln och nu har vi följande:

Publik nyckel: 7, 55
Privat nyckel: 23

Det största värde som kan krypteras motsvaras av talet N-1, vilket alltså skulle vara 54. Men i praktiken är denna begränsning inte relevant, eftersom man använder nycklar som är hundratals bitar långa.

5. För att kryptera använder man formeln

K = TE (mod N)

där K står för kryptot, T är klartexten och E och N är den publika nyckeln.

Exempel: Jag vill kryptera bokstaven H, som jag "översätter" med talet 8, som är bokstavens plats i alfabetet. Det krypterade värdet blir då:

K = 87 (mod 55)
2 = 87 (mod 55)
K = 2

Det krypterade värdet blir alltså 2. Hur skall man då avkryptera detta värde?

6. För att dekryptera använder man formeln

T = KD (mod N)

Där T är klartexten, K är kryptotexten, D den privata nyckeln och N en del av den publika nyckeln. Vi får då:

T = 223 (mod 55)
8= 223 (mod 55)
T = 8

Självklart är RSA-algoritmen en aning mer komplicerad och återges här endast i en mycket förenklad form. Normalt använder man dessutom tal som är hundratals siffror långa. Detta kräver i sin tur ganska så omfattande beräkningskapacitet av de datorer som är inblandade. Krypteringen och dekrypteringen tar alltså förhållandevis lång tid.

8. Litteratur

Encyclopedia Intranetica "Krypto & Digitala Signaturer" www.intranetica.com/intranetica/kds/index.shtml

Shireen Hebert "A Brief History of Cryptography" cybercrimes.net/Cryptography/Articles/Hebert.html

Eva Kristina: "Krypto i gamla tider" hem.passagen.se/evakrist/crypto.html

Johan Garcia "Säkerhet vid betalningsförmedling. Publik nyckelkryptering ur ett krypotanalytiskt perspektiv" (1996) www.cs.kau.se/~johang/rsa

Robert Malmgren "Famous people in the history of Cryptography" www.it.kth.se/~rom/cryptopeople.html

Randy Nichols "Classical Cryptography Course" www.fortunecity.com/skyscraper/coding/379/lesson1.htm

PKI-Forum: "Kryptering" www.pki-forum.com

Eric Robert's "Public Key Cryptography" cse.stanford.edu/classes/sophomore-college/projects-97/cryptography/history.html

Secure 4 Net: "The History of Cryptography" www.image-in.co.il/HTML/SEC4NET/aes_crypto.html

Förslag på vidareläsning:

PGP.com: www.pgp.com
RSA Security: www.rsasecurity.com

The Alan Turing Home Page: www.turing.org.uk/turing
National Cryptologic Museum: www.nsa.gov/museum

Se även min sida med surftips. Gå dit >


Den här sidan är en del av Jonas Webresurs - www.jonasweb.nu - copyright © 1998-2011