¿Minimizar el riesgo de colisión para cualquier función hash?

-1

¿Cuál es un buen consejo para eliminar las colisiones cuando se hacen hash de cosas? Necesito un identificador único para todos mis usuarios, pero quiero que sean privados. Estoy pensando en usar ODIN-1 ( enlace ), un sha1 de diferentes identificadores específicos del dispositivo; MAC para iOS, AndroidID para Android y DeviceUniqueId para Windows Phone.

Sin embargo, ¿cuál es el riesgo de colisión en esos hashes? ¿Ayudaría usar otra función de hash? Otra entrada? ¿Prefijo de plataforma específica? Realmente necesito que cada hash legítimo sea único.

Ignoremos a los usuarios que falsifican sus hashes por ahora, ya que realmente no puedo hacer mucho al respecto. La seguridad del lado del cliente es lo que es.

    
pregunta Filip Haglund 15.04.2014 - 08:13
fuente

1 respuesta

1

Consulte Comparación de funciones de SHA en Wikipedia. Como muestra la tabla, existe un ataque de colisión teórico con una complejidad estimada de ~ 2 ^ 69 para SHA-1. Consulte la presentación de Marc Stevens para referencia.

Como te preocupan las colisiones, recomiendo usar SHA-2 en su lugar. Puede elegir cualquiera de las variantes, pero le sugiero que elija una que cumpla con sus requisitos de seguridad y rendimiento.

    
respondido por el Steven Volckaert 15.04.2014 - 08:18
fuente

Lea otras preguntas en las etiquetas