← Volver a Publicaciones

Álgebra en Ciencias de la Computación: De las Matrices de Transformación a los Cuerpos Finitos en AES

Para muchos estudiantes e ingenieros, el álgebra a menudo se presenta en la universidad como una disciplina puramente teórica de manipulación simbólica. Sin embargo, en las ciencias de la computación, el álgebra no es un ejercicio abstracto: es el motor computacional detrás del renderizado gráfico 3D, el aprendizaje automático y, de forma crítica, la criptografía simétrica y asimétrica moderna.

En este artículo exploramos dos aplicaciones fundamentales del álgebra en la computación práctica: el álgebra lineal aplicada a transformaciones y grafos, y el álgebra abstracta (cuerpos finitos) en el diseño del estándar de cifrado AES.


1. Álgebra Lineal: Matrices, Espacios Vectoriales y Grafos

A nivel de hardware, las computadoras modernas (especialmente CPUs con instrucciones SIMD/AVX y GPUs) están optimizadas específicamente para realizar operaciones de álgebra lineal a velocidades masivas.

A. Matrices de Transformación Homogénea (Gráficos y Visión)

En gráficos por computadora y robótica, la traslación, rotación y escalado de objetos en un espacio tridimensional se representan como multiplicaciones de matrices en coordenadas homogéneas 4D:

$$\begin{pmatrix} x’ \ y’ \ z’ \ 1 \end{pmatrix} = \begin{pmatrix} r_{11} & r_{12} & r_{13} & t_x \ r_{21} & r_{22} & r_{23} & t_y \ r_{31} & r_{32} & r_{33} & t_z \ 0 & 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \ y \ z \ 1 \end{pmatrix}$$

Esta formulación algebraica permite componer decenas de transformaciones espaciales complejas en una única matriz precalculada, reduciendo millones de operaciones geométricas a simples productos punto en paralelo.

B. Matrices de Adyacencia y Laplaciana en Algoritmos de Redes

Una red informática o un grafo social $G = (V, E)$ puede expresarse algebraicamente mediante su matriz de adyacencia $A$:

$$A_{ij} = \begin{cases} 1 & \text{si hay arista entre el nodo } i \text{ y } j \ 0 & \text{en caso contrario} \end{cases}$$

  • La potencia $A^k$ calcula instantáneamente el número de caminos de longitud $k$ entre cualquier par de nodos.
  • El cálculo de autovalores y autovectores (Spectral Graph Theory) de la matriz Laplaciana $L = D - A$ permite particionar redes, detectar comunidades y optimizar el enrutamiento de paquetes en topologías distribuidas.

2. Álgebra Abstracta en Criptografía: Campos de Galois $GF(2^8)$

En criptografía defensiva, el álgebra abstracta resuelve un problema fundamental: ¿cómo podemos realizar operaciones matemáticas sobre bytes de datos de tal forma que nunca se produzca desbordamiento (overflow) ni pérdida de información, garantizando reversibilidad perfecta?

La respuesta es la aritmética en Cuerpos Finitos de Galois, específicamente $GF(2^8)$, el corazón algebraico del algoritmo de cifrado AES (Advanced Encryption Standard / Rijndael).

+-------------------------------------------------------------------------------+
|                      ESTRUCTURA DE UNA RONDA AES-128                          |
+-------------------------------------------------------------------------------+
|                                                                               |
|   [ Entrada de 16 Bytes (Matriz de Estado 4x4) ]                             |
|                           |                                                   |
|                           v                                                   |
|             +---------------------------+                                     |
|             |        SubBytes           | <--- Inversión multiplicativa en    |
|             |  (Caja de Sustitución S)  |      el Cuerpo Finito GF(2^8)       |
|             +---------------------------+                                     |
|                           |                                                   |
|                           v                                                   |
|             +---------------------------+                                     |
|             |        ShiftRows          | <--- Permutación cíclica            |
|             +---------------------------+                                     |
|                           |                                                   |
|                           v                                                   |
|             +---------------------------+                                     |
|             |        MixColumns         | <--- Multiplicación matricial sobre |
|             |                           |      el polinomio m(x) en GF(2^8)   |
|             +---------------------------+                                     |
|                           |                                                   |
|                           v                                                   |
|             +---------------------------+                                     |
|             |       AddRoundKey         | <--- Operación XOR (Suma en GF(2))  |
|             +---------------------------+                                     |
|                                                                               |
+-------------------------------------------------------------------------------+

¿Por qué $GF(2^8)$ en lugar de la aritmética entera ordinaria?

Un byte puede representar 256 valores posibles ($0$ a $255$). En la aritmética común, si sumas $200 + 100$, obtienes $300$, lo que desborda el byte y requiere truncamiento ($300 \pmod{256}$). Esto destruye propiedades matemáticas esenciales como la existencia de inversos multiplicativos únicos.

En el campo finito $GF(2^8)$, cada byte se interpreta como un polinomio de grado 7 con coeficientes binarios:

$$b_7 x^7 + b_6 x^6 + b_5 x^5 + b_4 x^4 + b_3 x^3 + b_2 x^2 + b_1 x + b_0 \quad \text{donde } b_i \in {0, 1}$$

  • La Suma en $GF(2^8)$: Es equivalente a la suma de polinomios con coeficientes en módulo 2, lo que a nivel de hardware se ejecuta como una simple operación XOR a nivel de bits: $$(x^4 + x + 1) + (x^4 + x^2 + x) = x^2 + 1 \iff \texttt{0x13} \oplus \texttt{0x16} = \texttt{0x05}$$
  • La Multiplicación en $GF(2^8)$: Es la multiplicación polinomial ordinaria reducida módulo el polinomio irreducible primo de Rijndael: $$P(x) = x^8 + x^4 + x^3 + x + 1 \quad (\texttt{0x11B})$$

Esta estructura algebraica garantiza que cada byte no nulo tenga un inverso multiplicativo único $b^{-1}$ tal que $b \cdot b^{-1} \equiv 1 \pmod{P(x)}$, eliminando cualquier correlación lineal entre el texto plano y el texto cifrado.


3. Conclusión

El álgebra en la informática moderna no es una abstracción decorativa:

  1. El álgebra lineal provee la representación geométrica y matricial necesaria para manipular datos multidimensionales y grafos a escala masiva.
  2. El álgebra abstracta (grupos, anillos y cuerpos finitos) suministra las garantías formales de biyección e irreversibilidad computacional que protegen las comunicaciones cifradas en todo internet.

Comprender estas estructuras matemáticas transforma la programación: dejas de ver los datos como simples arreglos de memoria y comienzas a tratarlos como espacios vectoriales y grupos algebraicos rigurosos.