Blowfish
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]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.
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]
- Este artícul conté una traducció derivada de «Blowfish» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.