Cifrado de bloque

El esquema básico de un cifrado de bloques se muestra de la siguiente manera:

Un cifrado de bloque toma un bloque de bits de texto sin formato y genera un bloque de bits de texto cifrado, generalmente del mismo tamaño. El tamaño del bloque se fija en el esquema dado. La elección del tamaño del bloque no afecta directamente a la fuerza del esquema de cifrado. La fuerza del cifrado depende de la longitud de la clave.

Tamaño de bloque

Aunque cualquier tamaño de bloque es aceptable, se tienen en cuenta los siguientes aspectos al seleccionar el tamaño de un bloque.

  • Avoid very small block size- Digamos que el tamaño de un bloque es m bits. Entonces, las posibles combinaciones de bits de texto plano son 2 m . Si el atacante descubre los bloques de texto sin formato correspondientes a algunos bloques de texto cifrado enviados previamente, entonces el atacante puede lanzar un tipo de 'ataque de diccionario' mediante la creación de un diccionario de pares de texto sin formato / texto cifrado enviados con esa clave de cifrado. Un tamaño de bloque más grande dificulta el ataque ya que el diccionario debe ser más grande.

  • Do not have very large block size- Con un tamaño de bloque muy grande, el cifrado se vuelve ineficaz para operar. Dichos textos sin formato deberán rellenarse antes de cifrarse.

  • Multiples of 8 bit - Un tamaño de bloque preferido es un múltiplo de 8, ya que es fácil de implementar ya que la mayoría de los procesadores de computadora manejan datos en múltiplos de 8 bits.

Acolchado en Block Cipher

Los cifrados de bloques procesan bloques de tamaños fijos (por ejemplo, 64 bits). La longitud de los textos sin formato no es en su mayoría un múltiplo del tamaño del bloque. Por ejemplo, un texto sin formato de 150 bits proporciona dos bloques de 64 bits cada uno con un tercer bloque de equilibrio de 22 bits. El último bloque de bits debe rellenarse con información redundante para que la longitud del bloque final sea igual al tamaño del bloque del esquema. En nuestro ejemplo, los 22 bits restantes deben tener 42 bits redundantes adicionales agregados para proporcionar un bloque completo. El proceso de agregar bits al último bloque se conoce comopadding.

Demasiado acolchado hace que el sistema sea ineficaz. Además, el relleno puede hacer que el sistema sea inseguro en ocasiones, si el relleno se realiza siempre con los mismos bits.

Esquemas de cifrado en bloque

Existe una gran cantidad de esquemas de cifrado en bloque que se utilizan. Muchos de ellos son de dominio público. Los cifrados de bloque más populares y destacados se enumeran a continuación.

  • Digital Encryption Standard (DES)- El popular cifrado de bloques de la década de 1990. Ahora se considera un cifrado de bloque "roto", debido principalmente a su pequeño tamaño de clave.

  • Triple DES- Es un esquema variante basado en aplicaciones DES repetidas. Sigue siendo un cifrado de bloque respetado pero ineficaz en comparación con los nuevos cifrados de bloque más rápidos disponibles.

  • Advanced Encryption Standard (AES) - Es un cifrado de bloque relativamente nuevo basado en el algoritmo de cifrado Rijndael que ganó el concurso de diseño AES.

  • IDEA- Es un cifrado de bloque suficientemente fuerte con un tamaño de bloque de 64 y un tamaño de clave de 128 bits. Varias aplicaciones utilizan el cifrado IDEA, incluidas las primeras versiones del protocolo Pretty Good Privacy (PGP). El uso del esquema IDEA tiene una adopción restringida debido a problemas de patentes.

  • Twofish- Este esquema de cifrado de bloques utiliza un tamaño de bloque de 128 bits y una clave de longitud variable. Fue uno de los finalistas de AES. Se basa en el cifrado de bloques anterior Blowfish con un tamaño de bloque de 64 bits.

  • Serpent- Un cifrado de bloque con un tamaño de bloque de 128 bits y longitudes de clave de 128, 192 o 256 bits, que también fue finalista del concurso AES. Es un diseño más lento pero más seguro que otros cifrados de bloques.

En las siguientes secciones, primero discutiremos el modelo de cifrado de bloques seguido de DES y AES, dos de los cifrados de bloques modernos más influyentes.