Espero que no cierres la pregunta. Aunque no hay computadoras involucradas, aún se trata de información y seguridad, y creo que los expertos en seguridad son los que mejor pueden ayudar.
Quiero hacer una investigación de usuario. Necesito que la gente llene un cuestionario, y luego llene otro cuestionario dos meses después. Necesito garantizarles el anonimato, pero aún así será muy bueno si puedo hacer coincidir las respuestas de una persona de la ronda A con las respuestas de la misma persona de la ronda B.
Incluso si esto se hace en línea, no creo que pueda dejar que un sistema informático descubra algo sobre ellos para que pueda hacer la comparación por mí. En teoría, podría pedirles un nombre y almacenar su hash md5. En la práctica, si les digo a los participantes que serán anónimos y luego les pido un nombre, perderé su confianza. Y el comienzo de un cuestionario no es un buen lugar para educar a personas al azar sobre qué es md5. Pero para hacer esto aún más difícil, creo que haré mi próxima encuesta con lápiz y papel, por razones logísticas.
Si empecé a darle tokens a las personas, creo que las perderán durante los dos meses. Así que la mejor solución que se me ocurre es algún tipo de hash manual. Por ejemplo, podría preguntarles "por favor llene la segunda y quinta letra de su apellido y el día del mes en que nació". Entonces mi pregunta es, ¿cómo se me ocurre una buena función de este tipo?
- ¿Qué puntos de datos sobre una persona pueden usarse? Debe garantizarse su existencia (mi ejemplo anterior se descompone si la persona tiene un apellido de cuatro letras), es altamente individual (pero no 100% único), y la persona debe conocerlos sin tener que buscarlos en alguna parte.
- ¿Hay alguna forma conveniente de calcular cuántos dígitos / letras debo solicitar para garantizar una probabilidad de colisión por debajo del X% en un grupo de personas Y?
- ¿Algunos de los datos posibles son más problemáticos que otros? Por ejemplo, podría ser que las personas sean más reacias a escribir la primera letra de su apellido que la segunda, porque piensan que sería fácil para alguien tratar de buscarlos en un "ataque de fuerza bruta" y descubrirlo. ¿Quienes son?
- ¿Cómo puedo averiguar el nivel más alto de complejidad más allá del cual las personas no juegan o comienzan a cometer errores?