fbpx
Wikipedia

Modos de operación de una unidad de cifrado por bloques

En criptografía, un modo de operación es un algoritmo que utiliza un cifrador por bloques para proveer seguridad a la información, como confidencialidad y autenticidad. Un cifrador por bloques en sí mismo sólo es adecuado para la transformación criptográfica segura (cifrado y descifrado) de un grupo de bits de longitud fija llamado bloque (a menudo de 64 a 128 bits). Un modo de operación describe cómo aplicar repetidamente una operación de cifrado en un bloque simple para la transformación segura de cantidades de datos mayores que un bloque.

La mayoría de los modos requiere una secuencia binaria única, usualmente llamada vector de inicialización (IV), para cada operación de encriptación. El IV no tiene por qué repetirse y para algunos modos es aleatorio. El vector de inicialización se utiliza para asegurar que se generen textos cifrados distintos, aun cuando sea el mismo texto el que se encripte varias veces y con la misma clave. Los cifradores por bloques pueden manejar bloques de diferentes tamaños pero, durante la transformación, éste se mantiene siempre fijo. Los modos de cifrado por bloques operan con bloques completos, por lo que es necesario que la última parte del bloque sea rellenada, si acaso su tamaño fuera menor que el de los anteriores a él. Sin embargo, hay modos que no necesitan dicho rellenado porque emplean un cifrador por bloques, como cifrador en flujo, de forma muy efectiva.

Los primeros modos descritos, como ECB, CBC, OFB y CFB, aseguraban la confidencialidad del mensaje, pero no su integridad. Otros modos se diseñaron para asegurar ambas características, la confidencialidad y la integridad del mensaje, tales como: modo CCM, modo EAX y modo OCB.

Vector de Inicialización

Un vector de inicialización (IV) o variable de inicialización (SV) es un bloque de bits que es utilizado por varios modos de operación para hacer aleatorio el proceso de encriptación y por lo tanto generar distintos textos cifrados incluso cuando el mismo texto claro es encriptado varias veces, sin la necesidad de regenerar la clave, ya que es un proceso lento.

El vector de inicialización tiene requerimientos de seguridad diferentes a los de la clave, por lo que el IV no necesita mantenerse secreto. Sin embargo, en la mayoría de los casos, es importante que el vector de inicialización no sea reutilizado con la misma clave. En los modos CBC y CFB, volver a usar el IV permite conocer la información contenida en el primer bloque del texto claro, y también prefijos comunes compartidos por dos mensajes. Para los modos OFB y CTR, la reutilización del vector de inicialización pone en riesgo la seguridad, dado que ambos crean un flujo de bits al que se le aplica una función XOR con el texto claro, que es totalmente dependiente del IV y de la clave ocupada. Reutilizar el flujo de bits también expone la seguridad. En el modo CBC, el vector de inicialización además debe ser impredecible al momento de realizar la encriptación; particularmente, una práctica muy común de encriptación ocupaba el último bloque de texto cifrado de un mensaje como vector de inicialización para el cifrado del próximo mensaje (este método fue usado por el protocolo SSL 2.0). Si un atacante logra conocer el IV (o el bloque de texto cifrado previo) antes de obtener el próximo texto claro, puede confirmar sus suposiciones sobre algún texto simple o bloque que fue encriptado anteriormente con la misma clave (técnica conocida como TLS CBC IV attack).

Rellenado

El cifrador en bloque opera con bloques de tamaño fijo, pero las dimensiones de los mensajes son variables. Por ello, en algunos modos de operación como ECB y CBC el último bloque de texto debe ser rellenado antes del proceso de encriptación. Hay muchos esquemas que para realizar esto. El más simple consiste en agregar null bytes al texto claro hasta que la longitud sea múltiplo del tamaño del bloque definido. Pero debe ser posible recuperar la longitud original del texto. Algo más complejo presenta el método DES que añade un bit en estado 1 seguido de null bytes para completar el tamaño de bloque. Otras técnicas más sofisticadas son los esquemas CBC-specific como ciphertext stealing o residual block termination, que no genera texto cifrado adicional, a expensas de cierta complejidad adicional en sus procesos. Scheineier y Ferguson sugieren dos posibilidades para realizar el rellenado, ambas simples: anexar un byte con valor 128 (hex 80) seguido por tantos ceros como sean necesarios para completar el último bloque, o rellenar el último bloque con n bytes, todos con valor n.

Modos como CFB, OFB y CTR no requieren métodos para manejar los mensajes que no tienen longitudes que sea múltiplos del tamaño de bloque, dado que los modos de operación trabajan realizando una operación XOR entre el texto plano con la salida creada por el cifrador por bloques. Con el último segmento de texto llano se realiza una operación XOR con los primeros bytes obtenidos del cifrador, por lo que el texto cifrado resultante es del mismo tamaño del último texto plano. Esta característica de los cifrados en flujo los hace más adecuados para aplicaciones que transmiten datos en streaming donde no es conveniente aplicar relleno de bytes.

Modos de operación más comunes

Modo ECB (Electronic codebook)

El método más simple de modo de cifrado es el llamado ECB (electronic codebook), en el cual el mensaje es dividido en bloques, cada uno de los cuales es cifrado de manera separada. La desventaja de este método es que bloques idénticos de mensaje sin cifrar producirán idénticos textos cifrados. Por esto, no proporciona una auténtica confidencialidad y no es recomendado para protocolos criptográficos, como apunte no usa el vector de inicialización (IV).

 

 

Un claro ejemplo de cómo el método ECB puede revelar patrones del texto. Una versión de mapa de bits de la imagen de la izquierda ha sido cifrada con ECB para crear la imagen del centro:

     
Original Cifrado usando modo ECB Cifrado usando otros modos

La imagen de la derecha es cómo podría aparecer la misma imagen cifrada con CBC, CTR o cualquiera de los otros métodos seguros, esto es, indistinguible de ruido aleatorio. Hay que notar que la apariencia aleatoria de la imagen de la derecha dice muy poco sobre si la imagen ha sido cifrada de manera segura. Muchos métodos no seguros de cifrado producen, a priori, un resultado aparentemente aleatorio.

El modo ECB puede hacer que protocolos sin protección de integridad sean aún más susceptibles a ataques de repetición, dado que cada bloque es descifrado de la misma manera. Por ejemplo, el videojuego en línea Phantasy Star Online: Blue Burst usa Blowfish en modo ECB. Antes de que el método de intercambio de claves fuese craqueado, algunos jugadores enviaban repetidamente el bloque cifrado de Monstruo matado, cifrado cada uno con Blowfish, para ganar ilegítimamente puntos de experiencia.

Modo CBC (Cipher-block chaining)

En el modo CBC (cipher-block chaining), antes de ser cifrado, a cada bloque de texto se le aplica una operación XOR con el bloque previo ya cifrado. De este modo, cada bloque cifrado depende de todos los bloques de texto claros usados hasta ese punto. Además, para hacer cada mensaje único se debe usar un vector de inicialización en el primer bloque.

 

 

Si el primer bloque tiene índice 1, la fórmula matemática para el cifrado CBC es:

 

mientras que la fórmula del descifrado es:

 

CBC es el modo usado más a menudo. Su principal contrapartida es que es secuencial y no puede funcionar en paralelo.

Modo PCBC (Propagating cipher-block chaining)

El modo propagating cipher-block chaining fue diseñado para que pequeños cambios en el texto cifrado se propagasen más que en el modo CBC.

 

 

Las rutinas de cifrado y descifrado se definen como sigue:

 

 

PCBC es usado por Kerberos y Waste. Además de en éstos protocolos, su uso es bastante infrecuente.

Modo OFB (Output feedback)

El modo OFB (output feedback) emplea una clave para crear un bloque pseudoaleatorio que es operado a través de XOR con el texto claro para generar el texto cifrado. Requiere de un vector de inicialización que debe ser único para cada ejecución realizada.

   

Las rutinas de cifrado y descifrado se definen como sigue:

 
 
 
 
 

Todos los bloques de salida obtenidos en cada operación dependen directamente de todos los anteriores, por lo tanto este modo de encriptación no es paralelizable.

Sin embargo, ya que el texto claro o el texto cifrado sólo son usados en el XOR final, las operaciones del cifrador por bloques pueden realizarse por adelantado, para que la etapa final se lleve a cabo en paralelo siempre que el texto claro o cifrado se encuentre disponible.

El modo de operación OFB requiere un IV distinto para cada mensaje encriptado con una misma clave. Si no se cumple este requerimiento se compromete la seguridad.

Referencias

  • NIST Computer Security Division's (CSD) Security Technology Group (STG) (2013). "Block cipher modes". Cryptographic Toolkit. NIST. Retrieved April 12, 2013.
  • B. Moeller (May 20, 2004), Security of CBC Ciphersuites in SSL/TLS: Problems and Countermeasures
  • NIST: Recommendation for Block Cipher Modes of Operation
  •   Datos: Q154021
  •   Multimedia: Block cipher modes of operation

modos, operación, unidad, cifrado, bloques, criptografía, modo, operación, algoritmo, utiliza, cifrador, bloques, para, proveer, seguridad, información, como, confidencialidad, autenticidad, cifrador, bloques, mismo, sólo, adecuado, para, transformación, cript. En criptografia un modo de operacion es un algoritmo que utiliza un cifrador por bloques para proveer seguridad a la informacion como confidencialidad y autenticidad Un cifrador por bloques en si mismo solo es adecuado para la transformacion criptografica segura cifrado y descifrado de un grupo de bits de longitud fija llamado bloque a menudo de 64 a 128 bits Un modo de operacion describe como aplicar repetidamente una operacion de cifrado en un bloque simple para la transformacion segura de cantidades de datos mayores que un bloque La mayoria de los modos requiere una secuencia binaria unica usualmente llamada vector de inicializacion IV para cada operacion de encriptacion El IV no tiene por que repetirse y para algunos modos es aleatorio El vector de inicializacion se utiliza para asegurar que se generen textos cifrados distintos aun cuando sea el mismo texto el que se encripte varias veces y con la misma clave Los cifradores por bloques pueden manejar bloques de diferentes tamanos pero durante la transformacion este se mantiene siempre fijo Los modos de cifrado por bloques operan con bloques completos por lo que es necesario que la ultima parte del bloque sea rellenada si acaso su tamano fuera menor que el de los anteriores a el Sin embargo hay modos que no necesitan dicho rellenado porque emplean un cifrador por bloques como cifrador en flujo de forma muy efectiva Los primeros modos descritos como ECB CBC OFB y CFB aseguraban la confidencialidad del mensaje pero no su integridad Otros modos se disenaron para asegurar ambas caracteristicas la confidencialidad y la integridad del mensaje tales como modo CCM modo EAX y modo OCB Indice 1 Vector de Inicializacion 2 Rellenado 3 Modos de operacion mas comunes 3 1 Modo ECB Electronic codebook 3 2 Modo CBC Cipher block chaining 3 3 Modo PCBC Propagating cipher block chaining 3 4 Modo OFB Output feedback 4 ReferenciasVector de Inicializacion EditarUn vector de inicializacion IV o variable de inicializacion SV es un bloque de bits que es utilizado por varios modos de operacion para hacer aleatorio el proceso de encriptacion y por lo tanto generar distintos textos cifrados incluso cuando el mismo texto claro es encriptado varias veces sin la necesidad de regenerar la clave ya que es un proceso lento El vector de inicializacion tiene requerimientos de seguridad diferentes a los de la clave por lo que el IV no necesita mantenerse secreto Sin embargo en la mayoria de los casos es importante que el vector de inicializacion no sea reutilizado con la misma clave En los modos CBC y CFB volver a usar el IV permite conocer la informacion contenida en el primer bloque del texto claro y tambien prefijos comunes compartidos por dos mensajes Para los modos OFB y CTR la reutilizacion del vector de inicializacion pone en riesgo la seguridad dado que ambos crean un flujo de bits al que se le aplica una funcion XOR con el texto claro que es totalmente dependiente del IV y de la clave ocupada Reutilizar el flujo de bits tambien expone la seguridad En el modo CBC el vector de inicializacion ademas debe ser impredecible al momento de realizar la encriptacion particularmente una practica muy comun de encriptacion ocupaba el ultimo bloque de texto cifrado de un mensaje como vector de inicializacion para el cifrado del proximo mensaje este metodo fue usado por el protocolo SSL 2 0 Si un atacante logra conocer el IV o el bloque de texto cifrado previo antes de obtener el proximo texto claro puede confirmar sus suposiciones sobre algun texto simple o bloque que fue encriptado anteriormente con la misma clave tecnica conocida como TLS CBC IV attack Rellenado EditarEl cifrador en bloque opera con bloques de tamano fijo pero las dimensiones de los mensajes son variables Por ello en algunos modos de operacion como ECB y CBC el ultimo bloque de texto debe ser rellenado antes del proceso de encriptacion Hay muchos esquemas que para realizar esto El mas simple consiste en agregar null bytes al texto claro hasta que la longitud sea multiplo del tamano del bloque definido Pero debe ser posible recuperar la longitud original del texto Algo mas complejo presenta el metodo DES que anade un bit en estado 1 seguido de null bytes para completar el tamano de bloque Otras tecnicas mas sofisticadas son los esquemas CBC specific como ciphertext stealing o residual block termination que no genera texto cifrado adicional a expensas de cierta complejidad adicional en sus procesos Scheineier y Ferguson sugieren dos posibilidades para realizar el rellenado ambas simples anexar un byte con valor 128 hex 80 seguido por tantos ceros como sean necesarios para completar el ultimo bloque o rellenar el ultimo bloque con n bytes todos con valor n Modos como CFB OFB y CTR no requieren metodos para manejar los mensajes que no tienen longitudes que sea multiplos del tamano de bloque dado que los modos de operacion trabajan realizando una operacion XOR entre el texto plano con la salida creada por el cifrador por bloques Con el ultimo segmento de texto llano se realiza una operacion XOR con los primeros bytes obtenidos del cifrador por lo que el texto cifrado resultante es del mismo tamano del ultimo texto plano Esta caracteristica de los cifrados en flujo los hace mas adecuados para aplicaciones que transmiten datos en streaming donde no es conveniente aplicar relleno de bytes Modos de operacion mas comunes EditarModo ECB Electronic codebook Editar El metodo mas simple de modo de cifrado es el llamado ECB electronic codebook en el cual el mensaje es dividido en bloques cada uno de los cuales es cifrado de manera separada La desventaja de este metodo es que bloques identicos de mensaje sin cifrar produciran identicos textos cifrados Por esto no proporciona una autentica confidencialidad y no es recomendado para protocolos criptograficos como apunte no usa el vector de inicializacion IV Un claro ejemplo de como el metodo ECB puede revelar patrones del texto Una version de mapa de bits de la imagen de la izquierda ha sido cifrada con ECB para crear la imagen del centro Original Cifrado usando modo ECB Cifrado usando otros modosLa imagen de la derecha es como podria aparecer la misma imagen cifrada con CBC CTR o cualquiera de los otros metodos seguros esto es indistinguible de ruido aleatorio Hay que notar que la apariencia aleatoria de la imagen de la derecha dice muy poco sobre si la imagen ha sido cifrada de manera segura Muchos metodos no seguros de cifrado producen a priori un resultado aparentemente aleatorio El modo ECB puede hacer que protocolos sin proteccion de integridad sean aun mas susceptibles a ataques de repeticion dado que cada bloque es descifrado de la misma manera Por ejemplo el videojuego en linea Phantasy Star Online Blue Burst usa Blowfish en modo ECB Antes de que el metodo de intercambio de claves fuese craqueado algunos jugadores enviaban repetidamente el bloque cifrado de Monstruo matado cifrado cada uno con Blowfish para ganar ilegitimamente puntos de experiencia Modo CBC Cipher block chaining Editar En el modo CBC cipher block chaining antes de ser cifrado a cada bloque de texto se le aplica una operacion XOR con el bloque previo ya cifrado De este modo cada bloque cifrado depende de todos los bloques de texto claros usados hasta ese punto Ademas para hacer cada mensaje unico se debe usar un vector de inicializacion en el primer bloque Si el primer bloque tiene indice 1 la formula matematica para el cifrado CBC es C i E K P i C i 1 C 0 I V displaystyle C i E K P i oplus C i 1 C 0 IV mientras que la formula del descifrado es P i D K C i C i 1 C 0 I V displaystyle P i D K C i oplus C i 1 C 0 IV CBC es el modo usado mas a menudo Su principal contrapartida es que es secuencial y no puede funcionar en paralelo Modo PCBC Propagating cipher block chaining Editar El modo propagating cipher block chaining fue disenado para que pequenos cambios en el texto cifrado se propagasen mas que en el modo CBC Las rutinas de cifrado y descifrado se definen como sigue C i E K P i P i 1 C i 1 P 0 I V C 0 0 displaystyle C i E K P i oplus P i 1 oplus C i 1 P 0 IV C 0 0 P i D K C i P i 1 C i 1 P 0 I V C 0 0 displaystyle P i D K C i oplus P i 1 oplus C i 1 P 0 IV C 0 0 PCBC es usado por Kerberos y Waste Ademas de en estos protocolos su uso es bastante infrecuente Modo OFB Output feedback Editar El modo OFB output feedback emplea una clave para crear un bloque pseudoaleatorio que es operado a traves de XOR con el texto claro para generar el texto cifrado Requiere de un vector de inicializacion que debe ser unico para cada ejecucion realizada Las rutinas de cifrado y descifrado se definen como sigue C j P j O j displaystyle C j P j oplus O j P j C j O j displaystyle P j C j oplus O j O j E K I j displaystyle O j E K I j I j O j 1 displaystyle I j O j 1 I 0 IV displaystyle I 0 mbox IV Todos los bloques de salida obtenidos en cada operacion dependen directamente de todos los anteriores por lo tanto este modo de encriptacion no es paralelizable Sin embargo ya que el texto claro o el texto cifrado solo son usados en el XOR final las operaciones del cifrador por bloques pueden realizarse por adelantado para que la etapa final se lleve a cabo en paralelo siempre que el texto claro o cifrado se encuentre disponible El modo de operacion OFB requiere un IV distinto para cada mensaje encriptado con una misma clave Si no se cumple este requerimiento se compromete la seguridad Referencias EditarNIST Computer Security Division s CSD Security Technology Group STG 2013 Block cipher modes Cryptographic Toolkit NIST Retrieved April 12 2013 B Moeller May 20 2004 Security of CBC Ciphersuites in SSL TLS Problems and Countermeasures NIST Recommendation for Block Cipher Modes of Operation Datos Q154021 Multimedia Block cipher modes of operation Obtenido de https es wikipedia org w index php title Modos de operacion de una unidad de cifrado por bloques amp oldid 133247934, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos