Blowfish

Na criptografia, Blowfish é uma cifra simétrica de blocos que pode ser usado em substituição ao DES, algoritmo que possuía em torno de 19 anos de uso,e era vulnerável a ataques por força bruta devido ao tamanho de sua chave (56 bits), ou em substituição ao IDEA. O Blowfish apresenta uma rede de Feistel de 16 iterações com tamanho de bloco de 64-bits, uma chave que pode variar entre 32 a 448-bits, e S-boxes altamente chaves-dependentes, tornando-o ideal para aplicações tanto domésticas, quanto comerciais.[1] O Blowfish foi desenvolvido em 1993 por Bruce Schneier como uma alternativa grátis mais rápida para os algorítmos criptográficos existentes. Desde então ele vem sendo analisado de forma considerável e está conquistando a aceitação do mercado como um algoritmo forte. O Blowfish não é patenteado, tem sua licença grátis e está a disposição para todos.

O artigo original do Blowfish foi apresentado no "First Fast Software Encryption Workshop" ocorrido em Cambridge, NY, EUA. Os resultados do workshop foram publicados por Springer-Verlang, "Lecture Notes in Computer Science" #809, 1994). A edição de abril de 1994 de "Dr. Dobb's Journal" também tratou expôs a proposta de Bruce Schneier. "Blowfish -- One Year Later" foi publicada em Setembro de 1995 em outra edição de "Dr. J.R.' Bob' Dobb's Journal".

Muitos estudiosos em criptografia examinaram o Blowfish, entretanto, ainda são poucos os resultados publicados. Serge Vaudenay examinou chaves fracas no Blowfish: existe uma classe de chaves que podem ser detectadas - mas não "quebradas" - no Blowfish com variantes de 14 iterações ou menos.

Qualquer pessoa pode obter uma cópia do código-fonte do Blowfish a partir da Internet e fazer uso em suas aplicações. Não há regras de uso do código. Bruce Schneier pede, somente, que seja notificado de aplicações comerciais para que possam ser listadas em sua página na Internet.

Existem duas derivações do Blowfish:

  1. Twofish: é uma cifra de blocos simétrica projetado e desenvolvido em 1998 por Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, e Niels Ferguson. O algoritmo foi um dos cinco finalistas no AES (Advanced Encryption Stantard contest), ele é composto por blocos de 128-bits de tamanho e chaves de tamanho até 256-bits, assim como seu predecessor, o Twofish possui S-boxes chaves dependentes, é composto por Redes de Feistel com uma função-F bijetora feita por quatro S-boxes de 8-bits, uma matrix de 4x4 de distância de separação máxima sobre GF(2) (MDS-matrix), uma pseudo-transformação de Hadamard (PHT), rotação bit a bit, e um organizador de chaves interno complexo.
  2. Threefish: é também uma cifra de blocos simétrica projetado e desenvolvido em 2008 por Bruce Schneier, Niels Ferguson, Stefan Lucks, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon Callas, e Jesse Walker. O algoritmo foi criado para fazer parte do "Skein Hash Function" um algoritmo competidor no "NIST hash function competition". Definido por blocos de tamanho 256, 512, e 1024-bits, com chave do tamanho do bloco, valor "tweak" de 128 bits para qualquer bloco, não possuindo nenhuma S-Box, e sim uma função simples não linear de mistura chamada MIX que opera em 2 palavras de 64-bits cada. A função MIX consiste em uma simples adição, uma rotação por uma constante, e um XOR. Threefish-256 e Threefish-512 consiste de 72 iterações, já o Threefish-1024 consiste de 80 iterações. O algoritmo consiste de apenas 3 operações em palavras de 64-bits: XOR, ADD e rotações de tamanho fixo.
  1. Schneier, Bruce. «The Blowfish Encryption Algorithm». Schneier on Security. Consultado em 1 de junho de 2016 

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy