Criptografia
Autor: alan chagas | Publicado: 2011-09-03T19:31:00-07:00

Por que a criptografia?O homem sempre sentiu a necessidade de dissimular informações, mesmo antes do aparecimento dos primeiros computadores e máquinas de calcular. Desde a sua criação, a rede Internet evoluiu tanto que se tornou um instrumento essencial de comunicação. Contudo, esta comunicação põe cada vez mais em jogo problemas estratégicos ligados à atividade das empresas na Web. As transacções feitas através da rede podem ser interceptadas, tanto mais que as leis têm dificuldade em impor-se na Internet. Por conseguinte, é necessário garantir a segurança destas informações, é a criptografia que trata disso. O que é a criptografia?
A palavra criptografia é um termo genérico que designa o conjunto das técnicas que permitem codificar mensagens, isto é, que permitem torná-las ininteligíveis sem uma ação específica. O verbo cifrar é por vezes utilizado, mas o verbo codificar parece ser o mais indicado. A criptologia baseia-se essencialmente na aritmética: trata-se, no caso de um texto, de transformar as letras que compõem a mensagem numa sucessão de números (sob a forma de bits no caso da informática, porque o funcionamento dos computadores baseia-se no binário), e de seguida fazer cálculos sobre estes números para: Por um lado alterá-los de maneira a torná-los incompreensíveis. O resultado desta modificação (a mensagem codificada) chama-se criptograma (em inglês ciphertext) em oposição à mensagem inicial, chamada mensagem normal (em inglês plaintext); 
Fazer de modo a que o destinatário saiba decifrá-los.

O fato de codificar uma mensagem de maneira a torná-la secreta chama-se codificação. O método oposto, consistindo em encontrar a mensagem original, designa-se por decodificação. 

&nbsp;

A codificação faz-se geralmente com a ajuda de uma chave de codificação; quanto à decodificação, necessita de uma chave de decodificação. Distinguem-se geralmente dois tipos de chaves: As chaves simétricas: trata-se de chaves utilizadas para a codificação, assim como para decodificação. Fala-se então de codificação simétrica ou codificação com chave secreta. 
As chaves assimétricas: trata-se de chaves utilizadas no caso da codificação assimétrica (também chamada codificação com chave pública). Neste caso, uma chave diferente é utilizada para a codificação e para decodificação.
Chama-se decifrar (o termo decriptar pode também eventualmente ser utilizado) o ato de tentar decodificar ilegitimamente a mensagem (quer a chave decodificação seja conhecida ou não pelo atacante). 
Quando a chave decodificaçao não é conhecida do atacante, fala-se então de criptanálise ou criptoanálise. 
A criptologia é a ciência que estuda os aspectos científicos destas técnicas, o que quer dizer que engloba a criptografia e a criptanálise. As funções da criptografiaA criptografia é utilizada tradicionalmente para dissimular mensagens aos olhos de certos utilizadores. Esta utilização tem hoje um interesse ainda maior, pois as comunicações via Internet circulam em infraestruturas das quais não se podem garantir a confiabilidade e a confidencialidade. Doravante, a criptografia serve não somente para preservar a confidencialidade dos dados, mas também para garantir a sua integridade e a sua autenticidade. A criptanáliseChama-se criptanálise a reconstrução de uma mensagem codificada no seu formato original, com a ajuda de métodos matemáticos. Assim, qualquer criptosistema deve necessariamente ser resistente aos métodos de criptanálise. Quando um método de criptanálise permite decifrar uma mensagem codificada com a ajuda de um criptosistema, diz-se que o algoritmo de codificação “foi quebrado”. 
Distinguem-se habitualmente quatro métodos de criptanálise: Um ataque apenas sobre texto codificado consiste em reencontrar a chave de decodificação a partir de um ou vários textos codificados; 
Um ataque sobre texto normal conhecido consiste em reencontrar a chave de decodificação a partir de um ou vários textos codificados, conhecendo o texto original normal correspondente; 
Um ataque sobre texto normal escolhido consiste em reencontrar a chave de decodificação a partir de um ou vários textos codificados, tendo o atacante a possibilidade de gerá-los a partir de textos normais; 
Um ataque sobre texto codificado escolhido consiste em reencontrar a chave decodificação a partir de um ou vários textos codificados, tendo o atacante a possibilidade de gerá-los a partir de textos normais.

A codificação por substituiçãoA codificação por substituição consiste em substituir numa mensagem uma ou várias entidades (geralmente letras) por uma ou várias outras entidades. Distinguem-se geralmente vários tipos de criptosistemas por substituição: A substituição monoalfabética consiste em substituir cada letra da mensagem por outra letra do alfabeto 
A substituição polialfabética consiste em utilizar uma sequência de números monoalfabética reutilizada periodicamente 
A substituição homofónica permite fazer corresponder a cada letra da mensagem normal um conjunto possível de outros caracteres 
A substituição de poligramas consiste em substituir um grupo de caracteres (poligrame) na mensagem por outro grupo de caracteres

A codificação de CésarEste código de cifragem é um dos mais antigos, na medida em que teria sido utilizado por Júlio César. O princípio de codificação assenta na adição de um valor constante ao conjunto caracteres da mensagem, ou mais exatamente o seu código ASCII (para uma versão “informática” desta codificação). Trata-se simplesmente de deslocar o conjunto dos valores dos caracteres da mensagem de certo número de posições, quer dizer, em certa medida substituir cada letra por outra. Por exemplo, deslocando a mensagem “COMMENT CA MARCHE”&nbsp; de&nbsp; 3&nbsp; posições, obtem-se “FRPPHQW FD PDUFKH”. Quando a adição do valor dá uma letra que excede a letra Z, é suficiente continuar partindo de A. 
Por exemplo, no filme A odisseia do espaço, o computador tem o nome de HAL. Este apelido é, com efeito, IBM deslocado&nbsp; de&nbsp; 1&nbsp; posição para baixo… Chama-se chave ao caracter que corresponde ao valor que se acrescenta à mensagem para efetuar a cifragem. No nosso caso, a chave é C, porque é a 3.ª letra do alfabeto. Este sistema de cifragem é certamente simples de aplicar, mas tem o inconveniente de ser totalmente simétrico, isto significa que basta fazer uma subtração para conhecer a mensagem inicial. Um método primário pode consistir numa subtração básica dos números 1 a 26 para ver se um destes números dá uma mensagem compreensível. 
Um método mais evoluído consiste em calcular as frequências de aparecimento das letras na mensagem codificada (isto é mais fácil de fazer quanto mais longa for a mensagem). Efetivamente, dependendo da língua, certas letras aparecem mais correntemente do que outras (em português, por exemplo, a letra mais utilizada é a letra E), assim a letra que aparece mais frequentemente num texto cifrado pelo cálculo César corresponderá provavelmente à letra E, uma simples subtracção dá então a chave de cifragem… A codificação ROT13No caso específico da codificação de Júlio César, onde a chave de cifragem é N (13.ª letra do alfabeto), chama-se a esta cifragem ROT13 (o número 13, metade de 26, foi escolhido para poder calcular e decifrar facilmente as mensagens textuais). 
Cifragem por transposiçãoOs métodos de codificação consistem em dispor os dados a codificar de forma a torná-los incompreensíveis. Trata-se, por exemplo, de reordenar geometricamente os dados para torná-los visualmente inexploráveis. 
A técnica assíriaA técnica de codificação assíria é provavelmente a primeira prova da utilização de meios de codificação na Grécia a partir de 600 antes de Jesus Cristo, para dissimular mensagens escritas em bandas de papiros. 



A técnica consistia em: Enrolar uma banda de papiros num cilindro chamado scytale; 
Escrever o texto longitudinalmente na faixa enrolada (a mensagem no exemplo acima é «&nbsp;comment ça marche&nbsp;»).

A mensagem, uma vez desenrolada, já não é compreensível (“cecaeonar mt c m mh”). Basta que o destinatário tenha um cilindro do mesmo modo diâmetro para poder decifrar a mensagem. Na realidade, um descodificador (já existiam descodificador na época!) pode decifrar a mensagem tentando cilindros de diâmetro sucessivos diferentes, o que quer dizer que o método pode ser quebrado estatisticamente (basta pegar nos caracteres um a um, afastados certa distância). 
Cifragem com chave privada (ou chave secreta)A codificação simétrica
A codificação simétrica (também chamada codificação com chave privada ou codificação com chave secreta) consiste em utilizar a mesma chave para a codificação e decodificação. 




A codificação consiste em aplicar uma operação (algoritmo) sobre os dados a codificar com a ajuda da chave privada, para torná-los ininteligíveis. Assim, o menor algoritmo (como um OU exclusivo) pode tornar o sistema quase inviolável (dado a segurança absoluta que não existe). Contudo, nos anos 40, Claude Shannon demonstrou que, para serem totalmente seguros, os sistemas com chaves privadas devem utilizar chaves de um comprimento pelo menos igual à da mensagem a codificar. Para mais, a codificação simétrica obriga a ter um canal protegido para a troca da chave, o que degrada seriamente o interesse de tal sistema de codificação. O principal inconveniente de um criptosistema com chaves secretas provem da troca das chaves. Com efeito, a codificação simétrica baseia-se na troca de um segredo (as chaves). Assim, coloca-se o problema da distribuição das chaves. 
Por outro lado, um utilizador que deseja comunicar com várias pessoas assegurando níveis de confidencialidade distintos deve utilizar tantas chaves privadas quantos os interlocutores que tem. Para um grupo de n pessoas que utiliza um criptosistema com chaves secretas, é necessário distribuir um número de chaves igual à N* (N-1)/2. 
Assim, nos anos 20, Gilbert Vernam e Joseph Mauborgne afinaram o método do One Time Pad (traduzir por método da máscara descartável, às vezes chamado “One Time Password” e notada OTP), baseado numa chave privada, gerada aleatoriamente, utilizada uma e só uma vez, seguidamente destruída. Na mesma época, o Kremlin e a Casa Branca ligaram-se através do famoso telefone vermelho, quer dizer um telefone cujas comunicações eram cifradas graças a uma chave privada de acordo com o método da máscara descartável. A chave privada então era trocada graças à mala diplomática (desempenhando o papel de canal protegido). O princípio da codificação com chave públicaO princípio de codificação assimétrica (chamada também codificação com chaves públicas) apareceu em 1976, com a publicação de uma obra sobre a criptografia de Whitfield Diffie e Martin Hellman. 
Num criptosistema assimétrico (ou criptosistema com chaves públicas), as chaves existem por pares (o termo BICHAVES é empregado geralmente): Uma chave pública para a codificação; 
Uma chave secreta para decodificaçao.
Assim, num sistema de codificação com chave pública, os utilizadores escolhem uma chave aleatória que apenas eles conhecem (trata-se da chave privada). A partir desta chave, deduz cada um automaticamente um algoritmo (trata-se da chave pública). Os utilizadores trocam esta chave pública através de um canal não protegido. Quando um utilizador deseja enviar uma mensagem a outro utilizador, basta que calcule e codifique a mensagem a enviar através da chave pública do destinatário (que encontrará, por exemplo, num servidor de chaves como um anuário LDAP). Este último estará em condições de decifrar a mensagem com a ajuda da sua chave privada (que é único a conhecer). 




Este sistema baseia-se numa função fácil de calcular num sentido (chamado função com alçapão de sentido único ou em inglês one-way trapdoor function) e matematicamente muito difícil de inverter sem a chave privada (chamada alçapão). A título de imagem, trata-se, para um utilizador, de criar aleatoriamente uma pequena chave de metal (a chave privada), seguido da fabricação de um grande número de cadeados (chave pública) que dispõe num armário acessível a todos (o armário desempenha o papel de canal não protegido). Para fazer chegar um documento ao destinatário, cada utilizador pode pegar um cadeado (aberto), fechar uma maleta que contém o documento com este cadeado e, seguidamente enviar a maleta ao proprietário da chave pública (o proprietário do cadeado). Só o proprietário estará então em condições de abrir a maleta com a sua chave privada. Vantagens e inconvenientesO problema que consistia em comunicar a chave de decodificação já não existe, na medida em que as chaves públicas podem ser enviadas livremente. A codificação por chaves públicas permite, por conseguinte, às pessoas trocar mensagens codificadas sem, no entanto, possuir segredos em comum. Por outro lado, o desafio consiste em ter a certeza de que a chave pública que se recupera é efetivamente a da pessoa a quem deseja fazer chegar a informação cifrada! 
As chaves de sessão
O Interesse de uma chave de sessãoOs algoritmos assimétricos (em jogo nos criptosistemas com chave pública) permitem livrar-se de problemas ligados à troca de chave através de um canal protegido. Contudo, estes últimos continuam a ser muito mais eficazes (em termos de tempos de cálculo) do que os algoritmos simétricos. Assim, a noção de chave de sessão é um compromisso entre a codificação simétrica e assimétrica que permite combinar as duas técnicas. O princípio da chave de sessão é simples: consiste em gerar aleatoriamente uma chave de sessão de dimensão razoável, e de cifrar esta com a ajuda de um algoritmo de codificação com chave pública (mais exatamente com a ajuda da chave pública do destinatário). 


O destinatário está em condições de decifrar a chave de sessão com a ajuda da sua chave privada. Assim, remetente e destinatários estão na posse de uma chave comum da qual são os únicos conhecedores. É então possível enviarem mutuamente documentos cifrados com a ajuda de um algoritmo de codificação simétrico. 
Algoritmo de Diffie-HellmanO algoritmo de Diffie-Hellman (do nome dos seus inventores Diffie e Hellman) foi afinado em 1976 a fim de permitir a troca de chaves através de um canal não protegido. Baseia-se na dificuldade do cálculo do logaritmo discreto num corpo terminado. 
Mais informaçõesO algoritmo de Diffie-Hellman é, contudo sensível ao ataque “Man in the middle” (traduzido às vezes como “ataque do interceptor” ou “ataque pelo meio”). 
Assinatura eletrônicaIntrodução à noção de assinatura eletrônica

O paradigma de assinatura eletrônica (chamado também de assinatura numérica) é um método que permite garantir a autenticidade do remetente (função de autenticação) e verificar a integridade da mensagem recebida. A assinatura eletrônica assegura igualmente uma função de não-repudiação, o que quer dizer que permite assegurar que o remetente efetivamente enviou a mensagem (em outros termos impede o remetente de negar ter expedido a mensagem). O que é a função de condensação?
Uma função de condensação é uma função que permite obter um condensado (chamado também condensado ou desbastado ou, em inglês, message digest) de um texto, quer dizer, uma sequência de caracteres bastante curta que representa o texto que condensa. A função de condensação deve ser tal que associa um e só um condensado a um texto normal (isto significa que a menor modificação do documento provoca a modificação do seu condensado). Por outro lado, deve tratar-se de uma função de sentido único (one-way function) para que seja impossível reencontrar a mensagem original a partir do condensado. Se existir um meio para reencontrar a mensagem normal a partir do condensado, a função de condensação é designada como "de brecha secreta". 



Assim, o condensado representa em certa medida a impressão digital (em inglês finger print) do documento. Os algoritmos de condensação mais utilizados atualmente são: MD5 (MD que significa Message Digest). Desenvolvido por Rivest em 1991, MD5 cria uma impressão digital de 128 bits a partir de um texto de dimensão arbitrária tratando-o por blocos de 512 bits. É corrente ver documentos de download na Internet acompanhados de um ficheiro MD5, trata-se do condensado do documento que permite verificar a integridade deste último. 
O SHA (para Secure Hash Algorithm, podendo ser traduzido por Algoritmo condensação protegido) cria impressões de um comprimento de 160 bits 

O SHA-1 é uma versão melhorada de SHA que data de 1994 e produzindo uma impressão de 160 bits a partir de uma mensagem de um comprimento máximo de 2642 bits, tratando-o por blocos de 512 bits. Verificação de integridade
Ao expedir uma mensagem acompanhada do seu condensado, é possível garantir a integridade de uma mensagem, o que quer dizer que o destinatário pode verificar que a mensagem não foi alterada (intencionalmente ou de maneira fortuita) durante a comunicação. 


&nbsp;Quando da recepção da mensagem, basta que o destinatário calcule o condensado da mensagem recebida e que o compare com o condensado que acompanha o documento. Se a mensagem (ou o condensado) for falsificada durante a comunicação, as duas marcas não corresponderão. A selagem dos dados
A utilização de uma função de condensação permite verificar se a impressão corresponde realmente à mensagem recebida, mas nada prova que a mensagem foi realmente enviada pela pessoa que pensamos ser o remetente. Assim, para garantir a autenticação da mensagem, basta ao remetente codificar (diz-se geralmente assinar) o condensado com a ajuda da sua chave privada (o condensado assinado é chamado selo) e que envie o selo ao destinatário. 


Quando da recepção da mensagem, basta que o destinatário decifre o selo com a chave pública do remetente e seguidamente compare o condensado obtido com a função de condensação com o condensado recebido em anexo. Este mecanismo de criação de selo chama-se selagem. 
Os certificadosIntrodução à noção de certificadoOs algoritmos de codificação assimétrica baseiam-se na partilha, entre os diferentes utilizadores, de uma chave pública. Geralmente, a partilha desta chave faz-se através de um anuário eletrónico (geralmente no formato LDAP) ou de um site web. Contudo, este modo de partilha tem uma grande lacuna: nada garante que a chave é efetivamente a do utilizador a que está associada. Com efeito, um pirata pode corromper a chave pública presente no anuário, substituindo-a pela sua chave pública. Assim, o pirata estará em condições de decifrar todas as mensagens que foram codificadas com a chave presente no anuário. 
Assim, um certificado permite associar uma chave pública a uma entidade (uma pessoa, uma máquina…) a fim de assegurar a sua validade. O certificado é o bilhete de identidade da chave pública, emitido por um organismo chamado autoridade de certificação (frequentemente chamado CA para Certification Authority). 
A autoridade de certificação está encarregada de emitir os certificados, atribuir-lhes uma data de validade (equivalente ao prazo de validade dos produtos alimentares), bem como anular eventualmente certificados antes daquele prazo, no caso de comprometimento da chave (ou do proprietário). 
Estrutura de um certificadoOs certificados são pequenos ficheiros divididos em duas partes: A parte que contém as informações 
A parte que contém a assinatura da autoridade de certificação
A estrutura dos certificados é normalizada pelo standard X.509 da 'UIT (mais exatamente X.509v3), que define as informações contidas no certificado : A versão de X.509 à qual o certificado corresponde; 
O número de série do certificado; 
O algoritmo de codificação utilizado para assinar o certificado; 
O nome (DN, pour Distinguished Name) da autoridade de certificação emissora; 
A data de início de validade do certificado; 
A data de fim de validade do certificado; 
O objeto da utilização da chave pública; 
A chave pública do proprietário do certificado; 
A assinatura do emissor do certificado (thumbprint).

O conjunto destas informações (informações + chave pública do requerente) é assinado pela autoridade de certificação, isto significa que uma função de corte cria uma impressão destas informações, seguidamente este condensado é calculado com a ajuda da chave privada da autoridade de certificação; a chave pública foi de antemão difundida largamente para permitir aos utilizadores verificar a assinatura com a chave pública da autoridade de certificação. 


Quando um utilizador deseja comunicar com outra pessoa, basta obter o certificado do destinatário. Este certificado contém o nome do destinatário, bem como a sua chave pública e é assinado pela autoridade de certificação. É, por conseguinte, possível verificar a validade da mensagem aplicando, por um lado, a função de corte às informações contidas no certificado, decifrando por outro lado a assinatura da autoridade de certificação com a chave pública desta última e comparando estes dois resultados. 

Assinaturas de certificadosDistinguem-se diferentes tipos de certificados de acordo com o nível de assinatura: Os certificados auto-assinados são certificados de uso interno. Assinados por um servidor local, este tipo de certificado permite garantir a confidencialidade das trocas numa organização; por exemplo, para as necessidades de uma intranet. É assim possível efetuar uma autenticação dos utilizadores graças a certificados auto-assinados. 
Os certificados assinados por um organismo de certificação são necessários quando se trata de assegurar a segurança das trocas com utilizadores anônimos, por exemplo, no caso de um site web protegido, acessível ao grande público. O certificador terceiro permite assegurar ao utilizador que o certificado pertence à organização à qual declara pertencer.

Tipos de usosOs certificados servem principalmente em três tipos de contextos: Certificado cliente, armazenado no computador do utilizador ou embarcado num recipiente como um cartão com chip, permite identificar um utilizador e associar-lhe direitos. Na maior parte dos cenários, é transmitido ao servidor quando de uma conexão, que afeta direitos em função da acreditação do utilizador. Trata-se de um autêntico bilhete de identidade numérico que utiliza um par de chaves assimétricas de um comprimento de 512 a 1024 bits. 
O certificado servidor instalado num servidor web permite assegurar a relação entre o serviço e o proprietário do serviço. No caso de um site web, permite garantir que a URL e em especial os domínios da página web pertencem realmente a tal ou tal empresa. Além disso, permite proteger as transações com os utilizadores graças ao protocolo SSL. 
O certificado VPN é um tipo de certificado instalado no equipamento de rede, permitindo codificar os fluxos de comunicação de extremidade em extremidade entre dois pontos (por exemplo, dois sites de uma empresa). Neste tipo de cenário, os utilizadores possuem um certificado cliente, os servidores aplicam um certificado servidor e os equipamentos de comunicação utilizam um certificado específico. 

A codificação de VigenereA codificação de VigenereA codificação de Vigenere é um criptosistema simétrico, o que significa que utiliza a mesma chave para a codificação e a decodificação. A codificação de Vigenere assemelha-se muito à codificação de César, com a diferença de que utiliza uma chave mais longa para ultrapassar o principal problema da codificação de César: o fato que uma letra pode ser codificada de uma só maneira. Para isto utiliza-se uma palavra chave em vez de um simples caracter. 
Associa-se inicialmente a cada letra um número correspondente. 


ABCDEFGHIJKLMNOPQRSTUVWXYZ
1234567891011121314151617181920212223242526

Isto consiste em codificar um texto com uma palavra acrescentando a cada um das suas letras a letra de outra palavra chamada chave. A chave é acrescentada indefinidamente no texto a codificar, seguidamente o código ASCII de cada uma das letras da chave é acrescentado ao texto a cifrar. Por exemplo, o texto “rendezvousamidi” com a chave "bonjour" será codificado da seguinte forma: Texto original: 

rEndeZvousamIdi
11410111010010112211811111711597109105100105

Chave: 

BoNjour
98111110106111117114

Texto criptado: 

r+be+on+nd+je+oz+uv+ro+bu+os+na+jm+oi+ud+ri+b
114 + 98101 + 111110 + 110100 + 106101 + 111122 + 117118 + 114111 + 98117 + 111115 + 11097 + 106109 + 111105 + 117100 + 114105 + 98

Para decifrar esta mensagem basta ter a chave secreta e fazer a decodificação inversa, com a ajuda de uma subtração. Embora esta codificação seja muito mais segura do que a codificação de César, pode ainda ser quebrada facilmente. Com efeito, quando as mensagens são muito mais longas que a chave, é possível localizar o comprimento da chave e utilizar para cada sequência do comprimento da chave o método que consiste em calcular a frequência de aparecimento das letras, permitindo determinar um a um os caracteres da chave… Para evitar este problema, uma solução consiste em utilizar uma chave cuja dimensão é próxima da do texto para tornar impossível um estudo estatístico do texto cifrado. Este tipo de sistema de codificação é chamado de sistema de chave descartável. O problema deste tipo de método é o comprimento da chave de cifragem (quanto mais longo é o texto a cifrar, mais volumosa deve ser a chave), o que impede a sua memorização e implica uma probabilidade de erro na chave muito maior (um só erro torna o texto indecifrável…). 
Criptografia - Enigma

“Nunca atribua uma confiança cega a um sistema de criptografia” - Gilles Dubertret A história de Enigma
Foi no fim da primeira guerra mundial que apareceu a necessidade de cifrar as mensagens (embora as técnicas de codificação existissem há muito tempo). Foi um Holandês que residia na Alemanha, o Dr. Arthur Scherbius que criou, para fins comerciais, a máquina Enigma, com o intuito de codificar mensagens. O modelo A da máquina (Chieffrienmaschinen Aktien Gesellschaft) foi apresentado em 1923no Congresso Postal Internacional de Bern. O preço desta máquina naquela época (equivalente a 30000 euros hoje) fez dela um fracasso doloroso. Mas a ideia triunfou e a marinha de guerra alemã retomou o projeto em 1925 e confiou a sua evolução ao serviço de codificação (Chiffrierstelle) do ministério da guerra alemão. O modelo Enigma M3 foi finalmente adotado pelo Wehrmacht (exército Alemão) a 12 de Janeiro de 1937. O que os Alemães ignoravam, é que os serviços de contraespionagem franceses e polacos trabalhavam igualmente desde 1930 num método de decodificação. O Comandante Gustave Bertrand dos serviços secretos franceses recrutou para isso Hans Thilo Schmidt (cujo nome de código era Asche), que trabalhava na época para o Chiffrierstelle. Quando a segunda guerra mundial estourou em 1939, os aliados sabiam decifrar as mensagens de Enigma. A 24 de Julho de 1939, Marian Rejewski (responsável pelo Biuro Szyfrow - o serviço europeu mais avançado nas investigações sobre a codificação alemã) entregou um modelo da máquina Enigma ao Comandante Bertrand e Alistair Denniston, chefe do serviço de decodificação do Intelligence Service (IS) britânico. A guerra intensificou-se e o ritmo de decodificação aumentou. Assim, entre os meses de Outubro e Junho de 1939, mais de 4000 mensagens codificadas foram decodificadas pelos serviços secretos franceses. Estas operações tinham doravante um nome: Operação Z para os franceses e Código Ultra (para Ultra Segredo) para os ingleses. Em Agosto de 1939, os Ingleses instalaram em Bletchley Park (a 80 km de Londres) os serviços de Código e Cifra. Era nada mais nada menos do que 12000 cientistas e matemáticos ingleses, polacos e franceses que trabalhavam para quebrar o código do Enigma. Entre estes matemáticos, encontrava-se um dos inventores da informática moderna: Alan Turing, que dirigia todos os trabalhos. 
As mensagens traduzidas da Luftwaffe eram transmitidas aos 3A e as os do exército aos 3M (A= aviação; M= militar). Atribuia-se seguidamente Z em função da importância das mensagens (1Z: pouco importante; 5Z: extremamente urgente). As informações eram resumidas e enviadas em 3 exemplares: Um ao SIS de Broadway; 
Um ao serviço de ministério adequado ou Withehall; 
Um ao general respectivo no terreno.
Os ingleses conseguiram assim decifrar estas mensagens codificadas. Apenas no caso da Kriegsmarine (Marinha de guerra alemã), utilizando medidas de cifragem diferentes, a decodificaçao se mostrou mais difícil. A captura no U-110 de uma Enigma e, sobretudo as suas instruções permitiu um progresso importante. Isto permitia conhecer as posições de submarinos e reduzir a tonelagem afundada pelo U-Booot (Cf.: O filme U-571). A 1 de Fevereiro de 1942, o modelo Enigma M4 foi posto em serviço. Durante onze meses, os aliados não conseguiram decifrar estas mensagens. Durante toda a guerra, mais de 18.000 mensagens foram decifradas por dia, e permitiram às forças da Aliança conhecer as intenções da Alemanha. A última mensagem codificada foi encontrada na Noruega, assinada por Amiral Doenitz: “O Führer morreu. O combate continua”. Os Alemães nunca suspeitaram que a sua preciosa máquina pudesse ser decifrada. 




O funcionamento de EnigmaO Enigma possuia um funcionamento particularmente simples: o objeto estava equipado de um teclado para a digitação da mensagem, de diferentes voltas para a codificação e por último um quadro luminoso para o resultado. A cada pressão numa tecla do teclado, uma letra do painel luminoso iluminava-se. Havia assim 3 voltas de codificação, chamadas “Aparelho de interferência Rotor”, que ligava o teclado ao painel luminoso. Por exemplo, com um só um rotor, quando se tecla B a corrente passa pelo rotor e acende-se A no painel luminoso: 

Para complexifier a máquina, a cada pressão numa tecla, o rotor gira uma entalhadura. Após a primeira pressão obtém-se então: 
&nbsp;De acordo com os modelos (M3 ou M4), o sistema era munido de 3 ou 4 rotores. Os segundos e terceiros rotores avançavam de uma entalhadura quando o precedente fazia uma volta completa. Havia também um quadro de conexão que misturava as letras do alfabeto e um refletor que fazia passar a corrente nos rotores antes da afixação. 
No final, para máquinas Enigma equipadas para 26 letras, havia 17.576 combinações (26 x 26 x 26) ligadas à orientação de cada um dos três rotores, 6 combinações possíveis associadas à ordem na qual estão dispostos os rotores, ou seja 100.391.791 500 ligações possíveis quando ligar os seis pares de letras no quadro de conexões: 12 letras escolhidas entre 26 (26! /(12! 14!)), seguidamente 6 letras entre 12 (12! /6!), e dado que certos pares são equivalentes (A/D e D/A), trata-se de dividir por 26. As máquinas Enigma podem, por conseguinte codificar um texto de acordo com 1016 (17 576 * 6 * 100.391.791 500) combinações diferentes! Quebra do código de EnigmaOs polacos inventaram “a Bomba” (rebatizada mais tarde “Ultra”) que permitia conhecer os ajustamentos Enigma. Mas, a partir de 1938, é o próprio operador que estabelecia o ajustamento. Para remediar o problema, os polacos encontraram a solução: cada mensagem continha uma repetição de palavras recorrentes (chamadas “fêmeas”). Isto era um índice quanto ao núcleo (ajustamento básico dos rotores). Para descobrir este ajustamento, os polacos utilizavam seguidamente “a Grelha” (placas perfuradas que correspondem a todas as permutas do núcleo). Estas placas eram empilhadas umas sobre as outras em relação à posição das “fêmeas”. Seguidamente, tratava-se de procurar o ponto onde uma série de perfurações se recobria da parte superior à inferior da pilha. 
Introdução à codificação DESDES, A codificação com chave secreta.A 15 de Maio de 1973 o NBS (National Institute of Standards and Technology) lançou um apelo no Federal Register (o equivalente, nos Estado-Unidos, do Diário da República, em Portugal) para a criação de um algoritmo de codificação que respondesse aos seguintes critérios: Possuir um elevado nível de segurança ligado a uma chave pequena que sirva para a codificação e decodificação 
Ser compreensível 
Não depender da confidencialidade do algoritmo 
Ser adaptável e econômico 
Ser eficaz e exportável
No final de 1974, a IBM propõe o “Lucifer” que, graças ao NSA (National Security Agency), é alterada a 23 de Novembro de 1976 para dar origem ao DES (Data Encryption Standard). O DES foi finalmente aprovado em 1978 pelo NBS. O DES foi normalizado pelo ANSI (American National Standard Institute) sob o nome de ANSI X3.92, mais conhecido sob a denominação DEA (Data Encryption Algorithm). Princípio do DESTrata-se de um sistema de codificação simétrico por blocos de 64 bits, dos quais 8 bits (um octet) servem de teste de paridade (para verificar a integridade da chave). Cada bit de paridade da chave (1 em cada 8 bits) serve para testar um dos bytes da chave por paridade ímpar, quer dizer que cada um dos bits de paridade é ajustado de forma a ter um número ímpar “de 1” no byte a que pertence. A chave possui então um comprimento “útil” de 56 bits, o que significa que só 56 bits servem realmente no algoritmo. O algoritmo consiste em efetuar combinações, substituições e permutações entre o texto a codificar e a chave, fazendo de modo a que as operações possam fazer-se nos dois sentidos (para a decodificação). A combinação entre substituições e permutações chama-se código produzido. A chave é codificada em 64 bits e formada por 16 blocos de 4 bits, geralmente notados k1 à k16. Já que “apenas” 56 bits servem efectivamente para calcular, podem existir 256 (quer dizer 7.2*1016) chaves diferentes! O algoritmo do DESAs grandes linhas do algoritmo são as seguintes: Fracionamento do texto em blocos de 64 bits (8 octetos); 
Permuta inicial dos blocos; 
Corte dos blocos em duas partes: esquerda e direita, nomeadas G e D; 
Etapas de permuta e de substituição repetidas 16 vezes (chamadas voltas); 
Recolamento das partes esquerda e direita, seguidamente permutação inicial inversa.




&nbsp;Fracionamento do texto
Permutação inicialInicialmente, cada bit de um bloco é sujeito à permuta inicial, podendo ser representada pela matriz de permuta inicial (notada PI) seguinte: 


PI
585042342618102
605244362820124
625446383022146
645648403224168
57494133251791
595143352719113
615345372921135
635547393123157


Esta matriz de permutação indica, percorrendo a matriz da esquerda para a direita e seguidamente de cima para baixo, que o 58º bit do bloco de texto de 64 bits reaparece em primeira posição, o 50º em segunda posição e assim sucessivamente. Cisão em blocos de 32 bitsUma vez realizada a permuta inicial, o bloco de 64 bits é cindido em dois blocos de 32 bits, notados respectivamente G e D (para esquerda e direita, a notação anglo-saxónica é L e R para Left and Right). Marcamos como G0 e D0 o estado inicial destes dois blocos: 


G0
585042342618102
605244362820124
625446383022146
645648403224168






D0
57494133251791
595143352719113
615345372921135
635547393123157



É interessante observar que G0 contém todos os bits que possuem uma posição par na mensagem inicial, enquanto D0 contém os bits de posição ímpar. RondasOs blocos Gn e Dn são sujeitos a um conjunto de transformações interativas chamadas voltas, esclarecidas neste esquema, e cujos detalhes são dados abaixo: 



Função de expansãoOs 32 bits do bloco D0 são estendidos até 48 bits graças a uma tabela (matriz) chamada tabela de expansão (marcada como E), na qual os 48 bits são misturados e 16 dentre eles são duplicados: 


E
3212345
456789
8910111213
121314151617
161718192021
202122232425
242526272829
28293031321


Assim, o último bit de D0 (quer dizer, o 7º bit do bloco de origem) torna-se o primeiro, o primeiro torna-se o segundo,… 
Além disso, os bits 1,4,5,8,9,12,13,16,17,20,21,24,25,28 e 29 de D0 (respectivamente 57,33,25, l, 59,35,27,3,6l, 37,29,5,63,39,31 e 7 do bloco de origem) são duplicados e disseminados na matriz. OU exclusivo com a chaveA matriz resultante de 48 bits é chamada D'0 ou E[D0]. O algoritmo procede seguidamente a um OU exclusivo entre a primeira chave K1 e E[D0]. O resultado deste OU exclusivo é uma matriz de 48 bits que chamaremos D0 por conveniência (não se trata do D0 do início!). Função de substituiçãoD0é cindido seguidamente em 8 blocos de 6 bits, notado D0i. Cada um destes blocos passa por funções de seleção (chamadas às vezes caixas de substituição ou funções de compressão), marcadas geralmente como Si. 
Os primeiros e últimos bits de cada D0idetermina (em binário) a linha da função de seleção, os outros bits (respectivamente 2,3,4 e 5) determinam a coluna. A selecção da linha, fazendo-se sobre duas bits, dá 4 possibilidades (0,1,2,3). A seleção da coluna que se faz em 4 bits tem 16 possibilidades (0 a 15). Graças a esta informação, a função de seleção “seleciona” um valor codificado em 4 bits. 
Eis a primeira função de substituição, representada por uma matriz de 4 por 16: 


S1

0123456789101112131415
01441312151183106125907
10157414213110612119538
24114813621115129731050
31512824917511314100613


Suponhamos que D01 é igual a 101110. Os primeiros e últimos bits dão 10, quer dizer, 2 binário. Os bits 2,3,4 e 5 dão 0111, quer dizer 7 binário. O resultado da função de seleção é então o valor situado na linha n°2, na coluna n°7. Trata-se do valor 11, ou em binário 111. 
Cada um dos 8 blocos de 6 bits passou na função de seleção correspondente, o que dá no final 8 valores de 4 bits cada um. Eis as outras funções de seleção: 


S2

0123456789101112131415
01518146113497213120510
13134715281412011069115
20147111041315812693215
31381013154211671205149





S3

0123456789101112131415
01009146315511312711428
11370934610285141211151
21364981530111212510147
31101306987415143115212





S4

0123456789101112131415
07131430691012851112415
11381156150347212110149
21069012117131513145284
33150610113894511127214





S5

0123456789101112131415
02124171011685315130149
11411212471315015103986
24211110137815912563014
31181271142136150910453





S6

0123456789101112131415
01211015926801334147511
11015427129561131401138
29141552812370410113116
34321295151011141760813





S7

0123456789101112131415
04112141508133129751061
11301174911014351221586
21411131237141015680592
36111381410795015142312





S8

0123456789101112131415
01328461511110931450127
11151381037412561101492
17114191214206101315358
12114741081315129035611


Cada bloco de 6 bits assim é substituído num bloco de 4 bits. Estes bits são agrupados para formar um bloco de 32 bits. PermutaO bloco de 32 bits obtido é por último submetido a uma permuta P cuja tabela é a seguinte: 


P
167202129122817
11523265183110
282414322739
19133062211425



OU Exclusivo
O conjunto destes resultados em saída de P é sujeito a um OU Exclusivo com o G0 de partida (como indicado no primeiro esquema) para dar D1, enquanto o D0 inicial dá G1. InteraçãoO conjunto das etapas precedentes (voltas) é reiterado 16 vezes. Permuta inicial inversaNo fim das interações, os dois blocos G16 e D16 são recolados, e seguidamente sujeitos à permuta inicial inversos: 


PI-1
408481656246432
397471555236331
386461454226230
375451353216129
364441252206028
353431151195927
342421050185826
33141949175725



O resultado da saída é um texto codificado de 64 bits! Geração das chavesDado que o algoritmo do apresentado acima é público, toda a segurança assenta na complexidade das chaves de codificação. 
O algoritmo abaixo mostra como obter, a partir de uma chave de 64 bits (composta de 64 caracteres alfanuméricos quaisquer) 8 chaves diversificadas de 48 bits cada uma que servem no algoritmo do DES : 


&nbsp;
Inicialmente, os bits de paridade da chave são eliminados a fim de obter uma chave com um comprimento útil de 56 bits. A primeira etapa consiste numa permuta notada CP-1 , cuja matriz é apresentada abaixo: 


CP-1
57494133251791585042342618
10259514335271911360524436
635547393123157625446383022
1466153453729211352820124



Esta matriz pode, com efeito, escrever-se sob a forma de duas matrizes Gi e Di (para esquerda e direita) compostas cada um de 28 bits: 


Gi
5749413325179
1585042342618
1025951433527
1911360524436





Di
63554739312315
7625446383022
1466153453729
211352820124


Marca-se como G0 e D0o resultado desta primeira permuta. Estes dois blocos sofrem seguidamente uma rotação à esquerda, de tal maneira que os bits em segunda posição tomam a primeira posição, os em terceira posição a segunda… Os bits em primeira posição passam para última posição. Os 2 blocos de 28 bits são agrupados seguidamente num bloco de 56 bits. Este passa por uma permuta, notada CP-2, fornecendo em saída um bloco de 48 bits, representando a chave Ki. 

CP-2
14171124153281562110
23191242681672720132
415231374755304051453348
444939563453464250362932


Interações do algoritmo permitem dar as 16 chavesK1 à K16 utilizadas no algoritmo de DES. 

LS
124681012141517192123252728 



TDES, uma alternativa ao DESEm 1990, Eli Biham e Adi Shamir afinaram a criptanálise diferencial que procura pares de texto normal e pares de texto codificados. Este método funciona até um número de voltas inferior a 15, ora um número de 16 voltas está presente no algoritmo apresentado acima. Por outro lado, mesmo se uma chave de 56 bits dá um número enorme de possibilidades, numerosos processadores permitem calcular mais de 106 chaves por segundo; assim, utilizados paralelamente num elevado número de máquinas, é possível para um grande organismo (um Estado, por exemplo) encontrar a chave certa… Uma solução em curto prazo consiste em encadear três codificações DES com a ajuda de duas chaves de 56 bits (o que equivale a uma chave de 112 bits). Este método é chamado Triplo DES, notado TDES (às vezes 3DES ou 3-DES). 


O TDES permite aumentar significativamente a segurança, contudo tem o inconveniente essencial de pedir igualmente mais recursos para a codificação e decodificação. Distinguem-se habitualmente vários tipos de codificação tripla DES: DES-EEE3: 3 codificações DES com 3 chaves diferentes; 
DES-EDE3: uma chave diferente para cada uma das 3 operações DES (codificação, decodificação, codificação); 
DES-EEE2 e DES-EDE2 : uma chave diferente para a segunda operação (decodificação).

Em 1997 o NIST lançou um novo apelo para um projeto de elaboração do AES (Advanced Encryption Standard), um algoritmo de codificação destinado a substituir o DES. O sistema de codificação DES foi atualizado todos os 5 anos. Em 2000, quando da última revisão, após um processo de avaliação que durou 3 anos, o algoritmo concebido conjuntamente por dois candidatos belgas, Vincent Rijmen e Joan Daemen, foi escolhido como novo standard pelo NIST. Este novo algoritmo baptizado RIJNDAEL devido aos seus inventores, substituiria&nbsp; o DES. 
A codificação com RSA
O sistema RSAO primeiro algoritmo de codificação com chave pública (codificação assimétrica) foi desenvolvido por R. Merckle e M.Hellman em 1977. Ficou rapidamente obsoleto graças aos trabalhos de Shamir, Zippel e de Herlestman, famosos criptanalistas. Em 1978, o algoritmo com chave pública de Rivest, Shamir, e Adelman (daí o nome RSA) aparece. Este algoritmo servia ainda em 2002 para proteger os códigos nucleares do exército americano e russo. Funcionamento de RSAO funcionamento do criptosistema RSA é baseado na dificuldade de fatorização de grandes inteiros. Tomemos dois números primos p e q, e d um inteiro de modo a que d seja primeiro com (p-1) * (q-1)). O trio (p, q, d) constitui assim a chave privada.&nbsp; A chave pública é então o par (n,e) criado com a ajuda da chave privada pelas transformações seguintes: n = p * q e = 1/d mod((p-1)(q-1))Suponhamos que M é a mensagem a enviar. É necessário que a mensagem M seja primo com a chave n. Com efeito, decodificação assenta no teorema de Euler que estipula que se M e n forem primos entre eles, então: Mphi(n) = 1 mod(n)
Phi(n) o indicador de euler, e valendo no caso presente (p-1)*(q-1). É, por conseguinte necessário que M não seja um múltiplo de p, de q, ou de n. Uma solução consiste em recortar a mensagem M em pedaços Mi de modo a que o número de números de cada Mi seja estritamente inferior ao de p e q. Isto supõe, então, que p e q sejam grandes, que é o caso na prática, dado que todo o princípio de RSA reside na dificuldade em encontrar num tempo razoável p e q que conhecem n., o que supõe p e q grandes. Na prática…Suponham que um utilizador (chamado Bob) deseja enviar uma mensagem M a uma pessoa (chamem-lhe Alice), ele só tem que arranjar e a chave pública (n,e) desta última e seguidamente calcular a mensagem codificada c: c = Me mod(n)
Bob envia, seguidamente, a mensagem codificada c a Alice, que é capaz de decifrá-la com a ajuda da sua chave privada (p, q, d): M =&nbsp; Me*d mod(n) = cd mod(n)
PGP - Pretty Good PrivacyIntrodução ao PGPO PGP (Pretty Good Privacy) é um criptosistema (sistema de codificação) inventado por Philip Zimmermann, um analista informático. Philip Zimmermann trabalhou de 1984 a 1991 num programa que permite fazer funcionar o RSA em computadores pessoais (PGP). Contudo, como este utilizava o RSA sem o acordo dos seus autores, isto lhe valeu processos durante 3 anos, e foi então vendido por cerca de 150$ em 1993. É muito rápido e seguro, o que o torna quase impossível de criptoanalisar. O princípio de PGPO PGP é um sistema de criptografia híbrido, utilizando uma combinação das funcionalidades da criptografia com chave pública e a criptografia simétrica. Quando um utilizador codifica um texto com PGP, os dados são primeiro comprimidos. Esta compressão dos dados permite reduzir o tempo de transmissão por qualquer meio de comunicação, economizar espaço no disco e, sobretudo, reforçar a segurança criptográfica. A maior parte dos criptanalistas explora os modelos encontrados no texto normal para quebrar a codificação. A compressão reduz estes modelos no texto normal, melhorando, por conseguinte consideravelmente a resistência à criptoanálise. Seguidamente, a operação de codificação faz-se principalmente em duas etapas: PGP cria uma chave secreta IDEA de maneira aleatória, e codifica os dados com esta chave. 
PGP cripta a chave secreta IDEA e transmite-a através da chave RSA pública do destinatário.

A operação de decodificação faz-se principalmente em duas etapas: PGP decifra a chave secreta IDEA através da chave RSA privada. 
PGP decifra os dados com a chave secreta IDEA previamente obtida.
Este método de codificação associa a facilidade de utilização da cifragem de chave pública à velocidade da cifragem convencional. A codificação convencional é cerca de 1000 vezes mais rápida que os algoritmos de codificação com chave pública. A codificação com chave pública resolve o problema da distribuição da chave. Utilizados conjuntamente, estes dois métodos melhoram o desempenho e a gestão das chaves, sem, no entanto, comprometer a segurança. As funcionalidades de PGPPGP oferece as funcionalidades seguintes: Assinatura eletrônica e verificação de integridade de mensagens : função baseada no emprego simultâneo de uma função hachage (MD5) e do sistema RSA. MD5 corta a mensagem e fornece um resultado de 128 bits que é codificado seguidamente, graças ao RSA, pela chave privada do remetente. 
Codificação dos ficheiros locais: função utilizando IDEA. 
Geração de chaves públicas e privadas: cada utilizador codifica as suas mensagens com a ajuda de chaves privadas IDEA. A transferência de chaves electrónicas IDEA utiliza o sistema RSA; PGP oferece, por conseguinte mecanismos de geração de chaves adaptados a este sistema. A dimensão das chaves RSA é proposta de acordo com vários níveis de segurança: 512,768,1024 ou 1280 bits. 
Gestão de chaves: função que assegura a distribuição da chave pública do utilizador aos correspondentes que desejam enviar-lhe mensagens codificadas. 
Certificação de chaves: esta função permite acrescentar um selo numérico que garante a autenticidade das chaves públicas. Trata-se de uma originalidade de PGP, que baseia a sua confiança numa noção de proximidade social, mais do que na de autoridade central de certificação. 
Revogação, desactivação, registo de chaves: função que permite produzir certificados de revogação.

O formato dos certificados PGPUm certificado PGP compreende, designadamente, as informações seguintes: O número de versão de PGP: identifica a versão de PGP utilizada para criar a chave associada ao certificado. 
A chave pública do detentor do certificado: parte pública do seu par de chaves associada ao algoritmo da chave, quer seja RSA, DH (Diffie-Hellman) ou DSA (Algoritmo de assinatura numérica). 
As informações do detentor do certificado: trata-se das informações sobre “a identidade” do utilizador, como o seu nome, o seu ID utilizador, a sua fotografia, etc. 
A assinatura numérica do detentor do certificado: igualmente chamada autoassinatura, trata-se da assinatura efetuada com a chave privada que corresponde à chave pública associada ao certificado. 
O período de validade do certificado: datas/horas de início e expiração do certificado. Indica a data de expiração do certificado. 
O algoritmo de codificação simétrico preferido para a chave: indica o algoritmo de codificação que o detentor do certificado prefere aplicar à cifragem de informações. Os algoritmos assumidos são CAST, IDEA ou triplo.
O fato de um só certificado poder conter várias assinaturas é um dos aspectos únicos do formato do certificado PGP. Várias pessoas podem assinar o par de chaves/de identificação para atestar com toda a certeza a presença da chave pública ao detentor especificado. Certos certificados PGP são compostos de uma chave pública com várias minutas, cada uma oferece um modo de identificação do detentor da chave diferente (por exemplo, o nome e a conta de serviço de mensagens de empresa do detentor, pseudónimo e a conta de serviço de mensagens pessoal do detentor, a sua fotografia, e isto tudo num só um certificado). 
Num certificado, uma pessoa deve afirmar que uma chave pública e o nome do detentor da chave estão associados. Seja quem for pode validar os certificados PGP. Os certificados X. 509 devem sempre ser validados por uma autoridade de certificação ou uma pessoa designada pelo CA. Os certificados PGP tomam igualmente em carga uma estrutura hierárquica com a ajuda de uma CA para a validação dos certificados. Várias diferenças existem entre um certificado X. 509 e um certificado PGP. As mais importantes são indicadas abaixo: 
Para criar o seu próprio certificado PGP, deve pedir a emissão de um certificado X. 509 junto de uma autoridade de certificação e obtê-lo; Os certificados X. 509 encarrega-se de um só nome para o detentor da chave; 
Os certificados X. 509 encarregam-se só de uma assinatura numérica para atestar da validade da chave; 
Os modelos de Confiabilidade de PGPGeralmente, a CA (Certification authority - autoridade de certificação) inspira uma confiança total para estabelecer a validade dos certificados e efetuar todo o processo de validação manual. Mas é difícil estabelecer uma linha de confiança com as pessoas não consideradas explicitamente como fiáveis pelo seu CA 
Num ambiente PGP, qualquer utilizador pode agir como autoridade de certificação. Pode, por conseguinte validar o certificado de chave pública de outro utilizador PGP. Contudo, tal certificado pode ser considerado como válido por outro utilizador unicamente se um terceiro reconhecer o que validou este certificado como um correspondente confiável. Quer dizer, se respeitar, por exemplo, a minha opinião segundo a qual as chaves dos outro são corretas unicamente se eu for considerado como um correspondente confiável. No caso contrário, a minha opinião sobre a validade de outras chaves é controversa. Suponhamos, por exemplo, que o seu pequeno porta-chaves contém a chave de Alice. Validou-a e, para indicá-lo, assina-a. Além disso, sabe que Alice é muito seletiva no que diz respeito à validação das chaves de outros utilizadores. Por conseguinte, apresenta uma confiabilidade completa à sua chave. Alice torna-se assim uma autoridade de certificação. Se assinar a chave de outro utilizador, esta chave aparece como válida no seu porta-chaves. A revogação de um certificado PGPApenas o detentor do certificado (o detentor da sua chave privada correspondente) ou outro utilizador, designado como autoridade de revogação pelo detentor do certificado, tem a possibilidade de revogar um certificado PGP. A designação de uma autoridade de revogação é útil, porque a revogação, por um utilizador PGP, do seu certificado frequentemente deve-se à perda da palavra-passe complexa da chave privada correspondente. Ora, este procedimento pode unicamente ser efetuado se for possível chegar à chave privada. Um certificado X. 509 pode unicamente ser revogado pelo seu emissor. 
Quando um certificado é revogado, é importante avisar os seus utilizadores potenciais. Para informar da revogação dos certificados PGP, o método habitual consiste em colocar esta informação num servidor de certificados. Assim, os utilizadores que desejem comunicar com os mesmos são avisados para não utilizar esta chave pública. Fonte:
http://pt.kioskea.net/&nbsp;(http://pt.kioskea.net/)http://www.pgpi.org/doc/pgpintro/http://www.memorial-caen.fr/

Por: Alan