Diferencia entre revisiones de «Blowfish»

Contenido eliminado Contenido añadido
Oscarif (discusión · contribs.)
Oscarif (discusión · contribs.)
Sin resumen de edición
Línea 4:
 
== El Algoritmo ==
[[Image:DiagramaBlowfish.png|right|thumbnail|216px|Diagrama de Blowfish]]
 
Blowfish usa bloques de 64 [[bit|bits]] y llaves que van desde los 32 bits hasta 448 bits. Es un codificador de 16 rondas [[Red de Feistel|Feistel]] y usa llaves que dependen de las Cajas-S. Tiene una estructura similar a [[CAST-128]], el cual usa Cajas-S fijas.
 
== Diagrama de Blowfish ==
 
El diagrama muestra la acción de Blowfish. Cada línea representa 32 bits. El algoritmo guarda 2 arreglos de subllaves: El arreglo P de 18 entradas y 4 cajas-S de 256 entradas. Una entrada del arreglo P es usada cada ronda, después de la ronda final, a cada mitad del bloque de datos se le aplica un [[Lógica binaria|XOR]] con uno de las 2 entradas del arreglo P que no han sido utilizadas.
 
La función divide las entrada de 32 bits en 4 bloques de 8 bits, y usa los bloques como entradas para las cajas-S. Las salidas deben estar en módulo 2<sup>32</sup> y se les aplica un XOR para producir la salida final de 32 bits.
== Diagrama de Blowfish función F ==
 
[[Image:BlowfishFuncionF.png|left|thumbnail|250px|Diagrama de la función F de Blowfish]]
La función divide las entrada de 32 bits en 4 bloques de 8 bits, y usa los bloques como entradas para las cajas-S. Las salidas deben estar en módulo 2<sup>32</sup> y se les aplica un XOR para producir la salida final de 32 bits.
 
Debido a que Blowfish esta en la red Feistel, puede ser invertido aplicando un XOR entre P<sub>17</sub> y P<sub>18</sub> al bloque texto codificado, y así sucesivamente se usan las P-entradas en orden reversivo.