Sei sulla pagina 1di 18

Blowfish

Aguilar Uñapilco Julio


Cahui Osis Victor Fernando
Chapi Suyo Jesus
Quispe Soto Darwin
Características
● Blowfish es un cifrado de bloque de clave simétrica, diseñado en 1993 por
Bruce Schneier.
● Blowfish proporciona una buena tasa de cifrado en el software y hasta la fecha
no se ha encontrado ningún criptoanálisis efectivo del mismo. Sin embargo, el
Estándar de cifrado avanzado (AES) ahora recibe más atención.
Descripción
● Blowfish tiene un tamaño de bloque
de 64 bits y una longitud de clave
variable de 32 bits a 448 bits.
● Es un cifrado Feistel de 16 rondas y
utiliza S-boxes.
● Las adiciones de módulo
simplemente significa que hay un
valor máximo que no se puede
traspasar, Blowfish usa adiciones de
módulo 2^32, lo que significa que el
mayor valor posible es FFFFFFFF.
Estructura
● Cada operación utiliza 32 bits.
● Hay una matriz de P subclaves de
18 entradas (indicada como K en el
diagrama, para evitar confusiones
con el texto simple)
● Cuatro cajas S de 256 entradas (S0,
S1, S2 y S3).
Cada ronda r consta de 4 acciones:
● XOR la mitad izquierda (L) de los
datos con la entrada r-P-array
● Utilice los datos de del resultado
anterior como entrada para la
función F de Blowfish
● XOR la salida de la función F con la
mitad derecha (R) de los datos
● Swap L y R
La función F divide la entrada de 32 bits
en cuatro bloques de ocho bits, y utiliza
los bloques como entrada para las
S-cajas. Las cajas S aceptan una entrada
de 8 bits y producen una salida de 32
bits. Las salidas se agregan en módulo
2^32 y XOR para producir la salida final
de 32 bits.
Después de la ronda 16, deshaga el
último intercambio y XOR L con K18 y R
con K17.
Generación de Claves
El programa clave de Blowfish comienza al inicializar la matriz P y las cajas S con
valores derivados de los dígitos hexadecimales de pi, que no contienen un patrón
obvio La clave secreta es, entonces, byte a byte, ciclando la clave si es necesario,
XOR con todas las entradas P en orden. A continuación, se encripta un bloque de
cero bits de 64 bits con el algoritmo tal como está. El texto cifrado resultante
reemplaza P1 y P2. El mismo texto cifrado se encripta nuevamente con las nuevas
subclaves, y el nuevo texto cifrado reemplaza a P3 y P4. Esto continúa,
reemplazando toda la matriz P y todas las entradas de S-box. En total, el algoritmo
de cifrado Blowfish se ejecutará 521 veces para generar todas las subclaves, se
procesan aproximadamente 4KB de datos.
La planificación es la inicialización del arreglo de las subclaves haciéndolas
dependiente de la clave de usuario. Estos valores serán las subclaves para el
proceso de encriptacion y desencriptacion con Blowfish por lo tanto deben
calcularse antes de comenzar a cifrar o descifrar mensajes propios.
Proceso
Se define un arreglo de 18 secciones las cuales deben de poder almacenar 32bits
cada una ya que estas alojarán las subclaves, además se generan 4 arreglos de
256 posiciones también de 32bits cada una, estas últimas son las cajas de
substitución.

Cada sección de los arreglos (subclaves y cajas) son inicializados con una cadena
fija, esta cadena son los digitos en hexadecimal de π a excepción de su parte
entera. El orden de inicialización es:
A cada una de las subclaves se le aplica
un XOR con 32bits de la clave de
usuario.
● Una vez inicializadas las cajas y las subclaves, se cifra un mensaje nulo
(lleno de ceros)
● El paso anterior tiene 2 funciones, primero sustituye las primeras dos
subclaves y segundo entra a Blowfish para ser cifrada(con las subclaves
sustituidas).
● Se repite el paso anterior pero esta vez se sustituyen las siguientes dos
subclaves. Este paso se repite hasta que las 18 subclaves y el contenido
de las 4 cajas hayan sido sustituidas por las salidas correspondientes del
cifrado de la palabra nula.
Ventajas
● Disposición Pública

● Se ejecuta muy rápido en cualquier máquina actual

● Es compacto al momento de ser ejecutado

● Tiene una estructura sencilla que lo hace fácil de implementar

● Acepta una clave larga para hacer su cifrado


Desventajas
● Necesita un canal muy seguro para el manejo de la clave

● Si un grupo de N personas se quieren comunicar se necesita una clave para


cada pareja

● Solo es adecuado para aplicaciones que la clave no cambien mucho


Aplicación en la práctica
Blowfish es un cifrado rápido, excepto cuando se cambian las claves. Cada nueva
clave requiere un procesamiento previo equivalente al cifrado de
aproximadamente 4 kilobytes de texto, que es muy lento en comparación con otros
cifrados de bloque. Esto evita su uso en ciertas aplicaciones, pero no es un
problema en otras.

En una aplicación, el cambio lento de clave de Blowfish es en realidad un


beneficio: el método de hashing de contraseña utilizado en OpenBSD usa un
algoritmo derivado de Blowfish que hace uso del programa de clave lenta; la idea
es que el esfuerzo de cómputo adicional requerido ofrezca protección contra
ataques de diccionario. Ver estiramiento clave.
Aplicación en la práctica
Blowfish tiene una huella de memoria de poco más de 4 kilobytes de RAM. Esta
restricción no es un problema, incluso para computadoras de escritorio y portátiles
más antiguas, aunque impide su uso en los sistemas integrados más pequeños,
como las primeras tarjetas inteligentes.
Aplicación en la práctica
Blowfish fue uno de los primeros cifrados de bloque seguros que no están sujetos
a ninguna patente y, por lo tanto, están disponibles gratuitamente para cualquier
persona. Este beneficio ha contribuido a su popularidad en el software
criptográfico.

Bcrypt es una función de hashing de contraseñas que, combinada con un número


variable de iteraciones ("costo" de trabajo), explota la costosa fase de
configuración de claves de Blowfish para aumentar la carga de trabajo y la
duración de los cálculos de hash, lo que reduce aún más las amenazas de los
ataques de fuerza bruta.
Bibliografía
● Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish), Bruce Schneier, Cambridge
Security Workshop Proceedings.
● Blowfish encryption, http://www.unige.ch/medecine/nouspikel/ti99/blowfish.htm

Potrebbero piacerti anche