it-swarm.com.de

Was sind die Unterschiede zwischen einem Verschlüsselungssamen und Salz?

Heute fiel es mir schwer, einem Freund den Unterschied zu erklären.

Ich weiß, dass Samen verwendet werden, wenn "zufällige" Zeichenfolgen generiert werden. Und Salze werden verwendet, wenn ein Hash unterschiedliche Ergebnisse erzielt.

Wie lassen sich diese Konzepte und ihre möglichen Unterschiede besser beschreiben?.

27
Gabriel Fair

Seed :

Die Verschlüsselung basiert auf Zufallszahlen, aber wie generiert man eine echte Zufallszahl? Die aktuelle Millisekunde? Die Anzahl der verwendeten Prozessorthreads? Sie brauchen einen Ausgangspunkt. Dies wird als Startwert bezeichnet: Es wird eine Zufallszahl ausgelöst.

Salz :

Wenn Sie einen String hashen, wird er immer mit demselben Hash enden.

foo = acbd18db4cc2f85cedef654fccc4a4d8 jedes Mal.

Dies ist ein Problem, wenn Sie Dinge speichern möchten, die Sie wirklich verbergen möchten (z. B. Passwörter). Wenn du siehst acbd18db4cc2f85cedef654fccc4a4d8 Sie wissen immer, dass es foo ist. Sie fügen der ursprünglichen Zeichenfolge einfach ein "Salz" hinzu, um sicherzustellen, dass sie eindeutig ist.

foo + asdf = e967c9fead712d976ed6fb3d3544ee6a

foo + zxcv = a6fa8477827b2d1a4c4824e66703daa9

"Salz" macht also einen "Hash" besser, indem es den Originaltext verdeckt.

44
schroeder

Die einfachsten Begriffe, die ich mir vorstellen kann:

  • Ein Startwert ist ein zufälliger Wert, der im Allgemeinen geheim gehalten werden muss, oder die Verschlüsselung ist fehlerhaft
  • A salt ist ein zufälliger Wert, der im Allgemeinen kein Geheimnis ist und verwendet wird, um einige vorberechnete Angriffe zu erschweren

Ich benutze diese gerne, weil die Idee, Dinge geheim zu halten oder nicht, für jeden von Bedeutung ist.

10
Cort Ammon

Ihr Freund ist tatsächlich in seiner Verwirrung gerechtfertigt, weil es keinen großen Unterschied gibt. Auf einer hohen Ebene wird jede als Eingabe verwendet, um die Ausgabe einer Verschlüsselungsfunktion zu modifizieren.

Versuchen Sie, den Unterschied zwischen einer Hash-Funktion und einem Zufallszahlengenerator und deren Verwendung hervorzuheben. Sie können auch zwischen einem regulären Zufallszahlengenerator, der für Statistiken verwendet wird (der einen vorhersagbaren oder bekannten Startwert verwenden kann), und einem kryptografisch sicheren Zufallszahlengenerator, der für die Erzeugung geheimer Schlüssel verwendet wird (der eine nicht erratene Entropiequelle als Startwert erfordert), unterscheiden. )

5
John Deters

PRNG (Startwert) = eine Folge von Zufallszahlen

hash (Salt + Passwort) = Hash-Passwort

Der Zufallszahlengenerator unterstreicht die grundlegende Natur von Computern. Sie sind nicht zufällig. Sogar die wahrgenommene Zufälligkeit ist nicht zufällig, sondern nahezu zufällig, obwohl man möglicherweise das alte Hut-Beispiel herausziehen könnte, halbe Entfernungen auf ein Ziel zuzugehen und es nie wirklich zu erreichen.

0
munchkin