Pregunta

decir que estoy usando un hash para identificar los archivos, por lo que no necesito que sea seguro, sólo necesito para minimizar las colisiones. Estaba pensando que podría acelerar el hash arriba mediante la ejecución de cuatro valores hash en paralelo usando SIMD y luego hash el resultado final. Si el hash está diseñado para tener un bloque de 512 bits, sólo paso a través del archivo de bloques de bits teniendo 4x512 en una sola vez y generar hashes de cada cuatro que; luego, al final del archivo que he hash las cuatro hashes resultantes juntos.

Estoy bastante seguro de que este método produciría hashes más pobres ... pero cuánto más pobre? Cualquier parte posterior de los cálculos sobre?

¿Fue útil?

Solución

La idea de que se puede leer bloques del archivo desde el disco más rápido de lo que se puede dispersar ellos es, así, una suposición no probada? S de disco - incluso SSD - es muchos órdenes de magnitud más lento que la RAM que el hash va sin embargo.

Asegurar colisiones a baja es un criterio de diseño para todos los hashes, y todos los hashes de la corriente principal de hacer un buen trabajo de ella - sólo tiene que utilizar un hash de corriente, por ejemplo, MD5.

Específico a la solución del cartel está considerando, no es un hecho que hash paralelo debilita el hash. Hay hashes diseñados específicamente para hashing paralelo de los bloques y la combinación de los resultados como dijo el cartel, aunque quizás no todavía en la adopción generalizada (por ejemplo, MD6 , que se retiró ininterrumpida desde SHA3)

De forma más general, hay implementaciones convencionales de hash funciones que utilizan SIMD. ejecutores hash son muy rendimiento conscientes , y toman tiempo para optimizar sus implementaciones ; que tendría un trabajo duro igualando su esfuerzo. El mejor software para fuerte hash es de alrededor de 6 a 10 ciclos / bytes. acelerado por hardware hash también está disponible si hash es el verdadero cuello de botella.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top