Initialisierungsvektor, init vector



  • Hallo,

    meine allererste Nachricht 🙂

    es geht um blockweises Verschlüsseln mit Rijndal und CBC. Für CBC ist ein sog. Initialisierungsvektor, kurz IV, notwendig und der kann aus Zufallszahlen bestehen.

    Aus einem Buch über Kryptografie habe ich in einem Nebensatz gelesen, daß es nichts ausmacht neben den verschlüsselten Daten auch den, lesbaren, IV zu speichern; und gespeichert werden muß er ja auch, denn ihn benötigt man für die Entschlüsselung.

    Ist das nicht ein Sicherheitsrisiko, den IV mit abzuspeichern, was sagt ihr dazu? Ist der IV in der Hand eines Hackers nicht schon ein Schritt um die Verschlüsselung zu knacken? Angenommen sei hier ein einfacher verschlüsselter String.

    Zwei Fakten sprechen eigentlich nicht dafür, der erste ist, daß die Literatur selbst die Aussage macht, dass der "IV nicht geheim gehalten werden muß", und der zweite, daß z.B. in der WEP Verschlüsselung ebenfalls ein 24bit langer IV übertragen wird (welches die Schlüssellänge verkürzt).

    Verstanden habe, dass ein IV nicht mehrfach verwendet werden soll, z.B. wenn ich zwei Strings verschlüsseln will.



  • Hoppelmoppel schrieb:

    es geht um blockweises Verschlüsseln mit Rijndal und CBC. Für CBC ist ein sog. Initialisierungsvektor, kurz IV, notwendig und der kann aus Zufallszahlen bestehen.

    für aes-cbc ist ein iv nicht unbedingt notwendig. ge-xor'd wird erst ab dem zweiten block, d.h. der erste sind die ersten 16 bytes des originals, allerdings bereits mit AES verschlüsselt.

    Hoppelmoppel schrieb:

    ...daß z.B. in der WEP Verschlüsselung ebenfalls ein 24bit langer IV übertragen wird (welches die Schlüssellänge verkürzt).

    ich glaub' das hat WEP schliesslich das genick gebrochen. man sollte sich über gewisse kryptologische prinzipien nun mal nicht hinwegsetzen, z.b. dass alle informationen zum entschlüssln nur im schlüssel selbst stecken mollten und nicht noch wo anders.
    🙂



  • ^^ nicht 'mollten', sondern sollten.
    🙂



  • ~fricky schrieb:

    für aes-cbc ist ein iv nicht unbedingt notwendig. ge-xor'd wird erst ab dem zweiten block, d.h. der erste sind die ersten 16 bytes des originals, allerdings bereits mit AES verschlüsselt.

    Genau darin besteht eine Gefahr, denn der Originaltext kann bei jedem beginnenden Verschlüsseln auch jedesmal der gleiche sein, das wird hier sehr schön beschrieben: http://www.developerfusion.co.uk/show/4647/6/

    Also, Initialisierungsvektor ist Pflicht! 😃
    Frage ist, warum es nichts ausmacht neben dem verschlüsselten Text auch den IV mitzuspeichern um ihn beim spaeteren Entschlüsseln parat zu haben? Es scheint kein Sicherheitsrisiko zu sein, nur warum?



  • Hoppelmoppel schrieb:

    Also, Initialisierungsvektor ist Pflicht!

    naja, nicht wenn man jede nachricht mit 'nem anderen key verschlüsselt. man kann z.b. aus einem master-key und anderen heimlichkeiten für jede nachricht einen anderen encryption-key erzeugen (so ähnlich macht es z.b. WLAN-WPA). das ist vielleicht wirkungsvoller als ein IV, der immer mitgeschickt wird.

    Hoppelmoppel schrieb:

    Frage ist, warum es nichts ausmacht neben dem verschlüsselten Text auch den IV mitzuspeichern um ihn beim spaeteren Entschlüsseln parat zu haben? Es scheint kein Sicherheitsrisiko zu sein, nur warum?

    zu einem leichten sicherheitsrisiko wirds erst, wenn ein IV (bei gleichem key) mehrfach verwendet wird. für die sicherheit selbst muss der verschlüsselungsalgo sorgen. so'n IV ist dazu da, die nachricht 'zufälliger' erscheinen zu lassen und damit gewisse statistische knackversuche zu erschweren.
    🙂


Anmelden zum Antworten