A criptografia hoje é vista principalmente como algo pertencente à tecnologia, mas surgiu a muitos anos atrás com o simples intuito de trocar mensagens entre duas pessoas, a fim de que, se alguém não autorizado por ventura tivesse acesso à mensagem, não pudesse entender o seu conteúdo. E esse é o objetivo da criptografia.
Com a evolução dos meios de comunicação, principalmente a internet, surgiram os criminosos virtuais que se preocupam em roubar informações, e o canal mais propício para isso é a internet. Porém os ambientes fora da rede mundial também correm riscos. Dados confidenciais armazenados em um computador sem nenhum tipo de cifragem dos dados, podem ser lidos e compreendidos por qualquer pessoa que tenha acesso à essa máquina.
Agora chega de "blá, blá, blá..." e vamos direto ao ponto. O uso da criptografia mais simples é o tipo monogrâmica monoalfabética. Nesse tipo de criptografia o algoritmo criptográfico analisa caracter por caracter (monogrâmica) e substitui cada caracter por outro caracter equivalente ao alfabeto cifrante.
O nosso alfabeto: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Poderíamos cifrar uma mensagem trocando cada letra da mensagem por sua correspondente no alfabeto três letras à frente, por exemplo, trocar o A por D, B por E, e assim por diante...
Por exemplo:
A mensagem: Essa e a primeira parte do artigo sobre criptografia
O resultado: Hvvd h d sulphlud sduwh gr duwljr vreuh fulswrjudild
Notem que os espaços não foram criptografados, mas é opcional. Também optei por não utilizar acento, nesse caso até seria interessante o uso. Mas estou disponibilizando o algoritmo utilizado para fazer essa "mágica" abaixo, em linguagem C, Javascript e PHP só para você testar e compreender melhor na prática como funciona.
Algoritmo completo em C:
/*Criptografia - 1ª parte - Monogâmica Monoalfabética*/Algoritmo em Javascript (Função):
#include
#include
#include
char *cifrar(char *mensagem) {
int i;
char *result;
result = (char *) malloc(sizeof(char) * strlen(mensagem));
for (i=0;i<strlen(mensagem);i++) {
if (mensagem[i] != ' ' && mensagem[i] != '\0')
result[i] = mensagem[i]+3;
else
result[i] = mensagem[i];
}
return result;
}
int main() {
char mensagem[100];
printf("Informe a mensagem a ser cifrada (no maximo 100 caracteres): ");
gets(mensagem);
printf("\nEssa e a mensagem cifrada: \n%s",cifrar(mensagem));
exit(0);
}
function cifrar(mensagem) {
var result = "";
for (var i=0;i<mensagem.length;i++) {
if (mensagem.charAt(i) != ' ')
result += String.fromCharCode(mensagem.charCodeAt(i)+3);
else
result += mensagem.charAt(i);
}
return result;
}
Algoritmo em PHP:
function cifrar($mensagem) {
$mensagem = str_split($mensagem);
for ($i=0;$i<count($mensagem);$i++) {
if ($mensagem[$i] != ' ')
$result .= chr(ord($mensagem[$i])+3);
else
$result .= $mensagem[$i];
}
return $result;
}
Bom, por enquanto é isso, continuaremos no próximo episódio, não vou fazer como o artigo sobre GPG que está a quase dois anos com a promessa de que teria uma nova parte (por falar nisso, vou escrever sobre isso na semana que vem, é um assunto relacionado a criptografia).
Podem testar os algoritmos, se precisarem do código completo com html em php e javascript é só pedir, todos os códigos são livres :D
No mais, um site que tem muuuita coisa sobre criptografia: http://www.numaboa.com.br. É um pouco complicado de se ambientar lá, mas quando se acostumar vai se fartar de tanto conteúdo.
Até a próxima.
Nenhum comentário:
Postar um comentário