Gibt es bei der Generierung eines SHA256 / 512-Hashwerts eine Mindestmenge an "sicheren" Daten für die Hash-Verarbeitung?
Ich habe gehört, dass beim erstellen einer hash, es ist möglich, dass, wenn kleine Dateien oder Datenmengen verwendet werden, ist der resultierende hash wird häufiger von einer Kollision. Wenn das stimmt, ist es eine minimale "sichere" Menge der Daten, die verwendet werden, um sicherzustellen, dass dieses nicht passiert?
Ich denke, die Frage könnte auch so formuliert werden:
Was ist die kleinste Menge von Daten, können Sie Sie sicher und sicher Hash?
InformationsquelleAutor der Frage PeterM | 2011-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer hash-Funktion akzeptiert Eingaben von beliebigen (oder zumindest sehr hoch) in der Länge, und erzeugt ein mit fester Länge ausgegeben. Es gibt mehrere mögliche Eingänge als Ausgänge möglich, so müssen Kollisionen existieren. Der springende Punkt, der eine sichere hash-Funktion ist, dass es "collision resistant", was bedeutet, dass während Kollisionen müssen mathematisch existieren, ist es sehr, sehr schwer, wirklich zu berechnen. Also, es ist nicht bekannt, Kollisionen für SHA-256 und SHA-512, und der beste bekannte Verfahren zur Berechnung eines (indem es auf Zweck) sind so lächerlich teuer, dass Sie nicht angewendet werden bald (die gesamte US-Bundeshaushalt für ein Jahrhundert kaufen würde, nur einen lächerlich kleinen Teil der Aufgabe).
So, wenn es nicht realistisch gemacht auf Zweck, können Sie erwarten, nicht auf einen Zusammenstoß aus (schlecht) Glück.
Außerdem, wenn Sie beschränken sich auf sehr kurze inputs, es gibt eine chance, dass es keine Kollision an alle. E. g., wenn Sie erwägen den 12-byte-Eingänge: es gibt 296 möglichen Sequenzen von 12 bytes. Das ist riesig (mehr als die aufgelistet werden können, die mit der heutigen Technologie). Doch, SHA-256 wird die Zuordnung der einzelnen Eingabe einer 256-bit-Wert, d.h. die Werte in einem sehr viel breiteren Raum (Größe 2256). Wir können nicht beweisen, dass es offiziell, aber die Chancen sind, dass alle diejenigen, die 296 hash-Werte unterscheiden sich von einander. Beachten Sie, dass dies hat keine praktische Konsequenz: es gibt keinen messbaren Unterschied zwischen dem finden einer Kollision, weil es keine ist, und nicht das finden einer Kollision, weil es äußerst unwahrscheinlich ist, zu schlagen.
Nur um zu zeigen, wie gering die Risiken von Kollisionen werden mit SHA-256: betrachten Sie Ihre Risiken zerfleischt wird von einem gorilla entkommen aus einem lokalen zoo oder privaten Eigentümer. Unwahrscheinlich? Ja, aber es kann noch immer viel passieren: es scheint, dass ein gorilla entkommen aus den Dallas zoo 2004 und verletzt vier Personen; ein weiteres gorilla entkommen aus den gleichen zoo 2010. Unter der Annahme, dass es nur ein wütender gorilla alle 6 Jahre auf der ganzen Erde (nicht nur in der Dallas area) und Sie geschehen zu sein die unglücklichen Burschen auf seinem Weg, aus einem menschlichen Bevölkerung von 6,5 Milliarden, dann die Risiken einer schweren-körperlichen-Schaden-durch-gorilla werden kann, geschätzt bei etwa 1: 243.7 pro Tag. Nun, nehmen Sie 10 Tausende von PC und haben diese Arbeit auf der Suche nach eine Kollision für SHA-256. Die Chancen des Schlagens einer Kollision in der Nähe von 1 in 275 pro Tag-mehr als eine Milliarden weniger wahrscheinlich als die angry ape Sache. Die Schlussfolgerung ist, dass, wenn Sie Angst SHA-256 Kollisionen aber nicht mit einer geladenen Schrotflinte zu allen Zeiten, dann Sie immer Ihre Prioritäten falsch. Auch nicht mit Zohan an Texas.
InformationsquelleAutor der Antwort Thomas Pornin
Nein, Länge der Nachricht hat keine Auswirkungen auf die Möglichkeit einer Kollision.
Wenn das der Fall ist, wird der Algorithmus gebrochen ist.
Können Sie versuchen, für sich selbst durch laufen, SHA gegen alle ein-byte-Eingänge, dann gegen alle zwei-byte-Eingänge und so weiter, und sehen, ob man eine Kollision. Wahrscheinlich nicht, denn niemand hat jemals gefunden eine Kollision für SHA-256 oder SHA-512 (oder wenigstens daraus ein Geheimnis aus Wikipedia)
InformationsquelleAutor der Antwort Thilo
Es ist keine minimale input-Größe. SHA-256 Algorithmus ist effektiv eine zufällige Zuordnung und Kollisions-Wahrscheinlichkeit hängt nicht von input-Länge. Sogar ein 1 bit Eingang 'sichere'.
Beachten Sie, dass der Eingang ist gepolstert, um ein Vielfaches von 512 bits (64 bytes) SHA-256 (Vielfache von 1024 für SHA-512). Wobei ein 12-byte-input (wie Thomas in seinem Beispiel) bei Verwendung von SHA-256, es gibt 2^96 möglichen Sequenzen der Länge 64 Byte.
Als ein Beispiel, ein 12-byte-input Hallo! (0x48656c6c6f20546865726521) wird aufgefüllt mit ein bit, gefolgt von 351 null-bits gefolgt von der 64-bit-Darstellung der Länge der Eingabe in bits, die 0x0000000000000060 bilden eine 512-bit-gepolsterte Nachricht. Das 512-bit-Nachricht als input für die Berechnung der hash.
Mehr details finden Sie im RFC: 4634 "US Secure Hash Algorithmen (SHA und HMAC-SHA)", http://www.ietf.org/rfc/rfc4634.txt
InformationsquelleAutor der Antwort Babu Srinivasan
Hash ist 256 bit lang, es gibt eine Kollision für etwas mehr als 256 Bits.
Können Sie nicht etwas komprimieren, in eine kleinere Sache ohne Kollisionen, seine trotzen Mathematik.
Ja, weil der algoritm und die 2 hoch 256 es gibt eine Menge von verschiedenen hashes, aber Sie sind nicht die kollisionsfreie, das ist unmöglich.
InformationsquelleAutor der Antwort Tore Ussing
Hängt sehr stark von der Anwendung: wenn Sie waren einfach hashing "JA" und "NEIN" - Zeichenfolgen zum senden über ein Netzwerk, um anzugeben, ob Sie mir geben sollte eine 100.000 $ - Darlehens, es wäre eine ziemlich große scheitern-die Domäne der Antworten kann nicht , dass groß, so dass jemand könnte leicht überprüfen beobachtet hashes auf den Draht mit einer Datenbank von 'small input' hash-Ausgänge.
Wenn Sie Datum, Zeit, meinen Namen, meine Steuernummer, die beantragten Betrag, die Menge der Daten, die gehasht werden wahrscheinlich nicht viel, aber die Chancen, dass die Daten in vorberechneten hash-Tabellen ist ziemlich schlank.
Aber ich kenne keine Forschung zu zeigen, die Sie, um über meine Instinkte. Sorry.
InformationsquelleAutor der Antwort sarnold