NIST anuncia finalistas da 3ª rodada para competição de criptografia pós-quântica
O Instituto Nacional de Padrões e Tecnologia (NIST) anunciou as escolhas finais para a 3ª rodada de sua competição pós-quântica. Como todos os bons thrillers, o capítulo round 3 terminou com um pouco de reviravolta.
Como uma atualização, em dezembro de 2016, a NIST anunciou uma competição para selecionar novos algoritmos de criptografia de chaves públicas resistentes a quantum que eventualmente substituirão algoritmos de criptografia de chave pública padrão (pense RSA) à medida que eles estão se tornando cada vez mais vulneráveis aos avanços tecnológicos. Se você está interessado em aprender mais sobre isso, meu colega Ted Shorter recentemente cobriu a história da competição e por que é importante em sua coluna da Forbes.
Os algoritmos da lista de padronização são CRYSTALS-KYBER, CRYSTALS-Dilithium, Falcon e SPHINCS+. O primeiro é um algoritmo de criptografia, ou mais precisamente um Mecanismo de Encapsulamento de Chaves (KEM), e os três últimos são algoritmos de assinatura. Isso é uma surpresa, pois a intenção original declarada era selecionar dois algoritmos em cada categoria e apenas um algoritmo baseado em treliças em cada classe. Em vez disso, temos um KEM e três assinaturas, com dois dos algoritmos de assinatura, ambos baseados em treliça!
Um Round 4 também foi anunciado, com os seguintes algoritmos sendo selecionados: BIKE, Classic McEliece, HQC e SIKE. Estes são todos KEMs também. Embora isso não seja para dizer que a busca por algoritmos de assinatura acabou, isso significa que uma nova chamada para algoritmos de assinatura será emitida ainda este ano. E, podemos ver alguns dos candidatos anteriores do Round 3 ou candidatos alternativos revividos para submissão lá.
Onde isso nos leva agora? Se você quiser se restringir aos finalistas do Round 3, a resposta mais simples é olhar para a estrutura do CRYSTALS. Se o uso da largura de banda e a velocidade de verificação forem importantes para você, você pode querer olhar para o Falcon também. Por outro lado, se você está procurando um esquema de assinatura conservador que dependa de um (relativamente) simples primitivo, ESFHINCS+, enquanto um pouco mais lento e um pouco maior é uma boa opção também.
Se os KEMs são o seu lance, tenha em mente o round 4. Embora o CRYSTALS-KYBER tenha se estabelecido como a primeira escolha, as características de alguns dos algoritmos do Round 4 são bem diferentes do CRYSTALS-KYBER. Portanto, ainda há espaço para trocas entre as necessidades de largura de banda e a velocidade de diferentes operações.
Se você estiver interessado em mais leitura, o relatório de status para a 3ª rodada está disponível aqui. O documento, especialmente a Seção 4, vale a pena ler. Possivelmente o ponto mais importante aqui é que parece que apenas Rainbow e GeMSS, como apresentado no Round 3, foram finalmente rejeitados por razões de segurança. FrodoKEM, por exemplo, foi até considerado louvável por seu design conservador, mas não por seu desempenho. É provável que ouçamos mais sobre alguns dos outros candidatos do Round 3 no futuro.
Finalmente, do ponto de vista do Bouncy Castle, agora temos a versão mais recente SPHINCS+ disponível, bem como os candidatos do Round 4 SIKE, e Classic McEliece. Esperamos publicar os outros em breve. Você pode encontrá-los no repositório GitHub do Bouncy Castle aqui com implementações em Java e C#. Bouncy Castle também alocou alguns identificadores não oficiais para tornar possível a geração de certificados e o SPHINCS+ agora também está no mais recente lançamento da Comunidade Signerver com outros a seguir.
Tenha em mente que até mesmo os finalistas acordados podem mudar ligeiramente antes que a NIST publique os padrões finais. Então, essas não são implementações que você quer apressar a produção, particularmente se algo a longo prazo está envolvido, mas se você quiser descobrir o quão realmente cripto-ágeis seus sistemas são, os novos algoritmos valem a pena tentar e agora há as ferramentas para tornar isso possível.