Warum wurden die RIPEMD-160-Hash-Algorithmen vor SHA-1 gewählt?

Bitcoin verwendet sowohl SHA-256- als auch RIPEMD-160-Hashes. Meistens wird ein Double-Round-SHA-256 verwendet, aber zur Adressgenerierung wird RIPEMD-160 verwendet, da es einen kürzeren Hash-Wert generiert. RIPEMD-160 hat einen 160-Bit- oder 20-Byte-Hashwert, während SHA-256 einen 256-Bit- oder 32-Byte-Hashwert hat.

Daher wird RIPEMD-160 für seinen kürzeren Hash verwendet. SHA-1 erzeugt jedoch auch einen 160-Bit-Hash. RIPEMD-160 ist ein weniger beliebter Algorithmus, erreicht aber tatsächlich genau dasselbe wie SHA-1.

Der einzige wirkliche Unterschied, den ich im Internet finden kann, ist das folgende Fragment von der Wikipedia-Seite von RIPEMD-160 :

RIPEMD-160 wurde in der offenen akademischen Gemeinschaft entwickelt, im Gegensatz zu den von der NSA entworfenen SHA-1- und SHA-2-Algorithmen. Andererseits scheint RIPEMD-160 etwas weniger häufig verwendet zu werden als SHA-1, was dazu geführt haben könnte, dass es weniger genau untersucht wurde als SHA. Es ist nicht bekannt, dass RIPEMD-160 durch Patente eingeschränkt wird.

Sind Patentprobleme der Grund? Warum ist SHA-1 ein Problem, aber SHA-256 nicht? Ich weiß, dass SHA-1 und SHA-2 (zu denen SHA-256 gehört) unterschiedliche Iterationen der SHA-Initiative sind und daher wahrscheinlich eine sehr unterschiedliche rechtliche Umsetzung haben.

Weiß jemand wirklich, warum RIPEMD-160 vor dem populäreren SHA-1 gewählt wurde?

Antworten (2)

Es gibt eine Vielzahl von Gründen.

  1. Wie @ThePiachu erwähnte, gibt es einen theoretischen 2^60-Bit-Angriff, der auf SHA-1 möglich ist , was bedeutet, dass der Algorithmus schwächer als vorgesehen ist.

  2. RIPEMD-160 wurde in der offenen akademischen Gemeinschaft entwickelt, im Gegensatz zu den von der NSA entworfenen SHA-1- und SHA-2-Algorithmen.

    Es ist erwähnenswert, dass Satoshi SHA2-256 zweimal hätte verwenden und den zweiten Digest auf 160 Bit kürzen können, da dies ebenso sicher ist . Die Tatsache, dass er es nicht getan hat, ist ein Beweis dafür, dass seine Entscheidung eine bewusste Entscheidung war, RIPEMD-160 anstelle der NSA-Algorithmen zu verwenden.

  3. Schließlich glaube ich, dass RIPEMD auf einem anderen Design basiert als die SHA1/SHA2-Algorithmen, und daher sind Angriffe, die für einen gelten, möglicherweise nicht auf den anderen übertragbar (was gut ist).

Nur das erste ist wirklich ein Argument. Die anderen beiden lassen sich dadurch widerlegen, dass statt eines weiteren 256-Bit-Hashes SHA-256 verwendet wird. SHA-256 wird wahrscheinlich wegen seiner Popularität gewählt, warum also sollte SHA-1 nicht aus demselben Grund gewählt werden?
Ich stimme nicht ganz zu. Nur weil einer der Algorithmen (SHA-256) von der NSA entwickelt wurde, heißt das nicht, dass es immer noch kein Vorteil ist, einen von einer anderen Institution entwickelten Algorithmus zu verwenden.
Es ist erwähnenswert, dass Satoshi SHA2-256 zweimal hätte verwenden und den zweiten Digest auf 160 Bit kürzen können. Die Tatsache, dass er es nicht getan hat, ist meiner Meinung nach ein Beweis dafür, dass Satoshis Entscheidung eine bewusste Entscheidung war, RIPEMD-160 anstelle der NSA-Algorithmen zu verwenden. ( crypt.stackexchange.com/questions/3153/… )
Ich sage nicht, dass er SHA-1 hätte verwenden sollen, weil es von der NSA entwickelt wurde. Ich sage nur, dass es seltsam ist, dass er SHA-256 für einen 256-Bit-Hash verwendet, aber RIPEMD-160 für einen 160-Bit-Hash, während dieselbe Hash-Familie, in der SHA-256 enthalten ist, auch eine 16-Bit-Variante hat. (Ich weiß, dass SHA-1 und SHA-2 nicht vollständig aus derselben Familie stammen, aber sie haben denselben Namen.)

Es könnte an einem theoretischen 2^60-Bit-Angriff liegen, der auf SHA-1 möglich ist , was bedeutet, dass der Algorithmus schwächer als vorgesehen ist. RIPEMD scheint solche Schwächen nicht zu haben.

Hm, das wusste ich nicht. Trotzdem ist die Wahrscheinlichkeit hoch, dass dieser theoretische Fehler nur gefunden wurde, weil der Algorithmus beliebter ist als RIPEMD-160 ...
Ich probier das nochmal aus. Die Verwendung von RIPEMD-160 in Bitcoin dient nicht der Sicherheit. Wenn Sie eine Kollision finden, können Sie nur den öffentlichen Schlüssel der Adresse finden, der Ihnen keinen Zugriff auf die Coins gewährt. Die Sicherheit des Algorithmus ist in diesem Fall nicht entscheidend, daher wäre die Popularität der Hauptentscheidungsfaktor, da dies die Akzeptanz stark erleichtern kann.
@StevenRoose Wenn Sie eine RIPEMD-Kollision für eine Adresse mit einem anderen privaten Schlüssel erzeugen können, den Sie kontrollieren, könnten Sie das gesamte Geld dieser Adresse ausgeben. Wir müssten zum Zahlungsalgorithmus "Pay to Public Key" zurückkehren.
Nun, in der Tat. Kollisionen werden jedoch erzeugt, indem eine bestimmte Eingabe erstellt wird, die mit einer gewünschten Ausgabe übereinstimmt. Die Eingaben wären öffentliche Schlüssel. Der öffentliche Schlüssel eines privaten Schlüssels ist unvorhersehbar, und wenn Sie eine Hash-Funktion knacken, um Kollisionen zu erzeugen, wetten Sie, dass Sie dies mit bestimmten Eingaben tun werden, nicht mit zufälligen.