criptografia
Em criptografia, o algoritmo deve ser considerado como conhecido por todos (origem, destino, atacante), o tamanho da chave também deve considerado como conhecido, assim como o tamanho da mensagem. A única coisa que somente as duas pessoas que querem conversar de forma criptografada sabem é a chave de criptografia.
A base de toda a criptografia simétrica está na operação booleana XOR, conhecida também como “Ou Exclusivo”.
A operação XOR tem a seguinte característica:
A XOR B.
Se A for igual a B, então A XOR B = 0.
Se A for diferente de B, então A XOR B = 1.
Então:
0 XOR 0 = 0;
0 XOR 1 = 1;
1 XOR 0 = 1;
1 XOR 1 = 0;
Ela é comutativa:
A XOR B = B XOR A;
E tem a seguinte característica:
A XOR B = C;
C XOR A = B;
C XOR B = A;
Imagine que Alice quer enviar a mensagem M para BOB usando a chave K, Alice então faz a seguinte operação:
M XOR K = “Mensagem Codificada”.
Bob, ao receber a mensagem, fará a seguinte operação:
“Mensagem Codificada” XOR K = M
Enquanto o tamanho da mensagem M e o tamanho da chave K forem iguais, sendo que K não é formada por repetições (ou seja, K é uma chave formada aleatoriamente), será impossível alguém conseguir ler esta mensagem sem a chave:
1110001101010110
XOR
1010011101101110
=
010001000011100
O problema deste tipo de algoritmo é que, se eu criptografar um DVD de 4GB, precisarei de 4GB de chave!
Só para constar: Um algoritmo de criptografia em que a chave de criptografia precisa ter o mesmo tamanho da mensagem é chamado de criptografia baseada em corrente.
Para resolver o problema do tamanho, a criptografia atual utiliza algoritmo de blocos, ou seja: A informação a ser codificada é dividida em blocos de tamanhos bem definidos e cada bloco é codificado de forma