Executando verificação de segurança...
1

Criptografia Bio-Emergente: uma cifra que o computador quântico não pode quebrar

Você já deve ter ouvido falar que os computadores quânticos vão quebrar a criptografia atual. RSA, ECC, e até alguns sistemas pós-quânticos correm risco. A corrida é por algoritmos mais complexos, lattices maiores, isogenias mais obscuras.

Mudei a pergunta.

E se a segurança não dependesse de um problema matemático difícil?

E se não existisse chave para ser roubada?


A ideia central

Dois agentes (cliente e servidor) começam com o mesmo estado interno: um vetor de números que só eles conhecem.

A cada mensagem trocada e validada, esse estado evolui nos dois lados ao mesmo tempo.

Com o tempo, eles desenvolvem uma "linguagem" que só existe entre eles. Um atacante que intercepte a comunicação não encontra uma parede matemática — encontra um idioma que não está em dicionário nenhum.

Chamei isso de Criptografia Bio-Emergente.


Como funciona na prática

import bioemergent as be

# 1. Gerar um par (como gerar um keypair)
servidor, cliente = be.gerar_par()

# 2. Cifrar uma mensagem
ciphertext = be.cifrar(cliente, "Transferir 1M BTC")

# 3. Decifrar e validar
mensagem, valido = be.decifrar(servidor, ciphertext)

O que acontece por baixo:

  • O cliente deriva uma máscara do estado atual + um contador
  • Faz XOR com a mensagem
  • Envia o resultado pelo canal (que pode ser aberto, sem VPN)
  • O servidor refaz a máscara com seu próprio estado, recupera a mensagem
  • Valida se a mensagem "ressoa" com a história compartilhada
  • Se sim, ambos evoluem seus estados de forma idêntica

Um atacante que observe o canal só vê bytes aleatórios. Sem o estado P(t), não recupera nada. E o estado nunca trafega pela rede.


Por que resiste a computadores quânticos?

Porque não há problema matemático para o computador quântico resolver.

Algoritmos como o de Shor quebram RSA e ECC porque fatoração e logaritmo discreto têm estrutura algébrica explorável.

Aqui não tem fatoração. Não tem logaritmo discreto. Não tem reticulado. Tem um estado que evolui no tempo, existe só na RAM, e nunca é exposto.

Sem algoritmo aplicável = sem ataque quântico.


O que mais esse sistema faz?

Envelhece bem. Cada troca validada aumenta a distância do estado inicial. Quanto mais usam, mais seguros ficam. O oposto da criptografia tradicional.

Morre se parar de usar. Sem trocas, o estado decai naturalmente. Se ficar inativo tempo demais, o sistema renasce com uma identidade nova. Forward secrecy automático.

Não precisa de canal seguro. O próprio protocolo ofusca o tráfego. VPN/SSH são opcionais.

É um arquivo só. bioemergent.py, ~400 linhas, depende só de NumPy. Roda em qualquer lugar com Python.


Limitações (honestidade intelectual)

O bootstrap inicial precisa de um canal autenticado. A primeira sincronização do estado exige que cliente e servidor recebam o mesmo vetor inicial sem interceptação. Um QR code, um encontro físico, ou uma VPN temporária resolvem.

Se o cliente for completamente comprometido, o atacante ganha uma janela de oportunidade (até a próxima evolução do estado).

É uma primitiva nova. Não passou por décadas de escrutínio acadêmico como RSA ou AES. Use com consciência.


Por que disponibilizei isso?

Porque a discussão sobre criptografia pós-quântica está muito presa ao paradigma da complexidade computacional. Achei que valia a pena explorar uma direção diferente.

O código está no GitHub, com licença MIT. Pode usar, testar, criticar, melhorar.

Se isso fizer sentido para você, ou se parecer completamente absurdo, me diga. Crítica bem fundamentada vale ouro.


Thiago Maciel — 2025
GitHub

Carregando publicação patrocinada...
4

Thiago, li o repositório inteiro (README + bioemergent.py v2.2.0). Você pediu crítica, então vai.

Não é pós-quântica

A cifragem é XOR(plaintext, SHA256-CTR(seed)). SHA-256 é problema matemático. Grover reduz a busca da seed pela metade dos bits, igual a qualquer construção baseada em hash. A "validação semântica" por cosseno roda depois do XOR e não participa da confidencialidade contra observador passivo. Dizer "imune a ataques quânticos por ausência de problema matemático" não fecha: o problema continua lá, só foi renomeado.

PQC tem definição formal. NIST padronizou ML-KEM (FIPS 203), ML-DSA (FIPS 204) e SLH-DSA (FIPS 205) em 2024. Vender isso como "solução PQC" sem dialogar com nada disso atrai um escrutínio que o sistema não aguenta.

A "ausência de chave" também não procede

O vetor P(t) é a chave. É objeto estático em RAM, serializável em texto claro via exportar(), copiável, transmissível. gerar_par() faz c._estado.vetor = s._estado.copiar(), ou seja, copia a chave. Renomear "chave" para "estado" não muda o que a coisa é. O próprio README admite: "Comprometer servidor → equivale a acesso root". Isso é a definição de chave simétrica.

Bugs, em ordem de gravidade

1. Nonce reuse
self._contador incrementa só em decifrar() quando a similaridade passa. Em cifrar() nunca incrementa. Duas mensagens em sequência sem decifrar no meio usam a mesma máscara. Two-time pad: C1 XOR C2 = P1 XOR P2, recuperável com análise de frequência trivial.

2. Sem autenticação
XOR sem MAC, sem AEAD. Atacante flipa bits no ciphertext e o plaintext flipa nos mesmos bits. A similaridade por cosseno roda depois do decrypt, então não impede injeção. O atacante não precisa passar na similaridade pra causar dano.

3. hash(msg) no _encode
Python tem hash randomization por processo. O mesmo msg produz vetores diferentes em processos diferentes. Cliente e servidor em máquinas distintas nunca convergem na similaridade. E hash() retorna 64 bits, não é função criptográfica.

4. derivar_semente com baixa entropia
int(np.dot(self.vetor, self.vetor[::-1]) * 1e12) colapsa 256 floats em uns 40 bits úteis (precisão de float64 truncada). Entropia real muito menor do que o vetor sugere.

5. except: nu no decifrar
Engole KeyboardInterrupt e tudo o mais.

6. exportar() serializa o vetor em texto claro
Sem wrapping, sem derivação. Quem pega o arquivo tem a chave.

A ideia não é nova

"Estado compartilhado que evolui a cada mensagem validada" tem nome: ratcheting. O Signal Protocol (Double Ratchet, 2013) resolve esse problema. HKDF em cada passo, DH ratchet pra forward secrecy real, AEAD em cada mensagem, prova de segurança no modelo padrão. Vale ler o spec antes de continuar iterando, porque ele cobre os mesmos problemas que você está tentando resolver intuitivamente.

A similaridade de cosseno como "validação metabólica" é interessante, mas o lugar dela é como camada de detecção de anomalia em cima de um AEAD padrão, não no lugar dele. Aí vira contribuição original.

Sobre o framing

Wheeler, Penrose, Hawking, Bohm, Zeilinger no rodapé, mais a retórica de "irreversibilidade do tempo" e "linguagem que só existe entre eles": a comunidade de cripto associa isso a projeto amador na hora. Sistema sério se vende com prova de redução a problema computacional. Esse não tem. Esse framing afasta justamente quem poderia te dar feedback técnico de qualidade.

Se quiser continuar

  • Tira "pós-quantico" do título. Não é.
  • Reposiciona como "experimento de ratcheting com validação semântica".
  • Substitui o XOR caseiro por ChaCha20-Poly1305 com nonce derivado de contador.
  • Move a similaridade de cosseno pra camada de anomalia em cima do AEAD.
  • Lê o paper do Double Ratchet do Signal.

Não é pra desanimar. É pra você não publicar como PQC e levar bronca de desconhecidos na net.