2.2 Criptografia
      O objetivo da criptografia é transformar uma mensagem em um texto codificado, garantindo a confidencialidade da informação contida. O principal uso da criptografia é a troca segura de informações sigilosas, como senhas de usuários. Atualmente, existem dois métodos de criptografia: A criptografia simétrica e a criptografia assimétrica. Os dois métodos serão explicados nesta seção.
2.2.1 Criptografia Simétrica
graphic
Figura 1 - Criptografia Simétrica: Codificação
graphic
Figura 2 - Criptografia Simétrica: Decodificação
     
      A criptografia simétrica é uma das formas mais utilizadas de criptografia. A mensagem que será criptografada é enviada a um algoritmo, que a partir da combinação da mensagem original e de uma chave secreta, gera uma nova mensagem, que é a mensagem codificada. Esta mensagem codificada pode então ser enviada ou armazenada, e somente quem possuir a mesma chave secreta utilizada no algoritmo, conseguirá decodificar a mensagem codificada e obter o seu conteúdo. Fazendo uma analogia com o mundo real, a criptografia simétrica é semelhante a se colocar uma mensagem dentro de um cofre, e fechá-lo com um cadeado. Somente as pessoas que possuem a chave do cadeado podem abrir o cofre e obter o conteúdo da mensagem. No mundo computacional, o custo empreendido na codificação e decodificação de chaves simétricas é baixo. O grande problema enfrentado neste tipo de criptografia é desenvolver formas seguras de se transmitir estas chaves. Caso a transmissão da chave não seja segura, a segurança de todo o sistema de criptografia fica comprometida. Alguns sistemas de PKI implementam mecanismos que permitem a troca segura destas chaves. Como exemplos de algoritmos de criptografia simétrica, podemos citar o Advanced Encryption Standard (AES) e o Blowfish.
2.2.2 Criptografia Assimétrica
graphic
Figura 3 - Criptografia Assimétrica: Codificação. Uma chave é utilizada para codificar, e outra chave para decodificar
graphic
Figura 4 - Criptografia Assimétrica: Decodificação. Uma chave é utilizada para codificar, e outra chave para decodificar
   A criptografia assimétrica ou criptografia de chaves públicas contorna o grande problema encontrado na criptografia simétrica. Neste método de criptografia é utilizado um par de chaves distintas, uma chave pública e uma chave privada, para promover a codificação e a decodificação. A chave privada deve ser acessível somente para o seu dono. Toda mensagem codificada com a chave privada só pode ser decodificada com a sua respectiva chave pública. E toda mensagem codificada com a chave pública só pode ser decodificada com o uso de sua chave privada correspondente. Desta forma, se o usuário A deseja enviar uma mensagem codificada para o usuário B, ele pode codificá- la com a chave pública de B, e enviar para B. Somente o usuário B, que possui a chave privada B, conseguirá ler o conteúdo da mensagem enviada por A. A chave pública, como o nome diz, pode ser divulgada a todas as entidades com as quais o dono da chave deseja se relacionar. Os algoritmos de criptografia assimétrica são baseados na resolução de problemas muito complexos que podem envolver curvas elípticas e a fatoração de números primos muito grandes. Devido a este fato, o custo computacional necessário para a codificação e a decodificação de chaves assimétricas é alto. Dentre os algoritmos de criptografia assimétrica mais utilizados, podemos citar o Rivest Shamir Adleman (RSA) e o Digital Signature Algorithm (DSA).
graphic
Figura 5 - Como garantir que Bob é realmente quem ele diz ser?
      Apesar do uso da criptografia assimétrica resolver o problema da troca de chaves seguras, ela acaba revelando um problema muito grave. Como podemos garantir que a entidade que enviou aquela chave realmente é aquela entidade? Nada impede que se um usuário Trudy se passe pelo usuário Bob, forje um par de chaves, e espalhe a chave pública pela Internet, dizendo que a chave pública distribuída é a chave do Bob. Em seguida, todos se comunicarão e enviarão mensagens para Trudy, achando que estão se comunicando com Bob. A infra- estrutura de chaves públicas propõe uma solução para este e outros problemas que serão abordados no decorrer deste trabalho
2.2.3 Combinação de Métodos Criptográficos
graphic
Figura 6 - Troca de chaves simétricas protegidas por uma chave assimétrica
     
     Devido às grandes diferenças de velocidade e poder computacional necessárias entre a criptografia simétrica e assimétrica, e devido ao problema de se transmitir seguramente chaves simétricas, atualmente são empreendidas técnicas que combinam os dois métodos criptográficos. Por exemplo, no início de uma transação comercial, são utilizados sistemas de chave pública para se transmitir uma chave secreta simétrica. Após a transmissão segura da chave, pode-se utilizar a chave simétrica para trocar dados seguramente entre as duas entidades relacionadas no processo.