Anar al contingut

Blowfish

De L'Enciclopèdia, la wikipedia en valencià

En criptografia, Blowfish és un codificador de blocs simètrics, dissenyat per Bruce Schneier en 1993 i inclós en un gran número de conjunts de codificadores i productes de sifrat. No s'han trobat tècniques de criptoanálisis efectives contra el Blowfish. No obstant, s'ha donat més atenció a la decodificación de blocs en blocs més grans, com AES i Twofish.cita requerida

Schneier va dissenyar Blowfish com un algoritme d'us general, que intentava reemplaçar a l'antic DES i evitar els problemes associats en atres algoritmes. Al mateix temps, molts atres dissenys eren propietat privada, patentats o els guardava el govern. Schneier va declarar “Blowfish no té palés, i aixina es quedarà en els demés continents. L'algoritme està a disposició del públic, i pot ser usat lliurement per qualsevol”.

L'algoritme

[editar | editar còdic]
Archiu:Blowfish structure.svg
Diagrama de Blowfish

Blowfish usa blocs de 64 bits i claus que van des dels 32 bits fins a 448 bits. És un codificador de 16 rondes Feistel i usa claus que depenen de les Caixes-S. Té una estructura similar a CAST-128, el qual usa Caixes-S fixes.

El diagrama mostra l'acció de Blowfish. Cada llínea representa 32 bits. L'algoritme guarda 2 arrays de subclaves: El array P de 18 entrades i 4 caixes-S de 256 entrades. Una entrada del array P és usada cada ronda, despuix de la ronda final, a cada mitat del bloc de senyes se li aplica un XOR en una de les 2 entrades del array P que no han segut utilisades.

La funció dividix les entrades de 32 bits en 4 blocs de 8 bits, i usa els blocs com a entrades per a les caixes-S. Les eixides deuen estar en mòdul 232 i se'ls aplica un XOR per a produir l'eixida final de 32 bits.

Archiu:BlowfishFuncionF.png
Diagrama de la funció F de Blowfish

Degut a que Blowfish està en la ret Feistel, pot ser invertit aplicant un XOR entre P17 i P18 al bloc text codificat, i aixina successivament s'usen les P-entrades en orde reversivo.

La generació de claus comença inicializando els P-arrays i les caixes-S en els valors derivats dels dígits hexadecimals de pi, els quals no contenen patrons obvis. A la clau secreta se li aplica un XOR en les P-entrades en orde (ciclando la clau si és necessari). Un bloc de 64 bits de purs zeros és sifrat en l'algoritme com s'indica. El text codificat resultant reemplaça a P1 i P2. Llavors el text codificat és sifrat de nou en les noves subclaves, P3 i P4 són reemplaçats pel nou text codificat. Açò continua, reemplaçant totes les entrades del P-array i totes les entrades de les caixes-S. En total, l'algoritme de sifrat Blowfish correrà 521 voltes per a generar totes les subclaves, prop de 4KB de senyes són processats.

Referències

[editar | editar còdic]