Criptografia: Conceptos básicos e implementación con software libre

42
Criptografía: conceptos básicos e implementación con software libre José Luis Bolaños Herazo Ingeniero de Sistemas de la Universidad de Cartagena Plinio Puello Marrugo Docente de Tiempo Completo de la Universidad de Cartagena

Transcript of Criptografia: Conceptos básicos e implementación con software libre

Page 1: Criptografia: Conceptos básicos e implementación con software libre

Criptografía: conceptos básicos e implementación con software libre

José Luis Bolaños Herazo Ingeniero de Sistemas de la Universidad de Cartagena Plinio Puello Marrugo Docente de Tiempo Completo de la Universidad de Cartagena

Page 2: Criptografia: Conceptos básicos e implementación con software libre

Comunicación Segura

Page 3: Criptografia: Conceptos básicos e implementación con software libre

Protección de Archivos

Page 4: Criptografia: Conceptos básicos e implementación con software libre

Criptografía

• Criptografía es una herramienta poderosa

• Es la base para muchos mecanismos de seguridad

• Es confiable si se implementa adecuadamente

• No implementar algoritmos por nuestra cuenta

Page 5: Criptografia: Conceptos básicos e implementación con software libre

Criptografía

• Firma digital

• Comunicación Anónima

• Elección Anónima

• Subasta Privada

• Comprar

Page 6: Criptografia: Conceptos básicos e implementación con software libre

Criptografía

Page 7: Criptografia: Conceptos básicos e implementación con software libre

Ciencia de Varios Pasos

3 pasos:

• Definir la amenaza

• Proponer una Construcción

• Probar que la construcción bajo la amenaza, lleva consigo un problema difícil de resolver

Page 8: Criptografia: Conceptos básicos e implementación con software libre

Historia

Cifrado por sustitución • Cifrado Cesar

Page 9: Criptografia: Conceptos básicos e implementación con software libre

Historia

Cifrado por sustitución • Cifrado Cesar

Page 10: Criptografia: Conceptos básicos e implementación con software libre

Historia

• Máquina de rotor

• Máquina con múltiples rotores

Page 11: Criptografia: Conceptos básicos e implementación con software libre

Historia

• Máquina con múltiples rotores

Page 12: Criptografia: Conceptos básicos e implementación con software libre

Cifrado Seguro

• El cifrado no debe revelar ninguna información sobre el texto

• Conociendo el algoritmo sea imposible descifrar el mensaje

Page 13: Criptografia: Conceptos básicos e implementación con software libre

Estándar de encriptación de datos

• DES: # keys = 256 , Tamaño de bloques = 64 bits

• AES (2001)

Page 14: Criptografia: Conceptos básicos e implementación con software libre

Cifrado Simétrico

Page 15: Criptografia: Conceptos básicos e implementación con software libre

Stream Cipher

Page 16: Criptografia: Conceptos básicos e implementación con software libre

Stream Cipher Compuerta XOR

𝑐 𝐸 𝑚, 𝑘

𝑐 = 𝑚⊕ 𝑘

𝑚 𝐷 𝑐, 𝑘

𝑚 𝐷(𝐸 𝑚, 𝑘 , 𝑘)

𝑚 𝐷(𝑚⊕ 𝑘, 𝑘)

𝑚 𝑚⊕ 𝑘⊕ 𝑘

𝑚 𝑚

Page 17: Criptografia: Conceptos básicos e implementación con software libre

Stream Cipher

𝑐1 𝑚1⊕𝑘

𝑐2 𝑚2⊕𝑘

𝑐1⊕ 𝑐2 = 𝑚1⊕𝑘⊕𝑚2⊕𝑘

𝑐1⊕ 𝑐2 = 𝑚1⊕𝑚2

Page 18: Criptografia: Conceptos básicos e implementación con software libre

Stream Cipher

• Proyecto Venona

• MS-PPTP

• Encriptación de discos (DVD,CD,BlueRay)

Page 19: Criptografia: Conceptos básicos e implementación con software libre

Block Cipher

Page 20: Criptografia: Conceptos básicos e implementación con software libre

Expansión de llaves

Page 21: Criptografia: Conceptos básicos e implementación con software libre

CBC con Random IV

CBC : Cipher Block Chaining IV : Inicialization vector

Page 22: Criptografia: Conceptos básicos e implementación con software libre

CBC con nonce

Page 23: Criptografia: Conceptos básicos e implementación con software libre

Ctr-mode random

Ctr-mode : Counter Mode

Page 24: Criptografia: Conceptos básicos e implementación con software libre

Nonce ctr-mode

Page 25: Criptografia: Conceptos básicos e implementación con software libre

Integridad

• Proteger Archivos en el disco duro

• Proteger publicidad en páginas web

Integridad de los Mensajes: MAC (Message Authentication Code)

Page 26: Criptografia: Conceptos básicos e implementación con software libre

Integridad

Page 27: Criptografia: Conceptos básicos e implementación con software libre

Integridad

• CBC_MAC

Page 28: Criptografia: Conceptos básicos e implementación con software libre

Integridad

• NMAC

NMAC : NEST MAC

Page 29: Criptografia: Conceptos básicos e implementación con software libre

Integridad

• NMAC

Page 30: Criptografia: Conceptos básicos e implementación con software libre

Integridad

• NMAC – Ataque de extensión en la cascada

Page 31: Criptografia: Conceptos básicos e implementación con software libre

Integridad

• PMAC

PMAC : Parallelizable MAC

Page 32: Criptografia: Conceptos básicos e implementación con software libre

Encriptado Autenticado

Page 33: Criptografia: Conceptos básicos e implementación con software libre

Encriptado Autenticado

• Encriptar después MAC

• Mac después Encriptar

Page 34: Criptografia: Conceptos básicos e implementación con software libre

Estándar MAC

• GCM: CTR mode encryption después CW-MAC

• CCM: CBC-MAC después CTR mode

• EAX: CTR mode encryption después CMAC

Page 35: Criptografia: Conceptos básicos e implementación con software libre

Encriptación de Disco con XTS

TrueCrypt, Bestcrypt,…

Page 36: Criptografia: Conceptos básicos e implementación con software libre

Intercambio de Llaves

Page 37: Criptografia: Conceptos básicos e implementación con software libre

Protocolo Diffie-Hellman

Page 38: Criptografia: Conceptos básicos e implementación con software libre

Ataq

ue M

an-in

-Mid

dle

en el p

roto

colo

Deffie-H

ellman

Page 39: Criptografia: Conceptos básicos e implementación con software libre

Llave Pública

Page 40: Criptografia: Conceptos básicos e implementación con software libre

Llave Pública

Page 41: Criptografia: Conceptos básicos e implementación con software libre

RSA

Generación de claves • Cada usuario elige dos números primos distintos 𝑝 𝑦 𝑞 . • Por motivos de seguridad, estos números deben escogerse de forma aleatoria y deben tener una

longitud en bits parecida. Se pueden hallar primos fácilmente mediante test de primalidad. • Se calcula 𝑛 = 𝑝𝑞. • Se usa como el módulo para ambas claves, pública y privada. • Se calcula , donde es la función 𝜑(𝑛) = (𝑝 − 1) (𝑞 − 1) . • Se escoge un entero positivo menor que 𝜑(𝑛), que sea coprimo con 𝜑(𝑛).

– 𝑒 Se da a conocer como el exponente de la clave pública. – Si se escoge un 𝑒 con una suma encadenada corta, el cifrado será más efectivo.

• Se determina un 𝑑 (mediante aritmética modular) que satisfaga la congruencia 𝑑 = 𝑒−1 𝑚𝑜𝑑 𝜑(𝑛)., es decir, que sea el multiplicador modular inverso de 𝑒 𝑚𝑜𝑑 𝜑(𝑛).

Ecuación ∶ 𝑛 = 𝑝. 𝑞

Page 42: Criptografia: Conceptos básicos e implementación con software libre

Herramientas de Software Libre

PyCrypto

TrueCrypt