Alfonso Gutirrez, Violeta Migalln, Jos Penads Hctor Migalln
Dpto. de Ciencia de la Computacin e Inteligencia Artificial Dpto. de Fsica y Arquitectura de Computadores Universidad de Alicante Universidad Miguel Hernndez 03080 Alicante 03202 Elche (Alicante) e-mail: algutlan@hotmail.com e-mail: hmigallon@umh.es violeta@dccia.ua.es jpenades@dccia.ua.es
Resumen capaz de reconocer los pasos que se han seguido
para su ejecucin, de manera que se obtiene un Los contenidos de matemtica discreta en las importante valor pedaggico. titulaciones de informtica incluyen una parte En las siguientes secciones describiremos el relativa a aritmtica entera y modular. En este contenido de ArtEM, estudiando cada uno de artculo presentamos una herramienta que ha sus mens por separado. sido diseada para la realizacin de las prcticas de dicha parte y que actualmente se est 2. Men Euclides utilizando en la asignatura Matemtica Discreta de la Universidad de Alicante. En este men se desarrolla el algoritmo de Euclides para el clculo del mximo comn 1. Introduccin divisor de dos enteros. Adems de describir el algoritmo de forma genrica se tiene la opcin La herramienta ArtEM (Aritmtica Entera y de mostrar todos los clculos del propio Modular) [3], es una aplicacin informtica algoritmo, tal y como se muestra en la Figura 1. programada en Visual Basic [5] y desarrollada con el fin de ser utilizada en las prcticas de cualquier asignatura que incluya como tpicos los relacionados con la aritmtica entera y modular [1], [2], [4]. Est estructurada en 5 mens bsicos: ? Euclides. ? Ecuaciones diofnticas. ? Nmeros primos. ? Aritmtica modular. ? Aplicacin a la criptografa. Los tres primeros mens estn dedicados a la aritmtica entera, el cuarto men proporciona clculos bsicos en la aritmtica modular como los clculos del representante de clase, inverso de un elemento, funcin de Euler y potencias. El quinto men constituye una aplicacin a la criptografa centrndose en dos criptosistemas, uno de clave privada y otro de clave pblica. Todos los algoritmos disponibles en ArtEM se desarrollan de tal forma que el usuario es Figura 1. Algoritmo de Euclides 2 No escribir nada
3. Men ecuaciones diofnticas opciones que presenta este men vienen
indicadas en la Figura 3. En este men se ofrece la posibilidad de resolver ecuaciones diofnticas, es decir, ecuaciones de la forma ax+by=c, donde a, b, c son enteros y x, y son las incgnitas que tambin son nmeros enteros. Adems de mostrar una descripcin de los resultados tericos necesarios para la correcta resolucin de estas ecuaciones, se muestra el algoritmo necesario para el clculo de una solucin particular de una ecuacin Figura 3. Opciones del men nmeros primos diofntica. En la ejecucin del algoritmo, el usuario debe introducir los valores de a, b y c, obteniendo una solucin particular de la 5. Men aritmtica modular ecuacin diofntica correspondiente -cuya traza puede ser consultada- y la solucin general. Presentamos en este men diversos clculos Como muestra presentamos la solucin de la bsicos relacionados con la aritmtica modular. ecuacin 2700x + 1500y = 234000 en la Figura stos son el clculo del representante de clase 2. en el conjunto de los enteros congruentes mdulo n, que representamos por Zn, el clculo del inverso en Zn, el clculo de la funcin de -78 Euler y el clculo de potencias en Zn. Como 2700 muestra presentamos el clculo de la potencia 156 [5]75 en Z23. El programa identifica que el 1500 mcd(5,23)=1 y por tanto, como el valor de la 23400 funcin de Euler en 23 es 22, se tiene que X=-78 + 5k Y=156 - 9k [5]22=[1]. As, como [5]75=([5]22)3 [5]9 slo Para todo entero k ser necesario calcular [5]9 = [5]8 [5], que en este caso es [11]. Mostramos, en la Figura 4, la salida que se obtiene de la ejecucin correspondiente a la traza del algoritmo.
Figura 2. Ecuaciones diofnticas
4. Men nmeros primos
Se desarrollan en este men procedimientos para
crear una lista de nmeros primos, averiguar si un nmero entero es primo y factorizar un entero en producto de sus primos. Estos algoritmos vienen acompaados de su descripcin formal. La complejidad de estos algoritmos limita su uso a enteros pequeos. Las Figura 4. Clculo de potencias en Zn IX Jornadas de Enseanza Universitaria de la Informtica 3
6. Men aplicacin a la criptografa
En este men pretendemos familiarizarnos con
ciertas aplicaciones de la aritmtica modular a la criptografa. Tiene dos partes claramente diferenciadas: la eleccin del alfabeto a utilizar y la eleccin del sistema criptogrfico. En lo que se refiere a la eleccin del alfabeto, la aplicacin tiene preestablecidos una serie de alfabetos que pueden ser seleccionados con el correspondiente men, como muestra la Figura 5.
Figura 6. Definicin de un nuevo alfabeto
Por su parte, el criptosistema de clave
pblica corresponde con el cdigo RSA. Como ejemplo de utilizacin de la aplicacin ArtEM para este tipo de problemas, vamos a suponer que se ha seleccionado el alfabeto predefinido formado por los caracteres de la A a la Z, de la a a la z, y el espacio en blanco. Esto hace un total de 55 caracteres por lo que trabajaremos en Z55. Vamos a realizar una codificacin utilizando el criptosistema de clave privada. En primer lugar el programa nos pedir Figura 5. Eleccin del alfabeto r y s. Como mcd(r,55) debe ser 1, el programa Tambin se permite crear un alfabeto propio nos indica posibles valores de r a partir de un e incluso leerlo de disco si previamente se haba valor mnimo que el usuario introduce. creado. Para crear un alfabeto lo nico que se Si por ejemplo seleccionamos s=8 y r=6, debe hacer es ir asignando valores numricos a podremos, a travs del botn continuar, iniciar cada uno de los caracteres que queremos que una codificacin con estas claves. La Figura 7 formen parte de nuestro alfabeto. El mdulo con muestra la codificacin de la frase Esto es una el que se trabajar en la codificacin y prueba usando este sistema criptogrfico de descodificacin vendr dado en funcin del clave privada y las claves anteriores. La primera valor numrico asignado mayor. Como ejemplo, ventana contiene la frase en cuestin que en la Figura 6, mostramos el alfabeto queremos codificar, la segunda ventana contiene {A,B,C,D,E,F,G} al que se le han asociado las la transcripcin inmediata segn el alfabeto que equivalencias numricas {11,16,1,23,20,17,24} hayamos elegido y que se encuentra en la tabla respectivamente y que en la Figura 5 viene de conversin, la tercera ventana contiene los definido con el nombre de mialfabeto. valores numricos de la codificacin y la ltima Ya sea con un alfabeto creado por el usuario ventana ya reproduce los caracteres codificados. o con un alfabeto predefinido por la aplicacin As, con este sistema criptogrfico la frase se dispone de dos tipos de criptosistemas: uno Esto es una prueba ha quedado codificada de clave privada y otro de clave pblica. El como fJOCcJCUhFCsDUcLF. La aplicacin criptosistema de clave privada corresponde con tambin permite invertir el proceso para un criptosistema clsico cuyas funciones de descodificar un texto determinado. El proceso se cifrado y descifrado calculadas sobre Zn son realiza paso por paso pinchando en la respectivamente: correspondiente pestaa y en cada paso la Cr,s([m]) = [r][m] + [s], / mcd(r,n)=1. aplicacin nos da informacin de qu es lo que Dr,s([m*]) = [r]-1([m*]-[s]). est haciendo. 4 No escribir nada
Figura 7. Ejemplo de codificacin
Tengamos en cuenta que, para el alumnado
7. Conclusin de informtica en particular, esta materia tiene un grado de dificultad bastante considerable. El objetivo que nos marcamos con el diseo de la herramienta ArtEM fue el intentar impulsar el Referencias aprendizaje, experimentacin, asimilacin y ampliacin de algunos de los contenidos de la [1] Biggs, N.L. Matemtica discreta. Vicens matemtica discreta, por parte del alumnado, Vives, 1994. con el uso del ordenador. No se trata de [2] Dierker, P.F., Voxman, W.L. Discrete aprender a programar, pues para ello ya existen mathematics. HBJ, 1986. otras asignaturas, sino de aprovechar las [3] Gutirrez, A., Migalln, H., Migalln V., capacidades pedaggicas del ordenador en Penads, J. ArtEM. Disponible en beneficio de la calidad de nuestra docencia. La http://www.dccia.ua.es/~jpenades/ArtEM.html . experiencia ha mostrado que el inters por parte del alumnado es muy aceptable y que adems [4] Grimaldi, R.P. Matemticas discretas y dichas prcticas facilitan la asimilacin y combinatoria. Una introduccin con comprensin de los contenidos de la aritmtica aplicaciones. Addison-Wesley, 1998. entera y modular. [5] Petroutsos E., Visual Basic 6. Ediciones Anaya Multimedia S. A., 1999.