Kryptografie (3) : Blowfish und AES

in deutsch •  2 months ago  (edited)

Die beiden Verschlüsselungsalgorithmen Blowfish und AES (Advanced Encryption Standard) basieren auf das Feistel-Verfahren. Zunächst wird das Verfahren Blowfish betrachtet.

Blowfish

Blowfish funktioniert genauso wie das Feistel-Verfahren, nur mit dem Unterschied, dass beide Teilwörter in jeder Runde verändert werden. Bei dem Feistel-Verfahren wurde immer nur das linke Teilwort verändert.
Die Verschlüsselung mit Blowfish findet in zwei Phasen statt.

In der ersten Phase werden anhand des Secret-Key S die Teilschlüssel und der Inhalt von mehreren S-Boxen (Substitutionsboxen) berechnet. Diese Aufgabe übernimmt eine Funktion F. Eine Substitutionsbox ersetzt den Inhalt eines Byteblocks durch einen anderen Inhalt.

In der zweiten Phase findet die eigentliche Verschlüsselung des Klartextes statt. Die Teilschlüssel, die bei Blowfish berechnet werden haben eine Länge von 32-bit (4 Byte). Es finden 16 Runden statt und die Blockgröße, also die Klartextlänge, beträgt 64-bit (8 Byte). Die Schlüsselläge, womit die Teilschlüssel berechnet werden, ist Variable und beträgt mindestens 32-bit und maximal 448-bit.

AES (Advanced Encryption Standard)

Der AES ist eine Verbesserung Gegenüber dem DES (Data Encryption Standard) und ist noch bis heute ein Standard-Verschlüsselungsalgorithmus, der als symmetrische Verschlüsselung eingesetzt wird.
Genauso wie bei Blowfish findet bei AES eine komplette Verarbeitung des Klartextes statt. Der Standard sieht vor, dass die Schlüssellänge 128-bit, 192-bit oder 256-bit betragen muss. Die Blockgröße für den Klartext kann frei gewählt werden. Durch die freie Wahl der Schlüssel- und Blocklänge gilt AES als sicherer im Gegensatz zum DES. Dort durfte die Blockgröße nur 64-bit betragen und die Schlüssellänge nur 56-bit. Streng genommen beträgt die Schlüssellänge auch 64-bit, allerdings sind 8-bits sogenannte Paritätsbits. Diese Paritätsbits dienen der Fehlererkennung. Die Anzahl der Runden wird durch die Schlüssellänge und der Blockgröße bestimmt. In den jeweiligen Runden finden vier Operationen statt.

Für das bessere Verständnis wird jeder Block als eine Matrix dargestellt. Jeder Block hat eine Größe von 1 Byte (8 bit).

  • Schritt 1 : Ersetzen der Blöcke durch eine Substitutionsbox
    Zuerst wird der Inhalt von jedem Block mithilfe einer Substitutionsbox ersetzt.
    aes1.png

  • Schritt 2 : Zyklisches verschieben der Zeilen
    Jede Zeile wird mit einem Muster verschoben. Die erste Zeile bleibt unverändert, die zweite Zeile wird um ein Block verschoben, die dritte Zeile um zwei Blöcke, ...
    aes2.png

  • Schritt 3 : Spalten vertauschen
    Nun werden die einzelnen Spalten der Matrix zufällig vertauscht.
    aes3.png

  • Schritt 4 : Blöcke verschlüsseln
    Jeder Block wird mit dem Secret-Key verschlüsselt. Es entsteht eine neue Matrix die verschlüsselt ist.
    aes4.png

Nach diesen 4 Schritten ist eine von vielen Verschlüsselungsrunden abgeschlossen. Genau wie bei dem Feistel-Verfahren wird für die Entschlüsselung dieses Verfahren in umgekehrter Reihenfolge durchlaufen.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  


This post has been voted on by the SteemSTEM curation team and voting trail. It is elligible for support from @curie.

If you appreciate the work we are doing, then consider supporting our witness stem.witness. Additional witness support to the curie witness would be appreciated as well.

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

Please consider setting @steemstem as a beneficiary to your post to get a stronger support.

Please consider using the steemstem.io app to get a stronger support.

Wow, @ozelot47

tolle Serie, die du hier angefangen hast. Ist mir glatt entgangen. du hast erstmal einen kleinen Upvote von uns erhalten. Aber deine Artikel haben deutlich mehr Wert. Achte bitte darauf noch ein paar Referenzen zu hinterlegen, weil dies obligatorisch für @steemstem ist. Ansonsten finde ich die Artikel sehr gut aufbereitet.

Steem on und schönes Wochenende

Chapper

Hallo @chappertron,

dankeschön. Das mit den Referenzen werde ich das nächste Mal berücksichtigen.