2013-01-16 15 views
12

Ich weiß, SHA-224, SHA-256, SHA-384 und SHA-512 sind alle Teil der SHA-2 hash function family. Aber es gibt jetzt auch einen neuen SHA-3-Hash-Algorithmus.Was ist der Unterschied zwischen den Hash-Algorithmen SHA-2 und SHA-3?

Könnten Sie mir bitte den Unterschied zwischen SHA-2 und SHA-3 mitteilen? Wann und warum sollte ich SHA-3 verwenden? Und welchen sicheren Hash-Algorithmus (n) beinhaltet SHA-3 eigentlich?

+0

@xuinkrbin. das ist eine Schande, da es in diesem Forum nicht verfügbar ist - diese Frage wäre besser bei crypto.stackexchange. Beachten Sie, dass wir jetzt eine Antwort haben und keine zusätzlichen Antworten hinzugefügt werden können. Es gibt also keine Möglichkeit, dass dies jemals ein nützlicher Hit bei Google wird - auch wenn Ilmaris Antwort nicht halb so schlimm ist. Aber ich habe meine ziemlich beleidigende Bemerkung entfernt. –

+0

Es war nützlich für mich. :-) –

Antwort

18

SHA-3, auch bekannt als Keccak (sein ursprünglicher Name, bevor es als der Gewinner der NIST SHA-3 competition gewählt wurde), ist ein völlig neuer Hash-Algorithmus, der nichts mit SHA-1 und SHA-2 zu tun hat.

Einer der erklärten Gründe, warum NIST Keccak gegenüber den anderen SHA-3-Finalisten gewählt hat, war seine Unähnlichkeit zu den bestehenden SHA-1/2-Algorithmen; Es wurde argumentiert, dass diese Unähnlichkeit es zu einer besseren Ergänzung der bestehenden SHA-2-Algorithmen macht (die immer noch als sicher und empfohlen von NIST angesehen werden), sowie es weniger wahrscheinlich macht, dass zukünftige kryptoanalytische Durchbrüche die Sicherheit von SHA-2 beeinträchtigen würden. 2 und SHA-3.

Aus irgendeinem Grund wurde die SHA-3-Hash-Funktion Wettbewerb ursprünglich von NIST im Jahr 2007 angekündigt, nachdem einige neue kryptoanalytische Angriffe die Sicherheit von SHA-1 in Frage gestellt hatten. Während die Angriffe auf SHA-1 damals hauptsächlich von theoretischem Interesse waren, wurde befürchtet, dass weitere Verbesserungen dieser Techniken praktische Kollisionsfindungsangriffe auf SHA-1 ermöglichen könnten, und dass dieselben Techniken auch gegen SHA-2 angewendet werden könnten. welches ein ähnliches Design wie SHA-1 hat. Daher entschied NIST, einen Wettbewerb zu veranstalten, um einen Nachfolger für SHA-2 auszuwählen, der SHA-3 heißen sollte.

Während eines realen Kollisionsangriffs auf SHA-1 was finally demonstrated in 2017 haben sich die gefürchteten Angriffe auf SHA-2 jedoch nicht bewahrheitet. Es ist heutzutage allgemein akzeptiert, dass das Brechen von SHA-2 nicht so einfach sein wird, wie es vor zehn Jahren schien, und daher werden alle Varianten von SHA-2 auf absehbare Zeit noch als sicher betrachtet. Allerdings hatte NIST versprochen, dass SHA-3 im Jahr 2012 ausgewählt werden würde, und da viele Leute ziemlich viel Zeit und Mühe damit verbracht hatten, neue Hash-Funktionen für den Wettbewerb einzureichen und zu bewerten, und weil es einige wirklich nette Designs gab unter den Finalisten wäre es eine Schande gewesen, keinen von ihnen als Gewinner zu wählen. Daher entschied sich NIST dafür, Keccak als SHA-3 auszuwählen und es als Alternative (kein Nachfolger) für die SHA-2-Hash-Funktionen zu empfehlen.

Was alles bedeutet, dass, wenn Sie eine sichere und standardisierte Hash-Funktion wollen, Sie entweder SHA-2 oder SHA-3 wählen können. Wenn Sie sich wirklich paranoid fühlen, können Sie sogar beide verwenden und Ihr Kryptosystem so entwerfen, dass es sicher bleibt, selbst wenn eine der Hash-Funktionen kaputt ist.

+5

Die Verwendung beider Hash-Funktionen kann ein bisschen gefährlich sein, wenn Sie nicht wissen, was Sie tun. Es hängt davon ab, was Sie natürlich erreichen wollen. –

Verwandte Themen