Si te ha gustado, déjanos tu voto

Cuando el gran matemático inglés Alan Turing descifró el código secreto con el que los nazis se comunicaban entre sí durante la Segunda Guerra Mundial, probablemente acortó la duración de la contienda entre tres y cuatro años. El cifrado que conseguía la máquina de los alemanes era prácticamente perfecto, pero el genio y la tenacidad de Turing lograron derrotar a “Enigma”.

Alan Turing pasó a formar parte de la historia de las matemáticas por descifrar lo que hasta entonces se consideraba indescifrable. También fueron de inmensa importancia sus aportaciones en el campo de la ciencia de la computación y por supuesto es considerado uno de los padres de la informática moderna, tal como hoy la conocemos.

Hoy os traemos al blog nuestra humilde aportación a este maravilloso mundo de la criptografía, campo en el que el protagonista del comienzo de esta entrada trabajó con más esmero, en una época en la que las matemáticas consiguieron salvar al Mundo de una oscura perspectiva.

Para centrarnos un poco a nivel práctico, antes debemos asentar y dejar claras unas premisas que nos servirán para no perdernos en el desarrollo que haremos más adelante. Nuestro punto de partida para que aprendáis a cifrar vuestros propios mensajes, utilizando las matemáticas, son las matrices.

Una matriz puede considerarse como una distribución de elementos numéricos organizados en filas (horizontales) y en columnas (verticales). Para que lo tengáis más claro aún, podemos decir que una matriz es como una tabla, pero sin celdas. Las matrices también están limitadas a ambos lados por paréntesis. Os dejo un ejemplo a continuación de una matriz con cuatro filas y cinco columnas.Si ya tenemos claro nuestro punto de inicio, vamos a continuar trabajando. El primer paso a tener en cuenta para poder utilizar la criptografía y las matrices de una forma correcta es definir una tabla de correspondencia en la que relacionemos cada letra del abecedario y el símbolo de barra baja (espacio) con un número. Por ejemplo, podemos usar la siguiente tabla de correspondencia:Nótese que hemos repartido las correspondencias entre los números 1 y 28. Esta tabla debe ser conocida obligatoriamente por el emisor y el receptor de los mensajes encriptados.

Con la tabla que hemos construido podremos asociar a cualquier mensaje un código numérico. En nuestro caso queremos enviar el mensaje “MIRLO_BLANCO”, que suena muy bien en el contexto de situaciones bélicas o de espionaje. Si asociamos a cada letra su numero, en función de la tabla, nos quedará el siguiente código a cifrar: 2 6 27 22 7 28 5 22 14 24 18 7.

Una vez realizada nuestra tabla de correspondencia y ya decidido el mensaje que queremos encriptar, vamos a introducir en el proceso a las matrices, concretamente a la que llamaremos “Matriz de Turing”, en honor al protagonista del comienzo de esta entrada. Esta matriz siempre debe tener el mismo numero de filas y de columnas y nos servirá para encriptar el mensaje que queremos enviar.

En nuestro ejemplo vamos a elegir una matriz cuadrada de orden dos, que tiene cuatro elementos numéricos, distribuidos en dos filas y en dos columnas. Podremos también elegir matrices de orden tres o superior, pero nosotros nos hemos quedado con la versión mas sencilla para poder explicar de una forma más clara algunas operaciones intermedias con matrices, necesarias para encriptar correctamente el mensaje a enviar.

La “Matriz de Turing” que vamos a elegir es la siguiente:Una vez elegida la “Matriz de Turing” y sabiendo el código numérico que queremos enviar, vamos a cifrar el mensaje tomando la matriz T y multiplicándola por los números del código de dos en dos, procediendo de la siguiente forma con todos ellos:Vamos a explicar varios aspectos que debemos tener claros a la hora de multiplicar matrices. Lo primero a tener en cuenta para poder multiplicar dos matrices es que el número de columnas de la primera matriz debe ser igual al número de filas de la segunda. En nuestro caso no hay problema en ese aspecto.

Para realizar las multiplicaciones correctamente debemos multiplicar el primer término de la primera fila de la primera matriz por el primer término de la columna de la segunda matriz y posteriormente sumaremos ese resultado a la multiplicación del segundo término de la primera fila de la primera matriz por el segundo término de la columna de la segunda matriz.

De esta forma, en el primer producto de matrices multiplicaremos 1 x 2 y le sumaremos 2 x 6, obteniendo como resultado final 14. Una vez hecho esto procedemos con la segunda fila de la primera matriz y la columna de la segunda matriz, obteniendo 20 como resultado. Parece un poco lioso al principio, pero con practica y paciencia se consiguen multiplicar matrices de forma muy rápida.

De todas formas, si no lo veis claro os recomendamos que os paséis por esta entrada del blog en la que hablamos de una aplicación web que va de lujo para trabajar con las matrices.

Matrix Calculator es la aplicación imprescindible para sacarle todo el jugo a las matrices

Una vez hechas todas las operaciones, el código que enviaremos será el siguiente: 14 20 71 93 63 91 49 71 62 86 32 39. El receptor del mensaje cifrado tendrá que volver a multiplicar matrices, pero esta vez entra en juego la llamada matriz inversa.

Para que os hagáis una idea rápida de las propiedades de la matriz inversa de una dada, podemos decir que sin ella seria imposible resolver las llamadas ecuaciones matriciales, tema que se nos escapa de esta entrada. La matriz inversa se antoja indispensable para que el receptor del mensaje pueda decodificarlo correctamente, pero, ¿como podemos calcularla?

Existen varios métodos para calcular matrices inversas, como por ejemplo el desarrollado por Gauss y Jordan. También tenemos el método que utiliza los determinantes para obtener la matriz inversa que buscamos. Nosotros vamos a optar por calcularla utilizando la definición de matriz inversa y planteando posteriormente un sistema de cuatro ecuaciones con cuatro incógnitas.

El método que vamos a utilizar no es probablemente el más práctico, sobre todo si trabajamos con matrices cuadradas de dimensiones superiores a 2 filas x 2 columnas (matrices de orden 2). Sin embargo, en esta ocasión, nos sevirá para avanzar en la búsqueda de nuestra matriz inversa sin utilizar los determinantes, concepto que necesitaría de otra entrada en el blog para explicarlo adecuadamente.

Para utilizar el método de la definición debemos utilizar la igualdad que nos define la característica principal de una matriz inversa respecto a su original, que no es otra que la siguiente:En esta doble igualdad vemos que se cumple la propiedad conmutativa de la multiplicación entre la “Matriz de Turing” y su inversa. Además el resultado de esas multiplicaciones debe ser igual a la matriz identidad, que es aquella que tiene unos en la diagonal principal y ceros en la diagonal secundaria. Tan solo necesitamos utilizar la primera parte de la doble igualdad y la matriz identidad para nuestros fines, quedando el planteamiento del problema de la siguiente forma:Como no tenemos ni idea de cual es la matriz inversa, ya que es precisamente lo que buscamos, nombramos a cada uno de sus elementos con incógnitas, que por supuesto tendremos que averiguar. Esta será la clave del proceso para obtener el resultado final.

Si multiplicamos las dos matrices de la izquierda de la igualdad de la forma que os hemos explicado antes, es decir, la primera fila de la primera matriz por la primera columna y después por la segunda columna de la segunda matriz, y posteriormente trabajando con la segunda fila de la primera matriz y las dos columnas de la segunda, obtendremos, igualando a los elementos de la matriz identidad los desarrollos de las anteriores multiplicaciones, un sistema de cuatro ecuaciones con cuatro incógnitas.

El sistema de ecuaciones quedaría planteado de la siguiente forma:Para resolver el sistema podemos tomar la primera y la tercera de las ecuaciones y por otro lado podemos trabajar con la segunda y la cuarta de las ecuaciones. De esta forma nos quedaran dos sistemas de dos ecuaciones con dos incógnitas, que podremos resolver de forma independiente cada uno. Una vez obtenidas las soluciones, sustituimos el valor de cada incógnita en cada una de las posiciones de la matriz inversa.

La matriz inversa que obtenemos quedaría de la siguiente forma:Una vez hemos conseguido la matriz inversa, llave para descifrar el código secreto que el receptor ha recibido, este debe de realizar las multiplicaciones de los distintos números del código recibido de la misma forma que se han realizado para encriptarlo. Tomaremos dos a dos los números del código y los iremos multiplicando, en este caso, por la matriz inversa que acabamos de obtener. Tendríamos el siguiente desarrollo:

Las distintas multiplicaciones entre matrices nos dan como resultado el siguiente código: 2 6 27 22 7 28 5 22 14 24 18 7. Si hacemos la correspondiente verificación con la tabla que os hemos mostrado al comienzo de esta entrada comprobaremos que el mensaje que ha recibido el receptor es “MIRLO_BLANCO”.

Como habéis podido comprobar, el proceso de cifrado se basa en la tabla de correspondencia y en la “Matriz de Turing”, que deben ser conocidas tanto por el emisor, como por el receptor del mensaje. Si queremos ser más eficientes y comunicarnos con mayor seguridad, podemos utilizar matrices de orden 3 o superior para hacerlo.

Nosotros hemos optado por utilizar matrices de orden dos, ya que el proceso para obtener su inversa es más sencillo. Os animamos a probar este método de comunicación si por algún casual os veis inmersos en cualquier situación peliaguda que requiera de vuestra discreción para salvar el Mundo. Si nos se da el caso, os animamos igualmente a seguir curioseando y a disfrutar de las matrices y las matemáticas.

Este post forma parte del Carnaval de Matemáticas, que en esta septuagésima novena edición, también denominada 9.3, está organizado por @juanfisicahr a través de su blog Esto no entra en el examen.

Uso de cookies

Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies. ACEPTAR

Aviso de cookies