You are on page 1of 7

La herramienta ArtEM: Aritm etica Entera y Modular

1. Introducci on
La herramienta ArtEM (Aritm etica Entera y Modular) es una aplicaci on inform atica programada en Visual Basic y desarrollada con el n de ser utilizada en las pr acticas de cualquier asignatura que incluya como t opicos los relacionados con la aritm etica entera y modular. Est a estructurado en 5 men ues b asicos: Euclides. Ecuaciones diof anticas. N umeros primos. Aritm etica modular. Aplicaci on a la criptograf a. Los tres primeros men ues est an dedicados a la aritm etica entera, el cuarto men u proporciona c alculos b asicos en la aritm etica modular como los c alculos del representante de clase, inverso de un elemento, funci on de Euler y potencias. El quinto men u constituye una aplicaci on a la criptograf a centr andose en dos criptosistemas, uno de clave privada y otro de clave p ublica. Todos los algoritmos disponibles en ArtEM se desarrollan de tal forma que el usuario es capaz de reconocer los pasos que se han seguido para su ejecuci on, de manera que se obtiene un importante valor pedag ogico. A continuaci on vamos a pasar a describir muy brevemente el contenido de ArtEM, estudiando cada uno de sus men ues por separado.

2.

Men u Euclides

En este apartado se desarrolla el algoritmo de Euclides para el c alculo del m aximo com un divisor de dos enteros. Adem as de describir el algoritmo de forma gen erica se tiene la opci on de mostrar todos los c alculos del propio algoritmo, tal y como se muestra a continuaci on:

3.

Men u ecuaciones diof anticas

En este apartado se ofrece la posibilidad de resolver ecuaciones diof anticas, es decir, ecuaciones de la forma ax + by = c, donde a, b, c Z y x, y son las inc ognitas que tambi en son n umeros enteros. Adem as de mostrar una descripci on de los resultados te oricos necesarios para la correcta resoluci on de estas ecuaciones, se muestra el algoritmo necesario para el c alculo de una soluci on particular de una ecuaci on diof antica. En la ejecuci on del algoritmo, el usuario debe introducir los valores de a, b y c, obteniendo una soluci on particular de la ecuaci on diof antica correspondiente, cuya traza puede ser consultada, y la soluci on general. Como muestra presentamos la soluci on de la ecuaci on 2700x + 1500y = 234000.

4.

Men u n umeros primos

Se desarrollan en este men u procedimientos para crear una lista de n umeros primos, averiguar si un n umero entero es primo y factorizar un entero en producto de sus primos. Estos algoritmos vienen acompa nados de su descripci on formal. Las opciones que presenta este men u vienen indicadas a continuaci on.

5.

Men u aritm etica modular

Presentamos en este men u diversos c alculos b asicos relacionados con la aritm etica modular. Estos son el c alculo del representante de clase en Zn , el c alculo del inverso en Zn , el c alculo de la funci on de Euler y el c alculo de potencias en Zn . Como muestra presentamos el c alculo de la potencia [5]75 en Z23 . El programa identica que el mcd(5,23)=1 y por tanto, como el valor de la funci on de Euler en 23 es 22, se tiene que [5]22 = [1]. As , como [5]75 = ([5]22 )3 [5]9 s olo ser a necesario calcular [5]9 que en este caso es [11]. Mostramos, a continuaci on, la salida que se obtiene de la ejecuci on correspondiente:

6.

Men u aplicaci on a la criptograf a

En este men u pretendemos familiarizarnos con ciertas aplicaciones de la aritm etica modular a la criptograf a. Tiene dos partes claramente diferenciadas: la elecci on del alfabeto a utilizar y la elecci on del sistema criptogr aco. En lo que se reere a la elecci on del alfabeto, la aplicaci on tiene establecidos por defecto una serie de alfabetos que pueden ser seleccionados con el correspondiente men u:

Tambi en se permite crear un alfabeto propio e incluso leerlo de disco si previamente se hab a creado. Para crear un alfabeto lo u nico que se debe hacer es ir asignando valores num ericos a cada uno de los caracteres que queremos que formen parte de nuestro alfabeto. El m odulo con el que se trabajar a en la codicaci on y decodicaci on vendr a dado en funci on del valor num erico asignado mayor. Como ejemplo, mostramos el alfabeto {A, B, C, D, E, F, G} al que se le han asociado las equivalencias num ericas {11, 16, 1, 23, 20, 17, 24} respectivamente y que en la gura anterior viene denido con el nombre de mialfabeto:

Ya sea con un alfabeto creado por el usuario o con un alfabeto predenido por la aplicaci on se dispone de dos tipos de criptosistemas: uno de clave privada y otro de clave p ublica. El criptosistema de clave privada corresponde con un criptosistema cl asico cuyas funciones de cifrado y descifrado calculadas sobre Zn son respectivamente: Cr,s ([m]) = [r][m] + [s], / mcd(r, n) = 1 Dr,s ([m ]) = [r]1 ([m ] [s]). Por su parte, el criptosistema de clave p ublica corresponde con el c odigo RSA. 5

Como ejemplo de utilizaci on de la aplicaci on ArtEM para este tipo de problemas, vamos a suponer que seleccionamos el alfabeto predenido 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 codicaci on utilizando el criptosistema de clave privada. En primer lugar el programa nos pedir a que seleccionemos los valores de r y s. Como mcd(r, 55) debe ser 1, el programa nos indica posibles valores de r a partir de un valor m nimo que el usuario introduce. Esto se puede observar en la siguiente pantalla:

Si por ejemplo seleccionamos s = 8 y r = 6, podremos, a trav es del bot on continuar, iniciar una codicaci on con estas claves. La siguiente gura muestra la codicaci on de la frase Esto es una prueba usando este sistema criptogr aco de clave privada y las claves anteriores. La primera ventana contiene la frase en cuesti on que queremos codicar, la segunda ventana contiene la transcripci on inmediata seg un el alfabeto que hallamos elegido y que se encuentra en la tabla de conversi on, la tercera ventana contiene los valores num ericos de la codicaci on y la u ltima ventana ya reproduce los caracteres codicados.

As , con este sistema criptogr aco la frase Esto es una prueba.a quedado codicada como fJO nCcJCUhFCsDUcLF. La aplicaci on tambi en permite invertir el proceso para decodicar un texto determinado. El proceso se realiza paso por paso pinchando en la correspondiente pesta na y en cada paso la aplicaci on nos da informaci on de qu e es lo que est a haciendo.

You might also like