Este projeto consiste no desenvolvimento de uma Unidade Lógica e Aritmética (ULA / ALU) especializada em criptografia e descriptografia de dados em tempo real, modelada e simulada utilizando o software Logisim.
O sistema foi desenhado de forma totalmente modularizada, garantindo a separação limpa entre os blocos de entrada de dados, o núcleo de processamento criptográfico e as saídas textuais.
- Guilherme Alves Barbosa - RA: 082220014
- Murilo Umbelino Oliveira dos Santos - RA: 082230013
- Lucas Junqueira Gonçalves - RA: 082230029
- Victor Mendes de Andrade Ferreira - RA: 082230015
O circuito possui um seletor de 2 bits (SEL[1:0]) que define qual das quatro operações lógicas ou aritméticas será executada sobre o caractere digitado (ASCII):
| SEL[1:0] | Algoritmo | Descrição |
|---|---|---|
| 00 | XOR | Operação lógica bit a bit com uma chave configurável (mesmo circuito codifica e decodifica). |
| 01 | Cifra de César | Operação aritmética binária pura. Soma uma constante (Encrypt) ou subtrai (Decrypt) via blocos somadores/subtratores de 8 bits. |
| 10 | Inversão de Bits | Aplicação do complemento de bits (Porta lógica NOT). |
| 11 | Permutação de Bits | Reordenação fixa e cruzada de fiação utilizando Splitters: |
Siga rigorosamente as instruções abaixo para executar a simulação e verificar a reversibilidade dos algoritmos.
- Certifique-se de ter o Logisim 2.7.1 instalado no seu computador.
- Abra o Logisim, vá em
File -> Opene selecione o arquivo do circuito:criptoULA.circ. - Certifique-se de que você está visualizando o circuito principal dando um duplo clique em
mainna árvore de circuitos do painel esquerdo.
Para que o Teclado (Keyboard) e a Tela (TTY) funcionem de forma sincronizada através do circuito de pulso implementado:
- No menu superior, clique em Simulate (Simulação).
- Clique em Ticks Enabled (Habilitar Pulsos de Clock) ou use o atalho Ctrl + K.
- (Opcional) No mesmo menu, vá em Tick Frequency e configure para 4 Hz ou 8 Hz para respostas mais rápidas.
Antes de digitar, defina os parâmetros nos pinos de entrada localizados no circuito main:
- Seletor de Códificação: Definir qual codificação irá ser utilizada modificando o componente "SEL" seguindo a tabela apresentada acima no módulo "Algoritmos Implementados"
- Chave do XOR / Deslocamento de César: Altere os pinos de entrada binária de 8 bits para definir a chave (Ex:
00001111para XOR ou00000011para deslocamento de 3 posições no César). - Pino CryptDecrypt (Modo): Deixe em 0 para Criptografar (Encrypt) ou mude para 1 para Descriptografar (Decrypt).
- Selecione a ferramenta de interação Poke Tool (ícone da Mãozinha 👆 no canto superior esquerdo).
- Clique uma vez bem no centro do componente Keyboard (Teclado) para ativá-lo. Uma pequena barra vertical (cursor) aparecerá no teclado.
- Comece a digitar as letras utilizando o teclado físico do seu computador.
- O que observar:
- O texto original digitado fluirá pelo circuito.
- O display TTY de Saída imprimirá imediatamente o caractere já processado de acordo com o algoritmo selecionado nas chaves
SEL.
Abaixo segue a documentação técnica do circuito desenvolvido:
📘 Documentação Técnica - Cripto-ULA
Abaixo segue o link do Youtube para assistir o vídeo explicativo sobre o circuito desenvolvido:
📼 Vídeo Explicativo - Cripto-ULA