Tecnología

Inicio

Blowfish algoritmo simétrico de cifrado

Blowfish es un algoritmo simétrico de cifrado o, en otras palabras, una fórmula matemática que utiliza la misma clave secreta para cifrar y descifrar los mensajes. Blowfish fue diseñada por uno de los principales criptógrafos del mundo, Bruce Schneier, en 1993 como una alternativa a la existente, pero menos seguro, algoritmos tales como Data Encryption Standard (DES).

Historia

Bruce Schneier ha diseñado específicamente el algoritmo Blowfish como una alternativa sin licencia, sin copyright de DES y presentó por primera vez al taller Algoritmos de Cambridge en 1994. Desde ese momento, Blowfish ha sido ampliamente probado por la comunidad criptográfica y comprobar que es razonablemente seguro.

bloques de cifrado

Blowfish es lo que se conoce como un cifrado de bloques de 64 bits, lo que significa que el algoritmo y la clave de cifrado se aplican a un bloque de datos de 64 bits, u 8 bytes, de largo, en lugar de bits individuales. Cada bloque de longitud fija de datos sin cifrar, conocidos como texto sin formato, se transforma en un bloque de datos cifrados, o texto cifrado, de la misma longitud. El tamaño de bloque de 64 bits es corto para los estándares modernos y, mientras que el algoritmo Blowfish es perfectamente adecuado para aplicaciones de consumo estándar, tales como el correo electrónico, es menos útil para encriptar grandes volúmenes de datos, tales como las encontradas en el archivado de datos.

Clave de encriptación

El algoritmo de cifrado simétrico Blowfish utiliza una clave de cifrado de longitud variable, que puede variar en longitud de 32 bits a 448 bits, con un valor predeterminado de 128 bits. Cuanto más tiempo la clave de cifrado, mayor es el número de combinaciones posibles y más fuerte es el cifrado. El algoritmo Blowfish se compone de dos partes: una parte clave de expansión, en el que la clave de cifrado se convierte en un conjunto de subclaves, y una parte de cifrado de datos. Por el contrario, DES utiliza una clave de 64 bits, y sólo 56 bits se genera realmente al azar y usada por el algoritmo de cifrado; los 8 bits restantes se utilizan para la corrección de errores.

Operación

El algoritmo Blowfish realiza 16 iteraciones, o rondas, cada uno de los cuales consta de una permutación dependiente de la clave de cifrado y una sustitución dependiente de la clave de cifrado y los datos. Cada operación es un EXCLUSIVA (XOR) lógico - y además en palabras de 32 bits - que devuelve verdadero si, pero no ambos, de sus operandos son verdaderos. Una implementación típica del algoritmo Blowfish puede cifrar o descifrar un bloque de 64 bits de datos en aproximadamente 12 ciclos de reloj, mientras que un mensaje de 128 bits requiere 24 ciclos de reloj y así sucesivamente en forma lineal.