Sistemas Criptográficos Simétricos

download Sistemas Criptográficos Simétricos

of 12

description

xd

Transcript of Sistemas Criptográficos Simétricos

  • Anexo IX

    Sistemas criptogrficos simtricos

    lvaro Gmez Vieites

  • CONTENIDO

    PRINCIPALES SISTEMAS CRIPTOGRFICOS SIMTRICOS .................................................... 1

    DES (Data Encryption Standard) .......................................................................... 1 DES Mltiple ......................................................................................................... 2 IDEA (International Data Encryption Algorithm)................................................. 3 Blowfish................................................................................................................. 3 Skipjack ................................................................................................................. 3 CAST ..................................................................................................................... 4 RC2 ........................................................................................................................ 4 RC4 ........................................................................................................................ 4 RC5 ........................................................................................................................ 4 GOST..................................................................................................................... 4 AES (Advanced Encryption Standard) .................................................................. 4

    MODOS DE UTILIZACIN DE LOS ALGORITMOS SIMTRICOS ............................................. 5 ECB (Electronic Code Book) ................................................................................. 5 CBC (Cipher Block Chaining) ............................................................................... 6 CFB (Cipher Feedback)......................................................................................... 7 OFB (Output Feedback)......................................................................................... 8

  • ANEXO IX

    SISTEMAS CRIPTOGRFICOS SIMTRICOS

    PRINCIPALES SISTEMAS CRIPTOGRFICOS SIMTRICOS

    DES (Data Encryption Standard)

    Se trata del algoritmo simtrico ms extendido a nivel mundial, diseado por la NSA (National Security Agency) en colaboracin con IBM a mediados de los aos setenta para las comunicaciones seguras del gobierno de los Estados Unidos.

    Este algoritmo se comenz a desarrollar a finales de 1960 por la empresa IBM, dentro de un proyecto de investigacin denominado LUCIFER y cuyo objetivo era desarrollar un algoritmo de encriptacin comercial basado en tcnicas de cifrado en bloque. En noviembre de 1976 el DES, tambin conocido como DEA (Data Encryption Algorithm), fue adoptado como un estndar federal y autorizado para su utilizacin en comunicaciones del gobierno de Estados Unidos.

    La descripcin oficial del estndar fue publicada el 15 de enero de 1977 (estndar FIPS1 46), tras su revisin por parte de la NSA (Agencia de Seguridad Nacional de Estados Unidos), que introdujo algunos cambios en el algoritmo para que

    1 Federal Information Processing Standard.

  • 2 ENCICLOPEDIA DE LA SEGURIDAD INFORMTICA RA-MA

    no fuera tan robusto desde el punto de vista computacional, reduciendo el tamao de la clave.

    Hasta su aparicin no exista un estndar oficial y reconocido, por lo que cada fabricante venda sus equipos y programas basados en algoritmos propietarios, sin que el cliente pudiera comprobar su robustez y seguridad

    DES fue aprobado posteriormente por la ANSI (American National Standards Institute) como un estndar para el sector privado en 1981 (estndar ANSI X3.92), con la denominacin de DEA (Data Encryption Algorithm).

    El algoritmo DES emplea bloques de 64 bits, que se codifican mediante claves de 56 bits que gobiernan mltiples operaciones de transposicin y sustitucin. Estas operaciones se realizan en 16 rondas, utilizando bloques de transposicin y bloques de sustitucin:

    Bloques de transposicin: tambin conocidas como cajas P, se encargan de la difusin de los bits del bloque que se est encriptando en cada ronda aplicando distintas funciones de permutacin.

    Bloques de sustitucin: tambin conocidas como cajas S, se encargan de aadir confusin al bloque de bits que se est encriptando en cada ronda del algoritmo.

    Actualmente DES ya no se considera un algoritmo seguro, debido al avance experimentado por la capacidad de clculo de los ordenadores. De hecho, se puede romper la clave en un tiempo relativamente corto (en apenas un par de das) construyendo un equipo mediante circuitos programables (Field Programmable Gate Array, FPGA) de bajo coste. As, en septiembre de 1998 un juzgado de Alemania declaraba DES desfasado e inseguro para aplicaciones financieras en ese pas.

    DES Mltiple

    Este algoritmo consiste en la aplicacin del algoritmo DES en varias etapas al mensaje original, empleando distintas claves en cada etapa, para mejorar de esta forma su robustez. Se trata, por lo tanto, de una combinacin de cifradores en bloque.

    El ms conocido es el Triple-DES, en el que se aplica el algoritmo DES tres veces: se codifica con la clave K1, se decodifica con la clave K2 y se vuelve a codificar con la clave K1, tal y como se representa en las siguientes figuras:

  • RA-MA ANEXO IX: SISTEMAS CRIPTOGRFICOS SIMTRICOS 3

    Encrip.

    K1

    Desencr.

    K2

    Encrip.

    K1

    Encrip.

    K1

    Desencr.

    K2

    Encrip.

    K1

    Mensaje original

    Mensaje encriptado

    Figura 1: Encriptacin con Triple-DES

    Desencr.

    K1

    Encrip.

    K2

    Desencr.

    K1

    Desencr.

    K1

    Encrip.

    K2

    Desencr.

    K1

    Mensaje encriptado

    Mensaje original

    Figura 2: Desencriptacin con Triple-DES

    IDEA (International Data Encryption Algorithm)

    Algoritmo desarrollado en Suiza (en el Instituto Federal Suizo de Tecnologa, Swiss Federal Institute of Technology) a principios de los aos noventa, fruto del trabajo de los investigadores Xuejia Lai y James Massey. Este algoritmo, que destaca por ser muy rpido, realiza sus operaciones en 8 rondas, emplea claves de 128 bits y trabaja con bloques de 64 bits, siendo bastante resistente a las tcnicas de criptoanlisis lineal y diferencial.

    Blowfish

    Algoritmo desarrollado por el experto en seguridad Bruce Schneier en 1993. Se trata de un algoritmo de cifrado que trabaja con bloques de 64 bits y que realiza 16 rondas, consistente cada una de ellas en una permutacin dependiente de la clave y una sustitucin dependiente de la clave y de los datos, empleando claves variables de hasta 448 bits.

    Ha sido optimizado para poder ser ejecutado en procesadores de 32 bits y resulta bastante ms rpido que el DES, por lo que ha sido elegido por bastantes empresas en los ltimos aos.

    Skipjack

    Algoritmo desarrollado por la NSA para el gobierno de Estados Unidos, dentro del proyecto del polmico chip cifrador Clipper.

    Se trata de un algoritmo clasificado como secreto, que trabaja con bloques de 64 bits, claves de 80 bits y que realiza sus operaciones en 32 rondas.

  • 4 ENCICLOPEDIA DE LA SEGURIDAD INFORMTICA RA-MA

    CAST

    Algoritmo que realiza sus operaciones en 8 rondas sobre bloques de 64 bits y emplea claves de 40 a 64 bits. Debe su nombre a sus inventores: Carlisle, Adams, Stafford y Tavares.

    RC2

    Desarrollado por la empresa RSA Labs como un algoritmo de cifrado simtrico que trabaja con bloques de 64 bits y claves de tamao variable, diseado para operar con los mismos modos de trabajo que el DES, pero siendo el doble de rpido.

    RC4

    Algoritmo desarrollado por la empresa RSA Labs y presentado en diciembre de 1994, fue diseado para el cifrado en flujo y permite trabajar con claves de tamao variable.

    RC5

    Se trata de un algoritmo propuesto por RSA Labs como una mejora del RC4, para incrementar su robustez y ofrecer una mayor eficiencia computacional. Se trata, por lo tanto, de un rpido sistema de cifrado en bloque, que se basa en la realizacin de varias rotaciones dependientes de los datos (entre 0 y 255 rondas), trabajando sobre bloques de tamao de 32, 64 o 128 bits, y claves de tamao variable (entre 0 y 2.048 bits).

    GOST

    Este algoritmo es un estndar desarrollado por el gobierno de la antigua URSS como respuesta al algoritmo norteamericano DES. GOST realiza sus operaciones en 32 rondas y emplea claves de 256 bits.

    AES (Advanced Encryption Standard)

    Algoritmo conocido como Rijndael y diseado por los belgas Vicent Rijmen y Joan Daemen. Result el ganador de un concurso convocado por el NIST (National Institute of Standards Technology) para la eleccin de un algoritmo sustituto del DES, concurso al que se presentaron 15 algoritmos candidatos. AES fue adoptado como estndar FIPS 197 (Federal Information Processing Standard) en noviembre de 2002.

    Se trata de un algoritmo de cifrado en bloque, que utiliza bloques de 128 bits y claves variables de longitudes de entre 128 y 256 bits, con varios modos de operacin.

  • RA-MA ANEXO IX: SISTEMAS CRIPTOGRFICOS SIMTRICOS 5

    MODOS DE UTILIZACIN DE LOS ALGORITMOS SIMTRICOS

    Se han propuesto varios modos de utilizacin de los algoritmos simtricos:

    ECB (Electronic Code Book).

    CBC (Cipher Block Chaining).

    OFB (Output Feedback).

    CFB (Cipher Feedback).

    Cada modo combina las tcnicas bsicas de encriptacin con otras posibles operaciones o algn tipo de retroalimentacin (feedback). La eleccin de uno u otro modo se realiza en base al nivel de seguridad requerido frente al criptoanlisis, las caractersticas del mensaje a encriptar (se trata de un fichero de datos de un ordenador, de una comunicacin en tiempo real), la eficiencia computacional requerida o la robustez frente a la propagacin de errores.

    Seguidamente se detallan las caractersticas de cada uno de estos modos de utilizacin:

    ECB (Electronic Code Book)

    El modo ECB, cuyo nombre podra ser traducido por Libro de Cdigos Electrnico, es el modo de operacin ms bsico de un sistema criptogrfico simtrico: un bloque de texto en claro es encriptado mediante la clave y convertido en un bloque de texto cifrado, de forma independiente al resto de los bloques de texto en claro del mensaje.

    De esta forma, un determinado bloque de texto en claro genera siempre el mismo bloque de texto cifrado, por lo que se podra generar un libro de cdigos (de ah el nombre que recibe este modo de operacin) con cada uno de los posibles bloques de texto en claro y sus correspondientes bloques de texto cifrado. No obstante, con bloques de 64 bits, el libro de cdigos tendra 264 entradas, cuyos valores dependeran adems de la clave elegida, es decir, para cada clave se tendra que generar un libro de cdigos distinto.

    Como principal ventaja de este modo de operacin destaca su facilidad de implementacin, ya que permite encriptar y desencriptar cada uno de los bloques de texto de forma independiente. Esta caracterstica resulta de inters en el acceso a ficheros o bases de datos en los que cada registro est compuesto por uno o varios bloques de texto, que podran ser tratados de forma independiente. Adems, el proceso de encriptacin/desencriptacin podra ser acelerado recurriendo a varios procesadores o tarjetas criptogrficas en paralelo.

  • 6 ENCICLOPEDIA DE LA SEGURIDAD INFORMTICA RA-MA

    Sin embargo, podemos sealar dos inconvenientes de este modo de operacin: En primer lugar, un criptoanalista podra obtener varias parejas de bloques de texto cifrado y de texto clave, para comenzar de este modo un anlisis y tratar de obtener la clave utilizada por el sistema criptogrfico.

    Por otra parte, se trata de un modo de operacin vulnerable frente a ataques de repeticin (replay attacks), consistentes en el reenvo de textos cifrados por un atacante, sin necesidad de conocer ni siquiera la clave o el algoritmo utilizado. Como posible solucin para evitar este tipo de ataques se podra aadir un sello temporal (timestamp) a cada bloque de texto procesado por el sistema criptogrfico.

    CBC (Cipher Block Chaining)

    El modo CBC consiste en el encadenamiento de las operaciones de cifrado (de hecho la traduccin de CBC sera encadenamiento de bloques de cifrado), de tal forma que la encriptacin de un bloque depender del resultado de la encriptacin del bloque anterior. Esta caracterstica tambin se aplica al proceso de desencriptacin.

    En la siguiente figura se representa el funcionamiento del modo de operacin CBC:

    Encrip.

    K

    Bi-1

    Ci-2

    Ci-1

    Bi (bloque texto claro)

    ......

    Encrip.

    K (clave)

    Ci (bloque texto cifrado)

    Encrip.

    K

    Bi-1

    Ci-2

    Ci-1

    Bi (bloque texto claro)

    ......

    Encrip.

    K (clave)

    Ci (bloque texto cifrado)

    Figura 3: Modo CBC (Cipher Block Chaining)

    El sistema lleva a cabo una operacin XOR del nuevo bloque de texto en claro Bi con el bloque de texto cifrado obtenido para el bloque anterior, y el bloque resultante es encriptado con la clave. Con este esquema, la encriptacin de un bloque de texto depende de la clave y del resultado de la encriptacin de todos los bloques anteriores. As, un mismo bloque de texto puede dar lugar a distintos bloques de texto cifrado, aunque no se cambie la clave del algoritmo, por lo que resulta un modo mucho ms robusto al criptoanlisis.

    Sin embargo, un determinado mensaje compuesto por varios bloques de texto claro siempre producira la misma secuencia de bloques cifrados (mientras no se produzca ningn cambio en el mensaje). Por este motivo, se utiliza un Vector de Inicializacin (IV, Initialization Vector), que adopta un valor pseudoaleatorio (o el

  • RA-MA ANEXO IX: SISTEMAS CRIPTOGRFICOS SIMTRICOS 7

    valor de un sello temporal, por ejemplo) y que debe ser compartido entre los usuarios del algoritmo, para que de este modo la secuencia obtenida de bloques cifrados sea distinta aunque se repitan los mismos mensajes. El Vector de Inicializacin no tiene por qu ser secreto, por lo que se podra transmitir en texto claro.

    El principal problema del modo CBC es la propagacin de errores, ya que el error en un determinado bloque afectar tambin al bloque que le siga en la secuencia.

    CFB (Cipher Feedback)

    Este modo de operacin (cuyo nombre se podra traducir por Retroalimentacin del Cifrado) permite construir un sistema de cifrado en flujo autosincronizante (self-synchronising stream cipher) en el que la secuencia de la clave se obtiene a partir de la secuencia de bits encriptados, empleando un algoritmo de cifrado en bloque como DES.

    Para ello, los datos son encriptados en unidades ms pequeas que el tamao de un bloque (por ejemplo, en 8 bits). Al igual que en el modo CBC, se utiliza un Vector de Inicializacin (el cual tampoco tiene por qu ser mantenido en secreto) y los bits encriptados se retroalimentan y se utilizan para modificar la secuencia de bits de la clave, que ser aplicada a la secuencia de bits de informacin mediante una operacin XOR, tal y como se representa en la siguiente figura:

    EncriptacinK (clave inicial)

    Ki (bits de la secuencia utilizada como clave)

    Bi (bits de texto en claro)

    Ci (bits de texto cifrado)

    Registro de desplazamiento

    Figura 4: Modo de operacin CFB (Cipher Feedback)

    Tambin se ha propuesto la utilizacin de este modo de operacin del algoritmo para la generacin de cdigos de autenticacin de mensajes (cdigos MAC).

    Al igual que en CBC, el principal problema del modo CFB es la propagacin de los errores, debido a la retroalimentacin de los bits de texto cifrado.

  • 8 ENCICLOPEDIA DE LA SEGURIDAD INFORMTICA RA-MA

    OFB (Output Feedback)

    El modo de operacin OFB (cuyo nombre podra ser traducido por Retroalimentacin de la Salida) es un modo similar al CFB, por lo que tambin puede ser utilizado para generar un sistema de cifrado en flujo a partir de un sistema de cifrado en bloque.

    En este caso, la secuencia de bits de la clave no depende de la secuencia de bits de informacin, por lo que es necesario garantizar la sincronizacin entre la clave del transmisor y la del receptor para poder desencriptar correctamente la secuencia de bits del mensaje encriptado (synchronous stream cipher). Sin embargo, en este modo se evita el problema de la propagacin de errores del modo CFB.

    En la siguiente figura se representa el funcionamiento del modo de operacin OFB:

    EncriptacinK (clave inicial)

    Ki (bits de la secuencia utilizada como clave)

    Bi (bits de texto en claro)

    Ci (bits de texto cifrado)

    Registro de desplazamiento

    Figura 5: Modo de operacin OFB (Output Feedback)

    Cabe destacar la posible aplicacin de este modo de operacin del algoritmo criptogrfico para la generacin de nmeros pseudoaleatorios.