Todos queremos que nadie pueda acceder a nuestros datos privados sin nuestro permiso. Para eso, usamos una clave secreta (contraseña o PIN) como en nuestros diferentes dispositivos o en la tarjeta del cajero automático. Pero esa clave secreta puede ser robada y una vez que lo sea, no tendremos control sobre nuestros datos.
Otro método utilizado para brindar protección a los datos es el uso de nuestros datos biométricos, como huellas dactilares, iris o patrones faciales. Tiene alguna ventaja sobre el anterior, ya que no se puede robar, ya que el usuario puede validar su identidad solo estando presente en el lugar de validación. Pero aquí hay una desventaja de que este criterio conduce a un aumento en la tasa de rechazo falso , es decir, a un usuario válido no se le permite acceder a sus datos debido a la distorsión de sus datos biométricos en el momento de la validación.
Se puede utilizar un mejor enfoque que utiliza las dos ideas descritas anteriormente y las fusiona en una sola clave secreta. Por eso se llama autenticación de dos factores.
Implementación:
cada usuario recibe una semilla aleatoria que solo el usuario conoce. Esta semilla aleatoria se utiliza como inicializador para el generador de números aleatorios de Blum Blum Shub . Esto usa dos números primos grandes (p y q) como iniciador y encuentra M=p*q. Aquí, X0 es la semilla que es coprima de M. Luego, la nueva salida se deriva como Xn+1 = potencia (Xn, 2) mod M. Podemos elegir esos dos primos generando muchos números primos aplicando un tamiz de algoritmo de eratóstenes y eligiendo dos números primos aleatorios de todos ellos. Almacenamos todos esos números aleatorios en una array de orden m*n (m vector cada uno de n dimensiones) tomando paridad de bits, es decir, almacenamos Xn+1 mod 2.
Luego, aplicamos el proceso de ortonormalización de Gram-Schmidt en todos esos vectores. Hace que todos los vectores sean ortogonales (perpendiculares) entre sí, así como de una unidad de magnitud.
Luego, extraemos datos de características biométricas (para simplificar, tomemos una array aleatoria unidimensional) y aplicamos una transformación de coseno discreta (dct) en esos datos biométricos. Luego tomamos el producto escalar de estos dct y los datos obtenidos después de aplicar la ortonormalización de Gram-Schmidt. Luego comparamos los datos obtenidos con el valor de umbral preestablecido y los almacenamos siguiendo el criterio de que si los datos obtenidos son mayores que el valor preestablecido, entonces almacena 1 o 0. Estos datos almacenados se denominan código Bio-Hash .
Este biocódigo hash es nuestra clave que brinda privacidad o protección a nuestros datos reales. Significa que cuando necesitamos acceder a nuestros datos, todo el proceso anterior ocurre seguido de la comparación de los datos obtenidos con el código hash bio almacenado. Si se encuentra una coincidencia, se concede el acceso; de lo contrario, se deniega el acceso.
El código de todos estos procesos descritos está en mi enlace de github https://github.com/kaditya139/Project
Este artículo es una contribución de Aditya Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA