Kryptografie (2) : Das Feistel-Verfahren

avatar
(Edited)

Nach der kurzen Einführung aus dem letzten Artikel möchte ich ein Verfahren vorstellen, welches heute noch als Basis für viele symmetrische Verschlüsselungsverfahren dient.
Das Feistel-Verfahren basiert auf die Idee, dass die Operationen Vertauschen und Ersetzen von Zeichenketten mehrfach hintereinander benutzt werden sollen.

Die Folgende Grafik soll dieses Verfahren vereinfacht darstellen
feistel.png

Damit das Verfahren funktioniert, benötigen wir erstmal eine Klartextnachricht der Länge N, einen Secret-Key S und eine Funktion F. Der Klartext, welcher verschlüsselt werden soll, wird dabei in zwei Hälften aufgeteilt. Nun haben wir eine linke Hälfte L0 und eine rechte Hälfte R0 der Größe N/2. Nun wird aus dem Secret-Key S ein erster Teilschlüssel berechnet. Dieser Teilschlüssel fließt als erster Parameter in die Berechnung der Funktion F ein. Der zweite Parameter ist das rechte Teilwort R0.
Das Resultat dieser Funktion ist ein verschlüsseltes rechtes Teilwort, gennant R0* . Es gilt also F(S,R0)=R0* . Nun wird noch das Ergebnis R0* mit dem unverschlüsselten Teilwort L0 verknüpft. Dabei wird auf den logischen Operator XOR (Exklusives Oder) zurückgegriffen.

  • Exkurs XOR
    Zwei ungleiche Eingaben ergeben eine 1 und zwei gleiche Eingaben ergeben eine 0.
    Beispiel : (1 XOR 1) = 0 aber (0 XOR 1) = 1

Abschließend wird noch das linke Teilwort mit dem rechten Teilwort vertauscht. Danach fängt diese Prozedur wieder von vorne an. Dieser Vorgang, auch Runde genannt, wird mehrfach hintereinander ausgeführt (In dieser Grafik sind es 2 Runden). Je mehr Runden ausgeführt werden, desto sicherer ist dieses Verfahren. Allerdings dauert es dann umso länger.

Nach der letzten Runde wird noch einmal das linke mit dem rechten Teilwort vertauscht und die Verschlüsselung ist beendet. Für die Entschlüsselung wird dieses Verfahren in umgekehrter Reihenfolge durchlaufen.



0
0
0.000
2 comments
avatar
Du hast ein kleines Upvote von unserem Curation – Support – Reblog Account erhalten. Dieser wurde per Hand erteilt und nicht von einem Bot.

Wir, die Mitglieder des German Steem Bootcamps möchten die Deutsche Community stärken.

Du findest uns im Discord unter https://discord.gg/Uee9wDB

!bootcamp1.jpg

0
0
0.000