Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Albert Garreta
University of the Basque Country UPV/EHU
marzo-mayo de 2021
albert.garreta@ehu.eus
Table of Contents
1
Contenidos
Parte I
Clase 1 - Contenidos y evaluación. Criterios de seguridad.
Clase 2 - Problemas con el Elgamal clásico.
Clase 3 - Curvas elı́pticas.
Clase 4 - Curvas elı́pticas en cuerpos finitos.
Clase 5 - Criptografı́a en curvas elı́pticas.
Clase 6 - Perfect secrecy.
Clase 7 - Teorema de Shannon y One-time pad.
Clase 8 - Funciones hash.
Clase 9 - Seguridad y construcción de funciones hash.
2
Contenidos
Parte II
Clase 11 - Firmas digitales en curvas elı́tpicas.
Clase 12 - ECDSA y otros tipos de firmas digitales.
Clase 13 - Padded RSA.
Clase 14 - Message Authentication Codes.
Clase 15 - Zero-knowledge proofs.
Clase 16 - Generación de números pseudoaleatorios.
Clase 17 - Esquemas de compartición de secretos.
Clase 18 - Construcción de protocolos criptográficos.
Clase 19 - Otros temas: criptografı́a basada en retı́culos, encriptación homomórfica.
3
Bibliografı́a
4
Evaluación
Los exámenes se harán individualmente en clase. Podéis usar los apuntes y diapositivas
de clase.
A partir del miércoles, la mayorı́a de clases durante la 2a hora se harán dos equipos.
Cada equipo realizará un problema y lo expondrá en la pizarra.
5
Recordatorio: sistema de encriptación simétrico
1. M es el conjunto de plaintexts
2. C es el conjunto de ciphertexts
3. K es el conjunto de llaves
4. e : M × K → C es la función de encriptación.
Para una llave k ∈ K y plaintext m ∈ M escribimos ek (m) en vez de e(m, k).
5. d : C × K → M es la función de decriptación.
Escribimos dk (c) en vez de d(c, k).
7
Alice Público Bob
Obtención de una llave secreta común a través de un canal seguro
k k
Encriptación
Escoge un plaintext m ∈ M.
ek (m) Calcula y manda ek (m) a Alice.
Desencriptación
Calcula dk (e(m)), obteniendo m
8
Recordatorio: sistema de encriptación asimétrico
1. M, C, plaintexts i ciphertexts.
2. K conjuntos de pares (kpriv , kpub ) donde kpriv es una llave secreta (o privada) y
kpub es una llave pública.
3. Una función de encriptación e que a cada m ∈ M y kpub asigna un ciphertex
ekpub (m) ∈ C.
4. Una función de decriptación d que a cada c ∈ C y kpriv asigna un plaintext
dkpriv (c) ∈ M.
9
ekpub debe ser inyectiva para todo kpub .
Como antes, las funciones dkpriv y ekpub tienen que ser fáciles de calcular.
ekpub puede ser probabilı́stica.
Sigue siendo necesario que ekpub (m) siempre es 6= ekpub (m0 ) si m 6= m0 .
10
Alice Público Bob
Creación de llaves
Escoge un par (kpriv , kpub ) ∈ K
Publica la llave pública kpub kpub
Encriptación
Escoge un plaintext m ∈ M.
ekpub (m) Calcula y manda ekpub (m) a Alice.
Desencriptación
Calcula dkpriv (ekpub (m)), obteniendo
m
11
Vimos los siguientes sistemas asimétricos sobre Zp y Zpq .
• RSA.
• Elgamal.
• Goldwasser-Micali.
Los tres sistemas tienen problemas importantes.
El 3o en términos de eficiencia.
Los dos primeros tienen problemas de seguridad que hoy en dı́a no se consideran
aceptables.
A continuación vamos a revisitar y a ampliar criterios de seguridad para un
criptosistema.
Luego veremos cuáles son los problemas con RSA y Elgamal.
Entonces empezaremos a ver curvas elı́pticas con el fin de presentar una nueva versión
más segura de Elgamal. 12
Seguridad criptográfica
1. Qué consideramos una brecha de seguridad. O visto desde el punto de vista del
adversario (Adv.), qué significa que un ataque sea exitoso.
2. Las capacidades del Adv. Esto es, el tipo de acciones que suponemos puede
realizar el Adv.
13
Posibles formas de “romper un criptosistema”, en el contexto de encriptación de
mensajes (simétrica o asimétricamente)1 :
Luego veremos qué se entiende por “el Adv. obtiene alguna información sobre m”?
1
para firmas digitales y otros hay otras nociones
14
También se tiene que especificar qué tipo de ataque se está considerando, esto es las
capacidades del Adv.
Como vimos, hay varios tipos de ataques:
15
• Chosen Plaintext Attack (CPA): el Adversario puede elegir cualquier plaintext m
(o cualquier número de ellos) y obtener fácilmente su encriptación c bajo la llave
pública/privada k.
Estándard para encriptación asimétrica.
*En términos técnicos, se dice que el Adv. dispone de un oráculo que, dado
m ∈ M, le devuelve ek (m) en muy poco tiempo.
• Chosen Ciphertext Attack (CCA): el Adv. puede escoger un (o más) ciphertexts,
distintos del ciphertext mandado por Bob, y obtener los plaintexts
correspondientes.
*El Adv. dispone de un oráculo que, dado c ∈ C, le devuelve un m ∈ M tal que
ek m = c en muy poco tiempo.
16
Cada uno de estos ataques es más fuerte que el anterior.
Nota: Si asumimos el principio de Kerchoff,
esto es el Adv. conoce todo sbre el criptosistema usado, ası́ como los parámetros
usados, menos la llave privada.
entonces tiene las capacidades de 1,2,3 automáticamente (asimétrico) o de 1
(simétrico).
En sistemas asimétricos no es razonable suponer que el Adv. es menos capaz que en 3.
Nunca lo vamos a considerar.
17
Criterios de seguridad
Supón hemos decidido qué significa romper el criptosistema y hemos elegido un tipo de
ataque.
Esto permite formular un problema P que debe resolver el Adv. para lograr sus fines.
Ejemplo: Si romper el sistema significa encontrar m, y el Adv. puede realizar un CPA,
entonces P es (sponemos sistema asimétrico):
• Input: los parámeros públicos del criptosistema, y un ciphertext c = ekpub (m) para
algún m ∈ M, junto con un oráculo que te devuelve ekpub (m0 ) siempre que le
mandas m0 ∈ M.
• Output: el plaintext m.
18
Como de seguro es el sistema? Hay varios criterios, o niveles de seguridad.
19
Ası́ tenemos valoraciones del estilo:
“El sistema X es provably secure frente a chosen plaintext attacks, ... ”
“... pero no es provably secure frente a chosen ciphertext attacks, ...”
“... donde por seguridad entendemos encontrar el plaintext correspondiente al
ciphertext mandado por Bob.”
20
Hoy en dı́a, se espera de un criptosistema que sea como mı́nimo provably secure frente
al siguiente tipo de ataques:
21
Notas sobre complejidad computacional
Ejemplo:
2
Esta no es la definiciónd de problema usada en un ámbito formal
22
Sean P1 y P2 dos problemas.
Informalmente, se dice que P1 es Turing reducible o simplemente reducble a P2 si,
dado cualquier input i1 de P1 , es posible escribir un input de P2 cuyo output puede
usarse para obtener un output de P1 para el input i1 .
En este caso, P2 es como mı́nimo tan difı́cil como P1 .
NOTA: esta definición es bastante vaga. Durante el curso veremos ejemplos y quedará
claro lo que significa.
La definición formal nos llevarı́a demasiado tiempo.
23
Por ejemplo Sea P1 el siguiente problema:
P2 es el siguiente problema:
24
Decimos que P1 y P2 son equivalentes si P1 es reducible a P2 y P2 es reducible a P1 .
25
Qué significa obtener información sobre el plaintext?
{ekpub (m) | m ∈ M}
28
Què pasa si la función de encriptación ek es probabilı́stica?
Sigue siendo posible desencriptar cualquier ciphertext con infinita capacidad
computacional bajo un CPA.
Suponiendo además que el Adv. conoce cómo opera ek .
Como ek es probabilı́stica, esto significa que a la hora de calcular ek (m) se escoge
cierto número, digamos t, de bits aleatorios.
Podemos crear una nueva función determinista ek0 (m, s) que acepta plaintext m y
secuencias de t bits (s = s1 , s2 , . . . , st , con si ∈ {0, 1} para todo i).
El ciphertext ek0 k (m, s) es el que resulta de calcular ekk (m) si la primera vez que se
necesita un bit aleatorio se escoge s1 , la 2a vez se escoge s2 , etc.
29
Entonces podemos probar todos los inputs posibles a ek0 , es decir, calcular
y ver para qué (m, s) tenemos ekk (m, s) = c. Entonces m es el plaintext original.
(Nota: No puede pasar que ek0 k (m, s) = c = ek0 k (m1 , s1 ) para algún m1 6= m, ya que
entonces la función decriptación no puede satisfacer los requisitos de un criptosistema
de llave pública.)
Nota: un sistema simétrico tampoco es unconditionally secure ante un CPA,
pero para un sistema simétrico, CPA es una suposición mucho más fuerte.
30
Perfect secrecy
32
Elgamal (repaso)
Encriptación
Escoge plaintext m ∈ Z∗p .
Escoge un elemento aleatorio k ∈
Zp .
Usa kpub para calcu-
k
lar C1 = g (mod p) y
C2 = mkpub k (mod p)
C2 Manda (C1 , C2 ) a Alice.
Desencriptación
Calcula C2 (C1a )−1 (mod p)
Esto es igual al plaintext m.
33
Seguridad de Elgamal (repaso)
35
Veremos que este problema es quivalente al siguiente problema:
36
El inverso, esto es resolver el primer problema suponiendo que puede resolver el
segundo: ejercicio.
Ahora vemos que el segundo problema es equivalente (Turing reducibles) al DHP:
En efecto: Supón que puede resolver el 2o problema y sea g d1 (mod p) y g d2 (mod p).
Entonces resuelve el 2o problema tomando A = g d2 (mod p) p, g ,
(c1 , c2 ) = (g d1 , g x ) (mod p), donde x es aleatorio.
Obtiene m ≡ c1−d2 c2 = g −d2 d1 g x (mod p), y ahora m−1 g −x ≡ g d1 d2 (mod p).
Recı́proco: ejercicio.
37