← voltar ao site

Auditoria independente — 2º turno presidencial de 2026

Tudo aqui parte dos arquivos públicos do TSE em https://resultados.tse.jus.br/oficial/ele2026

(pleito 3220 = 1º turno, 3221 = 2º turno; eleição 6258 = presidente 2º turno, 6257 = presidente 1º turno).

O que conferir, em ordem de importância

1. Soma dos boletins de urna (BU) = resultado oficial, por município.

scripts/bu_all.py baixa o índice de cada seção (.../dados/{uf}/{mun}/{zona}/{secao}/p003221-...-aux.json),

baixa o bu.dat e decodifica os votos (ASN.1 BER, parser em scripts/ber.py).

scripts/agg.py soma por município; compare com .../6258/dados/{uf}/{uf}{mun}-c0001-e006258-u.json.

2. Registro digital do voto (RDV) = BU, urna por urna. scripts/rdv_all.py + scripts/rdvp.py.

Tipos no RDV: 1 legenda, 2 nominal, 3 branco, 4/6/7 nulo. Resultado: resultados/rdv_resumo.json.

3. Assinatura digital. scripts/crypto_check.py (usa ed521.py). O arquivo vota.vsc de cada urna contém o

SHA-512 do BU, RDV e log, assinado pela urna:

- urnas “AC URNA”: ECDSA P-521 — openssl dgst -sha512 -verify chave.pem -signature assinatura hash64

(a mensagem assinada é o hash de 64 bytes guardado, que é o SHA-512 do conteúdo);

- urnas “AC UE2020/UE2022”: Ed521 (curva E-521, d = −376014, Gy = 12), mensagem = SHA-512(hash guardado),

domínio SigEd521\x00\x00, hash SHAKE256 de 132 bytes.

Teste de controle: altere 1 byte do BU — a verificação tem que falhar.

4. Comparação 1º x 2º turno na mesma urna. scripts/secan.py, scripts/fraudbound.py, scripts/fluxo.py.

5. Testes forenses. scripts/forense*.py, scripts/klimek_fit2.py, scripts/espacial.py.

6. Votos depois das 17h. scripts/late_votes.py (lê o log logd.dat de cada urna, compactado em 7z).

Requisitos

Python 3 com requests e numpy; openssl; 7z. Baixar tudo leva horas e ocupa ~15 GB — o TSE limita requisições

(acima de ~150/s responde 429).

Limites conhecidos

- A cadeia de certificados até a raiz do TSE não foi verificada (o certificado raiz não vem com os arquivos).

- A divisão do voto por grupo do 1º turno (fluxo.py) é estimativa ecológica: o total é exato, a divisão tem margem.

- Fraude dentro do software da urna, gravando o voto errado em todos os registros, só seria visível estatisticamente.