Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los...

24
1

Transcript of Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los...

Page 1: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

1

Page 2: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

2

Secretos a prueba de cotillejos

Resumen

El objetivo de la investigación es contestar a las preguntas: ¿existe alguna manera

segura de contar algún secreto sin que las personas lo descubran? Si es así, ¿cuál

es la mejor manera para enviar un mensaje? Con las maravillosas matemáticas

podremos averiguarlo.

La criptografía está presente en la vida cotidiana, aun no estando consciente de

ello, podemos relacionarla con redes sociales, cuentas bancarias, entre otros

ejemplos.

El problema que nos planteamos es el de dar un mensaje, protegiendo la

información que contiene. Esta aplicación de las matemáticas es algo que

deseamos dar a conocer y que va más allá del concepto que se tiene de esta

ciencia, una aplicación que puede ser tan ordinaria y común sobre todo en estos

días, que ni siquiera se percibe aunque sea muy necesaria.

Para llevar a cabo nuestra investigación, se construyeron algunas cajas (cada una

con funcionamiento diferente) que, al colocar una serie de números en el orden y

lugar correspondiente, o tan solo con algunos movimientos nos permitirían descubrir

lo que hay en su interior.

Además, se creó un programa para facilitar la codificación y el cifrado de un mensaje

previamente encriptado. Con estas herramientas se le invitó a participar a un grupo

de individuos, una parte del cual tuvo la tarea de codificar una palabra.

Posteriormente a otros participantes se les pidió que intentaran descubrir esta

palabra, algunos tenían una ventaja pues se les proporcionó una clave que les

facilitó su misión, mientras que el resto tardó más por su evidente desventaja.

En conclusión, si se envía un mensaje y llega a manos de un intruso, si éste no

conoce la clave para la desencriptación en menos probable que llegue a conocer

esta información.

Page 3: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

3

Introducción

a. Marco teórico

Criptografía proviene de las raíces griegas "kryptos" que significa oculto, y "graphia",

que significa escritura, y comúnmente se le conoce como el Arte de escribir con

clave secreta. La Criptografía es una técnica que permite ocultar y proteger

información de personas no autorizadas. La Teoría de números es una rama de las

matemáticas que se emplea en la criptografía.

Contexto histórico

La criptografía se ha utilizado desde la antigüedad con el objetivo de codificar

información importante para que otros no descubran su contenido.

En el siglo V a.C. durante la guerra entre

Atenas y Esparta, se tiene el primer registro

del uso de escritura secreta. En el 400 a.C.

los espartanos utilizaron la Scítala o

Escítalo, que puede considerarse el primer

sistema de criptografía por transposición.

Se caracteriza por ocultar el significado real

de un texto alterando el orden de los signos

que lo conforman.

En el siglo I a.C. surge el cifrado César, el cual se considera que fue utilizado por

Julio César (101 a. C – 43 a. C), de ahí el nombre que recibió.

En el siglo XV se escribe la que se considera por muchos como la primera y más

antigua obra que existe sobre criptografía, “Liber Zifrorum”, escrita por Cicco

Simoneta (1410-1480).

Hacia 1466, Alberti escribe otra obra “De Compendis Cifris” y concibe el sistema poli

alfabético.

Representación del método de la escitala

Page 4: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

4

Las máquinas enigma se diseñaron en Alemania en la década de 1920, y fueron

utilizadas durante la segunda guerra mundial para elaborar códigos cifrados para

las comunicaciones militares. Alan Turing, con apoyo de su equipo Bletchey Park,

lograron vencer a enigma al descifrar sus encriptados.

Criptosistemas (sistemas de cifrado)

Puede definirse formalmente un criptosistema como una quíntupla (M, C, K, E, D),

donde:

• M representa el conjunto de todos los mensajes sin cifrar (lo que se denomina

texto claro, o plaintext) que pueden ser enviados.

• C representa el conjunto de todos los posibles mensajes cifrados, o

criptogramas.

• K representa el conjunto de claves que se pueden emplear en el

criptosistema.

• E es el conjunto de transformaciones de cifrado o familia de funciones que

se aplica a cada elemento de M para obtener un elemento de C. Existe una

transformación diferente Ek para cada valor posible de la clave k.

• D es el conjunto de transformaciones de descifrado, análogo a E.

Todo criptosistema cumple la siguiente condición:

Dk (Ek (m)) = m

Lo anterior significa que, si tenemos un mensaje m, lo ciframos empleando la clave

k y luego lo desciframos empleando la misma clave, obtenemos de nuevo el

mensaje original m.

Tipos de criptosistemas

• Criptosistemas simétricos o de clave privada. Son aquellos que emplean una

misma clave k tanto para cifrar como para descifrar. Presentan el

inconveniente de que para ser empleados en comunicaciones la clave k debe

Page 5: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

5

estar en posesión tanto en el emisor como en el receptor, lo cual obliga a los

participantes en la comunicación tener la misma clave

• Criptosistemas asimétricos o de clave pública, que emplean una doble clave

(kp, kP). kp se la conoce como clave privada y kP se la conoce como clave

pública. Una de ellas sirve para la transformación o función E de cifrado y la

otra para la transformación D de descifrado. En muchos casos son

intercambiables, esto es, si se emplea una para cifrar la otra sirve para

descifrar y viceversa. Estos criptosistemas deben cumplir además que el

conocimiento de la clave pública kP no permita calcular la clave privada kp.

Ofrecen un abanico superior de posibilidades, pudiendo emplearse para

establecer comunicaciones seguras por canales inseguros puesto que

únicamente viaja por el canal la clave pública, que sólo sirve para cifrar, o

para llevar a cabo autenticaciones. Sin la clave privada (que no es deducible

a partir de la clave pública) un observador no autorizado del canal de

comunicación será incapaz de descifrar el mensaje cifrado. (DMATIC, s.f.

Criptografía)

Cifrado César

Consiste en escribir el mensaje que está formado por las letras del alfabeto latino

normal desplazadas tres posiciones a la derecha. Con nuestro alfabeto el sistema

quedaría así:

Alfabeto normal: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z

Alfabeto cifrado: D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C

Lo que a nosotros nos interesa del cifrado César es que es un claro ejemplo donde

se utiliza la aritmética modular para garantizar la confidencialidad de la información

mediante el cifrado o encriptación. Matemáticamente, podemos describir el método

usado por Julio César como una función lineal del tipo:

E(x)=x+3 (mod 27)

Page 6: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

6

Para un alfabeto con 27 caracteres como el español. La x indica la posición que la

letra "en claro" ocupa en el alfabeto. E(x) indica la posición de la letra cifrada

correspondiente a x en el alfabeto. Según esto, E(0)=3, y E(26)=2 (esto es, la a se

cifra como d, y la z como c).

Para descifrar se emplea la función D(x)=x-3 (mod 27). Para cifrar y descifrar el

mensaje, quienes se comunican conocen y usan la misma clave secreta, que en

este caso es el desplazamiento aplicado sobre el alfabeto (desplazamiento=3). Por

eso el cifrado César pertenece a los cifrados de clave privada, también llamados

cifrados simétricos.

Por ejemplo, si se quiere enviar el mensaje ATACARPORLAMAÑANA, lo que se

escribirá realmente es DWDFDUSRÑDODQDPD.

El criptosistema RSA

El algoritmo de clave pública RSA fue creado en 1978 por Rivest, Shamir y Adlman,

y es el sistema criptográfico asimétrico más conocido y usado. Estos señores se

basaron en el artículo de Diffie-Hellman sobre sistemas de llave pública, crearon su

algoritmo y fundaron la empresa RSA Data Security Inc., que es actualmente una

de las más prestigiadas en el entorno de la protección de datos.

El sistema RSA se basa en el hecho matemático de la dificultad de factorizar

números muy grandes. Para factorizar un número el sistema más lógico consiste en

empezar a dividir éste entre 2, entre 3, entre 4,..., y así sucesivamente, buscando

que el resultado de la división sea exacto, es decir, de residuo 0, con lo que ya

tendremos un divisor del número.

Ahora bien, si el número considerado es un número primo (el que sólo es divisible

por 1 y por él mismo), tendremos que para factorizarlo habría que empezar por 1,

2, 3,... hasta llegar a él mismo, ya que por ser primo ninguno de los números

anteriores es divisor suyo. Y si el número primo es lo suficientemente grande, el

proceso de factorización es complicado y lleva mucho tiempo.

Page 7: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

7

La criptografía RSA es un ejemplo del tipo de criptografía asimétrica, contando con

una clave pública y una privada, este es uno de los sistemas usados, su gran

fortaleza yace en la factorización de números primos. Casi cualquier persona con

los conocimientos básicos de programación, podría encriptar un mensaje, pero

desencriptarlo se vuelve imposible a menos de que se cuente con los valores de las

claves, ya que se hace una serie de funciones tales como la función phi de Euler,

teorema chino de residuos, teorema de Euler o el algoritmo de Euclides, trabajando

con algebra modular e involucrando sus propiedades.

b. Objetivo

Analizar si un grupo de personas logra descifrar un mensaje encriptado al

proporcionarle la clave, y determinar el tiempo que les lleva para cumplir con dicha

tarea con el fin de que se den cuenta de que si no se les proporciona la clave es

mucho más difícil cumplir con dicha tarea.

Evidenciar la mayor seguridad de la información cuando se opta por la codificación.

c. Problema

¿Las personas conocen qué herramientas pueden proteger su información

personal? ¿Se conocen estas herramientas matemáticas que son de gran ayuda

para la vida y cómo las matemáticas están presentes en la seguridad de la

información diaria?

d. Hipótesis

Las personas que deseen conocer información codificada sin conocer la clave que

ayude a desencriptar tardarán más tiempo para conocer el mensaje.

Desarrollo

Elegimos este tema de investigación, porque todos tenemos secretos pero, ¿qué es

lo mejor de tener secretos? Contarlos, ya sea a nuestro mejor amigo o solo a un

pequeño conjunto de amistades, pero con la garantía de que nadie más lo descubra.

Page 8: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

8

Desde pequeños se implementan ciertos códigos para hablar entre dos o más

personas y se intercambian secretos. Un ejemplo es que aunque no teníamos

conocimientos en el campo de la criptografía, desde la niñez se empezaba a

encriptar la información con el “lenguaje F”, es algo que está en la naturaleza del

hombre. Cuando a alguien le atrae una persona comienza a designar códigos con

su círculo de amistades para que, cuando hablen de esa persona, nadie sepa de

quién se trata.

Lo maravilloso del campo de la criptografía es el poder transportar la codificación

de nuestras conversaciones habituales hasta crear complejos sistemas de

protección de la información.

Mantener información clasificada de manera que otros no la descubran es algo que

le ha preocupado al hombre desde tiempos antiguos y las matemáticas han estado

presentes en ello.

Actualmente las personas deberían estar preocupadas por perder sus tarjetas de

débito o crédito, que alguien pueda descubrir su nip y obtenga dinero fácilmente, o

porque cualquiera pueda conocer sus contraseñas para acceder a sus dispositivos

móviles (sistemas informáticos) o a sus redes sociales y poseer información

confidencial que sólo le competan a él y sus contactos. Sin embargo no todas las

personas tienen el cuidado de poner contraseñas seguras que puedan ser difícil

para un extraño descubrirlas pues claves relacionadas con fechas que le son

significativas por ejemplo la fecha de cumpleaños.

Asimismo, se desarrolló un programa para comprender un poco mejor el proceso

que realizan grandes empresas bancarias, instituciones gubernamentales, o redes

sociales, cuyo funcionamiento está basado el sistema de criptografía RSA y se

construyeron tres cajas.

Este código está expresado en un total de 191 líneas dividiéndolas en 11 funciones,

las funciones son: pasar de número a letras, pasar de letras a números, comprobar

si un número ingresado es primo, obtener el mínimo común divisor de un número,

Page 9: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

9

comprobar si un número ingresado es coprimo a otro, obtener el inverso

multiplicativo de un módulo, cifrar, descifrar y la función principal de ejecución para

la aplicación.

Ejemplo.

1. Se eligen dos números primos distintos (de preferencia números grandes)

por ejemplo p=61 y q=53

2. Se obtienen los siguientes productos n=p*q y phi= (p-1) *(q-1). En este caso

n=3233 y phi=3120

3. Se elige un número impar “e” que sea primo relativo con m, ese será nuestra

clave pública.

“e” podría ser e=17, ya que cumple con ser impar y primo relativo.

4. La clave privada d, definida como el inverso modular multiplicativo de “e”,

modulo phi, es 2753.

5. Encriptaremos la letra “a”, a tiene un valor de 97 en la tabla de código ascii

6. Hacemos la operación c ≡ m^e (mod n), aplicando la exponenciación binaria

que consiste en descomponer en factores de una exponenciación, quedándonos

que el mensaje cifrado es el residuo de (97^17) /3233, que es igual a 1632.

7. Para descifrar, hacemos la operación m ≡ c^d (mod n) quedándonos que el

mensaje cifrado es el resto de (1632^2753) /3233, que es igual a 97 o “a”.

En cuanto a su funcionamiento, se puede ver descrito por los comentarios en el

código desarrollado por el equipo en lenguaje C++, el cual se encuentra a

continuación.

#include <stdio.h> #include <stdlib.h> #include <math.h> int codl (char letra) {//Función de conversión de letra a número en código ascii float numero;

Page 10: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

10

numero = letra; return numero; } char codn (int numero) {//Función de converción de número en código ascii a letra char letra; letra = numero; return letra; } int primo (int num1) {// Conocer si un número es primo int num, i, a; //hace la división de los números enteros mayores a 1 hasta el introducido a = 0; //si el residuo de la división es 0, entonces el valor del contador aumenta num = num1; for (i = 1; i <= num; i++) { if (num % i == 0) a++; } if (a == 2) {//si al final el contador es igual a 2, es primo return 1; } else { return 0; } } int mcd (int a, int b) { while (a! = b) { //mientras a sea diferente de b, ejecutar: if (a > b) //si a es mayor a b, entonces a = a - b; //a tomará el valor de su valor actual menos b else //si no, entonces b = b - a; //b tomará el valor de su valor actual menos a } return a; //Da como resultado el valor final de a } int coprimo (int a, int b) { int c; while (a != b) { //mientras a sea diferente de b: if (a > b) //si a es mayor a b a = a - b; //a tomará el valor de su valor actual menos b else //si no, entonces b = b - a; //b tomará el valor de su valor actual menos a } c = a; if (c == 1 || c == -1) { //Si a tuvo un valor de 1 o -1 return 1; //saca un "Sí" por respuesta } else { //Si no entonces return 0; //saca un "No" por respuesta } } int imm(int a, int m) { int b, x; for (b = 0; b < m; b++) { //De 0 a m haz: x = (a * b) % m; // x toma el valor del residuo de (a*b) entre m if (x == 1) //si x es igual a m, entonces b es el inverso modular multiplicativo return b; } } int cif(int mensaje, int e, int n) { int x = 1; while (e > 0) {//mientras e sea positivo if ((e & 1) == 1)x = (mensaje * x) % n; //toma el último bit de e y dice si es 0 o 1

Page 11: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

11

e >>= 1; //Desplaza un bit a la derecha el valor de e mensaje = ((mensaje % n) * (mensaje % n)) % n;//mensaje toma el valor del residuo de mensaje/n al cuadrado y todo eso entre n } return x; //regresa el valor de x } int modulo (int a, int mod) { int mod; if (a >= 0) //modificación necesaria para los signos mod = a - ((floor(a / modn)) * modn);//el modulo modn de a es a - el valor entero de a/modn por modn else mod = modn - ((-a) + (floor(a / modn) * modn)); return mod; //regresa mod } int cifrar(int mensaje, int e, int n) { //Una función para acortar la sintaxis principal int men; men = cif(men, e, n); return men; } int decifrar(int p, int q, int d, int e, int mensaje) { //el mensaje original es congruente con int n; //el valor actual del mensaje elevado a la d, modulo n n = p * q; int bp, bq, dp, dq, ap, aq, cp, cq, a; bp = modulo(mensaje, p); bq = modulo(mensaje, q); dp = modulo(d, (p - 1)); dq = modulo(d, (q - 1)); ap = cif(bp, dp, p); aq = cif(bq, dq, q); cp = modulo( imm(q, p), p); cq = modulo( imm(p, q), q); a = modulo((q * cp * ap) + (p * cq * aq), n); return a; } main() { while(1==1){ int primop, primoq, p, q, coe, e, d, r, phi, n; int palabra[30]; char letra[30]; int cifrado[30]; int predescifrado[30]; int descifrado[30]; int contador = 0; e = 0; printf("Introduce dos numeros primos mayores a 50 y menores a 200, que sean diferentes entre si\n"); scanf("%d", &p); scanf("%d", &q); primop = primo(p); primoq = primo(q); while((primop == 0 || primoq == 0) || (p == q) || (p < 50 || q < 50)||(p > 200 || q > 200)){ while (primop == 0 || primoq == 0) { printf("Uno o ambos numeros no son primos, por favor intenta de nuevo\n"); //Comprueba si son primos scanf("%d", &p); scanf("%d", &q); primop = primo(p); primoq = primo(q); } while (p == q) {//Comprueba si son iguales printf("Los numeros son iguales, intente de nuevo\n"); scanf("%d", &p);

Page 12: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

12

scanf("%d", &q); primop = primo(p); primoq = primo(q); } while (p < 50 || q < 50) {//Comprueba si son menores a 50 printf("Uno o ambos numeros son menores a 50, por favor intenta de nuevo\n"); scanf("%d", &p); scanf("%d", &q); primop = primo(p); primoq = primo(q); } while (p > 200 || q > 200) {//Comprueba si son mayores de 200 printf("Uno o ambos numeros son mayores a 200, por favor intenta de nuevo\n"); scanf("%d", &p); scanf("%d", &q); primop = primo(p); primoq = primo(q); } } n = p * q; phi = (p - 1) * (q - 1); printf("Introduce un entero menor y coprimo de %d (Tranquilo, yo te digo si es coprimo o no)\n", phi); scanf("%d", &e); coe = coprimo(e, phi); while (coe == 0 || coe > phi) {//Comprueba si un número es coprimo printf("Intenta de nuevo, el numero no es coprimo o es mayor a %d\n", phi); scanf("%d", &e); coe = coprimo(e, phi); } d = imm(e, phi);//Obtiene la clave privada printf("La clave privada es %d\n", d); printf("La clave publica es %d", e); for (int i = 0; i <= 29; i++) { palabra[i] = 0; predescifrado[i] = 00; descifrado[i] = 00; letra[i] = 00; palabra[i] = 00; cifrado[i] = 00; } printf("\nIngresa una palabra (sin espacios): "); scanf("%s", &letra); printf("\n"); printf("El texto codificado es: "); for (contador = 0; contador <= 29; contador++) {//hace el cifrado además pasando por las funciones antes comentadas if (letra[contador] == 00)break; palabra[contador] = letra[contador]; cifrado[contador] = cif(palabra[contador], e, n); printf("%d ", cifrado[contador]); } printf("\nEl texto decodificado es: "); for (int i = 0; i <= contador; i++) { predescifrado[i] = decifrar(p, q, d, e, cifrado[i]); descifrado[i] = codn(predescifrado[i]); printf("%c", descifrado[i]); } printf("\n"); } }

Page 13: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

13

Y una vez que estuvo listo se puso a prueba con algunos compañeros del plantel.

Se solicitó a 64 personas que participaran en el experimento. Se dividieron en

grupos, cada uno realizaría una actividad diferente.

El grupo A interactuó con el

software realizado para este fin.

Primero se le explicó a los

compañeros los fundamentos del

programa, hecho esto se le dejó

interactuar libremente con la

aplicación, mientras se observaban

los principales contratiempos, y se

hicieron las anotaciones para

hacer el software más amigable con el usuario. Además, se les planteó un reto que

consistía en obtener la sucesión de los valores criptográficos para él alfabeto, solo

teniendo los valores de A=2928, B=1875, C=3015, D=3016. Mientras se observaban

los principales contratiempos, la mayoría causados por errores en el seguimiento

de las instrucciones, se hicieron las anotaciones para hacer el software más

amigable con el usuario y se corrigieron algunos errores.

Al grupo B se le dio un mensaje encriptado, pero solo a algunas personas se les

brindó la clave para facilitar el descifrado, mientras que al resto no se les otorgó esa

Page 14: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

14

facilidad. Posteriormente, este mismo grupo encriptó su nombre con el método del

cifrado de César y lo escribieron en una tarjeta, una vez realizado se intercambiaron

las tarjetas, en esta ocasión solo conocían la clave pública. Esto nos permitió

observar la facilidad o dificultad de descifrar un mensaje encriptado.

Otra actividad realizada fue intentar sacar el contenido del interior de una caja, para

lograrlo cada una de estas se lograba abrir con un método diferente, por ejemplo,

introduciendo una serie de números.

La primera caja (K) tenía tres piezas de cartón deslizables,

al colocarlas en los números correctos que eran 2, 5 y 7, se

podría retirar la tapa. Los números abarcaba era del 1 al 9

y se debía introducir una clave de tres dígitos.

Para saber las posibles combinaciones tomamos en cuenta

que hay 9 elementos, solo se escogen 3 de ellos y, por

último, importa el orden en que introducimos los tres dígitos.

V8,3 = 8!

(8−3)! =

8!

5! = 336 posibles combinaciones

Si suponemos que podemos introducir 16 combinaciones en un minuto, implica que

tardaríamos 21 minutos en intentar todas las composiciones, sin repetir alguna.

Page 15: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

15

La segunda caja (L) completamente cerrada en cuyo interior

estaba una moneda (sólo contaba con una ranura), el reto era

sacarla y aunque no había una clave propiamente cifrada, el

truco estaba en encontrar la posición correcta para lograr el

objetivo. Así que todavía se puede complicar más si además

de tomar en cuenta la clave también se toma en cuenta la

posición en que se debe colocar la caja para lograr sacarla.

La tercera caja (M) consistió en abrirla al

introducir la serie correcta de cuatro números, la

combinación contiene los números del 0 al 7, es

decir, se introduce una clave de 4 dígitos que

puede formarse con ocho elementos. Cuando se

les pidió a los participantes abrir la caja, nadie fue

capaz de hacerlo, no sin la clave. ¿Por qué nadie

lo logró?

Si tomamos en cuenta que son ocho elementos,

se necesitan cuatro de estos para la clave, importa el orden en que se introducen y

los números pueden repetirse.

𝑉𝑅84 = 84 = 4096 posibles combinaciones

Si suponemos que podemos introducir nueve combinaciones en un minuto, implica

que son 540 en una hora y las 4096 composiciones en 7 horas y 50 minutos, eso si

no repetimos combinaciones.

Resultados

Con el programa y los datos obtenidos se hicieron las modificaciones necesarias al

código para evitar los problemas relacionados al manejo de los datos introducidos,

como el uso de números con punto decimal en variables destinadas a enteros, el

uso de números primos mayores a 200 debido al espacio de memoria, problemas

de compatibilidad con algunas computadoras.

Page 16: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

16

En cuanto a la actividad final,

mientras algunos usaron Excel,

GeoGebra, y fórmulas para

determinar la sucesión de los

valores criptográficos para el

alfabeto, ninguna coincidió con los

valores de las letras restantes,

demostrando así la fortaleza del

cifrado RSA y el por qué a pesar de haber sido inventado hace tiempo, es uno de

los más comunes en la actualidad.

Page 17: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

17

Antes de las correcciones, obteníamos algunos errores al usar números muy grandes.

Después se limitó el rango de valores para los primos no muy grandes, mayores a 50 pero menores a 200.

Page 18: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

18

Como se planteó en la hipótesis cuando se les solicitó a los participantes descifrar

un mensaje de una sola palabra, todos lo realizaron con gran facilidad y en un

tiempo mínimo, tomando a consideración que no se les brindó la clave para

decodificar. Cuando se les dio el mensaje QYIQKMÑEWLYWRDYNRK, a algunos

se les dio la clave 10, que corresponden a los lugares que se tienen de mover en el

abecedario para decodificar el mensaje, tardaron solo 7 minutos en promedio para

saber que el mensaje fue HOY HACE UN BONITO DIA, mientras que al resto no se

les brindó la clave y les fue imposible conocer la frase.

Respecto a las cajas que se les proporcionó, se les pidió

sacar lo que estuviera en el interior, en la caja (L) se

introdujo una moneda, la cual tenía que salir por la única

ranura. En este ejercicio la mayoría logró sacar la

moneda, después de varios intentos y varios segundos,

incluso minutos. Sin embargo, solo dos personas

lograron descifrar el funcionamiento de la caja, ya con

esta clave lograron sacar la moneda con la menor

cantidad de movimientos y tiempo.

El interior de la caja ya mencionada

contaba con tres paredes de cartón. Así

como se obtiene lo que hay en el interior

de una caja fuerte introduciendo una clave

numérica al girar el dial, en este caso, se

gira la caja completa.

Al girar en la secuencia correcta se podrá colocar la moneda en la posición correcta

y por fin sacarla.

La caja (K) fue la única de las dos cajas en

las que se tenía que introducir una clave

para lograr abrirla, el tiempo en que

tardaron los compañeros en abrirla fue de

Page 19: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

19

12 minutos, este tiempo lo lograron trabajando en equipo, un grupo de cinco

personas se puso de acuerdo para intentarlo juntos. El tiempo podría haber sido

mayor si lo hubieran intentado de forma individual.

La última caja (M) fue la única en donde nadie descubrió el interior, lo intentaron por

más de 20 minutos, algunos de forma individual y otros en conjunto, pero el

resultado fue el mismo. Este resultado se debe a la mayor complejidad, ¿por qué?

Porque el número de posibilidades era mayor como consecuencia de la posibilidad

de repetir dígitos y la cantidad de elementos que conformaban la clave.

Análisis e interpretación de resultados

A través de la breve introducción al programa notamos el completo desconocimiento

del impacto de los sistemas criptográficos en su día a día, en cuanto al uso de la

aplicación se determinó por el tiempo de adaptación que es fácil de usar y ayuda

como apoyo al entendimiento de estos sistemas criptográficos, a su vez la actividad

planteada mostró la fortaleza del cifrado RSA contra ataques basados en la

sucesión dada una muestra, uno de los principales ataques a la criptografía.

Estos ataques consisten en que a través de una serie de datos encriptados se

analicen con el fin de obtener suficiente información como para desencriptarlo, esto

puede pasar por errores informático en la creación de sistemas o por ataques

directos propiciados por personas que aprovechan estos errores para robar

información.

El resultado más sorprendente fue en el caso de la caja L que estaba

completamente sellada, donde tenían que sacar una moneda por la única ranura.

Aunque la mayoría logró el objetivo, el más veloz en completar la misión tardó 27

segundos, mientras a algunos les tomó más de diez minutos.

Pero únicamente dos personas se tomaron el tiempo de analizar la estructura de la

caja, no les tomó demasiado descifrarlo, con esta información fueron capaces de

sacar la moneda sin complicaciones y con solo 4 movimientos en menos de 20

segundos. Demostrando que es mucho más efectivo el analizar cualquier problema

Page 20: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

20

que se presente para encontrar la solución, aunque también se logre solucionar con

el método de “ensayo y error” es mucho más tardado y como se observó no se fue

capaz de repetir los resultados con este último método.

Con la caja K se logró ver cómo se optimizó el tiempo de apertura de la caja al

trabajar en conjunto, cada uno proponía combinaciones, incluso algunos anotaban

las claves ya utilizadas para evitar repetirlos.

En la caja M se pudo evidenciar la mayor dificultad, lo que significa que a mayor

cantidad de caracteres y longitud de la clave es menos probable, hasta el punto de

llegar a ser casi imposible, que alguien logre descifrar nuestra información.

Conclusiones

El hecho de que la mayor parte de nuestra vida digital sea protegida por la

criptografía suena inquietante, pero a pesar de eso es muy segura gracias a todos

los procesos matemáticos que se presentan a la hora de aplicar uno de estos

sistemas, el más importante de estos la factorización de números primos, mientras

no exista un método de rápida factorización, es muy difícil que nuestros datos estén

en riesgo de ser descubiertos, pero no por eso nos podemos confiar, existen formas

de obtener estas claves si no las cuidas bien.

Page 21: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

21

Con ello se puede concluir que si de alguna manera la información llegara a caer en

las manos de un intruso y éste no conociera la clave para descifrarla entonces es

menos probable que llegue a conocer dicha información.

No todos fueron capaces de descifrar el funcionamiento de las cajas pero, ¿por qué

dos personas lo lograron en tan poco tiempo? ¿Acaso son más capaces?

La respuesta a estos cuestionamientos pudimos encontrarla con la observación de

los participantes durante la actividad. Mientras un porcentaje mayoritario optó por

empezar a intentar combinaciones aleatorias según las características de cada reto,

solo dos personas se detuvieron a observar y analizar el problema, tardaron un poco

en realizar su análisis, pero el resultado fue más placentero al final. Esta actividad

nos mostró una realidad en la que las personas prefieren empezar a tomar

decisiones aleatorias, solo una minoría se detiene a observar y analizar.

Por último, se deben tomar medidas para la mayor protección de datos, como no

elegir contraseñas cortas o evidentes como la fecha de cumpleaños, en su lugar

hay que elegir la combinación de letras (tanto mayúsculas como minúsculas),

números y, de ser posible, signos de puntuación.

Page 22: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

22

Referencias

Pointcheval, D. (2012). How to Encrypt Properly with RSA vol 5. RSA Laboratories'

CryptoBytes.

Thomas, H. Cormen; Charles E. Leiserson; Ronald L. Rivest; and Clifford Stein.

Introduction to Algorithms, 2da Edición. MIT Press and McGraw-Hill, 2001.

Martín, D. (2008). Criptografía cuántica. ¿Cómo ves?, p. 30-33.

BBC MUNDO. (2017). La máquina Enigma usada por los nazis que un hombre halló

en un mercado de pulgas y se subastó por miles de dólares. Recuperado de

https://www.bbc.com/mundo/noticias-40588800

Contreras, M., Flores F. & Reséndiz J. (s. f.). Breve Historia de la Criptografía.

Recuperado de https://unamcriptografia.wordpress.com/2011/10/06/breve-historia-

de-la-criptografia-2/

Weisstein, Eric W. (s/f). Chinese Remainder Theorem. Recuperado de

http://mathworld.wolfram.com/ChineseRemainderTheorem

Page 23: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

23

Glosario

Algebra Modular: en matemática, la aritmética modular es un sistema aritmético

para clases de equivalencia de números enteros llamadas clases de congruencia.

Algoritmo de Euclides: método eficaz para calcular el máximo común divisor (mcd)

de dos números enteros.

Caracteres: símbolos o gráficos que se utilizan para componer los diferentes

alfabetos y que son necesarios para desarrollar idiomas escritos.

Cifrado: que está escrito con letras, símbolos o números que solo pueden

comprenderse si se dispone de la clave necesaria para descifrarlos.

Clave privada: se puede entregar a cualquier persona.

Clave pública: nadie tiene acceso a ella.

Codificación: transformación de la formulación de un mensaje a través de las reglas

o normas de un código o lenguaje predeterminado.

Criptosistema: conjunto de procedimientos que garantizan la seguridad de la

información y utilizan técnicas criptográficas

Encriptación: proceso para volver ilegible información considera importante.

Factorizar: expresar un número como el producto de otros números menores por

los cuales este se puede dividir

Función Phi de Euler: Dado , se define como la cantidad de números

naturales menores o iguales que que son primos relativos con el propio .

Lenguaje C++: lenguaje de programación es un lenguaje que puede ser utilizado

para controlar el comportamiento de una máquina, particularmente una

computadora.

Page 24: Secretos a prueba de cotillejos - UNAM · del uso de escritura secreta. En el 400 a.C. los espartanos utilizaron la Scítala o Escítalo, que puede considerarse el primer sistema

24

Número coprimo: Dos números enteros son coprimos o primos entre sí si su máximo

común divisor (mcd) es 1. En tal caso los únicos divisores comunes son -1 y 1.

Número primo: es un número natural mayor que 1 que tiene únicamente dos

divisores distintos él mismo y el 1.

Teorema chino de residuos: una expresión del tipo Ab mod n, cuando n es el

producto de dos primos p y q.

Teorema de Euler: es una generalización del pequeño teorema de Fermat, y afirma

una proposición sobre la divisibilidad de los números enteros.