El esquema básico de un cifrado en bloque se representa como sigue –
Un cifrado en bloque toma un bloque de bits de texto plano y genera un bloque de bits de texto cifrado, generalmente del mismo tamaño. El tamaño del bloque es fijo en el esquema dado. La elección del tamaño del bloque no afecta directamente a la potencia del sistema de cifrado. La fuerza del cifrado depende de la longitud de la clave.
Tamaño del bloque
Aunque cualquier tamaño de bloque es aceptable, hay que tener en cuenta los siguientes aspectos a la hora de seleccionar el tamaño de un bloque.
-
Evite un tamaño de bloque muy pequeño – Digamos que un tamaño de bloque es de m bits. Entonces las posibles combinaciones de bits de texto plano son 2m. Si el atacante descubre los bloques de texto plano correspondientes a algunos bloques de texto cifrado previamente enviados, entonces el atacante puede lanzar un tipo de «ataque de diccionario» construyendo un diccionario de pares de texto plano/texto cifrado enviados usando esa clave de cifrado. Un tamaño de bloque mayor dificulta el ataque, ya que el diccionario debe ser mayor.
-
No tener un tamaño de bloque muy grande – Con un tamaño de bloque muy grande, el cifrado se vuelve ineficiente para operar. Dichos textos planos tendrán que ser rellenados antes de ser encriptados.
-
Múltiplos de 8 bits – 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 ordenador manejan datos en múltiplos de 8 bits.
Relleno en el cifrado de bloques
Los cifradores de bloques procesan bloques de tamaños fijos (digamos 64 bits). La longitud de los textos planos no suele ser un múltiplo del tamaño del bloque. Por ejemplo, un texto plano de 150 bits proporciona dos bloques de 64 bits cada uno con un tercer bloque de saldo 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 de bloque del esquema. En nuestro ejemplo, a los 22 bits restantes hay que añadir 42 bits redundantes adicionales para obtener un bloque completo. El proceso de añadir bits al último bloque se denomina relleno.
Demasiado relleno hace que el sistema sea ineficiente. Además, el relleno puede hacer que el sistema sea inseguro a veces, si el relleno se hace siempre con los mismos bits.
Esquemas de cifrado por bloques
Hay un gran número de esquemas de cifrado por bloques que están en uso. Muchos de ellos son conocidos públicamente. A continuación se enumeran los cifrados por bloques más populares y destacados.
-
Estándar de cifrado digital (DES): el popular cifrado por bloques de la década de 1990. Actualmente se considera un cifrado por bloques «roto», debido principalmente a su pequeño tamaño de clave.
-
Triple DES – Es un esquema variante basado en aplicaciones repetidas de DES. Sigue siendo un cifrado de bloques respetado pero ineficiente en comparación con los nuevos cifrados de bloques más rápidos disponibles.
-
Estándar de cifrado avanzado (AES) – Es un cifrado de bloques relativamente nuevo basado en el algoritmo de cifrado Rijndael que ganó el concurso de diseño de AES.
-
IDEA – Es un cifrado de bloques 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 por bloques utiliza un tamaño de bloque de 128 bits y una clave de longitud variable. Fue uno de los finalistas del AES. Se basa en el anterior cifrado por bloques Blowfish con un tamaño de bloque de 64 bits.
-
Serpent – Un cifrado por bloques 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 más lento pero tiene un diseño más seguro que otros cifrados por bloques.
En las siguientes secciones, hablaremos primero del modelo de cifrado por bloques, seguido de DES y AES, dos de los cifrados por bloques modernos más influyentes.