Contraseñas y números primos
Todos los días introducimos una contraseña para accesar a algún lugar, ya sea nuestro correo, al cajero, la cuenta de la universidad, o cualquier otra cosa.
Las contraseñas son algo fundamental de nuestro día a día.
Un sistema muy usado para el uso de contraseñas se basa en el uso de números grandes y su descomposición en factores de números primos.
Por ejemplo, el número 21 se descompone en los números primos 3 y 7, 3*7 = 21.
La seguridad de estos sistemas radica en el hecho que descomponer un número en factores de números primos no es una tarea sencilla, y para números adecuados y suficientemente grandes es computacionalmente imposible realizar esta descomposición (tardaría unos cuantos trillones de años).
Estos sistemas se basan en usar un número grande como llave pública (al que todos pueden tener acceso), se codifica el mensaje con esta llave publica, y solo se puede descifrar los mensajes si se conoce la factorización en números primos (llave privada) de esta llave publica, de esta manera, se garantiza que los mensajes que usted mande usando la llave publica solo puedan ser leídos por la persona a la que se los manda.
También, si codifica el mensaje usando la llave privada, cualquiera puede decodificarlo usando la llave publica. De esta manera se puede identificar quien es el que envía el mensaje, pues solo él tiene acceso a su llave privada.
Hoy en día su navegador de confianza realiza conexiones seguras realizando un método similar, cuando una página es puesta en su navegador como https:, significa que se ha realizado una conexión segura. Esto quiere decir que esta seguro que se comunica con el banco, y el banco está seguro que se comunica con usted.
llave1 = la llave de su ordenador
llave2 = la llave del banco
Primero su ordenar envía un mensaje al banco, usando su llave1 privada para codificar el mensaje y la llave2 publica del banco.
El banco usa su llave1 publica, para decodificar el mensaje, y su llave2 privada, de esta manera se
asegura que usted es el emisor y que solo el banco puede leer el mensaje.
Posteriormente el banco envía un mensaje usando su llave2 privada para codificar el mensaje y su llave1 publica.
Su ordenador procede a decodificar el mensaje usando la llave2 publica del banco y su llave1 privada, asegurando que el banco es el emisor de dicho mensaje y que solo usted puede leerlo.
Una vez iniciada la conversación segura puede usted mandar su contraseña al banco, sin riesgo a que alguien mas se robe sus datos.
Computación cuántica y sus repercusiones en seguridad
La computación digital es la computación que realiza su ordenador, basada en bits de información que pueden estar en 2 estados.En la computación cuántica se utilizan qubits, los cuales pueden estar en estado uno, cero o en cualquier superposición cuántica de estos dos estados.
Esto es, algo puede ser verdadero y falso a la vez en un computador cuántico.
Para no alejarnos mucho del tema en mano, existen algoritmos (secuencias de pasos con un número finito de pasos).
Diseñados para ordenadores cuánticos que pueden resolver rápidamente problemas que las computadoras digitales, tardarían millones de años.
Un problema de este estilo es el reducir un número en factores de números primos.
El algoritmo de Shor corre en O(log n), esto quiere decir que un computador cuántico lo suficientemente poderoso podría romper su contraseña en poco tiempo.
Con lo que el mundo podría cambiar como lo conocemos.
Por suerte los computadores cuánticos aun están lejos de ser funcionales, debido a poca memoria solo pueden factorizar números como 15 = 3*5.
Para los DBA's existe el algoritmo de Grover, que es capaz de buscar una entrada en una base de datos no ordenada en tiempo O( n^1/2 ). Esto es un decremento cuadrático en los tiempos de corrida.
No hay comentarios:
Publicar un comentario