criptograf´ıa asimetrica o de clave pub´...
TRANSCRIPT
Intro. DH RSA ElGamal ECC
Criptografıa asim etrica o de clave publica
F. J. Martınez Zaldıvar
Departamento de ComunicacionesETSI Telecomunicacion
Universidad Politecnica de Valencia
Comunicacion de Datos II
Intro. DH RSA ElGamal ECC
Indice
1 Introducci onIntroduccion a la Teorıa de NumerosFunciones unidireccionales
2 Intercambio de claves Diffie y HellmanDescripcion DH
3 Algoritmo RSA (Rivest-Shamir-Adelman)Descripcion RSAFortaleza de RSAClaves multiples de descifradoMensajes no cifrablesAlternativas de descifrado RSARSA multiprimoRelleno (padding)
4 Metodo ElGamal5 Otros criptosistemas asim etricos: ECC
Intro. DH RSA ElGamal ECC
Criptografıa asim etrica o de clave publica
Objetivo: evitar el problema de la distribuci on de clavesnecesaria en un criptosistema simetrico (o de clavesecreta).
Primer documento: intercambio de claves de Diffie yHellman (1976).
Posteriormente otros criptosistemas asimetricos: RSA,ElGamal, curvas elıpticas, . . .
Asim etrica : distinta clave para cifrar que para descifrar.
Publica : de las claves es publica; la otra privada.
Conceptos previos necesarios: Teorıa de Numeros
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Definici on: divisor
Si a, b ∈ Z, entonces a divide a b, o a es divisor de b si
∃n ∈ Z : b = an
a|b denota que a divide a b
Ejemplo
4|12, ya que 12 = 4 · 3
Corolario: divisores del ceroCualquier n ∈ Z, n 6= 0, divide a 0:
0 = n · 0 ⇒ n|0
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema: transitividad
Si a, b, c ∈ Z, con a|b y b|c, entonces a|c
EjemploSi 4|8 y 8|16, entonces 4|16
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema: divisor de combinacion lineal
Si a, b, m, n ∈ Z y c|a y c|b, entonces
c|(ma + nb)
Ejemplo3|6 y 3|9, entonces 3|(m · 6 + n · 9). Si, por ejemplo, m = 2 y n = −4,entonces
3|(2 · 6 + (−4) · 9) −→ 3|(12 + (−36)) −→ 3|(−24)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema: algoritmo de la divisi on
Si a, b ∈ Z, b > 0, entonces
∃q, r ∈ Z unicos, : a = q · b + r , con 0 ≤ r < b
cona
q =⌊a
b
⌋
, y r = a − q · b
adonde ⌊ xy ⌋ con x , y ∈ Z es la operacion denominada “redondeo hacia
−∞”: entero mas proximo a xy del intervalo ] −∞,
xy ]
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema (cont.)
Ejemplo: a = 43, b = 5
q =
⌊
43
5
⌋
= ⌊8, 6⌋ = 8, y r = 43 − 8 · 5 = 3
por tanto: 43 = 8 · 5 + 3, con 0 ≤ r = 3 < b = 5
Ejemplo: a = −43, b = 5
q =
⌊−43
5
⌋
= ⌊−8, 6⌋ = −9, y r = −43 − (−9) · 5 = 2
por tanto: −43 = (−9) · 5 + 2, con 0 ≤ r = 2 < b = 5
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Definici on: cociente y resto
Los valores q y r del Algoritmo de la Divisi on se denominancociente y resto respectivamente.
Definici on: numeros primos y compuestos
Un numero primo es un numero entero positivo mayor que 1que solo es divisible por 1 y por sı mismo. Un numerocompuesto es todo entero positivo mayor que uno que no esprimo.
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema: divisores primos
Todo entero positivo mayor que 1 tiene al menos un divisorprimo.
Definici on: m aximo comun divisor
Sean a, b ∈ Z, con a, b 6= 0, el maximo comun divisor de a y bdenotado como mcd(a, b) es el mayor entero que divide tanto aa como a b.
Definici on: numeros relativamente primos
Dos enteros a y b son relativamente primos si mcd(a, b)=1. Yaque los divisores de a lo son tambien de −a,mcd(a, b)=mcd(|a|, |b|)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario: m aximo comun divisor con cero
mcd(n, 0) = n, ∀n ∈ Z, n 6= 0
Teorema: algoritmo de Euclides (c alculo del mcd)
Sean r0 y r1 dos enteros no negativos con r1 6= 0, la aplicacioniterativa del Algoritmo de la Divisi on de la forma
rj = qj+1rj+1 + rj+2, j ≥ 0
hace que
mcd(r0, r1) = rn, (el ultimo resto no nulo)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema (cont.)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema (cont.)
Ejemplo: r0 = 250 y r1 = 110
250 = 2 · 110 + 30
110 = 3 · 30 + 20
30 = 1 · 20 + 10
20 = 2 · 10 + 0
luego mcd(250,110)=10.
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario
Si a, b ∈ Z, y a = qb + r , entonces mcd(a, b)=mcd(b, r ).
Teorema: mcd y la menor combinaci on lineal positiva
Si a, b ∈ Z, con a, b 6= 0, entonces mcd(a, b) es el menor enteropositivo resultante de cualquier combinacion lineal de a y b.
Ejemplo: mcd(28,8)=4
28 · 1 − 8 · 3 = 28 − 24 = 4
Cualquier otra combinacion lineal es:
Bien mayor o igual que 4
Bien negativa
Teorema
Si a, b, c ∈ Z, a, b, c > 0, mcd(a, b) = 1 y a|bc, entonces a|c.
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Definici on: congruencia
Si a, b, n ∈ Z y n 6= 0, entonces, si n|(a − b) se dice que a escongruente con b modulo n, y se denota como a ≡ b(mod n).
CorolarioSi a ≡ b (mod n), entonces a mod n = b mod n
Ejemplo: 18 ≡ 6 (mod 4)
Es decir, 4|(18 − 6), entonces 18 mod 4 = 2 = 6 mod 4
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
CorolarioCualquier entero es congruente modulo n con algun entero delconjunto {0, 1, . . . , n − 1}.
Ejemplo: n = 4
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario: propiedad reflexiva
a ≡ a (mod n)
Corolario: propiedad sim etrica
a ≡ b (mod n) ⇔ b ≡ a (mod n)
Ejemplo
3 ≡ 7 (mod 2) ⇒ 2|(3 − 7) ⇒ 2|(−4)
7 ≡ 3 (mod 2) ⇒ 2|(7 − 3) ⇒ 2|411 ≡ −3 (mod 7) ⇒ 7|(11 − (−3)) ⇒ 7|14
4 6≡ −4 (mod 7) ⇒ 7 6 | (4 − (−4)) ⇒ 7 6 | (−8)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario: propiedad transitiva
a ≡ b (mod n), b ≡ c (mod n) ⇔ a ≡ c (mod n)
Ejemplosi 27 ≡ 3 (mod 6), y 3 ≡ 21 (mod 6), entonces
27 ≡ 21 (mod 6)
.
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
¡¡¡Confusi on!!!
Resto: a = b mod n(por el Algoritmo de la divisi on: b = qn + a)
Congruencia: a ≡ b (mod n)
Entonces
a = b mod n ⇒ a ≡ b (mod n)
a ≡ b (mod n) 6⇒ a = b mod n
Ejemplo: 21 ≡ 3 (mod 18)
. . . , pero 21 6= 3 mod 18
Por lo tanto, lo demostrable para el resto es aplicable para lacongruencia, pero no al reves.
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema
Sea a, b, n, i ∈ Z, con n, i > 0, entonces
(ani + b) mod n = b mod n
o bien
(ani + b) ≡ b (mod n)
Ejemplo: a = 3, n = 4, i = 2 y b = 7
(3 · 42 + 7) mod 4 = 55 mod 4 = 3 = 7 mod 4
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema
Si a, b, n ∈ Z, con n 6= 0 entonces:
(a + b) mod n = {(a mod n) + (b mod n)} mod n
(ab) mod n = {(a mod n)(b mod n)} mod n
Ejemplo
(8 + 9) mod 3 = 17 mod 3 = 2
8 mod 3 = 2
9 mod 3 = 0
((8 mod 3) + (9 mod 3)) mod 3 = (2 + 0) mod 3 = 2
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario
ab mod n = {(a mod n)b} mod n
Ejemplo: ¿ 4225 mod 500?Creacion de tabla:
41 mod 500 = 442 mod 500 = 1644 mod 500 = 25648 mod 500 = 36
416 mod 500 = 296432 mod 500 = 116464 mod 500 = 4564128 mod 500 = 436
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Ejemplo (cont)
N = 4225 mod 500
= 4128+64+32+1 mod 500
= {(4128 mod 500)(464 mod 500)(432 mod 500) ·
·(41 mod 500)} mod 500
= {436 · 456 · 116 · 4} mod 500
= {(198 816 mod 500)(464 mod 500)} mod 500
= (316 · 464) mod 500
= 124
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Definici onLa funcion de Euler, φ(n) (Euler totient function) es la cantidadde enteros positivos menores que n que son relativamenteprimos con n.
Ejemplo: n = 6
φ(6) = card{1, 5} = 2
Ejemplo: n primo → φ(n) = n − 1
φ(7) = card{1, 2, 3, 4, 5, 6} = 6
Teorema
Si p y q son primos y n = pq, entonces φ(n) = (p − 1)(q − 1).
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema
Sea{r1, r2, . . . , rφ(n)}
con 0 < ri < n y mcd(ri , n)=1, ∀1 ≤ i ≤ φ(n). Si a > 0 ymcd(a, n)=1, entonces
{ar1 mod n, ar2 mod n, . . . arφ(n) mod n}
es una permutacion de
{r1, r2, . . . , rφ(n)}
Ejemplo: φ(5) = card {1, 2, 3, 4} = 4, a = 7, mcd(7,5)=1
{7 · 1 mod 5, 7 · 2 mod 5, 7 · 3 mod 5, 7 · 4 mod 5} = {2, 4, 1, 3}
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Lema
Si a, b, n ∈ Z, n > 0, mcd(b, n)=1 y ab ≡ b (mod n), entoncesa ≡ 1 (mod n).
Demostraci onYa que ab ≡ b (mod n), entonces
n|(ab − b) o n|b(a − 1)
Ya que mcd(b, n)=1, —y que si a, b, c ∈ Z, a, b, c > 0,mcd(a, b) = 1 y a|bc, entonces a|c—, entonces
n|(a − 1) → a ≡ 1 (mod n)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
TeoremaTeorema de Euler: si a, n ∈ Z, n > 0 y mcd(a, n)=1, entonces:
aφ(n) ≡ 1 (mod n)
Demostraci onSea {r1, r2, . . . , rφ(n)} : 0 < ri < n, mcd(ri , n) = 1, 1 ≤ i ≤ φ(n). Segun elTeorema 22 :
φ(n)∏
i=1
ri
mod n =
φ(n)∏
i=1
(ari mod n)
mod n =
aφ(n)φ(n)∏
i=1
ri
mod n
por lo tanto
aφ(n)φ(n)∏
i=1
ri ≡φ(n)∏
i=1
ri (mod n)
Segun el lema anterior, aφ(n) ≡ 1 (mod n).
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario: Teorema de Euler para inversos modulares
aa−1 ≡ 1 (mod n)
con mcd(a, n)=1 (en caso contrario, dicho inverso no existe).Solucion:
a−1 ≡ aφ(n)−1 (mod n)
ya que
aa−1 ≡ aaφ(n)−1 (mod n)
≡ aφ(n) (mod n)
≡ 1 (mod n)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario: Algoritmo de Euclides (extendido) —mcd— parainversos modularesSi a y n son relativamente primos:
1 = mcd(a, n)
= i · a + j · n
1 mod n = (i · a + j · n) mod n
1 mod n = i · a mod n
1 ≡ i · a (mod n)
i ≡ a−1 (mod n)
Necesitamos conocer la combinacion lineal
i · a + j · n
mediante el desarrollo del algoritmo de Euclides
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario (cont.)
Ejemplo: a = 32, n = 4927, con mcd( 32,4927)=1
4927 = 153 · 32 + 3132 = 1 · 31 + 131 = 31 · 1
⇒
1 = 32 − 1 · 31= 32 − 1 · (4927 − 153 · 32)= 154 · 32 − 1 · 4927= i · a + j · n
154 ≡ 32−1 (mod 4927)
(154 · 32 = 4928 = 1 · 4927 + 1)
pero tambien, −1 ≡ 4927−1 (mod 32), o equivalentemente:
−1 = −1 · 32 + 31
−1 ≡ 31 ≡ 4927−1 (mod 32)
(31 · 4927 = 152 737 = 4773 · 32 + 1)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema: teorema de FermatSea p, a ∈ Z, con p primo, y mcd(a,p)=1, entonces
ap−1 ≡ 1 (mod p)
Demostraci onEs un caso particular del teorema de Euler, ya queφ(p) = p − 1, por ser p primo.
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
CorolarioSea p, a ∈ Z, con p primo, entonces
ap−1a ≡ a (mod p)
Demostraci on: dos posibilidades
Si mcd(p, a) = 1, entonces segun el teorema deFermat , ap−1 ≡ 1 (mod p), es decir,
p|(ap−1−1) ⇒ p|(ap−1−1)a ⇒ ap−1a ≡ a (mod p)
Si mcd(p, a) 6= 1, entonces a = kp (p es primo), esdecir
p|a ⇒ p|(ap−1 − 1)a ⇒ ap−1a ≡ a (mod p)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
CorolarioSea p, a ∈ Z, con p primo, entonces
ak(p−1)a ≡ a (mod p)
El razonamiento es analogo al anterior.
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
CorolarioSea p, a, b ∈ Z, con p primo, entonces
ab ≡ ab mod (p−1) (mod p)
Demostraci onSea b = k(p − 1) + r , con r = b mod (p − 1) (algoritmode la division), entonces
ab ≡ ak(p−1)+r ≡ ak(p−1)ar ≡ ar ≡ ab mod (p−1) (mod p)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema: teorema chino de los restos congruentes ( CRT—Chinese Remainder Theorem—)
Sean x1, x2, . . . xr ∈ Z y p1, p2, . . . pr ∈ Z con mcd(pi , pj )=1,∀i 6= j y N = p1p2 . . . pr . Sistema de ecuaciones decongruencias:
x ≡ x1 (mod p1)
x ≡ x2 (mod p2)
...
x ≡ xr (mod pr )
Solucion unica en [0, N − 1] (algoritmo de Gauss):
x ≡
(
r∑
i=1
(
Npi
)
[
(
Npi
)−1
(mod pi)
]
xi
)
(mod N)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema (cont.)
Ejemplo: r = 2, x1 = 124, x2 = 8, p1 = 7, p2 = 13
x ≡ 124 (mod 7)
x ≡ 8 (mod 13)
con mcd(p1, p2) = mcd(7,13) = 1, y N = 13 · 7 = 91, entonces
x ≡(
91
7
[
(
91
7
)−1
(mod 7)
]
· 124 +91
13
[
(
91
13
)−1
(mod 13)
]
· 8
)
(mod 91)
≡(
13[
13−1 (mod 7)]
· 124 + 7[
7−1 (mod 13)]
· 8)
(mod 91)
≡ (13 · [6] · 124 + 7 · [2] · 8) (mod 91)
≡ (9672 + 112) (mod 91)
≡ 9784 (mod 91)
≡ 47 (mod 91)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Teorema (cont.)
Ejemplo (cont.)Por tanto, 47 es el unico numero en el intervalo [0, 7 · 13 − 1] = [0, 90] quecumple que
47 ≡ 124 (mod 7)
47 ≡ 8 (mod 13)
Efectivamente ya que:
124 = 17 · 7 + 5
47 = 6 · 7 + 5
8 = 0 · 13 + 8
47 = 3 · 13 + 8
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
CorolarioSi N = p1p2 · · ·pr , con mcd(pi , pj )=1 ∀i 6= j , entonces
x ≡ a (mod N) ⇔
x ≡ a (mod p1)x ≡ a (mod p2)
...x ≡ a (mod pr )
Si en un sistema de ecuaciones de congruencias, xi = a,∀1 ≤ i ≤ r , entonces la solucion es x ≡ a (mod N)
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Corolario (cont.)
Ejemplo: a = 176, p1 = 7, p2 = 13, N = 7 · 13 = 91
x ≡ 176 (mod 91) ⇔{
x ≡ 176 (mod 7)x ≡ 176 (mod 13)
La solucion en el intervalo [0, 90] es
x ≡ 85 ≡ 176 (mod 91)
con 176 = 1 · 91 + 85 . Efectivamente:
176 = 25 · 7 + 1
85 = 12 · 7 + 1
176 = 13 · 13 + 7
85 = 6 · 13 + 7
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Algoritmo: algoritmo de Garner
Resuelve sistemas de ecuaciones congruentes, evitandooperaciones (mod N), con un sustancioso ahorro en eltiempo de calculo.
Entrada: vectores pi y xi (i = 1 . . . r )Salida: xfor i = 2 : r
Ci = 1for j = 1 : i − 1
u = p−1j mod pi
Ci = uCi mod piend
endx = x1 mod p1for i = 2 : r
u = (xi − x)Ci mod pi
x = x + u∏ i−1
j=1 pj
endreturn x
Intro. DH RSA ElGamal ECC
Introduccion a la Teorıa de Numeros
Ejemplo: traza del algoritmo de Garner conr = 2, p1 = 7, p2 = 13, x1 = 124, x2 = 8
Entrada: vectores pi y xi (i = 1 . . . 2)Salida: xfor i = 2 : 2
Ci = 1, (⇒ C2 = 1)for j = 1 : 1
u = p−1j mod pi , (⇒ u = p−1
1 mod p2, ⇒ u = 7−1 mod 13 = 2)Ci = uCi mod pi , (⇒ C2 = uC2 mod p2, ⇒ C2 = 2 · 1 mod 13 = 2)
endendx = x1 mod p1, (⇒ x = 124 mod 7 = 5)for i = 2 : 2
u = (xi − x)Ci mod pi , (⇒ u = (x2 − x)C2 mod p2,⇒ u = (8 − 5)2 mod 13 = 6)
x = x + u∏ i−1
j=1 pj , (⇒ x = x + up1, ⇒ x = 5 + 6 · 7 = 47)endreturn x (⇒ x = 47)
x = x1 mod p1 +[
(x2 − x1 mod p1)p−11 mod p2
]
p1
Intro. DH RSA ElGamal ECC
Funciones unidireccionales
Definici on
y = f (x) facilmente calculable, pero x = f−1(y) es intratablecomputacionalmente
Ejemplo: y ≡ gx (mod p), con y , g, p ∈ Z, y p primograndeLa funcion inversa x ≡ logg y (mod p) —problema del logaritmo
discreto — requiere O(e√
log(p) log log(p)) operaciones de computo elementales.Si p tiene del orden de 512 dıgitos binarios, y los logaritmos son en base 2,entonces, son necesarias
e√
512·9 = e67,8 = 2, 8 · 1029 operaciones
Si nuestro sistema es capaz de realizar 64 Giga-operaciones/s, se tardarıa:
2, 8 · 1029
64 · 109= 4, 4 · 1018 s = 1, 4 · 1011 a
Intro. DH RSA ElGamal ECC
Descripcion DH
Parametros
Sea
p un numero primo grande
g un generador del grupo multiplicativo Zp: sus potenciasgeneran todos los elementos del grupo
Zp = {1, 2, . . . p − 1}
p y g son publicos
Intro. DH RSA ElGamal ECC
Descripcion DH
Modus operandi
A BAcuerdo
enp y g
1 < xa < p − 1: xa secreto 1 < xb < p − 1: xb secretoya ≡ gxa (mod p) yb ≡ gxb (mod p)
ya ⇐⇒ yb
zba ≡ yxab ≡ gxbxa (mod p) zab ≡ yxb
a ≡ gxaxb (mod p)
zab = zba: secreto compartido
Ruptura: problema del logaritmo discreto , inviablecomputacionalmente.
Unico problema: ataque en el medio (autenticacion porotros medios).
Intro. DH RSA ElGamal ECC
Descripcion RSA
Parametros
Sean p y q dos numeros primos grandes y N = pq,entonces:
φ(N) = (p − 1)(q − 1)
Sea e un entero aleatorio, 1 < e < N, con mcd(e, φ(N))=1
Sea d otro entero que verifica:
ed ≡ 1 (mod φ(N))
d ≡ e−1 (mod φ(n))
es decir,
ed = kφ(N) + 1
Intro. DH RSA ElGamal ECC
Descripcion RSA
Modus operandi
Mensaje M: entero 0 ≤ M < N
Cifrado C:
C ≡ Me (mod N)
Descifrado:
M ≡ Cd ≡ (Me)d ≡ Med (mod N)
Clave de cifrado —publica—: (N, e)
Clave de descifrado —privada—: (N, d)
Intro. DH RSA ElGamal ECC
Descripcion RSA
Ejemplo
p = 11
q = 7
N = pq
= 11 · 7
= 77
φ(N) = (p − 1)(q − 1)
= 10 · 6
= 60
e = 17
d ≡ e−1 (mod 60)
≡ 17−1 (mod 60)
≡ 53 (mod 60)
M = 23
C ≡ Me (mod N)
≡ 2317 (mod 77)
≡ 141050039560662968926103
(mod 77)
≡ 67 (mod 77) (Alg. de
exponenciacion eficiente)
M′ ≡ Cd (mod N)
≡ 6753 (mod 77)
≡ 60529145527220195918987
11030314941034235684285
86509554343742858342336
00865328511929839774350
55987 (mod 77)
≡ 23 (mod 77)
Intro. DH RSA ElGamal ECC
Descripcion RSA
Comprobaci on: M ≡ Med (mod N)
Si N = pq, con p y q primos, por el Teorema chino de losrestos congruentes :
X ≡ Med (mod N) y{
X ≡ Med (mod p)
X ≡ Med (mod q)
Podremos calcular X . Recordemos que
ed = kφ(N) + 1
luego
X ≡ Mkφ(N)+1 (mod p)
X ≡ Mkφ(N)+1 (mod q)
Intro. DH RSA ElGamal ECC
Descripcion RSA
Comprobaci on: M ≡ Med (mod N)
X ≡ Mk(p−1)(q−1)+1 ≡ Mk(p−1)(q−1)M ≡ Mk1(p−1)M (mod p)
X ≡ Mk(p−1)(q−1)+1 ≡ Mk(p−1)(q−1)M ≡ Mk2(q−1)M (mod q)
con k1 = k(q − 1) y k2 = k(p − 1). Como p como q son primos:
X ≡ M ≡ Mk1(p−1)M (mod p)X ≡ M ≡ Mk2(q−1)M (mod q)
}
⇐⇒ X ≡ M ≡ Med (mod N)
Intro. DH RSA ElGamal ECC
Fortaleza de RSA
Fundamentos
A partir de la clave publica no puede deducirse nadarespecto a la clave privada
Problema del logaritmo discreto : inversion de c ≡ me
(mod N)
Problema de la factorizacion de N = pq
Problema del calculo de la funcion de Euler φ(N)
. . . de un numero —N— de valor extremadamente grande
Intro. DH RSA ElGamal ECC
Claves multiples de descifrado
¿Cuantas?
Sean
λ = mcm(p − 1, q − 1)
dλ ≡ e−1 (mod λ)
entonces,
di = dλ + iλ, i = 0, . . .
⌈
N − dλ
λ
⌉
− 1
son las⌈
N−dλ
λ
⌉
claves de descifrado RSA validas.
Intro. DH RSA ElGamal ECC
Claves multiples de descifrado
Ejemplo: p = 43, q = 71
N = pq = 43 · 71 = 3053
λ = mcm(p − 1, q − 1) = mcm(42, 70) = 210
Elegimos aleatoriamente e = 157, con tal de que mcd(e, λ)=1. Calculamos
dλ ≡ e−1 ≡ 157−1 ≡ 103 (mod 210)
Intro. DH RSA ElGamal ECC
Claves multiples de descifrado
Ejemplo (cont.)Las posibles claves de descifrado di parejas de e = 157 son:
di = dλ + iλ = 103 + i · 210
con
0 ≤ i ≤⌈
N − dλ
λ
⌉
− 1 ≤⌈
3053 − 103
210
⌉
− 1 ≤ ⌈14, 04⌉ − 1 ≤ 15 − 1
0 ≤ i ≤ 14
Por lo tanto:
di = {103, 313, 523, 733, 943, 1153, 1363,
1573, 1783, 1993, 2203, 2413, 2623, 2833, 3043}
Intro. DH RSA ElGamal ECC
Claves multiples de descifrado
Numero mınimo posible de claves validas: 2. Paraconseguirlas:
p y q son numeros primos fuertes:
p = 2p′ + 1
q = 2q′ + 1
siendo p′ y q′ dos numeros primos
Se escoge una clave de cifrado aleatoria e, tal que, siendodλ ≡ e−1 (mod λ), se cumpla que
dλ > N − 2λ
Intro. DH RSA ElGamal ECC
Claves multiples de descifrado
Ejemplo: p = 11 = 2p′ + 1, p′ = 5; q = 23 = 2q′ + 1,q′ = 11
N = pq = 11 · 23 = 253
λ = mcm(p − 1, q − 1) = mcm(10, 22) = 110
Se elije e aleatoriamente para que mcd(e, λ)=1, e = 31, siendo
dλ ≡ 31−1 ≡ 71 (mod 110)
siendo dλ = 71 > N − 2λ = 253 − 2 · 110 = 33. En este caso, las claves diparejas de e = 31 son:
di = 71 + i · 110,
0 ≤ i ≤⌈
N − dλ
λ
⌉
− 1 =
⌈
253 − 71
110
⌉
− 1 = ⌈1, 65⌉ − 1 = 2 − 1 = 1
= {71, 181}
Intro. DH RSA ElGamal ECC
Mensajes no cifrables
Definici on: mensaje no cifrable
Me ≡ M (mod N)
La cantidad de mensajes no cifrables σN es
σN = (1 + mcd(e − 1, p − 1))(1 + mcd(e − 1, q − 1)) (1)
Intro. DH RSA ElGamal ECC
Mensajes no cifrables
Mınima cantidad
Teorema: mınimo numero de mensajes no cifrables
p primo ⇒ p impar ⇒ p − 1 par
q primo ⇒ q impar ⇒ q − 1 par
φ(N) = (p − 1)(q − 1) par
mcd(e, φ(N))=1 ⇒ e impar (luego 2 < e < N)⇒ e − 1 par
El valor mınimo de la ecuacion (1) se obtiene cuando
mcd(e − 1, p − 1) = 2
mcd(e − 1, q − 1) = 2
En cuyo caso σN = (1 + 2)(1 + 2) = 9 mensajes no cifrables.
Intro. DH RSA ElGamal ECC
Mensajes no cifrables
Corolario: obtenci on del mınimo de mensajes no cifrables
Si p y q son numeros primos fuertes{
p = 2p′ + 1q = 2q′ + 1
mcd(e − 1, p − 1) = mcd(e − 1, 2p′) = 2 o 2p′
mcd(e − 1, q − 1) = mcd(e − 1, 2q′) = 2 o 2q′
Simcd(e − 1, p′) = mcd(e − 1, q′) = 1
entonces como e − 1 es par:
mcd(e − 1, 2p′) = mcd(e − 1, 2q′) = 2
consiguiendo el mınimo de 9 mensajes no cifrables .
Intro. DH RSA ElGamal ECC
Mensajes no cifrables
Ejemplo: N del orden de 1024 bitsEn una situacion practica, si por ejemplo, N se codifica con 1024 bits, laprobabilidad de que un mensaje sea no cifrable es:
Casos favorables
Casos posibles=
9
21024≈ 5 · 10−308
Intro. DH RSA ElGamal ECC
Alternativas de descifrado RSA
Concepciones convencionales
m ≡ cd (mod N)
Resolver el sistema
x ≡ cd (mod p)
x ≡ cd (mod q)
con N = pq, siendo la solucion m ≡ x (mod N)
Intro. DH RSA ElGamal ECC
Alternativas de descifrado RSA
Concepci on alternativa
x ≡ cd (mod p)
x ≡ cd (mod q)
}
⇒
{
x ≡ cdP (mod p)
x ≡ cdQ (mod q)
siendo
dP ≡ e−1 (mod p − 1) ⇒ dPe ≡ 1 (mod p − 1) ⇒ dPe = kp(p − 1) + 1
dQ ≡ e−1 (mod q − 1) ⇒ dQe ≡ 1 (mod q − 1) ⇒ dQe = kq(q − 1) + 1
entonces
x ≡ cdP ≡ medP ≡ mkp(p−1)+1 ≡ m (mod p)
x ≡ cdQ ≡ medQ ≡ mkq(q−1)+1 ≡ m (mod q)
}
⇒ x ≡ m (mod N)
Intro. DH RSA ElGamal ECC
Alternativas de descifrado RSA
Para resolver cualquiera de los sistemas planteados puedeemplearse el algoritmo de Gauss para el CRT
x ≡i=k∑
i=1
(
Nri
)
[
(
Nri
)−1
(mod ri)
]
ai (mod N)
≡ q(q−1 (mod p))cd + p(p−1 (mod q))cd (mod N)
≡ qp−1cd + pq−1cd (mod N)
≡ q(q−1 (mod p))cdP + p(p−1 (mod q))cdQ (mod N)
≡ qp−1cdP + pq−1cdQ (mod N)
Intro. DH RSA ElGamal ECC
Alternativas de descifrado RSA
O bien el algoritmo de Garner, que particularizado al problemaRSA (k = 2, a1 = cdP , a2 = cdQ , r1 = p, r2 = q)
x = cdP mod p1 + [(cdQ − cdP mod p1)p−1 (mod q)]p
En PKCS#1 se intercambian los papeles de a1 y a2, y de r1 y r2
Intro. DH RSA ElGamal ECC
RSA multiprimo
Sistema RSA en el que N = r1r2 · · · ru, con u > 2, entonces
λ = mcm(r1 − 1, r2 − 1, . . . , ru − 1)
Se elige 2 < e < N aleatorio, tal que mcd(e, λ)=1
Para cifrar:c ≡ me (mod N)
Intro. DH RSA ElGamal ECC
RSA multiprimo
Para descifrar, alternativas:m ≡ cd (mod N), donde
d ≡ e−1 (mod λ)
Se plantea el siguiente sistemas de ecuacionescongruenciales:
m ≡ cd1 (mod r1)
m ≡ cd2 (mod r2)
...
m ≡ cdu (mod ru)
dondedi ≡ e−1 (mod ri − 1), i = 1, . . . u
resolviendolo tıpicamente con el algoritmo de Garner.
Numeros primos implicados son mas pequenos (menoscostosos computacionalmente de tratar y conseguir).Desventaja: sistema menos robusto.
Intro. DH RSA ElGamal ECC
Relleno (padding)
Documento PKCS#1
PKCS#1-v1 5: si k es la longitud en octetos del modulo N,y l la del mensaje solo se pueden cifrar mensajes delongitud l ≤ k − 11Se cifra m′ = 00||02||PS||00||mdonde PS es una secuencia aleatoria de k − l − 3 octetos,sin ningun octeto a cero.
OAEP: Optimal Asymmetric Encryption Padding.
Intro. DH RSA ElGamal ECC
Sean
p: numero primo grande (varios centenares de dıgitosdecimales)
g: generador del grupo Zp (sus potencias generan todoslos elementos del grupo {1, . . . p − 1}).
x : numero entero aleatorio secreto
y ≡ gx (mod p)
Clave secreta: (p, g, x)
Clave publica: (p, g, y)
Intro. DH RSA ElGamal ECC
Cifrado:
Acceso a clave publica (p, g, y)
Generacion de numero aleatorio secreto k , con1 < k < p − 1 y mcd(k , p − 1)=1.
Un mensaje M, con 1 < M < p se cifra como
C = (r , s)
r ≡ gk (mod p)
s ≡ Myk (mod p)
Intro. DH RSA ElGamal ECC
Descifrado:
Acceso a su clave privada (p, g, x)
Mensaje M recuperado a partir de C = (r , s):
M ≡ s (r x)−1
(mod p)
Comprobacion:
s (r x)−1
≡ Myk((
gk)x)−1
(mod p)
≡ Myk(
(gx)k)−1
(mod p)
≡ Myk(
yk)−1
(mod p)
≡ M (mod p)
Intro. DH RSA ElGamal ECC
Ventajas: el mismo mensaje no tiene porque tener elmismo texto cifrado, debido a k
Inconvenientes: el cifrado es expansivo (longitud del texocifrado es el doble que el texto llano)
Fortaleza: logaritmo discreto
Intro. DH RSA ElGamal ECC
Ejemplo: (p, g, x) = (107, 32, 74)
siendo la clave publica ElGamal (p, g, y), con
y ≡ 3274 ≡ 53 (mod 107)
por tanto (p, g, y) = (107, 32, 53)Si alguien desea enviar un mensaje cifrado al propietario de esta clave debe:
Conseguir la clave publica (p, g, y) = (107, 32, 53)
Generar un numero aleatorio k , con mcd(k , p − 1)=1, por ejemplo 49
Cifrar el mensaje M con 1 < M < p, por ejemplo M = 82:
r ≡ gk (mod p) ≡ 3249 (mod 107) ≡ 58 (mod 107)
s ≡ Myk (mod p) ≡ 82 · 5349 (mod 107) ≡ 28 (mod 107)
C = (r , s) = (58, 28)
Intro. DH RSA ElGamal ECC
Ejemplo (cont.)El propietario de la clave podra descifrar el mensaje haciendo:
M ≡ s(
r x)−1(mod p)
≡ 28(
5874)−1
(mod 107)
≡ 28 · 16−1 (mod 107)
≡ 82 (mod 107)
Intro. DH RSA ElGamal ECC
ECC: Elliptic Curve Cryptography (criptografıa de curvaselıpticas)