{"id":263,"date":"2025-10-17T10:15:27","date_gmt":"2025-10-17T08:15:27","guid":{"rendered":"https:\/\/clases.jesussoto.es\/?p=263"},"modified":"2025-10-17T17:20:07","modified_gmt":"2025-10-17T15:20:07","slug":"alg-criptografia-basada-en-matrices","status":"publish","type":"post","link":"https:\/\/clases.jesussoto.es\/?p=263","title":{"rendered":"ALG: Criptograf\u00eda basada en matrices"},"content":{"rendered":"<p>En criptograf\u00eda cl\u00e1sica, el Cifrado Hill es un cifrado de sustituci\u00f3n poligr\u00e1fica basado en el \u00e1lgebra lineal. Inventado por Lester S. Hill en 1929, fue el primer cifrado poligr\u00e1fico que era pr\u00e1ctico para operar sobre m\u00e1s de tres s\u00edmbolos inmediatamente. El art\u00edculo siguiente supone un conocimiento elemental de matrices.<\/p>\n<h2>M\u00e9todo<\/h2>\n<p>Cada letra est\u00e1 representada por un n\u00famero. A menudo el esquema m\u00e1s sencillo es A = 1, B = 2, &#8230;, Z = 26 (o Z=27 si incluimos \u00d1), pero esto no es una caracter\u00edstica esencial del cifrado. Para encriptar un mensaje, cada bloque de n letras (considerados como un vector) est\u00e1 multiplicado por una matriz invertible n\u00d7n (modular 26). Para desencriptar el mensaje, cada bloque es multiplicado por el inverso de la matriz usada para la encriptaci\u00f3n.<\/p>\n<p>La matriz usada para la encriptaci\u00f3n es la llave de cifrado, y tiene que ser escogida aleatoriamente del conjunto de matrices invertibles n\u00d7n (modular 26). El cifrado puede, naturalmente, ser adaptado a un alfabeto representado con cualquier orden num\u00e9rico y\/o cambiando el n\u00famero (modular 26) siempre y cuando la matriz n\u00d7n (modular x) sea invertible.<\/p>\n<p>En nuestro caso, y para facilitar el trabajo, consideraremos una matriz invertible sin tener en cuenta el paso a m\u00f3dulo 26. Ve\u00e1moslo con un ejemplo.<\/p>\n<h2>Proceso de cifrado<\/h2>\n<p><!-- Text cell --><\/p>\n<div class=\"comment\">Nuestro prop\u00f3sito es cifrar el mensaje: &#34;La clave est\u00e1 en Rebeca&#34;<\/p>\n<p>Necesitamos una matriz regular, por ejemplo:<\/p><\/div>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i1)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">A<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">matrix<\/span><span class=\"code_operator\">(<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">0<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">[<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">3<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">$<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p><!-- Text cell --><\/p>\n<div class=\"comment\">Codificamos el mensaje considerando el alfabeto espa\u00f1ol y tomando todas las letras juntas sin espacios. Como nuestra matriz clave es de dimensi\u00f3n tres necesitaremos bloques de tres letras: LAC LAV EES TAE NRE BEC AXX<br \/>Concluimos con el caracter X para que sea un bloque de tres.<\/div>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i4)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">alfabeto<\/span><span class=\"code_operator\">:<\/span><span class=\"code_string\">&#34;ABCDEFGHIJKLMN\u00d1OPQRSTUVWXYZ&#34;<span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">text<\/span><span class=\"code_operator\">:<\/span><span class=\"code_operator\">[<\/span><span class=\"code_string\">&#34;L&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;A&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;C&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;L&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;A&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;V&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;E&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;E&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;S&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;T&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;A&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;E&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;N&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_endofline\"><br \/><\/span> \u00a0\u00a0 <span class=\"code_string\">&#34;R&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;E&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;B&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;E&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;C&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;A&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;X&#34;<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_string\">&#34;X&#34;<span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">num<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">makelist<\/span><span class=\"code_operator\">(<\/span><span class=\"code_function\">sposition<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">text<\/span><span class=\"code_operator\">[<\/span><span class=\"code_variable\">i<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">alfabeto<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">i<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">21<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }[ 12{,}1{,}3{,}12{,}1{,}23{,}5{,}5{,}20{,}21{,}1{,}5{,}14{,}19{,}5{,}2{,}5{,}3{,}1{,}25{,}25] \\]<\/p>\n<p><!-- Text cell --><\/p>\n<div class=\"comment\">Ahora hacemos bloques de tres:<\/div>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i5)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">bloques<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">makelist<\/span><span class=\"code_operator\">(<\/span><span class=\"code_function\">makelist<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">num<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">\u00b7<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">i<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_operator\">)<\/span><span class=\"code_operator\">+<\/span><span class=\"code_variable\">j<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">j<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">i<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">7<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }\\left[ \\left[ 12{,}1{,}3\\right] {,}\\left[ 12{,}1{,}23\\right] {,}\\left[ 5{,}5{,}20\\right] {,}\\left[ 21{,}1{,}5\\right] {,}\\left[ 14{,}19{,}5\\right] {,}\\left[ 2{,}5{,}3\\right] {,}\\left[ 1{,}25{,}25\\right] \\right] \\]<\/p>\n<p><!-- Text cell --><\/p>\n<div class=\"comment\">Ya estamos en condiciones de cifrar:<\/div>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i6)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">cifrado<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">makelist<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">A<\/span><span class=\"code_endofline\">.<\/span><span class=\"code_function\">transpose<\/span><span class=\"code_operator\">(<\/span><span class=\"code_function\">matrix<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">bloques<\/span><span class=\"code_operator\">[<\/span><span class=\"code_variable\">i<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">)<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">i<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">7<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }\\left[ \\begin{bmatrix}11\\\\-20\\\\6\\end{bmatrix}{,}\\begin{bmatrix}11\\\\-80\\\\-14\\end{bmatrix}{,}\\begin{bmatrix}0\\\\-60\\\\-30\\end{bmatrix}{,}\\begin{bmatrix}20\\\\-35\\\\13\\end{bmatrix}{,}\\begin{bmatrix}-5\\\\-10\\\\-48\\end{bmatrix}{,}\\begin{bmatrix}-3\\\\-6\\\\-16\\end{bmatrix}{,}\\begin{bmatrix}-24\\\\-51\\\\-99\\end{bmatrix}\\right] \\]<\/p>\n<p><!-- Text cell --><\/p>\n<div class=\"comment\">Nuestro c\u00f3digo cifrado ser\u00e1:<\/div>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i7)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">cod_cif<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">create_list<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">cifrado<\/span><span class=\"code_operator\">[<\/span><span class=\"code_variable\">i<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">[<\/span><span class=\"code_variable\">j<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">1<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">i<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">7<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">j<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }[ 11{,}-20{,}6{,}11{,}-80{,}-14{,}0{,}-60{,}-30{,}20,\\]\\[\\left.-35{,}13{,}-5{,}-10{,}-48{,}-3{,}-6{,}-16{,}-24{,}-51{,}-99\\right] \\]<\/p>\n<p><!-- Text cell --><\/p>\n<div class=\"comment\">El proceso de descifrado es el resultado de multiplicarlo por la inversa de A:<\/div>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i11) <\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">iA<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">invert<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">A<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">bloques<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">makelist<\/span><span class=\"code_operator\">(<\/span><span class=\"code_function\">makelist<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">cod_cif<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">\u00b7<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">i<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_operator\">)<\/span><span class=\"code_operator\">+<\/span><span class=\"code_variable\">j<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">j<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">i<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">7<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">descifrado<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">makelist<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">iA<\/span><span class=\"code_endofline\">.<\/span><span class=\"code_function\">transpose<\/span><span class=\"code_operator\">(<\/span><span class=\"code_function\">matrix<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">bloques<\/span><span class=\"code_operator\">[<\/span><span class=\"code_variable\">i<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">)<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">i<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">7<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_function\">create_list<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">descifrado<\/span><span class=\"code_operator\">[<\/span><span class=\"code_variable\">i<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">[<\/span><span class=\"code_variable\">j<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">1<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">i<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">7<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">j<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }\\left[ 12{,}1{,}3{,}12{,}1{,}23{,}5{,}5{,}20{,}21{,}1{,}5{,}14{,}19{,}5{,}2{,}5{,}3{,}1{,}25{,}25\\right] \\]<\/p>\n<p><!-- Text cell --><\/p>\n<div class=\"comment\">Como observamos, coincide con los n\u00famero iniciales de nuestra frase.<\/div>\n<h2>Subespacio generador<\/h2>\n<p>Hoy veremos c\u00f3mo utilizamos maxima para tratar espacios vectoriales. Por ejemplo, podemos determinar la relaci\u00f3n lineal de un conjunto de vectores haciendo transformaciones elementales. <\/p>\n<p>Comencemos con un ejercicio que hicimos anteriormente:<\/p>\n<blockquote><p><strong>Ejercicio:<\/strong> Determinar si \\(\\begin{bmatrix}-3&#038;2&#038;8\\\\ -1&#038;9&#038;3\\end{bmatrix}\\) pertenece al subesapcio \\(S=\\mathbf{Gen}\\left\\{\\begin{bmatrix}-1&#038;0&#038;4\\\\ 1&#038;1&#038;5\\end{bmatrix},\\begin{bmatrix}0&#038;1&#038;-2\\\\ -2&#038;3&#038;-6\\end{bmatrix}\\right\\}\\).\n<\/p><\/blockquote>\n<p><script>\nfunction showHtmlDiv2a61() {\n  var htmlShow2a61 = document.getElementById(\"html-show2a61\");\n  if (htmlShow2a61.style.display === \"none\") {\n    htmlShow2a61.style.display = \"block\";\n  } else {\n    htmlShow2a61.style.display = \"none\";\n  }\n}\n<\/script><\/p>\n<p><button onclick=\"showHtmlDiv2a61()\">Soluci\u00f3n:<\/button><\/p>\n<div id=\"html-show2a61\" style=\"display: none;\">\nRecordemos que es suficiente con considerar la matriz formada por las coordenadas de cada vector respecto de la base can\u00f3nica del conjunto de las matrices 2&#215;3.<\/p>\n<p> <!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i5)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">a<\/span><span class=\"code_operator\">:<\/span><span class=\"code_operator\">[<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">3<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">2<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">8<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">9<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">b<\/span><span class=\"code_operator\">:<\/span><span class=\"code_operator\">[<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">0<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">4<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">5<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">c<\/span><span class=\"code_operator\">:<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">0<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">2<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">2<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">3<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">6<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">M<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">matrix<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">a<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">b<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">c<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_function\">rank<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">M<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }\\begin{bmatrix}-3 &amp; 2 &amp; 8 &amp; -1 &amp; 9 &amp; 3\\\\-1 &amp; 0 &amp; 4 &amp; 1 &amp; 1 &amp; 5\\\\0 &amp; 1 &amp; -2 &amp; -2 &amp; 3 &amp; -6\\end{bmatrix}\\]<\/p>\n<p>\\[{ }2\\]<\/p>\n<\/div>\n<hr>\n<p>Sabemos que un conjunto de vectores \\(\\textbf{v}_1,\\textbf{v}_2,\\ldots,\\textbf{v}_n\\) son linealmente independientes si \\(\\textbf{rank}([\\textbf{v}_1,\\textbf{v}_2,\\ldots,\\textbf{v}_n])=n\\), luego \\(\\textbf{u}\\in \\textbf{Gen}\\{\\textbf{v}_1,\\textbf{v}_2,\\ldots,\\textbf{v}_n\\}\\) si \\(\\textbf{rank}([\\textbf{v}_1,\\textbf{v}_2,\\ldots,\\textbf{v}_n,\\textbf{u}])=n\\).<\/p>\n<p>De este modo, si consideramos \\(A\\in\\mathcal{M}_{(n+1)\\times m}\\) la matriz cuyas filas son \\([\\textbf{v}_1,\\textbf{v}_2,\\ldots,\\textbf{v}_n,\\textbf{u}]\\) y mediante transformaciones elementales obtenemos \\[[I_{n+1}\\, |\\, A] \\sim [P\\, |\\, E],\\] donde \\(E\\) es una matriz con la \u00faltima fila todo ceros, entonces, si \\(P=[p_{ij}]\\), \\[p_{(n+1)1}\\textbf{v}_1+p_{(n+1)2}\\textbf{v}_2+\\ldots+p_{(n+1)n}\\textbf{v}_n=-\\textbf{u}.\\]<\/p>\n<p>Este procedimiento es ampliable a un conjunto  \\(\\textbf{u}_i\\in \\textbf{Gen}\\{\\textbf{v}_1,\\textbf{v}_2,\\ldots,\\textbf{v}_n\\}\\), \\(i\\in I=\\{1,\\ldots,k\\}\\): si \\[[I_{n+k}\\, |\\, A] \\sim [P\\, |\\, E],\\] donde \\(E\\) es una matriz con las filas \\(i>n\\) todas ceros, entonces, \\[-\\textbf{u}_i=\\sum_{j=1}^{n}p_{(n+i)j}\\textbf{v}_j.\\]<\/p>\n<p>Ve\u00e1moslo con algunos de los ejercicio realizados.<\/p>\n<blockquote><p><strong>Ejercicio:<\/strong> \u00bfQuienes ser\u00edan \\(a\\) y \\(b\\),n\u00fameros reales, tales que \\(7X^3-3X^2-X-4\\) es combinaci\u00f3n lineal de \\(-3X^3+X^2-X+2\\), y, \\(-X^3-2X+1\\)?\n<\/p><\/blockquote>\n<p><script>\nfunction showHtmlDiv1b23() {\n  var htmlShow1b23 = document.getElementById(\"html-show1b23\");\n  if (htmlShow1b23.style.display === \"none\") {\n    htmlShow1b23.style.display = \"block\";\n  } else {\n    htmlShow1b23.style.display = \"none\";\n  }\n}\n<\/script><\/p>\n<p><button onclick=\"showHtmlDiv1b23()\">Soluci\u00f3n:<\/button><\/p>\n<div id=\"html-show1b23\" style=\"display: none;\">\nConsideremos los vectores coordenadas de nuestros polinomios:<br \/>\n<!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i4)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">v<\/span><span class=\"code_operator\">:<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">2<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_endofline\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_endofline\">\u2212<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">u<\/span><span class=\"code_operator\">:<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_endofline\">\u2212<\/span><span class=\"code_number\">2<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">0<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_endofline\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">w<\/span><span class=\"code_operator\">:<\/span><span class=\"code_operator\">[<\/span><span class=\"code_endofline\">\u2212<\/span><span class=\"code_number\">4<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_endofline\">\u2212<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_endofline\">\u2212<\/span><span class=\"code_number\">3<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">7<\/span><span class=\"code_operator\">]<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">A<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">addcol<\/span><span class=\"code_operator\">(<\/span><span class=\"code_function\">ident<\/span><span class=\"code_operator\">(<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_function\">matrix<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">u<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">v<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_variable\">w<\/span><span class=\"code_operator\">)<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }\\begin{bmatrix}1 &amp; 0 &amp; 0 &amp; 1 &amp; -2 &amp; 0 &amp; -1\\\\0 &amp; 1 &amp; 0 &amp; 2 &amp; -1 &amp; 1 &amp; -3\\\\0 &amp; 0 &amp; 1 &amp; -4 &amp; -1 &amp; -3 &amp; 7\\end{bmatrix}\\]<\/p>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i6)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">A<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">rowop<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">A<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">2<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">2<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">$<\/span><span class=\"code_endofline\"><br \/><\/span><span class=\"code_variable\">A<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">rowop<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">A<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">3<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">4<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }\\begin{bmatrix}1 &amp; 0 &amp; 0 &amp; 1 &amp; -2 &amp; 0 &amp; -1\\\\-2 &amp; 1 &amp; 0 &amp; 0 &amp; 3 &amp; 1 &amp; -1\\\\4 &amp; 0 &amp; 1 &amp; 0 &amp; -9 &amp; -3 &amp; 3\\end{bmatrix}\\]<\/p>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i7)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">A<\/span><span class=\"code_operator\">:<\/span><span class=\"code_function\">rowop<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">A<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">3<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">2<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_number\">3<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[{ }\\begin{bmatrix}1 &amp; 0 &amp; 0 &amp; 1 &amp; -2 &amp; 0 &amp; -1\\\\-2 &amp; 1 &amp; 0 &amp; 0 &amp; 3 &amp; 1 &amp; -1\\\\-2 &amp; 3 &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; 0\\end{bmatrix}\\]<\/p>\n<p><!-- Code cell --><\/p>\n<table>\n<tr style=\"border: 0px;\">\n<td style=\"width: 70px;vertical-align: top;padding: 1mm;\"><span class=\"prompt\">(%i8)<\/span><\/td>\n<td style=\"vertical-align: top;padding: 1mm;\"><span class=\"input\"><span class=\"code_variable\">w<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_operator\">(<\/span><span class=\"code_operator\">\u2212<\/span><span class=\"code_operator\">(<\/span><span class=\"code_variable\">A<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">3<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">1<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">\u00b7<\/span><span class=\"code_variable\">u<\/span><span class=\"code_operator\">+<\/span><span class=\"code_variable\">A<\/span><span class=\"code_operator\">[<\/span><span class=\"code_number\">3<\/span><span class=\"code_endofline\">,<\/span><span class=\"code_number\">2<\/span><span class=\"code_operator\">]<\/span><span class=\"code_operator\">\u00b7<\/span><span class=\"code_variable\">v<\/span><span class=\"code_operator\">)<\/span><span class=\"code_operator\">)<\/span><span class=\"code_endofline\">;<\/span><\/span><\/td>\n<\/tr>\n<\/table>\n<p>\\[\\left[ 0,0,0,0\\right] \\]<\/p>\n<\/div>\n<hr>\n<blockquote><p><strong>Ejercicio:<\/strong> Sea \\(\\textbf{u}=[7,11,20,-9]\\in Gen\\{[-1,-3,0,1],[3,5,8,-3],[0,-1,2,1]\\}\\), \u00bfcu\u00e1l es la suma de las coordenadas de \\(\\textbf{u}\\) respecto de los vectores del espacio generador al que pertenece?.\n<\/p><\/blockquote>\n<p><script>\nfunction showHtmlDiv1b() {\n  var htmlShow1b = document.getElementById(\"html-show1b\");\n  if (htmlShow1b.style.display === \"none\") {\n    htmlShow1b.style.display = \"block\";\n  } else {\n    htmlShow1b.style.display = \"none\";\n  }\n}\n<\/script><\/p>\n<p><button onclick=\"showHtmlDiv1b()\">Soluci\u00f3n:<\/button><\/p>\n<div id=\"html-show1b\" style=\"display: none;\">\n<iframe loading=\"lazy\" src=\"https:\/\/uploads.jesussoto.es\/maxima\/EjrALGld02.html\" width=\"650\" height=\"300\" allow=\"fullscreen\"><\/iframe>\n<\/div>\n<hr>\n<table id=\"yzpi\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"3\" bgcolor=\"#999999\">\n<tbody>\n<tr>\n<td width=\"100%\"><strong>Ejercicio:<\/strong> Cu\u00e1l es la dimensio\u0301n del subespacio \\(S\\) generado por los vectores (1, \u22121, 0, 2, 1), (2, 1, \u22122, 0, 0), (0, \u22123, 2, 4, 2), (2, 4, 1, 0, 1), (3, 3, \u22124, \u22122, \u22121), (5, 7, \u22123, \u22122, 0)<\/p>\n<tr>\n<td>\n<div id=\"menu-a\">\n<ul>\n<li>3<\/li>\n<li>4<\/li>\n<li>5<\/li>\n<\/ul>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><script>\nfunction showHtmlDiv() {\n  var htmlShow = document.getElementById(\"html-show\");\n  if (htmlShow.style.display === \"none\") {\n    htmlShow.style.display = \"block\";\n  } else {\n    htmlShow.style.display = \"none\";\n  }\n}\n<\/script><\/p>\n<p><button onclick=\"showHtmlDiv()\">Soluci\u00f3n:<\/button><\/p>\n<div id=\"html-show\" style=\"display: none;\">\n<strong>A)<\/strong>. Solo necesitamos verificar que<br \/>\n\\[\\mathbf{rank}\\begin{bmatrix}1&#038; \u22121&#038; 0&#038; 2&#038; 1\\\\ 2&#038; 1&#038; \u22122&#038; 0&#038; 0\\\\ 0&#038; \u22123&#038; 2&#038; 4&#038; 2\\\\ 2&#038; 4&#038; 1&#038; 0&#038; 1\\\\ 3&#038; 3&#038; \u22124&#038; \u22122&#038; \u22121\\\\ 5&#038; 7&#038; \u22123&#038; \u22122&#038; 0\\end{bmatrix}=3\\]\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>En criptograf\u00eda cl\u00e1sica, el Cifrado Hill es un cifrado de sustituci\u00f3n poligr\u00e1fica basado en el \u00e1lgebra lineal. Inventado por Lester S. Hill en 1929, fue el primer cifrado poligr\u00e1fico que era pr\u00e1ctico&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[7],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-algebra","tag-practicas-algebra"],"_links":{"self":[{"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=263"}],"version-history":[{"count":5,"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=\/wp\/v2\/posts\/263\/revisions"}],"predecessor-version":[{"id":335,"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=\/wp\/v2\/posts\/263\/revisions\/335"}],"wp:attachment":[{"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/clases.jesussoto.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}