Blowfish

En criptografía, Blowfish es un cifrado de bloque simétrico con clave, creado en 1993 por Bruce Schneier y que desde 1993 se ha incluido en un gran número de productos de cifrado. Blowfish tiene una buena tasa de cifrado en software y hasta 2008 no se ha encontrado ningún modelo de ataque criptoanalítico del mismo. Sin embargo, el algoritmo de cifrado por bloques AES es ahora objeto de mayor atención.

Schneier creó Blowfish como un algoritmo de uso general, para sustituir al antiguo algoritmo DES y eliminar los problemas y dificultades de otros algoritmos de cifrado. En el momento en que se lanzó Blowfish, muchos otros algoritmos estaban patentados o eran secretos. Schneier ha dicho que "Blowfish no está patentado, y seguirá estándolo en todos los países. El algoritmo pasa a ser de dominio público y puede ser utilizado libremente por cualquiera".

Las principales características del diseño incluyen cajas S dependientes de la clave y un programa de claves muy complejo. Blowfish es uno de los cifrados por bloques más rápidos que se utilizan, excepto cuando se cambian las claves. Cada nueva clave debe ser preprocesada, lo que lleva el mismo tiempo que cifrar unos 4 kilobytes de texto, lo que es muy lento comparado con otros cifradores de bloques. Esto impide su uso en ciertas aplicaciones (como en los sistemas integrados más pequeños, como las primeras tarjetas inteligentes), pero no es un problema en otras aplicaciones. En una de las aplicaciones, de hecho, es bueno: el método de cascado de contraseñas utilizado en OpenBSD utiliza un algoritmo que proviene de Blowfish y que hace uso de la lentitud de la clave; la idea es que el esfuerzo computacional extra requerido da protección contra los ataques de diccionario. Véase el fortalecimiento de la clave.

Blowfish tiene un tamaño de bloque de 64 bits y una longitud de clave variable de 0 a 448 bits Es un cifrado Feistel de 16 rondas y utiliza grandes cajas S dependientes de la clave. Su estructura es similar a la de CAST-128, que utiliza cajas S fijas.

En 1996, Serge Vaudenay descubrió un ataque de texto plano conocido que necesita 2 textos 8r + 1planos conocidos para romperse, donde r es el número de rondas. Además, también encontró una clase de claves débiles que pueden detectarse y romperse mediante el mismo ataque con sólo 24r + 1 textos planos conocidos. Este ataque no puede utilizarse contra el Blowfish normal, ya que supone el conocimiento de las cajas S dependientes de la clave. Vincent Rijmen, en sus trabajos de doctorado, introdujo un ataque diferencial de segundo orden que puede romper cuatro rondas y no más. Todavía no se conoce ninguna forma de romper las 16 rondas completas, aparte de una búsqueda por fuerza bruta. En 1996 se encontró un error de extensión de signos en uno de los códigos C publicados.

No hay ningún buen criptoanálisis de la versión completa de Blowfish conocido públicamente hasta 2008. Sin embargo, en 2007, Bruce Schneier señaló que, aunque Blowfish sigue en uso, recomendaba utilizar el nuevo algoritmo Twofish en su lugar

Páginas relacionadas

Preguntas y respuestas

P: ¿Qué es Blowfish?


R: Blowfish es un cifrado simétrico por bloques con clave que fue creado en 1993 por Bruce Schneier. Se ha incluido en muchos productos de cifrado desde entonces.

P: ¿Para qué se creó Blowfish?


R: Blowfish se creó como algoritmo de uso general para sustituir al antiguo algoritmo DES y eliminar los problemas y dificultades de otros algoritmos de cifrado.

P: ¿Qué longitud puede tener la clave para Blowfish?


R: La longitud de la clave para Blowfish puede oscilar entre 0 y 448 bits.

P: ¿Cuáles son algunas de las características del diseño de Blowfish?


R: Algunas características del diseño incluyen cajas S dependientes de la clave y un programa de claves muy complejo.

P: ¿Se conoce algún criptoanálisis de la versión de ronda completa de Blowfish?


R: A fecha de 2008, no se conoce ninguna forma de romper las 16 rondas completas aparte de una búsqueda por fuerza bruta.

P: ¿Qué tipo de ataque encontró Serge Vaudenay contra Blowfish?


R: Serge Vaudenay encontró un ataque de texto plano conocido que necesita 28r + 1 textos planos conocidos para romperse, donde r es el número de rondas. También encontró una clase de claves débiles que podían ser detectadas y rotas por este mismo ataque con sólo 24r + 1 textos planos conocidos.

P: ¿Recomienda Bruce Schneier utilizar ahora Twofish en lugar de Blowfish?


R: Sí, Bruce Schneier recomienda utilizar Twofish en lugar de Blowfish ahora debido a sus medidas de seguridad mejoradas en comparación con algoritmos más antiguos como DES o incluso más nuevos como AES.

AlegsaOnline.com - 2020 / 2023 - License CC3