Blowfish para niños
Blowfish es un tipo de sistema de seguridad digital, conocido como codificador de bloques simétricos. Fue creado por el experto en seguridad Bruce Schneier en 1993. Este sistema se usa en muchos programas y productos para proteger información. Hasta ahora, no se han encontrado formas fáciles de romper la seguridad de Blowfish. Sin embargo, hoy en día se usan más otros sistemas que manejan bloques de información más grandes, como AES y Twofish.
Schneier diseñó Blowfish para que fuera un sistema de seguridad que cualquiera pudiera usar. Quería que reemplazara a sistemas más antiguos como DES y evitar los problemas que tenían otros métodos. En ese tiempo, muchos sistemas de seguridad eran propiedad de empresas o gobiernos. Schneier dijo que Blowfish no tiene patentes y que cualquiera puede usarlo libremente.
¿Cómo funciona el algoritmo Blowfish?
Blowfish trabaja con bloques de información de 64 bits. Puede usar "llaves" de seguridad que van desde los 32 bits hasta los 448 bits de largo. Es un sistema que repite su proceso 16 veces, siguiendo una estructura llamada Red de Feistel. También usa algo llamado "Cajas-S" que cambian según la llave de seguridad. Su estructura es parecida a la de CAST-128, que usa Cajas-S fijas.
El diagrama muestra cómo funciona Blowfish. Cada línea en el diagrama representa 32 bits de información. El algoritmo usa dos grupos de "subllaves": un grupo llamado "P" con 18 entradas y cuatro "Cajas-S" con 256 entradas cada una. En cada repetición del proceso, se usa una entrada del grupo P. Después de la última repetición, a cada mitad del bloque de datos se le aplica una operación especial con las dos entradas del grupo P que no se usaron.
La función principal de Blowfish divide la información de 32 bits en cuatro partes de 8 bits. Luego, usa estas partes como entradas para las Cajas-S. Las salidas de estas Cajas-S se combinan con una operación especial para producir el resultado final de 32 bits.
Como Blowfish usa la estructura Feistel, se puede revertir el proceso para descifrar la información. Esto se hace aplicando las operaciones en el orden inverso.
¿Cómo se crean las llaves de seguridad?
El proceso para crear las llaves de seguridad de Blowfish empieza con unos valores especiales. Estos valores se obtienen de los dígitos de pi, que no tienen patrones fáciles de adivinar. Luego, la llave secreta que tú eliges se combina con las entradas del grupo P. Si la llave secreta es más corta, se repite hasta cubrir todas las entradas.
Después, un bloque de 64 bits lleno de ceros se cifra usando el algoritmo. El resultado de este cifrado reemplaza las primeras dos entradas del grupo P. Luego, este nuevo resultado se cifra de nuevo, y el nuevo resultado reemplaza las siguientes dos entradas del grupo P. Este proceso se repite hasta que todas las entradas del grupo P y todas las entradas de las Cajas-S se han reemplazado. En total, el algoritmo de Blowfish se ejecuta 521 veces para crear todas las subllaves, procesando aproximadamente 4 kilobytes de datos.
Véase también
En inglés: Blowfish (cipher) Facts for Kids