You are on page 1of 12

.

ARITMETICA I Algunos algoritmos cl asicos

Juan Tena Ayuso Universidad de Valladolid

Aritm etica I

El objetivo es mostrar algunos algoritmos aritm eticos cl asicos (algunos se remontan a muchos siglos) pero que mantienen su inter es original y adem as han encontrado nuevas aplicaciones tanto en matem aticas como en otras disciplinas. Algoritmo de Euclides Se trata de uno de los m as antiguos algoritmos conocidos (Euclides, libro VII). Permite el c alculo del m aximo com un divisor d de dos n umeros a, b N. Una modicaci on (conocida como algoritmo de Euclides Extendido) permite adem as obtener d como combinaci on lineal de a y b con coecientes enteros, es decir d = ax + by relaci on conocida como identidad de Bezout. Motivaci on e inter es: El algoritmo de Euclides extendido permite resolver dos problemas: C alculo eciente del M.c.d.: Para a, b grandes (por ejemplo en Criptograf a se trabaja rutinariamente con n umeros de 200-300 cifras decimales) la

conocida regla de factorizar a y b es inaplicable. En efecto el factorizar es un proceso muy costoso (y de hecho imposible hoy en d a para n umeros del tama no mencionado). De hecho diversos m etodos de factorizaci on de un n umero n utilizan como herramienta el c alculo de mcd(n, x) para x apropiados. C alculo del inverso modular a1 ( mod n): En las congruencias m odulo n, o equivalentemente en el anillo Z/nZ de restos m odulo n se tienen las operaciones de adici on y multiplicaci on, pero no siempre es posible la divisi on por un elemento a, por que no siempre existe a1 (mod n). Un elemento a + nZ Z/nZ tiene inverso (o es una unidad del anillo Z/nZ), si y solamente si mcd(a, n) = 1. En lenguaje de congruencias, tal existencia de inversos se expresa diciendo que existe b Z tal que ab 1 (mod n). El c alculo efectivo de tal inverso viene dado por la identidad de Bezout. En virtud de esta existen x, y Z vericando ax + ny = 1. El inverso buscado es entonces x(mod n). El c alculo de inversos modulares se presenta en muchas situaciones como por ejemplo en el sistema criptogr aco RSA. Se nalemos aqu su uso en la computaci on sin

errores: en muchas situaciones el resultado de la computaci on debe ser exacto, no siendo admisibles los redondeos. En consecuencia si los c alculos comportan una fracci on a/b esta no puede representarse en forma decimal. Una soluci on es la siguiente: Supongamos 0 |a| N , 0 |b| N (una tal fracci on se denomina fracci on de Farey de orden N ) y sea m primo tal que m 2N 2 + 1. Basta entonces tomar el menor entero no negativo k tal que k ab1 mod m (inverso calculado con el algoritmo de Euclides). Los c alculos con a/b pueden substituirse entonces por calculos con k . Ejemplo: N = 3, m = 19. las fracciones 2/3, 1/3 corresponden con los n umeros 7, 6. La suma 2/3 + (1/3) corresponde a la suma 7 + 6 = 13 que a su vez corresponde a la fracci on 1/3. Descripci on del algoritmo Dados a b > 0,

1. tomar, como valores iniciales, a0 := a, a1 := b, x0 := 1, x1 := 0, y0 := 0, y1 := 1. 2. Para i = 0, 1, , iterar las asignaciones ai := qi+1ai+1 + ai+2 xi := qi+1xi+1 + xi+2 yi := qi+1yi+1 + yi+2 hasta obtener un resto ai = 0. 3. Si an+1 es el primer resto nulo, entonces d = an, x = xn, y = yn. Eciencia del algoritmo: Cada etapa del algoritmo comporta solo varias operaciones elementales (una divisi on, dos multiplicaciones y dos restas). Observese por otra parte que los restos ai, forman una sucesi on decreciente. Por tanto, el algoritmo naliza necesariamente en un n umero nito de etapas. M as concretamente, Lema: Si a b, el n umero de etapas necesarias en la ejecuci on del algoritmo de Euclides extendido es O(log a). En efecto los restos ai verican la relaci on ai+2 < 1 2 ai , lo que implica que el n umero de etapas es, a lo sumo, 1 1 2 log a (Si ai+1 2 ai, entonces ai+2 < ai+1 2 ai. Si ai+1 > 1 on euclidea proporciona ai = 1ai+1 + 2 ai , la divisi ai+2, con lo que tambi en en este caso, ai+2 = ai ai+1 < 1 2 ai ).

Teorema Chino de los Restos Dados naturales m1, m2, , ms, tales que mcd(mi, mj ) = 1 para i = j , y dados enteros a1, , as, el sistema de congruencias x ai (mod mi), i = 1, 2, , s

admite soluci on u nica modulo m = m1m2 ms. Motivaci on: El teorema se atribuye a los antiguos matem aticos chinos quienes lo habr an utilizado para la confecci on de calendarios. Demostraci on del teorema: Sea m = m1m2 ms = m1M1 = m2M2 = = msMs y sea ni el inverso de Mi m odulo mi (que puede calcularse utilizando el algoritmo de Euclides). Se comprueba inmediatamente que x = n 1 M 1 a1 + + n s M s as es una soluci on. Para ver la unicidad, si y fuera otra soluci on, entonces se vericar a z = xy 0 (mod mi), luego z 0 (mod m) y, por tanto, x y (mod m).

Representaci on china de n umeros naturales. Sea M = m1m2 mk con (mi, mj ) = 1. En virtud del teorema todo entero x 0 x < M admite una representacion u nica (a1, a2, , ak ). Estas expresiones pueden sumarse y multiplicarse (coordenada a coordenada y m odulo mi). Aplicaci on al c alculo de convoluciones Supongamos por simplicidad M = m1m2. Sean dos sucesiones a(i), b(i), i = 0, , M 1. Se dene la convoluci on de ambas como la nueva sucesi on: c ( i) =
M j =1

a(j )b((i j ) mod M ), i = 0, , M 1

Utilizando la representaci on china para los ndices se obtiene la convoluci on 2-dimensional: c(i1, i2) =
m1 m2

j1 =1 j2 =1

a(j1, j2)b(i1j1) mod m1, (i2j2) mod m2

Utilizando la primera f ormula son necesarias M multiplicaciones para el c alculo de cada c(i), luego en total M 2 multiplicaciones. Por contra utilizando la segunda

son necesarias solo m1 + m2 para calcular cada c(i1, i2) luego un total de (m1 + m2)M multiplicaciones. Se consigue pues una reducci on de (m1 + m2)/M en el n umero de multiplicaciones. Si M = m1m2 mk se obtiene una reducci on de (m1 + m2 + + mk )/M . Funci on de Euler Sea m Z y denotemos por (Z/mZ) al grupo multiplicativo de las unidades del anillo Z/mZ. Se dene la funci on de Euler : N N, mediante (m) = #(Z/mZ) = #{a | 0 < a < m, mcd(a, m) = 1}. Motivaci on: La funci on de Euler permite conocer el n umero de generadores de un grupo c clico de orden m, por ejemplo el n umero de ra ces complejas primitivas de orden m de la unidad. Sea una tal ra z, (por ejemplo 2i/m =e . Las restantes ra ces primitivas son las j con mcd(j, m) = 1. El c alculo de (m) es inmediato supuesto conocida la descomposici on de m en factores primos: a) Si p es un n umero primo y r > 1, entonces (p) = p 1 y (pr ) = pr1(p 1) = pr pr1.

b) Si a, b N son tales que mcd(a, b) = 1, entonces (ab) = (a)(b). La propiedad b) anterior, se expresa diciendo que es una funci on multiplicativa. Una consecuencia es el resultado:
es 1 (m) = pe 1 (1 1/p1 ) ps (1 1/ps ) = m

(1 1/p)
p|m

es 1 e2 siendo m = pe on de m en fac1 p2 ps la descomposici tores primos.

Nota: Sin conocer la factorizaci on de m, la u nica manera de calcular (m) es comprobar, para cada a < m, si a es primo o no con m, lo que, para m grande, es computacionalmente imposible. Esta observaci on es crucial para la seguridad del sistema criptogr aco RSA (ver m as adelante). Se tiene el siguiente resultado Teorema de Euler-Fermat Dados un natural m y un entero a tales que mcd(a, m) = 1, se verica que a(m) 1 (mod m).

El teorema de Euler Fermat y la nota anterior son cruciales para la seguridad del sistema criptogr aco RSA (ver m as adelante). Algoritmo de exponenciacion modular: Motivaci on: En el teorema de Euler-Fermat aparecen una expresion del tipo an (mod m), y c alculos similares juegan un papel fundamental en los tests de primalidad, as como en el sistema criptogr aco RSA. Ahora bien, para n grande, un c alculo del tipo anterior ser a impracticable si se intentase realizar multiplicando a por si mismo n veces. Existe, sin embargo, un algoritmo (de cuadrados repetidos) que permite realizar el c alculo anterior en solo k = longitud(n) etapas. Dados n = s0 + s12 + sk12k1 y b := 1,

1. Si s0 = 1 sea b : ba (mod m). Si s0 = 0 sea b := b. Sea a1 : a2 (mod m). 2. Si s1 = 1 sea b : ba1 (mod m). Si s1 = 0 sea b := b. . Sea a2 : a2 1 (mod m). . . . . . . k-1. Si sk2 = 1 sea b : bak2 (mod m). Si sk2 = 0 sea b := b. Sea ak1 : a2 k 2 (mod m). k an bak1 (mod m). Nota: El algoritmo anterior permitir a asimismo el c alculo de an (sin reducci on m odulo m). N otese, sin embargo, que los productos sucesivos que se van obteniendo involucran n umeros cada vez m as grandes, no acotados por la longitud de los datos a, n. Tal c alculo puede resultar imposible. Aplicaci on: Criptosistema R.S.A.: Cada usuario i del sistema debe elegir una pareja de primos pi, qi, sucientemente grandes. Se calculan asimismo ni = piqi y (ni). A continuaci on el usuario elige (arbitrariamente) un n umero ei, 0 < ei < (ni), tal que mcd(ei, (ni)) = 1 1 y su inverso modular di e i (mod (ni )).

Nota: Tanto la vericaci on de que ei es primo con (ni) como la obtenci on de su inverso, se realizan gracias al algoritmo de Euclides. El usuario dispone ya de todos los elementos necesarios para sus claves: Clave p ublica: (ni, ei); Clave privada: di. Para los procesos de cifrado y descifrado los mensajes deben previamente identicarse con elementos del conjunto Z/niZ (o si se preere n umeros naturales menores que ni). Cifrado: Z/niZ Z/niZ; M C M ei ( mod ni); Descifrado: Z/niZ Z/niZ; C C di M eidi M 1 mod (ni) M (mod ni).

You might also like