Datakonfidentialitet

Det finns två klasser av kryptering som används för att tillhandahålla datakonfidentialitet, symmetrisk och asymmetrisk. Dessa två klasser skiljer sig åt i hur de använder nycklar.

Symmetriska krypteringsalgoritmer såsom Data Encryption Standard (DES), 3DES och Advanced Encryption Standard (AES) bygger på principen att varje kommunicerande part känner till den hemliga nyckeln. Datakonfidentialitet kan också säkerställas med hjälp av asymmetriska algoritmer, inklusive Rivest, Shamir och Adleman (RSA) samt public key infrastructure (PKI).

Obs: DES är en äldre algoritm och bör inte användas. 3DES bör undvikas om möjligt.

Några skillnader mellan symmetrisk och asymmetrisk kryptering:

Symmetrisk kryptering:

  • använder samma nyckel för att kryptera och dekryptera data
  • nyckel-längder är korta (40 bitar – 256 bitar)
  • är snabbare än asymmetrisk kryptering
  • används vanligtvis för att kryptera omfattande data såsom i VPN-trafik.

Asymmetrisk kryptering:

  • använder olika nycklar för att kryptera och dekryptera data
  • nyckel-längder är långa (512 bitar – 4096 bitar)
  • beräkningsmässigt krävande och därmed långsammare än symmetrisk kryptering
  • används vanligtvis för snabba dataöverföringar såsom HTTPS vid tillgång till bankdata.

Symmetriska Krypteringsalgoritmer

Symmetriska krypteringsalgoritmer delas in i två kategorier: blockchiffer och strömchiffer (stream cipher).

  • Blockchiffer krypterar data i fasta storlekar. Blocken är vanligtvis 64-bitars eller 128-bitars. Padding (utfyllnad) läggs till om längden på datan i klartext inte är ett multipel av 8 för att skapa ett komplett block. Exempel på blockchiffer inkluderar DES och AES.
  • Strömchiffer (stream cipher) krypterar data en bit eller byte åt gången i en kontinuerlig sträng. Exempel på strömchiffer inkluderar RC4 och SEAL.

Idag används ofta symmetriska krypteringsalgoritmer med VPN-trafik. Detta beror på att symmetriska algoritmer använder mindre CPU-resurser än asymmetriska krypteringsalgoritmer. Kryptering och dekryptering av data är snabbt när man använder VPN. När symmetriska krypteringsalgoritmer används, precis som med alla typer av kryptering, ju längre nyckeln är, desto längre tid tar det för någon att upptäcka nyckeln. De flesta krypteringsnycklar är mellan 112 och 256 bitar. För att säkerställa att krypteringen är säker, använd en minst en nyckel-längd på 128 bitar. Använd en längre nyckel för mer säker kommunikation.

Välkända symmetriska krypteringsalgoritmer beskrivs här nedan:

  • Data Encryption Standard (DES) – Detta är en äldre symmetrisk krypteringsalgoritm. Den använder en kort nyckellängd som gör den osäker för de flesta nuvarande användningsområden.
  • 3DES (Triple DES) – Det är ersättningen för DES och upprepar DES-algoritmens process tre gånger. Det bör undvikas om möjligt eftersom det är planerat att pensioneras 2023. Om implementerat, använd mycket korta nyckellivslängder.
  • Advanced Encryption Standard (AES) – AES är en säker och effektivare algoritm än 3DES. Det är en populär och rekommenderad symmetrisk krypteringsalgoritm. Det erbjuder nio kombinationer av nyckel- och blocklängd genom att använda en variabel nyckellängd på 128-, 192- eller 256-bitarsnyckel för att kryptera datablock som är 128, 192 eller 256 bitar långa.
  • Software-Optimized Encryption Algorithm (SEAL) – SEAL är ett snabbare alternativ till symmetrisk krypteringsalgoritm jämfört med DES, 3DES och AES. Det använder en 160-bitars krypteringsnyckel och har lägre inverkan på CPU jämfört med andra programvarubaserade algoritmer.
  • Rivest ciphers (RC) series algorithms – Denna algoritm utvecklades av Ron Rivest. Flera varianter har utvecklats, men RC4 är den mest förekommande i användning. RC4 är en chiffer som användes för att säkra webbtrafik. Det har upptäckts att ha flera sårbarheter som har gjort det osäkert. RC4 bör inte användas.

Asymmetrisk Kryptering

Asymmetriska algoritmer, även kallade publiknyckel algoritmer, är utformade så att nyckeln som används för kryptering skiljer sig från nyckeln som används för dekryptering, som visas i figuren. Dekrypteringsnyckeln kan inte, på någon rimlig tidsram, beräknas från krypteringsnyckeln och vice versa.

Asymmetriska algoritmer använder en publik nyckel och en privat nyckel. Båda nycklarna är kapabla till krypteringsprocessen, men den partners privat-nyckeln krävs för dekryptering. Processen är också omvändbar. Data som krypteras med den publika nyckeln kräver den privata nyckeln för dekryptering. Asymmetriska algoritmer åstadkommer datakonfidentialitet, autentisering, och dataintegritet.

Eftersom ingen av parterna har en delad hemlignyckel, måste mycket långa nyckel-längder användas. Asymmetrisk kryptering kan använda nyckel-längder mellan 512 till 4 096 bitar. Nyckel-längder som är större än eller lika med 2 048 bitar kan anses vara tillförlitliga medan kortare nyckel-längder anses vara otillförlitliga.

Exempel på Asymmetrisk Kryptering:

Exempel på protokoll som använder asymmetriska nyckelalgoritmer inkluderar:

  • Internet Key Exchange (IKE) – Detta är en grundläggande komponent i IPsec VPN.
  • Secure Socket Layer (SSL) – Detta är nu implementerat som IETF-standard Transport Layer Security (TLS).
  • Secure Shell (SSH) – Detta protokoll tillhandahåller en säker fjärranslutning till nätverksenheter.
  • Pretty Good Privacy (PGP) – Detta datorprogram tillhandahåller kryptografisk integritet och autentisering. Det används ofta för att öka säkerheten i e-post kommunikation.

Som sagt tidigare, är Asymmetriska algoritmer betydligt långsammare än symmetriska algoritmer. Deras design bygger på komplexa beräkningar, såsom faktorisering av extremt stora tal eller beräkning av diskreta logaritmer av extremt stora tal.

Eftersom de är långsamma används asymmetriska algoritmer typiskt i kryptografiska mekanismer med låg datavolym, såsom digitala signaturer och nyckelutbyte. Dock tenderar nyckelhanteringen för asymmetriska algoritmer att vara enklare än för symmetriska algoritmer, eftersom vanligtvis en av de två krypterings- eller dekrypteringsnycklarna kan göras offentlig.

Vanliga exempel på asymmetriska krypteringsalgoritmer beskrivs nedan:

  • Diffie-Hellman (DH) – Diffie-Hellman-algoritmen möjliggör för två kommunicerande parter att komma överens om en nyckel som de kan använda för att kryptera meddelanden de vill skicka till varandra. Säkerheten för denna algoritm bygger på antagandet att det är enkelt att upphöja ett tal till en viss potens, men svårt att beräkna vilken potens som använts givet talet och resultatet. Nyckellängd: 512, 1024, 2048, 3072, 4096
  • Digital Signature Standard (DSS) och Digital Signature Algorithm (DSA) – DSS specificerar DSA som algoritmen för digitala signaturer. DSA är en offentlig nyckelalgoritm baserad på ElGamals signaturschema. Signaturskapande är lika snabbt som med RSA, men är 10 till 40 gånger långsammare för verifiering. Nyckellängd: 512 – 1024
  • Rivest, Shamir och Adleman krypteringsalgoritmer (RSA) – RSA är för offentlig-nyckelkryptografi som bygger på nuvarande svårigheten att faktorisera mycket stora tal. Det är den första algoritmen som är känd för att vara lämplig för både signering och kryptering. Den används brett inom e-handelsprotokoll och anses vara säker givet tillräckligt långa nycklar och användning av uppdaterade implementationer. Nyckellängd: 512 till 2048
  • ElGamal – En asymmetrisk nyckelkrypteringsalgoritm för publiknyckelkryptografi som bygger på Diffie-Hellman-nyckelöverenskommelsen. En nackdel med ElGamal-systemet är att det krypterade meddelandet blir mycket stort, ungefär dubbelt så stort som det ursprungliga meddelandet, och av denna anledning används det endast för små meddelanden såsom hemliga nycklar. Nyckellängd: 512 – 1024
  • Elliptic curve techniques – Elliptisk kurvkryptografi kan användas för att anpassa många kryptografiska algoritmer, såsom Diffie-Hellman eller ElGamal. Den stora fördelen med elliptisk kurvkryptografi är att nycklarna kan vara mycket mindre. Nyckellängd: 224

Diffie-Hellman

Diffie-Hellman (DH) är en asymmetrisk matematisk algoritm där två datorer genererar en identisk delad hemlighet utan att ha kommunicerat tidigare. Den nya delade nyckeln utbyts faktiskt aldrig mellan sändaren och mottagaren. Dock, eftersom båda parterna känner till den, kan nyckeln användas av en krypteringsalgoritm för att kryptera trafiken mellan de två systemen.

Här är tre exempel på tillfällen när DH vanligtvis används:

  • Data utbyts med hjälp av en IPsec VPN.
  • Används när data utbyts med hjälp av en SSL eller TLS VPN.
  • SSH-data utbyts.

För att illustrera hur DH fungerar, hänvisas till figuren.

Färgerna i figuren används istället för komplexa långa nummer för att förenkla DH-nyckelöverenskommelseprocessen. DH-nyckelutbytet börjar med att Alice och Bob kommer överens om en godtycklig gemensam färg som inte behöver hållas hemlig. Den överenskomna färgen i vårt exempel är gul.

Därefter väljer Alice och Bob varsin hemlig färg. Alice valde röd medan Bob valde blå. Dessa hemliga färger kommer aldrig att delas med någon. Den hemliga färgen representerar varje parts valda hemliga privata nyckel.

Alice och Bob blandar nu den delade gemensamma färgen (gul) med sin respektive hemliga färg för att producera en offentlig färg. Alice blandar således det gula med hennes röda färg för att producera en offentlig färg av orange. Bob blandar det gula och det blå för att producera en offentlig färg av grönt.

Alice skickar sin offentliga färg (orange) till Bob och Bob skickar sin offentliga färg (grön) till Alice.

Alice och Bob blandar var sin mottagen färg med sin egen, ursprungliga hemliga färg (röd för Alice och blå för Bob). Resultatet är en slutlig brun färgblandning som är identisk med partnerns slutliga färgblandning. Den bruna färgen representerar den resulterande delade hemliga nyckeln mellan Bob och Alice.

Säkerheten i DH bygger på att den använder mycket stora tal i sina beräkningar. Till exempel motsvarar ett DH 1024-bitars tal ungefär ett decimaltal med 309 siffror. Med tanke på att en miljard är 10 decimala siffror (1 000 000 000), kan man lätt föreställa sig komplexiteten i att arbeta med inte bara ett, utan flera 309-siffriga decimaltal.

Tyvärr är asymmetriska nyckelsystem extremt långsamma för all slags masskryptering. Det är därför vanligt att kryptera större delen av trafiken med en symmetrisk algoritm, såsom 3DES eller AES, och använda DH-algoritmen för att skapa nycklar som kommer att användas av krypteringsalgoritmen.