Aplicaciones del álgebra lineal - DGAO
del griego κρύπτos 'criptos, «oculto», y γραφη grafé, «escritura», l
, iteralmente «escritura oculta»), para la mayoría de la gente, se ocupa de mantener la privacidad en las conversaciones. En efecto, la protección de las comunicaciones confidenciales ha sido el énfasis de la criptografía en gran parte de su historia. El cifrado o encriptación es la transformación de datos a alguna forma ilegible. Su finalidad es asegurar la privacidad, manteniendo la información oculta a cualquiera a quién no ha sido destinada, incluso para aquellos que pueden ver los datos datos cifrados. El descifrado o des encriptación es el reverso de cifrado; es la transformación de los datos cifrados, de vuelta en alguna forma inteligible. El cifrado y descifrado que requieren el uso de cierta información secreta, normalmente se conocida como clave o llave. Dependiendo del mecanismo de cifrado utilizado, la misma clave puede ser usada tanto para el cifrado y descifrado, mientras que para otros mecanismos, las claves utilizadas para el cifrado y descifrado pueden ser diferentes. Los gobiernos de hoy en día utilizan métodos sofisticados de mensajes de codificación y decodificación. Una de las aplicaciones del álgebra lineal en criptografía la hallamos en un tipo de código, que es extremadamente difícil de romper, hace uso de una matriz grande para codificar un mensaje. El receptor del mensaje lo decodifica utilizando la inversa de la matriz. Esta primera matriz se denomina matriz de codificación y su inversa se llama la matriz de decodificación. El álgebra lineal es fundamental para la codificación y decodificación de este tipo, para el cual se utilizan las siguientes propiedades: -Si B es una matriz cuadrada de tamaño m, entonces la matriz identidad neutro de modo que:
mxm es
el elemento
= = − =
Del producto entre una matriz A, y su matriz inversa es igual a la matriz identidad.
Donde es la matriz de codificación, y la matriz que contiene el mensaje, el producto de ambas matrices dan como resultado a , la matriz codificada.
= = −=− =
Aplicando las propiedades mencionadas anteriormente:
Podemos observar que la decodificación consiste en multiplicar la matriz codificada por la inversa de la matriz de codificación, obteniendo como resultado M que es la matriz que contiene el mensaje.
Supongamos que el mensaje es: “Prepárese para negociar” Y la matriz de codificación es:
03 13 14 4 3 4
Aplicaciones del álgebra lineal: “Criptografía” DGAO
Nosotros asignamos un número para cada letra del abecedario, por simplicidad le asignamos su posición en el abecedario a cada letra: A es 1, B es 2, C es 3, etcétera. También asignamos el número 28 al espacio entre dos palabras (ya que en nuestro abecedario existen 27 letras).
1 2 3 c 4 5 6 7 8 9 ℎ10 11 12 13 14 15 16ñ 17 18 19 20 21 22 23 24 25 26 27 28
Por lo tanto el mensaje se convierte en lo siguiente: P
R
E
P
A
R
E
C
E
17
19
5
17
1
19
5
3
5
28
P
A
R
A
17
1
19
1
28
N
E
14
5
G
7
O
C
I
A
R
16
7
9
1
19
Como estamos usando una matriz de 3 por 3 rompemos el mensaje enumerado anteriormente en una secuencia de 3 por 1 vectores:
17195 17191 535 28171 19281 1457 1679 19281
Tenga en cuenta que era necesario añadir un espacio al final del mensaje para completar el último vector. Ahora se codifica el mensaje multiplicando cada uno de los vectores anteriores por la matriz de codificación. Esto se puede hacer escribiendo los vectores anteriores como columnas de una matriz y realizar la multiplicación de la matriz de dicha matriz con la matriz de codificación de la siguiente manera:
3 3 4 17 17 5 28 19 14 16 1 04 13 14 195 191 35 171 281 57 79 1928 130 44 139 172 85 105 172 128 24145 14720 498 16718 19129 9912 12116 17347
Lo que resulta en la siguiente matriz:
Las columnas de esta matriz dan el mensaje codificado. Y el mensaje se transmite en la siguiente forma lineal:
128,24,145,130,20,147,44,8,49,139,18,167,172,29,191,85,12,99,105,16,121,172,47,173 Para decodificar el mensaje, el receptor escribe esta cadena como una secuencia de 3 por 1 matrices de columna y repite la técnica usando la inversa de la matriz de codificación. La inversa de esta matriz de codificación, la matriz de decodificación, es:
− 1 0 1 3 3 4 04 13 14 =44 34 33 414 304 313 128 24145 130 20147 44498 139 18167 172 29191 859912 105 16121 172 47173
Por ende para decodificar la matriz, se realiza el siguiente producto:
Y se obtiene de nuevo la matriz:
2
Aplicaciones del álgebra lineal: “Criptografía” DGAO
1719 171 53 1728 191 145 167 191 5 19 5 1 28 7 9 28 Las columnas de esta matriz escritas en forma lineal, devuelven el mensaje original. 17
19
5
17
1
19
5
3
5
P
R
E
P
A
R
E
C
E
28
17
1
19
P
A
R
1
28
14
A
N
5 E
7 G
16 O
7 C
9 I
1 A
19
28
R
A este tipo de codificación/encriptación/cifrado se le conoce como “cifrado Hil ”, la manera clásica en la que se conoce es con un módulo de 26, que representan las letras en el abecedario inglés asignando las posiciones desde el 0, y asignando el espacio al número 26. Como se muestra a continuación:
0 1 2 3c 4 5 6 7 8 9 1 0 ℎ1 1 1 2 1 3 1 4m1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 42 5 2 6 Este tipo de encriptación se encuentra englobada dentro de la criptografía clásica. Básicamente el ejemplo anterior es una modificación de este tipo de cifrado, en donde se usó una diferente asignación de números a cada letra del abecedario, y aplicado a un abecedario en español
únicamente se incluye la “ñ” y se inició la asignación desde el “1”.
Podemos observar que mientras más grande sea el mensaje codificado, es más difícil descifrarlo (manualmente). De igual manera si la matriz de codificación tiene una inversa que no contiene sólo números enteros, la decodificación del mensaje se hace más compleja. Pero ¿Qué pasa con mensajes más cortos? , Basándonos en el cifrado Hill clásico.
: “CAT” que significa gato en inglés. 13206 161724 10151 Que en palabras diría algo como “ NUYQRBKP”. Supongamos que tenemos el siguiente mensaje Y nuestra matriz de codificación será:
G
Como vimos en el ejemplo 1, asignamos los números correspondientes a cada letra de la palabra a codificar, pero en este caso usando el cifrado Hill clásico, lo que nos daría el siguiente vector:
Al codificar obtenemos:
2 0 19 13206 161724 10151 1920 =21632531 31 5 216325≡138 26
Si utilizamos el módulo para ver la palabra resultante obtendremos:
3
Aplicaciones del álgebra lineal: “Criptografía” DGAO
Donde a las letrasy del“FINabecedari enviamosasiglanando s palabras5, 8 y“ 13NUYQRBKP” ”, cualquioe tendremos la palabra “FIN”. Si en el mensaje G idea de que hablamos de un gato)
ra que leyera el mensaje encriptado no tendría
Para des encriptar el mensaje únicamente tenemos que calcular la matriz inversa, y multiplicarla por el vector que contiene la palabra, pero como la palabra fin, tiene módulo 26, la matriz inversa que multiplica la palabra, también debe de tener módulo 26.
613 1624 101 − ≡218 85 211026 20 17 15 21 12 8 821 85 2110 58 =210442 ≡ 20 26 21 12 8 13 305 19
Finalmente se obtiene el resultado de la multiplicación y usamos el resultado con módulo 26 para obtener la siguiente combinación lineal: 2, 0, 19
Que traducida al abecedario es “CAT”. Al ser menos palabras es más “simple” decodificar el mensaje, pero si el mensaje es transmitido en
palabras y no en números como en el primer ejemplo, tendríamos que hacer uso de la aritmética modular. Un cifrado distinto pudiera hacer la tarea de des encriptar más difícil, y más complejo de operar, basado en los mismos principios de álgebra lineal, pero únicamente cambiando la asignación de los números a las letras. -Ejemplo 3Suponiendo que alguien que intercepta los mensajes descubrió que se trata de un cifrado Hill, y sabe cómo decodificar el mensaje, ya sea en mensajes con letras, o bien en números. Podríamos asignar números distintos a las letras para hacerle la tarea un poco más difícil. Por ejemplo, la asignación en vez de ser números ascendentes, podrían ser números primos en orden ascendente.
2 3 5 7 11 13 17 19ℎ 23 29 31 37 41 43 47ñ 53 59 61 67 71 73 79 83 89 97 101 103 107
Si el mensaje es “ALGEBRA LINEAL”, asignamos los números de manera lineal: 2, 37, 17, 11, 3, 67, 2, 107, 37, 23, 43, 11, 2, 37 Obtendremos la siguiente matriz para el mensaje.
37172 67113 107372 431123 107372 Si la matriz codificación la asignamos de la palabra “CLAVEDECD”, que equivale a 5, 37, 2, 83, 11, 7, 11, 5, 7
4
Aplicaciones del álgebra lineal: “Criptografía” DGAO
537 1183 115 2 7 7 3752 11837 1157 37172 67113 107372 431123 107372 1413 300 4043 1728 1593 692326 1415 605 1602 816 2459 545 1322 956
Entonces el mensaje codificado sería el producto de la matriz de codificación y el mensaje:
De lo cual resulta la siguiente matriz.
Con esta asignación de números podemos ver que se requiere de más dígitos para un mensaje, así como también de operaciones que requieren de mayor tiempo. La matriz inversa de la matriz de codificación sería la siguiente.
79 124251 59508313 5950 131 4257 17850 17850 191 1508 ( 425 8925 8925 )
De igual manera como se realizó en los ejemplos anteriores, para decodificar el mensaje se multiplica la matriz inversa por el mensaje codificado.
79 124251 59508313 5950 1413 300 4043 1728 1593 131 692326 1415 1602 2459 1322 4257 17850 17850 605 816 545 956 191 1508 ( 425 8925 8925 ) 37172 67113 107372 431123 107372
Para obtener la matriz que contiene el mensaje.
Finalmente traducimos el mensaje como en el ejemplo 1, pero usando las asignaciones de este nuevo cifrado. 2 A
37 L
17 G
11 E
3 B
67 R
2 A
107
37 L
23 I
43 N
11 E
2 A
37 L
107
5