O que e PGP? Guia completo sobre encriptacao Pretty Good Privacy
O que e a encriptacao PGP?
PGP (Pretty Good Privacy) e um programa de encriptacao que assegura a confidencialidade e a autenticacao criptografica para comunicacoes de dados. A encriptacao PGP utiliza uma combinacao de criptografia de chave simetrica e criptografia de chave publica para permitir que os utilizadores encriptem mensagens, ficheiros e outros dados de modo a que apenas o destinatario pretendido os possa ler. Criado originalmente por Phil Zimmermann em 1991, o PGP tornou-se o padrao de encriptacao de e-mail mais utilizado no mundo e constitui a base da especificacao OpenPGP definida no RFC 4880. Quer necessite de enviar um e-mail confidencial, verificar a identidade de um editor de software ou proteger ficheiros sensiveis, o PGP fornece um enquadramento criptografico comprovado, em que confiam jornalistas, investigadores de seguranca, governos e utilizadores comuns.
Se pretende experimentar a encriptacao PGP imediatamente sem instalar software, o KeychainPGP disponibiliza uma ferramenta PGP online que funciona inteiramente no seu navegador.
Historia do PGP
Phil Zimmermann publicou o PGP 1.0 em junho de 1991 como software livre, motivado pela convicao de que a criptografia forte deveria ser acessivel a todos os cidadaos — e nao apenas a governos e forcas militares. Na epoca, a encriptacao forte era classificada como municao segundo as regulamentacoes norte-americanas de exportacao, e Zimmermann foi alvo de uma investigacao criminal de tres anos pelo Servico de Alfandegas dos EUA por ter distribuido o PGP internacionalmente. A investigacao foi encerrada em 1996 sem acusacao, e o caso tornou-se um marco na historia das liberdades digitais.
O PGP evoluiu atraves de varias incarnacoes comerciais. Zimmermann fundou a PGP Inc. em 1996, que foi adquirida pela Network Associates (mais tarde McAfee) em 1997, e finalmente pela Symantec em 2010. Ao longo destas transicoes, o protocolo criptografico subjacente foi padronizado com o nome de OpenPGP pela Internet Engineering Task Force (IETF), garantindo que o protocolo permanecesse aberto e interoperavel independentemente da propriedade comercial.
A publicacao do padrao OpenPGP significou que qualquer pessoa podia criar implementacoes compativeis. Isto levou a criacao do GNU Privacy Guard (GnuPG ou GPG), uma implementacao livre e open source que continua a ser uma das ferramentas PGP mais utilizadas atualmente. Para compreender as diferencas entre estas implementacoes, consulte o nosso guia sobre PGP vs GPG.
Como funciona a encriptacao PGP
A encriptacao PGP assenta numa combinacao sofisticada de tecnicas criptograficas. Em vez de utilizar um unico metodo, o PGP emprega um modelo de encriptacao hibrido que combina a rapidez da encriptacao simetrica com as vantagens de distribuicao de chaves da encriptacao assimetrica (de chave publica).
Criptografia de chave publica
No nucleo do PGP esta a criptografia de chave publica, tambem chamada criptografia assimetrica. Cada utilizador PGP gera um par de chaves composto por duas chaves matematicamente relacionadas:
- Chave publica — partilhada abertamente com qualquer pessoa. Os outros utilizam esta chave para encriptar mensagens que lhe sao dirigidas e para verificar as suas assinaturas digitais.
- Chave privada (tambem chamada chave secreta) — mantida estritamente confidencial. Utiliza esta chave para desencriptar mensagens que lhe sao enviadas e para criar assinaturas digitais.
A propriedade fundamental deste sistema e que os dados encriptados com uma chave publica so podem ser desencriptados com a chave privada correspondente, e vice-versa. Isto elimina a necessidade de transmitir um segredo partilhado entre as partes antes de poderem comunicar de forma privada.
O modelo de encriptacao hibrido
Embora a criptografia de chave publica resolva o problema de distribuicao de chaves, os algoritmos assimetricos como o RSA sao computacionalmente dispendiosos para encriptar grandes quantidades de dados. O PGP resolve este problema utilizando uma abordagem hibrida:
- Geracao de chave de sessao — O PGP gera uma chave simetrica de sessao aleatoria e unica (geralmente 128 ou 256 bits) para cada mensagem.
- Encriptacao dos dados — O conteudo da mensagem e encriptado utilizando uma cifra simetrica rapida (como AES-256) com a chave de sessao.
- Encriptacao da chave de sessao — A propria chave de sessao e depois encriptada utilizando a chave publica do destinatario (operacao assimetrica).
- Empacotamento — A mensagem encriptada e a chave de sessao encriptada sao agrupadas e enviadas ao destinatario.
Quando o destinatario recebe a mensagem, o processo e invertido: utiliza a sua chave privada para desencriptar a chave de sessao, e em seguida a chave de sessao desencriptada e utilizada para desencriptar o conteudo da mensagem.
Assinaturas digitais PGP
Para alem da encriptacao, o PGP fornece assinaturas digitais que cumprem duas funcoes essenciais: a autenticacao (provar quem enviou uma mensagem) e a integridade (provar que a mensagem nao foi alterada em transito).
O processo de assinatura funciona da seguinte forma:
- O PGP calcula um hash criptografico (um resumo de comprimento fixo) do conteudo da mensagem utilizando um algoritmo como SHA-256 ou SHA-512.
- O hash e depois encriptado com a chave privada do remetente, produzindo a assinatura digital.
- A assinatura e anexada a mensagem.
Qualquer destinatario pode verificar a assinatura desencriptando-a com a chave publica do remetente para recuperar o hash original, calculando independentemente o hash da mensagem recebida e comparando os dois hashes. Se coincidirem, a mensagem e autentica e nao foi modificada.
O padrao OpenPGP
OpenPGP e o padrao aberto que define os formatos de mensagem, os algoritmos e os procedimentos utilizados pelo software compativel com PGP. Nao e um produto de software em si, mas uma especificacao que qualquer programador pode implementar.
Os documentos de referencia sao:
- RFC 4880 (novembro de 2007) — A especificacao principal atual do formato de mensagem OpenPGP.
- RFC 6637 (junho de 2012) — Estende o OpenPGP com suporte para criptografia de curva eliptica (ECC).
- RFC 9580 (2024) — A revisao mais recente que moderniza o padrao com suporte obrigatorio de Ed25519/X25519, modos de encriptacao AEAD e impressoes digitais de chaves melhoradas.
O OpenPGP garante a interoperabilidade: uma mensagem encriptada com o KeychainPGP pode ser desencriptada pelo GnuPG, Mailvelope ou qualquer outra implementacao conforme.
Rede de confianca
Uma das caracteristicas distintivas do PGP e o seu modelo descentralizado de rede de confianca (Web of Trust) para estabelecer a autenticidade das chaves publicas. Ao contrario do modelo centralizado de autoridade de certificacao (CA) utilizado pelo TLS/SSL, o PGP permite que os proprios utilizadores se certifiquem mutuamente.
A rede de confianca funciona por meio da assinatura de chaves: quando verifica a identidade de alguem e confirma que essa pessoa controla uma chave publica especifica, assina a chave dessa pessoa com a sua. Esta assinatura e uma declaracao publica de que acredita que a chave pertence de facto a pessoa que afirma representar.
Ferramentas como o KeychainPGP simplificam este processo ao permitir que os utilizadores trabalhem com as chaves diretamente atraves de uma interface intuitiva, utilizando a encriptacao por area de transferencia para partilhar facilmente mensagens encriptadas e chaves publicas.
Algoritmos e tipos de chaves PGP
O PGP suporta uma gama de algoritmos criptograficos que evoluiram ao longo dos avancos do dominio.
Algoritmos classicos
- RSA (Rivest-Shamir-Adleman) — O algoritmo assimetrico mais implantado na historia do PGP. As chaves RSA de 2048 bits sao consideradas o minimo de seguranca atualmente, com chaves de 4096 bits recomendadas para protecao a longo prazo.
- DSA (Digital Signature Algorithm) — Utilizado para assinaturas em combinacao com ElGamal para encriptacao. Menos privilegiado atualmente.
- AES (Advanced Encryption Standard) — A cifra simetrica dominante utilizada para encriptar o conteudo das mensagens. AES-128 e AES-256 sao suportados.
- SHA-2 (SHA-256, SHA-384, SHA-512) — Funcoes de hash criptografico utilizadas para o calculo de resumos em assinaturas digitais.
Algoritmos modernos
A ultima geracao de implementacoes OpenPGP suporta a criptografia de curva eliptica (ECC), que oferece seguranca equivalente ao RSA com tamanhos de chave consideravelmente menores:
- Ed25519 — Um algoritmo de assinatura digital baseado na Curve25519. Produz assinaturas rapidas e compactas. Recomendado no RFC 9580.
- X25519 (Curve25519 ECDH) — Utilizado para troca de chaves (encriptacao). Oferece excelente desempenho com solidas propriedades de seguranca.
- NIST P-256 / P-384 / P-521 — Curvas elipticas padronizadas pelo NIST. Suportadas pelo OpenPGP mas geralmente menos privilegiadas que os algoritmos baseados na Curve25519.
Ferramentas modernas como o KeychainPGP suportam estes algoritmos contemporaneos, tornando a geracao de chaves com Ed25519 e X25519 simples e direta.
Casos de utilizacao comuns do PGP
- E-mail seguro — O caso de utilizacao original e mais conhecido. O PGP permite encriptar o conteudo dos e-mails e assinar as mensagens para provar a sua autenticidade.
- Encriptacao de ficheiros — O PGP pode encriptar ficheiros individuais ou arquivos inteiros para armazenamento ou transferencia seguros.
- Verificacao de software — Os projetos open source assinam regularmente as suas versoes com chaves PGP. Os utilizadores podem verificar estas assinaturas para confirmar a autenticidade de uma transferencia.
- Mensagens seguras — O PGP pode ser utilizado para encriptar qualquer mensagem de texto, particularmente util em plataformas que nao oferecem encriptacao ponta a ponta.
- Verificacao de identidade — As impressoes digitais das chaves PGP servem como identidades digitais verificaveis. Os programadores no GitHub podem assinar os seus commits com PGP.
- Assinatura de documentos — Os workflows juridicos utilizam por vezes assinaturas PGP para estabelecer a nao-repudiacao.
O PGP hoje
Mais de tres decadas apos a sua criacao, o PGP continua a ser uma das ferramentas criptograficas mais importantes disponiveis. O padrao OpenPGP continua a evoluir, com o RFC 9580 a introduzir modernizacoes significativas incluindo o suporte obrigatorio de algoritmos de curva eliptica modernos e os modos de encriptacao AEAD.
O ecossistema de ferramentas PGP enriqueceu-se consideravelmente. O GnuPG continua a ser a implementacao de referencia para utilizacao em linha de comandos. Ferramentas modernas como o KeychainPGP oferecem aplicacoes de ambiente de trabalho nativas (Windows, macOS, Linux), uma aplicacao Android, um CLI para scripting e uma aplicacao web no navegador — tudo construido sobre o mesmo motor Sequoia-PGP em Rust.
Comecar com PGP
Pronto para comecar com a encriptacao PGP? Aqui estao os melhores proximos passos:
- Experimente no seu navegador — Utilize a ferramenta PGP online do KeychainPGP para gerar um par de chaves, encriptar uma mensagem ou verificar uma assinatura sem instalar nada.
- Leia o guia para principiantes — Se e novo na criptografia, o nosso guia PGP para principiantes acompanha-o passo a passo.
- Aprenda o workflow pratico — O nosso guia Como utilizar PGP cobre a geracao de chaves, a encriptacao e desencriptacao, a gestao do seu porta-chaves e as boas praticas.
- Compreenda a encriptacao por area de transferencia — Descubra a encriptacao PGP por area de transferencia para encriptar e desencriptar texto diretamente a partir da sua area de transferencia.
- Conheca as ferramentas — Compreenda as diferencas entre PGP e GPG para escolher a ferramenta certa para o seu workflow.
A encriptacao PGP protege comunicacoes sensiveis ha mais de trinta anos. Com as ferramentas e padroes modernos, e mais acessivel do que nunca.