Fonctions «Memory-Hard» ou «Memory-Bound»?

Sep 17 2020

L'une des approches pour empêcher les attaques Sybil ou DoS est le PoW lié au processeur. Cependant, en raison de l'influence de la loi de Moore, les approches basées sur la mémoire sont suggérées.

En fait, il existe deux termes différents: (1) fonctions de mémoire et (2) fonctions liées à la mémoire ;

Cela signifie-t-il que nous avons deux techniques différentes basées sur la mémoire?

Et si oui, quelle est la différence entre ces deux termes?

Réponses

4 kelalaka Sep 17 2020 at 20:33

Les définitions de Wikipédia sont claires;

  • fonctions liées à la mémoire ;

    La mémoire limitée fait référence à une situation dans laquelle le temps nécessaire pour terminer un problème de calcul donné est déterminé principalement par la quantité de mémoire requise pour contenir les données.

    Ceci est proposé pour une utilisation contre les spams, d'abord liés au processeur puis à la mémoire. Cet algorithme nécessite d'accéder à la mémoire de manière imprévisible afin que les caches soient inefficaces. Cela décourage les spammeurs.

  • fonctions de mémoire

    En cryptographie, une fonction mémoire dure (MHF) est une fonction qui coûte une quantité importante de mémoire à évaluer. Elle est différente des fonctions liées à la mémoire, cette dernière entraîne un coût en ralentissant le calcul par latence mémoire. Les MHF trouvent leur utilisation comme une forme de preuve de travail.

    C'est contre la parallélisation massive du hachage, etc. Par exemple, les mineurs de bitcoin créent des fermes pour les calculs SHA2d puisque SHA2 n'est pas une mémoire dure.

    Il existe deux variantes

    • Dépendant des données
    • Indépendant des données

    Par exemple Argon2 a à la fois le mode et même combiné. Argon2i pour les données indépendantes et Argon2d pour les données dépendantes. Dans le mode combiné Argon2id.