De Data Encryption Standard (DES) is een symmetrische-sleutelblokversleuteling, gepubliceerd door het National Institute of Standards and Technology (NIST).
DES is een implementatie van een Feistel cijfer. Het maakt gebruik van een 16-ronde Feistel-structuur. De blokgrootte is 64-bit. Hoewel de sleutellengte 64 bits is, heeft DES een effectieve sleutellengte van 56 bits, aangezien 8 van de 64 bits van de sleutel niet door het vercijferingsalgoritme worden gebruikt (alleen als controlebits dienen). De algemene structuur van DES wordt in de volgende illustratie weergegeven –
Omdat DES is gebaseerd op het Feistel-cijfer, is alles wat nodig is om DES te specificeren –
- Rondfunctie
- Sleutelschema
- Extra verwerking – Initiële en uiteindelijke permutatie
Initiële en uiteindelijke permutatie
De initiële en uiteindelijke permutaties zijn rechte permutatiedozen (P-dozen) die inverses van elkaar zijn. Zij hebben geen cryptografische betekenis in DES. De initiële en finale permutaties worden als volgt weergegeven –
Ronde Functie
Het hart van dit cijfer is de DES-functie, f. De DES-functie past een 48-bits sleutel toe op de meest rechtse 32 bits om een 32-bits uitvoer te produceren.
-
Uitbreiding permutatiebox – Aangezien de rechter invoer 32-bits is en de ronde sleutel een 48-bits, moeten we eerst de rechter invoer uitbreiden tot 48 bits. Permutatielogica wordt grafisch weergegeven in de volgende illustratie –
-
De grafisch weergegeven permutatielogica wordt in het algemeen beschreven als tabel in de DES-specificatie, die als volgt wordt geïllustreerd –
-
XOR (Whitener). – Na de expansiepermutatie voert DES een XOR-bewerking uit op het geëxpandeerde rechterdeel en de ronde sleutel. De ronde sleutel wordt alleen bij deze bewerking gebruikt.
-
Substitutieboxen. – De S-boxen zorgen voor de echte vermenging (verwarring). DES gebruikt 8 S-boxen, elk met een 6-bits invoer en een 4-bits uitvoer. Zie de volgende illustratie –
-
De S-box regel wordt hieronder geïllustreerd –
-
Er zijn in totaal acht S-box tabellen. De uitvoer van alle acht s-boxes wordt vervolgens gecombineerd tot een 32-bits gedeelte.
-
Rechte permutatie – De 32-bits uitvoer van de S-boxen wordt vervolgens onderworpen aan de rechte permutatie met de regel die in de volgende afbeelding wordt getoond:
Sleutelgeneratie
De round-key generator maakt zestien 48-bits sleutels uit een 56-bits cijfersleutel. Het proces van sleutelgeneratie wordt afgebeeld in de volgende illustratie –
De logica voor Parity drop, shifting en Compression P-box wordt gegeven in de DES-beschrijving.
DES-analyse
De DES voldoet aan de beide gewenste eigenschappen van een blokcijfer. Deze twee eigenschappen maken het cijfer zeer sterk.
-
Avalanche-effect – Een kleine verandering in de klaartekst leidt tot een zeer grote verandering in de cijfertekst.
-
Volledigheid – Elk bit van de cijfertekst hangt af van vele bits van de klaartekst.
De laatste jaren zijn in cryptoanalyses enkele zwakke punten in DES gevonden wanneer de geselecteerde sleutels zwakke sleutels zijn. Deze sleutels moeten worden vermeden.
DES is een zeer goed ontworpen blokcijfer gebleken. Er zijn geen significante cryptanalytische aanvallen op DES geweest, anders dan het uitputtend zoeken van sleutels.