Está en la página 1de 114

Algebra universal para ciencia

de la computacin
Jose A. Rodriguez Melquiades
Teresa J. Bracamonte Nole

Teora de nmeros

Introduccin

El hombre siempre ha estado interesado en guardar


sus descubrimientos en:

hojas de papiro.

Hojas de papel o libros

Actualmente existe otro medio para guardar la


informacin: El computador.

La informacin es guardada en forma digital

Colocada en Internet para el acceso de diversas formas.

Tambin existe la informacin reservada: Encriptar.

La teora de nmeros contribuye con la creacin de


mtodos de encriptacin, donde los nmeros mas
importantes son:

Enteros positivos:

Nmeros primos:

a > 0, es decir a Z+

2, 5, 11, . . .

Que es la teora de nmeros ?

Rama de la matemtica que:

En general:

Esta relacionada con el estudio de las propiedades de los


nmeros.

En particular:

Relacionada con el estudio de los nmeros enteros.

De acuerdo con los mtodos usados, se divide en


los siguientes campos de estudio:

Teora de nmeros elemental:

Los enteros son estudiados, sin usar tcnicas de otros


campos.

Los temas de estudio son:

Divisibilidad
Mximo comn divisor
Factorizacion de nmeros enteros en enteros primos
Congruencia.

Teora de nmeros analtica:

Para estudiar nmeros se utiliza:

El clculo.

El anlisis complejo.

Ejemplos:

Teorema del numero primo.

Hiptesis de Riemann.

Teora de nmeros algebraica

Concepto de numero es expandido a los nmeros algebraicos.

Races de polinomios con coeficientes racionales.


P(n) = 2n3 + 3n2 n + 1

Enteros algebraicos.

Teora de nmeros geomtrica

Relacionado con la geometra de nmeros.

Incorpora tosas las formas de geometra.

Ejemplo:

Teorema de Minkowski acerca de los puntos latice en conjuntos


convexos.

Teora de nmeros combinatoria

Estudio de los llamados problemas numero terico.

Fundador de esta rea Paul Erdos.

P. Erdos 1913-1996

Teora de nmeros computacional

Estudia algoritmos

Algoritmo para testar la primalidad de los nmeros primos.

Factorizacion de nmeros enteros.

Shafi Goldwasser

Divisibilidad

Es un tema bsico en teora de nmeros.

Ejemplos:

13|182, pues existe c = 14 tal que 182 = (13)(14).

5|500, pues existe c = 100 tal que 500 = (5)(100).

Propiedades

Otra definicin importante es:

Ejemplos:

Sean a = 45 y b = 7. Entonces a = (6)(7) + 3.

Sean a = 35 y b 7. Entonces a = (5)(7) + 0.

Nota:

Ejemplos:

Sean a = 45 y b = 7. Entonces q = 45 div 7 = 45/7 =


6.4285 = 6.

Sean a = 35 y b 7. Entonces r = 35 mod 7 = 35 - 7 35/7


= 35 7 5 = 35 35
=0

Propiedad:

mcd, mcm y nmeros primos

Mximo comn divisor

Sean a, b enteros. Entonces el mcd es d Z+ , si se cumple:

d es divisor comn de a y b.

Si c|a y c|b, entonces c|d.

Ejemplo

mcd(12, 15) = 3, pues

3 es divisor comn de 12 y 15.

c|15, pues c|12 y c|15, es decir que c = 3.

Propiedades

Ejemplos

Sean a = 7, b = 4, c = 7; 7|(4)(7) y mcd(7,4) = 1. Entonces 7|7.

Sean a = 7, b = 3, c = 21; 7|21, 3|21 y mcd(7,3) = 1. Entonces (7)


(3)|21.

mcd(18, 24, 36) = mcd(18, mcd(24, 36)) = mcd(18, 12) = 6.

Sean a = 18, b = 14, con 18 > 14. Entonces


mcd(18,14) = mcd(14, 18 mod 14)
= mcd(14, 18 - 14 18/14 )
= mcd(14,18 14(1)) = mcd(14, 4)
2
= 2

Algoritmo de Euclides

Mtodo para hallar el mcd de dos nmeros enteros positivos.

Fue creado por el matemtico griego Euclides.

Se basa en:

Si a, b Z+ , entonces mcd(a, b) = mcd(b, a mod b)

252, 198 Z+
198 0
r 252 mod 198
a 198
b 1

252 = 1 . 198 + 54
198 = 3 . 54 + 36
54 = 1 . 36 + 18
36 = 2 . 18 + 0

Ejemplo:

mcd(34, 55)
55 = 1 . 34 + 21
34 = 1 . 21 + 13
21 = 1 . 13 + 8
13 = 1 . 8 + 5
8=1. 5 + 1
5=1. 3 + 2
3=1. 2 + 1
2=1. 2 + 0

Se han efectuado ocho divisiones.

El siguiente teorema proporciona una estimacin de la cantidad de


divisiones necesarias para hallar el mcd:

Demostracin
Al hallar el mcd (a = r0 , b = r1), con a > b, se obtiene:

Se observa que se han realizado n divisiones, donde los


coeficientes son qi 1 y qn 2, pues rn < rn-1 .

Por lo tanto:

Entonces para que existan n divisiones usadas por el algoritmo de


Euclides, tener en cuenta:

Es decir:

Usando:

Obtenemos:

Por transitividad tenemos:

b > n - 1

. . . . . . . . . . (*)

Como:

Entonces aplicando el logaritmo a (*):

Por tanto:
n 1 < 5log10 b

. . . . . . . . . . (**)

Sea b un numero con k digitos de modo que :


b < 10k
Entonces aplicando el logaritmo :
log10 b < k
Reemplazando este ultimo resultado en (**), se tiene:
n - 1 < 5k, k Z
Es decir
n 5k

Una consecuencia del resultado anterior es:

Demostracin
Del teorema 3.1 podemos deducir que para hallar el mcd(a, b) es
necesario
O(log2 a)
divisiones, donde cada divisin emplea
O((log2 a)2)
de operaciones bit.

Por lo tanto:
O(log2 a).O((log2 a)2) = O((log2 a).(log2 a)2) = O((log2 a)3)
operaciones bit.

Algoritmo de Euclides extendido

Sirve para hallar el mcd, el cual es expresado como la


combinacin lineal de dos enteros x e y.

d = ax + by

Ejemplo
mcd(252, 198) esta dado por: d = 18 = 4 x 252 5 x 198

Entrada: a, b Z+ , con a b

MIENTRAS (b > 0)

Salida :d = mcd(a, b), enteros x e y

q a/b ;

r a qb;

SI (b = 0 )

x x2 qx1 ; y y2 qy1 ;

d a;

a b; b r; x2 x1 ;

x 1;

x1 x ; y2 y1 ; y1 y ;

y 0;
FIN SI
Retornar (d, x, y)
x2 1; x1 0;
y2 0; y1 1;

FIN MIENTRAS
d a ; x x2 ; y y2 ;
Retornar (d, x ,y)

Mnimo comn mltiplo

El mcm de los enteros a y b, esta dado por d Z+, si se cumple lo


siguiente:

a|d y b|d.

Si a|c y b|c, entonces d|c.

Ejemplo:

mcd(12, 15) = 60, pues

12|60 y 15|60.

60|c, pues 12|c y 15|c, es decir que c = 120.

Propiedades:

Ejemplo:

Sean a = 12, b = 15. Entonces


mcm(12,15) = (12)(15)/ mcd(12,15)
= 180/3
= 60

Ejemplo:

Sean a = 18, b = 24, c = 36. Entonces


mcm(18,24, 36) = mcm(mcm(18, 24), 36)
= mcm(72, 36)
= 72

Nmeros primos

Es un entero positivo mayor que 1, que tiene dos divisores


enteros positivos, es decir el mismo nmero y la unidad.

Ejemplos:

2; 5; 13; 101; 163; etc.


Un nmero que no es primo, es llamado compuesto.

Lema (*): 1 < a Z+ tiene un divisor primo.

Teorema: Existen infinitamente muchos nmeros primos.


Prueba:
Supongamos que existen una cantidad finita de primos p1 , , pn ,
donde n Z+ .
Sea Qn un entero es decir que
Qn = p1 p2 pn + 1

Por el lema anterior: Q tiene al menos un divisor primo q.


Con esto se tiene una contradiccin, pues se ha supuesto que q
no es uno de los primos.
Si q = pj para algn j, donde 1 j n, entonces como
Qn - p1 p2 pn = 1
pues q divide a ambos trminos (lado izquierdo), se tiene que q|1.
Esto es imposible porque un primo no divide a 1. por tanto q es un
primo que no hemos mostrado.

Nuestro inters por conocer los nmeros primos radica en que ellos son
fundamentales para el criptosistema RSA, para tal efecto hacer un test
de primalidad que distingue nmeros enteros primos de los nmeros
compuestos, es importante.

El test de primalidad bsico es el llamado trial division, el cual establece


lo siguiente:
Un nmero entero n es primo, si y solamente si n no es divisible por
cualquier otro primo que exceda a la n .

El siguiente teorema es til para hallar todos los nmeros


primos menores o iguales que un numero entero positivo
n.

Teorema: Si n es un nmero entero compuesto, entonces n


tiene un factor primo x que no excede a la n
Prueba:
Como n es compuesto, entonces
n = ab
donde a y b son enteros, con 1 < a b < n.

El nmero a debe ser a

ba

n , pues en otro caso:

ab

n. n n

Por el lema (*): El nmero a debe tener un divisor primo, es decir


x|a
Por la propiedad (b) de la divisibilidad, tambin sucede que
x|n.
Por tanto
x

La utilidad del teorema es tal que origina un procedimiento


llamado criva de Erathostenes, que ha continuacin se
presenta mediante un ejemplo.

Ejemplo: Sea n = 100, entonces como la raz cuadrada es


10 tenemos que los primos menores que 10 son:

2; 3; 5; 7, respectivamente

Aplicamos la criva de Erathostenes a estos nmeros


En efecto

Por lo tanto: Los nmeros no marcados distintos de 1 son los primos


buscados.

El procedimiento de Eratosthenes, es aceptable para n


pequeo, sin embargo:

Cuando n es grande, seguir siendo til ?.

Qu cantidad de operaciones realiza ?.

Desde hace cientos de aos, los matemticos han sentido el


deseo de:
Hallar el nmero primo mas grande.

El investigador Mersenne:
Siendo p un primo, el nmero primo mas grande se calcula
mediante 2p -1

Ejemplo:

El nmero primo mas grande: 224036583 -1.

Teorema fundamental de la aritmtica

Todo 2 n Z puede ser factorizado y expresado como el


producto de sus potencias primas, es decir

Propiedades

1)

Si
Entonces

Ejemplos:

2)

Sean a, b Z. Estos nmeros enteros son llamados


relativamente primos o coprimos, si mcd(a,b) =1.

Ejemplos:

Los nmeros a = 15 y b = 17 son coprimos, pues el mcd(15, 17) = 1.

Congruencia

Fue creado por Karls F. Gauss.

La congruencia hace posible


relaciones de divisibilidad.

trabajar

La congruencia
encriptacin

los

es

til

para

con

las

mtodos

de

Definicin

Sean n Z+ un nmero entero, sean adems a, b Z.


Entonces a b (mod n), s n | (a - b).

Ejemplo

300 150 (mod 3), s 3 | (300 - 150).

300 no es congruente con 150 modulo 4, porque ?.

Teorema

Sean a, b dos nmeros enteros. Entonces


a b (mod n) k Z tal que a = b + kn

Ejemplo

300 150 (mod 3), pues k = 50 tal que 300 = 150 + (50)
(3).

300 no es congruente con 150 modulo 4, pues no existe k.

Propiedades

a, a

, b, b1 , c Z. Se cumple:

Teorema

a, b, c Z. Se cumple:

NOTA

De acuerdo con el teorema anterior, el conjunto de enteros


se divide en n conjuntos diferentes llamado congruencia
modulo n.

Ejemplo

Sea n = 4. Entonces:

Ejemplo

Ejemplo

Ejemplo

Ejemplo

Ejemplo

Ejemplo

Ejemplo

Hasta aqu es el examen parcial I: 12/06/09

Enteros modulo n: Zn

Es el conjunto de enteros dado por


{0,1, . . . , n -1}

En Zn se pueden realizar las operaciones de:

Adicin
Sustraccin
Multiplicacin

Importancia

Es muy usado en criptografa.

Operaciones en Zn

Adicin

Sean a, b Zn . Entonces

Ejemplo

Sea Z15 = {0,1, . . . , 14}. Entonces siendo 6 Z15 y 9 Z15


tenemos que 6 + 9 = 0 Z15 , pues 6 + 9 0 (mod 15)

Ejemplo

Sea Z25 = {0,1, . . . , 24}. Entonces siendo 13 Z25 y 16 Z25


tenemos que 13 + 16 = 4 Z25 , pues 13 + 16 4 (mod 25)

Multiplicacin

Sean a, b Zn . Entonces la multiplicacin modular se realiza


multiplicando a y b como si fuesen enteros comunes, para
luego escoger el resto de la divisin de tal producto por n.

Ejemplo

Ejemplo

Sea Z25 = {0,1, . . . , 24}. Entonces siendo 13 Z25 y 16 Z25


tenemos que 13 x 16 = 8 Z25 , pues 13 x 16 8 (mod 25)

Inverso multiplicativo

Sean los enteros a y n > 0, entonces el inverso multiplicativo


de a modulo n esta dado por el entero y Zn tal que
a x y 1(mod n)

NOTA

Si y existe, entonces es nico


El numero a es llamado invertible.
El inverso de a se denota por a-1 .

Ejemplo

Sea Z9 = {0,1, . . . , 8}. Entonces los elementos invertibles son


{1, 2, 4, 5, 7, 8}
El inverso de a = 4 es y = a-1 = 7, pues 4 x 7 1 (mod 9)
El inverso de a = 7 es y = a-1 = 4, pues 7 x 4 1 (mod 9)

Propiedad

Sean a Z , entonces a es invertible sii mcd(a,n) = 1.


n

Ejemplo

Sea Z9 = {0,1, . . . , 8}. Entonces

2 es invertible, pues el mcd(2, 9) = 1

4 es invertible, pues el mcd(4, 9) = 1.

Algoritmo

Divisin
Sean a, b Zn . La divisin de a por b modulo n esta
dado por el producto de a por b-1 modulo n, es decir
a b (mod n) = a x b-1 (modulo n)

Ejemplo

Sea Z9 = {0,1, . . . , 8}. Entonces

Siendo 3 Z9 y 4 Z9 , tenemos:
3 4 (mod 9) = 3 = 3 x 7 (modulo 9)

Exponenciacin
Es una operacin bsica para la criptografa.

El algoritmo emplea una representacin binaria del


nmero entero k tal que
k = k0 20 + k1 21 + . . . + kt 2t
donde cada ki = {0, 1}, es decir cada k asume una valor o o 1.

Ejemplo

Sea Z9 = {0,1, . . . , 8}. Entonces

5 Z9 y puede ser representado por:

5 = 1 x 20 + 0 x 2 1 + 1 x 2 2

Algoritmo

Ejemplo

Sea Z1234 = {0,1, . . . , 1233}, donde

a = 5 Z1234

k = 596

Entonces el algoritmo reporta

5596 mod (1234) = 1013


donde:
596 = 0 x 20 + 0 x 21 + 1 x 22 + 0 x 23 + 1 x 24 + 0 x 25 + 1 x 26 +
0 x 27 + 0 x 28 + 1 x 29 .

Grupo multiplicativo

Sea n un nmero entero, el grupo multiplicativo de Zn


esta dado por:

Si n es un numero entero primo, el grupo multiplicativo


de Zn esta dado por:

Ejemplo:

Problema de factorizacin entera

El teorema fundamental de la aritmtica establece que:

Cada nmero entero positivo puede ser escrito como el


producto de nmeros primos.

La factorizacin es importante para los criptosistemas:

RSA.

Rabin.

El problema se enuncia:

Dado un nmero entero n Z+ , entonces

NOTA:

Decidir cuando un nmero entero es compuesto o primo,


en general es mas fcil que el problema de factorizar.

Antes de factorizar es mejor primero testar la primalidad.

La literatura reporta algoritmos clasificados en:

Factorizacin de propsito especial

El tiempo de ejecucin de los algoritmos depende de las propiedades de


los factores de n:

Algoritmo de divisin trial

Algoritmo de Rho Pollard

Algoritmo de (p - 1) Pollard

Lenstra elliptic curve factorization

Congruence of squares

Special number field sieve

Factorizacin de propsito general

El tiempo de ejecucin de los algoritmos depende de las


propiedades del tamao de n:

Algoritmo de quadratic sieve

Algoritmo de number field sieve

Division trial
Factora un nmero entero positivo n, mediante la verificacin de:

n es divisible por 2
n es divisible por 3
n es divisible por 4
...

El proceso termina despus de verificar cuando n es divisible por x,


donde x Z+ es escogido por el usuario.

Ejemplo
Sea n = 314159265, entonces la divisin trial considerando a x = 10,
origina las siguientes computaciones:

314159265 no es divisible por 2


314159265 es divisible por 3, es decir 314159265 / 3 = 104719755
104719755 es divisible por 3, es decir 104719755 / 3 = 34906585
34906585

no es divisible por 3

34906585

no es divisible por 4

34906585

es divisible por 5 es decir 34906585/5 = 6981317

6981317

no es divisible por 5

6981317

no es divisible por 6

6981317

no es divisible por 7

6981317

no es divisible por 8

6981317

no es divisible por 9

6981317

no es divisible por 10

Algoritmo de Rho Pollard

Ejemplo:
n = 455459
El algoritmo reporta:
a = 743
b = 613

Algoritmo de Quadratic sieve


n = 24961

24961 157

S = {-1,2,3,5,13,23}, tamao es t = 6

b =23 es el pt -suave

B es llamado suave:

v1 + v2 + v5 = 0 T = {1,2,5}
x = (a1 a2 a5 mod n) = 936

l1 = 1, l2 = 3, l3 = 2, l4 = 0, l5 = 1, l6 = 0
y = -23 32 13 mod n = 24025

Como 936 -24025 (mod n), entonces se debe hallar otra dependencia
lineal
v3 + v6 + v7 = 0 T = {3,6,7}
x = (a3 a6 a7 mod n) = 23405;

l1 = 1, l2 = 5, l3 = 2, l4 = 3, l5 = 0, l6 = 0

y = -25 32 53 mod n = 13922


d = mcd

(x-y,n) =
mc

d(9483,2

Como 23405 13922 (mod n), se debe hallar el mcd


49 61) =

10 9

Algoritmo de number field sieve:


Actualmente es el mejor algoritmo para factorizar mas de 115
dgitos.
Fu propuesto por J.M. Pollard, luego mejorado por Buhler,
Lenstra y Pomerance.
En el 2003 se le aplic para factorizar un nmero de 160
dgitos, por lo que se le conoci como RSA-160.

Problema de residuo cuadrtico modulo n

Sean p un primo e impar, mcd(p, a) = 1. Entonces


a es un cuadrado perfecto modulo p ?

Ejemplo

P = 7, mcd(7, 4) = 1
4 es un cuadrado perfecto modulo 7?

Residuo cuadrtico

Si n es un entero positivo, entonces a es residuo cuadrtico


de n si mcd(a , n) = 1 y x2 a(mod n) tienen solucin.

NOTA

a Zn .

a no es residuo cuadrtico de n, si x2 a(mod n) tienen no


solucin.

Ejemplo

Para determinar qu enteros son residuos cuadrticos de n


= 11, primero computar los cuadrados de x = 1, 2, , 10.

Por lo tanto:

Los residuos cuadrticos de 11 son: a = 1, 3, 4, 5, 9


pues mcd(1, 11) = mcd(3, 11) = mcd(4, 11) = mcd(5, 11) = mcd(9, 11) = 1.

Los residuos no cuadrticos de 11 son: a = 2, 6, 7, 8, 10


pues reemplazando los as en x2 a(mod n), vemos que no
existen xs.

Lema: Sean p un primo impar, a un entero no divisible por p.


Entonces x2 a(mod p) no tiene soluciones o tiene
exactamente dos soluciones incongruentes modulo p.

Teorema: Sea p un primo impar, entonces:


existen exactamente (p - 1)/2 residuos cuadrticos de p y
existen exactamente (p - 1)/2 residuos no cuadrticos de p
entre los enteros 1, 2, . . . , p 1.

Definicin: Sean p un primo impar, a un entero no divisible


por p. Entonces el smbolo de Legendre se define por:

NOTA: De la definicin anterior se deduce que es posible


tener un conjunto de residuos cuadrticos denotado por Q p .

Ejemplo: Teniendo en cuenta el ejemplo anterior, los


smbolos de Legendre son:

El siguiente criterio llamado de Euler, sirve para decidir


cuando un entero es residuo cuadrtico de un primo

Teorema: Sean p un entero primo e impar, a un entero


positivo no divisible por p. Entonces

Ejemplo: Sean p = 23, a = 5. Entonces

Es decir 511 -1 (mod 23).


Por lo tanto: a = 5 no es residuo cuadrtico del primo p = 23.

Teorema: Sean p un entero primo e impar; sean adems a,


b dos enteros no divisibles por p . Entonces

El smbolo de Jacobi es una generalizacin del smbolo de Legendre, y es


til para evaluar los smbolos de Legendre, asi como para definir los
pseudoprimos.

Podemos concluir aceptando la existencia de dos conjuntos:

Por lo tanto, tenemos dos casos:

El siguiente resultado es importante:


Existe un algoritmo de tiempo polinomial que computa el smbolo
de jacobi

Siempre que n es un nmero impar grande mayor que 1 y el


mcd(a, n) = 1.

Problema de la raz cuadrada modulo n

Es muy usado en criptografa, donde para hallar la raz se


debe tener en cuenta si el nmero es primo o compuesto.

Raz cuadrada cuando p es primo

La raz se obtiene usando un algoritmo.

La complejidad del algoritmo emplea O((log p)4)


operaciones bit.

Ejemplo:

Sean p = 23, a = 5. Entonces r = 0.

Sean p = 23, a = 4. Entonces r = 2.

Sean p = 7, a = 4. Entonces r = 2.

Sean p = 101, a = 80. Entonces r = 79.

Raz cuadrada cuando n es compuesto

Se considera n = pq, donde p y q son primos distintos e


impares.

Decidir cuando a Z*n es residuo cuadrtico modulo un


entero compuesto n, se cree que es un problema difcil.

Si

Usar el smbolo de Jacobi, con

, decidir si a es residuo cuadrtico es un problema.

Para este caso existe un algoritmo, cuya complejidad es


O((log p)3) operaciones bit.

También podría gustarte