Criptografia homomórfica: computar sem ver os dados
Neste artigo
Imagine entregar um cofre trancado a um estranho, pedir que ele some os valores lá dentro e devolva a resposta, sem nunca abrir o cofre. Parece truque de mágica, mas é exatamente o que a criptografia homomórfica faz com os seus dados. Ela deixa um servidor calcular sobre a informação cifrada, sem descriptografar nada e sem jamais ver o conteúdo. É a peça que faltava na criptografia. Já sabíamos proteger o dado guardado e o dado em viagem, mas não enquanto ele é usado. Este guia mostra como isso funciona, onde já roda de verdade e por que ainda não está em tudo.
Resumo rápido: A criptografia homomórfica permite fazer contas sobre dados cifrados sem descriptografá-los. O servidor processa a informação embaralhada e devolve um resultado que só o dono da chave consegue abrir. É o “terceiro estado” da proteção: além do dado em repouso (disco) e em trânsito (HTTPS), agora o dado protegido enquanto é processado. A ideia é de 1978, dos criadores do RSA, virou realidade em 2009 e já roda no seu iPhone. O preço: ainda é milhares de vezes mais lenta, então brilha em casos específicos, não em tudo.
O que é criptografia homomórfica?
É uma técnica que permite fazer contas sobre um dado cifrado sem abri-lo. Nas palavras da Apple, é a “computação sobre dados criptografados sem revelar a informação não criptografada ao processo que opera” (Swift.org). O resultado da conta também sai cifrado, e só quem tem a chave privada consegue lê-lo.
Na criptografia comum, para usar um dado é preciso descriptografá-lo antes. Nesse instante, ele fica exposto na memória de quem processa. A homomórfica quebra essa regra: a conta acontece diretamente sobre o texto embaralhado. O servidor trabalha às cegas, do começo ao fim.
O nome vem da matemática. “Homomorfismo” é uma operação que preserva a estrutura: mexer nos dados cifrados corresponde, de forma previsível, a mexer nos dados originais. Some dois cifrados e, ao abrir o resultado, você encontra a soma dos números reais. Quem fez a conta nunca soube quais eram.
Repouso, trânsito e agora “em uso”: o terceiro estado do dado
Todo dado existe em três estados, e cada um pede uma proteção. Em repouso, guardado no disco. Em trânsito, viajando pela rede. E em uso, sendo processado. As duas primeiras proteções já são rotina; a terceira é justamente onde entra a criptografia homomórfica.
O dado em repouso você protege com a criptografia de disco: o BitLocker ou o FileVault embaralham o HD, então um aparelho roubado vira ruído. O dado em trânsito viaja embaralhado pelo protocolo HTTPS, o cadeado do navegador. Mas havia um buraco no meio do caminho.
Esse buraco é o momento do processamento. Para somar, filtrar ou treinar um modelo com o seu dado, o servidor precisava descriptografá-lo primeiro. Por um instante, a informação ficava aberta na nuvem. A criptografia homomórfica fecha esse buraco: protege o dado também enquanto ele é usado.
🔒
Em repouso
O dado guardado no disco. Protegido pela criptografia de disco (BitLocker, FileVault).
🔒
Em trânsito
O dado viajando pela rede. Protegido pelo HTTPS, o cadeado do navegador.
🔒
Em uso
O dado sendo processado. Protegido pela criptografia homomórfica.
Como se faz uma conta sobre um dado trancado?
Com uma operação que espelha a conta real sem abrir o cadeado. Pense de novo no cofre, mas agora com luvas de borracha presas nas laterais. Você enfia as mãos nas luvas, mexe no conteúdo e monta o resultado, tudo sem destrancar a porta. O servidor faz o mesmo com os números embaralhados.
Dá para ver a propriedade funcionando com o próprio RSA, o algoritmo de chave pública que já conhecemos. O RSA cifra fazendo E(m) = mᵉ mod n. Por causa dessa forma, multiplicar dois cifrados e abrir o resultado devolve o produto dos números originais — sem a chave privada em momento algum. Rodei em Python puro, sem biblioteca nenhuma (com chaves pequenas, só para caber na tela):
# RSA: E(m) = m^e mod n. Daí E(a) × E(b) = E(a × b).
>>> ca = cifrar(3200) # um salário, cifrado com a chave pública
>>> cf = cifrar(3) # o multiplicador, cifrado
>>> c = (ca * cf) % n # o "servidor" multiplica só os CIFRADOS
>>> decifrar(c) # o dono da chave privada abre no fim
9600 # = 3200 × 3, e o servidor nunca viu os números
O servidor multiplicou dois valores embaralhados e devolveu um terceiro que, aberto, é exatamente 3.200 × 3 — e ele nunca soube o 3.200 nem o 3. Dois limites honestos, porém. Essa é a propriedade do RSA “puro”: na prática, o preenchimento de segurança que o RSA usa quebra isso de propósito, e é por isso que existem esquemas dedicados. E, mesmo em teoria, o RSA é homomórfico parcial — só multiplica. O esquema de Paillier é o seu dual: só soma. A versão totalmente homomórfica (FHE) faz as duas operações em qualquer combinação, e é bem mais pesada, por um motivo com nome próprio.
Esse motivo é o ruído. Cada conta sobre um dado cifrado adiciona um “chiado” matemático ao resultado. Depois de algumas operações, o chiado cresce tanto que corromperia a resposta. A solução, chamada bootstrapping, limpa esse ruído no meio do caminho, permitindo contas ilimitadas. É genial e é caro: ela responde pela maior parte do custo de processamento.
De onde veio a ideia: os pais do RSA, em 1978
A criptografia homomórfica não é moda nova. A ideia nasceu em 1978, num artigo de Ron Rivest, Len Adleman e Michael Dertouzos chamado On Data Banks and Privacy Homomorphisms. Os dois primeiros nomes não são coincidência: são o “R” e o “A” do RSA. Eles criaram esse algoritmo de chave pública no mesmo período.
Eles imaginaram cifras que permitissem operar sobre dados cifrados, e batizaram a ideia de “homomorfismos de privacidade”. O problema é que ninguém sabia construir uma que funcionasse de verdade. A pergunta ficou aberta por mais de trinta anos. Virou um dos maiores enigmas da criptografia moderna, ao lado dos que contamos na história das cifras.
A resposta veio em 2009, das mãos de Craig Gentry. Durante um estágio na IBM, ele construiu o primeiro esquema totalmente homomórfico da história, usando a técnica de bootstrapping para domar o ruído. Seu orientador em Stanford, Dan Boneh, resumiu: a construção “resolve um problema de trinta anos da criptografia”. A mágica finalmente tinha uma receita.
| 1978 | Rivest, Adleman e Dertouzos propõem os "homomorfismos de privacidade". A ideia nasce, sem receita. |
| 2009 | Craig Gentry constrói o primeiro esquema totalmente homomórfico, com bootstrapping. |
| 2018 | A HomomorphicEncryption.org publica um padrão de segurança para a comunidade. |
| 2019 | A norma ISO/IEC 18033-6 formaliza esquemas homomórficos internacionalmente. |
| 2024 | A Apple leva a técnica para o iPhone e abre o código em Swift. |
Você já usa criptografia homomórfica sem saber?
Provavelmente sim, se você tem um iPhone. O recurso Live Caller ID Lookup, do iOS 18, usa a técnica para consultar dados de um número de telefone. Isso acontece “sem o servidor saber qual número” está na consulta (Swift.org). O servidor responde sem nunca aprender o que você perguntou.
Por baixo, a Apple usa o esquema BFV, baseado num problema matemático chamado RLWE. Esse detalhe importa por um motivo extra: esquemas assim são projetados para resistir também ao computador quântico, a ameaça que ronda a criptografia atual. A Apple abriu o código dessa biblioteca em agosto de 2024, para qualquer um usar.
Fora do celular, os casos mais promissores giram em torno de dados sensíveis. Um hospital pode rodar estatísticas sobre prontuários cifrados sem expor pacientes. Uma eleição eletrônica pode somar votos sem revelar cada voto. E a nuvem pode processar seus dados sem vê-los. Isso muda a conta do dilema entre IA local e na nuvem: dá para usar o poder do servidor sem entregar o conteúdo.
Por que ela ainda não está em tudo?
Porque é lenta, e não um pouco. Fazer uma conta sobre um dado cifrado é milhares de vezes mais custoso do que sobre o dado aberto. O bootstrapping, aquela limpeza de ruído, responde pela maior fatia desse peso. Uma operação que levaria microssegundos pode levar segundos, e isso inviabiliza usar a técnica em tudo, o tempo todo.
Por isso a criptografia homomórfica não substitui as proteções que você já usa. Ela resolve o estado “em uso”, mas o dado ainda precisa da criptografia de disco em repouso e do HTTPS em trânsito. Cada uma cobre um momento diferente. A tabela abaixo deixa a divisão de trabalho clara.
| Aspecto | Criptografia tradicional | Criptografia homomórfica |
|---|---|---|
| O que protege | O dado em repouso e em trânsito | O dado em uso, durante o processamento |
| Quando o dado fica exposto | No processamento, é preciso descriptografar | Nunca: o servidor não vê o conteúdo |
| Custo de processamento | Baixo | Ainda milhares de vezes maior |
| Maturidade | MADURA | CASOS ESPECÍFICOS |
A boa notícia é que o campo amadurece rápido. Já existe padronização internacional, com a norma ISO/IEC 18033-6, publicada em 2019, e um padrão de segurança da comunidade desde 2018. Bibliotecas abertas como OpenFHE, Microsoft SEAL e a da Apple colocam a técnica na mão de quem programa. A cada ano, ela fica um pouco mais viável.
💡 Regra de bolso
A criptografia comum protege o dado guardado e em viagem. A homomórfica protege o dado enquanto ele é usado — só que, por enquanto, cobra caro por isso.
Criptografia homomórfica na prática: por onde ela chega até você
Fica isto, e o resto é nota de rodapé:
- É o dado protegido “em uso”. Ela deixa um servidor calcular sobre a informação cifrada sem nunca ver o conteúdo. Completa o repouso (disco) e o trânsito (HTTPS), fechando o buraco do processamento;
- A ideia é antiga, o uso é novo. Proposta em 1978 pelos criadores do RSA, virou realidade em 2009 com Gentry. Hoje já roda no iPhone, em consultas que o servidor responde sem saber o que você perguntou;
- A promessa tem preço. Ainda é milhares de vezes mais lenta, então serve a casos específicos, como saúde, votação e nuvem privada. Ela não substitui a senha, o HTTPS nem a criptografia de disco.
O próximo trecho da trilha de Criptografia já espera. A homomórfica protege o dado em uso. Vale entender como a mesma família enfrenta a ameaça que vem pela frente: a criptografia diante do computador quântico.
Perguntas frequentes
Criptografia homomórfica é a mesma coisa que criptografia pós-quântica?
Não, embora estejam ligadas. A homomórfica trata de calcular sobre dados cifrados sem abri-los. A pós-quântica trata de resistir ao computador quântico. Acontece que alguns esquemas homomórficos, como o BFV, são construídos sobre problemas que também resistem ao quântico. São propriedades diferentes que, às vezes, moram na mesma cifra.
Dá para usar criptografia homomórfica hoje?
Sim, em casos específicos. Existem bibliotecas abertas e maduras, como a OpenFHE, a Microsoft SEAL e a swift-homomorphic-encryption da Apple. Elas já rodam em produção, como no iPhone. Para uso geral e em larga escala, porém, o custo de processamento ainda limita a técnica a nichos que justificam o esforço.
A criptografia homomórfica substitui o HTTPS ou a senha?
Não. Ela protege um estado diferente do dado, o “em uso”, durante o processamento. O dado ainda precisa da criptografia de disco quando guardado e do HTTPS quando viaja pela rede. E a sua conta continua dependendo de uma senha forte. As proteções somam, não se substituem.
Por que a criptografia homomórfica é tão lenta?
Por causa do ruído. Cada conta sobre um dado cifrado acrescenta um “chiado” matemático que, acumulado, corromperia o resultado. A operação que limpa esse ruído, o bootstrapping, é pesada e responde pela maior parte do custo. Por isso, processar sobre o cifrado é milhares de vezes mais lento que sobre o dado aberto.
A criptografia homomórfica é segura contra o computador quântico?
Depende do esquema. Os mais usados hoje, como o BFV, baseiam-se num problema matemático (RLWE) projetado para resistir a ataques quânticos. Isso não significa imunidade absoluta a qualquer ameaça futura, mas coloca esses esquemas entre os candidatos a proteger dados mesmo na era da computação quântica.
Comentários 0
Entre na sua conta para deixar um comentário.
Entrar