 Y ahora sí, ya tenemos todos los ingredientes para resolver el reto que os planteábamos al inicio de módulo. Vamos a ello. Y comenzaremos con el primero que os proponíamos y es entender cómo cifraba el César sus comunicaciones, cuando se comunicaba con sus generales para evitar que terceras personas pudiesen interceptar estas comunicaciones y conocer así las órdenes que el César daba. Así pues, veremos qué mecanismo utilizaba Julio César para dar sus órdenes a sus generales sin que terceras personas alienas pudieran interceptar la información. Para comenzar, el método cifra que utilizaba César para cifrar sus mensajes se basaba en un alfabeto en concreto que fija sus símbolos o letras que van a formar parte del mensaje. Por simplificar, supondremos que se trata del alfabeto español compuesto de 27 letras y no supondremos por lo tanto que se encuentra algún tipo de signo de puntuación o espacio en el mensaje. En un primer paso, lo que hacía el César era asociar a cada letra un valor entre 0 y 26. Así, utilizando el orden alfabético, a la A le corresponde el 0, a la B1, a la C2 y así sucesivamente, hasta corresponderle a la letra Z el número 26. Un segundo paso corresponde al cifrado propiamente dicho donde a un valor X del anillo de los enteros módulo Z27 le corresponde X más 3. Así pues, primero transformamos las letras en números, le aplicamos una cierta función y finalmente, para recuperar la letra cifrada, volvemos a mirar la lista que utilizamos en el apartado 1. Por ejemplo, si queremos cifrar la palabra hola, lo que haremos en primer lugar es ver la equivalencia numérica de H tal y como hemos comentado. En este caso es 7. Si los ciframos obtenemos 7 más 3, que serán 10, ¿qué corresponde a la letra K? Así pues, la letra cifrada H será K. Hacemos lo mismo con O y puesto que su equivalente numérico sería 15, la letra cifrada tendría el valor numérico 18. Esto es la letra R. Por el mismo procedimiento obtenemos que L lo ciframos como N y que A se cifraría como D. Así pues, esta es la palabra cifrada. Pero una vez estás cifrado, de cifrar consistirá en recuperar el mensaje original enviado a partir del texto que se acaba de enviar. Lo que necesitaremos pues será la función inversa de la función cifrado. Y aunque en este curso no hablaremos de definir funciones inversas, en este caso intuitivamente podéis ver que se tratará de eliminar 3 al valor cifrado. Recordad que cifrando lo que hacíamos era sumar 3. En realidad lo que haremos, al igual que pasaba antes, lo que haremos era buscar el valor equivalente a la letra que queremos descifrar mirando la lista del paso 1, aplicaremos la función de descifrado y finalmente veremos la letra equivalente de nuevo. Veamos a modo de ejemplo que decía el César a sus soldados. Si miramos la primera de las palabras y aplicamos el método que acabamos de describir, la Y corresponderá al valor 25. Aplicando la función de descifrado será 22, lo que nos dará la letra V si miramos a la lista del paso 1. Esto es, esta es la primera letra del mensaje en claro. Hacemos lo mismo con la letra H a la cual le hacemos corresponder el valor numérico 7 si miramos en la lista y que al descifrar tendrá el valor 4. Esto es la letra E. Si miramos el resto de las letras tenemos que el mensaje en claro será Benny y posiblemente ya os lo imaginaréis, pero os propongo que lo intentéis y veáis que las otras dos palabras son Biddy Binchie. Esta es la explicación matemática que se esconde detrás de la cifra del César, pero en realidad con un método para cifrar tan sencillo como este, lo que se puede utilizar es un anillo como el que se muestra en la figura y que posee dos ruedas concéntricas. Una de ellas movible de manera que el número de letras que se utiliza en el desplazamiento de los dos alfabetos es la clave de cifrado y que en el caso del César recordad que era una clave 3. Puesto que César consideraba siempre la clave 3 en sus cifrados, pero me imagino que si os pregunto qué posibles valores puede tomar la clave secreta en este método, la mayoría responderéis que el número de letras del alfabeto esto es 27, se considerábamos el alfabeto coleñe o de hecho 26 a efectos prácticos puesto que la clave igual a cero deja el texto cifrado tal cual como el texto original. Un punto a destacar de este cifrado es que forma parte de lo que eso conocen como cifrados de clave simétrica puesto que tanto el que envía el misaje como el que lo recibe poseen exactamente la misma clave. En realidad el César es una implementación concreta y sencilla de lo que se conocen como cifrados monofabéticos de sustitución simple donde cada letra del texto claro se representa por otra letra o signo del texto en el texto cifrado y aunque hoy en día el interés del césar es puramente histórico sí que ha resultado la base de algunos cifrados más evolucionados que lo han sucedido en la historia. A remarcar el cifrado de billionaire que data del siglo 16 y que supuso un gran reto para los que lo intentaban romper los llamados criptoanalistas durante siglos y de ahí que se le conozca con el sobrenombre de el cifrado indescifrable o bien la conocida máquina enigma máquina de rotores de gran importancia en las comunicaciones de la Segunda Guerra Mundial y que utilizaba el cifrado de césar como base de algunos de sus algoritmos a modo anecdótico el capo mafioso Bernardo Provenzano utilizaba este método en pleno siglo 21 en sus pizzini en el apartado para saber más podéis encontrar más detalles de la prensa de esta historia reciente y ahora os pregunto creéis que es seguro este método pues efectivamente la respuesta es negativa en un entorno el que la gran mayoría de la población eran alfabeta el propio hecho de escribir ya era una garantía de seguridad de que posiblemente si alguien interceptaba el mensaje nos habría leer su contenido pero si además el mensaje se encontraba cifrado la posibilidad de entender el mensaje que realmente estaba enviando el césar resultaba toda una hazaña sin embargo no tuvieron que pasar muchos siglos para que se viese que este método de cifrado resultaba completamente inseguro principalmente a dolece de dos ataques por un lado lo que se conoce como análisis de frecuencias principalmente el análisis de frecuencias está basado en el hecho de que dado un texto ciertas letras aparecen más a menudo que otras existiendo diferentes frecuencias para ellas así si se comparan las frecuencias de un texto suficientemente largo con las frecuencias conocidas de un determinado lenguaje se puede intentar adivinar la correspondencia entre las letras en realidad en el caso de césar con ya tendríamos suficiente con una puesto que conoceríamos el desplazamiento y con ello la clave por ejemplo supongamos que en un texto suficientemente largo la letra que más aparece es la r si es un texto en español podemos suponer que la r corresponderá con la letra e puesto que es la que más aparece en español por otro lado el ataque conocido como de fuerza bruta y que consiste en recuperar una clave probando todas las posibles claves hasta encontrar aquella que permite el acceso en el caso de césar probando como ya hemos comentado con 27 o de hecho con 26 puesto que en k igual a 0 el texto cifrado es igual al texto en clave tendríamos suficiente estos dos ataques son utilizados usualmente por criptoanalistas y permitidme que también aquí os propongo un ejercicio en este caso particularmente sencillo algunos de vosotros podréis haber pensado que resulta ininteligible mi nombre de usuario en twitter pues bien espero que después de lo que acabamos de ver descripturáis que en realidad no es tan extraño y nos olvidamos ya de parte de la historia antigua para movernos al otro reto que presentábamos al inicio del módulo como pueden nuestros protagonistas alicia y venito enviarse información confidencial como pueda ser su tarjeta de crédito sin que nadie se interponga en el camino de la comunicación y puedo obtener dicho mensaje añadíamos además otro factor que complicaba más la situación y es que alicia vive en marcelona y venito en buenos aires las distancias pueden parecer exageradas pero en realidad el simple hecho de que no puedan verse físicamente situaría los protagonistas en este escenario podéis imaginaros muchas situaciones de nuestro día a día donde nos encontramos en situaciones de este tipo el comercio electrónico o el correo electrónico son dos de las muchas situaciones que os podéis imaginar es precisamente este hecho lo que pide lo que impide hacer uso de un cifrado de los que se conocen como de clave simétrica o clave privada son aquellos que requieren que ambos ambas partes compartan una clave en común el césar es un ejemplo sencillo de ellos pero encontramos muchos otros cifrados mucho más seguros y más sofisticados que el del césar y aunque todos ellos requieren que los dos participantes intercambien una clave de manera segura y sin utilizar ningún tipo de criptografía como pueda ser físicamente y cara a cara y todavía se acentúa más esta problemática cuando no son dos personas las que se comunican sino que es un grupo de personas considerablemente grande todos deben intercambiar la clave en un mismo momento dos a dos así pues la criptografía simétrica no es suficiente para resolver esta situación y la respuesta a esta problemática llegó de la mano de la criptografía asimétrica o criptografía de clave pública en el año 1976 veamos en qué consiste la idea detrás de la criptografía asimétrica es que sea posible cifrar utilizando una información que sea pública y conocida por todos mientras que para descifrar se necesite calcular cierta información secreta y bada asociada con la clave pública y conocida solo por el receptor del mensaje cifrado consideremos la siguiente situación que nos ayudará a entender las bases de la criptografía asimétrica imaginar que Alicia quiere enviar una carta a venito y no quiere que nadie más la lea si disponen de una caja un candado la llave del candado como podrían hacerlo para conseguir que fuese venito el único que leí ese mensaje os dejo pensar en un momento una posible solución pues efectivamente la solución es sencilla venito se queda con la llave que abre el candado y Alicia pone la carta en la caja y cierra con el candado que no necesita de la llave para ser cerrado y se lo envía a venito cuando venito recibe la carta utiliza su llave y recupera la carta de Alicia notad que únicamente venito que posee la clave del candado será capaz de abrir la caja y recuperar su contenido nadie más podrá hacerlo la criptografía asimétrica o de clave pública permite persigue emular este escenario en un entorno digital y lo haremos buscando un mecanismo de manera que todo el mundo pueda cerrar mientras que sea difícil abrir si no se conoce esta clave veamos cómo traducir esto matemáticamente fue tan sólo un año más tarde cuando rivets chamir y adelman propusieron el que hoy en día es el cifrado más utilizado y que ha hecho posible las infraestructuras seguras por las que navegamos por internet realizamos compras o nos comunicamos remotamente con otras máquinas de nuevo tenemos nuestros protagonistas alicia y venito veamos cómo son sus claves la clave pública estará formada por dos números por un lado un producto de dos números primos p y q notaremos este estos este producto con generalmente con una n mayúscula y un valor que será relativamente primo con fi de n la clave secreta será un valor de donde de es el inverso de módulo fi de n en este caso esta es la clave pública y la clave privada de venito alicia si quiere recibir mensajes y poder descifrarlos necesita también tener su par de claves pública y privada supongamos que alicia le quiere enviar un mensaje m a venito en realidad no será un número sino posiblemente un mensaje de texto mediante un proceso de conversión que nos detallaremos aquí este mensaje este mensaje se convierte en un valor numérico pondremos así de entrada que alicia intenta enviar un valor m numérico a venito este será nuestro texto en claro es decir el mensaje sin cifrar alicia observa que la clave pública de venito es esta y lo que hará pues será calcular esta exponenciación modular para calcular el mensaje cifrado son valores públicos con lo cual no hay ningún problema en el cálculo así de sencillo este será el texto cifrado que le enviará a venito y que simplemente mirando el valor recibido nos habrá descifrar el punto interesante está claro es que venito utilizando su clave secreta podrá calcular esta potencia observar que puesto que c es la potencia de m a la e módulo n en realidad esta potencia sería esta de aquí y tendríamos una potencia de potencias por lo que multiplicamos los exponentes aprovechando que sabemos que de y e son inversos el uno del otro en el anillo de los enteros z módulo fi de n venito obtendrá el mensaje que alicia le ha enviado antes de ver un ejemplo numérico debemos remarcar un par de puntos en primer lugar que e y de son inversos módulo fi de n módulo fi de n y no módulo n la respuesta aunque pueda parecer extraño en un principio la tiene el teorema de hoyler recordad que el teorema de hoyler nos decía que si a y n son relativamente primos entonces se cumplía esta equivalencia en particular cuando calculamos esta potencia para descifrar como hemos dicho antes sabremos que al ser e y de inversos módulo fi de n por de será uno más un módulo de fi de n como ya sabemos después de conocer la aritmética modular pero por las propiedades de la protén de las potencias lo podemos escribir como este producto y ahora utilizando el teorema de hoyler sabemos que este elemento de aquí será el elemento neutro de la multiplicación por lo que efectivamente m elevado a e de es congruente con m módulo n otro punto a remarcar es que p y q deben ser suficientemente grandes y estamos hablando de que en bits deberían de tener del orden de 1024 o 2048 bits evidentemente aquí estamos considerando ejemplos sencillos y que carecen de seguridad pero que permiten ejemplificar la situación si p y q son suficientemente grandes es relativamente sencillo o eficiente calcular esta potencia mientras que resulta muy difícil computacionalmente hablando calcular a partir de n sus factores primos p y q y de la misma manera también lo es calcular el inverso de e módulo fi de n en particular porque una manera de calcular eficientemente fi de n es a partir de la factorización y insisto no la conocemos y este cálculo resulta muy complicado por ejemplo este sería un ejemplo relativamente sencillo de un número que es producto de dos números enteros pero si no utilizáis ningún algoritmo específico supongo que calcular los factores primos os puede resultar bastante complicado y aclarados estos dos puntos veamos un ejemplo numérico alicia y benito tienen este par de claves pública y privada respectivamente si alicia le quiere enviar el mensaje 5 a benito calcula esta potencia utilizando los los valores públicos de benito así este será el texto cifrado que le envía benito utilizando su clave secreta que en este caso es 7 podrá calcular esta potencia y recuperar así el mensaje que le envió alicia y acabaremos este módulo con un par de propuestas la primera es que respondáis a la siguiente pregunta y acabaremos este módulo con un par de propuestas la primera es que respondáis a la siguiente pregunta cuál es la importancia principal que subyace al hecho de que e y fi de n sean relativamente primos bien espero que después de las observaciones que ya hemos hecho en la resolución de este reto todos hayáis contestado que la necesidad es para que exista el inverso de e en z módulo fi de n recordad que esta es justamente la clave secreta correspondiente a la clave pública e y n no el caso de n ni tampoco para mejorar ningún tipo de eficiencia y finalmente os proponemos ante esta situación muy similar a las vistas anteriormente que intentéis reproducir los cálculos y ver cómo benito le puede enviar un mensaje cifrado a alicia en este caso al ser los números sencillos incluso podéis factorizar y ver cómo alicia recuperaría el mensaje tendréis una propuesta en los vídeos adjuntos