Codificar a mensagem “Este texto deve ser criptografado” por criptografia simétrica pelo algoritmo elementar XOR utilizando como chave criptográfica o seu RU ou parte dele. Após a obtenção da cifra, decodifica-la, comprovando a eventual reciprocidade do processo.
Soluções para a tarefa
Resposta:
A resposta segue na listagem em linguagem C abaixo.
Explicação:
#include <stdio.h>
#include <stdlib.h>
/* Funcao para criptografar o texto usando a chave passada
* usando um algoritmo XOR simples
*/
char *criptografar(char *texto, char *chave) {
char *criptografado = (char *)malloc(strlen(texto)+1);
int tam_chave = strlen(chave);
for (int i = 0; i < strlen(texto); i++) {
char a = texto[i];
char b = chave[i % tam_chave];
char c = a ^ b; // fazer o xor para o caracter atual
*(criptografado+i) = c;
}
*(criptografado+strlen(texto)) = 0;
return criptografado;
}
int main()
{
char *texto = "Este texto deve ser criptografado";
char *chave = "123456"; // ru ficticio
char *criptografado = criptografar(texto, chave);
printf("%s\n", criptografado);
char *original = criptografar(criptografado, chave);
printf("%s\n", original);
printf("Fim\n");
}