Blowfish: Diferenzas entre revisións

Contido eliminado Contido engadido
Raposo (conversa | contribucións)
Sen resumo de edición
 
Raposo (conversa | contribucións)
Sen resumo de edición
Liña 2:
 
Schneier deseñó Blowfish como un algoritmo de uso xeral, intentando remplazar ó antigo [[DES]] e libre de problemas asociados con outros algoritmos. Ó mesmo tempo, moitos outros deseños eran propietarios, patentados ou gadados polo goberno. Schneier declarou “Blowfish non ten patente, e así se quedará nos demáis continentes. O algoritmo está a disposición de dominio público, e pode ser usado libremente por calqueira”.
 
{{enprogreso}}
==Funcionamento do algoritmo ==
[[Image:DiagramaBlowfish.png|right|thumbnail|216px|Diagrama de Blowfish]]
Blowfish usa bloques de 64 [[bit|bits]] e [[chave (criptografía)|chaves]] que van desde os 32 bits ata os 448 bits. É un codificador de 16 rondas [[Red de Feistel|Feistel]] e usa chaves que dependen das Caixas-S. Teñen unha estructura similar a [[CAST-128]], o cal usa Caixas-S fixas.
 
O diagrama amosa a acción de Blowfish. Cada liña representa 32 bits. O algoritmo garda 2 arranxos de subchaves: O arranxo P de 18 entradas e 4 caixas-S de 256 entradas. Unha entrada do arranxo P é usada cada ronda, despois da ronda final, a cada metade do bloque de datos aplicaselle un [[Lóxica binaria|XOR]] cunha das 2 entradas do arranxo P que non foron utilizadas.
 
A función divide as entradas de 32 bits en 4 bloques de 8 bits, e usa os bloques como entradas para as caixas-S. As saídas deben estar no módulo 2<sup>32</sup> e aplicaselles un XOR para producir a saída final de 32 bits.
 
[[Image:BlowfishFuncionF.png|left|thumbnail|250px|Diagrama da función F de Blowfish]]
 
Debido a que Blowfish esta na rede Feistel, pode ser invertido aplicando un XOR entre P<sub>17</sub> e P<sub>18</sub> ao bloque texto codificado, e así sucesivamente usanse as P-entradas en orde reversivo.
 
A xeración de chaves comeza inicializando os P-arranxos e as caixas-S cos valores derivados dos díxitos hexadecimales de pi, os cales non conteñen patróns obvios. A chave secreta aplicaselle un XOR cas P-entradas en orde (ciclando a llave se é necesario). Un bloque de 64 bits de puros ceros é cifrado co algoritmo como se indica. O texto codificado resultante reemplaza a P<sub>1</sub> e P<sub>2</sub>. Entón o texto codificado é cifrado de novo cas novas subchaves, P<sub>3</sub> e P<sub>4</sub> son remplazadas polo novo texto codificado. Isto continúa, reemplazando todas as entradas do P-arranxo e todas as entradas das caixas-S. En total, o [[algoritmo]] de cifrado Blowfish correrá 521 veces para xerar todas as subchaves, cerca de 4KB de datos son procesados.
 
 
[[Category:Criptografía]]
 
[[de:Blowfish]]
[[en:Blowfish (cipher)]]
[[es:Blowfish]]
[[fr:Blowfish]]
[[it:Blowfish]]
[[nl:Blowfish-encryptiealgoritme]]
[[pl:Blowfish (kryptografia)]]
[[th:โบลว์ฟิช]]