Este projeto implementa um Gerador e Verificador de Assinaturas Digitais utilizando RSA e OAEP, garantindo a autenticidade e integridade de arquivos de texto. O sistema permite gerar chaves RSA, assinar mensagens e verificar assinaturas.
-
Geração de Chaves RSA (com teste de primalidade de Miller-Rabin)
-
Assinatura Digital de mensagens com RSA e SHA-3
-
Verificação de Assinatura Digital usando Base64
-
Uso de OAEP para garantir maior segurança contra ataques
-
Utilização de SHA3-256 para garantir integridade
geradorVerificador.py
→ Arquivo principal, responsável por gerenciar o fluxo da aplicação (geração de chaves, assinatura e verificação).parte1.py
→ Contém a implementação da geração de chaves RSA, incluindo a criação de números primos e a função de hash SHA-3.parte2.py
→ Implementa a assinatura digital da mensagem, cifrando o hash da mensagem com a chave privada.parte3.py
→ Responsável pela verificação da assinatura digital, decifrando e comparando o hash com a mensagem original.documento.txt
→ Arquivo de texto que contém a mensagem a ser assinada e verificada.
geradorVerificador.exe
→ Arquivo executável gerado pelo PyInstaller para execução sem necessidade do Python instalado.
Especificacoes_Seminario.pdf
→ Documento contendo as especificações do trabalho acadêmico.Relatório.pdf
→ Relatório detalhado sobre a implementação e funcionamento do sistema.Slides.pdf
→ Apresentação utilizada para demonstrar o projeto.
- Python 3.8+
- Nenhuma biblioteca externa precisa ser instalada, pois o projeto utiliza apenas bibliotecas nativas do Python (
random
,hashlib
,os
,math
,base64
).
- Clonar o Repositório
git clone https://github.com/GioLeiren/Gerador-Verificador-de-Assinaturas.git
cd Gerador-Verificador-de-Assinaturas/src
- Executar o Script Principal
python geradorVerificador.py
Se estiver no Windows, vá até a pasta dist/
e execute:
cd dist
./geradorVerificador.exe
Ou clique duas vezes no geradorVerificador.exe
- Geração das chaves RSA: O sistema gera um par de chaves (pública e privada).
- Leitura da mensagem a partir do arquivo: A mensagem é carregada do
documento.txt
. - Assinatura Digital: A mensagem é convertida em um hash SHA-3 e assinada com RSA.
- Verificação da Assinatura: O documento assinado é verificado utilizando a chave pública RSA.
- Validação da Integridade: O programa confirma se a assinatura corresponde à mensagem original.
Criptografia RSA: Veritas, Wikipedia
SHA-3 (Secure Hash Algorithm 3): Wikipedia
OAEP (Optimal Asymmetric Encryption Padding): Medium, Wikipedia
Miller-Rabin: Geeks for Geeks
Projeto desenvolvido por Giovanni Minari, Giulia Moura e Tiago Leão para a disciplina Segurança Computacional na Universidade de Brasília (UnB).