Este projeto implementa um sistema de criptografia e descriptografia RSA, incluindo a geração de chaves públicas e privadas, criptografia de mensagens e descriptografia de mensagens. O projeto também inclui um cliente e um servidor para comunicação segura.
O RSA é um algoritmo de criptografia assimétrica amplamente utilizado para proteger dados. Ele utiliza um par de chaves: uma chave pública para criptografar dados e uma chave privada para descriptografar dados.
- Geração de números primos grandes
- Geração de chaves públicas e privadas
- Criptografia de mensagens usando a chave pública
- Descriptografia de mensagens usando a chave privada
- Comunicação segura entre cliente e servidor
rsa.py: Implementa as funções principais do algoritmo RSA, incluindo geração de chaves, criptografia e descriptografia.client.py: Implementa o cliente que se comunica com o servidor, enviando mensagens criptografadas e recebendo respostas criptografadas.server.py: Implementa o servidor que se comunica com o cliente, recebendo mensagens criptografadas, descriptografando-as, processando-as e enviando respostas criptografadas.comunicationConstants.py: Contém constantes de configuração para a comunicação entre cliente e servidor, como o endereço IP do servidor e a porta.
- Python 3.x
- Bibliotecas:
sympy,concurrent.futures,socket
- Clone o repositório:
git clone https://github.com/seu-usuario/seu-repositorio.git cd seu-repositorio - Instale as dependências: pip install sympy
Em outro terminal, inicie o cliente:
Exemplo de Uso
- O servidor gera um par de chaves RSA e aguarda conexões de clientes.
- O cliente gera seu próprio par de chaves RSA e se conecta ao servidor.
- O cliente e o servidor trocam chaves públicas.
- O cliente criptografa uma mensagem usando a chave pública do servidor e envia a mensagem criptografada.
- O servidor descriptografa a mensagem usando sua chave privada, processa a mensagem e envia uma resposta criptografada de volta ao cliente.
- O cliente descriptografa a resposta usando sua chave privada.