A segurança dos aplicativos Java seria aprimorada por meio de algumas propostas para resistir a ataques de computação quântica, um plano envolvendo assinaturas digitais e o outro encapsulamento de chaves. As duas propostas residem no índice OpenJDK JEP (JDK Enhancement Proposal).
Assinaturas Digitais Resistentes à Computação Quântica
Uma proposta, intitulada "Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm", pede o aprimoramento da segurança de aplicativos Java fornecendo uma implementação do Quantum-resistant Module-Latticed-Based Digital Signature Algorithm (ML-DSA).
Assinaturas digitais são usadas para detectar modificações não autorizadas em dados e para autenticar a identidade dos signatários. O ML-DSA foi projetado para ser seguro contra futuros ataques de computação quântica. Ele foi padronizado pelo United States National Institute of Standards and Technology (NIST) no FIPS 204.
Benefícios do ML-DSA
O ML-DSA oferece várias vantagens em comparação com os algoritmos de assinatura digital atualmente usados na Plataforma Java:
- Resistência a Ataques Quânticos: O ML-DSA foi projetado para resistir a ataques de computadores quânticos, incluindo o algoritmo de Shor, que pode quebrar a segurança de algoritmos de chave pública amplamente implantados.
- Eficiência Computacional: O ML-DSA é computacionalmente eficiente, com tempos de assinatura e verificação rápidos, o que o torna adequado para uso em aplicativos Java.
- Segurança Padronizada: O ML-DSA foi padronizado pelo NIST, garantindo que seja amplamente aceito e confiável.
Implementação no OpenJDK
A proposta JEP para o ML-DSA inclui uma implementação desse algoritmo no OpenJDK, a principal implementação de referência da Plataforma Java. Isso permitiria que os desenvolvedores Java adotassem facilmente o ML-DSA em seus aplicativos, protegendo-os contra futuros ataques de computação quântica.
Encapsulamento de Chaves Resistente à Computação Quântica
A outra proposta, "Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism", pede o aprimoramento da segurança do aplicativo fornecendo uma implementação do Quantum-resistant Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM). Os KEMs são usados para proteger chaves simétricas em canais de comunicação inseguros usando criptografia de chave pública. O ML-KEM foi projetado para ser seguro contra futuros ataques de computação quântica e foi padronizado pelo NIST no FIPS 203.
Benefícios do ML-KEM
Assim como o ML-DSA, o ML-KEM oferece várias vantagens em comparação com os algoritmos de encapsulamento de chaves atualmente usados na Plataforma Java:
- Resistência a Ataques Quânticos: O ML-KEM foi projetado para resistir a ataques de computadores quânticos, incluindo o algoritmo de Shor.
- Eficiência Computacional: O ML-KEM é computacionalmente eficiente, com tempos de encapsulamento e decapsulamento rápidos.
- Segurança Padronizada: O ML-KEM foi padronizado pelo NIST, garantindo que seja amplamente aceito e confiável.
Implementação no OpenJDK
A proposta JEP para o ML-KEM inclui uma implementação desse algoritmo no OpenJDK, permitindo que os desenvolvedores Java adotem facilmente o ML-KEM em seus aplicativos, protegendo-os contra futuros ataques de computação quântica.
Urgência da Adoção de Algoritmos Resistentes à Computação Quântica
Ambas as propostas enfatizam o avanço crescente no campo da computação quântica. Um futuro computador quântico de larga escala poderia usar o algoritmo de Shor para comprometer a segurança de algoritmos baseados em chaves públicas amplamente implantados. Tais algoritmos são usados pela Plataforma Java para atividades como assinar digitalmente arquivos JAR e estabelecer conexões de rede seguras. Um ataque poderia ser realizado por um computador quântico usando o algoritmo de Shor em horas.
Os criptógrafos responderam a essa ameaça inventando algoritmos resistentes a quantum que não podem ser derrotados pelo algoritmo de Shor. Mudar para algoritmos resistentes a quantum é urgente, mesmo que computadores quânticos de larga escala ainda não existam. Adotar soluções como o ML-DSA e o ML-KEM no OpenJDK é um passo crucial para proteger a segurança dos aplicativos Java contra futuros ataques de computação quântica.