Un tercer ejemplo: verificación de primalidad

Documentos relacionados
RSA: Implementación. Ya resolvimos (3), ahora vamos a resolver (2). IIC3242 Complejidad Probabiĺıstica 28 / 77

Clase 1: Primalidad. Matemática Discreta - CC3101 Profesor: Pablo Barceló. P. Barceló Matemática Discreta - Cap. 5: Teoría de números 1 / 32

R no es enumerable. Por contradicción, supongamos que existe una biyección f : N! R. diagonalización de Cantor. Para cada i 2 N:

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Capítulo VI. Congruencias, Z n y Z n, Etc.

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Capítulo 4: Polinomios

Anillo de polinomios con coeficientes en un cuerpo

El Teorema Fundamental del Álgebra

Aritmética entera. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Aritmética entera 1 / 15

Conjuntos, relaciones y funciones Susana Puddu

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

FÓRMULA PARA OBTENER NÚMEROS DE CARMICHAEL CON n FACTORES PRIMOS, DONDE n 3.

Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que

Teoría de Números. UCR ECCI CI-1204 Matemática Discretas Prof. M.Sc. Kryscia Daviana Ramírez Benavides

Tema 2: El grupo de las permutaciones

PROBLEMAS RESUELTOS DE PREPARACIÓN PARA OPOSICIONES. Problemas 02

Aritmética Modular MATEMÁTICA DISCRETA I. F. Informática. UPM. MATEMÁTICA DISCRETA I () Aritmética Modular F. Informática.

ALGEBRA I, ALGEBRA Y TRIGONOMETRIA , Segundo Semestre CAPITULO 6: POLINOMIOS.

Criterios de divisibilidad y Congruencias

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO 6. POLINOMIOS DE UNA VARIABLE.

Ampliación Matemática Discreta. Justo Peralta López

Sesión del día 11 de Marzo del 2011 y tutoría del día 12 de Marzo del 2011

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Tema 3: Espacios vectoriales

Terminaremos el capítulo con una breve referencia a la teoría de cardinales.

NÚMEROS COMPLEJOS 1.1. INTRODUCCIÓN 1.2. OPERACIONES CON COMPLEJOS

Cálculo Diferencial: Enero 2016

Definición 1. Dado un conjunto C una aplicación definida por : C C C

COMPLEMENTO DEL TEÓRICO

Espacios compactos. Capítulo Cubiertas. En este capítulo estudiaremos el concepto de compacidad en un espacio métrico.

MATE 4032: Álgebra Abstracta. 1. Suponga que I, J son ideales de un anillo R. Demuestre que I J es un ideal

Teoría de Números. 22 de julio de 2012

TEMA 5. FACTORIZACIÓN DE POLINOMIOS.

Generación de variables aleatorias continuas Método de rechazo

b) Sea una relación de equivalencia en A y una operación en A. Decimos que y son compatibles si a b a c b c y c a c b para todo a, b, c A

Semana05[1/14] Relaciones. 28 de marzo de Relaciones

El Conjunto de los Números Naturales

IIC2213. IIC2213 Teorías 1 / 42

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica

TEORIA DE NUMEROS DIVISIBILIDAD Y NUMEROS PRIMOS. PRUEBAS DE PRIMALIDAD. LA CRIBA DE ERATOSTENES. ALGORITMOS. TEOREMA: EXISTENCIA DE INFINITOS PRIMOS.

TEMA 1.- POLINOMIOS Y FRACCIONES ALGEBRAICAS

Factorización ecuación identidad condicional término coeficiente monomio binomio trinomio polinomio grado ax3

Análisis Matemático I: Numeros Reales y Complejos

El Conjunto de los Números Naturales

Capítulo 2: Inducción y recursión Clase 2: El principio de Inducción Fuerte

Los Números Enteros. 1.1 Introducción. 1.2 Definiciones Básicas. Capítulo

= 310 (1 + 5) : 2 2 = = = 12 ( 3) ( 5) = = 2 = ( 4) + ( 20) + 3 = = 21

Espacios Vectoriales

Límite superior y límite inferior de una sucesión

(TALF- ITIS- C) Clase 3 5 de Octubre de 2010

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

Semana 09 [1/28] Sucesiones. 29 de abril de Sucesiones

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

Teorías decidibles. Definición. Ejercicio

Aritmética del reloj. Mate 3041 Profa. Milena R. Salcedo Villanueva

Teoría de Números. Divisibilidad. Olimpiada de Matemáticas en Tamaulipas

Tema 1. Espacios Vectoriales Definición de Espacio Vectorial

AMPLIACIÓN DE MATEMÁTICAS. REPASO DE MATEMÁTICAS DISCRETA. CONGRUENCIAS. En el conjunto de los números enteros

Ecuaciones Diofánticas

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

TEMA 6: DIVISIÓN DE POLINOMIOS RAÍCES MATEMÁTICAS 3º ESO

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones

Algoritmos para determinar Caminos Mínimos en Grafos

GUIA DE CATEDRA Matemática Empresarial Guía N.3 F. Elaboración 09 abril /11 F. 1 Revisión 09/04/11 Pagina 1 de 8

MATEMÁTICAS TEMA 50. Polinomios. Operaciones. Fórmula de Newton. Divisibilidad de polinomios. Fracciones algebraicas

Capítulo 3: El anillo de los números enteros

DIVISIBILIDAD: Resultados

Conjuntos Infinitos. Ramón Espinoza Armenta AVC APOYO VIRTUAL PARA EL CONOCIMIENTO

Estructuras Algebraicas

Enunciados de los problemas (1)

Espacios topológicos. 3.1 Espacio topológico

Divisibilidad. Rafael F. Isaacs G. * Fecha: 14 de abril de 2005

CAPÍTULO 2 NOCIONES BÁSICAS DE TEORÍA DE CONJUNTOS

SISTEMA DE MONOMIOS PARA UN CUERPO RESIDUAL REAL CERRADO

Grupos libres. Presentaciones.

Sobre la Construcción Axiomática de los Números Naturales

Problemas de VC para EDVC elaborados por C. Mora, Tema 4

TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN

gr(p(x)) = n = deg(p(x)), cuando a n 0. El conjunto de todos los polinomios con coeficiente en K lo denotamos por K[x]

ELEMENTOS DE LA MATEMATICA

6.1. Anillos de polinomios.

POLINOMIOS En esta unidad aprenderás a:

May 4, 2012 CAPÍTULO 5: OPTIMIZACIÓN

Objetivos formativos de Álgebra

4.1. Polinomios y teoría de ecuaciones

(MAT021) 1 er Semestre de z + e = (x + iy) + (e 1 + ie 2 ) = (x + e 1 ) + i(y + e 2 ) = x + iy

Notación Asintótica 2

Clase 4 Funciones polinomiales y racionales

UNIDAD 5 : ESTRUCTURAS ALGEBRAICAS

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

520142: ALGEBRA y ALGEBRA LINEAL

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

1. NÚMEROS PRIMOS Y COMPUESTOS.

Desde la secundaria estamos acostumbrados a trabajar con polinomios, los cuales identificamos con expresiones de la forma

Continuidad y monotonía

Conjuntos Numéricos I

Transcripción:

Un tercer ejemplo: verificación de primalidad Vamos a ver un algoritmo aleatorizado para verificar si un número es primo. I Este algoritmo es más eficiente que los algoritmos sin componentes aleatorias para este problema El ingrediente fundamental para el algoritmo es el uso de aritmética modular I Vamos a repasar algunos conceptos y resultados fundamentales sobre ella IIC2283 Algoritmos aleatorizados 32 / 109

Para recordar: aritmética modular Dados dos números a, b 2 Z, sib > 0 entonces existen, que 0 apple <b y 2 Z tales a = b + Además, estos números, son únicos es llamado el resto de la división entera entre a y b, y es denotado como a mod b I Por ejemplo, 8 mod 3 = 2, 9 mod 3 = 0 y ( 8) mod 3 = 1 IIC2283 Algoritmos aleatorizados 33 / 109

Para recordar: aritmética modular Definición b c mod n si n divide a (c b) Usamos la notación n m para indicar que n divide a m I b c mod n si n (c b) IIC2283 Algoritmos aleatorizados 34 / 109

Para recordar: algunas propiedades básicas Proposición 1. a b mod n si y sólo si a mod n = b mod n 2. a (a mod n) mod n 3. Si a b mod n y c d mod n, entonces: (a + c) (b + d) mod n (a c) (b d) mod n Ejercicios 1. Demuestre la proposición 2. Demuestre que un número n es divisible por 3 si y sólo si la suma de sus dígitos es divisible por 3 IIC2283 Algoritmos aleatorizados 35 / 109

Para recordar: una propiedad fundamental Teorema (Fermat) Sea p un número primo. Si a 2{0,...,p 1}, entonces a p a mod p Demostración: Por inducción en a Para a =0ya = 1 se cumple trivialmente. Suponga que a p a mod p y 2 apple (a + 1) < p Sabemos que: (a + 1) p = px k=0 p a k k IIC2283 Algoritmos aleatorizados 36 / 109

Para recordar: una propiedad fundamental Por lo tanto: (a +1) p (a +1) = (a p a)+ p 1 X k=1! p a k k Lema Si k 2{1,...,p 1}, entoncesp p k Demostración: Sabemos que:! p p! = k k! (p k)! = p (p 1)... (p k +1) k! Como k 2{1,...,p 1} y p es un número primo: (p 1)... (p k+1) k! es un número entero IIC2283 Algoritmos aleatorizados 37 / 109

Para recordar: una propiedad fundamental Por lo tanto: p k = p, donde es un número entero I Concluimos que p p k Del lema concluimos que p Xp 1 k=1 p a k k Por lo tanto, dado que p (a p a) por hipótesis de inducción, tenemos que: p ((a + 1) p (a + 1)) I Concluimos que (a + 1) p (a + 1) mod p IIC2283 Algoritmos aleatorizados 38 / 109

Aritmética modular: una propiedad fundamental Corolario (Fermat) Sea p un número primo. Si a 2{1,...,p 1}, entonces a p 1 1 mod p Demostración: Por teorema anterior sabemos que a p a mod p Por lo tanto: existe un número entero tal que a p a = p IIC2283 Algoritmos aleatorizados 39 / 109

Aritmética modular: una propiedad fundamental Dado que a (a p a), se tiene que a ( p) Por lo tanto, dado que a 2{1,...,p concluye que a 1} y p es un número primo, se Entonces: (a p 1 1) = a p, donde a es un número entero. I Concluimos que a p 1 1modp IIC2283 Algoritmos aleatorizados 40 / 109

Otra noción importante: máximo común divisor Sea MCD(a, b) el máximo común divisor de los números a y b I Cómo podemos calcular MCD(a, b)? Proposición Si b > 0, entonces MCD(a, b) =MCD(b, a mod b) Demostración: Vamos a demostrar que un número c divide a a y b si y sólo si c divide a b y a mod b I De esto se concluye que MCD(a, b) = MCD(b, a mod b) IIC2283 Algoritmos aleatorizados 41 / 109

Máximo común divisor Sabemos que a = b +(a mod b) ()) Suponga que c a y c b. Dado que (a mod b) =a b, concluimos que c (a mod b). (() Suponga que c b y c (a mod b). Dado que a = b +(a mod b), tenemos que c a IIC2283 Algoritmos aleatorizados 42 / 109

Cálculo de máximo común divisor De lo anterior, concluimos la siguiente identidad para a > 0: ( a b =0 MCD(a, b) = MCD(b, a mod b) b > 0 Usamos esta identidad para generar un algoritmo para calcular el máximo común divisor: MCD(a, b) if a =0and b =0then return error else if a =0then return b else if b =0then return a else if a b then return MCD(b, a mod b) else return MCD(a, b mod a) Cuál es la complejidad del algoritmo? IIC2283 Algoritmos aleatorizados 43 / 109

La complejidad del algoritmo Lema Si a b y b > 0, entonces (a mod b) < a 2 Demostración: Si b > a 2 : a mod b = a b < a a 2 = a 2 IIC2283 Algoritmos aleatorizados 44 / 109

La complejidad del algoritmo Si b < a 2,existek tal que a 2 < k b apple a. Por lo tanto: a mod b apple a k b < a a 2 = a 2 Si b = a 2 (a debe ser par): a mod b = 0 < b apple a IIC2283 Algoritmos aleatorizados 45 / 109

La complejidad del algoritmo Ejercicio Suponga que la operación básica para el algoritmo MCD es el cálculo de la función x mod y. Muestre entonces que el algoritmo en el peor caso es O(log 2 (máx{a, b})), suponiendo que la entrada es (a, b) I Vale decir, MCD es de orden lineal en el tamaño de la entrada en el peor caso IIC2283 Algoritmos aleatorizados 46 / 109

Una identidad útil Identidad de Bézout Para cada a, b 2 N tales que a 6= 0ob 6= 0, existen s, t 2 Z tales que: MCD(a, b) = s a + t b Demostración: Sea D = {n 2 N n > 0yexistens, t 2 Z tal que n = s a + t b} Dado que a 6= 0ob 6= 0, se tiene que D 6= ; y, por lo tanto, D tiene un menor elemento I Sea d este elemento, y suponga que d = s 0 a + t 0 b IIC2283 Algoritmos aleatorizados 47 / 109

Una identidad útil Existen, 2 N tales que 0 apple <d y a = d + Como d = s 0 a + t 0 b, tenemos que d = s 0 a + t 0 b I Concluimos que a = s 0 a + t 0 b Entonces tenemos que =(1 s 0 ) a +( t 0 ) b Dado que 0 apple <d y d es el menor elemento en D, concluimos que =0 I Por lo tanto d a IIC2283 Algoritmos aleatorizados 48 / 109

Una identidad útil De la misma forma concluimos que d b Sea c 2 N tal que c a y c b Se tiene entonces que c (s 0 a + t 0 b) I Por lo tanto c d, locualimplicaquec apple d Concluimos que d a, d b yparatodoc tal que c a y c b, setiene que c apple d I Por lo tanto d = MCD(a, b) IIC2283 Algoritmos aleatorizados 49 / 109

Una última noción importante: inverso modular Definición b es inverso de a en módulo n si a b 1 mod n Ejemplo 37 es inverso de 13 en módulo 60 Todo número tiene inverso modular? I No, 2 no tiene inverso en módulo 4 Bajo qué condiciones a tiene inverso en módulo n? IIC2283 Algoritmos aleatorizados 50 / 109

Una última noción importante: inverso modular Teorema a tiene inverso en módulo n si y sólo si MCD(a, n) =1 Demostración: ()) Suponga que b es inverso de a en módulo n I Entonces: a b 1modn Se deduce que a b = n + 1, por lo que 1=a b n Concluimos que si c a y c n, entonces c 1 I Por lo tanto c debe ser igual a 1, de lo que concluimos que MCD(a, n) =1 IIC2283 Algoritmos aleatorizados 51 / 109

Inverso modular: existencia (() Suponga que MCD(a, n) =1 Por la identidad de Bézout existen s, t 2 Z tales que: 1 = s n + t a Por lo tanto: a t 1modn I Concluimos que a tiene inverso en módulo n IIC2283 Algoritmos aleatorizados 52 / 109

Test de primalidad: primer ingrediente El test de primalidad que vamos a estudiar está basado en estas propiedades (n 3): 1. Si n es primo y a 2{1,...,n 1}, entonces a n 1 1modn 2. Si n es compuesto, entonces existe a 2{1,...,n 1} tal que a n 1 6 1modn Demostración de 2. Sea a 2{1,...,n 1} tal que MCD(a, n) > 1 I a no tiene inverso en módulo n Concluimos que a n I Dado que a n 1 6 1moda 2 no puede ser inverso de a en módulo n IIC2283 Algoritmos aleatorizados 53 / 109

Test de primalidad: primer ingrediente Para n 2, sea: Z n = {a 2{1,...,n 1} MCD(a, n) =1} Sabemos que para n compuesto: Si a 2 ({1,...,n a n 1 6 1modn 1} rz n), entonces Test de primalidad depende de cuan grande es Z n I Función de Euler: (1) = 0 y (n) = Z n para n 2 IIC2283 Algoritmos aleatorizados 54 / 109

Una cota inferior para la función de Euler Teorema n (n) 2 log 2 (log 2 (n)) Conclusión Para un número compuesto n, el conjunto Z n puede tener un gran número de elementos. I No podemos basar nuestro test en los elementos del conjunto ({1,...,n 1} rz n) IIC2283 Algoritmos aleatorizados 55 / 109

Test de primalidad: segundo ingrediente Una observación importante: si n es compuesto, entonces puede existir a 2 Z n tal que a n 1 6 1modn. I Por ejemplo: 3 15 mod 16 = 11 En lugar de considerar Z n en el test de primalidad, consideramos: J n = {a 2 Z n a n 1 1modn} Si demostramos que para cada número compuesto n se tiene que J n apple 1 2 Z n, entonces tenemos un test de primalidad. I Puesto que para p primo: J p = Z p = p 1 IIC2283 Algoritmos aleatorizados 56 / 109

Test de primalidad: segundo ingrediente Cómo funcionaría el test de primalidad? I Con que salidas se podría equivocar? Cuál sería la probabilidad de error? Qué enfoque podríamos usar para demostrar que J n apple 1 2 Z n (para un número n compuesto)? I Teoría de grupos juega también un papel fundamental en el desarrollo del test de primalidad IIC2283 Algoritmos aleatorizados 57 / 109

Teoría de grupos Definición Un conjunto G y una función (total) : G G! G forman un grupo si: 1. Para cada a, b, c 2 G: (a b) c = a (b c) 2. Existe e 2 G tal que para cada a 2 G: a e = e a = a 3. Para cada a 2 G, existeb 2 G: a b = b a = e Propiedades básicas I Neutro es único: Si e 1 y e 2 satisfacen 2, entonces e 1 = e 2 I Inverso de cada elemento a es único: Si a b = b a = e y a c = c a = e, entonces b = c IIC2283 Algoritmos aleatorizados 58 / 109

Teoría de grupos: algunos ejemplos Ejercicios Muestre que los siguientes son grupos: 1. (Z n, +), donde Z n = {0, 1,...,n 1} y + es la suma en módulo n 2. (Z n, ), donde es la multiplicación en módulo n 3. (J n, ), donde es la multiplicación en módulo n IIC2283 Algoritmos aleatorizados 59 / 109

Teoría de grupos: subgrupos Definition (H, )esunsubgrupodeungrupo(g, ), para ; ( H G, si(h, )es un grupo. Ejercicio Demuestre que (J n, ) esunsubgrupode(z n, ) Propiedades básicas I Si e 1 es el neutro en (G, )ye 2 es el neutro de (H, ), entonces e 1 = e 2 I Para cada a 2 H, sib es el inverso de a en (G, )yc es el inverso de a en (H, ), entonces c = b IIC2283 Algoritmos aleatorizados 60 / 109

Subgrupos: demostración de las propiedades básicas I Suponga que e 1 es el neutro en (G, )ye 2 es el neutro de (H, ) I Vamos a demostrar que e1 = e 2 Dado que e 1 es el neutro en (G, ): e 2 e 1 = e 2 Dado que e 2 es el neutro en (H, ): e 2 e 2 = e 2 I Nótese que usamos la misma operación en H y G Concluimos que e 2 e 1 = e 2 e 2 IIC2283 Algoritmos aleatorizados 61 / 109

Subgrupos: demostración de las propiedades básicas Sea e 1 2 el inverso de e 2 en (G, ). Entonces: e 2 e 1 = e 2 e 2 ) e 1 2 (e 2 e 1 )=e 1 2 (e 2 e 2 ) ) (e 1 2 e 2 ) e 1 =(e 1 2 e 2 ) e 2 ) e 1 e 1 = e 1 e 2 ) e 1 = e 2 Por lo tanto: e 1 = e 2 IIC2283 Algoritmos aleatorizados 62 / 109

Subgrupos: demostración de las propiedades básicas I Sea a 2 H, y suponga que b es el inverso de a en (G, )yc es el inverso de a en (H, ) I Vamos a demostrar que c = b Sea e el neutro en (G, )y(h, ) I Por la primera propiedad, sabemos que (G, ) y(h, ) tienen el mismo neutro Dado que b es el inverso de a en (G, ): a b = e Dado que c es el inverso de a en (H, ): a c = e IIC2283 Algoritmos aleatorizados 63 / 109

Subgrupos: demostración de las propiedades básicas Concluimos que: a b = a c Sea a 1 el inverso de a en (G, ). Entonces: a b = a c ) a 1 (a b) =a 1 (a c) ) (a 1 a) b =(a 1 a) c ) e b = e c ) b = c Por lo tanto: b = c IIC2283 Algoritmos aleatorizados 64 / 109

Teoría de grupos: una propiedad fundamental Teorema (Lagrange) Si (G, ) es un grupo finito y (H, ) es un subgrupo de (G, ), entonces H divide a G Demostración: Suponga que e es el elemento neutro de (G, )ya 1 es el inverso de a en (G, ) Sea una relación binaria sobre G definida como: a b si y sólo si b a 1 2 H Lema es una relación de equivalencia. IIC2283 Algoritmos aleatorizados 65 / 109

Teorema de Lagrange: demostración del primer lema I a a ya que a a 1 = e y e 2 H I Suponga que a b I Tenemos que demostrar que b a Dado que a b: b a 1 2 H I Tenemos que demostrar que a b 1 2 H Tenemos que: (b a 1 ) (a b 1 ) = (b (a 1 a)) b 1 = (b e) b 1 = b b 1 = e IIC2283 Algoritmos aleatorizados 66 / 109

Teorema de Lagrange: demostración del primer lema De la misma forma concluimos que (a b 1 ) (b a 1 )=e I Por lo tanto: (b a 1 ) 1 = a b 1 Concluimos que a de (G, ) b 1 está en H, yaque(h, ) es un subgrupo I Suponga que a b y b c I Tenemos que demostrar que a c Por hipótesis: b a 1 2 H y c b 1 2 H I Tenemos que demostrar que c a 1 2 H Pero (c b 1 ) (b a 1 )=c a 1 y es cerrada en H I Por lo tanto: c a 1 2 H IIC2283 Algoritmos aleatorizados 67 / 109

Teorema de Lagrange: demostración Sea [a] la clase de equivalencia de a 2 G bajo la relación Lema 1. [e] = H 2. Para cada a, b 2 G: [a] = [b] Del lema se concluye el teorema. I Puesto que las clases de equivalencia de particionan G IIC2283 Algoritmos aleatorizados 68 / 109

Teorema de Lagrange: demostración del segundo lema 1. Se tiene que: a 2 [e], e a, a e 1 2 H, a e 2 H, a 2 H 2. Sean a, b 2 G, y defina la función f de la siguiente forma: f (x) = x (a 1 b) IIC2283 Algoritmos aleatorizados 69 / 109

Teorema de Lagrange: demostración del segundo lema Se tiene que: x 2 [a] ) a x ) x a 1 2 H ) (x a 1 ) e 2 H ) (x a 1 ) (b b 1 ) 2 H ) (x (a 1 b)) b 1 2 H ) f (x) b 1 2 H ) b f (x) ) f (x) 2 [b] Por lo tanto: f :[a]! [b] I Vamos a demostrar que f es una biyección, de lo cual concluimos que [a] = [b] IIC2283 Algoritmos aleatorizados 70 / 109

Teorema de Lagrange: demostración del segundo lema f es 1-1: f (x) =f (y) ) x (a 1 b)=y (a 1 b) ) (x (a 1 b)) (b 1 a)= (y (a 1 b)) (b 1 a) ) x (a 1 (b b 1 ) a) = y (a 1 (b b 1 ) a) ) x ((a 1 e) a) =y ((a 1 e) a) ) x (a 1 a)=y (a 1 a) ) x e = y e ) x = y IIC2283 Algoritmos aleatorizados 71 / 109

Teorema de Lagrange: demostración del segundo lema f es sobre: y 2 [b] ) b y ) y b 1 2 H ) (y b 1 ) (a a 1 ) 2 H ) ((y b 1 ) a) a 1 2 H ) a ((y b 1 ) a) ) ((y b 1 ) a) 2 [a] Sea x =((y b 1 ) a). Tenemos que: f (x) = x (a 1 b) = ((y b 1 ) a) (a 1 b) = y (b 1 (a a 1 ) b) = y ((b 1 e) b) = y (b 1 b) = y e = y IIC2283 Algoritmos aleatorizados 72 / 109

Test de primalidad: segundo ingrediente (continuación) Pregunta pendiente: Qué enfoque podríamos usar para demostrar que J n apple 1 2 Z n? I Usamos el Teorema de Lagrange! Dado que (J n, ) es un subgrupo de (Z n, ): Si existe a 2 (Z n r J n ), entonces J n apple 1 2 Z n Tenemos entonces nuestro test de primalidad? I Lamentablemente no todavía: números de Carmichael I Pero lo que hemos aprendido va a ser fundamental para desarrollar el test de primalidad IIC2283 Algoritmos aleatorizados 73 / 109

Test de primalidad: segundo ingrediente (continuación) Definition Un número n es de Carmichael si n 2, n es compuesto y J n = Z n Ejemplo 561, 1105 y 1729 son números de Carmichael. Teorema (Alford-Granville-Pomerance) Existe un número infinito de números de Carmichael. IIC2283 Algoritmos aleatorizados 74 / 109

Test de primalidad: tercer ingrediente Conclusión: el test basado en J n no va a funcionar. Qué hacemos entonces? I En lugar de utilizar J n, vamos a usar las herramientas que desarrollamos sobre el siguiente conjunto (n impar): S n = {a 2 Z n a n 1 2 1modn ó a n 1 2 1modn} Esto sí funciona! IIC2283 Algoritmos aleatorizados 75 / 109

Test de primalidad: un intento exitoso Vamos a diseñar un test de primalidad considerando los conjuntos: S + n = {a 2 Z n a n 1 2 1modn} S n = {a 2 Z n a n 1 2 1modn} S n = S + n [ S n Para hacer esto necesitamos estudiar algunas propiedades de los conjuntos S n +, S n y S n I Consideramos primero el caso en que n es primo, y luego el caso en que n es compuesto IIC2283 Algoritmos aleatorizados 76 / 109

Una propiedad fundamental de S n para n primo Proposición Si n 3 es primo, entonce S n = Z n Demostración: Si a 2{1,...,n 1}, tenemos que a n 1 1modn Por lo tanto (a n 1 2 ) 2 1modn, delocualsededuceque: (a n 1 2 + 1) (a n 1 2 1) 0modn Así, dado que n es primo se concluye que a n 1 2 1modn ó a n 1 2 1modn I Por qué? IIC2283 Algoritmos aleatorizados 77 / 109

La estructura de S n ylasraícesmodulares Definition b es una raíz cuadrada de a en módulo n si b 2 a mod n Ejemplo 3 es una raíz cuadrada de 9 en módulo 16, y 3 es una raíz cuadrada de 4 en módulo 5. Vamos a ver que hay una relación estrecha entre S n ylasraíces cuadradas modulares. I Esta relación es fundamental para el test de primalidad IIC2283 Algoritmos aleatorizados 78 / 109

La estructura de S n ylasraícesmodulares Teorema Sea n 3 un primo y a 2{1,...,n 1}. Entonces a tiene raíz cuadrada en módulo n si y sólo si a n 1 2 1 mod n Demostración: ()) Suponga que a tiene raíz cuadrada en módulo n I Sea b 2{1,...,n 1} tal que b 2 a mod n Se tiene que: a n 1 2 (b 2 ) n 1 2 mod n b n 1 mod n 1 modn IIC2283 Algoritmos aleatorizados 79 / 109

Existencia de raíces modulares: demostración (() Para demostrar esta dirección del teorema, usamos el siguiente lema. Sea p(x) el polinomio: p(x) = kx a i x i, i=0 donde k 1, a k 2{1,...,n 1} ycadaa j 2{0,...,n 1} (0 apple j apple k 1) Decimos que a es una raíz de p(x) en módulo n si p(a) 0modn IIC2283 Algoritmos aleatorizados 80 / 109

Existencia de raíces modulares: demostración Lema p(x) tiene a lo más k raíces en módulo n Demostración: Decimos que dos polinomios p 1 (x) yp 2 (x) son congruentes en módulo n si para todo a 2{0,...,n 1}: p 1 (a) p 2 (a) modn Notación p 1 (x) p 2 (x)modn Sea a una raíz de p(x) en módulo n IIC2283 Algoritmos aleatorizados 81 / 109

Existencia de raíces modulares: demostración Vamos a demostrar que existe un polinomio q(x) de grado k p(x) (x a) q(x) modn 1talque: De la propiedad anterior se concluye que el lema es cierto. I Por qué? Definimos q(x) como: q(x) = Xk 1 i=0 b i x i, donde b i = a i+1 + a i+2 a + + a k a k 1 i IIC2283 Algoritmos aleatorizados 82 / 109

Existencia de raíces modulares: demostración Se tiene que: (x a) q(x) = = k 1 X i=0 b i x i+1 + kx b i 1 x i + i=1 = b k 1 x k + k 1 k 1 X ( a b i )x i i=0 k 1 X ( a b i )x i i=0 X (b i 1 a b i )x i i=1 a b 0 Así, dado que: b k 1 = a k IIC2283 Algoritmos aleatorizados 83 / 109

Existencia de raíces modulares: demostración Ydadoqueparai 2{1,...,k 1}: (b i 1 a b i ) = a i + a i+1 a + + a k a k i a (a i+1 + a i+2 a + + a k a k 1 i ) = a i + a i+1 a + + a k a k i a i+1 a a i+2 a 2 a k a k 1 = a i Concluimos que: (x a) q(x) = kx a i x i i=1 a b 0 IIC2283 Algoritmos aleatorizados 84 / 109

Existencia de raíces modulares: demostración Pero: a b 0 = a (a 1 + a 2 a + + a k a k 1 ) = a 1 a a 2 a 2... a k a k De lo cual deducimos que: a 0 a b 0 mod n, ya que a k a k + + a 1 a + a 0 0modn Tenemos entonces que: (x a) q(x) p(x) modn IIC2283 Algoritmos aleatorizados 85 / 109

Existencia de raíces modulares: demostración Volvemos a la demostración inicial: I Queremos demostrar que si a n 1 2 1modn, entonces a tiene raiz en módulo n Sea R = {b 2 1 apple b apple n 1 2 } Como b 2 (n b) 2 mod n, setieneque: a tiene raiz en módulo n si y sólo si a 2 R IIC2283 Algoritmos aleatorizados 86 / 109

Existencia de raíces modulares: demostración Por ()) sabemos que: R {a 2{1,...,n 1} a n 1 2 1modn} Además, sabemos que si 1 apple b < c apple n 1 2 y b 2 c 2 mod n: (c b) (c + b) 0modn Así, dado que 2 apple b + c apple n I Dado que n es primo 1, concluimos que b c mod n Obtenemos una contradicción puesto que 1 apple (c b) apple n 1 2 I Por lo tanto: R = n 1 2 IIC2283 Algoritmos aleatorizados 87 / 109

Existencia de raíces modulares: demostración Sea p(x) =x n 1 2 1. También sabemos que p(x) tienesalomás n 1 2 raíces en módulo n. I Por lo tanto: {a 2{1,...,n 1} a n 1 2 1modn} apple n 1 2 Concluimos que: n 1 = R apple {a 2{1,...,n 1} a n 1 2 1modn} apple n 1 2 2 Por lo tanto: R = {a 2{1,...,n 1} a n 1 2 1modn} Así, si a n 1 2 1modn, setienequea tiene raíz en módulo n IIC2283 Algoritmos aleatorizados 88 / 109

Una propiedad fundamental de S + n y S n para n primo Si n 3 es primo, dado que S n = Z n, obtenemos por el teorema: I Si a no tiene raíz en módulo n, entonces a n 1 2 1modn Así, obtenemos el siguiente corolario de los resultados anteriores. Corolario Si n 3 es primo: S + n = S n = n 1 2 IIC2283 Algoritmos aleatorizados 89 / 109

Una propiedad fundamental de S n para n compuesto Teorema Sea n = n 1 n 2, donde n 1, n 2 3 y MCD(n 1, n 2 )=1.Siexistea2Z n tal que a n 1 2 1 mod n, entonces: S n apple 1 2 Z n Para demostrar el teorema necesitamos el Teorema Chino del resto IIC2283 Algoritmos aleatorizados 90 / 109

Para recordar: un teorema muy útil Teorema (Chino del Resto) Suponga que MCD(m, n) =1.Paratodoa y b, existec tal que: c a mod m c b mod n Demostración: Dado que MCD(m, n) =1,existend y e tales que: n d 1 mod m m e 1 mod n Sea c = a n d + b m e Se tiene que: c a mod m c b mod n IIC2283 Algoritmos aleatorizados 91 / 109

La demostración del teorema inicial Suponga que a 2 Z n y a n 1 2 1modn Por Teorema Chino del Resto, existe b tal que: b a mod n 1 b 1 modn 2 Entonces: a = n 1 + b y1= n 2 + b I Por lo tanto MCD(b, n) = 1, ya que n = n 1 n 2 y a 2 Z n IIC2283 Algoritmos aleatorizados 92 / 109

La demostración del teorema inicial Además, tenemos que: b n 1 2 a n 1 2 1 modn 1 b n 1 2 1 modn 2 Dado que n = n 1 n 2 concluimos que: b n 1 b n 1 2 6 1 modn 2 6 1 modn IIC2283 Algoritmos aleatorizados 93 / 109

La demostración del teorema inicial Sea c =(b mod n). Concluimos que c 62 S n y c 2 Z n I Por lo tanto: S n (Z n Pero se tiene que (S n, ) es un subgrupo de (Z n, ) I Por qué? Por Teorema de Lagrange: S n apple 1 2 Z n IIC2283 Algoritmos aleatorizados 94 / 109

Un test de primalidad aleatorizado Ya tenemos los ingredientes esenciales para el test de primalidad I Sólo nos falta implementar algunas funciones auxiliares Necesitamos desarrollar e implementar algoritmos eficientes para: I Una función que determina si un número n es la potencia (no trivial) de otro número I Una función para calcular a b mod n IIC2283 Algoritmos aleatorizados 95 / 109

Verificando si un número es la potencia de otro Dado un número natural n 2, la siguiente función verifica si existen m, k 2 N tales que k 2yn = m k EsPotencia(n) if n apple 3 then return no else for k := 2 to blog 2 (n)c do if TieneRaízEntera(n, k, 1, n) then return sí return no IIC2283 Algoritmos aleatorizados 96 / 109

Verificando si un número es la potencia de otro La siguiente función verifica si existe m 2{i,...,j} tal que n = m k I Vale decir, la llamada TieneRaízEntera(n, k, 1,n) verificasin tiene raíz k-ésima entera TieneRaízEntera(n, k, i, j) if i = j then if Exp(i, k) =n then return sí else return no else if i < j then p := b i+j c 2 val := Exp(p, k) if val = n then return sí else if val < n then return TieneRaízEntera(n, k, p +1,j) else return TieneRaízEntera(n, k, i, p 1) else return no IIC2283 Algoritmos aleatorizados 97 / 109

Verificando si un número es la potencia de otro Finalmente, la siguiente función calcula n k Exp(n, k) if k =1then return n else if k es par then val := Exp(n, k 2 ) return val val else val := Exp(n, k 1 2 ) return val val n IIC2283 Algoritmos aleatorizados 98 / 109

La complejidad de EsPotencia Consideramos la multiplicación de números enteros como la operación básica a contar Tenemos que: I En el peor caso EsPotencia(n) realiza(blog 2 (n)c - 1) llamadas a la función TieneRaízEntera I Existe c 2 N tal que la llamada TieneRaízEntera(n, k, 1, n) realiza en el peor caso a lo más c log 2 (n) llamadas a la función Exp I Exp(n, k) enelpeorcasoeso(log 2 (k)) IIC2283 Algoritmos aleatorizados 99 / 109

La complejidad de EsPotencia Concluimos que EsPotencia(n) enelpeorcasoeso([log 2 (n)] 3 ) Vale decir, EsPotencia en el peor caso es de orden polinomial en el tamaño de la entrada IIC2283 Algoritmos aleatorizados 100 / 109

Calculando la función a b mod n En general, no podemos invocar a Exp(a, b) yluegosacarmódulon para calcular a b mod n I El valor de a b mod n está acotado por n, mientrasquea b puede tener un valor demasiado grande Utilizamos entonces la siguiente función para calcular a b mod n: Exp(a, b, n) if b =1then return a mod n else if b es par then val := Exp(a, b, n) 2 return (val val )modn else val := Exp(a, b 1, n) 2 return (val val a)modn IIC2283 Algoritmos aleatorizados 101 / 109

La complejidad de Exp Ejercicio Considerando la multiplicación de enteros y el cálculo de la función x mod y como las operaciones básicas a contar, demuestre que Exp(a, b, n) enelpeorcasoeso(log 2 (b)) IIC2283 Algoritmos aleatorizados 102 / 109