Spring til indhold

Data Encryption Standard

Fra Wikipedia, den frie encyklopædi
Data Encryption Standard
Feistel funktion (F funktion) for DES
Generelt
Designer(e) IBM
Først publiceret 1975 (Januar 1977 som standard)
Afledt af Lucifer (algoritme)
Algoritme(r) baseret på dette design Triple DES, G-DES, DES-X, LOKI89, ICE
Detaljer om algoritmen
Blokstørrelse 64 bits
Nøglestørrelse(r) 56 bits
Struktur Feistel netværk
Antal runder 16
Bedste kryptoanalyse
DES anses ikke længere for sikker for et brute force angreb er muligt (se også EFF DES cracker). Pr. 2004 er det bedste analytiske angreb lineær kryptoanalyse, som kræver 243 kendte klartekster og har en tidskompleksitet på 239-43 (Junod, 2001); ved et valgt klartekst angreb, kan datakompleksiteten reduceres med en faktor fire (Knudsen og Mathiassen, 2000).


Data Encryption Standard (DES) er en kryptografisk algoritme designet af IBM i 1975. Den blev senere (i 1976) optaget som national standard i USA, og er siden blevet brugt internationalt. Der har været en del kontrovers om algoritmen, der indeholder hemmeligstemplede designelementer, har en relativt lille nøglestørrelse, og blev mistænkt for at have en bagdør indbygget af NSA.

DES er nok det bedst kendte eksempel på en algoritme der anvender blokkryptering, dvs. hvor klarteksten deles op i "blokke" af en fast størrelse, i dette tilfælde på 64 bits. Den hører desuden til klassen af symmetriske algoritmer, dvs. hvor den samme krypteringsnøgle benyttes til såvel kryptering som dekryptering.

DES anses ikke længere for sikker, da nøglestørrelsen på 56 bits gør at den kan brydes på under 24 timer. Til praktiske anvendelser anses den for sikker i form af Triple DES, der bl.a. anvendes til det danske Dankort system. I de senere år er algoritmen blevet afløst af AES.

DES algoritmen kan i grove træk beskrives på følgende måde:

  1. Inden algoritmen begynder, udledes 16 rundenøgler på hver 48 bits.
  2. En blok på 64 bits gennemgår en indledende permutation (IP).
  3. Blokken deles i to dele, A og B, på hver 32 bits.
  4. Hver blok udvides til 48 bits ved en ekspansionspermutation hvor nogle bits kopieres.
  5. Blok B "blandes" med den første rundenøgle ved en XOR operation.
  6. B ændres ved en substitution specificeret af en tabel, de såkaldte S-bokse.
  7. B ændres ved en permutation, der også er specificeret i en tabel, de såkaldte P-bokse.
  8. B blandes med A ved en XOR operation.
  9. Til sidst byttes blokkene om, så resultatet af trin 8 er den halvblok der behandles i næste runde, mens den oprindelige blok B bliver blok A i næste runde.
  10. Trin 5-9 gentages, hver gang med en ny rundenøgle, så man gennemfører i alt 16 runder. I sidste runde springes trin 9 over, dvs. blokkene byttes ikke om.
  11. Til sidst gennemføres en afsluttende permutation (FP). FP er den omvendte permutation af IP.

Et af de praktiske aspekter ved DES er at kryptering og dekryptering foregår på samme måde; ved dekryptering anvendes rundenøglerne blot i omvendt rækkefølge. Dette havde betydning i 70'erne, hvor computere og andet hardware havde begrænset kapacitet.