lang=pt|thumb|upright=1.35|right|alt=Illustration of the sponge construction |A construção esponja para funções de hash. pi são blocos da string de entrada, zi são blocos do hash de saída.
A Função Esponja ou Construção Esponja (do inglês, Sponge Function or Sponje Construction) é uma função de mapeamento que recebe como entrada dados de comprimento variável e gera como saída uma mensagem também de comprimento variável, essa função baseia-se em uma permutação (ou transformação) de comprimento fixo e em uma regra de preenchimento. A função esponja pode ser usada para modelar ou implementar a maioria das primitivas criptográficas, incluindo função hash, códigos de autenticação de mensagens, cifra de fluxo, cifra de bloco, gerador de números pseudoaleatórios e autenticação.
A construção
A construção esponja é mostrada na figura. Primeiramente, a string de entrada é completada com uma regra de preenchimento e separada em blocos de r bits. Então os b bits de estado são inicializados com zero e a construção esponja prossegue em duas fases: Na fase de absorção, mais a esquerda, os blocos de entrada de r-bits passam por uma operação XOR nos primeiros r do estado, alternando-se com aplicações da função f. Quando todos os blocos de entrada são processados, a construção esponja muda para a fase de compressão. Na fase de compressão, os primeiros r bits do estado são retornados como blocos de saída, alternando-se com aplicações da função f. O número de blocos de saída é escolhido livremente pelo usuário.
Tipos de Funções Esponja Keccak; Quark; Photon; Spongent; Gluon.
Keccak Keccak é uma família de funções esponja, a família que ganhou maior notoriedade por ter vencido o concurso promovido pelo NIST para escolher a nova função de hash SHA-3. Keccak é uma função de hash criptográfica desenvolvida por Guido Bertoni, Joan Daemen, Michael Peters e Gilles Van Assche. Na versão apresentada na competição do SHA-3 suporta quatro diferentes comprimentos de saída 224, 256, 384 e 512 bits.
Vantagem A função não se baseia em construção anterior por isso não é vulnerável a ataques genéricos já existentes; Possui diferente estrutura interna; Utiliza diferentes operações matemáticas;
Desvantagem Por ser uma função relativamente nova há uma desconfiança no que diz respeito a ataques criptoanalíticos que ainda não foram descobertos e que podem encontrar pontos fracos na função;
Ver também SHA-3 SHA-2 SHA-1
Ligações externas
Categoria:Criptografia