Assinaturas pós-quânticas explicadas: por que o PQC Imza assina com ML-DSA
Os computadores quânticos vão quebrar as assinaturas das quais a maioria dos softwares depende hoje. O que isso significa para documentos assinados e como o PQC Imza assina com ML-DSA, o padrão do NIST feito para durar.
3 min de leitura
Uma assinatura em um contrato é uma promessa que precisa sobreviver ao dia em que foi feita. Um contrato de aluguel, um contrato de empréstimo ou uma deliberação de acionistas pode ser conferido anos depois, por pessoas que não estavam na sala, quando a pergunta já não é "você assinou?", mas "você consegue provar?".
As assinaturas eletrônicas respondem a essa pergunta com matemática. E a matemática que a maioria delas usa hoje tem prazo de validade.
O que muda com um computador quântico
Quase todas as assinaturas digitais em uso hoje, sejam RSA, ECDSA ou Ed25519, se apoiam em um de dois problemas: fatorar números muito grandes ou calcular logaritmos discretos em curvas elípticas. Computadores comuns não conseguem resolver nenhum dos dois em um tempo útil, e é isso que mantém uma chave de assinatura privada, mesmo que a sua metade pública seja divulgada.
Em 1994, Peter Shor descreveu um algoritmo que resolve os dois problemas de forma eficiente em um computador quântico grande e tolerante a falhas. Nenhuma máquina assim existe ainda, e as estimativas de quando uma vai existir variam muito. Mas a consequência para as assinaturas é clara: assim que ela existir, uma chave pública bastaria para descobrir a chave privada correspondente, e quem fizesse isso poderia produzir assinaturas indistinguíveis das do verdadeiro titular.
Para um documento assinado, esse é todo o problema. Uma assinatura só serve como prova enquanto ninguém mais puder tê-la feito.
O padrão criado para isso
Os criptógrafos passaram mais de uma década projetando assinaturas baseadas em problemas que, até onde se sabe, os computadores quânticos não conseguem resolver. Em agosto de 2024, o Instituto Nacional de Padrões e Tecnologia dos EUA (NIST) publicou as primeiras delas como padrões. O FIPS 204 define o ML-DSA (Module-Lattice-Based Digital Signature Algorithm, ou algoritmo de assinatura digital baseado em reticulados modulares), que nasceu do projeto CRYSTALS-Dilithium.
A segurança do ML-DSA se apoia em problemas difíceis sobre reticulados matemáticos. Ele tem três conjuntos de parâmetros. O PQC Imza usa o ML-DSA-44, o conjunto que o NIST coloca na sua categoria de segurança 2, com chave pública de 1.312 bytes e assinatura de 2.420 bytes. Isso é maior do que uma assinatura de curva elíptica, mas pequeno o bastante para ser verificado em milissegundos e guardado junto com cada documento.
Como o PQC Imza usa o ML-DSA
Toda assinatura no PQC Imza é uma assinatura ML-DSA-44, feita no seu celular com o app PQC Wallet:
- A chave nasce no seu celular e fica nele. O PQC Wallet gera sua chave de assinatura no aparelho e a guarda no armazenamento seguro do aparelho. Nossos servidores nunca veem mais do que a metade pública.
- A assinatura cobre o próprio documento. O que você assina inclui a impressão digital SHA-256 do documento. Altere um único byte do arquivo e a assinatura deixa de corresponder a ele.
- Toda assinatura é conferida antes de valer. Antes de registrar cada assinatura, nosso servidor a verifica com a sua chave pública e confere se essa chave é a que está registrada na sua conta.
- Você confirma cada uma. A impressão digital, o Face ID ou a senha do seu aparelho ficam entre a chave e cada assinatura.
Quando todos tiverem assinado, a impressão digital do documento e as impressões digitais das suas assinaturas são registradas na blockchain SciChain. Esse registro obtém a data e a hora do livro-razão, e não dos nossos servidores, e por isso pode mostrar depois que essas assinaturas já existiam naquele momento.
Por que agir antes que as máquinas existam
É tentador esperar até que os computadores quânticos sejam realidade. Para as assinaturas, seria tarde demais: documentos assinados hoje com chaves clássicas ainda vão existir quando essas chaves puderem ser quebradas. É muito mais fácil assinar com um algoritmo resistente à computação quântica desde o início do que reassinar todo um acervo mais tarde.
Com o PQC Imza, não há nada a mais para fazer. Você assina como assinaria em qualquer outro lugar, e a assinatura é pós-quântica desde o primeiro dia.