SlideShare una empresa de Scribd logo
1 de 33
Criptografía para simples mortalesCriptografía para simples mortales
Enrique Zamudio López
@chochosmx
IntroducciónIntroducción
Tipos de cifrado: simétrico,
asimétrico
Generadores de Números
Pseudo-aleatorios (PRNG’s)
Digestiones
Aplicaciones y ejemplos
Cifras SimétricasCifras Simétricas
 Llave compartida - misma llave para cifrar y
descifrar
 One-Time Pad: cifrado lineal (stream
cipher)
 Cifrado por bloques: DES, T-DES,
Blowfish, AES
 Modos de cifrado por bloques (ECB,
CFB, CBC)
Cifrado Simétrico: OTPCifrado Simétrico: OTP
Cifra lineal (stream cipher)
Llave mide lo mismo que el
mensaje
Indescifrable cuando se
implementa bien
No se debe reutilizar nunca la
misma llave
Ejemplo de OTPEjemplo de OTP
Mensa
je:
0111010101000
101
Llave: 1001001010101
011
Result
ado:
1110011111101
110
Reutilización de llaves en OTPReutilización de llaves en OTP
Llave: 0111010101000
101
Mensaje 1: 1001001010101
011
Resultado 1: 1110011111101
110
Mensaje 2: 1001001001110
110
Resultado 2: 1110011100110
011
R1 XOR R2: 0000000011011
OTP en la prácticaOTP en la práctica
 Muy poco práctico por el tamaño
de llave; se usan mucho más
algoritmos como RC4
 RC4 utiliza una llave corta para
inicializar un PRNG
Pseudo-Random Number GeneratorsPseudo-Random Number Generators
 Parte muy importante de la criptografía
 Criptográficamente seguros
 Impredecibles, ciclos grandes
 Ejemplos: Fortuna, Java SecureRandom
“La generación de números aleatorios es demasiado
importante como para dejarla al azar”
Robert Coveyou
Cifrado Simétrico por BloquesCifrado Simétrico por Bloques
0000000000000000
a7d6fbe8c6778b01a7d6fbe8c6778b01
104dbcfe46378ad5
104dbcfe46378ad5
a7d6fbe8c6778b01a7d6fbe8c6778b01
0000000000000000
Cifrado Simétrico por BloquesCifrado Simétrico por Bloques
 La seguridad de un buen algoritmo debe
depender solamente de la longitud de la
llave
 Los algoritmos no deben ser secretos
 Los mejores son públicos, porque han
sido analizados por expertos durante
años
Cifrado Simétrico por BloquesCifrado Simétrico por Bloques
 DES: Llave de 56 bits, actualmente
insuficiente, es lento, pero usa poca memoria
 Triple-DES (DES-EDE): Triple cifrado con
DES, 168 bits (en la práctica son 112)
 AES: Llave de 128, 192 o 256 bits; 6 veces
más rápido que DES, poca memoria, fácil
implementación
 Blowfish: Llave variable de 40 a 440 bits,
rápido, dominio público, requiere memoria
Ejemplo Cifra Simétrica (Blowfish)Ejemplo Cifra Simétrica (Blowfish)
Llave: 424c4f574649534
8
Mensaje
1:
484f4c413131310
0
Resultad
o 1:
ba450cc16cb0a2e
7
Mensaje
2:
484f4c413131320
Patrones en bloquesPatrones en bloques
000000000000000000000000
a7d6fbe8c6778b01a7d6fbe8c6778b01
ff726d4cff726d4cff726d4c
Modos de cifradoModos de cifrado
Incrementan la seguridad, impidiendo ataques a bloques individualesIncrementan la seguridad, impidiendo ataques a bloques individuales
Ejemplo: CBC (Cipher Block Chaining), XOR de
cada bloque con el resultado del anterior,
requiere un bloque inicial llamado Vector de
inicialización (IV)
Patrones en bloquesPatrones en bloques
000000000000000000000000
a7d6fbe8c6778b01a7d6fbe8c6778b01
ff726d4c56cf420d6abf92f6
937fbd60937fbd60
Hashes - Digestión de MensajesHashes - Digestión de Mensajes
 Algoritmos matemáticos irreversibles
 Devuelven un bloque de bytes de
tamaño definido, sin importar el tamaño
de los datos de entrada
 Si un solo bit cambia en los datos de
entrada, la digestión cambia por
completo
 MD5, SHA-1, SHA-256
Cambio en un bitCambio en un bit
Archivo con 50 millones de 0x00
b7a333ed69c69222c6cceb51c19ad5d92b1382a0
Archivo con 49 millones de 0x00 y un 0x01
121370c24778c8d67e0538482e1f289e12b16297
PBE (Cifrado basado en password)PBE (Cifrado basado en password)
 Útil para almacenamiento de datos
 Generar “sal” para agregar ruido al mensaje
 Estándar PKCS#5:
1. Generar sal (bits aleatorios, o hash de password +
mensaje)
2. Hash de Password + sal, rehash del resultado
varias veces
3. Partir el resultado en 2, usar la mitad como llave y
la otra mitad como IV
Cifras AsimétricasCifras Asimétricas
Cifrado con Llave PúblicaCifrado con Llave Pública
 Cada entidad genera su par de llaves
 Una llave la protegen con password y no la
comparten con nadie, es la llave privada
 La otra llave se la dan a otras entidades, es
la pública
 Los mensajes se cifran con la llave pública
del recipiente
 El recipiente descifra el mensaje con su
llave privada
Cifras AsimétricasCifras Asimétricas
 Diffie-Hellman: establecimiento de llaves
 RSA: Basado en primos grandes (512 bits)
 DSA: Firmas digitales solamente
 ECC: llaves más cortas, implementaciones
patentadas
 Es muy lenta, requiere mucho poder de
procesamiento
Firma DigitalFirma Digital
 Se calcula la digestión del mensaje a firmar
 El remitente cifra la digestión con su llave
privada
 Para verificar la firma, otra entidad recalcula la
digestión del mensaje, descifra la otra
digestión con la llave pública del remitente y
las compara
 Si no son idénticas, el mensaje ha sido
alterado o no proviene de la entidad que lo
envía
Aplicación práctica PKCAplicación práctica PKC
 Generación de llave de sesión simétrica
 Cifrado de llave simétrica con llave
pública del destinatario
 Digestión de mensaje
 Descifrado de la digestión con llave
privada del remitente
PKI en brevePKI en breve
 Certificado X509 - llave pública firmada
por otra entidad
 Fecha de expiración, información de la
entidad
 Autoridades certificadoras (i.e. Verisign)
 Integración en distintos programas
 Restricciones en su uso
 Mecanismos de revocación (CRL’s,
OCSP)
Propiedades de PKIPropiedades de PKI
 Privacidad - sobre digital (cifrado)
 Autentificación (certificado digital)
 Integridad (no alteración de
documentos)
 No repudiación (llave privada protegida)
 Cadena de Confianza (CA’s)
Ejemplo: SSLEjemplo: SSL
 http://www.blablabla.com/
 Web server envia X509 al cliente
 Cliente genera llave de sesión
 Se cifra llave de sesión con llave pública
del web server y se envía
 Web server descifra con su llave
privada, comienza comunicación cifrada
con la llave de sesión
Bibliotecas Criptográficas en JavaBibliotecas Criptográficas en Java
 Java Cryptography Extensions - incluido
a partir de 1.4
 Java Secure Socket Extensions
 Bouncy Castle - software libre
(anti) Ejemplos(anti) Ejemplos
 Netscape PRNG
 Microsoft SQL Server Stored Procedure
Encryption
 WEP
Ejemplo: Netscape PRNGEjemplo: Netscape PRNG
 Basado en la hora del dia, PID y PPID
 Muy predecible, ciclo muy corto
 Semilla reproducible
 Número muy pequeño de llaves
generadas
 Arreglado hace unos años
Ejemplo: SQL ServerEjemplo: SQL Server
 Stored procedure tiene un OID
 OID se usa como semilla para RC4 y se
encriptan bytes aleatorios
 Los bytes aleatorios se XOR’ean con el
texto del SP y se guardan
 Ataque: ALTER PROCEDURE, XOR de
resultado con original devuelve bytes
aleatorios, XOR con SP encriptado
devuelve SP en claro
Ejemplo: WEPEjemplo: WEP
 Cifrado simétrico con llaves compartidas
en el AP y estaciones
 IV es muy corto y se reusa (24 bits)
 Llaves maestras se usan directamente
(deberian usarse para generar llaves
temporales)
 Checksums débiles
 WPA es una alternativa segura
LiteraturaLiteratura
 Simon Singh: The Code Book
 Bruce Schneier: Secrets & Lies
 Steven Levy: Crypto
 David Kahn: Codebreakers
 Neal Stephenson: Cryptonomicon
??

Más contenido relacionado

La actualidad más candente

CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADA
danyro
 
Metodos De Encriptacion 1
Metodos De Encriptacion 1Metodos De Encriptacion 1
Metodos De Encriptacion 1
IRIS
 
Métodos y técnicas de encriptación
Métodos y técnicas de encriptaciónMétodos y técnicas de encriptación
Métodos y técnicas de encriptación
lacandymamy
 
Cifrado elgamal
Cifrado elgamalCifrado elgamal
Cifrado elgamal
G Hoyos A
 
Algoritmos de claves públicas y privadas
Algoritmos de claves públicas y privadasAlgoritmos de claves públicas y privadas
Algoritmos de claves públicas y privadas
Johanna
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De Encriptacion
Peter Cabrera
 
Encriptacion de datos, una vista general
Encriptacion de datos, una vista generalEncriptacion de datos, una vista general
Encriptacion de datos, una vista general
Christian Caceres
 
Trabajo De Computacion
Trabajo De ComputacionTrabajo De Computacion
Trabajo De Computacion
JUAN JOSE
 
Algoritmos De Claves Publicas Y Privadas
Algoritmos De Claves Publicas Y PrivadasAlgoritmos De Claves Publicas Y Privadas
Algoritmos De Claves Publicas Y Privadas
Carlos
 

La actualidad más candente (20)

Algoritmos de clave secreta, privada o simetrica.
Algoritmos de clave secreta, privada o simetrica.Algoritmos de clave secreta, privada o simetrica.
Algoritmos de clave secreta, privada o simetrica.
 
Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4
 
Encriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasEncriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y Privadas
 
Sencilla explicación sobre AES
Sencilla explicación sobre AESSencilla explicación sobre AES
Sencilla explicación sobre AES
 
Encriptación de datos y seguridad de los mismos
Encriptación de datos y seguridad de los mismosEncriptación de datos y seguridad de los mismos
Encriptación de datos y seguridad de los mismos
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADA
 
Metodos De Encriptacion 1
Metodos De Encriptacion 1Metodos De Encriptacion 1
Metodos De Encriptacion 1
 
Métodos y técnicas de encriptación
Métodos y técnicas de encriptaciónMétodos y técnicas de encriptación
Métodos y técnicas de encriptación
 
Cifrado elgamal
Cifrado elgamalCifrado elgamal
Cifrado elgamal
 
Chat con Encriptación
Chat con EncriptaciónChat con Encriptación
Chat con Encriptación
 
Algoritmos de claves públicas y privadas
Algoritmos de claves públicas y privadasAlgoritmos de claves públicas y privadas
Algoritmos de claves públicas y privadas
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De Encriptacion
 
Siud04 121202120228-phpapp01
Siud04 121202120228-phpapp01Siud04 121202120228-phpapp01
Siud04 121202120228-phpapp01
 
Encriptacion de datos, una vista general
Encriptacion de datos, una vista generalEncriptacion de datos, una vista general
Encriptacion de datos, una vista general
 
Charla Criptografia Aplicaciones Web
Charla Criptografia Aplicaciones WebCharla Criptografia Aplicaciones Web
Charla Criptografia Aplicaciones Web
 
Cifrado De Claves Publicas Y Privadas
Cifrado De Claves Publicas Y PrivadasCifrado De Claves Publicas Y Privadas
Cifrado De Claves Publicas Y Privadas
 
Encriptacion
EncriptacionEncriptacion
Encriptacion
 
Metodos de cifrado
Metodos de cifradoMetodos de cifrado
Metodos de cifrado
 
Trabajo De Computacion
Trabajo De ComputacionTrabajo De Computacion
Trabajo De Computacion
 
Algoritmos De Claves Publicas Y Privadas
Algoritmos De Claves Publicas Y PrivadasAlgoritmos De Claves Publicas Y Privadas
Algoritmos De Claves Publicas Y Privadas
 

Destacado (7)

Diseño de compiladores: Un vistazo a Ceylon-JS
Diseño de compiladores: Un vistazo a Ceylon-JSDiseño de compiladores: Un vistazo a Ceylon-JS
Diseño de compiladores: Un vistazo a Ceylon-JS
 
Criptografia simetrica
Criptografia simetricaCriptografia simetrica
Criptografia simetrica
 
Ines romero El debate globalizacion
Ines romero El debate globalizacionInes romero El debate globalizacion
Ines romero El debate globalizacion
 
Introducción a jAlarms
Introducción a jAlarmsIntroducción a jAlarms
Introducción a jAlarms
 
Sistemas de tipos: Lo bueno, lo malo y lo feo
Sistemas de tipos: Lo bueno, lo malo y lo feoSistemas de tipos: Lo bueno, lo malo y lo feo
Sistemas de tipos: Lo bueno, lo malo y lo feo
 
Introducción a Ceylon
Introducción a CeylonIntroducción a Ceylon
Introducción a Ceylon
 
codeblocks1
codeblocks1codeblocks1
codeblocks1
 

Similar a Criptografía para simples mortales

Alberto Sagredo voipnovatos- voip2day2011
Alberto Sagredo  voipnovatos- voip2day2011Alberto Sagredo  voipnovatos- voip2day2011
Alberto Sagredo voipnovatos- voip2day2011
Alberto Sagredo Castro
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
christian
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
christian
 
Metodos De Encriptacion Para El Cifrado De Claves
Metodos De Encriptacion Para El Cifrado De ClavesMetodos De Encriptacion Para El Cifrado De Claves
Metodos De Encriptacion Para El Cifrado De Claves
carlitas
 
Clave criptografia
Clave criptografiaClave criptografia
Clave criptografia
G Hoyos A
 

Similar a Criptografía para simples mortales (20)

IP-VPNs IPsec
IP-VPNs IPsecIP-VPNs IPsec
IP-VPNs IPsec
 
Alberto Sagredo voipnovatos- voip2day2011
Alberto Sagredo  voipnovatos- voip2day2011Alberto Sagredo  voipnovatos- voip2day2011
Alberto Sagredo voipnovatos- voip2day2011
 
Unidad 4 trabajo 6
Unidad 4 trabajo 6Unidad 4 trabajo 6
Unidad 4 trabajo 6
 
Protocolo de redes ssl
Protocolo de redes sslProtocolo de redes ssl
Protocolo de redes ssl
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
 
Metodos De Encriptacion Para El Cifrado De Claves
Metodos De Encriptacion Para El Cifrado De ClavesMetodos De Encriptacion Para El Cifrado De Claves
Metodos De Encriptacion Para El Cifrado De Claves
 
Métodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesMétodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtuales
 
Métodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtualesMétodos de encriptación en las redes privadas virtuales
Métodos de encriptación en las redes privadas virtuales
 
Encripta como si todos te espiaran y baila como si nadie te viera!
Encripta como si todos te espiaran y baila como si nadie te viera!Encripta como si todos te espiaran y baila como si nadie te viera!
Encripta como si todos te espiaran y baila como si nadie te viera!
 
Clave criptografia
Clave criptografiaClave criptografia
Clave criptografia
 
Curso PKI
Curso PKICurso PKI
Curso PKI
 
Trabajo Final de IMS (IP Multimedia Subsystem) - Enunciados
Trabajo Final de IMS (IP Multimedia Subsystem) - EnunciadosTrabajo Final de IMS (IP Multimedia Subsystem) - Enunciados
Trabajo Final de IMS (IP Multimedia Subsystem) - Enunciados
 
Seguridad redes
Seguridad redesSeguridad redes
Seguridad redes
 
Métodos encriptación en vpns
Métodos encriptación en vpnsMétodos encriptación en vpns
Métodos encriptación en vpns
 
Métodos de encriptación en vpn s
Métodos de encriptación en vpn sMétodos de encriptación en vpn s
Métodos de encriptación en vpn s
 
Encriptacion[1]
Encriptacion[1]Encriptacion[1]
Encriptacion[1]
 
unidad 4 Actividad 6
unidad 4 Actividad 6unidad 4 Actividad 6
unidad 4 Actividad 6
 
Gerardo Garcia Peña - Crypto Goofs... [rooted2018]
Gerardo Garcia Peña - Crypto Goofs... [rooted2018]Gerardo Garcia Peña - Crypto Goofs... [rooted2018]
Gerardo Garcia Peña - Crypto Goofs... [rooted2018]
 
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y Privadas
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y PrivadasMéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y Privadas
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y Privadas
 

Último

LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
bcondort
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
CristhianZetaNima
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
vladimirpaucarmontes
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
annavarrom
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
DayanaCarolinaAP
 

Último (20)

LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdf
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 

Criptografía para simples mortales

  • 1. Criptografía para simples mortalesCriptografía para simples mortales Enrique Zamudio López @chochosmx
  • 2. IntroducciónIntroducción Tipos de cifrado: simétrico, asimétrico Generadores de Números Pseudo-aleatorios (PRNG’s) Digestiones Aplicaciones y ejemplos
  • 3. Cifras SimétricasCifras Simétricas  Llave compartida - misma llave para cifrar y descifrar  One-Time Pad: cifrado lineal (stream cipher)  Cifrado por bloques: DES, T-DES, Blowfish, AES  Modos de cifrado por bloques (ECB, CFB, CBC)
  • 4. Cifrado Simétrico: OTPCifrado Simétrico: OTP Cifra lineal (stream cipher) Llave mide lo mismo que el mensaje Indescifrable cuando se implementa bien No se debe reutilizar nunca la misma llave
  • 5. Ejemplo de OTPEjemplo de OTP Mensa je: 0111010101000 101 Llave: 1001001010101 011 Result ado: 1110011111101 110
  • 6. Reutilización de llaves en OTPReutilización de llaves en OTP Llave: 0111010101000 101 Mensaje 1: 1001001010101 011 Resultado 1: 1110011111101 110 Mensaje 2: 1001001001110 110 Resultado 2: 1110011100110 011 R1 XOR R2: 0000000011011
  • 7. OTP en la prácticaOTP en la práctica  Muy poco práctico por el tamaño de llave; se usan mucho más algoritmos como RC4  RC4 utiliza una llave corta para inicializar un PRNG
  • 8. Pseudo-Random Number GeneratorsPseudo-Random Number Generators  Parte muy importante de la criptografía  Criptográficamente seguros  Impredecibles, ciclos grandes  Ejemplos: Fortuna, Java SecureRandom “La generación de números aleatorios es demasiado importante como para dejarla al azar” Robert Coveyou
  • 9. Cifrado Simétrico por BloquesCifrado Simétrico por Bloques 0000000000000000 a7d6fbe8c6778b01a7d6fbe8c6778b01 104dbcfe46378ad5 104dbcfe46378ad5 a7d6fbe8c6778b01a7d6fbe8c6778b01 0000000000000000
  • 10. Cifrado Simétrico por BloquesCifrado Simétrico por Bloques  La seguridad de un buen algoritmo debe depender solamente de la longitud de la llave  Los algoritmos no deben ser secretos  Los mejores son públicos, porque han sido analizados por expertos durante años
  • 11. Cifrado Simétrico por BloquesCifrado Simétrico por Bloques  DES: Llave de 56 bits, actualmente insuficiente, es lento, pero usa poca memoria  Triple-DES (DES-EDE): Triple cifrado con DES, 168 bits (en la práctica son 112)  AES: Llave de 128, 192 o 256 bits; 6 veces más rápido que DES, poca memoria, fácil implementación  Blowfish: Llave variable de 40 a 440 bits, rápido, dominio público, requiere memoria
  • 12. Ejemplo Cifra Simétrica (Blowfish)Ejemplo Cifra Simétrica (Blowfish) Llave: 424c4f574649534 8 Mensaje 1: 484f4c413131310 0 Resultad o 1: ba450cc16cb0a2e 7 Mensaje 2: 484f4c413131320
  • 13. Patrones en bloquesPatrones en bloques 000000000000000000000000 a7d6fbe8c6778b01a7d6fbe8c6778b01 ff726d4cff726d4cff726d4c
  • 14. Modos de cifradoModos de cifrado Incrementan la seguridad, impidiendo ataques a bloques individualesIncrementan la seguridad, impidiendo ataques a bloques individuales Ejemplo: CBC (Cipher Block Chaining), XOR de cada bloque con el resultado del anterior, requiere un bloque inicial llamado Vector de inicialización (IV)
  • 15. Patrones en bloquesPatrones en bloques 000000000000000000000000 a7d6fbe8c6778b01a7d6fbe8c6778b01 ff726d4c56cf420d6abf92f6 937fbd60937fbd60
  • 16. Hashes - Digestión de MensajesHashes - Digestión de Mensajes  Algoritmos matemáticos irreversibles  Devuelven un bloque de bytes de tamaño definido, sin importar el tamaño de los datos de entrada  Si un solo bit cambia en los datos de entrada, la digestión cambia por completo  MD5, SHA-1, SHA-256
  • 17. Cambio en un bitCambio en un bit Archivo con 50 millones de 0x00 b7a333ed69c69222c6cceb51c19ad5d92b1382a0 Archivo con 49 millones de 0x00 y un 0x01 121370c24778c8d67e0538482e1f289e12b16297
  • 18. PBE (Cifrado basado en password)PBE (Cifrado basado en password)  Útil para almacenamiento de datos  Generar “sal” para agregar ruido al mensaje  Estándar PKCS#5: 1. Generar sal (bits aleatorios, o hash de password + mensaje) 2. Hash de Password + sal, rehash del resultado varias veces 3. Partir el resultado en 2, usar la mitad como llave y la otra mitad como IV
  • 20. Cifrado con Llave PúblicaCifrado con Llave Pública  Cada entidad genera su par de llaves  Una llave la protegen con password y no la comparten con nadie, es la llave privada  La otra llave se la dan a otras entidades, es la pública  Los mensajes se cifran con la llave pública del recipiente  El recipiente descifra el mensaje con su llave privada
  • 21. Cifras AsimétricasCifras Asimétricas  Diffie-Hellman: establecimiento de llaves  RSA: Basado en primos grandes (512 bits)  DSA: Firmas digitales solamente  ECC: llaves más cortas, implementaciones patentadas  Es muy lenta, requiere mucho poder de procesamiento
  • 22. Firma DigitalFirma Digital  Se calcula la digestión del mensaje a firmar  El remitente cifra la digestión con su llave privada  Para verificar la firma, otra entidad recalcula la digestión del mensaje, descifra la otra digestión con la llave pública del remitente y las compara  Si no son idénticas, el mensaje ha sido alterado o no proviene de la entidad que lo envía
  • 23. Aplicación práctica PKCAplicación práctica PKC  Generación de llave de sesión simétrica  Cifrado de llave simétrica con llave pública del destinatario  Digestión de mensaje  Descifrado de la digestión con llave privada del remitente
  • 24. PKI en brevePKI en breve  Certificado X509 - llave pública firmada por otra entidad  Fecha de expiración, información de la entidad  Autoridades certificadoras (i.e. Verisign)  Integración en distintos programas  Restricciones en su uso  Mecanismos de revocación (CRL’s, OCSP)
  • 25. Propiedades de PKIPropiedades de PKI  Privacidad - sobre digital (cifrado)  Autentificación (certificado digital)  Integridad (no alteración de documentos)  No repudiación (llave privada protegida)  Cadena de Confianza (CA’s)
  • 26. Ejemplo: SSLEjemplo: SSL  http://www.blablabla.com/  Web server envia X509 al cliente  Cliente genera llave de sesión  Se cifra llave de sesión con llave pública del web server y se envía  Web server descifra con su llave privada, comienza comunicación cifrada con la llave de sesión
  • 27. Bibliotecas Criptográficas en JavaBibliotecas Criptográficas en Java  Java Cryptography Extensions - incluido a partir de 1.4  Java Secure Socket Extensions  Bouncy Castle - software libre
  • 28. (anti) Ejemplos(anti) Ejemplos  Netscape PRNG  Microsoft SQL Server Stored Procedure Encryption  WEP
  • 29. Ejemplo: Netscape PRNGEjemplo: Netscape PRNG  Basado en la hora del dia, PID y PPID  Muy predecible, ciclo muy corto  Semilla reproducible  Número muy pequeño de llaves generadas  Arreglado hace unos años
  • 30. Ejemplo: SQL ServerEjemplo: SQL Server  Stored procedure tiene un OID  OID se usa como semilla para RC4 y se encriptan bytes aleatorios  Los bytes aleatorios se XOR’ean con el texto del SP y se guardan  Ataque: ALTER PROCEDURE, XOR de resultado con original devuelve bytes aleatorios, XOR con SP encriptado devuelve SP en claro
  • 31. Ejemplo: WEPEjemplo: WEP  Cifrado simétrico con llaves compartidas en el AP y estaciones  IV es muy corto y se reusa (24 bits)  Llaves maestras se usan directamente (deberian usarse para generar llaves temporales)  Checksums débiles  WPA es una alternativa segura
  • 32. LiteraturaLiteratura  Simon Singh: The Code Book  Bruce Schneier: Secrets & Lies  Steven Levy: Crypto  David Kahn: Codebreakers  Neal Stephenson: Cryptonomicon
  • 33. ??

Notas del editor

  1. en los siguientes slides se explica cada tipo
  2. Los ceros indican que el mensaje 1 y el mensaje 2 dicen lo mismo en esa posicion. Esto es comun en transmisiones debido a los headers de transmisión, formato de los datos, etc.
  3. Actualmente los PRNG’s son muy utilizados en PKI para la generación de llaves de sesión. Si no tienen suficiente entropía y generan muy pocas llaves, se vuelve muy fácil descifrar mensajes que se consideran seguros
  4. Blocksizes AES: 128 bits DES: 64 bits Blowfish: 64 bits keysize: 128 bits. brute-force times: 40-bit: semanas con PC casera 56-bit: meses, con varias PC’s 64-bit: 5 años con 70mil PC’s 128-bit: millones de años con cientos de miles de computadoras (imposible en la práctica)
  5. Blocksizes AES: 128 bits DES: 64 bits Blowfish: 64 bits keysize: 128 bits. brute-force times: 40-bit: semanas con PC casera 56-bit: meses, con varias PC’s 64-bit: 5 años con 70mil PC’s 128-bit: millones de años con cientos de miles de computadoras (imposible en la práctica)
  6. DES se usa mucho en dispositivos pequeños, aunque algunos no tan limitados pueden implementar AES
  7. Aunque solamente cambiaron dos bits (10 en vez de 01), el XOR no revela las similitudes entre ambos mensajes.
  8. Los modos de encripción evitan que se revelen patrones en la encripción, pues con encripción de bloques individuales usando la misma llave, un mismo bloque de texto siempre se encriptará igual. Con los modos, un mismo bloque de texto queda encriptado distinto según su posición en el mensaje. La decripción de cada bloque depende del bloque anterior.
  9. Un password es por sí mismo una llave muy débil porque el juego de caracteres está muy reducido. Una llave derivada de un password con sal es mucho más fuerte criptográficamente.
  10. La encripción asimétrica elimina los problemas de transmisión de la llave para decripción. Cada parte puede intercambiar llaves a la vista de todos sin comprometer la seguridad.
  11. La encripción asimétrica elimina los problemas de transmisión de la llave para decripción. Cada parte puede intercambiar llaves a la vista de todos sin comprometer la seguridad.
  12. Certificate Revocation List Online Certificate Status Protocol
  13. PKI resuelve el problema de llaves públicas de que no hay manera de saber si una llave pública realmente pertenece a quien dice que pertenece.
  14. JSSE es para implementar SSL, JCE es para manejo de algoritmos, certificados, etc de manera más directa
  15. Netscape RNG: basado en hora del dia, PID y PPID - muy predecible, semilla reproducible
  16. Microsoft SQL Server: known plaintext attack - Genera stream basado en OID del SP encriptando ceros con RC4. XOR de este stream con el texto del SP.Para el mismo OID siempre se genera el mismo stream. ALTER PROCEDURE nos da un nuevo ciphertext. Hacer XOR con el plaintext que metimos nos da el stream que se usa como llave. XOR de ese stream con el ciphertext real nos da el SP original. FIX: encriptar directamente el SP con algun otro algoritmo de bloque. De esta manera el "known plaintext attack" no sirve
  17. WEP: IV para RC4 se reusa y es muy corto, llaves se reutilizan