Elementos GF(28)
Un campo finito, a veces también llamado campo de Galois, es un conjunto con un número finito de elementos. A grandes rasgos, un campo de Galois es un conjunto finito de elementos en los que podemos sumar, restar, multiplicar e invertir. Antes de introducir la definición de un campo, primero se necesita el concepto de una estructura algebraica más simple, un grupo.
Grupo
Un grupo es un conjunto de elementos junto con una operación que combina dos elementos de . Un grupo tiene las siguientes propiedades:
- La operación de grupo es cerrada. Es decir, para todo , , ∈ , sostiene que .
- La operación de grupo es asociativa. Es decir, para todo , , .
- Existe un elemento , llamado elemento neutro (o elemento de identidad), tal que para todo .
- Para cada existe un elemento , llamado inverso de , tal que .
- Un grupo es conmutativo si, además, para todo , .
Para tener las cuatro operaciones aritméticas básicas (es decir, suma, resta, multiplicación, división) en una estructura, necesitamos un conjunto que contenga un grupo aditivo y un grupo multiplicativo. Esto es lo que llamamos un campo.
Campo
Un campo es un conjunto de elementos con las siguientes propiedades:- Todos los elementos de forman un grupo aditivo con la operación de grupo "+" Y el elemento neutro .
- Todos los elementos de excepto forman un grupo multiplicativo con la operación de grupo y el elemento neutro .
- Cuando las dos operaciones del grupo están mezcladas, la ley de distributividad se mantiene, es decir, para todos , , .
Por ejemplo. El conjunto de números reales es un campo con el elemento neutro para el grupo aditivo y el elemento neutro para el grupo multiplicativo. Cada número real tiene un inverso aditivo, llamado , y cada elemento no nulo a tiene un inverso multiplicativo .
En la criptografía, casi siempre se está interesado en campos con un número finito de elementos, que llamamos campos finitos o campos de Galois. El número de elementos en el campo se denomina orden o cardinalidad del campo. Es de importancia fundamental el siguiente teorema:
Un campo con orden sólo existe si es una potencia prima, es decir, , para algún número entero positivo y entero primo . es llamado característica del campo finito.
Este teorema implica que existen, por ejemplo, campos finitos con 11 elementos, o con 81 elementos (desde ) o con 256 elementos (ya que , y 2 es un primo). Sin embargo, no hay campo finito con 12 elementos desde , y 12 no es, por lo tanto, una potencia prima.
Campos primos
Los ejemplos más intuitivos de campos finitos son campos de orden primo, es decir, campos con . Los elementos del campo pueden ser representados por enteros . Las dos operaciones del campo son la adición entera modular y la multiplicación entera módulo .
Sea un primo. El anillo entero se denomina y se denomina campo primo, o como campo Galois con un número primo de elementos. Todos los elementos no nulos de tienen un inverso. La aritmética en se hace módulo
Para hacer la aritmética en un campo primo, se deben seguir las reglas para los anillos enteros: La adición y la multiplicación se hacen módulo , el aditivo inverso de cualquier elemento está dado por , y el inverso multiplicativo de cualquier elemento no nulo se define como .
Por ejemplo. Consideramos el campo finito . Las tablas a continuación describen cómo sumar y multiplicar dos elementos cualquiera, así como el inverso aditivo y multiplicativo de los elementos del campo. Utilizando estas tablas, podemos realizar todos los cálculos en este campo sin utilizar explícitamente la reducción modular.
Un campo primo muy importante es , que es el campo finito más pequeño que existe. Ahora veamos las tablas de multiplicación y suma para el campo. Ejemplo. Consideremos el campo finito pequeño . La aritmética se hace simplemente módulo 2, produciendo las siguientes tablas aritméticas:
Campos de extensión GF(2m)
En AES el campo finito contiene 256 elementos y se denomina . Este campo fue elegido porque cada uno de los elementos de campo puede ser representado por un byte. Para las transformaciones S-Box y MixColumn, AES trata cada byte como un elemento del campo y manipula los datos realizando la aritmética en este campo finito.
En el campo , que se utiliza en AES, cada elemento se representa así:
Observe que hay exactamente tales polinomios. El conjunto de estos 256 polinomios es el campo finito . También es importante observar que cada polinomio puede ser simplemente almacenado en forma digital como un vector de 8 bits . En particular, no tenemos que almacenar los factores , etc. Está claro que de las posiciones de los bits, a que potencia pertenece cada coeficiente.
Referencias
- Christof Paar, Jan Pelzl. (2010). Understanding Cryptography. Berlin Heidelberg: Springer.