Este repositório traz alguns algoritmos bem simples de criptografia, suas implementações e algumas funções auxiliares.
No diretório criptografiaSimples está o algoritmo de criptografia por substituição monoalfabética, i. e., calcula-se o próximo símbolo (letra) a partir de um deslocamento especificado pela chave.
Para compilar o arquivo, faça:
gcc criptoSimples.c -o criptoSimples.oA execução também é simples:
./criptoSimples.o [c|d] <chave> <mensagem>
onde
c:criptografa
d:descriptografaPor exemplo:
./criptoSimples.o d 3 defResultará em:
Mensagem descriptografada: abc
Para exemplificar esse caso, vamos utilizar o algoritmo RSA. Para isso, é preciso antes, mudar para o diretório RSA. Nesse diretório há quatro arquivos principais:
- O arquivo
calculaRSA.c, que se trata de um programa em C para calcular o parâmetrod, dados os valores primosp,q, o valoreescolhido e os limites inferior e superior para a busca do valor ded. - O arquivo
criptaRSA.bcé o principal script que implementa tanto a função para criptografar, quanto a função para descriptografar. Como ambas as funções envolvem apenas operações matemáticas com números inteiros grandes, optou-se por utilizar um script para o programabc(um pequeno programa para operações matemáticas do Linux), ao invés de implementar essas funções direto em C. - O arquivo
criptografaNumerosRSA.shcontém um script em shell (bash) para criptografar mensagens. Esse script faz simplesmente uma avaliação/interpretação dos parâmetros para passar para o scriptcriptaRSA.bcvalor a valor da mensagem. - O arquivo
descriptografaNumerosRSA.shcontém um script em shell (bash) para criptografar mensagens. Esse script faz simplesmente uma avaliação/interpretação dos parâmetros para passar para o scriptcriptaRSA.bcvalor a valor da mensagem.
No caso dos scripts, não é necessário compilar nada. Para o programa calculaRSA.c, a compilação deve ser feita da seguinte forma:
gcc calculaRSA.c -o calculaRSA.oPara executar o programa, faça:
./calculaRSA.o <valor p> <valor q> <valor e> <limite inferior busca> <limite superior busca>Por exemplo:
./calculaRSA.o 7 13 5 10 50A resposta do programa são os valores de p, q, n, z e e, dentro dos limites inferior e superior da busca.
Para criptografar uma mensagem, utilize:
./criptografaNumerosRSA.sh -v "sequencia de valores entre aspas" -c <chave> -n <valor de n>Por exemplo:
./criptografaNumerosRSA.sh -v "6 9 13" -c 5 -n 21De forma análoga, para descriptografar uma mensagem, utilize:
./descriptografaNumerosRSA.sh -v "sequencia de valores entre aspas" -c <chave> -n <valor de n>Por exemplo:
./descriptografaNumerosRSA.sh -v "19 2 3" -c 17 -n 21