Symmetriska nyckelalgoritmer är en metod inom kryptografi. Det innebär att nycklarna för dekryptering och kryptering är exakt samma delade hemlighet. Denna hemlighet kan skapas slumpmässigt, härledas från ett lösenord, eller etableras genom ett hemligt nyckelutbytesförfarande som Diffie-Hellman. För att vara säker måste nyckeln hållas hemlig för alla obehöriga parter.
Varför används symmetrisk kryptering?
Algoritmer med symmetriska nycklar är viktiga eftersom de generellt är mycket snabbare än algoritmer för kryptografi med offentlig nyckel (asymmetrisk kryptografi). I asymmetrisk kryptografi kan krypteringsnyckeln göras offentlig så att vem som helst kan skicka ett sekretessbelagt meddelande, eftersom den öppna nyckeln inte i praktiken kan användas för att härleda dekrypteringsnyckeln. Men asymmetriska algoritmer är långsamma, så de används ofta bara för att säkert överföra en kort, symmetrisk sessionnyckel. Därefter används symmetrisk kryptering för att skydda själva kommunikationen eftersom den ger bättre prestanda vid stora datamängder.
Typer av symmetriska algoritmer
Det finns två huvudtyper av symmetriska chiffer: stream ciphers och block ciphers. Streamciphers krypterar data som en ström av bitar eller bytes, en i taget, vilket gör dem lämpliga för strömmande data. Blockchiffer tar fasta block av bitar (t.ex. 64 eller 128 bitar) och krypterar varje block som en enhet. Tidigare användes ofta 64-bitarsblock, men moderna chiffrer som Advanced Encryption Standard (AES) använder 128-bitarsblock för bättre säkerhet och prestanda.
Driftslägen (modes of operation)
Blockchiffer används nästan alltid i något driftsläge som definierar hur blocken kedjas ihop och hur slumphjälp (IV eller nonce) används. Vanliga driftslägen är CBC (Cipher Block Chaining), CTR (Counter), GCM (Galois/Counter Mode) och OFB/CFB. Valet av läge påverkar både säkerhet och flexibilitet:
- CBC kräver en slumpmässig IV och är sårbart för vissa paddingrelaterade attacker om inte autentisering används.
- CTR och GCM är strömlinjeformade lägen som förvandlar ett blockchiffer till en ström och möjliggör parallellisering. GCM ger dessutom inbyggd autentisering (AEAD).
- Alltid använd lämplig IV/nonce och se till att icke återanvända nonce-värden med samma nyckel, särskilt i CTR/ GCM-lägen.
Populära symmetriska chiffer
Exempel på populära symmetriska cyphers är Twofish, Serpent, AES (även kallad Rijndael), Blowfish, CAST5, RC4, TDES och IDEA. I moderna system rekommenderas ofta AES (i lägen som GCM eller CBC med separat autentiseringssteg) eller moderna Authenticated Encryption-algoritmer som ChaCha20-Poly1305 (utan länkade i texten).
Säkerhetsaspekter och attacker
Symmetriska system kan fortfarande vara sårbara för olika typer av attacker om de implementeras eller används felaktigt. Historiskt har vissa kryptoanalysmetoder utnyttjat symmetri, vilket gjorde tidiga system mindre säkra. Vanliga attacker inkluderar "known-plaintext"-attacker, "chosen plaintext"-attacker, differentialkryptoanalys och linjär kryptoanalys. Andra praktiska problem är:
- Återanvändning av nycklar eller noncer som kan leda till att hela trafiken avslöjas.
- Padding-orakelattacker mot CBC-läge om felmeddelanden läcks.
- Dålig nyckelhantering — om nyckeln komprometteras förloras all konfidentialitet.
Nyckelhantering och best practices
Några rekommenderade riktlinjer för säker användning av symmetrisk kryptering:
- Använd moderna, välgranskade algoritmer (t.ex. AES) och starka nyckellängder (minst 128 bitar; 256 bitar för långtidssekretess eller extra säkerhet).
- Använd Authenticated Encryption (AE eller AEAD) som AES-GCM eller ChaCha20-Poly1305 för både konfidentialitet och integritet.
- Generera nycklar och IV/nonce med kryptografiskt säker slumpgenerator. Använd aldrig återanvänt nonce med samma nyckel i lägen som CTR eller GCM.
- Använd säkra nyckelutbytesmetoder (t.ex. Diffie-Hellman eller protokoll som TLS) för att dela symmetriska sessionnycklar istället för att skicka dem i klartext.
- Skydda nycklar i vila (t.ex. med hårdvarunyckelhantering eller säkra element) och rotera nycklar regelbundet.
- Vid härledning från lösenord, använd moderna KDF:er (Key Derivation Functions) som Argon2 eller PBKDF2 med tillräckligt hög arbetskostnad för att motverka brute force-attacker.
Användningsområden
Symmetrisk kryptering används i många praktiska tillämpningar där prestanda och effektivitet är viktiga, exempelvis:
- Transportlagersäkerhet (TLS) där asymmetrisk kryptografi används för att byta sessionnyckel och symmetrisk kryptering skyddar själva datatrafiken.
- Disk- och filkryptering (t.ex. full-disk encryption) för att skydda data i vila.
- VPN-tunnlar och krypterade lagringslösningar.
- Säkra meddelandeapplikationer och autentiserade protokoll.
Sammanfattningsvis är symmetrisk kryptering en effektiv och central del av modern kryptografi: snabb för stora datamängder, men beroende av säker nyckelhantering, korrekt användning av driftslägen och skydd mot praktiska implementeringsfel för att uppnå god säkerhet.
Andra termer för kryptering med symmetrisk nyckel är kryptering med hemlig nyckel, enkel nyckel, delad nyckel, en nyckel och slutligen kryptering med privat nyckel. Den sista termen har inte samma betydelse som termen privat nyckel har i kryptering med offentlig nyckel.

