Hallo allerseits,
gleich meine erste Frage:
Ich arbeite gerade mit einem Buch zur Kryptographie und darin ist eine interessante Aufgabe gestellt:
Sei E( k, . ) eine Stromchiffre, und c= E(k, x) der Chiffretext zum Klartext x. Weiter sei H eine Hashfunktion.
Aufgabe (frei übersetzt)
Angenommen die Verschlüsselung ist wie folgt definiert:
c = E( k, x || H(x) ) und ein potentieller Angreifer kennt das Paar (x, c). Warum ist diese Methode unsicher und wie kann ein Angreifer einen alternativen Geheimtext c' berechnen, sodass der Empfänger die Nachricht erfolgreich verifiziert? (Korrektur von identifiziert in verifiziert)
Dazu stelle ich mir zunächst die Frage: Ist diese Verschlüsselung immer unsicher, egal welche Stromchiffre (ob selbstsynchron oder synchron) verwendet wird? Durch den CTR Mode lassen sich auch aus Blockchiffren Stromchiffren erzeugen. Sind dann auch diese unsicher? Ist auch das OTP dadurch unsicher?
Wenn ich einen Angriff konstruiere nehme ich an, dass ich den Schlüssel k nicht kenne, aber herausfinden möchte. Weiter würde ich voraussetzen, dass ich die verwendete Hashfunktion kenne.
Dazu dann direkt die nächste Frage: Wenn ich einen Angriff theoretisch konstruieren möchte, was darf/kann ich voraussetzen? Bzw. nach welchem Prinzip lässt sich i.A. vorgehen?
Da ich x kenne, kenne ich auch H(x) (da mir die verwendete Hashfunktion vermutlich bekannt ist..) Ich könnte also nach dem Geburtstagsparadoxon 2.18 * sqrt( Hashblocklänge ) zufällige Manipulationen an dem Klartext x vornehmen, sodass dann H( x' ) = H( x ) mit der Wahrscheinlichkeit von 50% erzeugt wird.
Dann kann ich wieder " x' || H(x) " anlegen. Habe ich nun Zugriff auf die Verschlüsselungsfunktion nach obiger Aufgabenstellung?
Bevor ich jetzt noch mehr Fragen stelle, bedanke ich mich erst bei demjenigen, der sich bereits die Mühe gemacht hat, den Text zu lesen und seine Zeit bereitwillig opfert, um mir zu helfen.
Viele Grüße
gleich meine erste Frage:
Ich arbeite gerade mit einem Buch zur Kryptographie und darin ist eine interessante Aufgabe gestellt:
Sei E( k, . ) eine Stromchiffre, und c= E(k, x) der Chiffretext zum Klartext x. Weiter sei H eine Hashfunktion.
Aufgabe (frei übersetzt)
Angenommen die Verschlüsselung ist wie folgt definiert:
c = E( k, x || H(x) ) und ein potentieller Angreifer kennt das Paar (x, c). Warum ist diese Methode unsicher und wie kann ein Angreifer einen alternativen Geheimtext c' berechnen, sodass der Empfänger die Nachricht erfolgreich verifiziert? (Korrektur von identifiziert in verifiziert)
Dazu stelle ich mir zunächst die Frage: Ist diese Verschlüsselung immer unsicher, egal welche Stromchiffre (ob selbstsynchron oder synchron) verwendet wird? Durch den CTR Mode lassen sich auch aus Blockchiffren Stromchiffren erzeugen. Sind dann auch diese unsicher? Ist auch das OTP dadurch unsicher?
Wenn ich einen Angriff konstruiere nehme ich an, dass ich den Schlüssel k nicht kenne, aber herausfinden möchte. Weiter würde ich voraussetzen, dass ich die verwendete Hashfunktion kenne.
Dazu dann direkt die nächste Frage: Wenn ich einen Angriff theoretisch konstruieren möchte, was darf/kann ich voraussetzen? Bzw. nach welchem Prinzip lässt sich i.A. vorgehen?
Da ich x kenne, kenne ich auch H(x) (da mir die verwendete Hashfunktion vermutlich bekannt ist..) Ich könnte also nach dem Geburtstagsparadoxon 2.18 * sqrt( Hashblocklänge ) zufällige Manipulationen an dem Klartext x vornehmen, sodass dann H( x' ) = H( x ) mit der Wahrscheinlichkeit von 50% erzeugt wird.
Dann kann ich wieder " x' || H(x) " anlegen. Habe ich nun Zugriff auf die Verschlüsselungsfunktion nach obiger Aufgabenstellung?
Bevor ich jetzt noch mehr Fragen stelle, bedanke ich mich erst bei demjenigen, der sich bereits die Mühe gemacht hat, den Text zu lesen und seine Zeit bereitwillig opfert, um mir zu helfen.
Viele Grüße
Zuletzt bearbeitet: