"Memory-Hard" vs. "Memory-Bound" -Funktionen?

Sep 17 2020

Einer der Ansätze zur Verhinderung von Sybil- oder DoS-Angriffen ist CPU-gebundenes PoW. Aufgrund des Einflusses des Moore'schen Gesetzes werden jedoch gedächtnisbasierte Ansätze vorgeschlagen.

Tatsächlich gibt es zwei verschiedene Begriffe: (1) speicherfeste Funktionen und (2) speichergebundene Funktionen;

Bedeutet das, dass wir zwei verschiedene speicherbasierte Techniken haben?

Und wenn ja, was ist der Unterschied zwischen diesen beiden Begriffen?

Antworten

4 kelalaka Sep 17 2020 at 20:33

Die Wikipedia-Definitionen sind klar;

  • speichergebundene Funktionen ;

    Speicher gebunden bezieht sich auf eine Situation, in der die Zeit zum Beenden eines bestimmten Rechenproblems hauptsächlich durch die zum Speichern von Daten erforderliche Speichermenge bestimmt wird.

    Dies wird für die Verwendung gegen Spam vorgeschlagen, zuerst CPU-gebunden, dann speichergebunden. Dieser Algorithmus erfordert einen unvorhersehbaren Zugriff auf den Speicher, damit Caches unwirksam sind. Dies entmutigt die Spammer.

  • speicherharte Funktionen

    In der Kryptographie ist eine Speicher-Hard-Funktion (MHF) eine Funktion, deren Auswertung eine erhebliche Menge an Speicher kostet. Es unterscheidet sich von speichergebundenen Funktionen, wobei letztere Kosten verursachen, indem die Berechnung durch Speicherlatenz verlangsamt wird. MHFs finden ihre Verwendung als Arbeitsnachweis.

    Dies ist gegen die massive Parallelisierung von Hashing usw. Beispielsweise erstellen die Bitcoin-Miner Farmen für SHA2d-Berechnungen, da SHA2 nicht speicherhart ist.

    Es gibt zwei Varianten

    • Datenabhängig
    • Datenunabhängig

    Zum Beispiel hat Argon2 sowohl Modus als auch sogar kombiniert. Argon2i für datenunabhängig und Argon2d für datenabhängig. Im kombinierten Modus Argon2id.