SI_20-21_Tema1_Criptografia_asimetrica

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 49

Tema 1

Criptografía asimétrica
o de clave pública
Profesores:
María de los Ángeles Mahillo García
Jorge Ramió Aguirre
Jesús Sánchez López
Giannicola Scarpa

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 1


1. Criptografía asimétrica o de clave pública
1.1. Introducción
1.2. Ventajas y desventajas de la cifra asimétrica frente a la simétrica
1.3. Intercambio de clave de Diffie y Hellman
1.4. Algoritmo Extendido de Euclides para el cálculo de inversos
1.5. Algoritmo de Exponenciación Rápida para la cifra

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 2


Criptografía asimétrica
o de clave pública
1.1. Introducción

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 3


Recordando la clasificación de la cifra moderna

• Según el tipo de claves


1. Simétricos o con clave secreta: Existirá una única clave (secreta)
que deben compartir emisor y receptor. Con la misma clave se cifra
y se descifra.
2. Asimétricos o con clave pública: Cada usuario crea un par de
claves, una privada y otra pública, inversas dentro de un cuerpo o
un grupo. Lo que se cifra en emisión con una clave, se descifra en
recepción solamente con la clave inversa.
• Según el tratamiento del mensaje en claro
1. Cifrado en flujo: El mensaje en claro se cifra bit a bit (o byte a
byte) con una secuencia de clave que va cambiando.
2. Cifrado en bloque: El mensaje en claro se divide en bloques de
algunos bytes, aplicando a continuación la cifra a cada uno de ellos
con la misma clave.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 4


Recordando los métodos de la cifra moderna

Métodos y algoritmos de cifra moderna


Cifrado en flujo Cifrado en bloques
(simétrico)

A5/1 RC4 Clave Secreta


Clave Pública (asimétrico)
Salsa20 (simétrico)

DES 3DES
Exponenciación Suma / Producto
IDEA AES

DH RSA Curvas Elípticas


Algoritmos más conocidos
Elgamal DSA Mochila MH

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 5


Sistema cifra asimétrico (CA) consiste en…
ke pública del destinatario kd privada del destinatario
kd privada del emisor ke pública del emisor
Emisor Destinatario
M C C M
Cifrado Medio de Descifrado
Transmisión

• El emisor transforma el texto en claro M (generalmente un número N) en un criptograma C


mediante un algoritmo, utilizando la clave pública del destinatario.
• El texto en claro o número se ha transmitido al receptor de forma confidencial.
• El receptor para la operación de descifrado, toma como entrada el criptograma C y su propia
clave privada para recuperar el secreto M.
• También podría haberse cifrado un número N con la clave privada del emisor, obteniéndose
en este segundo caso autenticidad en destino.

Asimétrico: Se usan claves diferentes (inversas) en ambos extremos.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 6


Por tanto los algoritmos asimétricos

• Utilizan dos claves, una pública • Permiten cifrar la información sin


que comúnmente se llama e (de tener que transmitir la clave
encrypt) y otra privada llamada d simultáneamente. Y hace posible
(de decrypt), inversas dentro de su uso en canales inseguros.
un cuerpo finito. Con una de ellas • El uso de estos algoritmos de
se cifra y con la otra se descifra. clave pública se restringe a:
• La seguridad del sistema reside 1. El intercambio de una clave
en la dificultad computacional de sesión K de un cifrador
para obtener la clave privada a simétrico.
partir de la clave pública si no se 2. La firma digital de archivos o
conoce un secreto o una trampa, documentos sobre un hash de
que sólo conoce su propietario. éstos.
¿Se cifrarán entonces solamente números?

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 7


Se cifrarán números, no mensajes

• La operación característica de la cifra asimétrica será mediante un


cifrado exponencial.
• La operación a realizar será C = AB mod n, en donde n es el cuerpo
de cifra (hoy recomendable 2.048 bits) y B es la clave pública de
destino o la privada del emisor, según el tipo de cifra que se desee.
• En la práctica A será siempre un número N (no un mensaje M).
• Y por lo general del orden de las centenas de bits.
• Esto es así porque este tipo de cifra es muy lenta y sería muy
costoso en tiempo cifrar o firmar, por ejemplo mensajes de cientos
o miles de kilobytes.
• No obstante, aunque sólo como ejercicio de laboratorio, sí podremos
cifrar texto formando bloques, tal como se hacía en la cifra simétrica.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 8


Criptografía asimétrica
o de clave pública
1.2. Ventajas y desventajas de la cifra asimétrica (CA)
frente a la cifra simétrica (CS)

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 9


Confidencialidad e integridad en CS

Bernardo k k Alicia

M C C M
Ek Medio de Dk
Transmisión

El intruso no podrá modificar El intruso no podrá obtener M


M y generar un criptograma C’ a partir del criptograma C
(INTEGRIDAD) (CONFIDENCIALIDAD)
INTRUSO

La confidencialidad y la integridad se lograrán si se protegen las


claves en el cifrado y en el descifrado, es decir, se obtienen
simultáneamente si se protege k, la clave secreta compartida.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 10


Confidencialidad en CA

eB  Clave pública eA  Clave pública


dB  Clave privada dA  Clave privada

Bernardo Alicia
Cifrado con clave pública del destinatario
eA dA
M M
C C
EeA Medio de DdA
Transmisión

No puede obtener M: Existe Confidencialidad.

PROBLEMA: Puede introducir C’ y no hay integridad.


INTRUSO Por ejemplo, ataque Man In The Middle.
La confidencialidad se consigue ya que el destinatario podrá descifrar el criptograma C con su
clave privada, que sólo él debería conocer. Ninguna otra clave servirá para descifrar C.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 11


Integridad en CA

eB  Clave pública eA  Clave pública


dB  Clave privada dA  Clave privada
Bernardo Alicia
Cifrado con clave privada del emisor
dB eB
M M
C C
EdB Medio de DeB
Transmisión

No puede introducir C’: Existe Integridad.


INTRUSO
PROBLEMA: Puede leer M y no hay confidencialidad.

Para conseguir la integridad del mensaje, el emisor debe utilizar su clave privada para cifrar y
cualquiera puede descifrarlo utilizando su clave pública. Permite asegurar que sólo pudo
haber sido el emisor quien empleó su clave privada (fundamento de la firma electrónica).

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 12


Confidencialidad e integridad en CA

eB  Clave pública
eA  Clave pública
dB  Clave privada
dA  Clave privada
Bernardo
Alicia
Usos de la criptografía asimétrica:
• En un sistema asimétrico, la confidencialidad y la integridad se obtienen por
separado. Una comunicación puede ser:
• Secreta o confidencial
• Ir firmada o con autenticidad de emisor e integridad de información
• O ambas cosas, ser confidencial y, además, auténtica e íntegra
• Cuando se usa (cifra con) la clave pública del destinatario lo que se busca es la
confidencialidad. Se utiliza para realizar de forma segura un intercambio de clave.
• Cuando se usa(cifra con) la clave privada del emisor lo que se busca es la
integridad; autenticar que el emisor es quien dice ser y que el mensaje es íntegro.
• En ambos casos, en la práctica no se cifrarán mensajes ni textos sino números de
sólo unas centenas de bits.
Tema 1 SI ‐ Criptografía asimétrica o de clave pública 13
(1) Seguridad en CS y CA
¿Dónde reside la seguridad de la cifra?
Un buen sistema de cifrado pone toda la seguridad en la clave y ninguna
en el algoritmo, excepto lógicamente su correcto diseño y código.
Es el segundo principio de Kerckhoffs.
• En la criptografía simétrica • En la criptografía asimétrica
• Usa una única clave para cifrar en • Cada usuario se crea un par de
emisión y la misma para descifrar claves llamadas pública y privada,
en destino. inversas dentro de un cuerpo
finito.
• La seguridad en la cifra simétrica
reside en cuánto de segura sea la • La seguridad de la cifra reside en
clave. la dificultad computacional de
encontrar la clave privada a partir
del conocimiento de la clave
pública.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 14


(2) Gestión de claves en CS y CA
¿Cuántas claves necesitamos gestionar?
• Criptografía simétrica • Criptografía asimétrica
• El sistema debe memorizar y trabajar • Sólo es necesario memorizar la clave
con un número muy alto de claves, privada del emisor.
exactamente n(n‐1)/2 claves en
donde n es el número de usuarios.
• Además no es posible la distribución
de claves por canales seguros.

En cuanto a la gestión de claves, serán mucho


más eficientes los sistemas de cifra asimétricos
pues los simétricos no permiten una gestión
eficiente de esas claves. En los asimétricos sólo
es necesario memorizar la frase o palabra de
paso para acceder a la clave privada.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 15


(3) Espacio de claves en CS y CA
¿De qué valor debe ser la clave?
• Criptografía simétrica • Criptografía asimétrica
• Debido al tipo de cifrador usado, en • Por el algoritmo usado en la cifra,
que normalmente el único ataque basado en un problema
viable es por fuerza bruta, la clave matemático de difícil solución
será del orden de centenas de bits. para números grandes, la clave
será del orden de miles de bits.
• Normalmente un valor entre 128 y
256 bits (año 2019). • En RSA y DH se usan 2.048 bits y en
ECC 256 bits (año 2019). Pero NSA
recomienda usar 3.072 y 384 bits.

En cuanto al espacio de claves, no son comparables los sistemas simétricos


con los asimétricos. Para atacar un sistema asimétrico NO se buscará en
todo el espacio de claves como debería hacerse en los sistemas simétricos.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 16


(4) Vida de las claves en CS y CA
¿Qué duración tiene la clave ?
• Criptografía simétrica • Criptografía asimétrica
• La vida o duración de la clave es • La duración de la clave pública y
muy corta pues estamos por consiguiente la clave privada
hablando de una clave de una asociada, que en general la entrega
sesión (ver TLS/SSL). y gestiona una tercera parte de
• Lo normal es que esté en el rango confianza, suele ser larga.
de los segundos, minutos u • Lo normal es que tenga uno o dos
horas. años de validez.
• Si se trata de una clave de cifrado
simétrico convencional (un
archivo en un disco duro p.e.) el
tiempo puede ser mucho mayor.
En cuanto a la vida de una clave, en los sistemas simétricos ésta es mucho
menor que las usadas en sistemas asimétricos. La clave de sesión simétrica
será aleatoria y, en cambio, las claves asimétricas serán propias del usuario.
Tema 1 SI ‐ Criptografía asimétrica o de clave pública 17
(5) Intercambio de claves en CS y CA
¿Cómo hacer llegar al destinatario la clave?

• Criptografía simétrica • Criptografía asimétrica


• No existe el intercambio de • Existe el intercambio de claves
claves en el sentido de que no es al poder enviar ésta (K) cifrada
posible enviar una clave de sesión, con la clave pública del
conociendo que el canal es por destinatario, consiguiendo
definición inseguro. confidencialidad.
• Es seguridad computacional por
la dificultad temporal y económica
para romperla.

En cuanto al intercambio de una clave, los sistemas simétricos no tienen


esta característica y los asimétricos sí.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 18


(6) Autenticación y firma digital en CS y CA
¿Existe autenticación completa?
• Criptografía simétrica • Criptografía asimétrica
• Se puede comprobar integridad • Al haber una clave pública y otra
del mensaje mediante funciones privada, se podrá autenticar al
MAC Message Authentication emisor y verificar la integridad
Code. del mensaje.
• No se puede autenticar al emisor • Si el emisor usa su clave privada,
de forma sencilla y eficiente. cualquiera que tenga su clave
• Carece de firma digital. pública puede deshacer el cifrado
y comprobar que es quien dice ser.
• Permite la firma digital.
En cuanto a la autenticación y firma, los sistemas simétricos tienen una
autenticación pesada y requieren de una tercera parte de confianza activa.
Los sistemas asimétricos permiten una firma digital verdadera, eficiente y
sencilla, en donde la tercera parte de confianza es sólo testimonial.
Tema 1 SI ‐ Criptografía asimétrica o de clave pública 19
(7) Velocidad de cifra en CS y CA
¿Cuál es la velocidad o tasa de cifra?

• Criptografía simétrica • Criptografía asimétrica


• La velocidad de cifra es muy alta. • La velocidad de cifra es muy baja.
• Del orden de cientos de • Del orden de cientos de
MegaBytes/segundo. KiloBytes/segundo.
• Es el algoritmo para la cifra del • Es el algoritmo para intercambio
mensaje, la cifra de datos de clave y firma digital.

En cuanto a la velocidad de cifra, los sistemas simétricos son de 100 a


1.000 veces más rápidos que los asimétricos.
Por ello los sistemas de cifra asimétricos se usan para el intercambio de
claves de sesión y firma digital (números de sólo centenas de bits) y la
cifra de los datos se hace con sistemas simétricos.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 20


¿Cuál es el mejor? I

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 21


¿Cuál es el mejor? II
La velocidad de cifra va a ser quien determine cómo usar los sistemas de cifra:
1. Cifra con clave pública o asimétrica para operaciones que requieran
intercambio de clave en un canal inseguro y firma digital, pero con
números pequeños (centenas de bits).
2. Cifra con clave secreta o simétrica para operaciones que requieran mucha
velocidad o la información sea muy voluminosa.
GARANTÍAS DE SEGURIDAD USO ALGORITMOS MÁS USADOS 2020

 DES con tamaño de clave de 56 bits (ya no se usa)


Cifra  Confidencialidad  Cifrado de  RC4 con tamaño de clave de 128 bits (ya no se usa)
Simétrica  Integridad mensajes  3DES EDE con tamaño de clave de 128 o 168 bits
 AES con tamaños de clave de 128, 192 y 256 bits

Intercambio de clave:
 RSA con tamaño de clave de 2.048 bits o mayor
 Confidencialidad  Intercambio
 DHE con tamaño de clave de 2.048 bits o mayor
Cifra  Integridad de claves
 ECDHE con tamaño de clave de 256 bits o mayor
Asimétrica  Autenticidad de origen y destino
Firma digital:
 No repudio de origen y destino  Firma digital
 RSA, DSA o DSS con claves de 2.048 bits o mayor
 ECDSA con tamaño de clave de 256 bits o mayor

https://en.wikipedia.org/wiki/Key_size (recomendaciones de la NSA)

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 22


Utilizar sistemas de cifra híbridos
Uno tiene firma e
• Intercambio de clave, firma
intercambio de digital y gestión de claves
clave y el otro no, • Son mejores los sistemas asimétricos
uno es rápido y el con dos claves: pública y privada.
otro no … • Cifrado de la información
• Son mejores los sistemas simétricos
con una sola clave: secreta.

Usaremos sistemas de cifra híbridos


El protocolo SSL/TLS utilizará ambos tipos de cifra, simétrica y asimétrica.
A través del cifrado con clave pública intercambian una clave de sesión, cuyo
valor es aleatorio. A partir de este momento, se utiliza esta clave de sesión
como clave secreta del cifrado simétrico para cifrar la información entre
cliente y servidor.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 23


Protocolo TLS/SSL
• ¿Qué es un servidor seguro?
• Es un servidor de páginas html que establece una conexión
cifrada con el cliente, de manera que nadie, excepto el servidor y
el navegador que ha accedido pueden compartir esa información.
La información va cifrada y existe una autenticación entre
cliente y servidor.
• ¿Quién lo utiliza?
• Principalmente servicios que
requieran confidencialidad:
bancos, compras, …
• ¿Cómo sé que estoy accediendo a
un servidor seguro?

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 24


Generalidades de SSL/TLS
Diapositiva animada
• ¿Qué es SSL/TLS?
• Es un protocolo para comunicaciones seguras por Internet que
implementan, por ejemplo, los navegadores para dotar de seguridad a las
comunicaciones servidor‐cliente.
• Explicación muy resumida. Una explicación más detallada en:
TLS Handshake Protocol: https://docs.microsoft.com/es‐es/windows/desktop/SecAuthN/tls‐handshake‐protocol
(1) U conecta con B mediante una dirección segura tipo https://www.banco.es.
(2) El navegador de U solicita al servidor una conexión segura.

(3) B envía un certificado electrónico firmado por una Autoridad de Certificación AC, donde
se incluye su clave pública.

(4) El navegador de U comprobará el certificado de B con la clave pública de la Autoridad de


Certificación adecuada. Dicha clave debería estar integrada en el propio navegador, y
corresponde a una AC conocida y de confianza.
(5) U genera una clave de cifrado simétrico K generada aleatoriamente, la cifra con la clave
Usuario U pública del servidor de B y se la envía a B.
Banco B

(6) B descifra el mensaje con su clave privada, y obtiene la clave de cifrado simétrico K. A partir de
este momento, la clave de cifra simétrica K está en posesión de B y de U, que la utilizarán para sus
transacciones durante la sesión.
Una vez se termina la conexión segura o bien ha pasado un time‐out, la clave simétrica deja de tener validez.
Una conexión posterior requerirá la repetición de todo el proceso anterior con una nueva clave simétrica.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 25


Certificado X.509 del banco B (1)

Certificado mostrado por Firefox

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 26


Certificado X.509 del banco B (2)

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 27


Criptografía asimétrica
o de clave pública
1.3. Intercambio de clave de Diffie y Hellman

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 28


Érase una vez…

• Alicia quiere enviar un mensaje sumamente personal a Bernardo…


• Mete su mensaje secreto en una caja de hierro, la cierra con un candado y se la
envía a Bernardo.
• Cuando la caja llega a su destino, Bernardo añade su propio candado, la vuelve a
cerrar y vuelve a enviar la caja a Alicia.
• Cuando Alicia recibe la caja, ahora está cerrada con dos candados. Ella abre su
propio candado, dejando que sólo el candado de Bernardo cierre la caja.
• Finalmente, vuelve a enviar la caja a Bernardo.
• Y aquí está la diferencia crucial: ahora Bernardo puede abrir la caja y leer el
mensaje secreto, porque la caja está cerrada sólo con su propio candado y
únicamente él tiene la llave correspondiente para abrirla
• El secreto siempre ha estado bien protegido durante la transmisión
• ¿Y si cerrar el candado fuese la acción de cifrar y abrirlo la de descifrar?

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 29


Pero… en el cifrado el orden importa
a b c d e f g h i j k l mn o p q r s t u v w x y z
HF SUGT A K V D EO Y J BPN XWCQR I MZ L
Alfabeto de cifra por sustitución de Alice mod 26
Alice
ab c d e f g h i j k l mn o p q r s t u vwx y z
Bob C PMG A T NO J E FW I QB U R Y H X S D Z K L V
Alfabeto de cifra por sustitución de Bob mod 26

Mensaje s e e y o u t o m o r r o w

Cifrado Alice WG G Z B Q C B Y B X X B I ?
Cifrado Bob Z N N V P R M P L P K K P J

Descifrado Alice y q q i p v x p z p h h p n

Descifrado Bob r n n m b z t b w b s s b g

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 30


Una buena idea, que había que perfeccionar

• De lo anterior podría deducirse que el enfoque de los candados para


enviar un secreto NO funcionaría en la criptografía real: no es así.
• Esto inspiró a Diffie y Hellman a buscar un método práctico para
resolver el problema de la distribución de claves.
• ¿Cuál sería la solución?
• Usar funciones de una sola vía. Como su nombre sugiere, una
función de una sola vía es fácil de hacer pero muy difícil de
deshacer. En otras palabras, las funciones de doble vía son
reversibles, pero las funciones de una sola vía son irreversibles.
• En concreto, utilizaron el problema del logaritmo discreto.

¿Se te ocurren ejemplos de la vida real para estas funciones?

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 31


El problema del logaritmo discreto

• Se elige un primo p grande y dentro de él un generador o raíz


Exponenciación primitiva que llamaremos , ambos valores serán públicos
modular
• Con un valor secreto x se calcula y = x mod p

• Conocido el resultado y, además de los valores públicos  y el


Problema del
primo p, será computacionalmente muy difícil encontrar el
Logaritmo Discreto
valor secreto x puesto que: x = log y mod p

Un generador o raíz primitiva  es un elemento del primo p que será capaz de generar todo
el cuerpo p, de forma que las operaciones 1 mod p, 2 mod p, …, p‐1 mod p, entregan todos
los elementos o restos de p, desde 1 hasta p‐1.

21 mod 7 = 2 mod 7 = 2 31 mod 7 = 3 mod 7 = 3


22 mod 7 = 4 mod 7 = 4 Uno de estos números 32 mod 7 = 9 mod 7 = 2
23 mod 7 = 8 mod 7 = 1 (el 2 o el 3) es una raíz 33 mod 7 = 27 mod 7 = 6
24 mod 7 = 16 mod 7 = 2 primitiva o generador 34 mod 7 = 81 mod 7 = 4
25 mod 7 = 32 mod 7 = 4 en p = 7… 35 mod 7 = 243 mod 7 = 5
26 mod 7 = 64 mod 7 = 1 36 mod 7 = 729 mod 7 = 1

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 32


El algoritmo de Diffie‐Hellman

• El comienzo de los sistemas de clave pública se debe al estudio


hecho por Whitfied Diffie y Martin Hellman en noviembre de 1976.
• Investigadores de la Universidad de Stanford.
• Este algoritmo se utiliza para el intercambio de claves entre dos
interlocutores A y B. Ambos seleccionan un número primo p y un
generador  de p, valores públicos, y realizan estos pasos:
A genera un número aleatorio a y envía a B a mod p
B genera un número aleatorio b y envía a A b mod p
B usa b y calcula (a)b mod p = ab (mod p)
Alicia
A usa a calcula (b)a mod p = ba (mod p)

Bernardo
El secreto compartido por A y B es el valor ab mod p

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 33


Ejemplo de clave compartida vía DH

Alicia (A) y Bernardo (B) van a intercambiar una clave de sesión


dentro del cuerpo p = 1.999, siendo el generador  = 33.
Alicia elegirá el valor secreto a = 47
Bernardo elegirá el valor secreto b = 117
1. A calcula a mod p = 3347 mod 1.999 = 1.343 y se lo envía a B.
2. B calcula b mod p = 33117 mod 1.999 = 1.991 y se lo envía a A.
3. B recibe 1.343 y calcula 1.343117 mod 1.999 = 1.506.
4. A recibe 1.991 y calcula 1.99147 mod 1.999 = 1.506.
5. El valor ab mod p = 3347117 mod 1.999 = 1.506
6. La clave compartida K es 335.499 mod 1.999 = 1.506
• El inconveniente de este protocolo es que el secreto compartido se
conoce a posteriori, una vez terminado el protocolo.
• Variaciones del algoritmo permiten usar este protocolo para enviar
un número secreto previamente conocido, es decir enviar una clave
de sesión K generada antes por el emisor.
Tema 1 SI ‐ Criptografía asimétrica o de clave pública 34
Pasos en intercambio de DH
Diapositiva animada

SELECCIONAR Módulo de aritmética modular p = 1.999


VALORES Públicos
Base de la exponenciación modular α = 33
ALICIA BERNARDO

CREAR SECRETO
SECRETO SECRETO

a = 47 b = 117
CREAR CLAVE DE
INTERCAMBIO
CALCULA CALCULA
1.991
ENVIAR LAS A = 1.343 B = 1.991
CLAVES
COMPARTIDAS
CALCULA CALCULA
1.343
CREAR
CREAR LA
LA CLAVE
CLAVE K = 1.506 K = 1.506
DE SESIÓN

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 35


Seguridad en el intercambio de DH

• ¿Puede un intruso atacar  Realice un ataque por


la clave DH? fuerza bruta
• Un intruso que conozca  Se enfrente al Problema del
los valores públicos p y  Logaritmo Discreto PLD
e intercepte el valor  Realice un ataque “man in
a mod p que ha enviado the middle”
Alicia o el valor b mod p
que ha enviado Bernardo,
no podrá descubrir los
valores de a de b a no ser
que…

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 36


Ataque por fuerza bruta a DH

• Ataque por fuerza bruta


• Este tipo de ataque siempre es posible aunque resulta costoso.
• ¿Qué sabe el intruso?
• El intruso conoce el valor  = 33 y que p = 1.999
• Captura el valor que Alicia envía a Bernardo: Valor = 1.343
• Captura el valor que Bernardo envía a Alicia: Valor = 1.991
• Y con esos valores, ¿qué puede hacer?
• Calcula 33xa mod 1.999 = 1.343 para todos los valores de xa dentro
del cuerpo p (de 0 a p‐1) hasta que se dé la igualdad para obtener la
clave de Alicia.
• Calcula 33xb mod 1.999 = 1.991 para todos los valores de xb dentro
del cuerpo p (de 0 a p‐1) hasta que se dé la igualdad para obtener la
clave de Bernardo.
• 331 mod 1.999 = 33, 332 mod 1.999 = 1.089, 333 mod 1.999 = 1.954, …
• Éxito cuando: 3347 mod 1.999 = 1.343 … o bien 33117 mod 1.999 = 1.991
• Esto es absurdo hacerlo con claves grandes, hay algoritmos mucho mejores.
Tema 1 SI ‐ Criptografía asimétrica o de clave pública 37
El problema del logaritmo discreto en DH

• Un intruso que escuche en la línea, no podrá conocer la clave


intercambiada ab mod p
• Salvo que se enfrente al Problema del Logaritmo Discreto PLD,
computacionalmente intratable para valores de p grandes del
orden o superiores a 1.000 bits, como ya se ha comentado.
• Efectivamente, si llamamos C a a mod p, para obtener el valor
secreto a de Alicia, el atacante debería realizar la operación
inversa: a = log C mod p.
• Se trata de un problema NP (Polinomial No Determinista) debido
a la operación final del módulo p. Si aumentamos el tamaño de la
entrada, el nuevo tiempo de cómputo no es lineal con respecto a ese
aumento.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 38


Características del PLD y seguridad DH

• En el ejemplo anterior, donde C = 1.343,  = 33 y p =1.999, para encontrar


el valor de a podríamos recorrer todos sus valores posibles:
33? mod 1.999 = 1.343 (con ? = 2, 3, 4, … p‐1)
• Y al llegar al valor 47 se obtiene el valor de a que satisface el logaritmo:
log33 1.343 mod 1.991 = 47
• Este cálculo es computacionalmente imposible para números grandes.
• Existen diversos algoritmos, más eficientes, para calcular el logaritmo
discreto, pero todos tienen un comportamiento de tipo NP en función del
tamaño de p.
• Para conseguir fortaleza en el algoritmo de DH debería además cumplirse:
• Que el número primo p elegido fuese alto (más de 1.000 bits).
• Que el valor  fuese un generador o raíz primitiva del grupo p. En
otro caso, la operación i mod p (1  i  p‐1) no generaría todos los
restos del grupo y esto “facilitaría” el ataque por fuerza bruta. No
obstante, en la práctica esto no se hace: se usa  = 2 o  = 5.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 39


Eve = eavesdropping”

Man in the middle


Bernardo Cristina Alicia

El algoritmo de DH no es inmune al ataque Man In The Middle MITM.


• A elige un número a con 1 < a < p‐1 y envía a B a mod p.
• C intercepta este valor, elige un número c con 1 < c < p‐1 y envía a B
c mod p.
• B elige un número b con 1 < b < p‐1 y envía a A b mod p.
• C intercepta este valor y envía a A c mod p (lo mismo que a B).
• A y B calculan sus claves: kA = (c)a mod p, kB = (c)b mod p.
• C calcula también las claves: kCA = (a)c mod p, kCB = (b)c mod p.
• A partir de ahora todo lo que A envíe a B y lo que B envíe a A lo
intercepta C y les envía lo que ella desee.
• Una de las maneras de evitar este ataque es incorporando esquemas
de autenticación.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 40


Eve = eavesdropping”

Ejemplo de MITM
Bernardo Cristina Alicia

INFORMACIÓN COMÚN Módulo de la aritmética modular: p = 41


Raíz o base de la exponenciación:  = 6

ALICIA CRISTINA BERNARDO


Clave secreta 3 1º 11 Clave secreta 5 Clave secreta 4
2º 27
Calcula a mod p Calcula c mod p Calcula b mod p
= 63 mod 41 4º 27 = 65 mod 41 3º 25 = 64 mod 41
= 11 = 27 = 25

Alicia calcula Cristina calcula Bernardo calcula


3 kCA = 115 mod 41 = 3 40
kA = 273 mod 41 kB = 274 mod 41
= 3 kCB = 255 mod 41 = 40 = 40

A partir de ahora todo lo que Alicia envíe a Bernardo y lo que Bernardo envíe a Alicia
lo intercepta Cristina y con claves 3 y 40 puede modificarlo a su gusto.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 41


Criptografía asimétrica
o de clave pública
1.4. Algoritmo Extendido de Euclides para el cálculo de
inversos

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 42


Recordando los inversos y su importancia

• Como en la criptografía asimétrica existen dos claves inversas entre sí en


un cuerpo, se hará mucho uso de los inversos.
• En el algoritmo RSA, el inverso a calcular será el multiplicativo. Así, la
ecuación inv (a, n) = b, indica que b*a mod n = 1.
• El inv (a, n) existe si y sólo si mcd (a, n) = 1, y es único.
• Si n = 15, el inv (8, 15) sí existe porque 8 = 2x2x2 y 15 = 3x5.
0x8 mod 15 = 0 1x8 mod 15 = 8 2x8 mod 15 = 1 3x8 mod 15 = 9
4x8 mod 15 = 2 5x8 mod 15 = 10 6x8 mod 15 = 3 7x8 mod 15 = 11
8x8 mod 15 = 4 9x8 mod 15 = 12 10x8 mod 15 = 5 11x8 mod 15 = 13
12x8 mod 15 = 6 13x8 mod 15 = 14 14x8 mod 15 = 7 inv (8, 15) = 2

• La manera más rápida y lógica de calcular el inverso es mediante el


Algoritmo Extendido de Euclides AEE. Además, la solución de este
algoritmo converge rápidamente; por lo general en menos de 12 pasos.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 43


Algoritmo Extendido de Euclides
Diapositiva animada

Para encontrar x = inv (a, n) mediante el AEE


Hacer (g0, g1, u0, u1, v0, v1, i) = (n, a, 1, 0, 0, 1, 1) Ejemplo: se pide
encontrar
Mientras gi  0 hacer
x = inv (9, 25)
Hacer yi+1 = parte entera (gi‐1/gi)
Hacer gi+1 = gi‐1 ‐ yi+1 gi i yi gi ui vi
Hacer ui+1 = ui‐1 ‐ yi+1 ui 0 ‐ 25 1 0
Hacer vi+1 = vi‐1 ‐ yi+1 vi 1 ‐ 9 0 1
Hacer i = i+1 ‐
2 2 7 1 ‐2
Si (vi‐1 < 0) x =
3 1 2 ‐1 3
Hacer vi‐1 = vi‐1 + n
Hacer x = vi‐1 4 3 1 4 ‐11
x = inv (9, 25) = ‐11+25 = 14 5 2 0 ‐9 25
Cálculo online animado: https://dsri.github.io/modinverse/ Explicación gráfica obtención del valor 3

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 44


Criptografía asimétrica
o de clave pública
1.5. Algoritmo de Exponenciación Rápida para la cifra

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 45


Operaciones de exponenciación en criptografía

• Cifrando el número secreto N = 48 con exponente e = 5 y n = 91:


• C = Ne mod n = 485 mod 91 = 254.803.968 mod 91 = 55
• Se puede hacer primero 485 = 254.803.968 porque e es pequeño
• Descifrando el criptograma C con exponente e = 29 y n = 91:
• N = Cd mod n = 5529 mod 91 = 48 (recuperado el secreto N = 48)
• Pero ahora 5529 es número “grande”, concretamente de 51 dígitos:
5529 = 295.473.131.755.644.748.809.642.476.009.391.248.226.165.771.484.375
• ¿Cómo podemos acelerar esta operación?
• Usando algoritmos de exponenciación rápida AER.
• Será de especial interés para el descifrado dentro de un intercambio
de claves porque, en este caso, todos los números (C, d, n) en la
ecuación Cd mod n serán del orden de n, por ejemplo 2.048 bits.

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 46


Algoritmo de Exponenciación Rápida
Diapositiva animada

Algoritmo Exponenciación Rápida Ejemplo: calcular 5529 mod 91


Hallar x = Cd mod n
2910 = 111012 = b4b3b2b1b0
• Obtener representación binaria
del exponente d de k bits: x=1
d2  bk‐1bk‐2...bi...b1b0 i=4 b4= 1 x = 1255 mod 91 = 55 x = 55
• Hacer x = 1 i=3 b3= 1 x = 55255 mod 91 = 27 x = 27
• Para i = k‐1, ..., 0 hacer i=2 b2= 1 x = 27255 mod 91 = 55 x = 55
x = x2 mod n i=1 b1= 0 x = 552 mod 91 = 22 x = 22
Si (bi = 1) entonces i=0 b0= 1 x = 22255 mod 91 = 48 x = 48
x = x C mod n 5529 mod 91 = 48
• Como bk‐1 siempre será 1, la primera operación siempre entrega x = C, el valor
con el que se comienza. El algoritmo ha necesitado 4 operaciones de potencia
(x2), más 3 operaciones de multiplicación (x55) y 4 reducciones mod n, en
total solamente 11 operaciones.
• Con operaciones básicas reiterativas x*x mod n, luego *x mod n, etc., serían 28
multiplicaciones con sus 28 reducciones mod n, es decir 56 operaciones.
• Si n es muy grande (como en la práctica) el ahorro de cómputo es inmenso.
Tema 1 SI ‐ Criptografía asimétrica o de clave pública Fin del Tema 1 47
(saber +) con Thoth

• Píldora 24: ¿Por qué usamos el algoritmo de Euclides para calcular


inversos?
• https://www.youtube.com/watch?v=LBgq4NKLHws
• Píldora 25: ¿Cómo calculamos inversos con el algoritmo extendido
de Euclides?
• https://www.youtube.com/watch?v=D289EF58Yrw
• Píldora 27: ¿Qué es mejor, la criptografía simétrica o la asimétrica?
• https://www.youtube.com/watch?v=0qfOVm‐dtcQ
• Píldora 37: ¿Cómo funciona el algoritmo de exponenciación
rápida?
• https://www.youtube.com/watch?v=atadETMx9Lk
• Píldora 38: ¿Qué es el intercambio de clave de Diffie y Hellman?
• https://www.youtube.com/watch?v=TWhax2wQOrU

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 48


(saber +) con Class4crypt

• Lista de reproducción Módulo 2 Matemáticas discretas en la


criptografía
• https://www.youtube.com/playlist?list=PLq6etZPDh0kvX0GdYngOt
PcGYUhZ3XDKl
• 2.4. Cálculo de inversos con el algoritmo extendido de Euclides
• 2.5. Algoritmo de exponenciación modular rápida
• 2.6. Raíces primitivas en un primo p

• Lista de reproducción Módulo 10 Criptografía asimétrica


• https://www.youtube.com/playlist?list=PLq6etZPDh0kvlQtQ4w6Nki
sPE4tEobKQd
• 10.1. Criptografía asimétrica y la analogía de los candados
• 10.2. Protocolo de intercambio de clave de Diffie y Hellman
• 10.3. Ataque man in the middle al intercambio de clave de DH

Tema 1 SI ‐ Criptografía asimétrica o de clave pública 49

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy