Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Do que se trata o artigo:

Neste artigo será apresentado um breve histórico da criptografia, que é a arte (ou ciência) que permite tornar uma mensagem incompreensível para pessoas que não estejam autorizadas a recebê-la. Para tanto, podem ser utilizadas duas chaves distintas (criptografia assimétrica) ou uma única chave (criptografia simétrica). Em ambas as abordagens serão exemplificados os procedimentos empregados, bem como os principais algoritmos conhecidos. Também serão descritos os mecanismos que permitem a confidencialidade, a autenticidade, a integridade e o não-repúdio, e como estes são assegurados pelo uso dos sistemas criptográficos.


Em que situação o tema é útil:

Os pontos destacados neste artigo serão úteis para a compreensão dos conceitos básicos relativos aos sistemas criptográficos, certificados digitais e infraestrutura de chave pública, presentes em diversas aplicações Web, no correio eletrônico, no comércio eletrônico, na troca sigilosa de dados entre redes de diferentes corporações (redes virtuais privadas), entre outras.

Resumo DevMan:

Desde os tempos antigos, a comunicação sigilosa sempre foi uma necessidade e um fator estratégico. A troca de mensagens confidenciais durante as grandes guerras foi decisiva para os rumos tomados pela humanidade e também impulsionou a evolução dos sistemas criptográficos. O advento da Internet e sua posterior adoção comercial criaram novas demandas para a segurança da informação: confidencialidade, autenticidade, integridade e não-repúdio. Desta forma, este artigo tem por objetivo descrever os fundamentos da criptografia simétrica e assimétrica, os diferentes algoritmos conhecidos e os desafios computacionais relacionados ao processamento de suas operações matemáticas, bem como apresentar os certificados digitais e a infraestrutura de chave pública criada para o gerenciamento e a distribuição destes certificados.

A origem do termo criptografia está nas palavras gregas que significam escrita sigilosa. Muitos pesquisadores consideram a criptografia tão antiga quanto à própria escrita: os primeiros registros de sua utilização datam de 1.900 a.C., no antigo Egito. Durante muito tempo, o sucesso de sua utilização dependeu exclusivamente da habilidade de seus usuários em realizar os procedimentos que geravam a mensagem cifrada, pois a criptografia foi amplamente divulgada somente na década de 1970, com o surgimento dos computadores.

Neste artigo, serão descritos os sistemas criptográficos modernos que utilizam uma única chave, também denominados simétricos, as operações realizadas para criação do texto cifrado, os diferentes algoritmos empregados e as principais vantagens e desvantagens da utilização desta abordagem. Posteriormente, serão expostos os sistemas baseados em duas chaves, conhecidos como assimétricos, a maneira como asseguram a confidencialidade, a autenticidade, a integridade e o não-repúdio, e as características básicas dos algoritmos conhecidos. Por fim, serão apresentados os certificados digitais e a infraestrutura de chave pública criada para gerenciamento e distribuição destes certificados.

Introdução a criptografia

A criptografia é a arte (ou ciência) que permite tornar uma mensagem ou informação incompreensível para pessoas que não estejam autorizadas a recebê-la, ou seja, esta se caracteriza pela escrita em código ou cifras. A tentativa de recuperação do conteúdo criptografado, sem a autorização de seu originador, é chamada de criptoanálise, ou mais popularmente, de ataque.

A origem do termo criptografia está nas palavras gregas kryptós (escondido ou oculto) e graphos (escrita). A cifragem da informação ocorre quando a mensagem original (também denominada texto claro) é disfarçada e oculta em códigos sem significado aparente, produzindo o texto criptografado (cifrado). Este pode ser transformado novamente em texto legível através do processo de decifragem (Figura 1).

Figura 1. Processos de cifragem e decifragem de uma mensagem.

Muitos pesquisadores consideram a criptografia tão antiga quanto à própria escrita. Segundo Jorge Loureiro Dias, em seu artigo Desenvolvimento Histórico da Criptografia, os primeiros registros de sua utilização datam de 1.900 a.C., no antigo Egito. Nesta época, o faraó Khnumhotep II substituía trechos das escritas em argila que indicavam o caminho para seus tesouros armazenados nas pirâmides, possibilitando somente aos sacerdotes decifrá-las. Entre 600 e 500 a.C., os hebreus utilizaram um mecanismo simples, de substituição de uma letra por outra (conhecido como cifra de Atbash), para escrever o livro do Profeta Jeremias. Na Índia, o famoso livro erótico Kama-sutra, escrito pelo sábio hindu Vatsyayana, indicava as comunicações secretas, sejam escritas ou faladas, como uma das artes que as mulheres deveriam conhecer e praticar.

Na Roma Antiga, o imperador Júlio César utilizava um método para cifrar suas mensagens e enganar seus inimigos. O algoritmo simplesmente substituía as letras do alfabeto por outras localizadas três posições à frente. A Figura 2 ilustra um exemplo de uma ordem cifrada segundo a técnica usada por Júlio César.

Figura 2. Ordem cifrada segundo o algoritmo de Júlio César.

Este método funcionou durante algum tempo. Entretanto, sua lógica foi descoberta facilmente. A introdução do conceito de chave secreta permitiu melhorá-lo, pois, ao invés de realizar a permuta pela terceira letra subsequente, passou-se a realizar a substituição por outra, localizada N posições à frente. Desta forma, não bastava conhecer o algoritmo, mas a chave secreta N que foi utilizada para cifrar a mensagem (Figura 3).

Figura 3. Ordem cifrada segundo o algoritmo de Júlio César utilizando chave secreta.

O método criado pelo imperador é denominado cifra de substituição. Os algoritmos de criptografia modernos seguem esta mesma filosofia, ou seja, seus passos e procedimentos são conhecidos publicamente, sendo somente a chave compartilhada entre as entidades envolvidas na comunicação.

No século IX, o filósofo árabe Al-Kindi muito contribuiu para a criptoanálise, escrevendo sobre como utilizar a análise de frequência para decifrar mensagens. Segundo este, bastava avaliar as letras mais comuns e substitui-las por aquelas mais utilizadas habitualmente, como as vogais.

A substituição polialfabética empregando palavras chaves, proposta no século XVI, foi marcada pelo trabalho de Blaise de Vigenère, e resistiu a todos os métodos de criptoanálise por mais de trezentos anos. A Figura 4 ilustra um exemplo das carreiras de Vigenère, indicando como os caracteres eram distribuídos.

Figura 4. Distribuição de caracteres conforme as carreiras de Vigenère.

Segundo a técnica desenvolvida por Vigenère, um mesmo caractere pode assumir valores diferentes quando cifrado. No exemplo ilustrado na Figura 5, a mensagem “NEGOCIO OK” foi criptografada com a palavra chave “BUGRE”. É importante notar que o texto produzido foi construído pela intersecção da coluna (texto claro) com a linha (caractere da chave utilizada), gerando desta forma as letras cifradas “F”, “I” e “U”, para a letra “O” da mensagem em texto claro.

Figura 5. Exemplo de aplicação da cifra de Vigenère (somente são apresentadas as cadeias relevantes para a chave “BUGRE”).

A criptografia pré-computacional dependia exclusivamente da habilidade de seus usuários para realizar os procedimentos que geravam a mensagem cifrada. Em 1918, uma máquina conhecida como Enigma, patenteada pelo inventor alemão Arthur Scherbius, foi criada para promover a utilização da criptografia na comunicação entre comerciantes. Esta, embora não tenha obtido êxito comercial, foi adotada posteriormente pelas forças militares alemãs durante a Segunda Guerra Mundial, devido a sua usabilidade e a suposta indecifrabilidade das mensagens cifradas.

A criptografia foi amplamente divulgada somente na década de 1970, com o surgimento dos computadores. Segundo Raul Fernando Weber, autor do artigo Criptografia Contemporânea, quando se usa sistemas computacionais para realizar a cifragem e decifragem, os processos de substituição e transposição podem ser empregados diversas vezes. Essa repetição de processos visa diminuir a frequência dos símbolos utilizados, aumentando a dificuldade dos criptoanalistas, pois a probabilidade de ocorrência destes tenderia a ser exatamente a mesma.

O advento da Internet e sua posterior adoção comercial criaram novas necessidades de segurança da informação, para assegurar:

Confidencialidade: somente o destinatário da mensagem deve ter acesso ao seu conteúdo, ou seja, o acesso é restrito às entidades legítimas (aquelas autorizadas pelo proprietário da informação);

Integridade: assegura que a mensagem mantenha suas características originais, afiançando que não foram criados, alterados ou removidos dados sem autorização, seja intencionalmente, indevidamente ou acidentalmente;

Autenticidade: possibilita a confirmação da identidade dos envolvidos na comunicação;

Não-repúdio ou irretratabilidade: garante que emissor ou receptor não possam negar a criação, a modificação ou a remoção das informações.

Sistemas de criptografia

Os sistemas criptográficos são agrupados em duas categorias, uma que emprega uma única chave e, a outra, que utiliza chaves distintas:

Criptografia simétrica: igualmente conhecida como criptografia de chave secreta ou chave simples. Neste sistema, os envolvidos na comunicação (emissor e receptor) compartilham uma única chave, que é utilizada tanto para cifrar o texto claro quanto para decifrá-lo;

Criptografia assimétrica: também denominada como criptografia de chave pública ou com duas chaves. Emprega duas chaves diferentes que possuem relação direta: a chave pública e a chave privada, sendo que esta última deve ser conhecida somente pela entidade que enviará/receberá as mensagens secretas.

Criptografia simétrica

Historicamente, a criptografia simétrica foi o primeiro método criado para cifragem de mensagens que necessitavam de sigilo (confidencialidade). Para tanto, é necessário que o emissor informe ao receptor do texto cifrado, qual chave secreta será utilizada no processo de cifragem, para que este possa decifrá-la (Figura 6).

Figura 6. Criptografia simétrica: emprego da mesma chave para cifragem e decifragem da mensagem.

A criptografia simétrica é bastante eficiente e rápida, exigindo o uso menos intenso de processamento nos computadores. Basicamente, duas operações são utilizadas para cifrar uma informação:

Substituição: os elementos do texto claro (bits, caracteres etc.) são transformados em outros. A cifra de César e as carreiras de Vigenère são exemplos de substituição;

Transposição: nesta operação, o texto claro é rearranjado (embaralhado). Inicialmente, uma chave secreta deve ser escolhida para auxiliar as trocas de posições dos caracteres da mensagem. No exemplo da Figura 7, a chave “FUTEBOL” (sem aspas) é utilizada para identificar as colunas em ordem alfabética crescente. A seguir, a mensagem é escrita abaixo da chave, em linhas com sete caracteres (tamanho da chave) e o texto cifrado é lido na vertical, a partir da primeira coluna.

Figura 7. Exemplo de aplicação da operação de transposição.

Segundo André L. B. Cavalcante, em seu artigo Teoria dos Números e Criptografia, a criptografia moderna continua baseada nas operações de substituição e transposição, mas busca algoritmos mais complexos, capazes de dificultar a criptoanálise. Alguns métodos empregam a álgebra linear, envolvendo propriedades e operações com matrizes, por exemplo, multiplicando a matriz mensagem por uma matriz chave secreta. Para construção destas, cada letra deve ser associada a um número, permitindo a criação da matriz mensagem (no exemplo, “ATAQUE CONFIRMADO”) e da matriz chave secreta (suponha “ANTIARMAMENTISTA”), conforme ilustrado na Figura 8.

Figura 8. Matriz mensagem (1) e matriz chave secreta (2) construídas a partir da posição das letras no alfabeto, identificadas em ordem crescente.

A seguir, o texto criptografado é obtido a partir da multiplicação da matriz (1) pela (2). Este resultado, a matriz cifrada (3), é a mensagem que será transmitida ao receptor (Figura 9).

Figura 9. Matriz cifrada (3) resultante da multiplicação da matriz (1) pela (2).

Para decifrar o texto, o receptor inicialmente deve encontrar a matriz inversa (4) da matriz chave secreta (2). Para obtê-la, este deve resolver a equação descrita na Figura 10.

Figura 10. Equação para cálculo da matriz inversa (4).

Lembrando que a matriz identidade (5) é uma matriz quadrada, onde os elementos que pertencem à diagonal principal são iguais a “1”, e os demais, iguais à zero (Figura 11).

Figura 11. Matriz inversa (4), que será calculada, e matriz identidade (5).

A Figura 12 ilustra a equação construída para o cálculo e o resultado obtido.

Figura 12. Equação construída para cálculo da matriz inversa (4).

Por fim, o receptor utiliza a matriz inversa na equação ilustrada na Figura 13 para recuperar a matriz mensagem (1), conforme apresentado na Figura 14.

Figura 13. Equação para decifrar a mensagem original.

Figura 14. Matriz mensagem (1) resultante da multiplicação da matriz (3) pela (4).

Além da álgebra linear, a teoria dos números também é muito explorada na criptografia simétrica, especialmente em seus aspectos relacionados à fatoração de números extensos. Segundo Emílio Tissato Nakamura e Paulo Lício de Geus, autores do livro Segurança de redes em ambientes cooperativos, um problema matemático é considerado seguro quando a solução não é encontrada em até um milhão de anos, processado ininterruptamente por 50 mil computadores. Independentemente das propriedades empregadas, basicamente duas abordagens são suportadas para a cifragem e decifragem das mensagens:

Fluxo: também conhecido como cifra em cadeia, opera a mensagem bit a bit ou byte a byte, de maneira incremental;

Bloco: o texto claro é agrupado em blocos, com tamanho fixo, por exemplo, de 64 ou 128 bits, para aplicação das operações de substituição e transposição.

Atualmente, diversos algoritmos simétricos são utilizados. Entre os mais conhecidos, destacam-se:

DES (Data Encryption Standard): proposto na década de 1970, a partir do algoritmo LUCIFER desenvolvido pela IBM. Padrão adotado pelos Estados Unidos em 1976 que cifrava em blocos com chave secreta de 56 bits. Atualmente, é considerado inseguro, pois teve sua primeira mensagem cifrada desvendada em 1997, em um concurso patrocinado pela empresa RSA Security, no qual criptoanalistas utilizaram a técnica de força bruta (ver Nota DevMan 1);

3DES (Triple Data Encryption Standard): variação do algoritmo DES que opera em três estágios de cifragem em cascata. Com isto, foi possível empregar chaves com até 168 bits, tornando-se mais seguro que seu antecessor, porém mais lento;

IDEA (International Data Encryption Algorithm): criado em 1991 e patenteado pela empresa suíça Ascom Systec, é estruturado conforme as mesmas linhas gerais do DES, porém, com chave de 128 bits;

AES (Advanced Encryption Standard): sucessor do DES, este emprega o algoritmo Rijndael, escrito por Vincent Rijmen e Joan Daemen, baseado em cifragem por blocos, com chaves de 128, 192 ou 256 bits. Em 2001, foi anunciado como novo padrão de criptografia utilizado pelos Estados Unidos, após cinco anos em processo de padronização;

RC6 (Rivest Cipher 6): última versão de uma série de cifradores (RC2, RC3, RC4 e RC5) desenvolvidos pela RSA Security, destaca-se por sua simplicidade. Utiliza cifragem em blocos e caracteriza-se por sua flexibilidade e possibilidade de parametrização. A chave secreta também pode ter qualquer comprimento (por exemplo, 128, 192 ou 256 bits).

Nota DevMan 1. Força Bruta

Força bruta é um algoritmo trivial que consiste em enumerar todos os possíveis candidatos de uma solução e verificar se cada um satisfaz o problema.

Conforme citado anteriormente, se por um lado, a principal característica da criptografia simétrica está relacionada ao seu baixo custo computacional, por outro, existem algumas restrições que dificultam sua adoção como único método para envio de mensagens sigilosas:

• As mensagens não podem ser assinadas, nem é possível o uso de certificados digitais (este tópico será exposto nas seções posteriores). Como assegurar sua autenticidade?

• Existem inúmeras dificuldades na distribuição da chave secreta entre o emissor e o receptor da mensagem. Como compartilhá-la sem depender de um terceiro envolvido?

• Cada comunicação requer a utilização de uma chave secreta diferente. Suponha um emissor que deseja enviar uma mensagem sigilosa para cinco destinatários diferentes (Figura 15). Como controlar e gerenciar o uso destas?

Figura 15. Chaves privadas utilizadas na criptografia simétrica.

Assim, a criptografia assimétrica surge como alternativa para assegurar a confidencialidade das mensagens, além de possibilitar um mecanismo para distribuição de chaves, integridade, não-repúdio e autenticidade.

Criptografia assimétrica

Este método de criptografia é fundamentado em um par de chaves relacionadas matematicamente entre si: a chave pública – distribuída para qualquer usuário que deseja transmitir uma informação confidencial – e a chave privada ou secreta – mantida em segredo por seu proprietário. Sua principal característica baseia-se no fato de a mensagem que for cifrada com uma chave (pública ou privada) somente poderá ser decifrada com a outra (privada ou pública, respectivamente).

As chaves são criadas por meio de funções matemáticas de difícil inversão para impedir a descoberta da chave privada a partir da pública. Para tanto, emprega-se números inteiros aleatórios extremamente extensos, da ordem de centenas de dígitos decimais (centenas ou milhares de bits), impedindo que um sistema distribuído de computadores avançados possa testar todas as combinações possíveis em tempo hábil. Analogamente à criptografia simétrica, também são empregados problemas matemáticos de difícil solução para cifragem das mensagens, entre eles (segundo Raul Fernando Weber e Vinicius Gadis Ribeiro, em seu artigo Problemas computacionais para esquemas de criptografia de chave pública):

Fatoração de números inteiros: dados dois números primos extensos, o cálculo de seu produto é uma operação simples. Entretanto, supondo que somente o resultado seja conhecido, a operação para determinar quais foram os números que o originaram (chamada fatoração) é complexa e onerosa para os computadores. Por exemplo, calcular o produto de 759.167 por 999.667 é uma operação simples que resulta em 758.914.197.389; contudo, a partir deste valor, não existe algoritmo eficiente para determinar quais foram os números primos que o geraram;

Mochila: é um problema de otimização combinatória que consiste em preencher uma mochila com objetos de diferentes pesos e valores. O objetivo principal é carregar o maior valor possível, não ultrapassando o peso máximo estabelecido. Para tanto, pode-se empregar a enumeração exaustiva, determinando-se todas as soluções possíveis e posteriormente comparando-as para identificar a melhor. Porém, já se observou que mesmo para os problemas pequenos, com apenas 20 itens, precisam ser calculadas mais de um milhão de soluções, tornando a abordagem de enumeração exaustiva inviável;

Logaritmo discreto em campos finitos: em termos simples, o logaritmo é o expoente que uma base deve ter para produzir certa potência. Por exemplo, o logaritmo de 81 na base 3 é 4, pois 4 é o expoente que a base 3 deve usar para resultar 81. O problema do logaritmo discreto consiste na resolução da equação ilustrada na Figura 16: dado um número primo extenso P e os números G e Y, determinar o valor do expoente A. Para este problema, não é conhecido algoritmo eficiente que possibilite identificar sua solução.

Figura 16. Equação do problema do logaritmo discreto.

Para garantir a confidencialidade, o emissor deve utilizar a chave pública do receptor da mensagem para cifrar o texto claro que será transmitido. Desta forma, somente o destinatário será capaz de decifrá-la, por intermédio de sua chave privada, conforme ilustra a Figura 17.

Figura 17. Aplicação da criptografia assimétrica para obtenção da confidencialidade.

Já para assegurar a autenticidade de uma mensagem, o emissor da informação deve utilizar sua chave privada para cifrá-la. Assim, qualquer pessoa que possua a chave pública deste remetente poderá decifrá-la. Observe que o sucesso na decodificação do texto criptografado indica que este foi gerado pela origem esperada, por meio da chave privada (Figura 18).

Figura 18. Implementação da criptografia assimétrica para obtenção da autenticidade.

A obtenção de confidencialidade e autenticidade em uma mesma transmissão requer que o texto claro seja cifrado inicialmente com a chave privada do emissor e, a seguir, com a chave pública do receptor. O destinatário, ao receber a mensagem, deverá decifrá-la primeiramente com sua chave privada e, em seguida, com a chave pública do remetente (Figura 19).

Figura 19. Uso da criptografia assimétrica para obtenção da confidencialidade e autenticidade.

Destarte, dependendo da maneira como a chave pública e a chave privada são utilizadas e por quem, diferentes objetivos são alcançados:

Envio sigiloso dos dados: chave pública do destinatário;

Autenticidade de mensagem: chave privada do remetente;

Decifragem do texto criptografado: chave privada do destinatário;

Verificação da autenticidade da mensagem: chave pública do remetente.

A criptografia assimétrica suporta a criação de um resumo criptográfico (message digest), também conhecido como função hash, que tem por objetivo assegurar a integridade de um documento digital, quando este for assinado digitalmente. Suas principais propriedades são:

Unidirecionalidade: deve ser computacionalmente inviável realizar a operação inversa, ou seja, a partir do resumo, obter o texto claro;

Difusão: mensagens diferentes produzem resultados completamente distintos (a alteração de um único bit na informação original deve mudar aproximadamente metade dos bits do hash);

Facilidade de cálculo: a obtenção do resumo criptográfico é simples e pouco onerosa em relação ao processamento computacional necessário para seu cálculo;

Compressão: o resultado obtido possui tamanho fixo (por exemplo, 128 ou 256 bits), independentemente do tamanho do texto claro de entrada;

Colisão: é computacionalmente impossível encontrar duas mensagens que gerem resumos criptográficos iguais.

Assim, ao invés de cifrar a mensagem completa com a chave privada do emissor e, a seguir, com a chave pública do receptor, conforme ilustrado na Figura 19, para assegurar autenticidade e confidencialidade, pode-se gerar seu resumo (hash) e criptografar somente este último com a chave privada do emissor, obtendo-se a assinatura digital. Em seguida, esta deve ser adicionada ao texto claro, gerando a mensagem assinada, que será cifrada com a chave pública do receptor (Figura 20).

Figura 20. Criação da assinatura digital e da mensagem assinada para transmissão criptografada com a chave pública do receptor (confidencial).

A recuperação da mensagem original e a verificação da assinatura digital estão descritas na Figura 21. O receptor decifra inicialmente o texto criptografado com sua chave privada, obtendo a mensagem assinada. Posteriormente, emprega a chave pública do remetente para recuperar o resumo criptográfico, que será comparado com o resumo calculado a partir do texto claro (que foi decifrado). Se forem iguais, a assinatura digital foi validada (garantindo a integridade, o não-repúdio e a autenticidade). Caso contrário, esta é invalidada.

Figura 21. Recuperação e validação da assinatura digital.

Entre os algoritmos assimétricos mais conhecidos, destacam-se:

RSA (Ronald Rivest, Adi Shamir e Leonard Adleman fundadores da empresa RSA Security): criado em 1977, foi o primeiro procedimento a suportar criptografia e assinatura digital. É um dos métodos de chave assimétrica mais utilizados atualmente. Seu funcionamento consiste no produto de dois números primos extensos, que para ser desvendado, depende da fatoração de números inteiros – um problema computacionalmente inviável. Em 1999, uma chave RSA de 512 bits foi revelada com o apoio de cientistas de diversos países. Para tanto, foram necessários sete meses de trabalho e processamento distribuído de aproximadamente 300 computadores;

ElGamal: desenvolvido por Taher ElGamal em 1984 para ser utilizado no gerenciamento de chaves. Sua segurança advém do problema do logaritmo discreto, envolvendo a manipulação matemática de grandes quantidades numéricas;

Diffie-Hellman: proposto por Whitfield Diffie e Martin Hellman em 1976, foi o primeiro algoritmo de chave assimétrica projetado para permitir a distribuição das chaves privadas utilizadas na criptografia simétrica. Também é baseado no problema do logaritmo discreto e, atualmente, permanece em uso;

Curvas Elípticas: método apresentado em 1985 sugerindo a utilização de curvas elípticas para os sistemas criptográficos de chave assimétrica já existentes, como o ElGamal e o Diffie-Hellman. Estas curvas possuem o potencial de proverem sistemas mais seguros, com chaves de menor tamanho;

DSA (Digital Signature Algorithm): destinado ao suporte das assinaturas digitais, foi descrito 1991 e patenteado pelo governo dos Estados Unidos. Permite a utilização de chaves com até 1024 bits e fundamenta-se no problema do logaritmo discreto.

Para obtenção dos resumos criptográficos (funções hash), são comumente usados os seguintes algoritmos:

MD5 (Message Digest Algorithm 5): função hash de 128 bits unidirecional desenvolvida pela RSA Security em 1991. Já existem vulnerabilidades conhecidas relacionadas às colisões dos resumos criptográficos. (Colisão é uma situação que ocorre quando duas mensagens distintas possuem o mesmo valor de hash.);

SHA (Secure Hash Algorithm): a família SHA contempla as versões 0, 1 e 2. A função mais usada nesta família, a SHA-1 (160 bits), é suportada em diversas aplicações e protocolos de segurança, e foi considerada a sucessora do MD5, embora ambas tenham vulnerabilidades comprovadas. As variações SHA-224, SHA-256, SHA-384, e SHA-512 são conhecidas como SHA-2.

A criptografia assimétrica possui diversas vantagens, quando comparada à simétrica, entre elas: o fato da chave secreta não ser compartilhada, ou seja, esta é mantida em segredo por seu proprietário, que divulga apenas a chave pública (Figura 22); provê um mecanismo para distribuição (troca) das chaves privadas utilizadas na criptografia simétrica; e, possibilita autenticação, não-repúdio e integridade, através da assinatura digital.

Figura 22. Chaves privadas e públicas necessárias na criptografia assimétrica.

Por outro lado, a principal desvantagem da criptografia assimétrica está relacionada ao seu desempenho, pois os métodos são mais lentos e necessitam de maior capacidade de processamento dos sistemas onde são executados (pela sua natureza matemática, são computacionalmente intensivos, em média, cerca de 60 a 70 vezes mais lentos). Assim, os dois sistemas criptográficos são utilizados de maneira complementar: inicialmente, emprega-se um algoritmo assimétrico, para autenticação e estabelecimento de um canal seguro para o compartilhamento da chave privada, que será utilizada pela criptografia simétrica, que também assegura confidencialidade, mas com menor custo computacional.

O gerenciamento das chaves, em um sistema de criptografia assimétrica, deve considerar dois importantes aspectos: primeiro, a necessidade de localização da chave pública do destinatário da mensagem; segundo, a garantia de que a chave pública obtida seja realmente deste. Para resolver estas questões, foram criados os certificados digitais e a infraestrutura de chave pública (Public Key Infrastructure – PKI), que serão apresentados na próxima seção.

Certificados digitais e a infraestrutura de chave pública

Suponha que um usuário (Paulo) deseja enviar uma mensagem a outro (João). Para tanto, ele solicita a chave pública de João, a fim de cifrar a informação que será transmitida. Um atacante, notando este pedido, pode interceptar a resposta de João e falsificar a chave pública que será remetida a Paulo. Analogamente, este intruso pode fazer o mesmo com João, ou seja, expedir uma chave pública forjada. Deste modo, João e Paulo, ao invés de se comunicarem diretamente, na verdade estarão enviando o texto criptografado para um terceiro, que poderá decifrá-lo, observar seu conteúdo e cifrá-lo novamente. Ou ainda, alterar as informações antes de enviá-las ao destinatário legítimo.

Para evitar este tipo de ataque, foram criados os certificados digitais. Tais certificados consistem em chaves públicas assinadas por uma entidade de confiança (uma autoridade de certificação ou CA – Certification Authority – que atua como um cartório eletrônico), mitigando as tentativas de substituição de uma chave pública por outra. Além da chave pública, os certificados digitais contêm informações como: nome, endereço, validade do certificado, dados da autoridade certificadora, entre outras. Veja um exemplo na Figura 23.

Figura 23. Exemplo de um certificado digital.

Uma autoridade certificadora também tem a responsabilidade de manter e divulgar uma lista com os certificados revogados (Certificate Revocation List – CRL) – os quais podem ter sido roubados, perdidos, ou estarem sem utilidade. As CAs apresentam a possibilidade de estarem encadeadas em hierarquias de certificação, nas quais a CA de um nível inferior valida sua assinatura com uma CA de nível hierárquico superior.

Por fim, a complexidade relacionada às funções de gerenciamento dos certificados digitais resultou na criação de uma infraestrutura de chave pública, que é responsável pela distribuição, gerenciamento, expiração, nova emissão de certificados expirados, backup e revogação das chaves públicas e privadas de usuários, equipamentos ou serviços. Para tanto, a PKI define as técnicas, as práticas e os procedimentos a serem adotados pelas entidades a fim de estabelecer um sistema de certificação digital baseado em criptografia assimétrica.

Conclusões

A criptografia é a ciência que permite tornar uma informação incompreensível para pessoas que não estejam autorizadas a recebê-la. Embora tão antiga quanto à própria escrita, foi amplamente divulgada somente na década de 1970, com o surgimento dos computadores. Estes tornaram possível a repetição dos processos de substituição e transposição, para diminuir a frequência dos símbolos utilizados e aumentar a dificuldade dos criptoanalistas.

Os sistemas criptográficos são agrupados em duas grandes categorias: simétricos e assimétricos. Os algoritmos simétricos (DES, 3DES, IDEA, AES e RC6, entre outros) são eficientes e rápidos, exigindo o uso menos intenso de processamento nos computadores; já os métodos assimétricos (RSA, ElGamal, Diffie-Hellman, Curvas Elípticas, DAS, etc.), pela sua natureza matemática, em média, são de 60 a 70 vezes mais lentos.

A criptografia assimétrica possui diversas vantagens quando comparada à simétrica. Entre as mais relevantes: o fato da chave secreta não ser compartilhada; um mecanismo para distribuição das chaves privadas; e a assinatura digital. Por outro lado, sua principal desvantagem está relacionada ao desempenho. Assim, os dois sistemas criptográficos passaram a ser utilizados conjuntamente, aproveitando suas melhores características.

A evolução da criptografia foi motivada primariamente pela necessidade da transmissão de informações sigilosas, que subsidiavam a tomada de decisões estratégicas nas áreas militares e civis. O célere crescimento da Internet e sua utilização massiva também apresentaram novos desafios relacionados à segurança da informação. Neste contexto, os sistemas criptográficos são a melhor ferramenta para atender a estes requisitos atuais, presentes nas transações eletrônicas realizadas na rede mundial de computadores.

Links

Artigo “Criptografia Contemporânea”, escrito por Raul Fernando Weber
http://www.inf.ufsc.br/~mauro/curso/redes/cripto.doc

Artigo “Desenvolvimento Histórico da Criptografia”, escrito por Jorge Loureiro Dias
http://www.uniplandf.edu.br/revista/vol3n3.pdf

Artigo “Problemas computacionais para esquemas de criptografia de chave pública”, escrito por Raul Fernando Weber e Vinicius Gadis Ribeiro
http://dainf.ct.utfpr.edu.br/~maziero/static/ceseg/wseg04/2413.pdf

Artigo “Teoria dos Números e Criptografia”, escrito por André L. B. Cavalcante
http://system7.upis.br/revistavirtual/Cavalcante_%20Teoria%20dos%20N%FAmeros%20e
%20Criptografia_2005_UPIS.pdf

Livro “Segurança de redes em ambientes cooperativos”, escrito por Emílio Tissato Nakamura e Paulo Lício de Geus
Editora Futura – 2° edição – 2003