Keccak

Avançado

Keccak (pronunciado ‚Äúketchak‚ÄĚ) √© uma fun√ß√£o criptogr√°fica vers√°til desenvolvida por Guido Bertoni, Joan Daemen, Micha√ęl Peeters e Gilles Van Assche. Embora o Keccak possa ser aplicado em outros contextos, ele √© mais conhecido como uma fun√ß√£o de hash que oferece n√≠veis de seguran√ßa mais altos em compara√ß√£o com algoritmos de hash mais antigos, como SHA-1 e SHA-2.

A sigla SHA significa Secure Hash Algorithm e se refere a um conjunto de fun√ß√Ķes criptogr√°ficas de hash publicadas pelo Instituto Nacional de Padr√Ķes e Tecnologia (NIST) dos EUA. Os algoritmos SHA-1 e SHA-2 foram criados pela Ag√™ncia de Seguran√ßa Nacional (NSA) dos EUA e, portanto, apresentam uma estrutura semelhante. Embora o Keccak ofere√ßa suporte para o mesmo tamanho de output (comprimento de hash de sa√≠da) que o SHA-2, seu mecanismo de funcionamento √© bem diferente. Ainda assim, o Keccak faz parte da fam√≠lia SHA e tamb√©m √© chamado de SHA-3.

Ataques teóricos ao SHA-1 foram realizados em 2004 e disponibilizados publicamente em 2005. Alguns anos depois, em 2011, o SHA-2 foi declarado pelo NIST como a nova função de hash padrão a ser utilizada. No entanto, a migração do SHA-1 para o SHA-2 foi bastante lenta e somente no início de 2017 que uma grande parcela de desenvolvedores e cientistas da computação finalmente migrou para o SHA-2. Pouco depois, em fevereiro de 2017, o Google anunciou um ataque de colisão bem-sucedido ao SHA-1 e, desde então, o SHA-1 não é mais considerado seguro e seu uso é desencorajado.
A fun√ß√£o Keccak (SHA-3) come√ßou a ser desenvolvida em 2007, depois que o NIST anunciou uma competi√ß√£o p√ļblica e um processo de verifica√ß√£o, buscando uma nova fun√ß√£o de hash criptogr√°fica que pudesse superar as potenciais falhas das vers√Ķes SHA-1 e SHA-2 anteriores.

Embora nenhum ataque significativo ao SHA-2 tenha sido demonstrado ainda, espera-se que as fun√ß√Ķes de hash se tornem vulner√°veis com o tempo e que leve anos para que uma nova fun√ß√£o padr√£o seja desenvolvida. Levando isso em considera√ß√£o, juntamente com as demonstra√ß√Ķes de ataques bem-sucedidos realizados contra o SHA-1 em 2004 e 2005, o NIST percebeu a necessidade de criar um novo algoritmo de hash criptogr√°fico. Em 2012, o NIST declarou o Keccak como o algoritmo vencedor da competi√ß√£o e ele foi padronizado como o mais novo membro da fam√≠lia SHA (da√≠ o nome SHA-3).¬†

Uma das raz√Ķes pelas quais o NIST escolheu o Keccak √© devido √† sua estrutura inovadora, que provou ser mais segura e eficiente do que a de outros algoritmos. Tecnicamente, o algoritmo SHA-3 depende das chamadas fun√ß√Ķes esponja (ou constru√ß√£o esponja) - em contraste com a constru√ß√£o Merkle Damg√•rd usada pelo SHA-1 e SHA-2.

Por enquanto, o SHA-2 ainda é considerado seguro e é amplamente utilizado. Por exemplo, SHA-256 é usado pelo Bitcoin e outras criptomoedas e desempenha um papel essencial no processo de mineração. Pode haver um aumento na adoção do SHA-3 no futuro, uma vez que ele parece estar longe de ser vulnerável a ataques. De qualquer forma, é provável que vejamos o desenvolvimento de mais algoritmos de hash criptográficos nos próximos anos, à medida que a área da criptografia avança e novas falhas ou vulnerabilidades são descobertas.