Criptografia e Tesseras Seladas
A maioria das tesseras são públicas — projetadas para serem acessíveis a qualquer pessoa, para sempre. Mas algumas memórias precisam de privacidade. Tesseras suporta dois modos de visibilidade criptografada:
- Privada — apenas o criador (e seus herdeiros) podem acessar o conteúdo
- Selada — o conteúdo é bloqueado por tempo e se torna acessível após uma data específica
Tesseras públicas nunca são criptografadas. Disponibilidade é mais importante que sigilo para preservação.
Como a criptografia funciona
Quando você cria uma tessera privada ou selada, o seguinte acontece:
- Uma chave de conteúdo aleatória (256 bits) é gerada
- Cada arquivo de memória é criptografado com AES-256-GCM usando essa chave de conteúdo
- A chave de conteúdo é envolvida em um envelope de chave selada usando sua chave pública de criptografia
- A chave envolvida é armazenada junto ao conteúdo criptografado
Apenas o detentor da chave privada correspondente pode desembrulhar a chave de conteúdo e decriptar o conteúdo.
Encapsulamento de chave híbrido pós-quântico
O envelope de chave selada usa um Mecanismo de Encapsulamento de Chave (KEM) híbrido combinando dois algoritmos:
- X25519 — uma troca de chaves clássica bem testada baseada em curva elíptica
- ML-KEM-768 — um KEM pós-quântico baseado em reticulados padronizado pelo NIST (anteriormente Kyber)
Ambos os algoritmos produzem segredos compartilhados que são combinados usando derivação de chaves BLAKE3. Um atacante precisa quebrar ambos os algoritmos para recuperar a chave de conteúdo. Isso segue o mesmo princípio das assinaturas duplas do Tesseras (Ed25519 + ML-DSA): não sabemos quais suposições criptográficas se manterão ao longo dos séculos, então apostamos nos dois.
Dados autenticados associados (AAD)
AES-256-GCM suporta dados autenticados associados — informações extras que são verificadas durante a decriptação mas não são criptografadas. Tesseras vincula as seguintes informações no AAD:
- O hash do conteúdo da tessera (sempre)
- O timestamp open_after (apenas para tesseras seladas)
Isso previne ataques de troca de texto cifrado: um atacante não pode copiar conteúdo criptografado de uma tessera para outra, porque o AAD não vai corresponder e a decriptação vai falhar. Para tesseras seladas, isso também significa que você não pode alterar a data do selo — o timestamp está criptograficamente vinculado ao texto cifrado.
Tesseras seladas: cápsulas do tempo
Uma tessera selada é uma verdadeira cápsula do tempo. Quando você cria uma, você especifica uma data open_after. O conteúdo é criptografado e a chave é selada em um envelope que apenas você pode abrir.
Quando a data open_after passa, o dono publica a chave de conteúdo como uma Publicação de Chave assinada — um artefato independente contendo a chave, o hash da tessera e a assinatura do dono. Outros nós podem verificar a assinatura e usar a chave publicada para decriptar o conteúdo.
O manifesto da tessera nunca é modificado. A Publicação de Chave é um documento separado, preservando a natureza imutável e endereçada por conteúdo das tesseras.
E as chaves?
Cada identidade agora inclui um par de chaves de criptografia junto ao par de chaves de assinatura:
| Tipo de chave | Algoritmo | Finalidade |
|---|---|---|
| Ed25519 | Clássico | Assinatura de manifestos e publicações de chave |
| ML-DSA | Pós-quântico | Assinatura (quando habilitado) |
| X25519 | Clássico | Encapsulamento de chave (criptografia) |
| ML-KEM-768 | Pós-quântico | Encapsulamento de chave (criptografia) |
O par de chaves de criptografia é gerado quando a identidade é criada. A metade pública é armazenada no diretório de identidade da tessera; a metade privada fica no dispositivo do dono.
Princípios de design
- Criptografar o mínimo possível — apenas conteúdo privado e selado é criptografado. Memórias públicas permanecem abertas para acessibilidade a longo prazo.
- Algoritmos duplos desde o início — criptografia clássica e pós-quântica, para que o conteúdo esteja protegido mesmo que um algoritmo seja quebrado.
- Manifestos imutáveis — chaves são publicadas separadamente, nunca modificando dados existentes.
- Falhar fechado — o sistema rejeita tentativas de criar tesseras privadas ou seladas sem chaves de criptografia.