Stickybit.EnglishSeção · calcular cifrado · 2026
FHE · calcular sem abrir

Fazer a conta sem abrir o cofre.

Pense num joalheiro que trabalha com luvas enfiadas numa caixa trancada: ele lixa, mede e monta a peça, mas nunca vê nem toca o ouro. FHE é isso para dados: o servidor soma, compara e conta sobre o dado cifrado, e só o dono da chave abre o resultado. Abaixo, uma eleição de verdade funcionando assim.

Espécime · uma urna cifrada, ao vivo
conferindo o servidor…
Escolha um candidato e tranque o voto. O que o servidor recebe aparece aqui: só números embaralhados.
–votos na urna
–tamanho de um voto trancado
–para trancar o voto
0votos que o servidor viu

Os votos são reais: vão para uma urna pública e compartilhada com quem mais estiver testando agora. O servidor recebe só o voto trancado; a apuração soma os votos trancados e abre apenas o total.

No dia a dia

O joalheiro com luvas por dentro da caixa.

Hoje, para um servidor fazer qualquer conta com o seu dado, ele precisa abrir o dado. É como entregar o ouro ao joalheiro: você confia que ele não vai guardar um pouco. Criptografia comum protege o dado no caminho e no disco, mas não durante a conta.

Com criptografia homomórfica (FHE), a caixa chega trancada, o servidor trabalha pelas luvas e devolve a caixa ainda trancada, agora com o resultado dentro. Quem tem a chave abre. O servidor nunca viu o número que somou.

O preço é real: cada conta trancada é muito mais lenta e ocupa muito mais espaço que a conta aberta. Por isso FHE funciona bem para algumas tarefas (somar, contar, votar, estatística simples) e mal para outras. As páginas maturidade e fronteira dizem onde, com número medido.

42 seu dado #&%@ servidor ? resultado trancado só você abre
O dado entra trancado, sai trancado com o resultado, e só o dono da chave abre. O servidor faz a conta sem ver.
Três jeitos de fazer conta trancada

Três dialetos, três tipos de conta.

Não existe um FHE só. Existem três famílias, e cada uma fala bem um tipo de conta. Escolher a errada é o erro mais caro de um projeto.

BFV / BGV

Inteiros exatos

Soma e multiplica números inteiros sem erro nenhum. Cada caixa trancada carrega 16.384 números ao mesmo tempo, como uma bandeja com 16.384 compartimentos.

Na prática: votação, contagens, somas de vendas. É o que a urna desta página usa.

42 + 58 = 100  ·  o servidor nunca vê 42, 58 nem 100
CKKS

Números com vírgula

Faz contas com números reais, aceitando um erro minúsculo no último dígito (algo como uma parte em um milhão).

Na prática: médias de sensores, estatística, modelos de aprendizado de máquina simples.

média de 25,1; 24,3; … = 25,09  ·  erro de ~0,000001
TFHE

Portas lógicas

Trabalha bit a bit, com as portas E, OU e NÃO. Faz qualquer conta, mas cada porta custa caro, e comparar dois números vira centenas de portas.

Na prática: comparações e decisões ("A é maior que B?") quando não há outro jeito.

7 é maior que 3? → sim  ·  246 portas lógicas
A eleição por dentro

Quem tranca, quem soma, quem abre.

Cada voto vira uma fileira com um 1 na posição do candidato e zeros no resto: votar na Carla é [0, 0, 1, 0]. O terminal tranca essa fileira com o cadeado público. O servidor soma as fileiras trancadas, uma sobre a outra, sem abrir nenhuma. No fim, só a soma é aberta.

São três papéis separados: a autoridade eleitoral guarda a chave e abre apenas o total; o terminal tranca o voto; o servidor de apuração soma. Nenhum deles, sozinho, liga um voto a uma pessoa.

[0,0,1,0][1,0,0,0][0,0,1,0] Terminal de votação Σ #&%@ + #&%@ + … Servidor de apuração [1,0,2,0] total Autoridade eleitoral 3 / 5 soma os votos trancados; nunca vê um voto
A soma acontece com tudo trancado. Só o total é aberto, e a chave de abrir fica dividida entre cinco autoridades (veja "3 de 5", mais abaixo).
Experimente a urna completa

Vote, apure, confira.

A mesma urna do topo, com todas as peças: cada voto passa por credencial carimbada às cegas, prova de que é válido e registro encadeado. O contador é compartilhado com todos os visitantes.

votos na urna
–
Cinco camadas

Como saber que ninguém mexeu na urna.

  1. Recibo

    Cada voto trancado gera uma impressão digital. Você guarda a sua e confere, no quadro público, que ela está lá.

  2. Uma credencial por eleitor

    Cada título recebe um único vale para votar, carimbado sem que o cartório veja o vale. Usar duas vezes é barrado.

  3. Prova de voto válido

    O terminal prova que a fileira tem exatamente um 1, sem revelar onde. Voto em dois candidatos é barrado.

  4. Registro encadeado

    Cada entrada do quadro carrega a impressão digital da anterior. Mexer numa entrada quebra todas as seguintes.

  5. Qualquer um refaz a soma

    O quadro é público: qualquer pessoa soma os votos trancados de novo e compara com o resultado.

Verifique seu recibo

O seu voto está na soma?

Depois de votar, o recibo aparece aqui sozinho. Cole um recibo (ou use o seu) e confira no quadro público. Depois, confira a corrente inteira.

Tente fraudar

Quatro ataques. Quatro bloqueios.

Cada botão tenta uma fraude de verdade contra a urna ao vivo. Ao lado, qual camada pegou e por quê.

Falsificar a credencial

Inventar um vale de voto sem o carimbo do cartório.

Votar duas vezes

Reusar o vale de quem já votou.

Votar em dois candidatos

Mandar uma fileira com dois 1, que somaria dois votos.

Adulterar o quadro

Mudar um voto já registrado, numa cópia do quadro.

Peças de produção

O que torna a urna séria.

A conta trancada resolve o sigilo da soma. Uma eleição precisa de mais quatro peças, cada uma para um problema diferente.

Provar sem mostrar

O terminal prova que o voto tem exatamente um 1, sem revelar a posição. Escolha o candidato e gere a prova: ela é conferida sem que ninguém saiba em quem você votou.

Carimbar sem ver

O cartório precisa garantir que cada eleitor recebe um só vale, mas não pode saber qual vale é de quem. A solução é um carimbo às cegas: o eleitor põe o vale dentro de um envelope de carbono; o cartório carimba o envelope sem abrir; o carimbo passa para o vale.

  1. O eleitor gera o vale a partir do título e escolhe um número secreto.
  2. Embrulha o vale com esse número: o cartório não consegue ver o vale.
  3. O cartório carimba o embrulho.
  4. O eleitor desembrulha: o carimbo agora vale para o vale original.
  5. Qualquer um confere o carimbo; ninguém liga o vale ao título.

A chave dividida em cinco

A chave que abre o total não existe inteira em lugar nenhum. Ela foi dividida entre cinco instituições; quaisquer três juntas conseguem abrir, duas não. Escolha quem coopera e tente abrir a apuração.

Embaralhar para ninguém ligar

Mesmo trancada, a ordem dos votos pode entregar alguém ("o voto 42 entrou às 14h03, quando só a Maria estava na fila"). Três servidores embaralham os votos, um depois do outro, e trocam o "cadeado por fora" de cada um sem mudar o conteúdo. Depois do terceiro, ninguém sabe qual voto veio de quem.

Ilustração local: o embaralhamento roda no seu navegador, não no servidor desta demonstração.

A seção

Para ir mais fundo.

Três palavras desta página
Trancado (cifrado)

O dado depois de passar pelo cadeado. Quem não tem a chave vê só ruído. →

Conta trancada

Somar, multiplicar ou comparar dados sem destrancar. É o que "homomórfica" quer dizer. →

Prova sem mostrar

Convencer alguém de que algo é verdade sem revelar o segredo. Aqui: o voto é válido, sem dizer em quem. →

Limites

Onde isso pode enganar.

Uma demonstração, não uma eleição oficial

A urna desta página é pública e compartilhada, e não há cadastro de eleitores de verdade. Ela mostra as peças funcionando, não um sistema homologado.

O preço de cada voto

Um voto trancado ocupa cerca de 1,5 MB, contra alguns bytes do voto aberto. Para uma cidade, é armazenamento e banda que precisam entrar na conta.

Sigilo não é integridade

A conta trancada esconde os votos, mas não garante sozinha que ninguém trapaceou. Por isso existem as outras quatro peças. Ver maturidade, "um bit por pergunta basta".

O embaralhamento aqui é ilustrativo

Os três embaralhadores rodam no seu navegador para mostrar a ideia. O servidor desta demonstração não embaralha votos.

Conversar

Isto se aplica ao seu caso?

Conte em duas linhas o que você precisa decidir ou medir. A primeira conversa serve para ver se a medição resolve o seu caso, e, se não resolve, dizemos.

Conversar pelo WhatsApp algorithms@stickybit.com.br Stickybit · Porto Alegre, desde 2004

← stickybit.com.br

Fontes