¡Es lo que impide que el mundo termine en un invierno nuclear!
La teoría de números es probablemente una de las áreas más importantes de las matemáticas utilizadas en informática y la base de casi toda la criptografía moderna. Es lo que impide que los piratas informáticos roben todo el dinero en su cuenta bancaria, lo que evita que nuestros enemigos vean todos los secretos de nuestra nación, y también es lo que le permite iniciar sesión en su cuenta de quora para ver esta respuesta.
Antes de discutir cómo se usa la criptografía, explicaré un poco sobre cómo funciona. Mucha criptografía se basa en la dificultad de lo que se conoce como el Problema de Factoring.
Factorización:
- ¿Hay más, menos o el mismo número de números entre cero y uno, ya que hay más de uno?
- ¿Cuál es la raíz cuadrada del número de Graham?
- ¿Existe una relación intuitiva entre los armónicos y la enésima raíz de un número?
- Cómo crear un cuadrado mágico
- ¿Cuál es [7 ^ 7 ^ 7 ^ … (51 veces 7)] (es decir, una base 7 y cincuenta 7 encima de eso) módulo 777? ¿Y cómo?
Mira, en matemáticas “normales”, si te doy el número 12345667234233, y te digo que me des dos números cuyo producto es ese número, es bastante fácil. Podemos dividirlo por dos y darle los números (2, 12345667234233/2) que podemos calcular muy rápidamente. De hecho, hay un número infinito de soluciones a ese problema, y es muy fácil para mí encontrar una de ellas.
Sin embargo, si cambio los requisitos para decir “Dame dos números enteros cuyo producto sea 12345667234233″, ahora solo hay un conjunto finito de soluciones al problema, lo que resulta muy difícil de encontrar, incluso para una computadora si el número es suficientemente grande. Esto resulta ser esencial para la criptografía de clave pública.
Criptografía de clave pública
Durante muchos años, las personas cifraron y descifraron mensajes con la misma clave, que distribuirían a cualquier persona con la que quisieran comunicarse. Esto funcionó bien si pudieras asegurarte de que la llave permaneciera segura, pero ese no fue siempre el caso. El problema con este método es que si un ejército entero usa una clave, un solo soldado capturado podría permitir que el enemigo descifre cada mensaje enviado por ese ejército.
En 1976, tres matemáticos crearon un método de encriptación de mensajes llamado RSA. Este método utilizaba dos claves distintas: una para cifrar el mensaje y otra para descifrar el mensaje. Lo que esto significaba era que todos en el mundo podían conocer la clave de cifrado, pero una vez que se cifraba un mensaje, solo la persona con la clave de descifrado podía descifrar el mensaje nuevamente. Este tipo de cifrado de 2 claves se conoció como Criptografía de clave pública .
La forma en que RSA funcionó fue seleccionando dos números primos de 100 dígitos [matemática] p [/ matemática] y [matemática] q [/ matemática], y formando nuestras claves de la siguiente manera:
- La clave pública (es decir, el cifrado) se crearía resolviendo [math] n = p * q [/ math]
- La clave privada (es decir, descifrado) se crearía resolviendo una ecuación que involucra [matemática] (p-1) * (q-1) [/ matemática] (La ecuación real es resolviendo [matemática] d * e \ equiv 1 [ / math] mod [math] (p-1) (q-1) [/ math], pero eso está fuera del alcance de esta respuesta)
Ahora recuerde cómo antes le dije que la factorización de enteros era computacionalmente difícil. Esta es la razón por la que puedo enviar [matemáticas] n [/ matemáticas] a todos en el mundo, y aún así nunca podrán obtener [matemáticas] p [/ matemáticas] y [matemáticas] q [/ matemáticas] en orden para resolver la clave de descifrado. Entonces, si cifro un mensaje usando [math] n [/ math], y lo envío a todos en el mundo (y todos en el mundo también saben [math] n [/ math]), la persona que tenga la clave de descifrado lo hará sigue siendo el único que puede entender el mensaje original.
La criptografía está en todas partes
Además de los usos obvios de cifrar el tráfico web, la criptografía también se utiliza para iniciar sesión de forma segura en su cuenta en sitios como quora. ¿Recuerdas cómo mencioné que puedes cifrar algo incluso si no sabes cómo descifrarlo posteriormente? Bueno, esa es la base de algo conocido como hashes . Puede pensar en los hashes como la creación de una clave de cifrado y descifrado, y desechar la clave de descifrado.
Cuando crea una cuenta en un sitio web, les envía su contraseña, que luego almacenan en hash y almacenan. Cuando va a iniciar sesión, les envía su contraseña nuevamente, usan el mismo algoritmo para hacer el hash y luego comprueban el valor hash contra lo que almacenaron anteriormente. Si coincide, te permiten ingresar al sitio web. La razón para hacer esto es que asegura que incluso si alguien logra robar sus máquinas físicas y leer todo lo que contiene, aún no podrá saber cuál era su contraseña, solo a qué se ha cifrado, lo que es bastante inútil para cualquier otro lugar que ese sitio específico.
Entonces, la próxima vez que lea sobre personas que organizan una revolución en un régimen totalitario, o escuche sobre esa compañía con la que tiene una cuenta que fue pirateada, pero observe que su contraseña todavía no está a la venta en Internet, solo recuerde que es porque alguien en algún lugar decidieron multiplicar algunos enteros juntos.