Criptografia:

A criptografia (do grego kriptós que significa escondido, oculto mais grápho que significa grafia, escrita) é a arte ou ciência de escrever em códigos, de forma que apenas o destinatário decifre e compreenda a mensagem. Criptografia transforma um texto compreensível, denominado texto original (plaintext) ou texto claro (cleartext), em uma informação transformada, chamada de texto cifrado (ciphertext) ou texto código (codetext) ou simplesmente cifra (cipher), que tem a aparência de um texto gerado aleatoriamente incompreensível.

O ato de transformar os dados para uma forma ilegível é denominado como cifrar, e procura garantir a privacidade, mantendo a informação escondida de pessoas não autorizadas, mesmo que estas possam visualizar os dados criptogarfados.

O processo inverso e conhecido por decifrar.

Ao cifrarmos ou decifrarmos uma mensagem, precisamos de informações confidenciais, denominadas chaves. Os algoritmos de criptografia podem ser classificados em dois tipos, de acordo com o tipo de chave que usam: de chave simétrica e de chave assimétrica.

Chave Simétrica:

Também conhecidos por chave única, utilizam a mesma chave tanto para a cifragem como para a decifragem. Este método é bastante limitado, pois emissor e receptor devem conhecer antecipadamente a chave, e é bastante difícil de se conseguir um meio seguro de se passar a chave secreta (se fosse simples, poderíamos simplesmente enviar os dados por esse meio).

Um exemplo de algoritmo que usa esse método é o DES, e um aplicativo que o utilize é o Kerberos.

Chave Assimétrica:

Também chamados de algoritmos de chave pública e privada, utilizam chaves diferentes para cifrar e de cifrar os dados. Em um sistema de chave assimétrica cada pessoa tem duas chaves: uma chave pública que pode ser divulgada e outra privada que deve ser mantida em segredo. Mensagens cifradas com a chave pública só podem ser decifradas com a chave secreta e vice versa. Podemos observar o funcionamento das chaves assimétricas com o auxílio de um exemplo (retirado da página Verdade @bsoluta).

Se Frank e Andréa quiserem se comunicar secretamente usando a criptografia com chave assimétrica, eles terão de fazer o seguinte:

  1. Frank escreve uma mensagem e a criptografa utilizando a chave pública de Andréa. A chave está disponível para qualquer pessoa.
  2. Frank envia a mensagem através da internet para Andréa.
  3. Andréa recebe a mensagem e a decriptografa utilizando sua chave privada (só ela conhece).
  4. Andréa lê a mensagem. Se quiser responder ela deverá fazer o mesmo, a diferença é que dessa vez a chave pública de Frank será utilizada.

Como apenas Andréa tem acesso a sua chave privada, somente ela poderá decifrar a mensagem. A grande vantagem é que não só Frank pode enviar mensagens criptografadas para Andréa, mas qualquer pessoa, basta conhecer a chave pública de Andréa, além disto, emissor e receptor não precisam combinar chaves antecipadamente.

Pode-se também criar uma assinatura digital com chaves assimétricas. Para isso basta inverter o processo: Frank criptografa a mensagem com sua própria chave privada e envia a Andréa. Para decriptografar deve-se usar a chave pública de Frank. Agora qualquer pessoa pode ler a mensagem, mas tem-se a certeza de foi Frank que a enviou (acreditando-se que somente ele conhece sua chave privada).

Pode-se combinar os dois métodos para Frank enviar uma mensagem secreta e assinada para Andréa:

  1. Frank escreve a mensagem e a criptografa usando sua chave privada (assinatura da mensagem).
  2. Em seguida, ele criptografa a mensagem com a chave pública de Andréa (tornando-a secreta).
  3. Frank envia a mensagem duplamente criptografada para Andréa através da internet.
  4. Andréa recebe a mensagem.
  5. Ela decriptografa a mensagem duas vezes. Primeiro com sua chave privada e depois com a chave pública de Frank.
  6. Agora Andréa pode ler a mensagem e tem certeza de que ninguém a leu e que veio de Frank. Também tem certeza de que não foi alterada, pois para isso o invasor teria de ter acesso a chave privada de Frank.

O maior problema das chaves assimétricas é que ela é computacionalmente intensiva, sendo necessário muito tempo para criptografar uns poucos parágrafos.

Um algoritmo que faz criptografia assimétrica é o RSA, e um exemplo de aplicativo que a utilize é o PGP que possibilita correio eletrônico criptografado.

Pode-se combinar os melhores aspectos da criptografia com chave simétrica e assimétrica, codificando a mensagem com o método da chave simétrica e criptografando a chave simétrica com o método da chave assimétrica. Com isso beneficia-se da velocidade do método simétrico e da facilidade de distribuição de chaves do método assimétrico.

Por exemplo se Frank quiser enviar uma mensagem secreta para Andréa, mas usando a combinação explicada acima:

  1. Frank escreve a mensagem e a codifica usando a criptografia com chave simétrica com uma chave gerada aleatoriamente apenas para esta mensagem. Isto é conhecido como chave de sessão (session key).
  2. Frank criptografa essa chave de sessão com a chave pública de Andréa (isto não toma muito tempo por que a chave não é muito grande).
  3. Frank envia a mensagem criptografada e a chave de sessão criptografada para Andréa.
  4. Andréa decriptografa a chave de sessão com sua chave privada.
  5. Em seguida, decriptografa a mensagem usando a chave de sessão que acabou de receber.
  6. Andréa agora pode ler a mensagem.

VOLTAR