Moderna krypteringsmetoder

Som moderna krypteringsmetoder definieras metoder som konverterar klartext till kryptotext med hjälp av krypteringsnyckel eller krypteringsnycklar. Det är nu som vi behöver den sorten av matematik som är grunden till kryptografi. Kryptering ska betraktas nu som en funktion vilket kräver matematiska grunder. För oss, nätverkskunniga, är viktig att känna till de olika typer av krypteringsmetoder för att kunna välja de i olika implementeringar.

Symmetriska kryptometoder

Båda sändare och mottagare måste ha tillgång till krypteringsnyckel för att kryptera och dekryptera meddelandet. Det finns två olika typer av symmetriska chiffer, blockchiffer och flödeschiffer.

Blockchiffer delar upp informationen som ska krypteras i block av en fixerad storlek medan flödeschiffret krypterar varje enskild symbol för sig. Som namnet antyder är flödeschiffret främst framtagna för att hantera kontinuerliga informationsflöden.

Blockchiffer

Blockchiffer krypterar meddelanden genom att dela upp dem i bitar (block) av bestämd längd och kryptera varje block skilt för sig. Den fixerade längden kallas blockstorlek och är i moderna blockchiffer oftast 64 bitar. Man använder samma kryptoalgoritm , samma kryptonyckel, för att kryptera alla block.

Bild 1: Block på 64 bitar

Krypteringsalgoritmen bör helst vara reversibel för att det skall vara enklare att implementera eftersom man då kan använda samma kryptoalgoritm för både kryptering och dekryptering. Här nedan några egenskaper för blockchiffer:

  • Fixerad blockstorlek
  • Block kan fyllas med tomma bitar så att varje blocka är 64 bitar
  • Klartext delas upp i ett antal block som efter kryptering är de också samma antal kryptoblock

Flödeschiffer

En flödeskryptering (eller strömcheffer översatt från engelska stream cipher) är en krypteringsalgoritm som krypterar 1 bit eller 1 byte av ren klartext i taget. Förenklat kan man säga att ett tecken åt gången krypteras klartexten till kryptotext. Det gör att denna kryptochiffer är snabbt och har lätt att identifiera fel eftersom ett fel påverkar bara ett tecken.

Bild 2: Flödeschiffer, ett tecken per gång.

Ett sätt att illustrera hur flödeschiffer fungerar skulle kunna göras så här:

Bild 3: Flödeschiffer – bit per bit

I bilden ovan är kryptonyckeln en slumpmässig följd av ettor och nollor, ett påhittat värde som användes vid kryptering av klartextblock. Dessa ettor och nollor kan väl vara en del av en sträng (text) för att kryptera ett meddelande med hjälp av XOR-operatorn. En sådan kryptochiffer kallas engångskrypto (på engelska one-time pad). Under förutsättningen att en helt slumpmässig sträng används anses denna krypteringsmetod vara helt säker.

Exempel

Klartexten meet me outside ska krypteras med engångskrypto – one-time pad. Denna exempel visar endast principen och inte någon matematisk grund.

Först behöver vi alfabetet med 26 tecken eftersom klartexten är på engelska. Vi kommer att identifiera varje teckens position i alfabetet:

a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  • I första raden skriver vi klartexten utan mellanslag
  • I andra raden skriver vi det numeriskt värde som teckens position har.
  • I tredje raden skriver vi en slumpmässig följd av bokstäver (lika många som tecken i klartexten)
  • I fjärde raden skriver vi det numeriskt värde för varje tecken i tredje raden.
  • I femte raden adderar vi de numeriska värde i rad två och fyra
    • 12 + 1 = 13; 4 + 3 = 7; 4 + 20 = 24; 19 + 5 = 24; 12 + 6 = 18; 4 + 7 = 11; 14 + 22 = 36 – 26 = 10; 20 + 4 = 24; 19 + 8 = 27 – 26 = 1; 18 + 20 = 38 – 26 = 12; 8 + 5 = 13; 3 + 6 = 9; 4 + 22 = 26 – 26 = 0
  • Konvertera det numeriskt värde till kryptotext
Klartext: m e e t m e o u t s i d e
Teckens position 12 4 4 19 12 4 14 20 19 18 8 3 4
En gångs kryptonyckel B D U F G H W E I U F G W
Teckens position 1 3 20 5 6 7 22 4 8 20 5 6 22
Numerisk kryptotext 13 7 24 24 18 11 10 24 1 12 13 9 0
Kryptotext N H Y Y S L K Y B M N J A

För några år sedan var en av den mest använd kryptochiffer RC4 – Rivest Cipher 4 – implementerat i olika protokoll som WEP och WPA (trådlöst nätverk) samt TLS. Tyvärr har nyligen avslöjat sårbarheter i RC4, vilket påverkade beslutet att förbjuda dess användning.

Asymmetriska kryptometoder

En annan typ av moderna chiffer är den asymmetriska. Idén med öppen kryptonyckel presenterades år 1976. Metoden baserar sig på konceptet om privat och publik (öppen) kryptonycklar för att kryptera och dekryptera. Traditionellt har distribution av kryptonycklar varit problematisk, men inte för asymmetriska kryptochiffer. Den publika kryptonyckel kan distribueras öppet men den privata håller sån sådan privat, dvs. hemligt.

Kommunikationsparter har var sin två kryptonycklar, en för att kryptera och den andra för att dekryptera. Dessa två nycklar är sammanbundna matematiskt så att de fungerar parvis. I exemplet nedan Alice krypterar sitt meddelande med Bobs publik kryptonyckel och det innebär att endast Bob kan dekryptera meddelandet. Även om Eve, som avlyssnar kommunikation, kan inte dekryptera meddelandet eftersom hon behöver Bobs privat kryptonyckel.

Den öppna nyckeln är tillgänglig för alla, medan den personliga nyckeln endast finns hos ägaren. Vid asymmetriska krypteringar används den ena nyckeln — vanligtvis den publika (öppna) nyckeln — för att kryptera meddelandet. För dekryptering används den privata (personliga) nyckeln. På så sätt kan man vara säker på att information som har blivit krypterad med en viss nyckel, kan dekrypteras bara med den motsvarande andra nyckeln.

Fördelen med asymmetrisk kryptering är att ingen hemlig nyckel behöver skickas mellan sändare och mottagare, och att kryptonycklarna växelvis kan användas för antingen kryptering eller dekryptering, d.v.s. att det är även möjligt att i omvänd förbindelseriktning kryptera med den personliga nyckeln och dekryptera med den öppna. Nackdelen är att metoden är långsam.

RSA

Krypteringsalgoritmen RSA (döpt efter Ron Rivest, Adi Shamir och Leonard Adleman som först publicerade den) är ett exempel på asymmetrisk kryptering. I exemplet ovan där Alice och Bob kommunicerar med krypterat meddelande har till exempel Bob en publik (öppen) kryptonyckel och en privat kryptonyckel. Den publika (öppna) kryptonyckeln delar man ut till alla, därmed Alice och Eve, så att alla som vill kan kryptera meddelanden och skicka till Bob, men det är bara Bob som kan dekryptera meddelandet med hjälp av sin privata (personliga) kryptonyckeln.