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

Upload: pliniopuello

Post on 09-Jun-2015

874 views

Category:

Documents


5 download

TRANSCRIPT

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