Symmetrisk kryptering

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 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. Efter kryptering blir klartexten NHYYSLKYBMNJA. Hur? 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

Tabellen innehåller de olika steg krypteringen av ett meddelande går genom:

1. Klartext m e e t m e o u t s i d e
2. Teckens position 12 4 4 19 12 4 14 20 19 18 8 3 4
3. En gångs kryptonyckel B D U F G H W E I U F G W
4. Teckens position 1 3 20 5 6 7 22 4 8 20 5 6 22
5. Numerisk kryptotext 13 7 24 24 18 11 10 24 1 12 13 9 0
6. Kryptotext N H Y Y S L K Y B M N J A

Förklaringar:

  1. I första raden skriver vi klartexten utan mellanslag
  2. I andra raden skriver vi det numeriskt värde som teckens position har.
  3. I tredje raden skriver vi en slumpmässig följd av bokstäver (lika många som tecken i klartexten)
  4. I fjärde raden skriver vi det numeriskt värde för varje tecken i tredje raden.
  5. I femte raden adderar vi de numeriska värde i rad två och fyra
    • 12 + 1 = 13 dvs. N; 4 + 3 = 7 dvs. H; 4 + 20 = 24 dvs. Y och så vidare; 19 + 5 = 24; 12 + 6 = 18; 4 + 7 = 11; 14 + 22 = 36 – 26 = 10 (om summan är större eller lika än 26) ; 20 + 4 = 24; 19 + 8 = 27 – 26 = 1; 18 + 20 = 38 – 26 = 12; 8 + 5 = 13; 3 + 6 = 9; 4 + 22 = 26 – 26 = 0
  6. Konvertera det numeriskt värde till kryptotext

Symmetriska kryptoalgoritmer

Algoritm Beskrivning
Data Encryption Standard (DES) Detta är en äldre symmetrisk krypteringsalgoritm som använder en kort nyckellängd vilket gör den osäker för de flesta aktuella användningsområden.
3DES (Triple DES) Den är ersättningen för DES och upprepar DES-algoritmprocessen tre gånger. Det bör undvikas om möjligt eftersom det är planerat att avvecklas 2023.
Advanced Encryption Standard (AES) AES är en säker och effektivare algoritm än 3DES. Det är en populär och rekommenderad symmetrisk krypteringsalgoritm som erbjuder nio kombinationer av nyckel- och blocklängd. AES använder en variabel nyckellängd på 128-, 192- eller 256-bitars nyckel för att kryptera datablock som är 128, 192 eller 256 bitar långa.
Software-Optimized Encryption Algorithm (SEAL) SEAL är en snabbare alternativ krypteringsalgoritm till DES, 3DES och AES. Den använder en 160-bitars krypteringsnyckel och har en lägre inverkan på processorn jämfört med andra mjukvarubaserade algoritmer.
Rivest ciphers (RC) series algorithms Denna algoritm utvecklades av Ron Rivest. Flera varianter har utvecklats, men RC4 är den vanligaste. RC4 är ett chiffer som användes för att säkra webbtrafik. Det har visat sig ha flera sårbarheter och därför bör den inte användas.