Diferencia entre revisiones de «Blowfish»

Contenido eliminado Contenido añadido
Oscarif (discusión · contribs.)
Línea 15:
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<supsub>17</supsub> y P<supsub>18</supsub> al bloque texto codificado, y así sucesivamente se usan las P-entradas en orden reversivo.
 
La generación de llaves comienza inicializando los P-arreglos y las cajas-S con los valores derivados de los dígitos hexadecimales de pi, los cuales no contienen patrones obvios. A la llave secreta se le aplica un XOR con las P-entradas en orden (ciclando la llave si es necesario). Un bloque de 64 bits de puros ceros es cifrado con el algoritmo como se indica. El texto codificado resultante reemplaza a P<supsub>1</supsub> y P<supsub>2</supsub>. Entonces el texto codificado es cifrado de nuevo con la nuevas subllaves, P<supsub>3</supsub> y P<supsub>4</supsub> son reemplazados por el nuevo texto codificado. Esto continúa, reemplazando todas las entradas del P-arreglo y todas las entradas de las cajas-S. En total, el [[algoritmo]] de cifrado Blowfish correrá 521 veces para generar todas las subllaves, cerca de 4KB de datos son procesados.
 
{{Cifrado por bloques}}