PQC em ambientes de execução do ` IBM ` e ` Semeru `
IBM integrou a Criptografia Pós-Quântica (PQC) em seus ambientes de execução Java para proteger aplicativos corporativos contra ameaças da computação quântica, utilizando algoritmos aprovados pelo NIST.
Visão geral
À medida que a computação quântica avança, a ameaça aos sistemas criptográficos tradicionais (como RSA e ECC) passa a ser uma questão de “quando”, e não de “se” Para se antecipar aos ataques do tipo “Harvest now, decrypt later ”, a IBM integrou a PQC ao núcleo de seus ambientes de execução Java. Ao utilizar algoritmos pós-quânticos aprovados pelo NIST, o pacote de criptografia Java ( IBM ) garante que as aplicações corporativas possam migrar para padrões resistentes à computação quântica sem comprometer o desempenho ou a compatibilidade com a Java Cryptography Architecture (JCA).
Normas do NIST: A base da confiança
O NIST finalizou três normas fundamentais que servirão de base para um mundo resistente à computação quântica. Esses algoritmos utilizam estruturas matemáticas resistentes a ataques quânticos. A Tabela 1 lista os algoritmos de PQC aprovados pelo NIST.
| Algoritmo | Função | Fundamentos matemáticos | Caso de uso principal |
|---|---|---|---|
| ML-KEM | Troca de Chave | Módulo-Lattices (MLWE) | TLS ( HTTPS ), VPNs, navegadores |
| ML-DSA | Assinatura Digital | Módulos-Redes | Atualizações de software, certificados de identidade |
| SLH-DSA | Assinatura Digital | Hashes criptográficos | Arquivamento de longo prazo, segurança de contingência |
Principais destaques:
- ML-KEM (FIPS 203): O "pilar" da proteção de dados em trânsito. É altamente eficiente e integra-se facilmente a protocolos de internet existentes, como TLS e 1.3. Para mais informações, consulte a Norma sobre o Mecanismo de Encapsulamento de Chaves Baseado em Malha de Módulos.
- ML-DSA (FIPS 204): O principal padrão para assinaturas digitais, substituindo RSA e ECDSA nos processos de assinatura de código e inicialização segura. Para obter mais informações, consulte a Norma de Assinatura Digital Baseada em Módulo-Rede.
- SLH-DSA (FIPS 205): Um método de backup “sem estado” baseado em funções hash. Funciona como uma "rede de segurança" conservadora para o arquivamento de longo prazo. Para obter mais informações, consulte a Norma de Assinatura Digital Baseada em Hash Sem Estado.
OpenJDK Roteiro do PQC
A transição para o PQC no ecossistema do OpenJDK é uma implementação estratégica, que vai das APIs básicas às implementações concretas de algoritmos.
Evolução da pilha:
- Fundação API: A JEP 452 introduziu a API KEM (Java 21/17), enquanto a JEP 510 finalizou a API da Função de Derivação de Chave (KDF) (Java 25).
- Implementação do algoritmo: O JEP 496 ( ML-KEM ) e o JEP 497 ( ML-DSA ) foram implementados no Java 24, proporcionando segurança quântica nativa baseada em software.
- Maturidade do protocolo: O JEP 527 (Java 27) introduz a Troca Híbrida de Chaves para o Protocolo de Conexão de Rede ( TLS ) 1.3, combinando algoritmos clássicos e à prova de quântica para
double-lockeda segurança do transporte.
PQC em ambientes de execução do ` IBM ` e ` Semeru `
IBM Semeru integra esses algoritmos padronizados pelo NIST em plataformas d z/OS, por meio dos provedores d OpenJCEPlus e IBMJCECCA, garantindo resiliência à prova de ataques quânticos para cargas de trabalho modernas e legadas. A Tabela 2 apresenta o Quadro de Referência PQC ( IBM ) Semeru.
| Provedor | Algoritmo(s) | Meta de lançamento |
|---|---|---|
| IBMJCECCA | ML-DSA | 17.0.15.0, 21.0.7.0, Java 25 GA |
| IBMJCECCA | ML-KEM | 17.0.15.0, 21.0.7.0, 25.0.3.0 |
| OpenJCEPlus | ML-DSA | 17.0.18.0, 21.0.10.0, Java 25 GA |
| OpenJCEPlus | ML-KEM | 17.0.18.0, 21.0.10.0, Java 25 GA |
Destaque de implementação: ML-KEM no IBM Semeru 17+ (API Java padrão)
Usar a API nativa KEM é mais simples e segue os padrões padrão do OpenJDK, tornando seu código mais portável para outros provedores, como o SunJSSE, para integração futura.
import javax.crypto.KEM;
import javax.crypto.SecretKey;
import java.security.PublicKey;
import java.security.spec.NamedParameterSpec;
// 1. Get a KEM instance for ML-KEM-512
// In Semeru 17+, "OpenJCEPlus" supports the standard KEM string
KEM kem = KEM.getInstance("ML-KEM-512", "OpenJCEPlus");
// 2. Bob creates an Encapsulator using Alice's Public Key
KEM.Encapsulator enc = kem.newEncapsulator(alicePublicKey);
// 3. Encapsulate to generate the SecretKey and the Ciphertext (Encapsulation)
KEM.Encapsulated encapsulated = enc.encapsulate();
SecretKey sharedSecret = encapsulated.key();
byte[] ciphertext = encapsulated.encapsulation();
// Bob sends 'ciphertext' to Alice.
// Alice will use kem.newDecapsulator(privateKey).decapsulate(ciphertext)