23 / 05 / 2020

23 / 05 / 2020

            Se realizó la codificación tanto del cifrado como el descifrado por medio de palabra inversa, mensaje inverso y RSA. Se realizó como primer paso, una función que fuese capaz de invertir el orden de una cadena de caracteres. Seguidamente nos dimos cuenta que dicha función ya realizaba lo solicitado en el cifrado por medio del mensaje inverso y únicamente hacia falta una función que se encargara de obtener cada palabra por separado de un mensaje. Se utilizó el mismo método que se uso el día anterior en las otras funciones, de manera que, se añade un espacio en blanco al inicio y al final del mensaje para poder realizar un corte de “sándwich” por palabra. De esta manera, el cifrado de ambas funciones que utiliza el método de transposición, fue bastante sencillo de realizar. El aspecto clave a la hora de realizar estos retos fue recordar algunos de los métodos utilizados en ejercicios previos.

 

            Ulteriormente se realizó la codificación del cifrado y descifrado por medio de RSA. Se inició codificando una función que fuese capaz de generar llaves según el algoritmo RSA. Para ello fue necesario seguir los cálculos de cada variable involucrada en la generación de las claves públicas y privadas al pie de la letra. Un aspecto importante es que se encontró un error a la hora de generar las llaves puesto que existía la posibilidad de que los números primos aleatorios generados, fuesen iguales. En el caso de que fuesen iguales, el algoritmo no servía, aunque los cálculos matemáticos para definir las variables fuesen los correctos. Debido a esto fue necesario una pequeña investigación para conocer mas acerca de este método de encriptación y se descubrió que los valores de los números primos debían ser distintos entre ellos. Se realizó un pequeño ajuste al cálculo de dichos números para verificar que fuesen distintos e inmediatamente el problema se corrigió, de forma que, la generación de llaves de manera aleatoria funcionara de manera correcta.

 

            A continuación, se codificó la encriptación de mensaje por RSA, utilizando una única función que siguiera de manera exacta, los cálculos matemáticos para cifrar cada carácter, y retornara el mensaje encriptado. De esta forma si se encuentra un espacio en blanco en el mensaje a cifrar, se debe añadir un doble asterisco y en caso de encontrarse un carácter válido, se utiliza el algoritmo matemático para añadir su valor cifrado al mensaje final y se añade un asterisco entre cada letra cifrada. De inmediato se empezó a codificar la función de descifrado. Se observó que era mas sencillo dividirla en dos partes, de manera que la primera funcion separara cada palabra del mensaje encriptado y la segunda descifra cada carácter dentro de la palabra.

           

            Se debe mencionar que el cálculo de cada palabra sigue siendo el mismo método de “sandwich” que ya se ha mencionado previamente. Además, para descifrar cada carácter dentro de la palabra se vuelve a utilizar dicho método y seguidamente se realizan los cálculos matemáticos necesarios para obtener el carácter descifrado correspondiente.

Comentarios