Ir al contenido

Lyra2

De BitcoinWiki
Diagrama de la matriz de memoria de Lyra2
Diagrama de la matriz de memoria de Lyra2.

Lyra2 es un esquema de hash de contraseñas con memoria dura que también puede derivar material de claves criptográficas. Fue diseñado por Marcos A. Simplicio Jr., Leonardo C. Almeida, Ewerton R. Andrade, Paulo C. F. dos Santos y Paulo S. L. M. Barreto en la Universidad de São Paulo.[1]

Lyra2 fue finalista en el Concurso de Hashing de Contraseñas 2013-2015 y recibió un reconocimiento especial. Argon2, y no Lyra2, fue seleccionado como ganador del concurso.[2]

Objetivo

Las contraseñas seleccionadas por humanos suelen contener menos entropía que las claves criptográficas. Si se obtiene una base de datos de contraseñas o un archivo cifrado, un atacante puede probar conjeturas sin conexión. Un esquema de hash de contraseña aumenta el costo de cada intento al requerir un cálculo configurable y, para un diseño con memoria dura, una cantidad sustancial de memoria.

Lyra2 pertenece a esta rama basada en contraseñas del más amplio Key derivation function familia. Acepta contraseña, salt, longitud de salida deseada y parámetros de costo. Su resultado puede almacenarse como verificador de contraseñas o utilizarse como material de claves, según la aplicación.[1] Un salt separa registros que usan la misma contraseña; normalmente no es secreto.

Diseño

Lyra2 está construido a partir de un sistema criptográfico. esponja, una construcción con un estado interno que absorbe entradas y luego exprime salidas pseudoaleatorias. El algoritmo almacena valores intermedios en una matriz de memoria y los revisa durante el procesamiento. Descartar partes de esa matriz para ahorrar memoria obliga al evaluador a recalcular los valores, lo que pretende encarecer las compensaciones entre tiempo y memoria.[1]

La especificación divide la evaluación en tres fases amplias:

  1. Arranque y configuración absorba la contraseña, la sal y los parámetros, luego inicialice la matriz de memoria.
  2. Errante revisa y modifica filas de la matriz de acuerdo con los valores derivados del estado de esponja en evolución. El parámetro tiempo-costo controla el trabajo repetido.
  3. Resumen absorbe un valor de matriz final y exprime la salida solicitada de la esponja.

Los principales parámetros de costo son el número de pases errantes (t) y las dimensiones de la matriz de memoria: filas (R) y columnas (do). Con una tasa de bits de esponja de b, la matriz ocupa b × R × C bits. La longitud de salida y las configuraciones subyacentes de permutación, velocidad de bits, rotación y ronda reducida de la esponja también forman parte de la especificación.[1] Esta capacidad de configuración permite al implementador aumentar el tiempo de procesamiento sin aumentar necesariamente la memoria, o seleccionar una matriz más grande para una plataforma con más memoria.

El artículo describe dos extensiones con nombre. Lyra2-δ cambia la proporción de células de la matriz revisadas durante la deambulación para ajustar el uso del ancho de banda de la memoria. Lyra2p ejecuta múltiples instancias de esponja sincronizadas en porciones de una matriz compartida para que una plataforma multinúcleo legítima pueda aumentar el uso de memoria o funcionar sin el mismo aumento de latencia.[1] Éstas son variantes parametrizadas del diseño de investigación, no estándares independientes.

Justificación de la seguridad

Los autores de Lyra2 diseñaron el patrón cambiante de acceso a la memoria y las actualizaciones repetidas de las filas para penalizar a los atacantes que retienen menos memoria que la cantidad configurada. Es posible que sea necesario reconstruir una fila descartada desde un estado anterior y luego reconstruirla nuevamente después de actualizaciones posteriores, por lo que reducir el pico de memoria introduce trabajo adicional. Los autores también buscaron equilibrar la resistencia a la observación de canales laterales con la resistencia a implementaciones que utilizan almacenamiento más lento y económico y aumentar el costo de las implementaciones dedicadas de FPGA o ASIC.[1] Estos son objetivos de diseño y análisis del artículo; no garantizan que cada implementación o conjunto de parámetros sea seguro.

La fase de configuración utiliza un patrón de acceso predecible, mientras que la fase errante selecciona filas del estado interno en evolución. La distinción refleja una compensación: el acceso dependiente de los datos puede aumentar la resistencia a algunas estrategias de poca memoria, pero puede revelar información a través de cachés u otros canales secundarios. Las alternativas y variantes del documento permiten a los implementadores elegir diferentes puntos en esa compensación, lo que significa que la versión y configuración exactas son parte de cualquier reclamo de seguridad.[1]

El hash de contraseñas sigue estando limitado por la calidad de la contraseña y las opciones operativas. Una configuración de tiempo o memoria baja reduce el costo del ataque, mientras que una configuración excesiva puede permitir la denegación de servicio. Las implementaciones también necesitan sales únicas, almacenamiento de parámetros autenticados, comparaciones en tiempo constante cuando corresponda, tamaños de entrada limitados y un plan de migración para configuraciones más sólidas.

Competencia de hash de contraseñas

El Concurso de Hashing de Contraseñas invitó a propuestas públicas para un estándar de hash de contraseñas moderno. Lyra2 avanzó a la ronda final y fue uno de los cuatro esquemas, junto con Catena, Makwa y yescrypt, que recibieron un reconocimiento especial. El panel seleccionó a Argon2 como ganador absoluto en julio de 2015.[2]

Un reconocimiento especial estableció a Lyra2 como un diseño de investigación notable, no como una recomendación de implementación universal. El protocolo actual o la guía de la plataforma pueden especificar otra función. Por ejemplo, RFC 9106 proporciona una especificación orientada al implementador y perfiles recomendados para Argon2id.[3]

Usar en prueba de trabajo

Se han incluido construcciones modificadas que llevan el nombre Lyra2 en los algoritmos de prueba de trabajo encadenados utilizados por algunas criptomonedas, incluidas Lyra2RE y Lyra2REv2. Esos algoritmos de minería combinan múltiples funciones y pueden cambiar los parámetros o la función de Lyra2. Su uso no debe considerarse como evidencia de que el esquema de hash de contraseña original es adecuado para todas las aplicaciones de minería o almacenamiento de contraseñas.

Estado de implementación

Los autores publicaron material de referencia y código con la presentación del concurso. Las aplicaciones deben identificar la versión exacta y los parámetros que implementan. Copiar el algoritmo del pseudocódigo secundario, omitir la validación o seleccionar configuraciones obsoletas puede romper la interoperabilidad e invalidar los supuestos de costos previstos.

Referencias

Enlaces externos