Está en la página 1de 16

BLOWFISH

METODO SIMETRICO

Arroyo Bautista Alexis Raúl


García Ruiz Fabián
Valencia Pérez Ricardo
Vargas Luna Carlos Arturo
Historia
Es un algoritmo de bloques simétrico
desarrollado por Bruce Shneier y dado a
conocer en 1993.
CARACTERÍSTICAS
Rápido: Cifra datos en microprocesadores
de 32 bits a una tasa de 18 ciclos de reloj
por byte.
Compacto: Puede correr en un espacio
de memoria inferior a los 5K.
CARACTERÍSTICAS
Sencillo: Tiene una estructura sencilla que
lo hace fácil de implementar.
Variables seguras: La longitud de la clave
es variable y puede ser hasta de 448 bits,
lo que permite negociar entre trabajar a
alta velocidad y una alta seguridad.
CARACTERÍSTICAS
Opera con bloques de 64 bits. Toma 64
bits de texto plano y entrega 64 bits de
texto cifrado.
Utiliza claves que van desde 32 hasta 448
bits(14 bloques de 32 bits).
Lo que hace es generar 18 subclaves de
32 bits y 4 de sustitución(S-Box) de 8 por
32.
CARACTERÍSTICAS
En total 1024 juegos de 32 bits cada uno,
además de utilizar arreglos de
permutación (P-Box) donde las subclaves
son almacenadas.
Es un codificador de 16 rondas Feistel y
usa llaves que dependen de las Cajas-S.
Tiene una estructura similar a CAST-128,
el cual usa Cajas-S fijas.
CARACTERÍSTICAS
Los bloques iniciales de datos se dividen
en 2 grupos del mismo tamaño (32 bits).
Estos se procesan en 16 rondas,
empleando en cada iteración una subclave
P diferente (se utilizan 18 en total).
Se utilizan 2 operaciones básicas, la XOR
y la adición.
Funcionamiento de “F”
En primera instancia se ingresa una serie de
32 bits la cual se divide en 4 bloque de 8
bits.
Ahora se procede a sustituir con las S-Box.
Una vez realizado esto se comienza
realizando una suma entre el resultado de la
S-Box 1 y la S-Box 2.
Después se realiza una XOR entre el
resultado de la suma anterior y el resultado
de la S-Box 3.
Funcionamiento de “F”
Por último el resultado anterior se suma
con el resultado de la S-Box 4.Finalizando
la función F.
Generación de las subclaves
1. Inicializar el primer P-matriz y luego los
cuatro S-cajas, con el fin, con una cuerda fija.
Esta cadena se compone de los dígitos
hexadecimales de pi (menos los 3 primeros).
3,14159265358979323846264338 ...
Por ejemplo:
P1 = 0x243f6a88
P2 = 0x85a308d3
P3 = 0x13198a2e
P4 = 0x03707344
Generación de las subclaves
2. XOR P1 con los primeros 32 bits de
la clave, P2 XOR con el segundo de 32
bits de la clave, y así sucesivamente para
todos los bits de la clave.
En total, 521 iteraciones son necesarias
para generar todas las subclaves
necesarias. Las aplicaciones pueden
almacenar las subclaves en lugar de
ejecutar este proceso de derivación varias
veces.
Funcionamiento general
Blowfish es un algoritmo que consta de 16
rondas.
La entrada es un elemento de datos de 64
bits, x.
Divide x en dos mitades de 32 bits: XL, XR
Para i = 1 a 16:
XL = xL XOR Pi
xR = F (x1…16) XOR xR
Intercambio XL y XR
Funcionamiento general
Siguiente i
Intercambio XL y XR.
xR = xR XOR P17
XL = xL XOR P18
Recombinarse XL y
XR
Funcionamiento general
Divide xL en cuatro cuartos de ocho
bits:
F (xl) = ((S1+S2)XOR S3)+S4

También podría gustarte