Escolar Documentos
Profissional Documentos
Cultura Documentos
O sistema consiste em duas partes: o cliente e o servidor. O cliente tem a opção de criar
dicionários de criptografia, criptografar e descriptografar mensagens, bem como enviar e
receber arquivos do servidor. O servidor, por sua vez, recebe os dados do cliente, salva os
arquivos enviados e responde às requisições de download.
Servidor:
O servidor é implementado como uma classe Ponte, que herda de threading.Thread. Cada
cliente é tratado em uma thread separada, permitindo que o servidor atenda várias
conexões simultaneamente. O servidor aceita comandos de UPLOAD (enviar arquivo) e
DOWNLOAD (baixar arquivo).
Cliente:
O programa é uma aplicação de transferência de arquivos e criptografia simétrica. Ele permite que o
usuário envie e baixe arquivos para um servidor remoto e também criptografar e descriptografar
mensagens usando dicionários de criptografia.
O usuário ao executar o programa tentara se conectar ao servidor, uma vez conectado o usuário pode
escolher entre várias opções no menu do programa:
2. Criptografia:
Para criptografar uma mensagem, o programa utiliza os dicionários de criptografia
previamente criados. O dicionário é uma estrutura que mapeia cada caractere (letras
maiúsculas, minúsculas, números, caracteres acentuados, pontuações e espaços) para
sequências binárias de comprimentos aleatórios.
O processo de criptografia segue os seguintes passos:
A. Para cada caractere da mensagem original:
Se o caractere for um espaço, o programa utiliza um caractere especial no dicionário
para representar os espaços. Isso é necessário para garantir que os espaços não sejam
perdidos durante a criptografia.
Caso contrário, o programa encontra o dicionário apropriado para aquele momento e
substitui o caractere da mensagem pela sequência binária correspondente presente no
dicionário.
C. É importante notar que cada dicionário possui um número diferente de dígitos e cada
caractere da mensagem é criptografado utilizando um dicionário específico. Por
exemplo, na palavra 'gato', se houver 3 dicionários, o primeiro dicionário será
responsável por criptografar o 'G', o segundo dicionário criptografará o 'A', o terceiro
dicionário criptografará o 'T' e, depois disso, voltará para o primeiro dicionário para
criptografar o 'O'.
3. Descriptografia:
Para a criptografia, o programa usa dicionários que são tabelas com pares de valores. Cada letra ou
caractere no texto é substituído por um valor correspondente no dicionário, tornando a mensagem
ilegível. A descriptografia reverte esse processo para obter a mensagem original.
Funcionamento Cliente-Servidor:
O programa funciona em um modelo cliente-servidor, onde o cliente é a aplicação que está sendo
executada pelo usuário, e o servidor é um programa ou computador remoto que recebe as solicitações
do cliente e responde a elas.
Quando o usuário escolhe as opções "5" ou "6" para baixar ou enviar um arquivo, respectivamente, o
cliente se conecta ao servidor e envia os comandos e dados necessários. O servidor processa essas
solicitações, realiza as ações apropriadas (por exemplo, enviar ou receber o arquivo) e responde ao
cliente com os resultados.
Essa arquitetura cliente-servidor permite que o programa seja executado em diferentes computadores,
com o cliente se comunicando com o servidor através de uma rede (como a Internet). Dessa forma, o
usuário pode transferir arquivos de e para o servidor de forma remota, desde que ambos, cliente e
servidor, estejam conectados à mesma rede e possam se comunicar entre si.
Exemplo de Uso
Vamos supor que o usuário ‘A’ escolha a opção "1" no menu para criar os dicionários de criptografia.
Ele será solicitado a inserir o número de dicionários a serem criados e os números mínimos e
máximos de dígitos para cada dicionário. Em seguida, ele será solicitado a fornecer um nome para
salvar o arquivo contendo esses dicionários
Após criar os dicionários, o usuário pode selecionar a opção "4" para visualizar os dicionários e seus
respectivos valores.
Após criar os dicionários, o usuário pode selecionar a opção "2" para criptografar uma mensagem. Ele
digita a mensagem que deseja criptografar, e o programa utiliza os dicionários criados anteriormente
para transformar a mensagem em uma versão criptografada.
Se o usuário desejar descriptografar a mensagem, ele pode selecionar a opção "3" e inserir a
mensagem criptografada. O programa usará os mesmos dicionários utilizados para criptografar e
retornará a mensagem original.
Caso o usuário ‘A’ deseje passar o dicionário para outra pessoa, ele pode utilizar a opção “6” e fazer o
upload do arquivo para o servidor. Então um cliente ‘B’ pode fazer o download do arquivo com a
opção “5” e, após isso, o usuário ‘B’ só precisa selecionar a opção "7" para carregar um dicionário
previamente salvo. Ele será solicitado a digitar o nome do arquivo que contém os dicionários. O
programa carregará os dicionários desse arquivo e os deixará disponíveis para criptografar e
descriptografar mensagens
Conclusão
Assim, o programa proporciona uma forma simples de transferência de arquivos e criptografia,
permitindo que o usuário proteja suas mensagens com segurança e faça a transferência de arquivos de
forma mais privada.