tema2-v1

55
SEGURIDAD DE LA INFORMACIÓN TEMA 2 TÉCNICAS CRIPTOGRÁFICAS BÁSICAS (Y SERVICIOS DE SEGURIDAD ASOCIADOS)

Upload: lupicinio-garcia-ortiz

Post on 10-Feb-2016

8 views

Category:

Documents


3 download

DESCRIPTION

Seguridad de la Informacion

TRANSCRIPT

Page 1: Tema2-v1

SEGURIDAD DE LA INFORMACIÓN

TEMA 2

TÉCNICAS CRIPTOGRÁFICAS BÁSICAS (Y SERVICIOS DE SEGURIDAD ASOCIADOS)

Page 2: Tema2-v1

Indice del tema (I)

•  Introducción a la criptografía clásica –  Cifrados por sustitución y transposición. Ejemplos

–  Cifrado producto –  Cifrado Vernam (one-time pad)

•  Algoritmos simétricos –  Fundamentos

–  Algoritmo DES –  Algoritmo triple-DES

–  Algoritmo AES –  Otros algoritmos simétricos –  Modos de operación para algoritmos simétricos

–  Ventajas y desventajas de los algoritmos simétricos

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 2  

Page 3: Tema2-v1

Indice del tema (II)

•  Algoritmos asimétricos (o de clave pública) –  Cifrado/descifrado –  Firma Digital –  Intercambio de Claves

–  Algoritmo de Diffie-Hellman –  Algoritmo RSA

•  Otras primitivas criptográficas –  Funciones hash –  Códigos de autenticación de mensajes

•  Referencias bibliográficas

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 3  

Page 4: Tema2-v1

Introducción a la criptografía clásica

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 4  

Page 5: Tema2-v1

Cifrados por sustitución y transposición. Ejemplos

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 5  

•  Como se ha visto en la última tabla del capítulo anterior, un algoritmo de cifrado es uno de los mecanismos para la implementación de servicios de seguridad

•  Criptografía: ciencia que estudia cómo mantener la seguridad en los mensajes (M) –  usando, entre otros mecanismos, los algoritmos de cifrado

•  Criptoanálisis: ciencia que estudia cómo romper los textos cifrados

•  Criptología: Criptografía + Criptoanálisis

Page 6: Tema2-v1

•  El algoritmo de cifrado es un mecanismo que transforma un texto en claro en texto ininteligible –  Su objetivo es dar cobertura al servicio de Confidencialidad

–  El algoritmo de cifrado se denota por E (del inglés “encrypt”) y opera sobre el texto en claro M (mensaje) para producir el texto cifrado C (criptograma) E (M) = C

•  La transformación inversa, o sea, de un texto cifrado en un texto en claro, se denomina algoritmo de descifrado –  El algoritmo de descifrado se denota por D (“decrypt”)

opera sobre C para producir el mensaje M D (C) = M

•  Se cumple que: D (E (M)) = M

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 6  

Page 7: Tema2-v1

•  Antes de la existencia de ordenadores, la criptografía clásica consistía en algoritmos basados en caracteres

•  Los algoritmos criptográficos clásicos o bien sustituían caracteres o bien los transponían –  Cifrado por sustitución: cifrado en el que cada carácter del texto en claro se

sustituye por otro carácter en el texto cifrado

–  Cifrado por transposición: consiste en realizar una permutación de las posiciones que ocupan los símbolos en el mensaje en claro

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 7  

Page 8: Tema2-v1

Ejemplo: cifrado por sustitución César

•  Consiste en una transformación única. Cada carácter de texto en claro se reemplaza por el carácter tercero a la derecha módulo 27

C: M → M + 3 (mod. 27)

•  Generalizado posteriormente a un sistema de cifrado con 27 claves C: M → M + K (mod. 27)

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 8  

   Ejemplo  texto  cifrado:              ¿WX  WDPELHQ,  EUXWR,  KLMR  PLR?  

Page 9: Tema2-v1

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 9  

•  Ese algoritmo da ventaja al criptoanalista, porque la frecuencia de aparición de las letras es bien conocida. Así:

Page 10: Tema2-v1

Ejemplo: cifrado por sustitución homofónico

•  Se basa en la idea de asignar a un símbolo del alfabeto fuente varios del alfabeto cifrado

•  Correspondencia uno a muchos ⇒ al cifrar un mensaje podemos obtener varios criptogramas

•  Ejemplo:

“PLATON” se cifra como “882110772963” SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas

10  

019403317624...

a bcde...

Created using UNREGISTERED Top Draw 9/14/94 9:49:03 AM

Page 11: Tema2-v1

Ejemplo: cifrado por transposición

•  La forma más simple de transposición: el texto en claro se escribe como secuencia de filas (con una cierta profundidad) y se lee como secuencia de columnas

•  Ejemplo: “EN ANDALUCIA, EL MULHACEN Y EL VELETA, SON LAS MONTAÑAS MAS ALTAS”

ENANDALUCIAELMULHACENYELVE

LETASONLASMONTAÑASMASALTAS

•  Mensaje cifrado: ELNEATNADSAOLNULCAISAMEOLNMTUALÑHAASCMEANSYAELLTVAES

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 11  

Page 12: Tema2-v1

Cifrado Producto

•  Combinan sustitución y transposición

•  Se pueden considerar como la aplicación sucesiva de varios cifrados Ei

E = E1 . E2 . ··· . Er

E (M) = E1 (E2 (··· (Er (M))

•  La composición de funciones de descifrado Di se realiza en orden inverso

D = Dr ⋅ Dr-1 ⋅⋅⋅ D1

M = D(C) = Dr (Dr-1 (... (D1 (C)))

•  Es un esquema utilizado para obtener un alto grado de seguridad con sistemas relativamente sencillos aplicados reiterativamente

•  Dan lugar a sistemas de cifrado complejos, seguros, difíciles de atacar, fácilmente trasladables a un ordenador

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 12  

Page 13: Tema2-v1

Cifrado Vernam

•  Variante del cifrado llamado one-time pad (OTP)

•  Un one-time pad es un conjunto infinito y

no repetitivo de letras aleatorias

•  Cada letra del pad se usa para cifrar una

única letra del texto en claro, en módulo n (longitud del alfabeto)

Texto : T H I S I S S E C R E T

OTP: XVH E UW NO P G D Z

-----------------------------------------

Cifrado : QCPW CO FS R X H S

13  One-­‐Mme  pad  booklet  and  microdot  reader,concealed  in  a  toy  truck  

and  used  by  an  illegal  agent  that  operated  in  Canada.  ©  Canadian  Security  Intelligence  Service  

Page 14: Tema2-v1

•  Otro ejemplo –  Aquí se observan grupos de tres filas, que se corresponden con criptograma, clave, y

texto en claro (en decimal)

Fuente: http://www.caslab.cl/che.php

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 14  

Page 15: Tema2-v1

•  En los ordenadores, el OTP aleatorio de longitud infinita se combina mediante XOR con el texto en claro. Ejemplo:

•  Inconvenientes del cifrado Vernam:

–  las letras del OTP (o bits si se usa en ordenador) han de generarse aleatoriamente

–  el OTP no se vuelve a usar

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 15  

OTP

OTP

Page 16: Tema2-v1

Algoritmos simétricos

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 16  

Page 17: Tema2-v1

Fundamentos

•  En la mayoría de los ejemplos de la sección anterior la comunicación entre los usuarios puede representarse como sigue:

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 17  

E   D  C  M   M  

Alice   Bob  

Page 18: Tema2-v1

•  El esquema anterior es útil siempre que se mantengan en secreto la transformación E y su inversa D –  Esto es factible para un intercambio de información entre dos usuarios

específicos (por ejemplo, Alice y Bob)

–  Sin embargo, esta forma de funcionamiento resulta no escalable •  Es decir, cuando Alice necesite comunicar con alguien distinto de Bob, habría de usar un

algoritmo distinto a E, como muestra la figura inferior

•  Más concretamente, Alice necesitaría un algoritmo distinto para cada usuario con quien necesitara contactar

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 18  

E  

E2  

E3  

M  

M’  

M’’  

C  

C’  C’’  

…  en  dirección  a    Bob  

…  en  dirección  a    Carol  

…  en  dirección  a    Dave  

Page 19: Tema2-v1

•  Esta problemática se puede solucionar introduciendo un parámetro adicional, la clave secreta K, en el algoritmo de cifrado E

–  De esta forma, Alice puede usar el mismo algoritmo E en sus comunicaciones con todos los usuarios (Bob, Carol, Dave, …), pero selecciona una clave K distinta para cada uno de ellos

19  

E  

E  

E  

M  

M’  

M’’  

C  

C’  C’’  

…  en  dirección  a    Bob  

…  en  dirección  a    Carol  

…  en  dirección  a    Dave  

K1  

K2

K3

Page 20: Tema2-v1

•  En esta situación, el mismo algoritmo de descifrado D será usado por todos los receptores, pero cada uno necesitará la clave correspondiente de descifrado (K1

*, K2*, K3

* …)

•  En resumen, para la comunicación específica entre Alice y Bob:

DK1* ( EK1 (M) ) = M 20  

E   D  C  M   M  

Alice   Bob  

K1   K1*  

Page 21: Tema2-v1

•  Por lo tanto, en las nuevas condiciones anteriores, es posible hacer públicos los algoritmos E y D –  De hecho, se pueden evaluar públicamente para detectar

posibles fallos •  En caso de no tener fallos, entonces se pueden introducir en herramientas comerciales, etc.

–  Esto se formaliza en el segundo principio de Kerckhoffs: •  “The system must not be required to be secret, and it must be able to fall into the hands of the

enemy without inconvenience”

•  Por lo tanto, la seguridad del sistema dependerá finalmente de que Alice y Bob mantengan en secreto las claves secretas K y K* –  Los algoritmos simétricos son aquellos en los que K y K* son la misma clave,

y se denomina clave de sesión

–  En los algoritmos asimétricos, las claves K y K* son distintas

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 21  

Page 22: Tema2-v1

•  A partir de la expresión E (M) = C se podría pensar que el algoritmo de cifrado procesa todo el mensaje de una sola vez

–  Sin embargo, por cuestiones de diseño, es raro que ocurra eso

•  De hecho, son muchos los algoritmos que necesitan procesar el mensaje M en bloques de n bits, denominándose entonces cifrados en bloque

22  

Page 23: Tema2-v1

•  La longitud específica n de los bloques viene determinada por el propio diseño interno del algoritmo

•  Cada uno de ellos se cifra de la misma forma, como se observa en la figura

23  

Page 24: Tema2-v1

•  Otros algoritmos, en lugar de procesar M particionándolo en bloques, necesitan procesarlo bit a bit, denominándose entonces cifrados en flujo

•  Para ello, se opera en XOR cada bit del mensaje con el bit corres-pondiente del flujo de clave –  El flujo de clave depende de la clave inicial K

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 24  

Page 25: Tema2-v1

Algoritmo DES (Data Encryption Standard)

•  DES es un algoritmo de cifrado simétrico que: –  Usa bloques de texto en claro de 64 bits, y produce bloques cifrados de

igual tamaño

–  Usa una clave que también es de 64 bits (8 octetos) de longitud •  El último bit de cada octeto de la clave se usa como bit de paridad, por lo que la longitud

efectiva de la clave (a efectos de seguridad) es de, en realidad, 56 bits

•  Diseñado por IBM para la competición del National Bureau of Standards (ahora NIST), en la que se solicitaban propuestas de algoritmos que pudiesen usarse como estándares para: –  cifrado de datos en transmisión

–  cifrado de datos en almacenamiento

por parte de el Gobierno americano, las empresas privadas y, en general, de cualquier tipo de usuario

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 25  

Page 26: Tema2-v1

•  Para el desarrollo del DES, IBM partió de Lucifer, un algoritmo propio desarrollado con anterioridad y usado principalmente en entornos bancarios

•  Lucifer se basaba en el uso

de una técnica denominada

red de Feistel, y usaba

una longitud de clave de 128 bits

26  Red  de  Feistel  

Page 27: Tema2-v1

•  La idea de la red de Feistel queda

reflejada en el propio DES como

muestra la figura

•  El esquema corresponde a la opera-

ción de cifrado (16 etapas) que se

realiza para cada uno de los bloques

del texto en claro

27  

Esquema  general  del  algoritmo  DES  

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas

Page 28: Tema2-v1

•  En el diagrama anterior se observan dos permutaciones (antes y después de las 16 etapas correspondientemente) que simplemente cambian los bits de lugar a) Initial Permutation (IP)

b) Inverse Initial Permutation (IP-1)

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 28  

Page 29: Tema2-v1

•  En el esquema general mostrado con anterioridad aparece la función f(Rn-1, Kn), que es el núcleo de DES, y que internamente es como sigue:

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 29  

Page 30: Tema2-v1

30  

Cajas  S  

Table 3.2 Permutation Tables for DES

(a) Initial Permutation (IP)

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

(b) Inverse Initial Permutation (IP–1)

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

(c) Expansion Permutation (E)

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

(d) Permutation Function (P)

16 7 20 21 29 12 28 17

1 15 23 26 5 18 31 10

2 8 24 14 32 27 3 9

19 13 30 6 22 11 4 25

Table 3.2 Permutation Tables for DES

(a) Initial Permutation (IP)

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

(b) Inverse Initial Permutation (IP–1)

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

(c) Expansion Permutation (E)

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

(d) Permutation Function (P)

16 7 20 21 29 12 28 17

1 15 23 26 5 18 31 10

2 8 24 14 32 27 3 9

19 13 30 6 22 11 4 25

E  

P  

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas

Page 31: Tema2-v1

PC2  

PC1  

•  Se observa también que a cada una de las 16 etapas le corresponde una subclave –  En total, 16 subclaves,

generadas a partir de la clave inicial K, como muestra la figura

31  Número  de  desplazamientos  

Page 32: Tema2-v1

•  Una característica eficiente de DES, y deseable en cualquier algoritmo de cifrado, es el efecto avalancha –  Es decir, un cambio pequeño en el texto en claro, o en la clave, produce un

cambio significativo en el texto cifrado •  Si, por el contrario, el cambio fuera pequeño, el criptoanalista tendría mucha ventaja,

porque se reduciría el número de posibles textos en claro o de posible claves

•  Ejemplo de efecto avalancha en DES:

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 32  

Page 33: Tema2-v1

•  Hasta el momento no se conoce ningún ataque al algoritmo DES en sí mismo que haya sido completamente efectivo

•  Por otro lado, un ataque exhaustivo a la clave (brute-force attack) podría parecer impracticable si suponemos, por ejemplo, 1 operación de descifrado por microsegundo –  Con longitud de clave de 56 bits, existen 256 posibles claves (= 7.2 x 1016)

33  

Sólo hay que probar 72.057.594.037.927.936 claves

Page 34: Tema2-v1

•  Sin embargo, se puede suponer que el criptoanalista va a disponer de capacidad de descrifado con microprocesadores en paralelo y, por lo tanto, la situación cambia drásticamente:

•  Por lo anterior, se deduce que la longitud de clave del DES resulta demasiado corta si el criptoanalista dispone del hardware adecuado

DES Key Search Machine

34  

Table 2.2 Average Time Required for Exhaustive Key Search

Key size (bits)Number of alternative

keys Time required at 1 decryption/µsTime required at 106

decryptions/µs

32 232 = 4.3 × 109 231 µs = 35.8 minutes 2.15 milliseconds

56 256 = 7.2 × 1016 255 µs = 1142 years 10.01 hours

128 2128 = 3.4 × 1038 2127 µs = 5.4 × 1024 years 5.4 × 1018 years

168 2168 = 3.7 × 1050 2167 µs = 5.9 × 1036 years 5.9 × 1030 years

26 characters

(permutation)26! = 4 × 1026 2 × 1026 µs = 6.4 × 1012 years 6.4 × 106 years

Page 35: Tema2-v1

Algoritmo Triple-DES

•  Para aprovechar las ventajas del DES, y a la vez contrarrestar su escasa longitud de clave, los organismos de estandarización han adoptado el criptosistema Triple-DES (ó 3DES)

•  Consiste en usar una

secuencia de tres

operaciones DES,

con 3 claves distintas

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 35  

Page 36: Tema2-v1

•  Existe una variante en la que se utilizan sólo dos claves, pero este esquema ha sido objeto de ataques

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 36  

Page 37: Tema2-v1

Algoritmo AES (Advanced Encryption Standard)

•  AES fue publicado por NIST en 2001 como estándar de cifrado simétrico en bloque para sustituir a DES, especialmente en aplicaciones comerciales –  su nombre original es Rijndael, por sus autores Rijmen y Daemen –  utiliza una clave de 128, 192 o 256 bits –  la longitud n de cada bloque de datos en los que se subdivide M es 128 bits

•  AES no utiliza una red de Feistel, sino una red de sustitución-permutación

•  Cada etapa de AES se compone de cuatro funciones distintas: –  sustitución de byte –  permutación –  operaciones aritméticas en campo finito –  XOR

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 37  

Page 38: Tema2-v1

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 38  

•  La figura muestra el proceso de cifrado en AES para 128 bits de clave (10 etapas)

•  Otras posibilidades: –  192 bits (12 etapas) –  256 bits (14 etapas)

Page 39: Tema2-v1

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 39  

k3

Figure 5.6 AES Key Expansion

k7 k11 k15

k2 k6 k10 k14

k1 k5 k9 k13

k0 k4 k8 k12

w0 w1 w2 w3 g

w4 w5 w6 w7.  .  .  

Figure 5.12 S-AES Key Expansion

(a) Overall algorithm (b) Function g

g

N0 N1

w

w'

N1 N0

xi+2 0

w0 w1g

w2 w3 g

w4 w5

N1

S S

N0' '

Función    g  Algoritmo  de  expansión  de  Claves  en  AES  

Page 40: Tema2-v1

•  Ejemplo de simulación de ejecución de AES, incluyendo expansión de las claves:

http://www.formaestudio.com/rijndaelinspector/archivos/Rijndael_Animation_v4_eng.swf

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 40  

Page 41: Tema2-v1

41  

Inputs  para  una    etapa  de  AES  

Page 42: Tema2-v1

42  Operación  de  cifrado   Operación  de  descifrado  

•  Rendimiento de AES comparado con otros algoritmos simétricos

Page 43: Tema2-v1

Otros algoritmos simétricos

–  Blowfish •  Requiere una clave de entre 32 y 448 bits (pero sólo se recomienda su uso con más de 80 bits)

•  Se utiliza en algunas configuraciones de Ipsec

•  La longitud de cada bloque de datos es de 64 bits, demasiado pequeño para algunas aplicaciones –  Por ese motivo, sólo se recomienda en uso heredado (legacy use)

–  Kasumi •  Requiere una clave de 128 bits de longitud, y la longitud de los bloque de datos es de 64 bits

•  Se usa en UMTS (con el nombre UIA1) y en GSM (con el nombre A5/3)

•  Presenta una serie de problemas que no afectan a su uso práctico en esas apllicaciones

–  sin embargo, no se recomienda para aplicaciones futuras

–  Camellia •  Requiere una clave de 128 bits, pero también da soporte a claves de 192 y 256 bits

–  Las versiones con 192 o 256 bits de clave son un 33% más lentas que la de 128 bits •  Su utiliza como una de los posibles cifrados en TLS

•  Por el momento no se han encontrado ataques efectivos a este algoritmo

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 43  

Page 44: Tema2-v1

•  Recomendaciones generales: –  En general, la longitud mínima de clave para un cifrado simétrico en bloque

debería ser 128 bits

–  El tamaño mínimo de los bloques de datos dependerá de la aplicación específica en la que se use el algoritmo, pero en la mayoría de ocasiones el mínimo deberia ser 128 bits

–  La cantidad máxima de información a cifrar con una misma clave debería limitarse a 2n/2, donde n es el tamaño del bloque de datos

44  SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas

Page 45: Tema2-v1

45  SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas

Page 46: Tema2-v1

Modos de operación para algoritmos simétricos

•  Un modo de operación es una técnica para mejorar el efecto final de un algoritmo criptográfico –  También se usa para adaptar el algoritmo a un tipo de aplicación concreta

•  En ningún caso supone la modificación del algoritmo de cifrado en sí, sino de la forma en que se opera con los bloques de datos

•  Hay diferentes modos de operación, o lo que es lo mismo, diferentes formas de aplicar un mensaje M a un algoritmo de cifrado en bloque –  cada una de ellas con sus ventajas y desventajas

•  NIST ha definido cinco modos de operación, y cualquiera de ellos se puede utilizar con cualquier algoritmo simétrico (DES, 3DES, AES, …)

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 46  

Page 47: Tema2-v1

•  Electronic Codebook (ECB)

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 47  

Page 48: Tema2-v1

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 48  

Page 49: Tema2-v1

•  Cipher Block Chaining (CBC)

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 49  

same ciphertext block. If this property is undesirable in a particular application, the ECB mode should not be used.

The ECB mode is illustrated in Figure 1.

6.2 The Cipher Block Chaining Mode

The Cipher Block Chaining (CBC) mode is a confidentiality mode whose encryption process features the combining (“chaining”) of the plaintext blocks with the previous ciphertext blocks. The CBC mode requires an IV to combine with the first plaintext block. The IV need not be secret, but it must be unpredictable; the generation of such IVs is discussed in Appendix C. Also, the integrity of the IV should be protected, as discussed in Appendix D. The CBC mode is defined as follows:

CBC Encryption: C1 = CIPHK(P1 ⊕ IV); Cj = CIPHK(Pj ⊕ Cj-1) for j = 2 … n.

CBC Decryption: P1 = CIPH -1 (C1) ⊕ IV;K

Pj = CIPH -1 (Cj) ⊕ Cj-1 for j = 2 … n.K

CIPHK

OUTPUT BLOCK 1

OUTPUT BLOCK 2

OUTPUT BLOCK n

PLAINTEXT 1 PLAINTEXT 2 INITIALIZATION VECTOR

INPUT BLOCK 1 INPUT BLOCK 2 INPUT BLOCK n

PLAINTEXT n

ENCR

YPT

DECR

YPT

⊕ ⊕ ⊕

INPUT BLOCK 1 INPUT BLOCK 2 INPUT BLOCK n

CIPH-1 K

PLAINTEXT 1 PLAINTEXT 2 PLAINTEXT n

OUTPUT BLOCK 1 OUTPUT BLOCK 2 OUTPUT BLOCK n

INITIALIZATION VECTOR

CIPHERTEXT 1 CIPHERTEXT 2

CIPHERTEXT 1 CIPHERTEXT 2

CIPHERTEXT n

CIPHERTEXT n

CIPHK CIPHK

CIPH-1 K CIPH-1

K

Figure 2: The CBC Mode

In CBC encryption, the first input block is formed by exclusive-ORing the first block of the plaintext with the IV. The forward cipher function is applied to the first input block, and the

10

Page 50: Tema2-v1

•  Cipher Feedback (CFB)

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 50  

Oj = CIPHK(Ij) for j = 1, 2 … n; P# = C#

j ⊕ MSB (Oj) for j = 1, 2 … n.j s

In CFB encryption, the first input block is the IV, and the forward cipher operation is applied to the IV to produce the first output block. The first ciphertext segment is produced by exclusive-ORing the first plaintext segment with the s most significant bits of the first output block. (The remaining b-s bits of the first output block are discarded.) The b-s least significant bits of the IV are then concatenated with the s bits of the first ciphertext segment to form the second input block. An alternative description of the formation of the second input block is that the bits of the first input block circularly shift s positions to the left, and then the ciphertext segment replaces the s least significant bits of the result.

The process is repeated with the successive input blocks until a ciphertext segment is produced from every plaintext segment. In general, each successive input block is enciphered to produce an output block. The s most significant bits of each output block are exclusive-ORed with the corresponding plaintext segment to form a ciphertext segment. Each ciphertext segment (except the last one) is “fed back” into the previous input block, as described above, to form a new input block. The feedback can be described in terms of the individual bits in the strings as follows: if i1i2…ib is the jth input block, and c1c2…c is the jth ciphertext segment, then the (j+1)th input blocks

is is+1is+2…ib c1c2…c .s

OUTPUT BLOCK 1 Select Discard s Bits (b-s) Bits

INPUT BLOCK 1

OUTPUT BLOCK 1 Select Discard s Bits (b-s) Bits

CIPHK

INITIALIZATION VECTOR

⊕PLAINTEXT 1 s Bits

CIPHERTEXT 1 s Bits

INPUT BLOCK 1

⊕CIPHERTEXT 1 s Bits

PLAINTEXT 1 s Bits

ENCRYP

TDEC

RYP

T

OUTPUT BLOCK n Select Discard s Bits (b-s) Bits

INPUT BLOCK n (b-s) Bits s Bits

OUTPUT BLOCK n Select Discard s Bits (b-s) Bits

⊕PLAINTEXT n s Bits

CIPHERTEXT n s Bits

INPUT BLOCK n (b-s) Bits s Bits

⊕CIPHERTEXT n s Bits

PLAINTEXT n s Bits

OUTPUT BLOCK 2 Select Discard s Bits (b-s) Bits

INPUT BLOCK 2 (b-s) Bits s Bits

OUTPUT BLOCK 2 Select Discard s Bits (b-s) Bits

⊕PLAINTEXT 2 s Bits

CIPHERTEXT 2 s Bits

INPUT BLOCK 2 (b-s) Bits s Bits

⊕CIPHERTEXT 2 s Bits

PLAINTEXT 2 s Bits

INITIALIZATION VECTOR

CIPHK CIPHK

CIPHKCIPHKCIPHK

Figure 3: The CFB Mode

In CFB decryption, the IV is the first input block, and each successive input block is formed as in CFB encryption, by concatenating the b-s least significant bits of the previous input block with

12

Page 51: Tema2-v1

•  Output Feedback (OFB)

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 51  

output block. The first output block is exclusive-ORed with the first ciphertext block to recover the first plaintext block. The first output block is then transformed by the forward cipher function to produce the second output block. The second output block is exclusive-ORed with the second ciphertext block to produce the second plaintext block, and the second output block is also transformed by the forward cipher function to produce the third output block. Thus, the successive output blocks are produced from applying the forward cipher function to the previous output blocks, and the output blocks are exclusive-ORed with the corresponding ciphertext blocks to recover the plaintext blocks. For the last block, which may be a partial block of u bits, the most significant u bits of the last output block are used for the exclusive-OR operation; the remaining b-u bits of the last output block are discarded.

OUTPUT BLOCK 1

INPUT BLOCK 1

OUTPUT BLOCK 1

CIPHK

INITIALIZATION VECTOR

⊕PLAINTEXT 1

CIPHERTEXT 1

INPUT BLOCK 1

⊕CIPHERTEXT 1

PLAINTEXT 1

ENCRYP

TDEC

RYP

T

OUTPUT BLOCK n

INPUT BLOCK n

OUTPUT BLOCK n

⊕PLAINTEXT n

CIPHERTEXT n

INPUT BLOCK n

⊕CIPHERTEXT n

PLAINTEXT n

OUTPUT BLOCK 2

INPUT BLOCK 2

OUTPUT BLOCK 2

⊕PLAINTEXT 2

CIPHERTEXT 2

INPUT BLOCK 2

⊕CIPHERTEXT 2

PLAINTEXT 2

INITIALIZATION VECTOR

CIPHK CIPHK

CIPHKCIPHKCIPHK

Figure 4: The OFB Mode

In both OFB encryption and OFB decryption, each forward cipher function (except the first) depends on the results of the previous forward cipher function; therefore, multiple forward cipher functions cannot be performed in parallel. However, if the IV is known, the output blocks can be generated prior to the availability of the plaintext or ciphertext data.

The OFB mode requires a unique IV for every message that is ever encrypted under the given key. If, contrary to this requirement, the same IV is used for the encryption of more than one message, then the confidentiality of those messages may be compromised. In particular, if a plaintext block of any of these messages is known, say, the jth plaintext block, then the jth output of the forward cipher function can be determined easily from the jth ciphertext block of the message. This information allows the jth plaintext block of any other message that is encrypted

14

Page 52: Tema2-v1

•  Counter (CTR)

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 52  

OUTPUT BLOCK 1

INPUT BLOCK 1

OUTPUT BLOCK 1

CIPHK

COUNTER 1

⊕PLAINTEXT 1

CIPHERTEXT 1

INPUT BLOCK 1

⊕CIPHERTEXT 1

PLAINTEXT 1

ENC

RYP

TD

ECR

YPT

COUNTER 1

OUTPUT BLOCK 2

INPUT BLOCK 2

OUTPUT BLOCK 2

COUNTER 2

⊕PLAINTEXT 2

CIPHERTEXT 2

INPUT BLOCK 2

⊕CIPHERTEXT 2

PLAINTEXT 2

COUNTER 2

. . . . .CIPHK

CIPHKCIPHK

INPUT BLOCK n

OUTPUT BLOCK n

COUNTER n

⊕PLAINTEXT n

CIPHK

OUTPUT BLOCK n

CIPHERTEXT n

INPUT BLOCK n

⊕CIPHERTEXT n

COUNTER n

. . . . . CIPHK

PLAINTEXT n

Figure 5: The CTR Mode

The CTR mode is illustrated in Figure 5.

16

Page 53: Tema2-v1

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 53  

Table 6.1 Block Cipher Modes of Operation

Mode Description Typical Application

Electronic Codebook (ECB) Each block of 64 plaintext bits is

encoded independently using the

same key.

•Secure transmission of

single values (e.g., an

encryption key)

Cipher Block Chaining (CBC) The input to the encryption

algorithm is the XOR of the next

64 bits of plaintext and the

preceding 64 bits of ciphertext.

•General-purpose block-

oriented transmission

•Authentication

Cipher Feedback (CFB) Input is processed s bits at a time.

Preceding ciphertext is used as

input to the encryption algorithm

to produce pseudorandom output,

which is XORed with plaintext to

produce next unit of ciphertext.

•General-purpose stream-

oriented transmission

•Authentication

Output Feedback (OFB) Similar to CFB, except that the

input to the encryption algorithm

is the preceding DES output.

•Stream-oriented

transmission over noisy

channel (e.g., satellite

communication)

Counter (CTR) Each block of plaintext is XORed

with an encrypted counter. The

counter is incremented for each

subsequent block.

•General-purpose block-

oriented transmission

•Useful for high-speed

requirements

Page 54: Tema2-v1

Ventajas y desventajas de los algoritmos simétricos

•  Ventajas: –  Los algoritmos simétricos se pueden diseñar para alcanzar un alto

rendimiento (alto caudal de información cifrada) •  En HW se pueden alcanzar del orden de cientos de Mbytes/sec

•  En SW se pueden alcanzar del orden Mbytes/sec

–  Se pueden componer para producir cifrados más fuertes

–  Se pueden utilizar como base para construir otros mecanismos criptográficos, como funciones hash y generadores pseudoaletorios de números

–  Los algoritmos simétricos necesitan claves K relativamente cortas

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 54  

Page 55: Tema2-v1

•  Desventajas: –  En una comunicación entre dos usuarios, estos han de acordar, a priori, la clave

K con la que cifrarán/descifrarán sus comunicaciones •  la clave ha de permanecer estrictamente en secreto, por lo que sólo la han conocer esos dos

usuarios que se comunican

–  Si los dos usuarios están físicamente lejanos entre sí, acordar la clave puede convertirse en una tarea difícil •  ¿qué medio suficientemente seguro habrán de utilizar si no es posible una reunión presencial

entre ambos?

•  además, a efectos de seguridad, es recomendable que la clave K entre dos usuarios se cambie con cierta frecuencia, lo que complica el problema

–  En una red grande (de muchos usuarios) habrá demasiadas claves que administrar •  Para una comunidad de n usuarios, el número de claves en el sistema será de (n * (n-1)) / 2

–  Ej: 100 usuarios è 4950 claves •  Probablemente hará falta una tercera parte confiable para ayudar a los usuarios en las tareas de

administración de claves

SEGURIDAD DE LA INFORMACIÓN - Tema 2: Técnicas Criptográficas Básicas 55