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. -