Outline
Teor´ıa de N´umeros
Problemas b´asicos
CRIPTOGRAFIA DE CLAVE PUBLICA:
ANTECEDENTES MATEMATICOS
Juan Manuel Garc´ıa Garc´ıa
29 de septiembre de 2010
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Teor´ıa de N´umeros
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Problemas b´asicos
Problema de la factorizaci´on de enteros
Problema del logaritmo discreto
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Enteros
El conjunto de enteros {. . . , −3, −2, −1, 0, 1, 2, 3, . . . } es
denotado por el s´ımbolo Z.
Sean a y b enteros. Entonces a divide a b si existe un entero c
tal que b = ac. Si a divide a b es denotado por a|b.
Si a y b son enteros con b ≥ 1 entonces la divisi´on ordinaria de
a entre b nos da enteros q (cociente) y r (residuo) tales que
a = q · b + r
donde 0 ≤ r < b.
El residuo de la divisi´on es denotado como a m´od b y el
cociente como a div b.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Un entero c es un denominador com´un de los enteros a y b si
c|a y c|b.
Un entero no negativo d es el m´aximo com´un denominador de
los enteros a y b, denotado como gcd(a, b), si
1. d es un com´un denominador de a y b
2. siempre que c|a y c|b, entonces c|d
Un entero no negativo d es el m´ınimo com´un m´ultiplo de los
enteros a y b, denotado como lcm(a, b), si
1. a|d y b|d
2. siempre que a|c y b|c, entonces d|c.
Si a y b son enteros positivos, entonces
lcm(a, b) = a · b/ gcd(a, b).
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Ejemplos
1. ¿Cu´al es el gcd(15, 10)?
2. ¿Cu´al es el lcm(15, 10)?
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
N´umeros primos
Se dice que dos enteros a y b son primos relativos o coprimos
si gcd(a, b) = 1.
Se dice que un entero p ≥ 2 es primo si sus ´unicos divisores
positivos son 1 y p.
(Teorema fundamental de la aritm´etica) Todo entero n ≥ 2
tiene una factorizaci´on ´unica como un producto de potencias
de primos:
n = pe1
1 pe2
2 . . . pek
k
donde los pi son primos distintos y los ei son enteros positivos.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Funci´on φ de Euler
Para n ≥ 1, sea φ(n) el n´umero de enteros en el intervalo
[1, n] que son primos relativos a n. La funci´on φ es
denominada la funci´on phi de Euler.
1. Si p es primo, entonces φ(p) = p − 1.
2. Si gcd(m, n) = 1, entonces φ(m · n) = φ(m) · φ(n).
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Ejemplos
1. ¿Cu´al es el valor de φ(15)?
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Algoritmo de Euclides
Input: Dos enteros no negativos a y b con a ≥ b.
Output: M´aximo com´un denominador de a y b.
while b = 0 do
r ← a m´od b;
a ← b; b ← r;
end
return a
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Algoritmo extendido de Euclides
Input: Dos enteros no negativos a y b con a ≥ b.
Output: d = gcd(a, b) y enteros x,y que satisfacen ax + by = d.
if b=0 then
d ← a; x ← 1; y ← 0; return (d,x,y);
end
x2 ← 1; x1 ← 0; y2 ← 0; y1 ← 1;
while b > 0 do
q ← a/b ; r ← a − qb; x ← x2 − qx1; y ← y2 − qy1;
a ← b; b ← r; x2 ← x1; x1 ← x; y2 ← y1; y1 ← y;
end
d ← a; x ← x2; y ← y2;
return (d,x,y)
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Congruencias modulares
Sea n un entero positivo.
Si a y b son enteros, entonces se dice que a es congruente con
b m´odulo n, escrito como a ≡ b (m´od n), si n divide a
(a − b).
Ejemplo: 24 ≡ 9 (m´od 5), dado que 24 − 9 = 3 · 5.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Enteros m´odulo n
Los enteros m´odulo n, denotados como Zn, es el conjunto de
enteros {0, 1, 2, . . . , n − 1} donde la suma, resta y
multiplicaci´on en Zn se realizan m´odulo n.
Sea a ∈ Zn. El inverso multiplicativo de a m´odulo n es un
entero x ∈ Zn tal que a · x ≡ 1 (m´od n). Si tal x existe es
´unica, se denota por a−1, y se dice que a es invertible.
Sean a, b ∈ Zn. La divisi´on de a entre b m´odulo n es el
producto de a por b−1 m´odulo n, y est´a definida solo si b es
invertible m´odulo n.
Sea a ∈ Zn. Entonces a es invertible si y solo si gcd(a, n) = 1.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
El grupo multiplicativo de Zn es
Z∗
n = {a ∈ Zn| gcd(a, n) = 1}.
En particular, si n es primo, entonces Z∗
n = {a|1 ≤ a ≤ n − 1}.
Teorema de Euler. Si a ∈ Z∗
n, entonces aφ(n) ≡ 1 (m´od n).
Teorema de Fermat. Sea p un primo. Si gcd(a, p) = 1,
entonces ap−1 ≡ 1 (m´od p).
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Generadores de Z∗
n
Sea a ∈ Z∗
n. El orden de a es el m´ınimo entero positivo t tal
que at ≡ 1 (m´od n).
Sea α ∈ Z∗
n. Si el orden de α es φ(n), entonces se dice que α
es un generador de Z∗
n.
Si α es un generador entonces
Z∗
n = {αi
m´od n|0 ≤ i ≤ φ(n) − 1}.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Enteros
N´umeros primos
Algoritmos en enteros
Enteros m´odulo n
Grupo multiplicativo
Ejemplos
1. Z23 = {0, 1, 2, . . . , 22}.
2. El inverso multiplicativo de 7 es 7−1 = 10.
3. ¿Cu´al es el inverso multiplicativo de 5?
4. Z∗
23 = {1, 2, . . . , 22}.
5. 722 = 1 (m´od 23)
6. 7 es un generador de Z∗
23
7. 70 = 1, 71 = 7, 72 = 3, 73 = 21, 74 = 9, 75 = 17, 76 = 4,
77 = 5, 78 = 12, 79 = 15, 710 = 13,...
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Problema de la factorizaci´on de enteros
Problema del logaritmo discreto
Problema de la factorizaci´on de enteros
El problema de la factorizaci´on de enteros es el siguiente:
Dado un entero n, encontrar sus factores primos, esto es, hacer la
factorizaci´on
n = pe1
1 pe2
2 . . . pek
k
donde los pi son primos distintos y cada ei ≥ 1.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Problema de la factorizaci´on de enteros
Problema del logaritmo discreto
Divisi´on de prueba
Aplicar divisiones de prueba con primos peque˜nos hasta
alguna cota b.
Como caso extremo. se pueden intentar todos los primos
hasta
√
n.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Problema de la factorizaci´on de enteros
Problema del logaritmo discreto
Algoritmo de factorizaci´on ρ de Pollard
Input: Un entero compuesto n.
Output: Un factor no trivial d de n.
a ← 2; b ← 2;
for i = 1, 2, . . . do
a ← a2 + 1 m´od n; b ← b2 + 1 m´od n; b ← b2 + 1 m´od n;
d ← gcd(a − b, n);
if 1 < d < n then return d;
if d = n then Terminar algoritmo con fracaso.
end
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Problema de la factorizaci´on de enteros
Problema del logaritmo discreto
Records de factorizaci´on
RSA-200 Challenge: 200 d´ıgitos decimales (663 bits).
Factorizado entre diciembre de 2003 y mayo de 2005, usando
un cluster de 80 procesadores Opteron, BSI, Alemania.
RSA-768 Challenge: 768 bits. Factorizado el 12 de diciembre
de 2009, usando el equivalente a 2000 a˜nos de c´omputo de
una AMD Opteron de 2.2 GHz.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Problema de la factorizaci´on de enteros
Problema del logaritmo discreto
Problema del logaritmo discreto
El problema del logaritmo discreto (DLP) es el siguiente:
Dado un primo p, un generador α de Z∗
p y un elemento β ∈ Z∗
p
encontrar un entero x, 0 ≤ x ≤ p − 2, tal que
αx
≡ β (m´od p).
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Problema de la factorizaci´on de enteros
Problema del logaritmo discreto
Busqueda exhaustiva
El algoritmo mas obvio para resolver el DLP es calcular
sucesivamente α0, α1, α2,..., hasta obtener β.
Este m´etodo toma O(n) multiplicaciones, donde n es el orden de
α, y es por tanto muy ineficiente si n es grande.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
Outline
Teor´ıa de N´umeros
Problemas b´asicos
Problema de la factorizaci´on de enteros
Problema del logaritmo discreto
Ejercicios:
1. Factorizar los enteros 4284179, 26164807, 61763557 y
829348951.
2. Dado el grupo multiplicativo Zp donde p = 7919 y el
generador es g = 7, encontrar los logaritmos dicretos de 9,
1548 y 2367.
Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA

Capítulo 5: Criptografía de clave pública, antecedentes matemáticos

  • 1.
    Outline Teor´ıa de N´umeros Problemasb´asicos CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MATEMATICOS Juan Manuel Garc´ıa Garc´ıa 29 de septiembre de 2010 Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 2.
    Outline Teor´ıa de N´umeros Problemasb´asicos Teor´ıa de N´umeros Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Problemas b´asicos Problema de la factorizaci´on de enteros Problema del logaritmo discreto Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 3.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Enteros El conjunto de enteros {. . . , −3, −2, −1, 0, 1, 2, 3, . . . } es denotado por el s´ımbolo Z. Sean a y b enteros. Entonces a divide a b si existe un entero c tal que b = ac. Si a divide a b es denotado por a|b. Si a y b son enteros con b ≥ 1 entonces la divisi´on ordinaria de a entre b nos da enteros q (cociente) y r (residuo) tales que a = q · b + r donde 0 ≤ r < b. El residuo de la divisi´on es denotado como a m´od b y el cociente como a div b. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 4.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Un entero c es un denominador com´un de los enteros a y b si c|a y c|b. Un entero no negativo d es el m´aximo com´un denominador de los enteros a y b, denotado como gcd(a, b), si 1. d es un com´un denominador de a y b 2. siempre que c|a y c|b, entonces c|d Un entero no negativo d es el m´ınimo com´un m´ultiplo de los enteros a y b, denotado como lcm(a, b), si 1. a|d y b|d 2. siempre que a|c y b|c, entonces d|c. Si a y b son enteros positivos, entonces lcm(a, b) = a · b/ gcd(a, b). Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 5.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Ejemplos 1. ¿Cu´al es el gcd(15, 10)? 2. ¿Cu´al es el lcm(15, 10)? Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 6.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo N´umeros primos Se dice que dos enteros a y b son primos relativos o coprimos si gcd(a, b) = 1. Se dice que un entero p ≥ 2 es primo si sus ´unicos divisores positivos son 1 y p. (Teorema fundamental de la aritm´etica) Todo entero n ≥ 2 tiene una factorizaci´on ´unica como un producto de potencias de primos: n = pe1 1 pe2 2 . . . pek k donde los pi son primos distintos y los ei son enteros positivos. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 7.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Funci´on φ de Euler Para n ≥ 1, sea φ(n) el n´umero de enteros en el intervalo [1, n] que son primos relativos a n. La funci´on φ es denominada la funci´on phi de Euler. 1. Si p es primo, entonces φ(p) = p − 1. 2. Si gcd(m, n) = 1, entonces φ(m · n) = φ(m) · φ(n). Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 8.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Ejemplos 1. ¿Cu´al es el valor de φ(15)? Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 9.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Algoritmo de Euclides Input: Dos enteros no negativos a y b con a ≥ b. Output: M´aximo com´un denominador de a y b. while b = 0 do r ← a m´od b; a ← b; b ← r; end return a Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 10.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Algoritmo extendido de Euclides Input: Dos enteros no negativos a y b con a ≥ b. Output: d = gcd(a, b) y enteros x,y que satisfacen ax + by = d. if b=0 then d ← a; x ← 1; y ← 0; return (d,x,y); end x2 ← 1; x1 ← 0; y2 ← 0; y1 ← 1; while b > 0 do q ← a/b ; r ← a − qb; x ← x2 − qx1; y ← y2 − qy1; a ← b; b ← r; x2 ← x1; x1 ← x; y2 ← y1; y1 ← y; end d ← a; x ← x2; y ← y2; return (d,x,y) Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 11.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Congruencias modulares Sea n un entero positivo. Si a y b son enteros, entonces se dice que a es congruente con b m´odulo n, escrito como a ≡ b (m´od n), si n divide a (a − b). Ejemplo: 24 ≡ 9 (m´od 5), dado que 24 − 9 = 3 · 5. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 12.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Enteros m´odulo n Los enteros m´odulo n, denotados como Zn, es el conjunto de enteros {0, 1, 2, . . . , n − 1} donde la suma, resta y multiplicaci´on en Zn se realizan m´odulo n. Sea a ∈ Zn. El inverso multiplicativo de a m´odulo n es un entero x ∈ Zn tal que a · x ≡ 1 (m´od n). Si tal x existe es ´unica, se denota por a−1, y se dice que a es invertible. Sean a, b ∈ Zn. La divisi´on de a entre b m´odulo n es el producto de a por b−1 m´odulo n, y est´a definida solo si b es invertible m´odulo n. Sea a ∈ Zn. Entonces a es invertible si y solo si gcd(a, n) = 1. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 13.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo El grupo multiplicativo de Zn es Z∗ n = {a ∈ Zn| gcd(a, n) = 1}. En particular, si n es primo, entonces Z∗ n = {a|1 ≤ a ≤ n − 1}. Teorema de Euler. Si a ∈ Z∗ n, entonces aφ(n) ≡ 1 (m´od n). Teorema de Fermat. Sea p un primo. Si gcd(a, p) = 1, entonces ap−1 ≡ 1 (m´od p). Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 14.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Generadores de Z∗ n Sea a ∈ Z∗ n. El orden de a es el m´ınimo entero positivo t tal que at ≡ 1 (m´od n). Sea α ∈ Z∗ n. Si el orden de α es φ(n), entonces se dice que α es un generador de Z∗ n. Si α es un generador entonces Z∗ n = {αi m´od n|0 ≤ i ≤ φ(n) − 1}. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 15.
    Outline Teor´ıa de N´umeros Problemasb´asicos Enteros N´umeros primos Algoritmos en enteros Enteros m´odulo n Grupo multiplicativo Ejemplos 1. Z23 = {0, 1, 2, . . . , 22}. 2. El inverso multiplicativo de 7 es 7−1 = 10. 3. ¿Cu´al es el inverso multiplicativo de 5? 4. Z∗ 23 = {1, 2, . . . , 22}. 5. 722 = 1 (m´od 23) 6. 7 es un generador de Z∗ 23 7. 70 = 1, 71 = 7, 72 = 3, 73 = 21, 74 = 9, 75 = 17, 76 = 4, 77 = 5, 78 = 12, 79 = 15, 710 = 13,... Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 16.
    Outline Teor´ıa de N´umeros Problemasb´asicos Problema de la factorizaci´on de enteros Problema del logaritmo discreto Problema de la factorizaci´on de enteros El problema de la factorizaci´on de enteros es el siguiente: Dado un entero n, encontrar sus factores primos, esto es, hacer la factorizaci´on n = pe1 1 pe2 2 . . . pek k donde los pi son primos distintos y cada ei ≥ 1. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 17.
    Outline Teor´ıa de N´umeros Problemasb´asicos Problema de la factorizaci´on de enteros Problema del logaritmo discreto Divisi´on de prueba Aplicar divisiones de prueba con primos peque˜nos hasta alguna cota b. Como caso extremo. se pueden intentar todos los primos hasta √ n. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 18.
    Outline Teor´ıa de N´umeros Problemasb´asicos Problema de la factorizaci´on de enteros Problema del logaritmo discreto Algoritmo de factorizaci´on ρ de Pollard Input: Un entero compuesto n. Output: Un factor no trivial d de n. a ← 2; b ← 2; for i = 1, 2, . . . do a ← a2 + 1 m´od n; b ← b2 + 1 m´od n; b ← b2 + 1 m´od n; d ← gcd(a − b, n); if 1 < d < n then return d; if d = n then Terminar algoritmo con fracaso. end Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 19.
    Outline Teor´ıa de N´umeros Problemasb´asicos Problema de la factorizaci´on de enteros Problema del logaritmo discreto Records de factorizaci´on RSA-200 Challenge: 200 d´ıgitos decimales (663 bits). Factorizado entre diciembre de 2003 y mayo de 2005, usando un cluster de 80 procesadores Opteron, BSI, Alemania. RSA-768 Challenge: 768 bits. Factorizado el 12 de diciembre de 2009, usando el equivalente a 2000 a˜nos de c´omputo de una AMD Opteron de 2.2 GHz. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 20.
    Outline Teor´ıa de N´umeros Problemasb´asicos Problema de la factorizaci´on de enteros Problema del logaritmo discreto Problema del logaritmo discreto El problema del logaritmo discreto (DLP) es el siguiente: Dado un primo p, un generador α de Z∗ p y un elemento β ∈ Z∗ p encontrar un entero x, 0 ≤ x ≤ p − 2, tal que αx ≡ β (m´od p). Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 21.
    Outline Teor´ıa de N´umeros Problemasb´asicos Problema de la factorizaci´on de enteros Problema del logaritmo discreto Busqueda exhaustiva El algoritmo mas obvio para resolver el DLP es calcular sucesivamente α0, α1, α2,..., hasta obtener β. Este m´etodo toma O(n) multiplicaciones, donde n es el orden de α, y es por tanto muy ineficiente si n es grande. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA
  • 22.
    Outline Teor´ıa de N´umeros Problemasb´asicos Problema de la factorizaci´on de enteros Problema del logaritmo discreto Ejercicios: 1. Factorizar los enteros 4284179, 26164807, 61763557 y 829348951. 2. Dado el grupo multiplicativo Zp donde p = 7919 y el generador es g = 7, encontrar los logaritmos dicretos de 9, 1548 y 2367. Juan Manuel Garc´ıa Garc´ıa CRIPTOGRAFIA DE CLAVE PUBLICA: ANTECEDENTES MA