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“ – f.eks. simple bogstavforskydninger – kan med nutidens regnekraft brydes på kort tid. I dag beskytter vi data med kryptografiske metoder, som er matematisk præcist defineret, og hvis sikkerhed er blevet vurderet offentligt.
Sådanne metoder anvender en nøgle, som kun afsender og modtager kender. Kryptering og dekryptering følger en krypteringsalgoritme – en klart beskrevet matematisk procedure.
Password Depot krypterer Deres fortrolige data med algoritmen Rijndael, som er standardiseret som AES (Advanced Encryption Standard).
I det følgende forklarer vi algoritmen og sætter den ind i en teknisk sammenhæng.
Advanced Encryption Standard (AES) – den standardiserede variant af Rijndael
Det amerikanske National Bureau of Standards (nu NIST) standardiserede i 1977 DES; denne standard blev i 2005 trukket tilbage, fordi den ikke længere blev anset for tilstrækkelig sikker (NIST-meddelelse). Som efterfølger valgte NIST i 2001 Rijndael og standardiserede heraf Advanced Encryption Standard (AES) (FIPS 197).
Vigtigt: AES er en delmængde af Rijndael-familien. AES fastlåser blokstørrelsen til 128 bit og tillader nøgler på 128, 192 eller 256 bit (NIST-meddelelse, FIPS 197 (PDF)).
AES er godkendt til beskyttelse af amerikanske myndigheders oplysninger op til klassifikationsniveauet TOP SECRET (se CNSSP-15 Fact Sheet og den aktuelle CNSA 2.0-FAQ fra NSA).
Sådan arbejder Rijndael/AES (kort overblik)
Rijndael er et substitutions-permutations-netværks-chiffer. De centrale principper er substitutioner på byte-niveau, lineære transformationer og XOR-operationer.
Forløb på blokniveau (128 bit „state“)
- Nøgleudvidelse (Key Schedule): Ud fra den oprindelige nøgle afledes der Nr + 1 rundenøgler (f.eks. 11 for AES-128, 13 for AES-192, 15 for AES-256). Kilde: FIPS 197.
- Initial runde: AddRoundKey – klartekstblokken (som en 4×4-bytematrice) kombineres med XOR med den første rundenøgle.
- Runder 1 … Nr:
- SubBytes: Hvert byte erstattes via en S-box (multiplikativ invers i GF(28) efterfulgt af en affin transformation med konstanten
0x63). Kilde: FIPS 197. - ShiftRows: Rækkerne i state-matricen forskydes cirkulært.
- MixColumns: Kolonnerne blandes ved matrixmultiplikation over GF(28).
- AddRoundKey: XOR med den tilhørende rundenøgle.
Bemærk: I den sidste runde udføres MixColumns ikke. Antallet af runder er 10/12/14 for nøgler på 128/192/256 bit (FIPS 197). - SubBytes: Hvert byte erstattes via en S-box (multiplikativ invers i GF(28) efterfulgt af en affin transformation med konstanten
AES kan implementeres i software, firmware eller hardware (FIPS 197). Til praktisk brug anvendes forskellige driftsmåder, f.eks. CBC, CTR eller GCM (autentificeret kryptering). Anbefalinger findes i NIST SP 800-38A og NIST SP 800-38D (GCM/GMAC).
Vigtigt for klassificeringen: AES er et symmetrisk chiffer til datakryptering. Nøgleudveksling sker normalt med asymmetriske metoder ((EC)DH/RSA). AES kan dog også indkapsle nøgler sikkert („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 prøver alle mulige nøgler. Klassiske metoder som DES med kun 56-bit nøgler kan i dag praktisk talt brydes på denne måde – NIST har derfor i 2005 officielt trukket DES 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 derfor mindre algoritmen i sig selv end nøgleafledning fra adgangskoder og kvaliteten af den master-adgangskode, De vælger, der er afgørende.
Password Depot gør Brute-Force-angreb yderligere vanskeligere med en forsinkelsesfunktion: Efter en forkert indtastning af master-adgangskoden er programmet låst i nogle sekunder.
Konklusion: Ved korrekt implementering, passende driftsmåder (f.eks. GCM) og tilstrækkelig nøglelængde anses AES i dag for at være sikkert på meget langt sigt.
Læs mere om Brute-Force-angreb.
Yderligere kilder
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (original specifikation)
- NIST: AES er en delmængde af Rijndael (blokstørrelse 128 bit)
- NIST SP 800-38A – driftsmåder (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800-38D – GCM/GMAC (autentificeret kryptering)
- NIST SP 800-38F – AES Key Wrap
- CNSSP-15 Fact Sheet – brug af AES til hemmelige og meget hemmelige oplysninger
- NSA: CNSA 2.0 FAQ – aktuelle krav
- NIST: tilbagetrækning af DES (baggrund)