3. CRIPTOGRAFÍA - SISTEMAS
Los algoritmos de encriptación utilizan funciones
lógicas para cifrar información
Tres modelos principales:
Simétricos: claves secretas compartidas
Asimétricos: un par de claves, pública y privada
Hashing: funciones lógicas de una sola vía
5. CRIPTOGRAFÍA – SISTEMAS SIMÉTRICOS
Algoritmos Simétricos de Encripción en Bloque
El cifrado en bloque procesa el texto plano en bloques
de tamaño fijo
La salida es un bloque de texto cifrado por cada
bloque del texto plano
DES, Triple DES (3DES) y AES son algoritmos
simétricos de encripción en bloque
6. CRIPTOGRAFÍA – SISTEMAS SIMÉTRICOS
Data Encription Standard (DES)
El texto plano es de 64 bits de longitud y la clave es
de 56
Textos planos más largos son procesados en bloques
de 64 bits
Se tienen 16 iteraciones de procesamiento basado en
permutaciones y sustituciones
De la clave original de 56 bits, 16 subclaves.
Cada clave es usada en cada uno de los 16 ciclos
Para desencriptar, se usael texto cifrado como
entrada pero con las 16 claves en orden inverso.
Es decir la clave C16 se usa en la primera iteración,
C15 en la segunda, y así sucesivamente, hasta que C1
se usa en la décimo sexta iteración
8. CRIPTOGRAFÍA – SISTEMAS SIMÉTRICOS
DES – Round Function (f)
Paso 1 – Permutación de expansión: La mitad
derecha de la clave (32 bits) se expande (y permuta) a
48 bits
Paso 2 – Uso de Round Key: 48 bits se le aplica la
operación XOR con la clave de 48 bits
Paso 3 - División: El resultado se divide en 8
bloques de 6 bits cada uno
Paso 4 - S-Box (S = Sustitución): Cada bloque se
usa como índice para una sustitución que da un
resultado de 4 bits
Paso 5 - P-Box (P = Permutación): La salida de 32
bits (8 salidas de 4 bits) de las 8 S-Boxes se permutan,
dando como resultado la salida de f
9. CRIPTOGRAFÍA – SISTEMAS SIMÉTRICOS
Triple DES (3DES)
Utiliza 3 claves y 3 ejecuciones del algoritmo DES
La función sigue una secuencia encripción-
desencripción-encripción
C=E(K3, D(K2, E(K1,P)))
La desencripción sigue la secuencia desencripción-
encripción-desencripción, pero con las claves en
reverso
P=D(K1, E(K2, D(K3,C)))
Con 3 claves, 3DES tiene una longitud total de 168
bits (3 claves de 56 bits)
10. CRIPTOGRAFÍA – SISTEMAS SIMÉTRICOS
Advanced Encription Standard (AES)
Usa un bloque de 128 bits (16 bytes)
Clave de longitud variable: 128, 192, o 256 bits
La longitud de clave más común es de 128 bits
Tanto para la encripción y desencripción se usan
bloques de 128 bits
Estos se disponen en un arreglo de estado que se
modifica en cada fase de la encripción y desencripción
11. CRIPTOGRAFÍA – SISTEMAS SIMÉTRICOS
Advanced Encription Standard (AES)
Al final, el arreglo de estado se copia en una matriz
de salida
De la misma forma, la clave se dispone en una matriz
cuadrada de bytes
La clave se expande en un arreglo
Cada espacio del arreglo es de 4 bytes
14. CRIPTOGRAFÍA – SISTEMAS ASIMÉTRICOS
Algoritmo de Clave Pública - RSA
Desarrollado en 1977 por Ron Rivest, Adi Shamir, y
Len Adleman
Es el esquema más aceptado e implementado hasta
la actualidad
RSA es un algoritmo de cifrado en bloque en el que el
texto plano y el texto cifrado son enteros entre 0 y n -
1 para un n dado
15. CRIPTOGRAFÍA – SISTEMAS ASIMÉTRICOS
Algoritmo de Clave Pública - RSA
La encripción y desencripción siguen esta forma para un texto
plano de bloque M y texto cifrado de bloque C:
Ambos, el emisor y receptor deben conocer los valores de n y e
Solo el receptor conocer el valor de d.
La clave pública se expresa como PK {e, n} (Public Key)
La clave privada se expresa como SK {d, n} (Secret Key)
16. CRIPTOGRAFÍA – SISTEMAS ASIMÉTRICOS
Números Primos: Aquellos divisibles únicamente para sí
mismos y para la unidad
Números Relativamente Primos: Números que no comparten
factores comunes excepto la unidad
17. CRIPTOGRAFÍA – SISTEMAS ASIMÉTRICOS
Algoritmo RSA
1. Seleccionar 2 números primos, p=17 y q=11
2. Calcular n = p*q=17*11=187
3. Calcular los números relativamente primos de n, usando la
función de Euler o Totient function
4. (n)=(p-1)(q-1)=(17-1)(11-1)=16*10=160
5. Seleccionar un número e relativamente primo con (n); e <
(n). Seleccionemos e = 7
6. Determinar d; ed Mod (n) ≡ 1, d < (n)
7. 7d Mod160 ≡ 1
8. 161 ≡ ed Mod 160 ≡ 7d Mod 160 ≡ 7*23 Mod 160 ≡1
9. Entonces: PK {e, n} ≡ {7, 187} y SK {d, n} ≡ {23, 187}
18. CRIPTOGRAFÍA – SISTEMAS ASIMÉTRICOS
Algoritmo RSA
Encripción
Texto Plano: T < n
Texto Cifrado: C = M^e (mod n)
La letra F => T = 6
C = 6^7 mod 187= 184
Desencripción
Texto Cifrado: C
Texto Plano: T = C^d (mod n)
T = 184^23 mod 187 = 6
19. MESSAGE AUTHENTICATION CODES
También se conocen como Hash
Recordemos… ¿Qué era Hashing?
MD5 (Message Digest Version 5) y SHA
(Secure Hash Algorithm) son los
algoritmos más populares de hashing
20. OBJETIVOS DE LOS MACS
Para un mensaje de entrada x, la salida y es
y=h(x)
Compresión
La salida de los Algoritmos de Hashing producen una salida de
tamaño fijo sin importar el tamaño de x.
y es de tamaño fijo, pero necesita ser relativamente pequeña para que
el algoritmo sea eficiente
Eficiencia
La computación de h(x) debe ser eficiente, es decir que debe crecer a
mayor tamaño de x, pero no debería tomar demasiado
Una sola vía
Debería ser difícil revertir el hash, es decir casi imposible calcular el
mensaje conociendo el resultado o salida
21. COLISIONES
¿Por qué se dan las colisiones de Hash?
¿Siempre van a existir?
Justifique sus respuestas ….
Algoritmos MD5 y SHA
Pregunta: Pueden colisionar entre si?
22. EJERCICIO
Integridad de Información
Ir a http://www.md5hashgenerator.com
Calcular el hash para este mensaje
‘Bienvenidos al Curso de Seguridades’
Cambien ‘Seguridades’ por ‘seguridades
Verifiquen el Hash
¿Son iguales?
23. INTEGRIDAD DE INFORMACIÓN
¿Cómo crees que el hash permite verificar la
integridad de la información en una
comunicación entre 2 personas?
25. HASHING E INTEGRIDAD DE INFORMACIÓN
Ejercicio
Crear un archivo de texto que tenga el
siguiente mensaje:
‘Bienvenido al Curso de Seguridades’
Guardarlo como seguridades.txt
Ejecutar el programa hash5.exe
Computar el hash
Cambiar ‘Seguridades’ por ‘seguridades’
Computar el hash – son iguales?
Cambiar el nombre del archivo por Seguridades.txt
Computar el hash – son iguales?
26. HASHING - USOS
Password Hashing
Los passwords pueden ser guardados en formato
encriptado.
El servidor necesitaría el password textual para
desencriptarlo, tal y como se hizo con texto
Cuando el usuario ingresa el password, la aplicación
solo envía el hash porque únicamente puede trabajar
en una dirección
¿Se puede calcular el password del hash?
Ejercicio: ¿Qué es un reply attack? Explique
27. HASHING - USOS
Password Hashing
Los passwords se guardan en un base de datos de
hashes
El hacker accede a la base de datos de hashes
¿Puede hacer algo con los hashes?
Ejercicio: ¿Qué es un Dictionary Attack?
Pregunta: Si el concepto de colisión se aplica aquí...
¿Qué podría suceder?
28. HASHING - USOS
Password Hashing
Una solución para los ataques de diccionario es el
‘Salting’
El password se recibe sobre una conexión segura
Un salt (12 bits normalmente) se crea para un
password (por cada destino)
El salt se almacena separadamente de la base de
datos encriptada
Si se roba el hash, éste es inútil sin el salt
Hash = Password + Salt
Dos passwords idénticos tendrán hashes diferentes
Fuerza Bruta no funciona, ya que se necesita el salt
29. HASHING - USOS
Computación Forense
Integridad de Evidencia
Permiten categorizar imágenes indecentes
Las imágenes en Internet se repiten
Una vez incautadas, se saca el hash del archivo
Se crean Hash Databases
Se comparan imagenes de nuevos casos con las ya
existentes
Se puede ver la frecuencia de distribución de una imagen
por el número de coincidencias