Chaotic Crypto Encryption Scheme Development by Vitor Diego GaleckiChaotic Crypto Encryption Scheme Development by Vitor Diego Galecki

Chaotic Crypto Encryption Scheme Development

Vitor Diego Galecki

Vitor Diego Galecki

🧠 Chaotic Crypto: Criptografia Caótica Baseada em Sistema Neural em Evolução

Este projeto implementa um esquema experimental de criptografia autenticada (chaotic_encrypt/chaotic_decrypt) em Rust, que utiliza um sistema neural simples e dinâmico (NeuralSystem) para derivar chaves criptográficas, combinando alto desempenho com compressão LZ4 e autenticação Poly1305.
⚠️ Aviso: Este código é um projeto de pesquisa e demonstração da aplicação de sistemas caóticos e redes neurais em derivação de chaves. Ele NÃO deve ser utilizado em ambientes de produção que exijam segurança criptográfica auditada e formalmente verificada.

✨ Conceitos Fundamentais

O coração deste esquema é a NeuralSystem, uma rede neural simples cujos pesos e bias evoluem dinamicamente com base em funções trigonométricas e no contador de iterações.

1. Sistema Neural Caótico (NeuralSystem)

Evolução Dinâmica: A rede passa por uma "evolução" (evolve()) a cada rodada de ativação. Essa evolução é baseada em funções como sin(), cos(), e tan(), introduzindo sensibilidade às condições iniciais (efeito borboleta).
Derivação de Chave: A função activate() processa a entrada (Nonce + Payload Comprimido) através de múltiplas rodadas de operações SIMD (f32x4) e trigonométricas. O estado final é então passado para BLAKE3 para produzir a chave de 32 bytes (derived_key), garantindo alta difusão e avalanche.
Dual-Processing: O process() executa o activate() na entrada original e na entrada revertida (mirror), combinando as duas chaves derivadas com XOR para aumentar a entropia e a confusão.

2. Formato da Mensagem Criptografada

A mensagem final é estruturada para garantir a autenticação e controle de validade:
Seção
Tamanho (Bytes)
Descrição
Nonce
32
Valor aleatório usado como parte da entrada do NeuralSystem para garantir que mensagens criptografadas com o mesmo seed e conteúdo sejam únicas.
Timestamp
4
Hora de criação Unix (segundos).
Expiry (TTL)
4
Tempo de expiração Unix. Impede ataques de replay a longo prazo.
Flag
1
Flag de status (atualmente 1).
Payload Pad
512
Espaço de padding que armazena a hidden_key (chave derivada) no início.
Payload (LZ4)
Variável
O conteúdo original da mensagem, comprimido com lz4_flex.
Poly1305 Tag
16
Tag de Autenticação gerada pela chave derivada e o Payload+Header.

🔒 Mecanismos de Segurança e Desempenho

Funcionalidade
Primitiva/Técnica
Objetivo
Autenticação
Poly1305
Garante a integridade e autenticidade da mensagem (MAC). Um MAC inválido falha na decriptação imediatamente.
Compressão
lz4_flex
Reduz o tamanho da mensagem antes da criptografia, melhorando o desempenho de I/O.
Prevenção de Replay
Nonce + TTL
O Nonce garante que a cifra seja estocástica. O TTL (expiry) garante que a mensagem não possa ser decifrada após sua validade.
Key Derivation
NeuralSystem + BLAKE3
Usa um processo caótico (evolutivo) e de alta difusão (BLAKE3) para derivar a chave de sessão a partir do seed e do Nonce/Payload.
SIMD
wide::f32x4
Utilização de tipos SIMD (Single Instruction, Multiple Data) para acelerar os cálculos do NeuralSystem e otimizar o uso do pipeline da CPU.

👨‍💻 Como Rodar e Testar

Este projeto inclui uma suíte de testes de segurança para demonstrar a difusão da chave.

1. Execução do main

O main executa um teste de criptografia/decriptografia de uma grande mensagem para medir o tempo de execução e, em seguida, executa a suíte de testes de segurança.
cargo run --release

2. Executando os Testes de Segurança

A função run_chaotic_security_tests(iterations) executa milhares de iterações para verificar:
Integridade: Se a decriptação sempre recupera a mensagem original.
Difusão da Chave (Efeito Avalanche):
Mede quantos bits mudam na derived_key se apenas 1 bit na mensagem de entrada for alterado.
A saída ideal é que a média de bits alterados seja próxima de 128 (metade dos 256 bits da chave BLAKE3).
Estocasticidade: Verifica se as mensagens criptografadas são únicas mesmo com o mesmo seed e mensagem de entrada (garantia de que o Nonce está funcionando).

📦 Dependências Chave

Crate
Uso
poly1305
Autenticação Poly1305 (MAC).
lz4_flex
Compressão e descompressão de alta velocidade.
rand_chacha
Gerador de números pseudo-aleatórios seguro (PRNG) para inicialização do NeuralSystem e Nonce.
blake3
Função hash rápida e segura usada para finalizar a chave derivada do sistema neural.
wide
Tipos SIMD (Single Instruction, Multiple Data) para vetorização de cálculos.
zerocopy, bytemuck
Traits de performance e casting seguro para manipulação de bytes.
Like this project

Posted Jul 12, 2026

Developed experimental neural system-based encryption in Rust.