Articulo de referencia

Función de memoria dura

En criptografía , una función de memoria difícil ( MHF ) es una función que requiere una cantidad significativa de memoria para evaluarse eficientemente. [ 1 ] Se diferencia de ...

En criptografía , una función de memoria difícil ( MHF ) es una función que requiere una cantidad significativa de memoria para evaluarse eficientemente. [ 1 ] Se diferencia de una función de memoria limitada , que genera costos al ralentizar el cálculo mediante la latencia de la memoria. [ 2 ] Las MHF se han utilizado en el estiramiento de claves y la prueba de trabajo, ya que sus mayores requisitos de memoria reducen significativamente la ventaja de eficiencia computacional del hardware personalizado sobre el hardware de propósito general en comparación con las funciones que no son MHF. [ 3 ] [ 1 ]

Introducción

Las funciones de transferencia de memoria (MHF) están diseñadas para consumir grandes cantidades de memoria en un ordenador con el fin de reducir la eficacia de la computación paralela . Para evaluar la función utilizando menos memoria, se produce una penalización de tiempo significativa. Dado que cada cálculo de MHF requiere una gran cantidad de memoria, el número de cálculos de funciones que pueden ocurrir simultáneamente está limitado por la cantidad de memoria disponible. Esto reduce la eficiencia del hardware especializado, como los circuitos integrados de aplicación específica y las unidades de procesamiento gráfico , que utilizan la paralelización, al calcular una MHF para un gran número de entradas, como cuando se realizan ataques de fuerza bruta a hashes de contraseñas o se mina criptomonedas . [ 1 ] [ 4 ]

Motivación y ejemplos

La prueba de trabajo de Bitcoin utiliza la evaluación repetida de la función SHA-256 , pero los procesadores modernos de propósito general, como las CPU comerciales , son ineficientes al calcular una función fija muchas veces. El hardware especializado, como los circuitos integrados de aplicación específica (ASIC) diseñados para la minería de Bitcoin, puede usar 30 000 veces menos energía por hash que las CPU x86, a la vez que tiene tasas de hash mucho mayores. [ 4 ] Esto generó preocupación por la centralización de la minería de Bitcoin y otras criptomonedas. [ 4 ] Debido a esta desigualdad entre los mineros que usan ASIC y los mineros que usan CPU o hardware comercial, los diseñadores de sistemas de prueba de trabajo posteriores utilizaron funciones hash para las que era difícil construir ASIC que pudieran evaluar la función hash significativamente más rápido que una CPU. [ 3 ]

Como el costo de la memoria es independiente de la plataforma, [ 1 ] los MHF se han utilizado en la minería de criptomonedas, como para Litecoin , que usa scrypt como su función hash. [ 3 ] También son útiles en el hash de contraseñas porque aumentan significativamente el costo de probar muchas contraseñas posibles contra una base de datos filtrada de contraseñas hash sin aumentar significativamente el tiempo de cálculo para los usuarios legítimos. [ 1 ]

Medición de la dureza de la memoria

Existen diversas formas de medir la complejidad de memoria de una función. Una medida común es la complejidad de memoria acumulativa (CMC). En un modelo paralelo, la CMC es la suma de la memoria requerida para calcular una función en cada paso de tiempo del cálculo. [ 5 ] [ 6 ]

Otras medidas viables incluyen la integración del uso de memoria en función del tiempo y la medición del consumo de ancho de banda de memoria en un bus de memoria. Las funciones que requieren un alto ancho de banda de memoria a veces se denominan "funciones exigentes en ancho de banda". [ 7 ]

Variantes

Las MHF se pueden clasificar en dos grupos diferentes según sus patrones de evaluación: funciones de memoria difíciles dependientes de datos (dMHF) y funciones de memoria difíciles independientes de datos (iMHF). A diferencia de las iMHF, el patrón de acceso a la memoria de una dMHF depende de la entrada de la función, como la contraseña proporcionada a una función de derivación de clave. [ 8 ] Ejemplos de dMHF son scrypt y Argon2d , mientras que ejemplos de iMHF son Argon2i y catena . Muchas de estas MHF se han diseñado para usarse como funciones de hash de contraseñas debido a su dificultad de memoria.

Un problema notable de los dMHF es su vulnerabilidad a ataques de canal lateral, como la manipulación de la caché. Esto ha llevado a preferir el uso de iMHF para el hash de contraseñas. Sin embargo, se ha demostrado matemáticamente que los iMHF presentan propiedades de resistencia a la memoria más débiles que los dMHF. [ 9 ]

Referencias

  1. 1 2 3 4 5 Chen, Binyi (2019). Funciones difíciles de memorizar: cuando la teoría se encuentra con la práctica (Tesis). UC Santa Bárbara.
  2. Dwork, Cynthia; Goldberg, Andrew; Naor, Moni (2003). "Sobre funciones con limitaciones de memoria para combatir el spam". En Boneh, Dan (ed.). Avances en criptología - CRYPTO 2003. Notas de clase en ciencias de la computación. Berlín, Heidelberg: Springer. págs. 426–444 . doi : 10.1007/978-3-540-45146-4_25 . ISBN  978-3-540-45146-4.
  3. 1 2 3 LIU, ALEC (2013-11-29). "Más allá de Bitcoin: una guía de las criptomonedas más prometedoras" . Vice . Recuperado el 30 de septiembre de 2023 .
  4. 1 2 3 Biryukov, Alex; Khovratovich, Dmitry (2015). "Criptoanálisis de compensación de funciones con memoria difícil". En Iwata, Tetsu; Cheon, Jung Hee (eds.). Avances en criptología – ASIACRYPT 2015. Notas de clase en ciencias de la computación. Berlín, Heidelberg: Springer. pp. 633–657 . doi : 10.1007/978-3-662-48800-3_26 . ISBN  978-3-662-48800-3.
  5. (AS15) Alwen, Serbineko, Gráficos de alta complejidad paralela y funciones con alta dependencia de la memoria , 2015
  6. Alwen, Joel; Blocki, Jeremiah; Pietrzak, Krzysztof (2017-07-07). "Complejidad espacial sostenida". arXiv : 1705.05313 [ cs.CR ].
  7. Blocki, Jeremiah; Liu, Peiyuan; Ren, Ling; Zhou, Samson (2022). "Funciones de ancho de banda difícil: reducciones y límites inferiores" (PDF) . Cryptology ePrint Archive . Archivado (PDF) del original el 12 de enero de 2023. Recuperado el 11 de enero de 2023 .
  8. Blocki, Jeremiah; Harsha, Ben; Kang, Siteng; Lee, Seunghoon; Xing, Lu; Zhou, Samson (2019). "Funciones difíciles de memoria independientes de datos: nuevos ataques y construcciones más fuertes" . En Boldyreva, Alexandra; Micciancio, Daniele (eds.). Avances en criptología – CRYPTO 2019. Notas de clase en ciencias de la computación. Cham: Springer International Publishing. pp. 573–607 . doi : 10.1007/978-3-030-26951-7_20 . ISBN  978-3-030-26951-7.
  9. Alwen, J., Blocki, J. (2016). Computación eficiente de funciones de memoria difíciles e independientes de los datos.