What is the easiest cipher mode of Operation?

AES Kryptering: Forstå de forskellige tilstande

03/07/2019

Rating: 4.47 (6817 votes)

I vores stadigt mere digitale verden er beskyttelsen af data altafgørende. Fra netbank til private beskeder er kryptering den usynlige helt, der beskytter vores oplysninger mod nysgerrige øjne. En af de mest udbredte og betroede krypteringsstandarder er AES (Advanced Encryption Standard). Men at vælge AES er kun det første skridt. For at implementere det korrekt og sikkert, skal man også vælge en 'driftstilstand' (mode of operation). Valget af tilstand har en dramatisk indflydelse på sikkerhedsniveauet, og en forkert beslutning kan gøre selv den stærkeste kryptering sårbar. Denne artikel vil guide dig gennem de mest almindelige AES-tilstande, forklare deres funktioner, fordele og ulemper, og hjælpe dig med at forstå, hvorfor nogle er langt mere sikre end andre.

What is AES and how does it work?
AES is an algorithm for block encryption, which is in widespread use. Back in 2001, five modes of operation of the AES algorithm were standardized: ECB (Electronic Code Book), CBC (Cipher Block Chaining), CFB (Cipher FeedBack), OFB (Output FeedBack) and CTR (Counter).
Indholdsfortegnelse

Hvad er en blokkryptering og en driftstilstand?

Før vi dykker ned i de specifikke tilstande, er det vigtigt at forstå to grundlæggende begreber. AES er en blokkryptering, hvilket betyder, at den opererer på datablokke af en fast størrelse (for AES er dette 128 bits eller 16 bytes). Men hvad sker der, når man skal kryptere en fil, der er mange megabytes stor? Man kan ikke bare kryptere den som én gigantisk blok.

Her kommer driftstilstande ind i billedet. En driftstilstand er en algoritme, der definerer, hvordan man gentagne gange og sikkert anvender en blokkryptering på datamængder, der er større end én blok. Den bestemmer, hvordan hver blok af data er kædet sammen med de andre, og hvordan man sikrer, at identiske datablokke ikke resulterer i identisk krypteret tekst, hvilket ville afsløre mønstre i dataene.

De Klassiske AES-Tilstande

Da AES blev standardiseret i 2001, blev fem primære driftstilstande specificeret. Lad os gennemgå dem én for én, fra den mindst sikre til de mere robuste alternativer.

ECB (Electronic Codebook) - Den Usikre Tilstand

ECB er den simpleste driftstilstand. Hver blok af klartekst (ukrypteret data) krypteres fuldstændig uafhængigt af de andre blokke ved hjælp af den samme nøgle. Forestil dig en lang besked, der deles op i 16-byte bidder; hver bid krypteres for sig og sættes derefter sammen igen.

  • Fordele: Meget simpel at implementere og meget hurtig, da hver blok kan krypteres parallelt (på samme tid).
  • Ulemper: Denne uafhængighed er også dens største svaghed. Hvis to blokke af klartekst er identiske, vil deres krypterede versioner (chiffertekst) også være identiske. Dette er katastrofalt for sikkerheden, da det lækker information om den oprindelige data. Et berømt eksempel er et billede af en pingvin krypteret med ECB-tilstand; selvom farverne er forvrængede, kan man stadig tydeligt se pingvinens omrids, fordi alle de identiske farveblokke i baggrunden er blevet krypteret til den samme værdi. Af denne grund anses ECB for at være fundamentalt usikker og bør aldrig bruges til at kryptere mere end én enkelt blok data.

CBC (Cipher Block Chaining) - Den Klassiske Forbedring

CBC-tilstanden løser det store problem med ECB ved at skabe en afhængighed mellem blokkene. Før hver klartekstblok krypteres, bliver den kombineret (ved hjælp af en XOR-operation) med den foregående bloks chiffertekst. For den allerførste blok, hvor der ikke er nogen 'foregående' blok, bruges en tilfældig datablok kaldet en initialiseringsvektor (IV).

Which AES mode should be used?
In addition, as a result of the analysis of the AES modes of operation by studying the literature, the conclusion is that, in order to obtain a proper and secure AES implementation, the CTR mode should be used. Content may be subject to copyright. Content may be subject to copyright.
  • Fordele: Identiske klartekstblokke resulterer ikke længere i identiske chiffertekstblokke, hvilket skjuler mønstre i dataene effektivt. Det var i mange år den mest populære driftstilstand.
  • Ulemper: Krypteringen er sekventiel; man kan ikke kryptere blok 2, før blok 1 er færdig. Dette betyder, at krypteringsprocessen ikke kan paralleliseres. Desuden, hvis en chiffertekstblok bliver beskadiget under transmission, vil det påvirke dekrypteringen af både den pågældende blok og den efterfølgende blok. CBC kan også være sårbar over for visse angreb (f.eks. 'padding oracle attacks'), hvis den ikke implementeres med stor omhu.

CFB (Cipher Feedback) og OFB (Output Feedback) - Stream Cipher Tilstande

Både CFB og OFB omdanner AES-blokkrypteringen til en stream cipher. En stream cipher genererer en strøm af pseudotilfældige bits (kaldet en keystream), som derefter kombineres (XOR) med klarteksten for at producere chifferteksten. Forskellen ligger i, hvordan de genererer denne keystream.

  • CFB (Cipher Feedback): Genererer det næste stykke keystream ved at kryptere den foregående chiffertekstblok. Dette skaber en afhængighed, ligesom i CBC.
  • OFB (Output Feedback): Genererer en hel keystream uafhængigt af dataene ved gentagne gange at kryptere en initialiseringsvektor. Denne keystream kan genereres på forhånd, før man overhovedet har dataene, der skal krypteres.
  • Fordele: Gør det muligt at kryptere data i mindre enheder end en fuld blok. Fejl i en bit under transmission påvirker kun den tilsvarende bit i OFB, mens det i CFB kan ødelægge en hel blok.
  • Ulemper: Ligesom CBC er krypteringen i disse tilstande ofte sekventiel. Genbrug af den samme initialiseringsvektor med den samme nøgle er katastrofalt for sikkerheden i begge tilstande.

CTR (Counter) - Den Moderne og Anbefalede Tilstand

CTR-tilstanden er også en stream cipher, men den gør tingene på en smartere og mere effektiv måde. I stedet for at kæde blokke sammen, tager CTR en unik værdi for hver blok (en 'nonce' kombineret med en tæller, der tæller op for hver blok: 1, 2, 3...) og krypterer denne værdi. Resultatet er en keystream-blok, som derefter XOR'es med klartekstblokken.

  • Fordele: Ekstremt effektiv. Da hver bloks keystream genereres uafhængigt af de andre, kan både kryptering og dekryptering udføres fuldt ud parallelt, hvilket giver en markant hastighedsforbedring. Man kan dekryptere enhver del af filen uden at skulle dekryptere alt, der kom før. Den er også simpel og sikker, forudsat at man aldrig genbruger den samme nonce/tæller-kombination med den samme nøgle.
  • Ulemper: Som med andre stream ciphers er det kritisk, at nonce/tæller-parret er unikt for hver blok, der krypteres med en given nøgle. Genbrug vil kompromittere sikkerheden fuldstændigt.

Sammenligningstabel over AES-tilstande

For at give et klart overblik er her en tabel, der sammenligner de vigtigste egenskaber ved de diskuterede tilstande.

TilstandTypeParallellisering (Kryptering)Parallellisering (Dekryptering)Sikkerhedsanbefaling
ECBBlokJaJaAnbefales ikke
CBCBlokNejJaAcceptabel (ældre systemer)
CFBStreamNejJaAcceptabel
OFBStreamJa (kun keystream)Ja (kun keystream)Acceptabel
CTRStreamJaJaStærkt anbefalet

Konklusion: Hvorfor CTR-tilstand er det foretrukne valg

Baseret på en analyse af sikkerhed, ydeevne og fleksibilitet, står det klart, at CTR-tilstand (Counter) er det overlegne valg for de fleste moderne applikationer. Dens evne til at blive fuldt paralleliseret giver en enorm ydeevnefordel i forhold til sekventielle tilstande som CBC. Samtidig er dens sikkerhedsmodel robust og velafprøvet, forudsat at den simple regel om unikke nonces overholdes.

Mens ældre systemer måske stadig benytter CBC, bør alle nye implementeringer sigte mod at bruge CTR eller endnu mere avancerede tilstande som GCM (Galois/Counter Mode), der bygger oven på CTR og tilføjer autentificering for at beskytte mod manipulation af data. Valget af den rigtige driftstilstand er lige så vigtigt som valget af selve krypteringsalgoritmen. Ved at vælge CTR sikrer man en implementering, der er både hurtig og sikker, og som kan modstå fremtidens udfordringer.

What cipher modes are used in AES?

Ofte Stillede Spørgsmål (FAQ)

Hvad er AES egentlig?

AES står for Advanced Encryption Standard og er en symmetrisk krypteringsalgoritme, der er valgt af den amerikanske regering til at beskytte klassificerede oplysninger. Den er nu den de facto globale standard for kryptering af data i hvile og under transport.

Hvorfor er en driftstilstand nødvendig?

Fordi AES kun kan kryptere faste datablokke på 16 bytes. En driftstilstand giver en metode til at anvende AES på beskeder af vilkårlig længde på en sikker måde, der undgår de faldgruber, som f.eks. at afsløre mønstre i dataene.

Hvilken AES-tilstand er den mest usikre?

ECB (Electronic Codebook) er uden tvivl den mest usikre tilstand. Fordi den krypterer identiske blokke på samme måde, lækker den betydelig information om de oprindelige data og bør aldrig bruges i praksis.

Hvad er en initialiseringsvektor (IV) eller en nonce?

En IV eller en nonce er en tilfældig eller semi-tilfældig værdi, der bruges til at starte krypteringsprocessen. Dens formål er at sikre, at selv hvis du krypterer den samme besked to gange med den samme nøgle, vil resultatet være to helt forskellige chiffertekster. Dette er afgørende for sikkerheden.

Hvis du vil læse andre artikler, der ligner AES Kryptering: Forstå de forskellige tilstande, kan du besøge kategorien Sundhed.

Go up