Blowfish: Diferenzas entre revisións

Contido eliminado Contido engadido
ZéroBot (conversa | contribucións)
m r2.7.1) (Bot: Engado: zh:Blowfish (密码学)
arranxiños ortográficos
Liña 1:
En [[criptografía]], '''Blowfish''' é un codificador de [[bloques simétricos]], deseñado por [[Bruce Schneier]] no 1993 e incluidoincluído nun gran número de conxuntos de codificadores e produtos de cifrado. Mentres que ningún analizador de cifrados de Blowfish efectivo foi atopado hoxe en día, deuselledéuselle máis atención da decodificación de bloques con bloques máis grandes, como [[AES]] e [[Twofish]].
 
Schneier deseñódeseñou Blowfish como un algoritmo de uso xeral, intentando remplazarsubstituír óo antigo [[DES]] e libre de problemas asociados con outros algoritmos. Ó mesmo tempo, moitos outros deseños eran propietarios, patentados ou gadadosgardados polo goberno. Schneier declarou “Blowfish non ten patente, e así se quedará nos demáisdemais continentes. O algoritmo está a disposición de dominio público, e pode ser usado libremente por calquera”.
 
==Funcionamento do algoritmo==
[[Ficheiro: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 estrutura 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 aplicaselleaplícaselle 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 aplicasellesaplícaselles un XOR para producir a saída final de 32 bits.
 
[[Ficheiro: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úsanse 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.
 
A xeración de chaves comeza inicializandoiniciando os P-arranxos e as caixas-S cos valores derivados dos díxitos hexadecimaleshexadecimais de pi, os cales non conteñen patróns obvios. A chave secreta aplicaselleaplícaselle 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 asubstitúe 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 remplazadassubstituídas polo novo texto codificado. Isto continúa, reemplazandosubstituíndo 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.
 
[[Categoría:Criptografía]]