Sei sulla pagina 1di 4

UNIVERSIDAD PILOTO DE COLOMBIA, FACULTAD DE INGENIERIA, ESPECIALIZACION EN SEGURIDAD INFORMATICA, INTRODUCCION A LA INFORMATICA, GRUPO 3.

ARTICULO PRESENTADO EN ABRIL DE 2011

Matemtica Modular y sus Aplicaciones


Juan C. Marulanda, Marco A. Rojas, Dionel F. Trujillo, Mariana Molano, Leonardo Sierra, Juan P. Vanegas
ResumenEn este artculo queremos como propsito mostrar la definicin de la matemtica modular o ms conocida como aritmtica modular que es muy aplicada en criptografa permitiendo el clculo del digito de verificacin en los nmeros de identificacin; para conseguir el conocimiento de la aritmtica modular es necesario solucionar temas como las operaciones de suma y multiplicacin con el manejo relaciones de congruencia modulo n con sus propiedades, y sus aplicaciones. Palabras ClavesOperacin modulo m, criptografa, modulo multiplicativo, nmeros primos, mximo comn divisor (mcd).

el valor del mdulo. Una de las grandes importancias que tiene la aritmtica modular en la vida cotidiana, es su uso en la lectura del reloj analgico. En ste caso, para determinar las horas, se implementa un sistema mdulo 24, el cual consiste en reiniciar la cuenta alcanzado el valor 24. Como se puede apreciar en (1), para conocer la hora actual (Hac), se realiza el mdulo entre una hora anterior (Han) y las horas transcurridas (Htr), en el dominio Z24. Por ejemplo, si sabemos que han transcurrido 50 (Htr) horas a partir de las 7 (Han), sumando ambas y aplicando el mdulo 24 obtenemos que son las 9 (Hac). = + | , 12 (1)

I. INTRODUCCIN

A importancia de este trabajo consiste en dar a conocer la aritmtica modular, tambin llamada aritmtica del reloj, con el fin de aplicar las diversas metodologas con fines de mirar las diferentes vulnerabilidades criptogrficas. Es decir que podemos aplicar la aritmtica modular para codificar mensajes, tanto como para protegerlos a diferentes ataques de intrusos o a su vez para utilizarlo con fines maliciosos y as romper cdigos ajenos, ya que podemos hacer entendibles o descifrar los mensajes crpticos. Es necesario que nos concienticemos ya que aplicndola podemos lograr que nuestra informacin no sea tan vulnerable. II. ARITMETICA MODULAR[1],[4] A. Origen y fundamento A principios del siglo XIX, Carl Friedrich propuso la aritmtica modular[1], en donde se plantea su principio en la aritmtica del reloj, ya que la secuencia de nmeros, pertenecientes al dominio de ste, reinicia a cero tras alcanzar
Manuscrito recibido el 8 de Abril de 2011. Este documento fue realizado para la Universidad Piloto de Colombia, facultad de ingeniera, programa especializacin en seguridad informtica. J. C. Marulanda, alumno de la esp. Seguridad informtica, Universidad Piloto de Colombia (e-mail: juancmarulanda@gmail.com). M. A. Rojas, alumno de la esp. Seguridad informtica, Universidad Piloto de Colombia (marm09@hotmail.com). D. F. Trujillo, alumno de la esp. Seguridad informtica, Universidad Piloto de Colombia (fernac87@hotmail.com). M. Molano, alumno de la esp. Seguridad informtica, Universidad Piloto de Colombia (ing.marianam@hotmail.com). L. Sierra, alumno de la esp. Seguridad informtica, Universidad Piloto de Colombia (lsierrarodriguez@gmail.com). J. P. Vanegas, alumno de la esp. Seguridad informtica, Universidad Piloto de Colombia (mrpaulo99@gmail.com).

La notacin que indica que dos nmeros tienen el mismo residuo, al operarlos por un mismo valor, se muestra en (2), que se lee a es congruente con b mdulo n. | , , + (2)

Si a y b no son congruentes, a pendiente b (mod n), debe existir un ( ). B. Suma y multiplicacin Algunas propiedades de las operaciones modulares[2]: Si: + + ( ) + + (3) Entonces

+ + ( ) Confirmando que ( ) (4)

Si: ( ) ( ) (5) Entonces (6)

C. Propiedades en la aritmtica modular [2] Existen 6 propiedades que cumplen las operaciones modulares. stas se muestran en la tabla 1.

UNIVERSIDAD PILOTO DE COLOMBIA, FACULTAD DE INGENIERIA, ESPECIALIZACION EN SEGURIDAD INFORMATICA, INTRODUCCION A LA INFORMATICA, GRUPO 3. ARTICULO PRESENTADO EN ABRIL DE 2011

Tabla 1: Propiedades de la aritmtica modular

nmero que divide a los nmeros en mencin. Si se tienen dos nmeros, 18 y 30, su mcd es 6, ya que es ste el submltiplo ms grande y comn entre ambos. Adems de ser el ser el mcd de estos nmeros, lo es tambin para cualquier combinacin lineal de stos: 30 + 18 (11) El menor resultado de la combinacin lineal de la expresin (11) es 6, por lo que podemos generar la ecuacin (12). 6 = 30 + 18 (12)

D. Inverso aditivo y multiplicativo modular [3], [4] El la adicin, el inverso modular de un nmero natural, es aquel cuyo mdulo, al ser sumado con otro natural, sea igual a cero, como se muestra en (7). 0 = + ( ) Despejando b tenemos: = (7)

A partir de la ecuacin (12) se obtiene el teorema de Bezout, el cual dice que si a y b son enteros>0, existen enteros m y n tales que (13) sea vlida. , = + (13)

Dado que las operaciones modulares se realizan solo con nmero naturales, -a no pertenece a ste conjunto, por lo que se hace necesario una transformacin de dominio. Teniendo a m como el mdulo de Zm, podemos hallar a b por medio de (8). = (8) En el caso del inverso multiplicativo modular, el mdulo de la multiplicacin tiene que ser igual a la unidad, como se muestra en (9). 1 = (9) Esta operacin es de gran importancia, pues es fundamental en el desarrollo de sistemas de criptografa. E. Modulo multiplicativo inverso: Modelo Iterativo [3], [4] Para determinar el mdulo multiplicativo de un nmero natural x Zm , se obtienen los valores que hacen la operacin mdulo igual a 1. Dichos valores se obtienen por medio de la expresin (10), haciendo variaciones al valor i. + 1 + | 1 (10)

Si el mcd(a,b) = 1 se obtiene que los valores a y b son coprimos. sta regla se usa en la bsqueda de inversos modulares, ya que todo nmero que no tenga factores comunes con el mdulo, tiene, necesariamente, un inverso multiplicativo. La implementacin del teorema de Bezout se basa en divisiones recursivas entre divisores y cocientes. Para comprender mejor el procedimiento, halla el inverso de 10 modulo 27 a partir de (14). 27 10 27 = 10 2 + 7 7 = 27 + 10 (2) 10 7 10 = 7 1 + 3 3 = 10 + 7 (1) 7 3 7 = 3 2 + 1 1 = 7 + 3 (2) (14) (15) (16)

Luego de hacer sustituciones de (15) en (16), y (14) en el resultado de la anterior, se obtiene: 1 = 10 8 + 27 3 Que al llevarlo a Z27 obtenemos el par inverso. 1 = 10 19 G. Nmeros primos[2],[3],[4],[5] Un nmero primo p es aquel que solo tiene dos divisores positivos mayores que cero, los cuales son la unidad y p. Debido a sta caracterstica, su propiedad de indivisibilidad es muy usada en aplicaciones de seguridad. Otra caracterstica, no menos importante, es que todo nmero que no sea primo, se puede descomponer en factores primos. En la aritmtica modular se presentan bsicamente tres problemas relacionados con stos: Como determinar si un nmero es primo. Como generar nmeros primos. Cmo hallar la factorizacin de un nmero que no es primo.

Para determinar el inverso de p en (9), se realizan iteraciones con la divisin de la expresin (10) y p, un mximo de m veces, o hasta encontrar el primer nmero entero de la operacin. ste valor entero ser el correspondiente al inverso multiplicativo modular de p, es decir a n. Si se realizan las m divisiones a lo largo del conjunto Zm-1, se concluye que p no tiene inverso. F. Mdulo multiplicativo inverso: Mximo comn divisor El mximo comn divisor entre dos nmeros es mximo

UNIVERSIDAD PILOTO DE COLOMBIA, FACULTAD DE INGENIERIA, ESPECIALIZACION EN SEGURIDAD INFORMATICA, INTRODUCCION A LA INFORMATICA, GRUPO 3. ARTICULO PRESENTADO EN ABRIL DE 2011 Dada su alta importancia en sistemas criptogrficos, los nmeros primos han recibido gran atencin en las ltimas dcadas, desarrollndose algoritmos que puedan suplir las necesidades de los tres puntos anteriores, aunque no de una manera ptima, pues el costo computacional, requerido para operaciones de gran dimensin, es demasiado alto. Segn el teorema de Fermat se puede hallar el mdulo de una funcin exponencial de una manera sencilla, aplicando la ecuacin (17). ste teorema slo es vlido para nmeros primos p. 1 ( ) (17) Euler generaliz el teorema de Fermat, visto en (18), en donde a y p son coprimos, es decir , = 1. La funcin () cuenta el nmero de enteros corpimos entre 1 y n. () 1 ( ) (18) III. APLICACIONES A. Funcin de dispersin hash Las funciones de dispersin hash son usadas ampliamente para la verificacin de errores, encriptar archivos, y con algunas ayudas adicionales, se puede verificar la autenticidad de un archivo. Una aplicacin consiste en la aplicacin de sta funcin para asignar posiciones de memoria a los estudiantes de una facultad. La funcin no puede ser demasiado compleja, pues su acceso sera ms lento. Una de las funciones mas aplicadas es la h(k) = k (mod m), donde m es el nmero de posiciones de memoria existentes, de igual manera, dicha funcin debe ser capaz de acceder a todo el banco de memoria. Un problema que tiene este tipo de funciones es que muchas veces se tienen pueden obtener ms cantidad de direcciones de memoria, que la misma capacidad de la memoria. A esto se le llama colisin, y se soluciona asignando la primera posicin de memoria libre que sigue a la que asigna la funcin de dispersin. B. Funciones Pseudoaleatorias En las simulaciones con computadores, con frecuencia son necesarios los nmeros escogidos de forma aleatoria, para ello se desarrollaron diferentes mtodos para la generacin de estos nmeros. Como la generacin de nmeros por mtodos sistemticos nunca puede ser completamente aleatoria, estos nmeros se llaman nmeros pseudoaleatorios. El procedimiento utilizado ms comnmente para generar nmeros pseudoaleatorios es el mtodo de congruencia lineal, el cual consiste en la seleccin de cuatro nmeros enteros: el modulo n, el multiplicador a, el incremento c y la semilla X con 2 a < n, 0 x < m. Generamos una sucesin de nmeros pseudoaleatorios {Xn}, 0 Xn < n para todo n, aplicando sucesivamente la consecuencia. En la ecuacin (19) se muestra la representacin recursiva de dicho esquema. +1 = ( + )( )

(19)

Muchos experimentos realizados con el computador requieren la generacin de nmeros aleatorios entre 0 y 1. Para generar tales nmeros, dividimos entre el modulo los enteros generados mediante el mtodo de congruencia lineal; esto es, utilizando los nmeros Xn/N. Por ejemplo al sustituir los siguientes valores: n = 9, a = 7, c = 4 y X0 = 3, en (19), obtenemos la siguiente sucesin: 3, 7, 8, 6, 1, 2, 0, 4, 5, 3 la cual tiende a repetirse a partir del dcimo trmino. En la mayora de los computadores se emplea un generador de congruencia lineal con incremento cero (C=0) para la generacin de nmeros pseudoaleatorios. Dicho generador recibe el nombre de generador multiplicativo puro. C. Cifrado/Descifrado de criptosistemas: Algoritmo de Cesar [3]Dado que la informacin que se requera transmitir eran mensajes de texto, el dominio era el alfabeto, con longitud de 27 letras, incluida la . A cada letra le corresponde un valor en el dominio Z27. Para codificar un mensaje, a cada letra se le haca un desplazamiento de m valores, representado como se muestra en (20), donde n el mdulo, siendo f(x) la funcin para encriptar el mensaje. = + ( ) (20)

Para desencriptar el mensaje tiene que existir una g(x), ecuacin (22), tal que: = = + = + (21)

! = + () = + (22)

D. Algoritmo Vigenre ste algoritmo es una modificacin del algoritmo de Cesar, ya que implementa desplazamientos bajo el mdulo de un dominio. Para ste caso, no hay una funcin directa que codifique los datos, existe una cadena de caracteres, pertenecientes a Zn. La ecuacin (23) presenta la transformacin de transferencia lineal: = + ( ) (23)

A continuacin se presenta el criptograma obtenido a partir de un mensaje y una clave: Mensaje: PARIS VAUT BIEN UNE MESSE Clave : LOUPL OUPL OUPL OUP LOUPL Cript. : AOLXD JUJE PCTY IHT XSMHP

UNIVERSIDAD PILOTO DE COLOMBIA, FACULTAD DE INGENIERIA, ESPECIALIZACION EN SEGURIDAD INFORMATICA, INTRODUCCION A LA INFORMATICA, GRUPO 3. ARTICULO PRESENTADO EN ABRIL DE 2011 E. Algoritmo RSA[3] Por medio de ste algoritmo, se puede transmitir informacin a travs de una red insegura por medio de el intercambio de llaves pblicas. El principio de funcionamiento de ste algoritmo se basa en la obtencin de nmeros primos de grandes dimensiones (mas de 100 dgitos), exponenciacin por el mtodo de Euler y diferentes operaciones de la aritmtica modular. F. Sistemas matriciales[3] Por medio de sistemas matriciales, se pueden organizar pares de letras para su codificacin. En la ecuacin (24) se muestra un sistema matricial, donde el vector de entrada X es multiplicado por una matriz A, para obtener el vector salida U, el cual se compone del par codificado. = = + = + (24)

Aplicando eliminacin 5 3 + 7 = 5 = 5 7 ( 27) 7 2 + 5 = 7 = 5 + 20 ( 27) El valor de y se halla por sustitucin: 3 5 7 + 7 = = 25 + 3 ( 27) Los valores de la matriz inversa se hallan reemplazando los valores de x y y en (26), obteniendo as la matriz A-1. 5 + 20 1 = 25 + 3 = 5 20 1 = 25 3 Para desencriptar el mensaje MNGO, formamos los pares MN=(13,14) y OG=(16,7). Desencriptando MN tenemos: 5 = 25 = 20 3 21 16 13 14

(24.1)

Para hacernos una idea del funcionamiento del algoritmo, encriptamos la palabra TODO. Para ello la descomponemos en pares: TO=(21,16), DO=(4,16). El primer par queda planteado en (25) a partir de una matriz A aleatoria (demostrable que sea invertible). 3 2 7 5 21 = 16 (25) Obteniendo

De la misma manera obtenemos el siguiente par GO, cuyo vector resultado fue GO=(4,16). IV. CONCLUSIN La Aritmtica Modular tiene una gran utilidad en los Grupos Lineales Especiales en el proceso del clculo de su orden. De igual manera, la aritmtica modular se usa en las operaciones de cifrado y descifrado por la particularidad de tener algoritmos perfectamente reversibles, es decir que tienen su correspondiente funcin inversa lo que es ideal para codificar y decodificar. Este hecho evidencia la utilidad de la aritmtica modular en la criptografa. A lo que Neal Koblitz5 (1985), afirma: "La aritmtica Modular deben seguir jugando el importante papel que histricamente han jugado en la seguridad de la informacin. Y al mismo tiempo, seguir siendo el puente de relacin de las matemticas con las ciencias de la computacin. Relacin que debe ser cuidada, mantenida y estimulada". REFERENCIAS

13 = 14

El vector (13,14) representa las letras MN. De igual manera se hace con el siguiente par, DO, que al reemplazar los valores en (24) obtenemos el par OG=(16,7). As la palabra TODO, encriptado con un sistema digrfico matricial se transforma en MNOG. Para desencriptar el cdigo se realiza el proceso contrario, despejando el vector X de (24) por medio de la matriz inversa de A, planteando as la ecuacin (26). (1 ) = 1 = 1

(26)

[1] [2]

La matriz inversa de A se puede hallar por medio de la eliminacin, como se muestra en (27), tras obtener un sistema de dos ecuaciones. 3 7 = 2 5 3 7 = (27) 2 5

[3] [4] [5]

Eleuterio Romero Pea. La utilidad de la aritmtica modular en los sistemas criptogrficos y en los grupos lineales modulares especiales William Stallings, Cryptography and Network security Principles and Practices Cuarta edicin. Criptografa, Available at: www.matematicaparatodos.com/varios/criptografia.pdf Aritmetica Modular, Available at: http://www.dma.fi.upm.es/java/matematicadiscreta/aritmeticamodular R. Parra M. Aritmtica Modular. Available at: http://www.hojamat.es/parra/modular.pdf

Potrebbero piacerti anche