Tesseras

Fase 4: Recuperação de Chaves por Herdeiros com Shamir's Secret Sharing

2026-02-15

O que acontece com suas memórias quando você morre? Até agora, Tesseras conseguia preservar conteúdo ao longo de milênios — mas as chaves privadas e seladas morriam com o dono. A Fase 4 continua com uma solução: Shamir's Secret Sharing, um esquema criptográfico que permite dividir sua identidade em fragmentos e distribuí-los para as pessoas em quem você mais confia.

A matemática é elegante: você escolhe um limiar T e um total N. Qualquer T fragmentos reconstroem o segredo completo; T-1 fragmentos não revelam absolutamente nada. Isso não é "quase nada" — é informação-teoricamente seguro. Um atacante com um fragmento a menos que o limiar tem exatamente zero bits de informação sobre o segredo, independentemente do poder computacional que tenha.

O que foi construído

Aritmética de corpo finito GF(256) (tesseras-crypto/src/shamir/gf256.rs) — Shamir's Secret Sharing requer aritmética em um corpo finito. Implementamos GF(256) usando o mesmo polinômio irredutível do AES (x^8 + x^4 + x^3 + x + 1), com tabelas de lookup para logaritmo e exponenciação computadas em tempo de compilação. Todas as operações são em tempo constante via consulta a tabelas — sem ramificações baseadas em dados secretos. O módulo inclui o método de Horner para avaliação de polinômios e interpolação de Lagrange em x=0 para recuperação do segredo. 233 linhas, exaustivamente testado: todos os 256 elementos para propriedades de identidade/inverso, comutatividade e associatividade.

ShamirSplitter (tesseras-crypto/src/shamir/mod.rs) — A API principal de split/reconstruct. split() recebe uma fatia de bytes do segredo, uma configuração (limiar T, total N) e a chave pública Ed25519 do dono. Para cada byte do segredo, constrói um polinômio aleatório de grau T-1 sobre GF(256) com o byte do segredo como termo constante, e então o avalia em N pontos distintos. reconstruct() recebe T ou mais fragmentos e recupera o segredo via interpolação de Lagrange. Ambas as operações incluem validação extensiva: limites do limiar, consistência de sessão, correspondência de impressão digital do dono e verificação de checksum BLAKE3.

Formato HeirShare — Cada fragmento é um artefato autocontido e serializável com:

Os fragmentos são serializados em dois formatos: MessagePack (binário compacto, para uso programático) e texto base64 (legível por humanos, para impressão e armazenamento físico). O formato texto inclui um cabeçalho com metadados e delimitadores:

--- TESSERAS HEIR SHARE ---
Format: v1
Owner: a1b2c3d4e5f6a7b8 (fingerprint)
Share: 1 of 3 (threshold: 2)
Session: 9f8e7d6c5b4a3210
Created: 2026-02-15

<dados MessagePack codificados em base64>
--- END HEIR SHARE ---

Este formato é projetado para ser impresso em papel, armazenado em um cofre bancário ou gravado em metal. O cabeçalho é informacional — apenas o payload base64 é analisado durante a reconstrução.

Integração com CLI (tesseras-cli/src/commands/heir.rs) — Três novos subcomandos:

Formato do blob secreto — As chaves de identidade são serializadas em um blob versionado antes da divisão: um byte de versão (0x01), um byte de flags (0x00 para somente Ed25519), seguido da chave secreta Ed25519 de 32 bytes. Isso deixa espaço para expansão futura quando as chaves privadas X25519 e ML-KEM-768 forem integradas ao sistema de fragmentos de herdeiros.

Testes — 20 testes unitários para ShamirSplitter (roundtrip, todas as combinações de fragmentos, fragmentos insuficientes, dono errado, sessão errada, limite threshold-1, segredos grandes até o tamanho de chave ML-KEM-768). 7 testes unitários para aritmética GF(256) (propriedades de campo exaustivas). 3 testes baseados em propriedades com proptest (segredos arbitrários até 5000 bytes, configurações T-de-N arbitrárias, verificação de segurança informação-teórica). Testes de roundtrip de serialização para ambos os formatos MessagePack e texto base64. 2 testes de integração cobrindo o ciclo de vida completo de herdeiros: gerar identidade, dividir em fragmentos, serializar, desserializar, reconstruir, verificar par de chaves e assinar/verificar com chaves reconstruídas.

Decisões de arquitetura

O que vem a seguir

Com Shamir's Secret Sharing, Tesseras fecha a última lacuna crítica na preservação a longo prazo. Suas memórias sobrevivem a falhas de infraestrutura através de erasure coding. Sua privacidade sobrevive a computadores quânticos através de criptografia híbrida. E agora, sua identidade sobrevive a você — passada adiante para as pessoas que você escolheu, exigindo a cooperação delas para desbloquear o que você deixou para trás.