Este documento presenta los antecedentes matemáticos de la criptografía de clave pública. Explica conceptos básicos de teoría de números como enteros, números primos, algoritmos en enteros, congruencias modulares y grupos multiplicativos. También describe dos problemas matemáticos fundamentales para la criptografía: el problema de la factorización de enteros y el problema del logaritmo discreto.
Capítulo 5: Criptografía de clave pública, antecedentes matemáticos
1. 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
2. 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
3. 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
4. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 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
21. 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
22. 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