Verschlüsselung: Feistel-Netzwerk mit Hash-Algorithmus



  • (Eines vorweg: Ich weiß nicht wirklich, ob der Thread hier so richtig ist. Wenn ein Moderator der begründeten Meinung ist, er sei woanders besser aufgehoben, so kann er ihn natürlich verschieben.)

    Feistel-Netzwerke haben als System für die Block-Verschlüsselung ja den Vorteil, dass eine bestimmte Funktion F für die Entschlüsselung nicht umkehrbar sein muss. Die Entschlüsselung funktioniert auch dann, wenn diese Funktion überhaupt nicht umkehrbar ist. Für mehr Informationen siehe [URL="http://de.wikipedia.org/wiki/Feistelchiffre"]Wikipedia-Eintrag zu Feistelchiffre[/URL].

    Mein Gedanke dazu: Wie würde sich ein Feistel-Algorithmus verhalten, wenn man die Funktion F, die ja nicht umkehrbar sein brauch, als Hash-Verfahren implementiert? Diese sind so entworfen, dass sie möglichst schwer / gar nicht umkehrbar sind. Wie würde sich die Sicherheit eines solchen Algorithmus beurteilen lassen?

    Nehmen wir einfach mal ein normales Feistelnetzwerk an. Als Blockgröße nutzen wir 512 Bit. (Ist eigentlich recht groß, aber ist ja nur ein Gedankenexperiment) Dieser Block wird in linke und rechte Hälfte aufgeteilt. Auf diese Hälften werden jetzt beispielsweise 4 Runden eines Feistel-Netzwerks mit der Funktion F = SHA-256 (Beispiel) angewandt. (Es müssen dabei mindestens 3 Runden sein, weil ansonsten bei einem der Blöcke eine Änderung eines Bits keine Auswirkung auf die anderen Bits dieses Blocks hätte.)

    Wäre solch ein System (bei kurzzeitiger, grober Überlegung) im Grunde "sicher" oder ließe sich aufgrund der Struktur bereits eine Sicherheitslücke ausmachen? Die Performance eines solchen Algorithmus lassen wir mal außen vor, der wird definitiv nicht der schnellste sein. Dafür wäre die Implementierung in Code, wenn der Hash-Algorithmus schon da ist, denkbar einfach.

    Gruß, Nova900



  • Ich bin mir in Verbindung mit einem Feistel-Netzwerk nicht sicher, aber es kann gut sein dass das funktioniert. Ein (sicherer) Hash ist letztlich auch nur ein csprng, und somit auch eine sichere Stream-Verschlüsselung.


Anmelden zum Antworten