Está en la página 1de 11

BLOWFISH

BLOWFISH

 Codificador de bloques simétricos.

 Diseñado por Bruce Schneider en 1993.

 No tiene patente, esta a disposición del público, y puede


ser usado libremente por cualquiera.
BLOWFISH
 Algoritmo de tipo Feistel, de clave variable. Cifra
bloques de texto de 64 bits, el tamaño de la clave va de
los 32 a los 448 bits; se generan 18 subclaves de 32 bits
y cuatro cajas-S de 8*32 bits, en total 4168 bytes.
CARACTERÍSTICAS.

 Usa una función F con las cuatro cajas-S y operaciones


básicas de suma y XOR
CARACTERÍSTICAS.
 La información se agrupa en bloques de 64 bits.

 El tamaño de la clave es variable, de 32 bits a un


máximo de 448 bits.

 Utiliza subclaves que son un hash unidireccional de la


clave principal.

 Las subclaves se calculan usando el mismo algoritmo


Blowfish
CARACTERÍSTICAS.
 Consiste en un número variable de iteraciones. Para
aplicaciones con una clave de pequeño tamaño debería
ser posible reducir el número de iteraciones sin pérdida
de la seguridad.

 No tiene estructuras lineales que reduzcan la


complejidad de una búsqueda exhaustiva (ataque por
fuerza bruta)

 Posee dos partes: una primera llamada “Expansión de


clave” y otra llamada “Cifrado de datos”.
CARACTERÍSTICAS.
 La “expansión de clave” convierte una clave de cómo
máximo 448 bits en varios arrays de subclaves haciendo
un total de 4168 bytes.

 El “Cifrado de datos” se produce haciendo una red de


16 rondas de Fesitel. Cada ronda consiste en una
permutación dependiente de la claves y una sustitución
dependiente de los datos y clave.
CARACTERÍSTICAS.
 Todas las operaciones son XORs y sumas en palabras de
32 bits. La única operación suma son 4 arrays indexados
de datos por ronda.

 Es compacto porque solo necesita 5Kb de memoria.

 Es muy rápido, 5 veces más que DES.

 Las cajas-S y arreglos-P dependen de la clave a utilizar


GENERACIÓN DE SUBCLAVES
1. Inicializar la matriz-P y, a continuación las cuatro cajas-
S, en orden, con una cadena fija.

Esta cadena se sugiere sea los decimales en hexadecimal de


pi (menos los 3 primeros)

2. Realizar XOR de P1 con los primeros 32 bits de la clave,


P2 XOR con la segunda parte de 32 bits de la clave, y
así sucesivamente. Repitiendo la clave de ser necesario.
GENERACIÓN DE SUBCLAVES

3. Cifrar una cadena de ceros con el algoritmo Blowfish.


Utilizando el resultado para sustituir a P1 y P2.

4. Ese mismo resultado cifrarlo, además, con el algoritmo


Blowfish para generar P3 y P4

5. Continuar el proceso hasta sustituir todas las entradas de


la matriz-P
EXPLICACIÓN.

También podría gustarte