NeuralDecipher é um projeto de Machine Learning desenvolvido na Fatec Luigi Papaiz que utiliza regressão linear com TensorFlow.js para aprender padrões de criptografia e decifrar mensagens. O modelo treina com pares de caracteres ASCII (puro/cifrado) e descobre os valores de multiplicação (m) e adição (b) usados na cifra.
- André Diogo Melchior da Silva
- Juan Pablo Firmino Ferreira
- Michael Akira de Lima Kuwahara
- Murilo de Oliveira Sartori
- PhD - Bruno Zolotareff dos Santos (Desenvolvimento Web II: FATEC Diadema - Luigi Papaiz)
- JavaScript (Node.js) - Linguagem principal do projeto
- TensorFlow.js - Biblioteca de Machine Learning
- Regressão Linear - Algoritmo de aprendizado utilizado
- Normalização de Dados - Técnica para evitar o mínimo local
O desafio era criar um modelo de ML capaz de:
- Aprender a relação entre algo criptografado e seu valor original
- Descobrir os parâmetros m (multiplicação) e b (adição) da cifra linear
- Decifrar textos usando os parâmetros aprendidos
A cifra utiliza a fórmula linear: Y = m × X + b
// Criptografar
const asciiPuro = 'A'.charCodeAt(0); // 65
const asciiCifrado = (65 * 3) + 7; // 202O modelo treina para descobrir que m = 3 e b = 7 observando múltiplos pares puro/cifrado.
| Arquivo | Descrição |
|---|---|
| desafio.js | Arquivo principal - treina o modelo para decifrar |
| cripto.js | Implementação da cifra linear (Y = mX + b) |
| normalizar.js | Funções utilitárias de normalização de dados |
| exemplo1.js | Exemplo básico: horas estudadas vs nota |
| exemplo2.js | Exemplo: conversão Celsius para Fahrenheit |
| sintaxe.md | Comentários de sintaxe TensorFlow.js |
| problemas.md | Registro de problemas e aprendizados |
- Clone o repositório
git clone https://github.com/FatecLP/neuraldecipher.git
cd neuraldecipher- Instale as dependências
npm install- Execute o desafio principal
node desafio.js- Execute os exemplos educacionais
node exemplo1.js
node exemplo2.js- Carrega mensagem em texto puro
- Converte para array de códigos ASCII
- Criptografa usando a fórmula Y = 3X + 7
- Cria tensores com ASCII puro e cifrado
- Normaliza dados para evitar problemas
- Treina modelo com SGD por 5000 épocas
- A cada 10 épocas, tenta decifrar a mensagem
- Quando decifração for 100% correta, para e exibe resultado
Este projeto está licenciado sob a licença MIT.
Nota: Projeto educacional desenvolvido na FATEC Luigi Papaiz. Demonstra conceitos práticos de Machine Learning, regressão linear e otimização de parâmetros aplicados a um problema real de criptoanálise.
FATEC Luigi Papaiz - Diadema/SP - 2025