Comparación de bcrypt y scrypt

0

¿Hay alguna comparación de bcrypt versus scrypt? Estoy particularmente interesado en cómo bcrypt (10) bcrypt (20) o incluso bcrypt (30) se escala en comparación con scrypt (1)     

pregunta Max0999 22.01.2014 - 20:39
fuente

1 respuesta

5

La comparación es compleja porque scrypt y bcrypt no se reproducen en los mismos parámetros.

Para bcrypt, el cálculo implica realizar muchas operaciones en un arreglo de RAM de 4 kB. Se accede a la matriz de forma pseudoaleatoria, por lo que la única manera de hacer que esto funcione a una velocidad decente es tener un bloque real de RAM de al menos ese tamaño. Esto es cierto para la CPU normal, que tiene (normalmente) alrededor de 32 o 64 kB de RAM muy rápida (llamada "caché de nivel 1"). Esto es no verdadero de GPU, donde no hay RAM rápida por núcleo (hay RAM en una GPU, pero se comparte). La buena FPGA ha incrustado bloques de RAM rápidos de unos pocos kilobytes; por lo tanto, un atacante sofisticado que usa FPGA obtendrá una ventaja sobre el defensor (porque el defensor usa una PC; esa es la suposición central).

Con scrypt, las operaciones son algo diferentes y, en particular, hay una matriz de RAM mucho más grande (tamaño si es configurable pero un tamaño típico usaría varios megabytes). Para una CPU, una RAM más grande necesita ejercer caché de nivel 2 o incluso RAM principal, que es más lenta que el caché de nivel 1. Sin embargo, una PC sufre mucho menos que un FPGA cuando va a grandes matrices de RAM. Entonces, la teoría es que la mejor arquitectura para atacar scrypt es, de hecho, una PC, como la que usa el defensor. Esto hace que el atacante y el defensor vuelvan a la estricta igualdad de medios, que es lo mejor que podemos esperar.

Lo que importa no es la velocidad real de ninguno de los algoritmos, sino la eficiencia relativa de diferentes arquitecturas cuando se implementa el algoritmo. Una función de hashing de contraseña es "óptima" si la mejor arquitectura para descifrar contraseñas (el hardware que permitirá el mayor número de contraseñas probadas por segundo, para un presupuesto determinado) es lo que el defensor tiene que usar, es decir, básicamente, una PC. Por lo tanto, comparar bcrypt con scrypt significa tratar de medir qué tan bien cualquiera de ellos cumple esa característica ideal. Por ejemplo, con bcrypt, sabemos que un valor de FPGA de $ 10000 permite un mayor rendimiento de cracking que los $ 10000 de PC.

Podemos poner cifras en estos, pero serán extremadamente sensibles a muchos parámetros arquitectónicos y económicos. Cada año, la disponibilidad de nuevo hardware y la evolución de los precios del hardware alteran considerablemente cualquier cifra que pueda haber reunido. Además, el tamaño de la RAM y el presupuesto de tiempo de scrypt también modifican la imagen. El artículo original de Scrypt usa supuestos que no son necesariamente realistas (por ejemplo, que un usuario normal acepta un retraso de 5 segundos para iniciar sesión y que un servidor ocupado no tiene más de una docena de intentos de inicio de sesión por minuto); además, las estimaciones se realizaron para el hardware de 2009: ¿qué tipo de silex utilizaron en ese momento?

Resumen: No tengo ninguna referencia a ninguna comparación reciente, pero por las razones explicadas anteriormente, puedo afirmar que, con alta probabilidad, cualquier comparación que pueda encontrar será probablemente bastante sin sentido y no aplicable a su propia situación.

    
respondido por el Tom Leek 22.01.2014 - 22:51
fuente

Lea otras preguntas en las etiquetas