KEM-IND-CCA-Preserving Compilation of Jasmin's ML-KEM
Este artigo apresenta uma prova totalmente mecanizada no provador Rocq de que o compilador Jasmin preserva tanto a correção funcional quanto a segurança KEM-IND-CCA para a implementação altamente otimizada de ML-KEM usada no Signal, alcançada através de um novo framework de segurança baseado em jogos, semânticas de árvore de interação suportando computações probabilísticas e uma lógica de Hoare relacional.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
No mundo de alto risco da segurança digital, a criptografia atua como a fechadura invisível que protege tudo, desde mensagens privadas até transações financeiras. Durante décadas, especialistas confiaram em provas matemáticas para garantir que essas fechaduras fossem inquebráveis, mas uma lacuna crítica permaneceu entre a matemática elegante no papel e a realidade desordenada do código de computador que as executa. Mesmo quando um esquema criptográfico é provado seguro na teoria, o processo de traduzir essa teoria para as instruções específicas que um processador de computador entende pode introduzir erros sutis. Esses erros, frequentemente introduzidos pelos compiladores que realizam a tradução, podem criar vulnerabilidades que atacantes exploram. À medida que o mundo se prepara para a transição para novos padrões de criptografia resistentes ao quantum para proteger contra ameaças futuras, garantir que esses novos sistemas permaneçam seguros até o nível do código de máquina não é mais apenas uma preocupação teórica; é uma necessidade para a segurança das redes de comunicação globais.
Uma equipe de pesquisadores agora fechou essa lacuna para um dos novos padrões de criptografia mais importantes, conhecido como ML-KEM, que já está sendo usado em aplicativos de mensagens seguras populares, como o Signal. O trabalho deles demonstra que a ferramenta de software específica usada para traduzir o código de segurança de alto nível em instruções de máquina não quebra acidentalmente as garantias de segurança. Em essência, eles provaram que as propriedades de segurança estabelecidas para o código original, legível por humanos, são perfeitamente preservadas no código assembly final e otimizado que o computador realmente executa. Essa conquista é significativa porque remove a necessidade de confiar no compilador como uma "caixa preta" que possa conter bugs ocultos; em vez disso, o próprio compilador foi matematicamente verificado para ser uma ponte segura entre as provas de segurança abstratas e o hardware físico.
O desafio enfrentado pelos pesquisadores foi único devido à natureza da criptografia moderna. O algoritmo específico que eles estudaram, ML-KEM, baseia-se em uma técnica chamada amostragem de rejeição (rejection sampling), onde o computador tenta repetidamente números aleatórios até encontrar um que se ajuste a um padrão específico. Esse processo significa que o programa nem sempre roda por um tempo fixo; ele pode terminar rapidamente ou pode levar muito mais tentativas do que o esperado. Métodos anteriores para verificação de compiladores foram projetados para programas que rodam em uma sequência de passos previsível e fixa. Eles tinham dificuldade em lidar com esse tipo de comportamento probabilístico, onde o caminho que o código percorre depende do acaso. Se uma ferramenta de verificação de compilador não consegue contabilizar esses loops aleatórios, ela não pode garantir que o código de máquina final se comporte da mesma forma que o design original, deixando um potencial buraco na cadeia de segurança.
Para resolver isso, os pesquisadores construíram um novo framework para entender como esses programas se comportam. Eles trataram a execução do código não como uma simples lista de instruções, mas como uma árvore de possíveis interações, onde cada escolha aleatória e cada interação com o mundo exterior é um ramo na árvore. Essa abordagem permitiu que eles modelassem a terminação "quase certa" do programa — significando que ele eventualmente terminará com uma probabilidade de um, mesmo que o tempo exato seja imprevisível. Ao usar este novo modelo, eles foram capazes de definir o que significa para um compilador ser correto em um cenário probabilístico. Eles provaram que, para cada caminho possível que o código original poderia tomar, o código compilado toma um caminho correspondente, preservando a exata mesma distribuição de resultados.
A equipe aplicou este framework ao compilador Jasmin, uma ferramenta especificamente projetada para escrever código criptográfico de alta garantia. Eles focaram na implementação de ML-KEM usada no Signal, um aplicativo de mensagens com milhões de usuários. Usando um assistente de prova poderoso, uma ferramenta de software que verifica argumentos matemáticos com rigor absoluto, eles verificaram que o compilador traduz corretamente o código fonte em linguagem assembly sem alterar as propriedades de segurança. A prova deles cobre todo o processo de compilação, desde a descrição inicial de alto nível até as instruções de máquina finais. O resultado é uma garantia de que a segurança da criptografia, que anteriormente era provada apenas para o código fonte, agora é válida para o código real rodando no dispositivo do usuário.
Este trabalho faz parte de um esforço maior para trazer os mais altos níveis de garantia para a transição pós-quantum, uma mudança global para métodos de criptografia que possam resistir a ataques de futuros computadores quânticos. Embora os pesquisadores ainda não tenham estendido sua prova para cobrir ataques de canal lateral (side-channel attacks) — onde um atacante pode aprender segredos observando quanto tempo uma computação leva ou quanta energia ela usa — eles lançaram a base necessária para esse trabalho futuro. Ao estabelecer que o compilador preserva o jogo de segurança central, eles criaram uma base sólida sobre a qual garantias de segurança mais complexas podem ser construídas. A verificação é totalmente mecanizada, o que significa que cada etapa da prova foi checada por um computador, não deixando margem para erro humano na própria lógica.
As implicações deste trabalho estendem-se além de apenas um algoritmo. O framework que os pesquisadores desenvolveram é geral o suficiente para ser aplicado a outros esquemas criptográficos e propriedades de segurança. Eles mostraram que é possível raciocinar sobre a segurança baseada em jogos (game-based security), uma forma padrão de definir a força criptográfica, através da lente da correção do compilador. Isso significa que, conforme novos padrões de criptografia são desenvolvidos e implementados, eles podem ser submetidos ao mesmo processo rigoroso de verificação. Os pesquisadores disponibilizaram suas ferramentas e provas como código aberto, permitindo que outros especialistas inspecionem, verifiquem e construam sobre o trabalho deles. Essa transparência é crucial para manter a confiança na infraestrutura digital que sustenta a sociedade moderna.
No fim, este artigo representa um passo significativo em direção a um futuro onde podemos ter confiança de que as fechaduras digitais que protegem nossos dados são exatamente tão fortes quanto os matemáticos que as projetaram prometeram. Ao preencher a lacuna entre as provas de segurança abstratas e a realidade concreta do código de máquina, os pesquisadores removeram uma grande fonte de incerteza da cadeia de suprimentos criptográfica. O trabalho deles garante que, quando um usuário envia uma mensagem segura, as garantias de segurança nas quais eles confiam não são apenas ideais teóricos, mas propriedades matematicamente preservadas até chegar aos chips de silício em seus dispositivos. Este nível de garantia é o que nos permite confiar na tecnologia que nos conecta, mesmo diante de ameaças novas e em constante evolução na era digital.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.