Autores: Leo Martinez III - LinkedIn
Contato: [email protected]
Criado: primavera de 2024
Este programa Python implementa a Cifra Afim, um tipo de cifra de substituição, para criptografar e descriptografar mensagens. A Cifra Afim usa um par de chaves, alfa (a) e beta (b), para transformar texto simples em texto cifrado e vice-versa.
A fórmula de criptografia é dada por: E(x) = (ax + b) mod m, onde x é o índice de letras do texto simples, aeb são chaves e m é o tamanho do alfabeto.
O programa lida com a insensibilidade a maiúsculas e minúsculas e ignora espaços na entrada.
O texto cifrado é gerado convertendo cada letra do texto simples usando a transformação afim.
A fórmula de descriptografia é dada por: D(y) = (a_inv * (y - b)) mod m, onde y é o índice da letra do texto cifrado, a_inv é o inverso multiplicativo modular de a, b é a chave e m é o tamanho do alfabeto.
Semelhante à criptografia, o programa lida com a insensibilidade a maiúsculas e minúsculas e ignora espaços na entrada.
O programa solicita que o usuário escolha entre criptografia ('e') ou descriptografia ('d').
Os usuários inserem valores alfa (a) e beta (b), garantindo que estejam dentro do intervalo válido.
As verificações do GCD (Maior Divisor Comum) são realizadas para garantir uma entrada válida.
Valores de exemplo para texto cifrado e texto simples são fornecidos para fins de teste.
O programa foi criado no Google Colab com Python 3.9
Tudo o que é necessário, juntamente com informações adicionais de instalação para executar o programa, estará contido nesta pasta.
Aqui está uma breve explicação dos itens:
src: pasta que contém o script python do código fonte: main.py (use este arquivo para executar o programa)
README.md: contém informações mais básicas sobre o projeto
LICENÇA: Contém informações de licença em relação ao repositório Github
Além disso, certifique-se de que o python "math" esteja instalado corretamente em seu ambiente virtual, pois o método .gcd() é necessário para garantir a verificação de erros para ajudar na integridade da descriptografia.