Buscar

TCC - Final

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIAS E TECNOLOGIA DO CEARÁ 
CURSO SUPERIOR DE ENGENHARIA DE TELECOMUNICAÇÕES 
FORNECENDO SEGURANÇA NO CORREIO ELETRÔNICO 
USANDO PGP 
MATHEUS FREIRE E SILVA DO NASCIMENTO 
FORTALEZA, NOVEMBRO DE 2014 
ii 
MATHEUS FREIRE E SILVA DO NASCIMENTO 
 
TÍTULO DA MONOGRAFIA 
Esta Monografia foi julgada adequada para obtenção do Título de "Engenheiro de 
Telecomunicações", aprovada em sua forma final pelo Departamento de Telemática do 
Instituto Federal de Educação, Ciências e Tecnologia do Ceará - IFCE. 
___________________________________________ 
Edson da Silva Almeida, PhD. 
Coordenador do Curso 
Banca Examinadora: 
________________________ 
Nídia Glória da Silva Campos, Msc. 
Orientador 
 
________________________ 
José Wally Mendonça Menezes, PhD. 
 
________________________ 
Moacyr Regys, Msc. 
 
iii 
 AGRADECIMENTOS 
Agradeço primeiramente a Deus, por tudo que tem providenciado em minha vida; aos meus 
pais que sempre me ajudaram e estão sempre ao meu lado me apoiando; a professora Nídia 
pelas orientações e paciência que tanto contribuíram para o desenvolvimento desse trabalho; 
ao professor Wally pelos seus conselhos; ao professor Natarajan Meghanathan por ter me 
aceito em sua disciplina de Computer Security na Jackson State University, incentivando o 
meu desenvolvimento na área de computação segura. 
iv 
SUMÁRIO 
Lista de Figuras 
Lista de Tabelas 
Lista de Abreviaturas 
Resumo 
Abstract 
1. CAPÍTULO 1 – APRESENTAÇÃO .................................................................................................... 1 
1.1 INTRODUÇÃO .............................................................................................................. 1 
1.2 OBJETIVO .................................................................................................................... 1 
1.2.1 Objetivo Geral .......................................................................................................... 2 
1.2.2 Objetivos Específicos ................................................................................................ 2 
1.3 METODOLOGIA ............................................................................................................ 3 
1.4 DELIMITAÇÃO DA PESQUISA ........................................................................................ 3 
1.5 ESTRUTURA DO TRABALHO .......................................................................................... 3 
2. CAPÍTULO 2 – MODELOS DE CRIPTOGRAFIA ............................................................................. 5 
2.1 INTRODUÇÃO .............................................................................................................. 5 
2.2 CRIPTOANÁLISE .......................................................................................................... 6 
2.2.1 Sistemas de Criptoanálise ......................................................................................... 7 
2.3 CRIPTOGRAFIA SIMÉTRICA ......................................................................................... .8 
2.4 CRIPTOGRAFIA ASSIMÉTRICA ...................................................................................... 10 
2.5 CERTIFICADO DIGITAL ............................................................................................. ...12 
2.6 ASSINATURA DIGITAL..................................................................................................13 
2.7 FUNÇÃO HASH ............................................................................................................14 
2.8 SISTEMAS HÍBRIDOS ...................................................................................................15 
3. CAPÍTULO 3 – PGP ........................................................................................................................ 17 
3.1 INTRODUÇÃO ............................................................................................................. 17 
3.2 O QUE É O PGP ........................................................................................................... 18 
3.3 DESCRIÇÃO OPERACIONAL .......................................................................................... 19 
3.3.1 Autenticação ......................................................................................................... 19 
3.3.2 Confidencialidade ................................................................................................. 21 
3.3.3 Compressão .......................................................................................................... 25 
3.3.4 Compatibilidade de E-mail ................................................................................... 27 
3.3.5 Segmentação ........................................................................................................ 27 
3.4 CHAVES NO PGP ......................................................................................................... 27 
v 
3.4.1 Tipos de Chaves ................................................................................................... 27 
3.4.2 Chaves de Sessão ................................................................................................. 28 
3.4.3 Chaves Públicas e Privadas .................................................................................. 28 
3.4.4 Chaves baseadas em Passphrase ........................................................................... 30 
3.5 ARMAZENAMENTO DE CHAVES (KEY RINGS) ................................................................ 31 
3.6 MANUTENÇÃO DE CHAVES PÚBLICAS ........................................................................... 33 
3.7 REDES DE CONFIANÇA E CAMPOS DE TRUST ............................................................... 33 
3.8 REVOGAÇÃO DE CHAVES ............................................................................................. 35 
. CAPÍTULO 4 – IMPLEMENTAÇÃO DO PGP UTILIZANDO O GPG ............................................. 36 
4.1 INTRODUÇÃO ............................................................................................................. 36 
4.2 MATÉRIAIS UTILIZADOS ............................................................................................. 36 
4.3 O QUE É O GPG? ......................................................................................................... 38 
4.4 MÉTODO .................................................................................................................... 38 
4.5 CONCLUSÃO ............................................................................................................... 45 
5 CAPÍTULO 5 – COMENTÁRIOS FINAIS ........................................................................................ 46 
5.1 CONCLUSÕES ............................................................................................................. 46 
5.2 SUGESTÕES PARA TRABALHOS FUTUROS ..................................................................... 47 
7. REFERÊNCIAS BIBLIOGRAFICAS ............................................................................................... 49 
 
vi 
LISTA DE FIGURAS 
Figura 4.1 – Instalação do GPG............................................................................................... 38 
Figura 4.2 – Instalação do Agente GPG....................................................................................39 
Figura 4.3 – Criação dos Usuários............................................................................................39 
Figura 4.4 – Tipos de chaves que podem ser usadas.................................................................40 
Figura 4.5 – Informações do usuário.........................................................................................40Figura 4.6 – Passphrase e Criação das chaves assimétricas......................................................41 
Figura 4.7 – Exportando a chave pública do destinatário.........................................................41 
Figura 4.8 – Conteúdo da chave pública do destinatário..........................................................42 
Figura 4.9 – Copiando a chave pública do destinatário para o diretório do remetente.............42 
Figura 2.1- Criptografia Simétrica. ........................................................................................... 09 
Figura 2.2- Criptografia Assimétrica. ....................................................................................... 11 
Figura 2.3- Assinatura digital simples. ..................................................................................... 13 
Figura 3.1– Processo de criação da assinatura digital. ............................................................. 20 
Figura 3.2 – Geração da mensagem criptografada no PGP. ..................................................... 21 
Figura 3.3 – Processamento para decifrar uma mensagem no PGP. ........................................ 22 
Figura 3.4– Ilustração do funcionamento do PGP .................................................................... 23 
Figura 3.5 – Diagrama de blocos do funcionamento da geração da mensagem no PGP. . Error! 
Bookmark not defined. 
Figura 3.6 – Diagrama de blocos do funcionamento da recuperação da mensagem original no 
PGP. .......................................................................................... Error! Bookmark not defined. 
Figura 3.7 – Estrutura de mensagem no PGP. .......................................................................... 30 
Figura 3.8 – Estrutura do Private-Key Ring. ............................ Error! Bookmark not defined. 
Figura 3.9 – Estrutura do Public-Key Ring.. ............................................................................ 31 
vii 
Figura 4.10 – Verificação da chave pública do destinatário no diretório do remetente............42 
Figura 4.11 – Importando a chave.............................................................................................43 
Figura 4.12 – Criação da mensagem.........................................................................................43 
Figura 4.13 – Criptografando a mensagem com a chave pública do destinatário.....................43 
Figura 4.14 – Mensagem cifrada...............................................................................................44 
Figura 4.15 – Copiando a mensagem criptografada para o diretório do remetente..................44 
Figura 4.16 – Verificação da presença da mensagem criptografada no diretório do destinatário 
...................................................................................................................................................44 
Figura 4.17 – Mensagem decriptada ........................................................................................45 
Figura 4.18 – Conteúdo da mensagem......................................................................................45 
 
 
 
viii 
LISTA DE TABELAS 
Tabela 2.5 – Protocolos com sistemas híbridos ........................................................................ 15 
 
Tabela 2.1 – Estimativa de tempo para quebra de chaves criptográficas.7Error! Bookmark 
not defined. 
Tabela 2.2 – Principais algoritmos de criptografia simétrica ..................................................... 8 
Tabela 2.3 – Principais algoritmos de criptografia assimétrica. ............................................... 10 
Tabela 2.4 – Principais funções de hashing ............................................................................. 14 
ix 
LISTA DE ABREVIATURAS 
PGP Pretty Good Privacy 
GPG GNU Privacy Guard 
GCHQ Government Communications Headquarters 
NSA National Security Agency 
FPGA Field-programmable gate array 
AES Advanced Encryption Standard 
DES Data Encryption Standard 
3DES Triple DES 
NIST National Institute of Standards and Technology 
IDEA International Data Encryption Algorithm 
CAST Carlisle Adams and Stafford Tavares 
RSA Ron Rivest, Adi Shamir 
ICP Infraestrutura de Chave Pública 
SHA Secure Hash Algorithm 
MD Message-digest 
IPsec Internet Protocol Security 
SSL Security Socket Layer 
TLS Transport Layer Security 
RSADSI RSA Data Security 
S/MIME Secure/Multipurpose Internet Mail Extensions 
BBS Bulletin Board System 
ANSI American National Standards Institute 
ASCII American Standard Code For Information Interchange 
x 
DSA Digital Signature Algorithm 
DSS Digital Signature Standard 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
xi 
RESUMO 
A segurança na transmissão de informações é algo essencial, pois em um ambiente de rede 
inseguro, certas mensagens não podem ser divulgadas para usuários não autorizados. Esta 
segurança é fornecida pelos diversos sistemas criptográficos existentes que buscam oferecer 
aos usuários autenticidade, integridade e confidencialidade. O PGP é uma aplicação de 
segurança que emprega métodos de criptografia simétrica, assimétrica e função de hash, 
sendo assim considerado um modelo híbrido que tem como objetivo a proteção das 
informações trocadas por correio eletrônico. Na realização do trabalho foi utilizado o GPG 
1.4.11, uma versão livre para ambiente Linux. Este trabalho consiste em uma simulação onde 
será enviada uma mensagem de um remetente para um destinatário e esta mensagem passará 
pelos sistemas de criptografia empregados pelo GPG, mostrando assim ao usuário a 
simplicidade e eficiência na utilização da ferramenta. 
 
xii 
ABSTRACT 
The transmission of information in a secure way is something essential, because in a insecure 
environment messages can not be disclosed to unauthorized users. This security is provided 
by the various cryptographic systems that ensure authenticity, integrity and confidentiality to 
the users. PGP is a security application that employs methods for symmetric encryption, 
asymmetric and hash function, and therefore considered a hybrid model that aims to protect 
data exchanged by email. In this project it was used GPG 1.4.11 a free version for Linux 
environments. This project consists of a simulation where a message is sent from a sender to a 
recipient and this message will go through the encryption systems used by GPG, thus showing 
the user the simplicity and efficiency in the utilization of the tool.
1 
1. CAPÍTULO 1 – APRESENTAÇÃO 
1.1 Introdução 
 Nós estamos nos dirigindo a um futuro no qual as nações serão todas entrecortadas por 
redes de dados de fibra óptica de alta capacidade, tornando a questão da segurança da 
informação como algo de extrema importância para as comunicações, segurança esta que diz 
respeito à proteção de determinados dados, com a intenção de preservar seus respectivos 
valores para uma organização ou um indivíduo. 
 Podemos entender como informação todo o conteúdo ou dado valioso para um 
indivíduo, que consiste em qualquer conteúdo com capacidade de armazenamento ou 
transferência, que serve a um determinado propósito e que é de utilidade do ser humano. 
 O crescimento explosivo em sistemas de computadores e suas interconexões através de 
redes têm aumentado a dependência das organizações e indivíduos sobre as informações 
armazenadas e comunicadas, levando a uma maior consciência da necessidade de proteger 
dados e recursos. O termo computação segura refere-se à proteção conferida a um sistema de 
informação automatizado, a fim de atingir os objetivos aplicáveis de preservaçãoda 
integridade, disponibilidade, confidencialidade dos recursos do sistema de informação, 
incluindo hardware, software, firmware e dados. O objetivo da maioria dos hackers, 
independente de seus negócios, é roubar informações do usuário. Seja através de ataques 
discretos e individuais ou em grande escala por meio de sites populares e bancos de 
informação financeira. [Assunção, 2011] 
2 
 A criptografia que consiste em mascarar uma informação com o objetivo de esconder 
o seu real conteúdo vem amadurecendo ao longo dos anos, levando ao desenvolvimento de 
práticas e aplicações prontamente disponíveis para reforçar a segurança da rede contra ataques 
de segurança. A segurança nas redes consiste em medidas para deter, prevenir e corrigir 
vulnerabilidades presentes em sistemas para que a troca de informação possa ocorrer de forma 
segura. 
 O PGP é um programa de criptografia altamente seguro, originalmente escrito por 
Philip Zimmermann. Nos últimos anos o PGP conquistou milhares de entusiastas em todo o 
mundo e tornou-se de fato um padrão para a criptografia de correio eletrônico (e-mail), sendo 
uma das primeiras tecnologias de segurança amplamente utilizada na Internet. O site do PGP 
é acessado por mais de um milhão de vezes por mês por usuários de mais de 166 países 
[PGPI, 2007]. Versões do PGP estão disponíveis em domínio público, sendo possível 
encontrar o software PGP para diferentes sistemas operacionais, bem como uma grande 
quantidade de materiais de leitura interessante. 
 A idéia principal é oferecer confidencialidade e integridade, caso o usuário não queira 
que seu correio eletrônico particular (e-mail) ou documentos confidenciais sejam lidos ou 
modificados por mais ninguém. Não há nada errado em assegurar sua privacidade. 
Privacidade é algo tão natural e respeitável quanto a Constituição. O PGP dá o poder às 
pessoas para tomar sua privacidade em suas próprias mãos. 
1.2 Objetivo 
1.2.1 Objetivo Geral 
 Mostrar o funcionamento e as etapas para a configuração do programa PGP utilizando 
o GPG, versão open source para sistemas Linux, mostrando assim eficiência em assegurar a 
transmissão de informações entre usuários em uma rede. 
1.2.2 Objetivos Específicos 
• Estudar o conceito e a importância da criptografia. 
• Abordar as características e o funcionamento dos diversos tipos de sistemas 
criptográficos, mostrando vulnerabilidades que podem ser corrigidas com o uso 
desse mecanismo de segurança. 
• Abordar a importância da presença de segurança em um correio eletrônico 
particular. 
3 
• Estudar as características e importância do PGP. 
• Mostrar como utilizar e configurar o PGP em ambiente Linux através de comandos 
no terminal de controle, fornecendo ao usuário um modelo de solução para o 
mantimento da integridade, confidencialidade e autenticidade no correio 
eletrônico. 
 
1.3 Metodologia 
 Primeiro foi realizado um estudo geral sobre os diferentes tipos de criptografia e 
algoritmos que são utilizados, ressaltando o funcionamento, as características e as debilidades 
de cada um. Posteriormente foi ressaltada a importância da segurança das informações 
presentes em e-mails e como o PGP com sua eficiência veio tornar possível uma comunicação 
segura entre duas ou mais partes. Por fim foi realizada uma simulação do funcionamento e 
configuração do PGP, utilizando o GPG que é uma versão open source do PGP para sistemas 
Linux. 
 Tutorias, artigos e livros foram usados para fornecer um maior embasamento teórico e 
uma melhor solução para o funcionamento da simulação, mostrando assim a eficiência e a 
simplicidade de se utilizar um programa que fornece ao usuário o que de melhor tem nos 
sistemas de criptografias abordados nos capítulos posteriores. 
1.4 Delimitação da Pesquisa 
 Esta monografia baseia-se em estudos realizados na cadeira de Computer Security na 
Jackson State University e pesquisas laboratoriais com foco em segurança de rede. Visando 
mostrar a importância da utilização do PGP em e-mails para preservar os princípios básicos 
de segurança, oferecendo aos usuários garantia de que a informação não será comprometida. 
1.5 Estrutura do Trabalho 
 No capítulo 1, é realizado uma breve introdução sobre a importância das informações 
comunicadas e a necessidade da utilização de um correio eletrônico que ofereça segurança aos 
usuários para transmissão destas informações, assim como foi realizada a identificação do 
problema a ser abordado no trabalho que consiste na quebra da integridade e 
confidencialidade na comunicação por fontes más intencionadas, levando aos usuários e 
4 
organizações a tentarem incorporar mecanismos de segurança para proteger a informação a 
ser transmitida, sendo assim a utilização do PGP uma das soluções viáveis. 
 No capítulo 2 foram abordados os sistemas de criptografia de chave pública e de chave 
privada que oferecem base para o funcionamento do PGP, foram mostradas as melhores 
qualidades de cada um, assim como debilidades e o funcionamento para que o entendimento 
do PGP que utiliza as melhores características de cada um possa ser compreendido no 
capítulo 3, onde os componentes do PGP foram estudados, mostrando assim sua eficiência e o 
seu funcionamento. 
 No capítulo 4 foi realizada a simulação do programa PGP, com a utilização do GPG, 
versão open source para ambiente Linux, como sendo uma alternativa para que usuários 
possam utilizar este modelo de simulação com o objetivo principal de terem suas mensagens 
trocadas com segurança e privacidade, evitando o roubo de informações que podem ser 
essenciais para certos usuários ou empresas. 
 A conclusão do trabalho é realizada no capítulo 5, onde é ratificada a questão da 
importância da utilização do PGP nos sistemas, assim como perspectivas de estudos para 
melhorar a segurança das informações. 
5 
2. CAPÍTULO 2 – MODELOS CRIPTOGRAFIA 
2.1 Introdução 
A criptografia é uma arte ou ciência de escrever ocultamente talvez tão antiga quanto à 
própria escrita, hoje em dia é um dos métodos mais eficientes de se transferir informação, sem 
que haja a possibilidade de interferência por parte de terceiros. O objetivo da criptografia é 
transformar um conjunto de informação legível, como um e-mail, por exemplo, em um 
emaranhado de caracteres impossível de ser compreendido. Baseia-se no conceito de chaves, 
apenas quem tem a chave de decriptação é capaz de recuperar o e-mail em formato legível. 
[Kurose, 2010] 
Ao longo da história surgiram alguns modelos criptográficos elaborados por usuários 
com o objetivo de protegerem suas informações para que as mesmas não fossem interceptadas 
por fontes mal intencionadas. O Código de César é um dos métodos de criptografia mais 
antigos que se tem notícia, seu funcionamento era básico, deslocando as letras do alfabeto de 
acordo com a chave. Assim, se a chave era 3, transformava-se a letra B em E, a letra A virava 
D e assim sucessivamente. [Silva, 2006] 
O mais interessante é que a tecnologia da criptografia não mudou muito até meados do 
século XX. Depois da Segunda Guerra Mundial, com o aparecimento do computador, a área 
realmente floresceu incorporando complexos algoritmos matemáticos. Durante a guerra, os 
ingleses ficaram conhecidos pelos seus esforços para decodificação de códigos, já os alemães 
desenvolveram uma máquina eletromecânica para criptografar e decriptografar, denominada 
de Enigma. Na verdade, esses trabalhos formaram a base para a ciência da computação 
moderna. [Souza, 2011] 
6 
Durante a chamada "Guerra Fria", entre Estados Unidos e União Soviética, foram 
criados e utilizados diversos métodos para esconder mensagens e estratégias. Desses esforços, 
surgiram outros tipos decriptografia, tais como: por chave simétrica, onde existe uma chave 
secreta que deve ser compartilhada pelos usuários; por chave assimétrica, onde existem duas 
chaves uma pública e uma privada, por hash e até a chamada criptografia quântica, que se 
encontra, hoje, em desenvolvimento. 
Neste capítulo será desenvolvido um estudo ao longo dos modelos criptográficos 
existentes e que são utilizados pelo PGP. Serão abordados os modelos de criptografia 
simétrico, assimétrico e função hash, entre outros mecanismos que foram implantados para 
fornecer aos usuários uma melhor segurança. 
2.2 Criptoanálise 
 Criptoanálise é a ciência que analisa e quebra informações seguras. Envolve uma série 
de combinações de raciocínio analítico, aplicação de ferramentas matemáticas, procura de 
padrões, paciência, determinação e muitas vezes sorte. As pessoas que participam desse 
esforço são denominadas criptoanalistas. Da fusão da criptografia com a criptoanálise, forma-
se a criptologia. 
 A criptoanálise tem se desenvolvido junto com a criptografia, cifras novas que estão 
sendo projetadas para substituir projetos velhos, e as novas técnicas de criptoanálise 
inventadas para quebrar os esquemas melhorados. Na prática, são vistos como os dois lados 
da mesma moeda, a fim de criar uma criptografia segura. A criptoanálise representa o esforço 
de decifrar mensagens sem que se tenha o conhecimento prévio da chave secreta que as gerou. 
[Moreno et al., 2005] 
 Uma criptoanálise bem sucedida influenciou sem dúvida a história; a habilidade de ler 
os segredos presumidos e as plantas de outros pode ser uma vantagem decisiva na tomada de 
decisões. Por exemplo, na 1º Guerra Mundial, quebrar o telegrama de Zimmermann, 
um telegrama codificado despachado pelo ministro do exterior do Império Alemão, Arthur 
Zimmermann, em 16 de janeiro de 1917, para o embaixador alemão no México no auge 
da Primeira Guerra Mundial, era fundamental para trazer os Estados Unidos para guerra. Os 
governos reconheceram por muito tempo os benefícios potenciais da criptoanálise para 
a inteligência militar e diplomática, e têm estabelecido as organizações dedicadas a quebrar os 
7 
códigos e as cifras de outras nações, por exemplo, GCHQ e o NSA, as organizações que são 
ainda muito ativas hoje. 
2.2.1 Sistemas de Criptoanálise 
 Muitos ataques de criptografia não são puramente matemáticos. Em ambientes nos 
quais a segurança das informações é vital, como em ambientes de desenvolvimento de alta 
tecnologia, deve-se tomar muito cuidado com o lixo, pois o usuário pode ter anotado uma 
chave em um papel que foi para o cesto de lixo. Além disso, as pessoas são vulneráveis à 
corrupção e outras formas de espionagem industrial, portanto ideal é que um grupo muito 
pequeno de pessoas conheça a chave criptográfica e, se possível, que ela seja repartida entre 
mais de uma pessoa, para que só com as duas ou mais partes se possa formar a chave original. 
 Em geral, os ataques para quebrar a criptografia baseiam-se em buscas exaustivas da 
chave criptográfica. Os ataques de força bruta consistem na verificação sistemática de todas 
as possíveis chaves e senhas até que as corretas sejam encontradas, no pior dos casos, isto 
envolveria percorrer todo o espaço de busca para encontrar a chave. [Moreno et al., 2005] 
A Tabela 2.1 mostra uma estimativa de tempo para quebra de chaves criptográficas 
por ataques de força bruta. As colunas indicam a capacidade computacional de quebrar a 
criptografia por cada grupo. 
Tamanho 
da chave 
Hacker 
individual 
Grupo Rede 
acadêmica 
Grande 
empresa 
Inteligência 
Militar 
40 bits Algumas 
semanas 
Alguns dias Algumas horas Alguns 
milissegundos 
Alguns 
milissegundos 
56 bits Alguns séculos Algumas 
décadas 
Alguns anos Algumas horas Alguns segundos 
64 bits Alguns 
milênios 
Alguns séculos Algumas 
décadas 
Alguns dias Alguns minutos 
112 bits Infinito Infinito Infinito Alguns séculos Alguns séculos 
128 bits Infinito Infinito Infinito Infinito Alguns milênios 
Tabela 2.1 – Estimativa de tempo para quebra de chaves criptográficas. Fonte: 
(Moreno et al., 2005) 
 Só para se ter uma idéia, um chip FPGA que custa US$ 100,00 quebra chaves de 40 
bits em uma hora e demora alguns meses pra quebrar uma chave de 56 bits. Com 25 chips 
8 
ORCA ao custo de US$ 1.000,00 podemos quebrar uma chave de 40 bits em quatro minutos e 
de 56 bits em 100 dias. 
 Com um hardware de US$ 100.000,00 as chaves de 40 bits podem ser quebradas em 
24 segundos e de 56 bits em dez dias. As agências de inteligência possuem sistemas que 
permitem quebrar chaves de 40 bits apenas sete segundos e 56 bits em 13 horas. 
2.3 Criptografia Simétrica 
 O modelo mais antigo de criptografia, em que a chave, isto é, o elemento que dá 
acesso à mensagem oculta trocada entre duas partes, é igual para ambas as partes e deve 
permanecer em segredo (privada). 
 A principal vantagem é a simplicidade, esta técnica apresenta facilidade de uso e 
rapidez para executar os processos criptográficos. Entenda que se as chaves utilizadas forem 
complexas a elaboração de um algoritmo de chave privada se torna bastante fácil, porém as 
possibilidades de interceptação são correlatas aos recursos empregados, entretanto sua 
utilização é considerável no processo de proteção da informação, pois quanto mais simples o 
algoritmo, melhor é a velocidade de processamento e facilidade de implementação. 
 O principal problema residente na utilização deste sistema de criptografia é que 
quando a chave de ciframento é a mesma utilizada para deciframento, ou esta última pode 
facilmente ser obtida a partir do conhecimento da primeira, ambas precisam ser 
compartilhadas previamente entre origem e destino, antes de se estabelecer o canal 
criptográfico desejado, e durante o processo de compartilhamento a senha pode ser 
interceptada, por isso é fundamental utilizar um canal seguro durante o compartilhamento, 
uma vez que qualquer um que tenha acesso à senha poderá descobrir o conteúdo secreto da 
mensagem. [Stallings, 2011] 
Algoritmo Bits Descrição 
 
AES 
 
128 
O Advanced Encryption Standard (AES) é uma cifra de bloco, anunciado 
pelo National Institute of Standards and Technology (NIST) em 2003, fruto 
de concurso para escolha de um novo algoritmo de chave simétrica para 
proteger informações do governo federal, sendo adotado como padrão pelo 
governo dos Estados Unidos, é um dos algoritmos mais populares, desde 
2006, usado para criptografia de chave simétrica, sendo considerado como o 
padrão substituto do DES. O AES tem um tamanho de bloco fixo em 128 
bits e uma chave com tamanho de 128, 192 ou 256 bits, ele é rápido tanto 
em software quanto em hardware, é relativamente fácil de executar e requer 
pouca memória. 
 
O Data Encryption Standard (DES) foi o algoritmo simétrico mais 
disseminado no mundo, até a padronização do AES. Foi criado pela IBM em 
9 
DES 56 
1977 e, apesar de permitir cerca de 72 quadrilhões de combinações, seu 
tamanho de chave (56 bits) é considerado pequeno, tendo sido quebrado por 
"força bruta" em 1997 em um desafio lançado na internet. O NIST que 
lançou o desafio mencionado, recertificou o DES pela última vez em 1993, 
passando então a recomendar o 3DES. 
3DES 112 ou 168 
O 3DES é uma simples variação do DES, utilizando o em três ciframentos 
sucessivos, podendo empregar uma versão com duas ou com três chaves 
diferentes. É seguro, porém muito lento para ser um algoritmo padrão. 
 
IDEA 
 
128 
O International Data Encryption Algorithm (IDEA) foi criado em 1991 por 
James Massey e Xuejia Lai e possui patente da suíça ASCOM Systec. O 
algoritmo é estruturado seguindo as mesmas linhas gerais do DES. Masna 
maioria dos microprocessadores, uma implementação por software do IDEA 
é mais rápida do que uma implementação por software do DES. O IDEA é 
utilizado principalmente no mercado financeiro e no PGP, o programa para 
criptografia de e-mail pessoal mais disseminado no mundo. 
Blowfish 32 a 448 
Algoritmo desenvolvido por Bruce Schneier, que oferece a escolha, entre 
maior segurança ou desempenho através de chaves de tamanho variável. O 
autor aperfeiçoou o no Twofish. 
 
Twofish 
 
128 
É uma das poucas cifras incluídas no OpenPGP. O Twofish é uma chave 
simétrica que emprega a cifra de bloco de 128 bits, utilizando chaves de 
tamanhos variáveis, podendo ser de 128, 192 ou 256 bits. Ele realiza 16 
interações durante a criptografia, sendo um algoritmo bastante veloz. A cifra 
Twofish não foi patenteada estando acessível no domínio público, como 
resultado, o algoritmo Twofish é de uso livre para qualquer um utilizar sem 
restrição. 
 
CAST 
 
128 
É um algoritmo de cifra de bloco, sendo criado em 1996 por Carlisle Adams 
e Stafford Tavares. O CAST-128 é um algoritmo de Feistel, com 12 a 16 
iterações da etapa principal, tamanho de bloco de 64 bits e chave de tamanho 
variável (40 a 128 bits, com acréscimos de 8 bits). Os 16 rounds de iteração 
são usados quando a chave tem comprimento maior que 80 bits. 
Tabela 2.2 – Principais algoritmos de criptografia simétrica. Fonte: (Oliveira, 2007) 
 
 
 
Figura 2.1 – Criptografia Simétrica. Fonte: (Oliveira, 2007) 
10 
2.4 Criptografia Assimétrica 
 Modelo de criptografia criado na década de 1970, pelo matemático Clifford Cocks que 
trabalhava no serviço secreto inglês, o GCHQ, na qual cada parte envolvida na comunicação 
usa duas chaves diferentes (assimétricas) e complementares, uma privada e outra pública. 
Neste caso, as chaves não são apenas senhas, mas arquivos digitais mais complexos (que 
eventualmente até estão associados a uma senha). A chave pública pode ficar disponível para 
qualquer pessoa que queira se comunicar com outra de modo seguro, mas a chave privada 
deverá ficar em poder apenas de cada titular. É com a chave privada que o destinatário poderá 
decodificar uma mensagem que foi criptografada para ele com sua respectiva chave pública. 
 Para entender o conceito, basta pensar num cadeado comum protegendo um 
determinado bem. A mensagem é este bem, e o cadeado, que pode ficar exposto, é a chave 
pública. Apenas quem tiver uma chave particular (privada) que consiga abrir o cadeado 
poderá acessar a mensagem. A principal vantagem deste método é a sua segurança, pois não é 
preciso (nem se deve) compartilhar a chave privada. Por outro lado, o tempo de 
processamento de mensagens com criptografia assimétrica é muitas vezes maior do que com 
criptografia simétrica, o que pode limitar seu uso em determinadas situações. 
 A grande vantagem deste sistema é permitir a qualquer um enviar uma mensagem 
secreta, apenas utilizando a chave pública de quem irá recebê-la. Como a chave pública está 
amplamente disponível, não há necessidade do envio de chaves como feito no modelo 
simétrico. A confidencialidade da mensagem é garantida, enquanto a chave privada estiver 
segura. Caso contrário, quem possuir acesso à chave privada terá acesso às mensagens. 
[Stallings, 2011] 
 O ápice deste sistema é a complexidade empregada no desenvolvimento dos 
algoritmos que devem ser capazes de reconhecer a dupla de chaves existentes e poder 
relacionar as mesmas no momento oportuno, o que acarreta num grande poder de 
processamento computacional. 
Algoritmo Descrição 
 
 
 
 
RSA 
O RSA é um algoritmo assimétrico que possui este nome devido a seus inventores: Ron Rivest, Adi 
Shamir e Len Adleman, que o criaram em 1977 no MIT. Atualmente, é o algoritmo de chave 
pública mais amplamente utilizado, além de ser uma das mais poderosas formas de criptografia de 
chave pública conhecidas até o momento. O RSA utiliza números primos. A premissa por trás do 
RSA consiste na facilidade de multiplicar dois números primos para obter um terceiro número, mas 
muito difícil de recuperar os dois primos a partir daquele terceiro número. Isto é conhecido como 
fatoração. Por exemplo, os fatores primos de 3.337 são 47 e 71. Gerar a chave pública envolve 
multiplicar dois primos grandes; qualquer um pode fazer isto. Derivar a chave privada a partir da 
chave pública envolve fatorar um grande número. Se o número for grande o suficiente e bem 
escolhido, então ninguém pode fazer isto em uma quantidade de tempo razoável. Assim, a segurança 
11 
do RSA baseia se na dificuldade de fatoração de números grandes. 
 
ElGamal 
O ElGamal é outro algoritmo de chave pública utilizado para gerenciamento de chaves. Sua 
matemática difere da utilizada no RSA, mas também é um sistema comutativo. O algoritmo envolve 
a manipulação matemática de grandes quantidades numéricas. Sua segurança advém de algo 
denominado problema do logaritmo discreto. Assim, o ElGamal obtém sua segurança da dificuldade 
de calcular logaritmos discretos em um corpo finito, o que lembra bastante o problema da fatoração. 
 
Diffie-Hellman 
Também baseado no problema do logaritmo discreto, e o criptosistema de chave pública mais antigo 
ainda em uso. O conceito de chave pública, aliás foi introduzido pelos autores deste criptosistema 
em 1976. Contudo, ele não permite nem ciframento nem assinatura digital. O sistema foi projetado 
para permitir a dois indivíduos entrarem em um acordo ao compartilharem um segredo tal como 
uma chave, muito embora eles somente troquem mensagens em público. 
 
 
Curvas Elípticas 
Em 1985, Neal Koblitz e V. S. Miller propuseram de forma independente a utilização de curvas 
elípticas para sistemas criptográficos de chave pública. Eles não chegaram a inventar um novo 
algoritmo criptográfico com curvas elípticas sobre corpos finitos, mas implementaram algoritmos de 
chave pública já existentes, como o algoritmo de Diffie-Hellman, usando curvas elípticas. Assim, os 
sistemas criptográficos de curvas elípticas consistem em modificações de outros sistemas (o 
ElGamal, por exemplo), que passam a trabalhar no domínio das curvas elípticas, em vez de 
trabalharem no domínio dos corpos finitos. 
Tabela 2.3 – Principais algoritmos de chave pública ou criptografia assimétrica. Fonte: 
(Oliveira, 2007) 
 
 
 
Figura 2.2 – Criptografia Assimétrica. Fonte: (Moreira, 2006) 
 
12 
2.5 Certificado Digital 
 Com um sistema de chave pública, o gerenciamento de chaves passa a ter dois novos 
aspectos: primeiro, deve-se previamente localizar a chave pública de qualquer pessoa com 
quem se deseja comunicar e, segundo, deve-se obter uma garantia de que a chave pública 
encontrada seja proveniente daquela pessoa. Sem esta garantia, um intruso pode convencer os 
interlocutores de que chaves públicas falsas pertencem a eles. Estabelecendo um processo de 
confiança entre os interlocutores, o intruso pode fazer-se passar por ambos. Deste modo, 
quando um emissor enviar uma mensagem ao receptor solicitando sua chave pública, o 
intruso poderá interceptá-la e devolver-lhe uma chave pública forjada por ele. Ele também 
pode fazer o mesmo com o receptor, fazendo com que cada lado pense que está se 
comunicando com o outro, quando na verdade estão sendo interceptados pelo intruso, então 
este pode decifrar todas as mensagens, cifrá-las novamente ou, se preferir, até substituí-las por 
outras mensagens. Através deste ataque, um intruso pode causar tantos danos ou até mais do 
que causaria se conseguisse quebrar o algoritmo de criptografia empregado pelos 
interlocutores. 
 A garantia para evitar este tipo de ataque é representada pelos certificados de chave 
pública, comumente chamados de certificado digital, tais certificadosconsistem em chaves 
públicas assinadas por uma pessoa de confiança. Servem para evitar tentativas de substituição 
de uma chave pública por outra. O certificado contém algo mais do que sua chave pública, ele 
apresenta informações sobre o nome, endereço e outros dados pessoais, e é assinado por 
alguém em quem o proprietário deposita sua confiança, uma autoridade de certificação 
(certification authority - CA). Assim, um certificado digital pode ser definido como um 
documento eletrônico, assinado digitalmente por uma terceira parte confiável. [Stallings, 
2011] 
 No Brasil, o órgão da autoridade certificadora raiz é o ICP-Brasil (AC-Raiz), ele é o 
executor das políticas de certificados e normas técnicas e operacionais aprovadas pelo Comitê 
Gestor da ICP-Brasil. São autoridades certificadoras no país: Serpro (AC-SERPRO), Caixa 
Econômica Federal (AC-CAIXA), Serasa Experian (AC-SERASA), Receita Federal do Brasil 
(AC-RFB), Certsing (AC-Certisign), Imprensa Oficial do Estado de São Paulo (AC-IOSP), 
Autoridade Certificadora da Justiça (AC-JUS), Autoridade Certificadora da Presidência da 
República (AC-PR) e Casa da Moeda do Brasil (AC-CMB). [Oliveira, 2007] 
13 
 Assim, a AC-Raiz tem autoridade de emitir, expedir, distribuir, revogar e gerenciar os 
certificados das autoridades certificadoras de nível imediatamente subsequente ao seu, sendo 
também encarregada de emitir a lista de certificados revogados e de fiscalizar e auditar as 
autoridades certificadoras, autoridades de registro e demais prestadores de serviço habilitados 
na ICP-Brasil. Além disso, verifica se as autoridades certificadoras (ACs) estão atuando em 
conformidade com as diretrizes e normas técnicas estabelecidas pelo Comitê Gestor. 
2.6 Assinatura Digital 
 Outro benefício de criptografia com chave pública é que provê um método para 
empregar assinaturas digitais. Assinaturas digitais habilitam o receptor da informação 
verificar a autenticidade da origem da informação, e também verifica se a informação está 
intacta. Assim, assinaturas digitais com chave pública proporcionam autenticação e 
integridade de dados. Uma assinatura digital também provê não repúdio, o que significa que 
previne o emissor de reivindicar que ele ou ela não enviaram de fato a informação. Estas 
características são tão fundamentais para criptografia como privacidade, se não mais. 
 Uma assinatura digital serve para o mesmo propósito que uma assinatura manuscrita. 
Porém, uma assinatura manuscrita é fácil falsificar. Uma assinatura digital é superior a uma 
assinatura manuscrita no sentido que é quase impossível falsificar, prestando atenção aos 
conteúdos da informação como também para a identidade do signatário. 
 A maneira básica na qual são criadas assinaturas digitais é ilustrada na Figura 2.1. O 
processo se baseia em uma inversão do sistema, onde o funcionamento da assinatura digital 
pode ser descrito como: o emissor cifra (ou seja, atesta autenticidade) a mensagem com sua 
chave privada e a envia, em um processo denominado de assinatura digital. Cada um que 
receber a mensagem deverá verificar a validade da assinatura digital, utilizando para isso a 
chave pública do emissor, reconhecendo de fato, que a mensagem não foi adulterada. 
 
Figura 2.3 – Assinatura digital simples. Fonte: (Moreira, 2006) 
14 
 Como a chave pública do emissor apenas decifra (ou seja, verifica a validade) 
mensagens cifradas com sua chave privada, obtém-se a garantia de autenticidade, integridade 
e não-repudiação da mensagem, o que é apoiado pela função hash, pois se alguém modificar 
um bit do conteúdo da mensagem ou se outra pessoa assiná-la ao invés do próprio emissor, o 
sistema de verificação não irá reconhecer a assinatura digital dele como sendo válida. 
 É importante perceber que a assinatura digital, como descrita, não garante a 
confidencialidade da mensagem. Qualquer um poderá acessá-la e verificá-la, mesmo um 
intruso, apenas utilizando a chave pública do emissor, assim, ao empregar o uso da técnica de 
assinatura digital o que se busca é a garantia de autenticidade, integridade e não-repudiação da 
mensagem. 
2.7 Função Hash 
 A assinatura digital obtida através do uso da criptografia assimétrica ou de chave 
pública infelizmente não pode ser empregada, na prática, de forma isolada, é necessário o 
emprego de um mecanismo fundamental para o adequado emprego da assinatura digital. Este 
mecanismo é a função hash. 
 Assim, na prática é inviável utilizar puramente algoritmos de chave pública para 
assinaturas digitais, principalmente quando se deseja assinar grandes mensagens, que podem 
levar preciosos minutos ou mesmo horas para serem integralmente cifradas com a chave 
privada de alguém, ao invés disso, é empregada uma função hash, que gera um valor pequeno, 
de tamanho fixo, derivado da mensagem que se pretende assinar, de qualquer tamanho, para 
oferecer agilidade nas assinaturas digitais, além de integridade confiável. [Stallings, 2011] 
 Serve, portanto, para garantir a integridade do conteúdo da mensagem que representa, 
por isto, após o valor hash de uma mensagem ter sido calculado através do emprego de uma 
função hash, qualquer modificação em seu conteúdo, mesmo em apenas um bit da mensagem, 
será detectado, pois um novo cálculo do valor hash sobre o conteúdo modificado resultará em 
um valor hash bastante distinto. 
Funções Descrição 
 
 
SHA-2 
O Secure Hash Algorithm (SHA-2) por outro lado significativamente difere da função hash 
SHA- 1, desenhado pelo NSA é uma família de duas funções hash similares, com diferentes 
tamanhos de bloco, conhecido como SHA-256 e SHA-512. Eles diferem no tamanho, o SHA-
256 utiliza 256 bits e o SHA-512 utiliza 512 bits. Há também versões truncadas de cada 
padrão, conhecidos como SHA-224 e SHA-384. O ICP-Brasil em suas mudanças anunciadas 
adotadas para o novo padrão criptográfico do sistema de certificação digital, esta implantando 
em 2012, o uso do SHA-512 em substituição ao seu antecessor, o SHA-1. Um novo padrão 
proposto de função de hash ainda está em desenvolvimento, pela programação do NIST a 
15 
competição que apresentará esta nova função hash tem previsão de termino, com a seleção de 
uma função vencedora, que será dado o nome de SHA-3, ainda em 2012. 
 
SHA-1 
O Secure Hash Algorithm (SHA-1), uma função de espalhamento unidirecional inventada 
pela NSA, gera um valor hash de 160 bits, a partir de um tamanho arbitrário de mensagem. O 
funcionamento interno do SHA-1 é muito parecido com o observado no MD4, indicando que 
os estudiosos da NSA basearam-se no MD4 e fizeram melhorias em sua segurança. De fato, a 
fraqueza existente em parte do MD5, descoberta após o SHA-1 ter sido proposto, não ocorre 
no SHA-1. 
 
 
MD5 
É uma função de espalhamento unidirecional inventada por Ron Rivest, do MIT, que também 
trabalha para a RSA Data Security. A sigla MD significa message digest. Este algoritmo 
produz um valor hash de 128 bits, para uma mensagem de entrada de tamanho arbitrário. Foi 
inicialmente proposto em 1991, após alguns ataques de criptoanálise terem sidos descobertos 
contra a função hashing prévia de Rivest: a MD4. O algoritmo foi projetado para ser rápido, 
simples e seguro. Seus detalhes são públicos, e têm sido analisados pela comunidade de 
criptografia. 
 
 
MD2 e MD4 
O MD4 é o precursor do MD5, tendo sido inventado por Ron Rivest. Após terem sido 
descobertas algumas fraquezas no MD4, Rivest escreveu o MD5. O MD4 não é mais 
utilizado. O MD2 é uma função de espalhamento unidirecional simplificada, e produz um 
hash de 128 bits. A segurança do MD2 é dependente de uma permutação aleatória de bytes. 
Não é recomendável sua utilização, pois, em geral, é mais lento do que as outras funções hashcitadas e acredita-se que seja menos seguro. 
Tabela 2.4 – Principais funções hashing. Fonte: (Oliveira, 2007) 
2.8 Sistemas Híbridos 
 Em resumo, os algoritmos criptográficos podem ser combinados para a implementação 
dos três mecanismos criptográficos básicos: o ciframento, a assinatura e o hashing. Estes 
mecanismos são componentes dos protocolos criptográficos, embutidos na arquitetura de 
segurança dos produtos destinados ao comércio eletrônico. 
 Estes protocolos criptográficos, portanto, provêm os serviços associados à criptografia 
que viabilizam o comércio eletrônico: disponibilidade, sigilo, controle de acesso, 
autenticidade, integridade e não-repúdio, usualmente apoiado por sistemas híbridos. 
Protocolo Descrição 
 
IPSEC 
Padrão de protocolos criptográficos desenvolvidos para o IPv6. Realiza também o tunelamento de 
IP sobre IP. É composto de três mecanismos criptográficos: Authentication Header (define a 
função hashing para assinatura digital), Encapsulation Security Payload (define o algoritmo 
simétrico para ciframento) e ISAKMP (define o algoritmo assimétrico para gerência e troca de 
chaves de criptografia). Criptografia e tunelamento são independentes, e permite Virtual Private 
Network (VPN) fim-a-fim. 
SSL e TLS Oferecem suporte de segurança criptográfica para os protocolos NTTP, HTTP, SMTP e Telnet. 
Permitem utilizar diferentes algoritmos simétricos, message-digest (hashing) e métodos de 
autenticação e gerência de chaves (assimétricos). 
 
PGP 
O Pretty Good Privacy (PGP), foi inventado por Phil Zimmermman em 1991, é um programa 
criptográfico famoso e bastante difundido na internet, destinado à criptografia de e-mail pessoal. 
Algoritmos suportados: hashing: MD5, SHA-1 - simétricos: CAST-128, IDEA e 3DES - 
assimétricos: RSA, Diffie-Hellman e DSS. 
 O Secure Multipurpose Internet Mail Extensions (S/MIME) consiste em um esforço de consórcio 
de empresas, liderado pela RSADSI e Microsoft, para adicionar segurança a mensagens 
16 
S/MIME eletrônicas no formato MIME. Apesar do S/MIME e PGP serem ambos padrões para a internet, o 
S/MIME tem sua maior utilização no mercado corporativo, enquanto o PGP é utilizado em e-mail 
pessoal. 
 
SET 
O SET é um conjunto de padrões e protocolos, para realizar transações financeiras seguras, como 
as realizadas com cartão de crédito na internet. Oferece um canal de comunicação seguro entre 
todos os envolvidos na transação. Garante autenticidade X.509v3 e privacidade entre as partes. 
 
X.509 
Recomendação ITU-T, a especificação X.509 define o relacionamento entre as autoridades de 
certificação. Faz parte das séries X.500 de recomendações para uma estrutura de diretório global, 
baseada em nomes distintos para localização. Utilizado pelo S/MIME, IPSec, SSL/TLS e SET. 
Baseado em criptografia com chave pública (RSA) e assinatura digital (com hashing). 
Tabela 2.5 - Protocolos com Sistemas Híbridos. Fonte: (Oliveira, 2007) 
 
 
 
 
 
 
 
 
17 
3. CAPÍTULO 3 – PGP 
3.1 Introdução 
 Com o advento da era da informação, está cada vez mais fácil “observar” a conversa 
alheia sem que as pessoas tomem conhecimento. Em todos os meios eletrônicos estão 
presentes formas de espionagem. Vemos a correspondência convencional ser substituída com 
uma velocidade surpreendente pelos correios eletrônicos, os e-mails. Entretanto, ao fazer esta 
opção, raramente as pessoas têm consciência do que isso representa. Podemos comparar os e-
mails que não são criptografados, aos telefonemas, as cartas sem envelope, com seu conteúdo 
aberto para quem quiser observar. 
 A comunicação eletrônica também torna a comunicação impessoal. O único contato 
que temos com a pessoa com quem estamos nos comunicando é um texto em uma tela de 
computador ou uma voz que sai de um aparelho de telefone. O que ou quem nos garante que 
estamos realmente nos comunicando com quem pensamos? Talvez para a comunicação 
corriqueira, cotidiana, essa característica não seja tão imprescindível, mas quando tratamos de 
assuntos confidenciais, de transações financeiras, de comércio eletrônico, enfim, tudo em que 
uma das partes sairá lesada se a comunicação não estiver sendo feita com quem se espera 
estar do outro lado da comunicação, este fator é crítico. 
 Neste trabalho será abordada uma forma de contornar os problemas acima descritos 
usando o PGP. Nos capítulos anteriores foram abordados a importância da segurança nas 
redes para o correto compartilhamento de informações e como funcionam alguns dos sistemas 
de criptografia existentes. Neste capítulo serão mostrados o que é o PGP, o funcionamento, a 
importância e como o mesmo utiliza das ferramentas e tecnologias mostradas anteriormente. 
 É possível oferecer serviços de segurança em cada uma das quatro principais camadas 
da pilha de protocolos da Internet. Quando a segurança é oferecida para um protocolo 
específico da camada de aplicação, a aplicação que usa o protocolo utilizará um ou mais 
18 
serviços de segurança, como sigilo, autenticação ou integridade. Quando a segurança é 
oferecida para um protocolo da camada de transporte, por exemplo, todas as aplicações que 
usam esse protocolo aproveitam os serviços de segurança do protocolo de transporte, o 
mesmo acontece quando a segurança é oferecida na camada de rede ou mesmo em um enlace, 
todos os dados que fazem uso desses protocolos recebem estes serviços de segurança. 
[Kurose, 2010] 
 Mas por que a funcionalidade da segurança deve ser fornecida em mais de uma 
camada na Internet. Não bastaria prover essa funcionalidade na camada de Rede? Existem 
duas repostas pra essa pergunta. Primeiro, embora a segurança na camada de rede possa 
oferecer “cobertura total” cifrando todos os dados nos datagramas e autenticando todos os 
endereços IP destinatários, ela não pode prover proteção no nível do usuário. Segundo, 
geralmente é mais fácil implementar serviços da Internet, incluindo serviços de segurança nas 
camadas superiores da pilha de protocolo. 
 O PGP é uma aplicação que fornece proteção ao usuário, oferecendo um e-mail 
seguro, necessitando apenas de um código de aplicação do cliente e do servidor. O e-mail é 
enviado em forma de código aleatório (cifrado) e só quem pode ler é o receptor a quem foi 
dado permissão. Os servidores vão verificar as chaves públicas e privadas dos dois para poder 
desembaralhar o conteúdo. [Kurose, 2010] 
Uma pessoa pensaria, então, que a criptografia forte seria quase 100% segura contra 
até mesmo um criptoanalista extremamente determinado. Ninguém provou que a encriptação 
mais forte alcançável hoje será segura o suficiente amanhã por causa do aumento constante do 
poder de computação. Porém, a criptografia forte empregada por PGP é uma das melhores 
disponíveis, sendo projetado para ser compatível com todos os sistemas de e-mail. 
3.2 O que é o PGP? 
 Pretty Good Privacy, ou PGP como é conhecido, é um programa híbrido, se utilizando 
da criptografia de chave pública e da criptografia de chave simétrica. Ele serve para proteger 
criptograficamente e-mails e arquivos, podendo ser utilizado para prover confidencialidade, 
autenticação, integridade e não-repudiação. Foi escrito por Phill Zimmermann e sua primeira 
aparição na internet foi em junho de 1991. Nas palavras do próprio Phill Zimmermann: 
19 
 “O PGP usa a criptografia de chave pública para proteger e-mails e arquivos de dados. Comunicar 
seguramente com pessoas que você nunca viu, sem a necessidade de canais seguros para troca prévia de 
chaves. O PGP é bem elaborado e rápido, com sofisticado gerenciamento de chaves, assinaturas digitais, 
compressão de dados, e um projeto ergonômico bom.” 
 A idéia de seu criador foi juntar os melhores algoritmos decriptografia conhecidos e 
integrá-los em uma aplicação de propósito geral independente de plataforma e fácil de ser 
utilizado. O resultado obtido foi disponibilizado gratuitamente na internet junto com seu 
código fonte e documentação. E, finalmente, o próprio Phill entrou em acordo com a Network 
Associates para criar uma versão comercial do PGP totalmente compatível e de baixo custo. 
[Atvars et al., 2008] 
 Os softwares de PGP de hoje são tão avançados que foram além do e-mail. Eles 
protegem e criptografam computadores inteiros, discos rígidos e qualquer tipo de arquivo: 
fotos, músicas etc. Não é uma mágica de conveniência, mas é o preço a se pagar pela 
privacidade segura. 
 Com as duas pessoas usando PGP, elas podem trocar e-mails criptografados com 
algoritmos seguros utilizados internacionalmente. Nem mesmo a polícia tem acesso. Um dos 
modos mais convenientes de usar PGP é através de um dos aplicativos populares de email 
suportados pelos plug-ins de PGP. Com estes plug-ins, você pode codificar e assinar e 
também decifrar e verificar suas mensagens, enquanto você está escrevendo e lendo seu 
email, com o simples apertar de um botão. 
3.3 Descrição Operacional 
A operação do PGP é feita através de cinco serviços básicos: autenticação, 
confidencialidade, compressão, compatibilidade de e-mail e segmentação. Estes são 
combinados conforme as necessidades do usuário. [Stallings, 2011] 
3.3.1 Autenticação 
 A autenticação, ou assinatura digital, serve para comprovar a identidade de uma 
pessoa, podendo ser comparado à assinatura comum em documentos. No PGP, a assinatura 
digital é criada utilizando-se um algoritmo de chave assimétrica, DSS, em conjunto com uma 
função de hash, o SHA-1, para gerar o resumo da mensagem. Na versão original do PGP era 
usado o RSA em conjunto com o MD5. 
A operação consiste nos seguintes passos: 
1- Cria-se a mensagem a ser transmitida. 
20 
2- Aplica-se o algoritmo SHA-1 na mensagem original obtendo um resumo (message digest) 
com tamanho de 160 bits. 
3- Este resumo é criptografado utilizando o algoritmo de chave assimétrica com a chave 
privada do remetente e ao resultado desta operação concatena-se a mensagem original, 
obtendo-se a mensagem a ser enviada. [Stallings, 2011] 
 
Figura 3.1 - Processo de criação da assinatura digital. Fonte: (Atvars et al., 2008) 
Ao receber a mensagem, o procedimento para lê-la é: 
1- Extrair da mensagem recebida a parte correspondente ao resumo criptografado. 
2- Aplicar o algoritmo de chave assimétrica com a chave pública do remetente para decifrar o 
resumo. 
3- Aplicar o algoritmo de código hash (SHA-1) sobre a mensagem para verificar se o código 
obtido é o mesmo que o que estava criptografado junto a mensagem. 
 A autenticação desejada é provida neste esquema através da criptografia de chave 
pública. Caso o resumo decifrado com a chave pública do remetente seja o mesmo resumo 
obtido aplicando-se o SHA-1 na mensagem original a mensagem é considerada autêntica. 
21 
 O PGP ainda permite a utilização de assinaturas separadas o que se torna importante 
no caso de ser necessário que mais de uma pessoa assinem uma mensagem. Neste caso, as 
assinaturas podem ser feitas independentemente, evitando que cada nova assinatura assine não 
só a mensagem, mas as assinaturas anteriores também. Quando uma assinatura é criada 
criptografando-se o message-digest, o timestamp da criação da assinatura é criptografado 
junto ao message-digest para evitar ataques do tipo Replay. 
3.3.2 Confidencialidade 
 A confidencialidade no PGP é implementada através de algoritmo de chave simétrica, 
podendo ser o CAST-128, o IDEA ou o DES triplo com três chaves, juntamente com um 
algoritmo de chave pública, o ElGamal ou o RSA (para compatibilidade com versões antigas), 
para resolver o problema do compartilhamento da chave simétrica. 
Esta função pode ser obtida através dos seguintes passos: 
1- O remetente cria a mensagem e gera uma chave de sessão para ser utilizada apenas com 
esta mensagem. 
2- A mensagem é criptografada com CAST-128, IDEA ou DES Triplo usando a chave de 
sessão. 
3- A chave de sessão é criptografada com o ElGamal usando a chave pública do destinatário. 
Ao resultado obtido, concatena-se a mensagem. 
 
Figura 3.2 - Geração da mensagem criptografada no PGP. Fonte: (Atvars et al., 2008) 
 
O destinatário, por sua vez, deve agir da seguinte maneira: 
22 
1-Separar da mensagem a parte correspondente a chave de sessão criptografada e 
decriptografá-la usando o algoritmo de chave pública com sua chave privada. Com isso 
recupera-se a chave de sessão. 
2-Tendo em mãos a chave de sessão, basta decifrar a mensagem com algoritmo 
correspondente. 
 A vantagem de se utilizar a combinação de criptografias de chave simétrica e 
assimétrica é obter um método rápido e ao mesmo tempo seguro para criptografar uma 
mensagem. A criptografia simétrica produz texto cifrado com uma velocidade superior ao da 
criptografia assimétrica. Por sua vez a criptografia de chave assimétrica produz um texto 
cifrado mais seguro do que o da criptografia simétrica. 
 
Figura 3.3 - Processamento para decifrar uma mensagem no PGP. Fonte: (Atvars et al., 2008) 
 O uso da chave de sessão no PGP é uma vantagem, pois a chave é utilizada uma única 
vez. Mesmo que se descubra a chave de sessão, ela não comprometerá futuras comunicações 
entre o remetente e o destinatário. [Stallings, 2011] 
Confidencialidade e Autenticação 
 Quando os serviços de confidencialidade e autenticação são usados em conjunto o 
remetente deve primeiro assinar a mensagem e para depois cifrá-la. Esta ordem é preferível de 
ser usada por ser mais conveniente guardar uma assinatura digital junto ao texto decifrado ao 
qual ela se refere a ter que guardar a assinatura e a mensagem criptografada que ela autentica. 
Além disso, guardar a mensagem decifrada junto à sua assinatura digital facilita a verificação 
da assinatura caso seja necessário apresentá-la a uma terceira pessoa, uma vez que ela 
só depende da chave pública de quem está assinando, ao passo que, caso usássemos a ordem 
23 
inversa, seria necessário que se utilizasse também a chave privada de quem recebeu a 
mensagem. [Stallings, 2011] 
 
 Figura 3.4 – Ilustração do funcionamento do PGP. Fonte: (Stallings, 2011) 
 
 
 
 
 
24 
Convenção: 
A= remetente 
B = destinatário 
M= mensagem 
H= função hash 
Z= compressão (ZIP) 
KPr(x) = chave privada de x 
KPu(x) = chave pública de x 
Ks = chave de sessão 
EC = cifragem simétrica 
DC = decifragem simétrica 
EP = cifragem assimétrica 
DP = decifragem assimétrica 
 
Funcionamento dos métodos 
 A Figura 3.4 mostra três formas de funcionamento da arquitetura PGP. Na primeira 
delas o programa trabalha para fornecer aos usuários autenticidade na forma de assinatura 
digital, a mensagem passa inicialmente por uma função hash e depois cifrada utilizando a 
chave privada de A do modelo assimétrico, posteriormente o resultado é agrupado juntamente 
com a mensagem original e por final ambos passam por uma compressão. Quando a 
informação chega em B o mesmo fará primeiramente a descompressão, aplicará a chave 
pública de A para recuperar o hash de M calculado anteriormente e que será agora comparado 
com o hash de M calculado pelo destinatário, se o resultado dessa comparação for igual, 
significa que a mensagem chegou íntegra ao destino final. 
 No segundo modelo a confidencialidade é fornecida ao usuário. Inicialmente a 
mensagem M passa por uma compressão e o resultado passa por uma criptografia simétrica, e 
ao mesmo tempo a chave privada utilizada para criptografar simetricamente ainformação é 
cifrada com a chave pública de B. Quando o B receber a mensagem, o mesmo utilizará sua 
chave privada da criptografia assimétrica para recuperar a chave privada do modelo simétrico 
que será aplicada na outra parte da informação para recuperar a mensagem compressa que 
então passará por uma descompressão, resultando assim na mensagem original. 
25 
 O terceiro caso é a combinação do primeiro e segundo, para fornecer ao usuário 
autenticidade, integridade e confidencialidade. Inicialmente a mensagem passa por uma 
função hash e o resultado é criptografado assimetricamente com a chave privada de A, 
posteriormente a informação é agregada com a mensagem e depois ambos passam por uma 
criptografia simétrica e a chave privada do modelo simétrico é ao mesmo tempo cifrada 
utilizando a chave pública de B. Ao receber a mensagem B aplicará sua chave privada do 
modelo assimétrico para recuperar a chave privada do modelo simétrico, para que a mesma 
possa ser aplicada na outra parte da informação, posteriormente será realizada a 
descompressão para que finalmente possa haver a comparação dos hash gerados em A e B. 
3.3.3 Compressão 
 O PGP adota como padrão a compressão da mensagem para diminuir seu tamanho 
final, o que beneficia tanto o armazenamento da mensagem quanto e envio da mesma por e-
mail. O algoritmo utilizado para esta função é o ZIP, usado em vários programas de 
compressão. 
 A compressão realizada pelo PGP deve ser aplicada depois da assinatura e antes da 
criptografia. Essa medida é justificada com os seguintes argumentos: 
• A assinatura deve ser gerada antes da compressão porque é preferível guardarmos a 
mensagem descomprimida com sua assinatura correspondente para efeito de 
verificação do que termos que guardar a mensagem comprimida e sua respectiva 
assinatura. E porque implementações diferentes do algoritmo de compressão podem 
gerar saídas diferentes conforme é dada maior importância à velocidade ou à taxa de 
compressão, enquanto que para a descompressão o algoritmo descomprime 
corretamente, independente da como foi comprimido. Assim, imaginando que o 
código hash (resumo da mensagem) e a assinatura fossem gerados após a 
compactação, caso alguém quisesse recompactar uma mensagem para verificar a 
assinatura só poderia fazê-lo se a mesma implementação da função de compactação 
fosse utilizada em todas as versões do PGP. 
• A criptografia deve ser feita após a compressão para aumentar a segurança, uma vez 
que o código compactado tem menos redundância, o que dificulta a criptoanálise. 
26 
 
Figura 3.5- Diagrama de blocos do funcionamento da geração da mensagem no PGP. Fonte: 
(Stallings, 2011) 
 
Figura 3.6- Diagrama de blocos do funcionamento da recuperação da mensagem original no 
PGP. Fonte: (Stallings, 2011) 
27 
3.3.4 Compatibilidade de E-mail 
 Alguns programas de e-mail ainda hoje permitem apenas a utilização de blocos 
informação no formato ASCII. Entretanto, ao utilizarmos o PGP, os blocos criptografados da 
mensagem final, tanto para a função de assinatura digital quanto para a de confidencialidade, 
serão compostos de octetos arbitrários de 8. Para prover a compatibilidade de e-mail, o PGP 
se utiliza da conversão RADIX-64. 
 Na conversão RADIX-64 blocos de 3 bytes (24 bits) da mensagem criptografada são 
convertidos em 4 caracteres ASCII de 8 bits, resultando em 32 bits, o que corresponde a uma 
expansão de 33% na mensagem final. Entretanto isso não deve preocupar se lembrarmos que 
a mensagem que passará pelo RADIX-64 já foi compactada. Além disso, o PGP tem a opção 
de só utilizar a conversão na parte referente à assinatura digital. [RFC 4880, 2007] 
 A conversão RADIX-64 é feita sem que se analise o conteúdo, ou seja, caso estejamos 
transmitindo a mensagem sem estar criptografada, mas se aplicamos o RADIX-64 antes de 
enviá-la, o conteúdo da mensagem será ilegível, o que promove maior confidencialidade. No 
PGP a conversão RADIX- 64 é aplicada depois que o texto já foi criptografado. [Stallings, 
2011] 
 As Figuras 3.3 e 3.4 mostram diagramas de blocos com os algoritmos seguidos pelo 
PGP para utilizar as funções que foram descritas. 
3.3.5 Segmentação e Reconstrução 
 Esta função do PGP particiona as mensagens que ficarem muito grandes para enviá-las 
por e-mail. Uma vez particionadas e enviadas estes pedaços da mensagem são reconstruídos 
ao chegarem ao seu destino. Historicamente esta função está ligada a utilização das BBS 
(Bulletin Board System), que possuíam limites para envio de mensagens. Cada mensagem 
recebia um Message ID de 32 bits que identificava a mensagem unicamente e não era nunca 
repetido. Em versões mais recentes do PGP esta função foi retirada. [Stallings, 2011] 
3.4 Chaves no PGP 
3.4.1 Tipos de Chaves 
 O PGP trabalha com quatro tipos de chaves: Chaves de Sessão, Chaves Públicas, 
Chaves Privadas e Chaves baseadas em Passphrase. Cada uma delas representa algum tipo de 
problema a ser trabalhado pelo software de modo a manter o PGP seguro. Passemos então a 
uma breve discussão sobre cada um destes tipos de chave que o PGP usa. [Stallings, 2011] 
28 
3.4.2 Chaves de Sessão 
 O PGP utiliza o termo chave de sessão para as chaves que são utilizadas para a 
criptografia simétrica. Na verdade estas chaves não são verdadeiras chaves de sessão, pois só 
são utilizadas uma única vez e descartadas. 
 As chaves de sessão utilizadas pelo PGP devem ter 128 bits, no caso de se utilizar a 
criptografia simétrica com IDEA ou CAST-128, ou 168 bits, para a criptografia com DES 
Triplo com três chaves. Em ambos os casos é necessário que a geração das chaves atue de 
modo imprevisível. Para isso o PGP possui um algoritmo baseado no algoritmo especificado 
no padrão ANSI X12.17, utilizando o próprio algoritmo escolhido para a criptografia de chave 
simétrica no modo “Cipher Feedback” para geração da chave de sessão. 
 Entretanto, ainda é necessário que sejam gerados números aleatoriamente para que 
sejam usados como entrada e chave do algoritmo de chave simétrica que gerará a chave de 
sessão. Estes números são obtidos pedindo-se ao usuário que movimente o mouse ou digite 
qualquer coisa no teclado. A velocidade da digitação e o próprio texto digitado, ou 
amostragens da posição do mouse, combinados com as saídas do gerador são suficientes para 
produzir uma sequência de chaves de sessão completamente imprevisível. [Stallings, 2011] 
3.4.3 Chaves de Púbicas e Privadas 
 As chaves públicas e privadas são as chaves utilizadas para a criptografia assimétrica. 
Quando trabalhamos com criptografia assimétrica é interessante podermos manter mais do 
que um par de chaves pública/privada. Um exemplo simples da utilidade de termos mais que 
um par de chaves por usuário seria o caso em que uma chave privada fica comprometida. 
Neste caso seria necessária a criação de um novo par de chaves. Outro exemplo seria a 
possibilidade de um usuário querer usar chaves diferentes para comunicação com grupos de 
pessoas diferentes. 
 O problema em se permitir que um usuário possua mais que um par de chaves se 
resume a “Como identificar com qual chave uma mensagem recebida de outro usuário foi 
criptografada?”. Para suprir esta necessidade o PGP atribui um Key ID a cada chave criada. 
Este Key ID é um número extraído da própria chave, correspondendo aos 64 bits menos 
significativos da chave pública. Pode ser provado probabilisticamente que este tamanho é 
suficiente para que a chance de duplicidade do identificador seja muito pequena. 
29 
 Assim, quando uma mensagem é criada com um par de chaves pública e privada, o 
identificador do par de chaves utilizado deve estar na mensagem. A estrutura de uma 
mensagem do PGP, é mostradana Figura 3.5. 
 A mensagem fica assim dividida em três partes: a parte correspondente à chave de 
sessão, a chave correspondente à assinatura digital e a parte de mensagem propriamente dita. 
As duas primeiras são opcionais. 
 A parte com a chave de sessão é composta pelo Key ID da chave pública do 
destinatário e pela chave de sessão criptografada com esta chave pública. A parte referente à 
assinatura digital possui um Timestamp, indicando a data desta assinatura, o Key ID do par de 
chaves do remetente utilizada, os primeiros 2 bytes do message-digest não criptografado, que 
servem para verificar se o message-digest foi decifrado com a chave correta, e o message-
digest criptografado com a chave privada do remetente. 
 Finalmente, temos a mensagem, com o nome do arquivo, um timestamp com a data de 
envio, e os dados propriamente ditos. A necessidade de um segundo timestamp nesta parte da 
mensagem é para garantir que assinaturas enviadas separadas sejam exatamente iguais. 
 Outro problema na utilização de chaves assimétricas é o armazenamento dessas 
chaves. Seria inviável para um usuário digitar seu par de chaves e a chave pública do 
destinatário da mensagem cada vez que quisesse criar uma mensagem nova no PGP. 
Pensando neste problema, o PGP cria os Key Rings. Os Key Rings serão discutidos 
profundamente mais adiante. 
 No PGP, cada par de chaves assimétricas é composta por dois pares de chaves (menos 
para as versões antigas que usavam apenas o RSA), uma para a assinaturas digitais com DSS, 
variando entre 512 e 1024 bits de tamanho, e outra para criptografar as chaves de sessão para 
prover confidencialidade com ElGamal, variando entre 512 e 4096 bits. Estes dois pares 
funcionam como um único par para todos os efeitos e são visíveis como sendo um único par. 
O único motivo para se gerar dois pares de chaves é a divisão do papel do RSA em versões 
antigas entre o DSS e o ElGamal. Quando um par de chaves é criado, escolhe-se o algoritmo 
de criptografia simétrica a ser utilizado com ela e apenas este algoritmo será utilizado com 
este par de chaves. Esta informação faz parte da chave e não pode ser mudada. No caso de 
chaves mais antigas, quando o PGP só usava RSA e IDEA, as chaves não possuíam essa 
informação. 
30 
 
 Figura 3.7 - Estrutura de mensagem no PGP. Fonte: (Stallings, 2011) 
3.4.4 Chaves baseadas em Passphrase 
 As chaves baseadas Passphrase são chaves criadas a partir de uma frase digitada pelo 
usuário. No PGP elas são utilizadas para prover segurança nos Key Rings. Entretanto elas são 
talvez o ponto mais fraco da segurança do PGP. 
 A Passphrase é solicitada ao usuário quando da criação dos Key Rings. Sua 
vulnerabilidade está diretamente ligada à complexidade da frase digitada pelo usuário. Isso 
porque um intruso que descubra a Passphrase de um usuário tem acesso às suas chaves 
privadas, tornando toda a comunicação desse usuário insegura. [Moreira, 2006] 
 Entre as formas de se “quebrar” a Passphrase estão a força bruta com utilização de um 
“dicionário de frases” (muito utilizado) e cavalos de tróia que ficam monitorando o teclado 
para descobrir senhas. 
31 
3.5 Armazenamento de Chaves (Key Rings) 
 Uma vez criadas às chaves de um usuário, torna-se necessário que elas sejam 
armazenadas de alguma forma para futuras utilizações. Mais do que isso, é necessário que 
sejam armazenas de forma organizada e sistemática as chaves públicas dos correspondentes 
de um usuário. 
 O PGP adota como política criar um par de estruturas de dados para cada usuário, uma 
para guardar os pares de chaves pública e privada do mesmo e outra para armazenar as chaves 
públicas de outras pessoas com quem o usuário mantém contato. Estas estruturas são o 
Private-Key Ring e o Public-Key Ring, mostrados nas Figuras 3.6 e 3.7, respectivamente. 
 
Figura 3.8 - Estrutura do Private-Key Ring. Fonte: (Stallings, 2011) 
 
 
Figura 3.9 - Estrutura do Public-Key Ring. Fonte: (Stallings, 2011) 
 O Private-Key Ring serve para o armazenamento dos pares de chave pública e privada 
do usuário. É composto por 5 campos: 
• Timestamp: Contém a data de criação do par de chaves. 
• Key ID: 64 bits menos significantes da chave pública. 
32 
• Chave Pública: Chave pública deste par de chaves. 
• Chave Privada: Chave privada deste par de chaves criptografada. 
• User ID: Um identificador para o dono da chave, podendo ser um nome, e-mail. 
 O campo com a chave pública criptografada é criado com a Passphrase descrita 
anteriormente. Para tanto o PGP utiliza a Passphrase escolhida pelo usuário, aplicando a 
função de hash, SHA-1, para gerar um código hash de 160 bits. A Passphrase é descartada 
então e o código hash é usado como chave para criptografar a chave privada com o algoritmo 
de chave simétrica escolhido para este par de chaves. O código hash é então descartado e a 
chave privada criptografada é armazenada no Private-Key Ring. Quando for necessária a 
utilização da chave o usuário deve digitar a Passphrase correta para que o PGP possa achar a 
chave para decifrar a chave criptografada. Caso o usuário esqueça a Passphrase, não há como 
recuperar suas chaves a não ser quebrando a senha por força bruta. 
 O Public-Key Ring serve para armazenar as chaves públicas de pessoas que o usuário 
conhece. Ela é composta por oito campos: Timestamp, Key ID, Chave Pública, Owner Trust, 
User ID, Legitimidade da Chave, Certificados e Trust dos Certificados. Serão explicados 
abaixo os campos Timestamp, Key ID, Chave Pública e User ID. Assim, os campos são: 
• Timestamp: Data da inserção desta chave. 
• Key ID: 64 bits menos significantes da chave pública. 
• Chave Pública: A própria chave pública. 
• User ID: Identificador do dono desta chave. 
 Ambos Key Rings devem ser indexados pelos campos User ID e Key ID. A indexação 
pelo User ID é importante para identificarmos a chave da pessoa para quem enviaremos a 
mensagem quando da criação da mesma. Já o Key ID é importante para a situação inversa, 
quando se está recebendo uma mensagem criptografada contendo os Key IDs tanto do 
remetente quanto de um par de chaves pública e privada sua. 
 
 
 
 
 
 
33 
3.6 Manutenção de chaves públicas 
 Quando lidamos com sistemas de criptografia assimétrica é fundamental que as chaves 
públicas dos usuários estejam bem disseminadas. Quanto maior a exposição da chave pública, 
melhor para que outras pessoas a obtenham. Entretanto, torna-se fundamental se prevenir 
contra falsificações. Uma falsificação acontece quando uma pessoa A distribui uma chave 
pública como sendo de uma pessoa B, mas que na verdade pertence a A. Desta forma A pode 
observar toda a correspondência criptografada que for para B em que tenha sido usada a chave 
falsificada. Além disso, A poderia enviar todas as mensagens recebidas para B 
criptografando-as com a chave correta de B, o que impediria que tanto B quanto as pessoas 
que enviaram mensagens com a chave falsa desconfiassem da falsificação. 
 A única maneira de proteger contra chaves falsas é se certificando de sua origem. Isso 
pode ser feito obtendo-se a chave diretamente da pessoa com quem se quer comunicar, mas 
nem sempre essa maneira é viável. Outra alternativa seria obter a chave através de um amigo 
comum, uma pessoa confiável que pudesse garantir a integridade da chave e da qual você já 
tivesse uma chave pública que você tenha certeza da validade. Para tanto, esse amigo deveria 
assinar, certificar a chave, indicando que aquela chave realmente pertence a pessoa em 
questão. 
 
3.7 Redes de confiança e Campos de Trust 
 Rede de Confiança é como é conhecida política do PGP para a validação de chaves 
públicas. O funcionamento depende diretamente

Outros materiais