Chiffrierung mit DES

DES, Chiffrierung mit Geheimschlüssel

Am 15 Mai 1973 rief das NBS (National Bureau of Standards, heute NIST - National Institute of Standards and Technologygenannt) im Federal Register (das amerikanische Bundeszentralregister ) zur Erzeugung eines Chiffrier-Algorithmus' auf, der den folgenden Kriterien entspricht :

  • ein hohes Sicherheitsniveau, verbunden mit einem kleinen Schlüssel zum Chiffrieren und Dechiffrieren
  • leichte Verständlichkeit
  • keine Abhängigkeit von der Vertraulichkeit des Algorithmus
  • Anpassungsfähigkeit und Sparsamkeit
  • Effizienz und Exportmöglichkeit

Ende 1974 schlug IBM « Lucifer » vor, der am 23 November 1976 von der NSA (National Security Agency) verändert wird, daraus entsteht der DES (Data Encryption Standard). Der DES wurde 1978 endgültig von der NBS anerkannt. Der DES wurde vom ANSI (American National Standard Institute) unter dem Namen ANSI X3.92, besser bekannt unter dem Namen DEA (Data Encryption Algorithm) standardisiert.

Prinzip des DES

Es handelt sich um ein symmetrisches Chiffrier-System mit Blocks von 64 Bits, davon dienen 8 Bits (ein Byte) als Paritätstest (um die Integrität des Schlüssels zu überprüfen). Jedes Paritätsbit des Schlüssels (1 alle 8 Bits) dient dazu, eines der Bytes des Schlüssels durch ungerade Parität zu testen, das heißt, jedes Paritätsbit ist so gewählt, dass eine ungerade Anzahl an Einsen im zugehörigen Byte steht. Der Schlüssel hat daher eine « effektive » Länge von 56 Bits, das bedeutet, dass nur 56 Bits im Algorithmus wirklich genutzt werden.

Der Algorithmus besteht darin, Kombinationen, Substitutionen und Permutationen zwischen dem zu chiffrierenden Text und dem Schlüssel auszuführen, während darauf geachtet wird, dass die Operationen in beide Richtungen ausgeführt werden können (für die Dechiffrierung). Die Kombination von Substitutionen und Permutationen heißt Produktchiffre .

Der Schlüssel ist auf 64 Bits codiert und besteht aus 16 Blocks von 4 Bits, meist bezeichnet als k1 bis k16. Da « nur » 56 Bits effektiv zum Chiffrieren genutzt werden, gibt es 2 56 (oder 7.2*1016) verschiedene mögliche Schlüssel !

Der Algorithmus des DES

Die wichtigsten Teile des Algorithmus sind die folgenden :

  • Aufteilung des Texts in Blocks von 64 Bits (8 Bytes) ;
  • Anfangs-Permutation der Blocks ;
  • Zerschneiden der Blocks in zwei Teile: links und rechts, genannt L und R ;
  • 16 Mal wiederholte Permutations- und Substitutionsschritte (genannt Runden) ;
  • Wiederzusammenführen der linken und rechten Teile, dann die umgekehrte Anfangs-Permutation.

algorithme du DES

Aufteilung des Texts

Anfangs-Permutation

Zuerst wird jedes Bit eines Blocks der Anfangs-Permutation unterzogen, die durch die folgende Anfangs-Permutations-Matrix dargestellt werden kann :

PI
585042342618102
605244362820124
625446383022146
645648403224168
57494133251791
595143352719113
615345372921135
635547393123157

Durchläuft man die Matrix von links nach rechts und dann von oben nach unten, gibt sie an, dass das 58te Bit des Textblocks von 64 Bits sich an der ersten Stelle befindet, das 50te an zweiter Stelle, und so weiter.

Scindement en blocs de 32 bits

Une fois la permutation initiale réalisée, le bloc de 64 bits est scindé en deux blocs de 32 bits, notés respectivement G et D (pour gauche et droite, la notation anglo-saxonne étant L et R pour Left and Right). Den ursprünglichen Zustand dieser beiden Blocks bezeichnet man mitL0 undR0.

L0
585042342618102
605244362820124
625446383022146
645648403224168

R0
57494133251791
595143352719113
615345372921135
635547393123157

Es ist interessant, festzustellen, dass L0 alle Bits enthält, die eine gerade Position in der ursprünglichen Nachricht einnehmen, währendR0 die Bits mit ungerader Position enthält.

Runden

Die BlocksLn undRn durchlaufen eine Anzahl an iterativen Transformationen, genanntRunden, dargestellt in diesem Diagramm, deren Details weiter unten geliefert werden :

rondes

Expansionsfunktion

Die 32 Bits des BlocksR0 werden auf 48 Bits aufgeteil, dies geschieht durch eine Tabelle (Matrix), genanntExpansionstabelle (notiertE), in der die 48 Bits vermischt werden und 16 davon verdoppelt werden :

E
3212345
456789
8910111213
121314151617
161718192021
202122232425
242526272829
28293031321

So wird das letzte Bit vonR0 (also das 7te Bit des Anfangsblocks) zum ersten, das erste wird zum zweiten, ...
Außerdem werden die Bits 1,4,5,8,9,12,13,16,17,20,21,24,25,28 und 29 vonR0 (also 57, 33, 25, l, 59, 35, 27, 3, 6l, 37, 29, 5, 63, 39, 31 und 7 des Anfangsblocks) verdoppelt und in der Matrix verteilt.

Exklusives ODER mit dem Schlüssel

Die entstandene Matrix von 48 Bits wirdR'0 oderE[R0] genannt. Danach führt der DES-Algorithmus einexklusives ODER zwischen dem ersten SchlüsselK1und E[R0] aus. Das Ergebnis dieses exklusiven ODERs ist eine 48 Bit-Matrix, die wir aus Bequemlichkeit alsR0 bezeichnen (es handelt sich aber nicht um das D0 vom Anfang!).

Substitutionsfunktion

R0 wird danach in 8 Blocks mit jeweils 6 Bits zerteilt, notiert alsR0i. Jeder dieser Blocks durchläuft Selektionsfunktionen (manchmal Substitutions-Boxen oderKompressionsfunktionengenannt), die meist folgendermaßen angeschrieben werdenSi.
Die ersten und letzten Bits jedes R0i bestimmten (in Binärform) die Zeile der Selektionsfunktion, die anderen Bits (nacheinander 2, 3, 4 und 5) bestimmen die Spalte. Die Selektion der Linie erfolgt auf zwei Bits, daher gibt es 4 Möglichkeiten (0,1,2,3). Die Selektion der Spalte erfolgt auf 4 Bits, daher gibt es 15 Möglichkeiten (0 bis 15). Mit diesen Informationen "selektiert" die Selektionsfunktion einen auf 4 Bits codierten Wert.

Dies ist die erste Substitutionsfunktion, dargestellt durch eine 4 mal 16-Matrix :

S1
 0123456789101112131415
01441312151183106125907
10157414213110612119538
24114813621115129731050
31512824917511314100613

Angenommen,R01 hat den Wert101110. Die ersten und letzten Bits ergeben 10, also 2 in Binärform. Die Bits 2,3,4 und 5 ergeben 0111, also 7 in Binärform. Das Ergebnis der Selektionsfunktion ist daher der Wert aus der Zeile n°2, in der Spalte n°7. Dies ist der Wert 11, oder in Binärform111.

Jeder der 8 Blocks von 6 Bits durchläuft die entsprechende Selektionsfunktion, daraus ergeben sich 8 Werte mit jeweils 4 Bits. Dies sind die anderen Wahlfunktionen  :

S2
 0123456789101112131415
01518146113497213120510
13134715281412011069115
20147111041315812693215
31381013154211671205149

S3
 0123456789101112131415
01009146315511312711428
11370934610285141211151
21364981530111212510147
31101306987415143115212

S4
 0123456789101112131415
07131430691012851112415
11381156150347212110149
21069012117131513145284
331506101138 94511127214

S5
 0123456789101112131415
02124171011685315130149
11411212471315015103986
24211110137815912563014
31181271142136150910453

S6
 0123456789101112131415
01211015926801334147511
11015427129561131401138
29141552812370410113116
34321295151011141760813

S7
 0123456789101112131415
04112141508133129751061
11301174911014351221586
21411131237141015680592
36111381410795015142312

S8
 0123456789101112131415
01328461511110931450127
11151381037412561101492
17114191214206101315358
12114741081315129035611

Jeder Block von 6 Bits wird so durch einen Block mit 4 Bits ersetzt. Diese Bits werden neu gruppiert, um einen Block von 32 Bits zu bilden.

Permutation

Der erhaltene 32 Bit-Block wird dann einer Permutation P unterzogen, dessen Tabelle hier aufgeführt ist :

P
167202129122817
11523265183110
282414322739
19133062211425

Exklusives ODER

Die gesamten ausgegebenen Ergebnisse von P werden einemExklusiven ODER unterzogen, mit dem anfänglichem L0 (wie im ersten Diagramm angegeben) um R1 zu ergeben, während das ursprüngliche R0 zuG1 führt.

Iteration

Alle vorherigen Schritte (Runden) werden 16 Mal wiederholt.

Inverse Anfangs-Permutation

Am Schluss der Iterationen werden die zwei BlocksL16 undR16 wider zusammengefügt, und dann der inversen Anfangs-Permutation unterzogen :

PI-1
408481656246432
397471555236331
386461454226230
375451353216129
364441252206028
353431151195927
342421050185826
33141949175725

Das Ausgabeergebis ist ein codierter Text von 64 Bits !

Erzeugung der Schlüssel

Da der unten vorgestellte DES-Algorithmus öffentlich ist, beruht die Sicherheit allein auf der Komplexität der Chiffrier-Schlüssel.

Dieser Algorithmus veranschaulicht, wie man, ausgehend von einem Schlüssel mit 64 Bits (der aus 64 beliebigen alphanumerischen Zeichen besteht), 8 verschiedene Schlüssel mit jeweils 48 Bits erhält, die alle im DES-Algorithmus genutzt werden :

algorithme de generation des cles DES

Zuerst werden die Paritätsbits des Schlüssels eliminiert, um zu einem Schlüssel mit einer effektiven Länge von 56 Bits zu gelangen.

Der erste Schritt beinhaltet eine Permutation, die CP-1 genannt ist, deren Matrix sieht folgendermaßen aus :

CP-1
57494133251791585042342618
10259514335271911360524436
635547393123157625446383022
1466153453729211352820124

Diese Matrix kann in der Form von zwei Matrizen notiert werden, LiundRi (für rechts und links), von denen jede aus 28 Bits besteht :

Li
5749413325179
1585042342618
1025951433527
1911360524436

Ri
63554739312315
7625446383022
1466153453729
211352820124

Das Ergebnis dieser ersten Permutation wird alsL0 undR0 bezeichnet.

Danach unterliegen diese beiden Blocks einer Linksrotierung, so, dass die Bits an zweiter Stelle die erste Stelle einnehmen, die in dritter Stelle die zweite,...
Die Bits an erster Stelle werden an die letzte Stelle gereiht.

Die 2 Blocks von 28 Bits werden dann zu einem Block von 56 Bits zusammengefasst. Dieser wird einer Permutation unterzogen, die alsCP-2 bezeichnet wird, sie liefert einen Block von 48 Bits, der dem Schlüssel Ki enspricht.

CP-2
14171124153281562110
23191242681672720132
415231374755304051453348
444939563453464250362932

Durch die Iterationen des Algorithmus erhält man die 16 Schlüssel K1 bisK16, die im DES-Algorithmus verwendet werden.

LS
124681012141517192123252728

TDES, eine Alternative zu DES

1990 entwickelten Eli Biham und Adi Shamir die differentielle Kryptoanalyse, Klartextpaare und Chiffre-Textpaare sucht. Diese Methode funktioniert bei einer Rundenanzahl von 15 oder weniger, daher enthält der unten vorgestellte Algorithmus 16 Runden.

Aber auch wenn ein ein Schlüssel von 56 Bits eine enorme Anzahl an Möglichkeiten ergibt, sind viele Rechner im Stande, über 106 Schlüssel pro Sekunde zu berechnen, so ist es für ein großes Organ (ein Staat zum Beispiel) möglich, den richtigen Schlüssel zu finden, indem man mehrere Rechner zur selben Zeit laufen lässt...

Eine kurzfristige Lösung besteht darin, drei DES- Chriffierungen durch zwei 56 Bit-Schlüssel zu verketten (entspricht einem 112 Bit-Schlüssel). Diese Prozedur nennt manTriple DES, geschriebenTDES (manchmal3DES oder3-DES).

Triple DES - 3DES

DurchTDES lässt sich die Sicherheit von DES signifikant erhöhen, es hat allerdings den großen Nachteil, dass auch mehr Ressourcen zum Chiffrieren und Dechiffrieren nötig sind.

Man unterscheidet drei Arten der Triple DES-Chiffrierung :

  • DES-EEE3 : 3 DES-Chiffrierungen mit 3 verschiedenen Schlüsseln ;
  • DES-EDE3 : ein unterschiedlicher Schlüssel für jede der 3 DES-Operationen (Chiffrierung, Dechiffrierung, Chiffrierung) ;
  • DES-EEE2 und DES-EDE2 : ein anderer Schlüssel für die zweite Opertation (Dechiffrierung).

1997 wurde vomNIST ein neuer Aufruf gestartet, zur Entwicklung desAES (Advanced Encryption Standard), ein Chiffrierungs-Algorithmus, der den DES ersetzen soll.

Das Chiffrier-SystemDES wurde alle 5 Jahre erneuert. Bei der letzten Revision im Jahr 2000 wurde nach einem 3-jährigem Evaluationsprozess, ein Algorithmus, der zusammen von zwei belgischen Kandidaten, Vincent RijmenundJoan Daemen entwickelt wurde, von derNIST zum neuen Standard gewählt. Dieser neue Algorithmus mit dem NamenRIJNDAEL wird künftig den DES ersetzen.

Weitere Informationen



Letzte Änderung am Montag 4 Mai 2009 à 15:00:01


Das Dokument mit dem titel « Chiffrierung mit DES » aus Kioskea (de.kioskea.net) zur verfügung gestellt wird unter den bedingungen der Creative Commons lizenz. Können Sie ändern, Kopien dieser Seite, unter den Bedingungen der Lizenz, als diese Bewertung deutlich.