Criptografía y Seguridad Computacional Clase 7: 13/04/2016. En esta clase introduciremos algunos algoritmos básicos en teoría de números.

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

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

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

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

Estructuras Algebraicas

LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS

Con esta definición de grupo, es directo que el neutro es único, al igual que el inverso de. , donde es conmutativo, se denomina Abeliano.

Conjuntos, relaciones y funciones Susana Puddu

DIVISIBILIDAD: Resultados

COMPLEMENTO DEL TEÓRICO

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

Definición 1.1 Sea G un conjunto. Una operación binaria en G es una aplicación m: G G G.

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES

Números reales Conceptos básicos Algunas propiedades

Semana03[1/17] Funciones. 16 de marzo de Funciones

Forma binomial de números complejos (ejercicios)

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

Estructuras algebraicas

1 Relaciones de orden

Tema 2. Grupos. 3. El conjunto de matrices de orden 2 con coeficientes enteros (o reales) con la suma es un grupo conmutativo.

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

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

El Conjunto de los Números Naturales

PROBLEMAS RESUELTOS DE PREPARACIÓN PARA OPOSICIONES. Problemas 02

Ejercicios Selección Unica de funciones. ExMa-MA SELECCION UNICA

Tema 2: El grupo de las permutaciones

Álgebra Lineal II: Grupos y campos, prueba de los axiomas del campo de los números complejos, forma polar de números complejos.

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros

El Conjunto de los Números Naturales

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

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

Anillos. a + (b + c) = (a + b) + c. 3) Existe un elemento 0 en R, el cual llamaremos cero, tal que. a + 0 = 0 + a = a para todo a en R.

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

MA1001: Introducción al Cálculo

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

Grupos libres. Presentaciones.

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

Una matriz es un arreglo rectangular de elementos. Por ejemplo:

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

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

Recordemos que utilizaremos, como es habitual, la siguiente notación para algunos conjuntos de números que son básicos.

UNIDAD 5 : ESTRUCTURAS ALGEBRAICAS

Clase 8 Matrices Álgebra Lineal

1 Conjuntos y propiedades de los números naturales

Teoría de anillos. Dominios, cuerpos y cuerpos de fracciones. Característica de un cuerpo.

Ecuaciones Diofánticas

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

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

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

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

Factorización de polinomios. Profa. Anneliesse Sánchez y Profa. Caroline Rodriguez Departamento de Matemáticas Universidad de Puerto Rico

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

Capítulo 4: Polinomios

Anillo de polinomios con coeficientes en un cuerpo

El conjunto de las operaciones de simetría que se pueden aplicar a una molécula tienen las propiedades de un grupo matemático.

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

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

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

FUNCIONES REALES 1º DE BACHILLERATO CURSO

Álgebra Moderna (Teoría de Grupos) por María Luisa Pérez Seguí

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

TEMA Nº 1. Conjuntos numéricos

Cálculo Diferencial: Enero 2016

Derivada de la función compuesta. Regla de la cadena

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

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

Continuidad. 5.1 Continuidad en un punto

Logaritmos. Logaritmo en base b de un argumento x igual a n (exponente) si y solo si b elevado a n da como resultado a x.

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

AMPLIACIÓN DE MATEMÁTICAS

SCUACAC026MT22-A16V1. SOLUCIONARIO Ejercitación Generalidades de números

INSTITUCIÓN EDUCATIVA GABRIEL TRUJILLO CORREGIMIENTO DE CAIMALITO, PEREIRA

Continuidad y monotonía

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

Funciones Inversas. Derivada de funciones inversas

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

Funciones y Cardinalidad

Espacios Vectoriales

Sobre funciones reales de variable real. Composición de funciones. Función inversa

1. ESQUEMA - RESUMEN Página EJERCICIOS DE INICIACIÓN Página EJERCICIOS DE DESARROLLO Página EJERCICIOS DE AMPLIACIÓN Página 21

Funciones polinómicas

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

Capítulo 1. Numeración 1 Variables... 2 Números naturales... 2 Números enteros... 3 Números reales Ejercicios Orden y valor absoluto...

Unidad II. 2.1 Concepto de variable, función, dominio, condominio y recorrido de una función.

TEMA 2 FRACCIONES MATEMÁTICAS 2º ESO

Conjunto R 3 y operaciones lineales en R 3

NÚMEROS COMPLEJOS: C

Ejercicios del Tema 2: Estructuras algebraicas básicas

EL CUERPO ORDENADO REALES

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]

520142: ALGEBRA y ALGEBRA LINEAL

TEMA 2. ESPACIOS VECTORIALES

Conjuntos. () April 4, / 32

Operaciones lógicas principales: Negación, Conjunción y Disyunción

Fundamentos algebraicos

Espacios vectoriales reales.

lasmatemáticas.eu Pedro Castro Ortega materiales de matemáticas

Apuntes de Matemática Discreta 8. Relaciones de Equivalencia

UNIDAD: NÚMEROS Y PROPORCIONALIDAD. Los elementos del conjunto IN = {1, 2, 3, 4, 5, 6, 7,...} se denominan números

Una operación interna: Suma Una operación externa: Multiplicación por un escalar

Transcripción:

1 ALGORITMOS PARA TEORÍA DE NÚMEROS 1 Criptografía y Seguridad Computacional 2016-01 Clase 7: 13/04/2016 Profesor: Fernando Krell Notas: Tomás Andrighetti 1. Algoritmos para teoría de números En esta clase introduciremos algunos algoritmos básicos en teoría de números. 1.1. Algoritmo de Euclides El algoritmo de euclides permite calcular el máximo común divisor entre 2 enteros. mcd(a, b) es máximo entero d tal que d a d b. Para computar el mcd utilizaremos la siguiente proposición. Proposición 1. Sean a,b enteros mayores a 1. Si b a, entonces mcd(a, b) = mcd(b, [a mód b]). Demostración. Si a < b, a mód b = a. Si, en cambio, a > b, entonces computamos enteros q, r tales que a = qb + r, con 0 r < b. Veremos que mcd(qb + r, b) = mcd(r, b). Como b a, r es mayor a 0. Sea d=mcd(a, b), por lo tanto d a y d b, por lo tanto d r = a qb. Sea d = mcd(b, r) es el máximo entero que divide a r y a b, d d. Análogamente, d divide a b y tambien a r, por lo tanto también divide a a = qb + r. Como d es el máximo divisor de a y b, d d. mcd(r, b) = d = d = mcd(a, b). mcd(, ) input: (a, b) output: mcd(a, b) 1. Si b a, output b 2. Si b a, output mcd(b, a mód b) Figura 1: Algoritmo de Euclides para calcular el máximo común divisor

1 ALGORITMOS PARA TEORÍA DE NÚMEROS 2 1.2. Algoritmo extendido de Euclides Sabemos que a, b X, Y tal que ax + by = mcd(a, b). Como veremos más adelante, es util saber el valor de X e Y. Cómo encontrarlos? emcd(, ) input: a, b output: MCD(a, b), X, Y tal que ax + by = MCD(a, b) 1. Si b a, output b, 0, 1 MCD X Y r {}}{ 2. Si b a, d, X, Y emcd(b, a mód b) output d, Y, X Y q a = qb + r Figura 2: Algoritmo extendido de Ecuclides Por qué funciona? Xb + Y r = d = Xb + Y a qy b = Y a + (x qy ) b a qb X Y 1.3. Cálculo de inversos modulo N Cómo invertimos a mód N? Dado a, N calcular a 1 mód N. Sabemos que a 1 mód N existe si mcd(a, N) = 1 Invert input: a, N output: si a no es invertible o b tal que ba = 1 mód N. 1. d, X, Y emcd(a, N) 2. si d 1, output 3. output X Figura 3: Algortimo para invertir mod N Dado que ax + NY = d, tenemos que si d = 1, entonces ax = 1 mód N

1 ALGORITMOS PARA TEORÍA DE NÚMEROS 3 1.4. Exponenciación modular A continuación describimos 3 algoritmos de exponenciación modular. ExpMod(, ) input: a, b, N output: a b mód N 1. r = 1 2. For i = 1 to b: 3. r = r a mód N 4. output r Figura 4: Algoritmo lineal de exponenciación modular Tiempo: O(b) operaciones. El siguiente algoritmo aprovecha el hecho de que a 2k es igual a (a k ) 2. ExpMod(, ) input: a, b, N output: a b mód N 1. Si b es par: 2. r = ExpMod(a, b/2) 3. output r r mód N 4. Si b es impar: 5. r = ExpMod(a, (b 1)/2) 6. output a r r mód N Figura 5: Algoritmo logaritmico de exponenciación modular Tiempo: O(log b) operaciones. El último algoritmo que mostramos es utilizado cuando la base es usada en multiples evaluaciones. Dada la base a podemos preprocesar los valores de a 2i para i = 1,..., log N. De esta forma, para cada exponente b podemos tomar su decomposición binaria y utilizar los valores precomputados anteriormente. Es decir, sea b 0,..., b log N los bits de b ((veremos más adelante que log N es una buena cota superior para el largo de b),

2 GRUPOS ABELIANOS 4 entonces a b = a log N i=0 2 i b i = i b i =1 a 2i mód N ExpMod(, ) input: a, b, N output: a b mód N Preprocesamiento: Computar el conjunto {a 2i operaciones). mód N} log N i=1. (Tiempo log N Exponenciación 1. r = 1 2. For i = 1 to b : 2. si b i = 1: 3. r = r a 2i mód N 4. output r Figura 6: Algoritmo logaritmico de exponenciación modular con preprocesamiento de la base Tiempo fase de exponenciación: O( b = peso de hamming o cantidad de 1 s en b) 2. Grupos Abelianos Sea G un conjunto y una operacón binaria. Definición 2. (G, ) es un grupo si: 1. es cerrada para G: g h G g, h G 2. elemento neutro e: g e = e g = g g G 3. inversos: g G g G tal que g g = e 4. asociatividad: g 1 (g 2 g 3 ) = (g 1 g 2 ) g 3 g 1, g 2, g 3 ing 5. conmutatividad: g 1 g 2 = g 2 g 1 (Para grupos abelianos abelianos)

2 GRUPOS ABELIANOS 5 En muchas ocaciones la operación se puede obtener del contexto, y en tales casos denotaremos al grupo simplemente por su conjunto. Definición 3. Si G es finito, entonces m = G es el orden del grupo. Ejemplo 4. (Z, +) sí es grupo abeliano. (Z, ) no es grupo Sea Z N = {0, 1,..., N 1}, (Z N, + N ) sí es grupo abeliano (+ N : suma mód N). Sea Z N = {x Z N mcd(x, N) = 1}. (Z N, N ) sí es grupo abeliano. ( N : multiplicación mód N). (R, ) no es grupo, ya que 0 no tiene inverso. (R \ {0}, ) sí es grupo. 2.1. Exponenciación en grupos m g = g g... g (notación aditiva) m veces g m = g g... g (notación multiplcativa) Podemos demostrar que la notación se comporta bien : g m+m = g m g m (g m ) m = g m m g m h m = (g h) m En la clase anterior vimos los siguientes resultados. Teorema 5. Si G es un grupo de orden m, entonces g m = 1 g G (en donde 1 es el elemento neutro para G) Corolario 6. Sea G un grupo de orden m, entonces para todo g G, y para todo x N, g x = g x mód m Corolario 7. Sea f e : G G una función definida como f e (g) = g e. f e es una biyección si mcd(e, m) = 1, y más aun, si d = e 1 mód m, entonces f d es su función inversa. Un grupo muy importante es Z N (todos los elementos de Z N que tienen inversos multiplicativos.

3 ISOMORFISMOS 6 Definición 8. La función de Euler es φ(n) = Z N. si P es primo, cuánto es φ(p )? Z P = {1,..., P 1} φ(p ) = P 1 pues todo elemento positivo menor a P tiene inverso mod P (mcd(x, P ) = 1). si N = P Q, P Q, ambos primos Z N =? elementos divisibles por P : P, 2P, 3P,..., (Q 1)P elementos divisibles por Q: Q, 2Q, 3Q,..., (P 1)Q φ(p Q) = P Q (P 1) (Q 1) = (P 1)(Q 1) EN general si, N = P e i i (decomposición única de N en numeros primos {P i }), entonces φ(n) = P e i 1 i (P i 1). (A continuación los mismos corolarios anteriores aplicados a Z N) Corolario 9. a Z N a φ(n) = 1 mod N Corolario 10. f e (a): a e mód N es biyección si e Z φ(n) Sea d = e 1 mód φ(n), entonces f d (f e (a)) = f d (a e mód N) = a e d mód N = a e d mód φ(n) mód N = a mód N 3. Isomorfismos En esta sección veremos que si N = pq, entonces el grupo Z N, se pueden representar en base a Z p y Z q (análogo para Z N también). Definición 11. f : G H es isomorfismo de G a H si 1. f es biyección 2. f(g 1 G g 2 ) = f(g 1 ) H f(g 2 ) Si existe tal función f entonces decimos que G y H son isomorfos, y lo denotamos como G = H.

3 ISOMORFISMOS 7 3.1. Teorema del resto chino Si mcd(p, q) = 1 N = pq, entonces Z N = ZP Z Q Z N = Z P Z Q. (X,Y ):X Z P Y Z Q f(x) = (X mód P, X mód Q) es el isomorfismo. operaciones: Z p ZZ q : (X 1, Y 1 ) (X 2, Y 2 ) = (X 1 + X 2 mód p, Y 1 + Y 2 mód q) Z p ZZ q : (X 1, Y 1 ) (X 2, Y 2 ) = (X 1 X 2 mód p, Y 1 Y 2 mód q) Ejemplo 12. Calculemos 18 25 mód 35. 18 25 mód 35 ((18 mód 5) 25, (18 mód 7) 25 ) 5 7 = (3 25 mód 5, 4 25 mód 7) 25 mód = (3 Z 5 {}}{ 4 mód 5, 4 25 = (3 mód 5, 4 mód 7) mód Z 7 {}}{ 6 mód 7) Cómo invertimos (3 mód 5, 4 mód 7) a Z 35? En general, sea X p = X mód p, X q = X mód q. Queremos converir (X p, X q ) a X Z N. Por teorema del resto chino, sabemos que (X p, X q ) X p (1, 0) + X q (0, 1) Cuál es la representación de (1, 0) (0, 1) en Z N? Como mcd(p, q) = 1, entonces ˆX p + Ŷ Q = 1 / mod p, por lo que, Ŷ q = 1 mód p. De forma análoga, obtenemos que ˆX p = 1. Por lo tanto, podemos concluir que: (1, 0) Ŷ q mód N y (0, 1) X p mód N. Volviendo al ejemplo, necesitamos X, Y tal que X 5 + Y 7 = 1 mód 35 Por ejemplo, X = 3 e Y = 2 mód 35 = 33. Calculamos entonces, 33 7 = 34 7 mód 35 = 21 y 3 5 = 15. Por lo tanto, el resultado es 3 21 + 15 4 mód 35 = 18.

3 ISOMORFISMOS 8 3.2. Demostración del teorema del resto chino Está claro que para cualquier x Z N el output f(x) es un par de elementos (x p, x q ) con x p Z p y x q Z q. Además, decimos que si x Z N entonces (x p, x q ) Z p Z q. Es más, si (por ejemplo) x p / Z p entonces esto significa que el mcd([x mód p], p) 1. Pero entonces mcd(x, p) 1. Esto implica que mcd(x, N) 1, contradiciendo el supuesto de que x Z N. Ahora mostramos que f es un isomorfismo de Z N a Z p Z q. (La demostración de que es un isomorfismo de Z N a Z p Z q es similar.) Comenzamos probando que f es inyectiva. Sean x x ZZ N, tal que f(x) = (x p, x q ) = f(x ). Entonces x = x p = x mód p y x = x q = x mód q. Esto implica que (x x ) es divisible por p y por q. Como mcd(p, q) = 1, pq = N divide a (x x ). Pero entonces x = x mód N. Por lo tanto f es inyectiva. Como Z N = N = p q = Z p Z Q, los conjuntos Z N y Z p Z q son del mismo tamaño. Esto, junto con el hecho de que f es inyectiva implica que f es biyectiva. En el siguiente párrafo, sean + N, + p, + q adición módulo N, p y q respectivamente. denota la operación de grupo en Z p Z q (es decir, adición módulo p en la primera componente y módulo q en la segunda). Para concluir la demostración de que f es un isomorfismo de Z N a Z p Z q, tenemos que mostrar que para todo a, b Z N se cumple que f(a + N b) = f(a) f(b). Para ver que esto es cierto, note que f(a + N b) = ( [(a + N b) mód p], [(a + N b) mód q] ) = ( [(a + p b) mód p], [(a + q b) mód q] ) = ( [a mód p], [a mód q] ) ( [b mód p], [b mód q] ) = f(a) f(b). Ejercicio: Demostrar para Z N