SciELO - Scientific Electronic Library Online

 
vol.15 número1Buenas prácticas para prevenir los riesgos de la eficiencia del desempeño en los productos de software índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Cubana de Ciencias Informáticas

versión On-line ISSN 2227-1899

Rev cuba cienc informat vol.15 no.1 La Habana ene.-mar. 2021  Epub 31-Mar-2021

 

Artículo original

Algoritmo para la generación de polinomios primitivos sobre extensiones de campos finitos de característica dos

An algorithm for the generation of primitive polynomials over finite field’s extensions of characteristic two

0000-0002-5226-5946Evaristo José Madarro Capó1  , 0000-0002-6685-8013Oristela Cuellar Justiz2  * 

1 Universidad de La Habana. Instituto de Criptografía. Dirección postal. ejmadarro@nauta.cu

2 Universidad de Ciencias Informáticas. Dirección postal. oristelacj@uci.cu

RESUMEN

En este trabajo se presenta un algoritmo para la generación de polinomios primitivos sobre extensiones de campos finitos de característica dos. Para la construcción del algoritmo se utilizan algunos conceptos de la teoría de números y los campos finitos como los cosetos q-ciclotómicos y los elementos primitivos. Además, se efectúa un análisis de la complejidad computacional del algoritmo expuesto. Finalmente, se realiza una comparación entre el algoritmo desarrollado y varios algoritmos reportados en la literatura, para la construcción determinística de polinomios primitivos.

Palabras-clave: polinomios primitivos; extensiones de campos finitos

ABSTRACT

In this paper an algorithm for primitive polynomial generation over finite field extension of characteristic 2 is presented. For the construction of the algorithm some concepts of number theory and finite fields such as q-cyclotomic cosets and primitive elements are used. A computational complexity analysis over the exposed algorithm it’s carried out. Finally, a comparison between the developed algorithm and several algorithm reported in the literature, for primitive polynomials generation, is performed.

Key words: primitive polynomial; finite fields extension

INTRODUCCIÓN

La teoría de los campos finitos (Lidl, Niederreiter, 1994), (Mullen, Panario, 2013) es una rama del álgebra moderna que desempeña un papel importante en diversas aplicaciones dentro de las áreas de ingeniería eléctrica (Golomb, Gong, 2005), ciencias de la computación (Menezes, Van Oorschot, Vanstone, 1997), matemáticas (Mullen, Panario, 2013), entre otras.

En las últimas décadas los campos finitos han sido utilizados como una herramienta poderosa en la construcción de sistemas computacionales con aplicación específica en diversas áreas tales como la criptografía (Menezes, Van Oorschot, Vanstone, 1997) y la codificación algebraica (MacWilliams, Sloane, Sloane, 1983) . Entre las concepciones más importantes sobre campos finitos se encuentra la teoría de los polinomios sobre los campos finitos, la cual resulta fundamental para la investigación de las estructuras algebraicas de los campos finitos y sus aplicaciones. La utilización de una clase especial de polinomios, los llamados polinomios primitivos, es de gran utilidad en el diseño de algunos componentes de algoritmos criptográficos (Daemen, Rijmen, 2002) debido a sus características matemáticas (Junod, Vaudenay, 2004).

En los sistemas de cifrado en flujo estos se utilizan como polinomio característico en los registros de desplazamiento con retroalimentación lineal (Golomb, 1982) para la generación de sucesiones recurrentes lineales de período máximo. El valor del período de estas sucesiones está determinado por las propiedades de su polinomio mínimo. Para que la sucesión recurrente lineal tenga período máximo, es necesario y suficiente que su polinomio mínimo sea un polinomio primitivo.

Por otro lado, en los sistemas de cifrado en bloques, las matrices MDS (Maximum Distance Separable) (Junod, Vaudenay, 2004) son uno de los componentes más utilizados en los últimos diseños de estándares de cifrado (Daemen, Rijmen, 2002) debido a que garantizan altos valores de difusión. Los polinomios primitivos sobre extensiones de campos finitos son utilizados en la construcción de este tipo de matrices (Freyre, Díaz, Diaz, Perez, 2014).

Además, los polinomios primitivos son útiles en la teoría de la codificación algebraica (MacWilliams, Sloane, 1983) debido que a partir de estos se construyen códigos correctores de errores como los códigos Goppa (Valentijn, 2015), utilizados en la construcción de algoritmos asimétricos resistentes a la computación post cuántica.

En la literatura existen varios algoritmos para la generación de polinomios primitivos sobre campos finitos (Madarro, 2017). Algunos de estos algoritmos poseen una complejidad de orden cúbico (Shoup, 2009) o superior (Saxena, McCluskey, 2004). Mientras el propuesto en (Rifà, Borrell,1995) basa su diseño a la utilización de hardware específico y el presentado en (da Silva Filho, Lima Filho, 1993) hace depender su complejidad en la selección de algoritmos para la factorización de polinomios.

Otras interesantes propuestas son los algoritmos propuestos en (Shoup, 1999) y en (Di Porto, Guida, Montolivo, 1992), ambos están basados en la teoría de los registros de desplazamiento y las sucesiones recurrentes lineales. No obstante, existe otra vía teórica relacionada con la generación de polinomios primitivos basada en la obtención de los cosetos q-ciclotómicos y la construcción de polinomios mínimos (Gordon, 1976) (Lidl, Niederreiter, 1994) (Shoup, 2009) (Shoup, 1999) que permite un sencillo acople con cualquier esquema de software y un costo computacional razonable. En (Rifà, Borrell,1995), cuya propuesta posee la mejor complejidad, se utiliza una idea similar, pero desde un punto de vista de hardware.

En este trabajo se presenta, utilizando conceptos y propiedades del álgebra en campos finitos y la teoría de números, un algoritmo para la generación de polinomios primitivos sobre campos finitos

Preliminares

Un polinomio se dice que es irreducible sobre Fq si 𝑓 tiene grado positivo y 𝑓 = 𝑏𝑐 con 𝑏, 𝑐 ∈ .implica que 𝑏 o 𝑐 es un polinomio constante.(Lidl, Niederreiter, 1994) (Mullen, Panario, 2013).

Si f es un polinomio irreducible en de grado m, entonces 𝑓 tiene una raíz 𝛼 en. Además, todas las raíces de f son simples y están dadas por los m distintos elementos de. (Lidl, Niederreiter, 1994)

Sea B un elemento de el polinomio mínimo de B sobre es el polinomio mónico de menor grado que tiene a B como raíz. Sea el polinomio mínimo de entonces:

El polinomio es irreducible sobre.

El grado de = d con d divisor de m y sus raíces son B y sus conjugados respecto a

De esta manera, se puede escribir como

Para, el menor entero e tal que se denomina orden de a y se denota por ord(a). Si ord(a)= , entonces a es llamado elemento primitivo y todos los elementos distintos de cero de pueden ser expresados como potencias de a. Los elementos primitivos de son los ak tal que.

Un polinomio f(x) de grado m es llamado primitivo sobre Fq si es el polinomio mínimo sobre Fq de un elemento primitivo en. Sea f(x) un polinomio de grado m sobre Fq’ el polinomio reverso f*(x) de f(x)está definido como. Si f(x) es irreducible sobre es irreducible. Si f(x) es primitivo, su reverso también lo es. (Lidl, Niederreiter, 1994) (Mullen, Panario, 2013)

Sea a es un elemento primitivo de Sea el polinomio mínimo del elemento ak. Utilizando los cosetos ciclotómicos modulo qm-1, denotados como, donde mk es el menor entero tal que, es posible escribir la siguiente caracterización de polinomios irreducibles y primitivos:

Todos los polinomios, tal que CCk tiene cardinalidad m, constituyen los polinomios irreducibles distintos de grado m sobreFq.

Los polinomios irreducibles, tal que, son todos los polinomios primitivos distintos de grado m sobre Fq.

Generación de polinomios primitivos

La idea del algoritmo (Madarro, 2017) es basar el problema de la generación de polinomios primitivos sobre extensiones de campos finitos en la construcción de los cosetos q-ciclotómicos módulo qm-1.

Donde d*(x) es el polinomio mónico reverso del polinomio d(x) y mcd(.) es la función que calcula el máximo común divisor. Se puede observar que el grado m del polinomio de entrada g irreducible sobre Fq utilizado para definir el campo finito coincide con el grado de los polinomios primitivos que se desean generar. Por otro lado, si se desea generar una cantidad fija de polinomios primitivos, solo es necesario construir una condición de parada para 𝑥 cuando su valor llegue a la cantidad deseada.

La obtención de los cosetos q-ciclotómicos se realiza mediante la obtención del conjunto Ep de los números primos relativos con el orden del grupo multiplicativo Fqm* y luego determinar, para cada número , el conjunto módulo qm-1. (Cuellar, Morgado, Sosa 2015)

Un problema común es construir cosetos q-ciclotómicos repetidos. Para minimizar la ocurrencia de este caso se verifica para cada k si es coseto líder, puesto que el coseto líder es el menor de los elementos del coseto q- ciclotómico. Para realizar el paso 4 del algoritmo y determinar si un entero positivo k es un coseto líder se utilizó el siguiente algoritmo.

Sea el polinomio primitivo asociado al coseto . En el coseto q-ciclotómico cada elemento es el inverso multiplicativo de algún elemento del coseto, luego el polinomio asociado a este coseto q-ciclotómico es el polinomio reverso de f y por lo tanto también es primitivo.

De esta manera, encontrando cada elemento se estarían determinando dos cosetos 𝑞-ciclotómicos y a su vez dos polinomios primitivos. Luego, para obtener todos los, solo es necesario recorrer la mitad del espacio de búsqueda.

Luego de obtenido cada coseto q-ciclotómico, se realiza el cómputo del polinomio primitivo a partir de los elementos de, cuyos exponentes integran el coseto q-ciclotómico, un elemento primitivo. Esto es debido a que los elementos que pertenecen a s constituyen las raíces de un polinomio primitivo de grado m sobre Fq. Así, cada polinomio primitivo de grado m puede obtenerse mediante la siguiente expresión.

donde se corresponde con el polinomio mínimo del elemento B.

Para el cómputo del polinomio mínimo (paso 9 del Algoritmo 1) normalmente se utilizan o(m2)operaciones sobre. No obstante, en (Gordon, 1976) se proporciona una forma de obtener el polinomio mínimo de una forma más eficiente en cuanto a la cantidad de operaciones, mediante la expresión

Utilizando el Algoritmo 3 basado en la teoría descrita en (Gordon, 1976) se realizan solo o(m) operaciones sobre.

Complejidad computacional

Los pasos 6 y 9 son los de mayor costo computacional en el Algoritmo 1, correspondiente al cálculo del coseto 𝑞-ciclotómico y el cómputo del polinomio mínimo, respectivamente. Es conocido que los elementos del conjunto s se pueden obtener en O(m log q) operaciones sobre (Von Zur Gathen, Panario, 2001) (Shoup, 2009), mediante sucesivas potencias a la q y un costo mínimo de almacenamiento, mientras el polinomio mínimo en O(m) operaciones sobre utilizando el método propuesto en (Gordon, 1976).

Para el cómputo de polinomios primitivos se utilizó la representación en base polinomial de sobre Fq, donde cada elemento de es representado como un polinomio en de grado menor que m. En tal representación el costo de ejecución del Algoritmo 1 está dado por O(m log q M) operaciones sobre Fq, donde M es el costo en operaciones de la multiplicación. Utilizando el mejor método de multiplicación (Schönhage, Strassen, 1971), con operaciones sobre Fq, se realizan operaciones sobre Fq. En este trabajo, por lo que el costo de ejecución se puede expresar comooperaciones sobre Fq.

RESULTADOS Y DISCUSIÓN

En la Tabla 1 se presenta un resumen de la complejidad computacional, en base a la cantidad de operaciones sobre Fq, de los algoritmos referenciados incluyendo el algoritmo propuesto.

Tabla 1 de los algoritmos para la generación de polinomios primitivos. 

Donde t es el número de factores de y k es el exponente de un elemento primitivo del campo finito Fq. En el caso del algoritmo (da Silva Filho, Lima Filho, 1993) la complejidad puede sustituirse en dependencia del algoritmo que se utilice para factorizar polinomios sobre campos finitos (Von Zur Gathen, Panario, 2001).

Cuando la complejidad del Algoritmo 1 es comparable con la del obtenido (Di Porto, Guida, Montolivo, 1992). Mientras que en el caso el Algoritmo 1 es comparable a la complejidad del algoritmo en (Shoup, 2009) .

A menudo es necesario generar polinomios primitivos de varios grados sobre un mismo campo finito. Este es uno de los escenarios que favorece la utilización del Algoritmo 1 puesto que al fijar el campo finito, el grado m de los polinomios es el valor que determina el costo de generar los polinomios primitivos deseados al poder considerar n constante. Este escenario es una aplicación práctica real debido a que, por ejemplo, los algoritmos criptográficos trabajan sobre un campo finito específico fijo (Daemen, Rijmen, 2002).

En la Figura 1 se puede observar cómo se comporta la complejidad del algoritmo presentado en contraste con la complejidad correspondiente a los algoritmos (Shoup, 2009) y (Di Porto, Guida, Montolivo, 1992) sobre el campo finito fijado F2b para varios valores de m y k.

Fig.1 Análisis comparativo de costo computacional para

Se observa como existen valores de m y k a partir de los cuales el costo computacional del Algoritmo 1 es inferior a los casos (Shoup, 2009) y (Di Porto, Guida, Montolivo, 1992). Estos resultados muestran la importancia de seleccionar adecuadamente el valor de k en (Di Porto, Guida, Montolivo, 1992).

La Tabla 2 muestra el tiempo en segundos de la ejecución del Algoritmo 1, sin la utilización de tablas precomputadas para las operaciones aritméticas sobre campos finitos F2n, variando la cardinalidad n, la cantidad x de polinomios primitivos generados y el grado m de los polinomios primitivos a generar. Lo experimentos se realizaron en una Intel Pentium Dual Core de 1.3 Ghz.

Tabla 2 Tiempo promedio de ejecución del algoritmo propuesto en segundos. 

La cardinalidad de los campos finitos aumenta exponencialmente en base a la dimensión n del campo finito, de esta manera un aumento en la dimensión n del campo finito influye en el tiempo requerido para generar los polinomios primitivos. No obstante, la mayor influencia, basado en la propia complejidad del Algoritmo 1, es el aumento del grado m de los polinomios primitivos a generar (Ver Tabla 2).

CONCLUSIONES

En el presente trabajo se propuso un algoritmo para la obtención de polinomios primitivos sobre extensiones de campos finitos de característica dos. Las bases teóricas sobre las cuales se basa el diseño del algoritmo están determinadas por la teoría de los cosetos q-ciclotómicos y los elementos primitivos para la construcción de polinomios mínimos. Para la construcción del algoritmo se transformó el problema de la búsqueda de polinomios primitivos sobre extensiones de campos finitos en la obtención de los cosetos q-ciclotómicos sobre campos finitos, el cual consiste en la búsqueda de los números primos relativos con el orden del grupo multiplicativo de Fqm.

Se determinó la complejidad del algoritmo presentado y se comparó con los algoritmos reportados en la literatura. El algoritmo propuesto tiene una complejidad inferior a varios algoritmos reportados en la literatura y mejora a otros bajo las condiciones descritas. Este algoritmo constituye una herramienta importante en aplicaciones prácticas pues puede ser implementada sin dificultad en software y puede ser utilizada para polinomios primitivos sobre extensiones de campos finitos.

En trabajos futuros se investigará el uso de bases normales y torres de campos finitos sobre el Algoritmo 1 con el objetivo de mejorar su complejidad computacional. Así como, realizar la implementación en paralelo para disminuir su tiempo de ejecución.

REFERENCIAS

Cuellar, Oristela, Morgado, Eberto R. And Sosa, Guillermo, 2015. Relación Entre El Automorfismo De Frobenius Y Los Homomorfismos De Inmersión Del Campo F P N En El Campo F 2 M . Revista Ciencias Matemáticas. Cuba. 2015. Vol. Vol 29, P. 127-130. [ Links ]

Da Silva Filho, Joel Guilherme And Lima Filho, Dimas De Queiroz, 1993. Construção De Polinômios Primitivos Sobre Corpos Finitos F Q . In: 11no Simposio Brasileño De Telecomunicaiones. 1993. P. 497-502. [ Links ]

Daemen, Joan And Rijmen, Vincent, 2002. The Design Of Rijndael.Springer.2002. Di Porto, A., Guida, F. And Montolivo, E., 1992. Fast Algorithm For Finding Primitive Polynomials Over F Q . Electronics Letters. 1992. Vol. 28, No. 2, P. 118-120. [ Links ]

Freyre, Pablo, Díaz, Nelson, Diaz, Rafael And Perez, Claudia, 2014. Random Generation Of Matrixes Mds. In: Ctcrypt 2014. 2014. [ Links ]

Golomb, S. W., 1982. Shift Register Sequences. Aegean Park Press. [ Links ]

Golomb, Solomon W. And Gong, Guang, 2005. Signal Design For Good Correlation: For Wireless Communication, Cryptography, And Radar. Cambridge University Press. Isbn 0-521-82104-5. [ Links ]

Gordon, John A., 1976. Very Simple Method To Find The Minimum Polynomial Of An Arbitrary Nonzero Element Of A Finite Field. Electronics Letters. 1976. Vol. 12, No. 25, P. 663-664. [ Links ]

Junod, Pascal And Vaudenay, Serge, 2004. Perfect Diffusion Primitives For Block Ciphers. In: International Workshop On Selected Areas In Cryptography. Springer. 2004. P. 84-99. [ Links ]

Lidl, Rudolf And Niederreiter, Harald, 1994. Introduction To Finite Fields And Their Applications. Cambridge University Press. [ Links ]

Macwilliams, Florence J., Sloane, Neil J. And Sloane, Neil J., 1983. The Theory Of Error-Correcting Codes: North Holland Mathematical Library.1983. [ Links ]

Madarro, Evaristo José, 2017. Generación De Polinomios Primitivos Sobre Extensiones De Campos Finitos F 2 N . Universidad Central “Marta Abreu” De Las Villas. Facultad De Matemática. [ Links ]

Menezes, Alfred J., Van Oorschot, Paul C. And Vanstone, Scott A., 1997. Handbook Of Applied Cryptography Crc Press. Boca Raton. 1997. [ Links ]

Mullen, Gary L And Panario, Daniel, 2013. Handbook Of Finite Fields. Crc Pres.Taylor & Francis Group. [ Links ]

Rifà, Josep And Borrell, Joan, 1995. A Fast Algorithm To Compute Irreducible And Primitive Polynomials In Finite Fields. Mathematical Systems Theory. 1995. Vol. 28, No. 1, P. 13-20. [ Links ]

Saxena, Nirmal R. And Mccluskey, Edward J., 2004. Primitive Polynomial Generation Algorithms Implementation And Performance Analysis. Crc Technical Report 2004. 2004. [ Links ]

Schönhage, Arnold And Strassen, Volker, 1971. Schnelle Multiplikation Grosser Zahlen. Computing. 1971. Vol. 7, No. 3-4, P. 281-292. [ Links ]

Shoup, Victor, 1999. Efficient Computation Of Minimal Polynomials In Algebraic Extensions Of Finite Fields. In: Proceedings Of The 1999 International Symposium On Symbolic And Algebraic Computation. 1999. P. 53-58. [ Links ]

Shoup, Victor, 2009. A Computational Introduction To Number Theory And Algebra. Cambridge University Press. Isbn 0-521-51644-7. [ Links ]

Valentijn, Ashley, 2015. Goppa Codes And Their Use In The Mceliece Cryptosystems. 2015. [ Links ]

Von Zur Gathen, Joachim And Panario, Daniel, 2001. Factoring Polynomials Over Finite Fields: A Survey. Journal Of Symbolic Computation. 2001. Vol. 31, No. 1, P. 3-17. [ Links ]

Contribuciones de los autores

2Conceptualización: Evaristo José Madarro Capó, Oristela Cuellar Justiz

3Curación de datos: Evaristo José Madarro Capó

4Análisis formal: Evaristo José Madarro Capó, Oristela Cuellar Justiz

5Adquisición de fondos: No procede

6Investigación: Evaristo José Madarro Capó, Oristela Cuellar Justiz

7Metodología: Evaristo José Madarro Capó, Oristela Cuellar Justiz

8Administración del proyecto: Evaristo José Madarro Capó, Oristela Cuellar Justiz

9Recursos: Evaristo José Madarro Capó, Oristela Cuellar Justiz

10Software: Evaristo José Madarro Capó

11Supervisión: Oristela Cuellar Justiz

12Validación: Evaristo José Madarro Capó

13Visualización: Evaristo José Madarro Capó

14Redacción - borrador original: Evaristo José Madarro Capó

15Redacción - revisión y edición: Oristela Cuellar Justiz

Recibido: 23 de Diciembre de 2020; Aprobado: 30 de Enero de 2021

*Autor para la correspondencia. (oristelacj@uci.cu)

Los autores de este artículo autorizan la distribución y uso de su artículo.

Creative Commons License