Knowhow / Kryptering

Hvordan fungerer krypteringsalgoritmen Rijndael?

Også kendt under forkortelsen AES

At overføre strengt fortrolige oplysninger sikkert, uden at uautoriserede får adgang, har altid været en udfordring. Tidlige „hemmelige sprog“ – for eksempel enkle bogstavforskydninger – er trivielle at bryde med moderne regnekraft. I dag beskytter vi data med kryptografiske metoder, som er matematisk præcist defineret, og hvis sikkerhed er blevet offentligt vurderet.

Sådanne metoder bruger en nøgle, som kun afsender og modtager kender. Kryptering og dekryptering følger her en krypteringsalgoritme – en klart beskrevet matematisk metode.

Password Depot krypterer Deres fortrolige data med algoritmen Rijndael, som er standardiseret som AES (Advanced Encryption Standard).

Nedenfor forklarer vi algoritmen og sætter den ind i en teknisk kontekst.

Advanced Encryption Standard (AES) – den standardiserede variant af Rijndael

Det amerikanske National Bureau of Standards (i dag NIST) standardiserede i 1977 DES; denne standard blev trukket tilbage i 2005trukket tilbage, fordi den ikke længere var tilstrækkelig sikker (NIST-meddelelse). Som efterfølger valgte NIST i 2001 Rijndael og standardiserede herfra Advanced Encryption Standard (AES) (FIPS 197).

Vigtigt: AES er en delmængde af Rijndael-familien. AES fastlægger blokstørrelsen til 128 bit og tillader nøgler på 128, 192 eller 256 bit (NIST-bemærkning, FIPS 197 (PDF)).

AES er godkendt til beskyttelse af informationer hos amerikanske myndigheder op til klassifikationsniveauet TOP SECRET (se CNSSP‑15 Fact Sheet samt den aktuelle NSA's CNSA‑2.0‑FAQ).

Sådan fungerer Rijndael/AES (kort oversigt)

Flowdiagram over AES-kryptering: En 128-bit klartekstblok gennemløber efter AddRoundKey (runde 0) afhængigt af nøglelængden 9, 11 eller 13 hovedrunder med SubBytes, ShiftRows, MixColumns og AddRoundKey samt en afsluttende runde uden MixColumns; nøgleudvidelsen leverer rundenøglerne, og resultatet er chifferteksten.

Rijndael er en substitutions-permutations-netværks-chiffer. Kerneidéerne er substitutioner på byte-niveau, lineære transformationer og XOR-operationer.

Forløb på blokniveau (128 bit „state“)

  • Nøgleudvidelse (key schedule): Fra nøglen afledes der Nr + 1 rundenøgler (f.eks. 11 ved AES-128, 13 ved AES-192, 15 ved AES-256). Kilde: FIPS 197.
  • Indledende runde: AddRoundKey – klartekstblokken (som en 4×4-byte-matrix) kombineres med den første rundenøgle ved hjælp af XOR.
  • Runder 1 … Nr:
    • SubBytes: Hver byte erstattes via en S-Box (multiplikativ invers i GF(28) plus affin transformation med konstanten 0x63). Kilde: FIPS 197.
    • ShiftRows: Rækkerne i state-matricen forskydes cyklisk.
    • MixColumns: Kolonner blandes ved matrixmultiplikation over GF(28) blandes.
    • AddRoundKey: XOR med den pågældende rundes nøgle.

Bemærk: I den sidste runde udelades MixColumns. Antallet af runder er 10/12/14 for nøgler med 128/192/256 Bit (FIPS 197).

AES kan implementeres i software, firmware eller hardware (FIPS 197). Til praktisk brug anvendes Driftstilstande bruges, f.eks. CBC, CTR eller GCM (autentificeret kryptering). Anbefalinger findes i NIST SP 800–38A og NIST SP 800–38D (GCM/GMAC).

Vigtigt at bemærke: AES er en symmetrisk chiffer til datakryptering. Nøgleudveksling sker typisk med asymmetriske metoder ((EC)DH/RSA). AES kan dog sikkert indpakke nøgler ("Key Wrap") – jf. NIST SP 800–38F.

Officiel specifikation

Referencen findes her: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf

Brute-force-angreb

Brute-force betyder, at en angriber alle mulige nøgler prøver. Klassiske metoder som DES med kun 56-bit-nøgler kan derfor i praksis brydes i dag – derfor trak NIST DES officielt tilbage (NIST).

Moderne metoder som AES med nøgler på 128/192/256 bit har derimod et astronomisk stort nøglerum. I praksis er det mindre algoritmen end nøgleafledning fra adgangskoder og kvaliteten af masteradgangskoden.

Password Depot gør desuden brute-force-angreb vanskeligere med en forsinkelsesfunktion: Efter en forkert indtastning af masteradgangskoden forbliver programmet låst i nogle sekunder.

Konklusion: Ved korrekt implementering, egnede driftstilstande (f.eks. GCM) og tilstrækkelig nøglelængde anses AES ud fra den nuværende viden for at være meget langsigtet sikkert.

Mere om brute-force-angreb.

Forstå brute-force-angreb

Få at vide, hvorfor adgangskodelængde er afgørende, og hvordan du beskytter dig.

Mere om brute-force-angreb