¿Algoritmo de hash donde la reidentificación es imposible?

2

Estoy intentando anonimizar un ID de hilo de mensaje para evitar la reidentificación incluso con acceso completo a la base de datos de origen.

  1. Necesito coherencia al procesar, por lo que varias instancias de, por ejemplo, "100" producen el mismo hash como un algoritmo de hash regular.
  2. Necesito cortar el cordón en un punto y eliminar la clave / semilla, para que sea imposible producir el hash usando "100" en el futuro.

Gracias por cualquier puntero. Se apreciaría un ejemplo en Python o Java.

Actualización - Aplicación práctica de la respuesta:

Generé una contraseña de 24 caracteres en enlace para usar como una semilla / clave.

Encontré una implementación simple en este Gist: enlace

Entonces, el plan es eliminar la clave de mi código una vez que esté listo y los datos se desconectarán completamente de su origen.

    
pregunta tovare 25.09.2016 - 00:11
fuente

1 respuesta

6

Lo que parece que necesitas es un hash con clave. Quizás el ejemplo más común es HMAC. Toma sus datos y su clave, para producir la salida que será determinista, por lo que obtendrá la misma salida MAC para 100 (su entrada de muestra) cada vez. Cuando haya terminado de calcular los hashes en sus datos, elimine la clave y ya no podrá computar los mismos MAC sin que la clave los fuerce. Suponiendo que la clave que ha elegido es lo suficientemente fuerte (por ejemplo, 128 bits desde un CSPRNG) y esto no será factible incluso con toda la potencia de computación en la Tierra para siempre.

    
respondido por el Xander 25.09.2016 - 00:59
fuente

Lea otras preguntas en las etiquetas