Tenga en cuenta que un algoritmo de hash criptográfico sobresale en la producción de diferentes valores de resumen, incluso para las diferencias más pequeñas en las entradas. Incluso un cambio de 1 bit en la entrada provoca una cascada de cambios que producen un valor de hash completamente diferente. La resistencia previa a la imagen es una característica necesaria para un algoritmo de hash criptográfico.
Ahora mira las huellas dactilares. Un problema con las huellas digitales es que no se garantiza que las relaciones entre las marcas de identificación sean constantes entre las lecturas. Es posible que su dedo esté ligeramente inflamado debido a los distintos niveles de líquidos en su cuerpo, o que esté alineado ligeramente de manera diferente entre los elementos del sensor, o incluso que tenga un pedazo de suciedad, y eso podría ser la diferencia suficiente para causar la diferencia de un elemento. entre lecturas. Recuerde, incluso un poco de cambio significará que se genera un hash completamente diferente. Por lo tanto, una lectura precisa de la imagen o una instantánea de una impresión no se pueden eliminar directamente.
Sin embargo, la imagen puede ser procesada. Cada impresión tiene un conjunto de "puntos de referencia", que son puntos específicamente identificables. Las bifurcaciones son donde se unen dos crestas, una vara es donde termina una cresta, una isla es una pequeña cresta corta, y así sucesivamente. Estos puntos de referencia pueden identificarse y medirse en relación entre sí. Si tuviera que colocar una huella digital en una cuadrícula, por ejemplo, podría identificar cada celda con los puntos de referencia que contiene.
El problema se convierte entonces en alinear la cuadrícula. Si la cuadrícula no se distribuye de manera idéntica cada vez que se lee una impresión, no se generará el mismo hash.
Las impresiones vienen en solo tres formas básicas: arcos, bucles y verticilos. Parece que podría ser posible utilizar las características definitorias de todas las impresiones de tipo arco (por ejemplo) para producir tres puntos de referencia necesarios, y así alinear la cuadrícula. Luego lo procesa e identifica todos los posibles hitos. ¿Pero entonces, qué? ¿Qué seguridad tienes de que cada punto de referencia ha aterrizado en la misma celda cada vez? Si intenta establecer una zona borrosa alrededor de las líneas de la cuadrícula, ¿cómo sabe qué puntos de referencia apenas están cayendo (o saliendo) de la zona borrosa?
(La misma preocupación es cierta si intentas usar radiales desde el centro de los puntos de referencia: ¿cuánta tolerancia construyes en los vectores?
La conclusión es que probablemente le resulte difícil obtener el mismo valor del hash cada vez, porque las impresiones nunca se alinean con precisión de manera repetible.
Entonces, ¿cómo podrías usar hashes para mantener las impresiones seguras? Cuando el usuario registra inicialmente su impresión, utiliza el mismo esquema basado en cuadrícula para analizarlo y generar un hash. Luego, analiza los puntos de referencia que caen en las zonas potencialmente borrosas y calcula un hash distinto para cada posible permutación. Rápidamente construirá un gran conjunto de hashes que representan los valores potenciales de la impresión de un usuario. Más tarde, cuando la impresión de un usuario se lee y se revisa, se busca en el conjunto completo de hashes en el archivo e identifica al usuario.