Función de hash con longitud configurable

1

Aquí hay una breve pregunta: ¿existe una función hash con una longitud configurable? Y si no, ¿Pórque no? ¿Sería un problema?

    
pregunta Serverfrog 09.04.2014 - 11:42
fuente

2 respuestas

6

Creo que esta pregunta ya se discutió aquí y la respuesta fue así, en realidad es posible, como ejemplos como Skein y el show de Keccak. Participaron en SHA3-Competition en 2012, en particular en el llamado concurso de función hash NIST. Omitir la funcionalidad del ganador de esta competencia, el representante actual del algoritmo SHA-3, podría ayudarlo a comprender que existe al menos un ejemplo eficiente para un algoritmo, que en cierto sentido permite la manipulación de la longitud del hash.

Keccak

Entonces, por ejemplo, la función Hash Keccak es, como ya dijo Tom Leek, un llamado Sponge-Hash y da la oportunidad de manipular la longitud del Hash resultante. por defecto. Es interesante que todos los siguientes parámetros que está tomando Keccak son:

Parámetro: L

Si solo echamos un vistazo a su funcionalidad, veremos que Keccak funciona con un vector de estado b que se inicializa con 0 , que contiene 25 palabras < strong> w y cada una de estas palabras consiste en w = 2 ^ L bits. En consecuencia, el vector de estado tiene una longitud de b = 25 * w .

Parámetro: n

n representa la longitud de bits del valor hash deseado. En la versión que se entregó para la competencia, había L = 6 , lo que implica que la longitud del valor de hash real estará entre 224 y 512 bits. Pero como puede ver, la longitud resultante del hash es variable , dependiendo de los parámetros de entrada que discutimos hasta ahora. La longitud del hash, en el rango entre 224 y 512 bits, es habitual, ya que podría cambiar el parámetro L para manipular la longitud.

Por supuesto, el Keccak, respectivamente, ya que desde hace dos años el algoritmo oficial SHA-3, no termina aquí y esta no fue una descripción muy sofisticada. Además, en realidad habrá gradualmente cifrado XOR, que es comparable a un cifrado de bloque clásico. Pero para obtener más detalles, puedes consultar el artículo de wikipedia aquí . Creo que entrar en detalles relacionados con sofistys técnicamente sería más como sea necesario para responder a su pregunta.

Solo quería hacer un ejemplo de la inicialización de los parámetros necesarios para mostrarle que hay formas de manipular la longitud de hash resultante.

    
respondido por el user37819 09.04.2014 - 13:19
fuente
6

Existen funciones hash con una longitud de salida configurable, pero realmente no las llamamos "funciones hash". Tenemos Funciones de derivación de claves . Además, algunos diseños de funciones hash permiten naturalmente una longitud de salida configurable, en particular funciones de esponja , un excelente ejemplo detrás de Keccak. -ser estándar SHA-3. De hecho, NIST es actualmente redacción el estándar y eso incluye SHAKE128 y SHAKE256, dos usos de Keccak con una longitud de salida configurable.

    
respondido por el Tom Leek 09.04.2014 - 13:26
fuente

Lea otras preguntas en las etiquetas