You are on page 1of 40

-

ii

Aprendendo Criptografia Uma Introduo Bsica s Cifras Cripto A Terry Ritter


Verso: 09 / janeiro /1999 Traduo: Cesar Carvalho

Sobre este livro Este livro eletrnico (e-book) a traduo de uma edio distribuda para o leitor de livros eletrnicos Rocket eBook, e at ento no havia verso em portugus. Se voc gostou deste livro, considere a possibilidade de retribuir, produzindo ou distribuindo pela Internet material similar, gratuitamente; ou, se preferir, deixando materiais similares de natureza gratuita disponveis para compartilhamento em seu programa de P2P favorito (eMule, Kazaa, BitTorrent, etc.). Sobre o Copyright A edio original deste material no se encontra disponvel para venda. Sendo considerado material abandonado, passou a ser distribudo gratuitamente, nos termos ticos do abandonware. Sobre a impresso Se desejar imprimir uma cpia, deste livro, as popularssimas folhas A4, cortadas exatamente no meio, daro a medida exata da pgina. No esquea de ajustar a orientao do papel de sua impressora para Landscape (paisagem), se for necessrio.

Apresentao Por esta ou aquela razo, a boa criptografia muito mais difcil do que parece. Este campo de conhecimento parece ter um fluxo interminvel de experts de outras reas, que oferecem variaes criptogrficas de idias que so comuns em outras reas. No h nada errado com novas idias. Mas h, de fato, muitas pessoas extremamente inteligentes e educadas, com uma enorme variedade de interesses cientficos, que participam ativamente desta rea. muito comum descobrir que as idias supostamente novas j haviam sido propostas, sob outro nome ou como um conceito geral. importante ter algum conhecimento bsico, antes de ir a fundo no assunto. Talvez voc queira dar suporte a esse trabalho, patrocinando a Biblioteca de Criptografia de Terry Ritter.

ii

LBUM FOTOGRFICO

iii

Monumento em homenagem criptografia, localizado na sede da CIA, Virgnia, EUA.

iv

O primeiro computador totalmente eletrnico foi o ENIAC. Construdo nos EUA, possua cerca de 19 mil vlvulas de vcuo. Projetado durante a Segunda Guerra Mundial, uma das principais tarefas do ENIAC consistia na tentativa de "quebrar" os cdigos criptogrficos usados pelo Estado Maior alemo. Atravs dos cabos e conectores que vemos na foto, era feita a progranao da enorme mquina.

O ingls Alan Turing, matemtico e terico da computao, trabalhou na quebra do algoritmo de criptografia da Enigma, uma mquina cifradora mecnica alem usada nas comunicaes durante a Segunda Guerra. Turing foi um pioneiro no uso dos computadores arcaicos de seu tempo para a quebra das cifras criptogrficas.

Muitos dos computadores pioneiros, como este Manchester Mark I (de cujo projeto Alan Turing participou), foram construdos no desenrolar da II Guerra Mundial, na tentativa de conseguir uma forma eficiente de quebrar os sistemas criptogrficos da poca.

vi

O PGP, ou Pretty Good Privacy, um software de criptografia por chave assimtrica (pblica/privativa) disponvel livremente, e considerado um marco histrico por ser o primeiro programa de criptografia forte acessvel ao grande pblico.

Philip Zimmermann, o programador norte-americano que criou e disponibilizou o PGP. Por causa disso, teve alguns problemas com o governo dos EUA, que no gostou de ver um sistema que permitia a qualquer um se comunicar sem risco de ser monitorado pelas agncias governamentais. Depois de responder a vrios processos, Zimmermann acabou inocentado.

vii

Sumrio
1. Conceito Fundamental da Criptografia Um Exemplo Real: Transformao Simples Encriptografando (Cifrando) Desencriptografando (Decifrando) A Transformao Simples Transformaes Diversas Transformaes Fortes e Fracas O conceito do Keyspace Cifras Eletrnicas Digitais Chaves Gigantes 2. Cifras Simplrias 3. Desafios Simplrios 4. O Que a Criptografia Pode Fazer 5. O Que a Criptografia No Pode Fazer 6. Criptografia com Chaves 7. Problemas com as Chaves 8. Criptografia sem Chaves 9. Keyspace 10. Fora de um Sistema 11. Projeto de um Sistema e sua Fora 12. Criptoanlise versus Subverso 13. Cifras Secretas 14. Cifras de Hardware versus Cifras de Software 15. Cifras de Bloco 16. Cifras de Cadeia 17 . Cifras de Chave Pblica Apndices A. O Livro Mais Importante B. Criptoanlise Clssica C. Outros Livros D. Teoria de Codificao E. Para os Desenvolvedores 1 2 2 3 3 3 4 5 6 6 7 9 9 11 12 12 13 14 15 16 17 17 19 20 21 22 24 26 29 30 31

viii

1. Conceito Fundamental da Criptografia

possvel transformar (cifrar ou encriptar) uma mensagem de texto plano em uma forma intermediria, ou texto cifrado (em ingls, cyphertext) onde a informao est presente mas oculta. Ento, podemos divulgar a mensagem transformada (o texto cifrado) sem expor a informao que ele representa. Usando transformaes variadas, podemos criar muitos textos cifrados para exatamente a mesma mensagem. Ento, se selecionarmos ao acaso uma transformao em particular, gostaramos de que algum disposto a expor a mensagem (ou seja, quebrar a criptografia) no possa fazer nada melhor do que tentar, uma por uma, todas as transformaes possveis (ou, considerando a probabilidade estatstica, a metade delas). Isto um ataque de fora bruta. A diferena entre as formas intermedirias a interpretao dos dados no texto cifrado. Cifras (cdigos) diferentes, bem como chaves diferentes, vo produzir interpretaes diferentes (ou seja, textos planos diferentes) para exatamente o mesmo texto cifrado. A incerteza de como interpretar um texto cifrado qualquer a forma como a informao escondida. Naturalmente, o destinatrio legtimo tem que saber como transformar ou decifrar a forma intermediria, de volta a mensagem original, o que nos leva ao problema de distribuir a chave. Por si s, o texto cifrado literalmente sem sentido, no contexto de no ser possvel deduzir nenhuma interpretao. Nas assim chamadas cifras perfeitas, qualquer texto cifrado (de tamanho adequado) pode ser interpretado como qualquer mensagem, pela mera seleo da chave apropriada. De fato, qualquer nmero de mensagens diferentes pode produzir exatamente o mesmo texto cifrado, atravs do uso de chaves apropriadas. Em outras cifras, isto nem sempre possvel, mas deve sempre ser considerado. Para algum atacar e quebrar uma cifra, precisa ter como se certificar de que a mensagem gerada pelo texto cifrado exatamente a mensagem em particular que foi enviada.

Um Exemplo Real: Transformao simples Em um pedao de papel pautado, comeamos por escrever o alfabeto em ordem, uma letra em cada linha: A B C ... Ento, em cada linha, vamos escrever outra letra do lado direito. Nesta segunda coluna, devemos usar cada caractere alfabtico exatamente uma vez, mas vamos distribu-los em alguma ordem diferente. A B C ... F W A ...

Quando terminarmos, poderemos pegar uma mensagem qualquer e cifr-la letra por letra.

Encriptografando (Cifrando) Para cifrar uma letra, primeiro localizamos esta letra na coluna da esquerda, ento usamos a letra associada na coluna da direita e a escrevemos. Ento, cada letra na coluna da direita se torna a substituta para a respectiva letra na coluna da esquerda.

Desencriptografando (Decifrando) Para decifrar, o processo similar, exceto que devemos localizar o texto cifrado na coluna da direita, ento usar a letra associada (que corresponde ao texto plano) na coluna da esquerda. Este processo um pouco mais difcil, porque as letras na coluna da direita no esto em ordem alfabtica. No entanto, caso desejarmos, podemos fazer uma nova tabela onde as letras do texto cifrado (coluna da direita) aparecem em ordem; este ser o inverso do processo de transformao da cifra. E se tivermos as duas tabelas, cifrar e decifrar se tornam igualmente fceis.

A Transformao Simples Esta cifra do colgio primrio uma cifra simples de substituio, uma cadeia ou repetio letra-por-letra da mesma transformao. A transformao, em si, consiste do arranjo particular das letras na segunda coluna, uma permutao do alfabeto. Podem haver muitos destes arranjos. Mas neste caso a chave um arranjo em particular. Podemos copi-lo e dar a algum, e ento enviar mensagens secretas para ele. Mas, no caso de mais algum obter ou mesmo copiar -- a chave, as mensagens cifradas sero expostas. Isto significa que temos de manter a chave secreta.

Transformaes Diversas Suponha agora que temos um caderno inteiro de pginas numeradas, cada um contendo um arranjo diferente na segunda coluna. Suponha que cada pgina numerada. Agora, podemos pegar um nmero qualquer e cifrar nossa mensagem, usando esta pgina em particular. Este nmero ento se torna a nossa chave, que agora uma espcie uma espcie de abreviatura para a transformao completa. Ento, mesmo se o caderno for exposto, algum que quiser expor nossa mensagem precisa tentar cerca de metade das transformaes do livro, antes de encontrar a certa. Uma vez

que a exposio do caderno no significa expor imediatamente as mensagens, talvez possamos deixar o caderno desprotegido. Podemos tambm usar o mesmo caderno para enviar mensagens a vrias pessoas, e cada uma pode usar exatamente o mesmo caderno para enviar suas prprias mensagens a terceiros. Pessoas diferentes pode usar o mesmo caderno, e ainda assim iro criar mensagens cifradas que so difceis de expor sem conhecer a chave certa. Perceba que h um certo potencial para confundir as coisas, j que primeiro chamamos a transformao de chave, e ento tambm chamamos um nmero que seleciona a transformao certa (a pgina do caderno) de chave. Mas ambos servem para selecionar uma construo particular do texto cifrado dentre muitas outras, e ambos so apenas dois dos muitos tipos de chave em criptografia.

Transformaes Fortes e Fracas A substituio simples usada em nossa cifra do colgio primrio muito fraca, porque ela deixa vazar alguma informao: quanto mais vezes uma letra qualquer aparecer no texto plano, mais vezes ela ir aparecer no texto cifrado. Como sabemos que cada idioma usa certas letras mais do que outras, se meramente contarmos o nmero de vezes que cada letra aparece no texto cifrado, podemos ter uma boa dica de qual letra no texto plano ela representa. Ento, podemos tentar decifrar com a chave que supomos ser certa, e ver se ela produz alguma coisa inteligvel. Usualmente, no demora muito at quebrar esta cifra, mesmo sem ter uma chave. De fato, teremos desenvolvido uma chave definitiva (a transformao criptogrfica) para quebrar a cifra. Uma aplicao real de criptografia tem que ter uma transformao muito mais complexa. Por exemplo, a tpica cifra em bloco de 64 bits ir cifrar 8 letras ao mesmo tempo, e a troca de qualquer uma destas letras ir causar a troca de todas as 8 letras no texto cifrado resultante. Ainda estamos lidando com uma cifra de substituio simples, mas com um enorme alfabeto. Ao invs de usarmos 26 letras, uma cifra de bloco de 64 bits ir

considerar cada um de 264 valores possveis para cada bloco como uma letra separada, o que algo como termos 18 000 000 000 000 000 000 (dezoito quintilhes) de letras em nosso alfabeto criptogrfico. O conceito do Keyspace1 Suponhamos que temos 256 pginas de transformaes no nosso caderno; ento, h exatamente 256 chaves diferentes, dentre as quais podemos escolher uma. Se escrevermos o nmero 256 na forma binria, temos 10000000 onde o 1 mais esquerda representa uma contagem de 28, o que chamamos de nmero de 8 bits. Ou podemos computar o logaritmo de base 2, primeiro calculando o logaritmo natural2 de 256 (cerca de 5,545) e dividindo pelo logaritmo natural de 2 (cerca de 0,693); o resultado tambm 8. Ento, podemos dizer que temos possibilidade de 256 chaves em um keyspace de 8 bits. Se escolhermos ao acaso uma destas 256 chaves possveis, e usarmos esta transformao para cifrar uma mensagem, algum que tenta quebrar nossa cifra ter que experimentar em mdia 128 chaves antes de se deparar com a chave correta. O esforo envolvido em tentar, em mdia, 128 chaves (um ataque de fora bruta) antes de achar a certa, a fora do projeto desta cifra. Se nosso caderno tiver 65 536 pginas de chaves (ao invs de apenas 256) teremos um keyspace de 16 bits. Note que o nmero de chaves possveis 256 vezes maior que o keyspace de 8 bits, enquanto que a chave propriamente dita apenas 8 bits maior (duas vezes maior) do que a cifra de 8 bits. A fora da cifra de 16 bits o maior esforo necessrio para tentar, em mdia, 32 768 cifras para se deparar com a correta. O conceito o mesmo de uma cifra moderna: Temos uma mquina que pode produzir um enorme nmero de transformaes diferentes entre o
Preferiu-se manter no idioma original o termo keyspace (literalmente, espao da chave, ou, em traduo livre, algo como tamanho da chave.) 2 Logaritmo natural o logaritmo de base e, onde e representa o Nmero de Euler, um nmero irracional de valor aproximadamente igual a 2,71828182846.
5 1

texto plano e o texto cifrado, e podemos selecionar qualquer uma destas transformaes com o valor de uma chave. Uma vez que h muitas chaves possveis, difcil expor a mensagem, mesmo se a mquina em si no secreta. E muitas pessoas podem usar exatamente a mesma mquina para seus prprios segredos, sem revelar estes segredos a algum mais que possua a mesma mquina.

Cifras Eletrnicas Digitais Uma das conseqncias de termos uma mquina eletrnica digital para criptografia, que ela opera muito rpido. Isto significa que, com ela, algum pode tentar muitssimo mais combinaes do que poderia com um caderno, lpis e papel. Por exemplo, um keyspace de 40 bits representa cerca de 1012 chaves, o que parece um nmero bastante grande. Infelizmente, hardware dedicado (projetado especialmente para criptografia) pode testar este enorme nmero de combinaes em cerca de 5 segundos, o que definitivamente no significa muita fora. Um keyspace de 56 bits representa cerca de 7 x 1016 chaves diferentes, e foi recentemente quebrado por hardware dedicado em 56 horas; isto ainda no significa muita fora3. A recomendao atual de fora de 112 a 128 bits, e 256 bits no est fora de cogitao. 128 bits so apenas 16 bytes, que o espao de armazenamento normalmente consumido por 16 caracteres de texto, uma quantidade mnima. Uma chave de 128 bits forte o suficiente para derrotar mesmo ataques de fora bruta inimaginavelmente grandes.

Chaves Gigantes Adotando a teoria se um pouco bom, muito melhor, algumas pessoas j sugeriram usar chaves gigantes de 56 000 bits, ou 1 000 000 bits, ou at mais. possvel construir tais sistemas, e eles podem operar com
O leitor no deve esquecer que este texto de janeiro de 1999, e o hardware sem dvida evoluiu muito desde ento. A mesma observao vale para os pargrafos seguintes.
6 3

rapidez. Podemos at arcar com o espao de armazenamento das chaves gigantes. No temos uma razo para usar tais chaves: uma chave de 128 bits forte o suficiente para deter mesmo ataques de fora bruta inimaginavelmente grandes. Embora um projetista ou desenvolvedor possa usar chaves maiores por convenincia, mesmo chaves imensas no podem oferecer mais segurana do que a chave forte o suficiente. E enquanto outras abordagens de ataque podem comprovar que a cifra na verdade no to forte quanto se supunha, um keyspace gigantesco no vai resolver estes problemas. Algumas formas de cifras precisam de grandes chaves, meramente para ter um keyspace grande o bastante. Boa parte dos cifradores de chave pblica, embasados na teoria dos nmeros, se enquadram nesta classe. Basicamente, estes sistemas requerem valores de chave em uma forma muito especial, o que torna boa parte dos possveis valores para a chave imprestveis e no usados. Isto significa que o keyspace real muito menor do que o tamanho da chave pode indicar. Por esta razo, sistemas de chave pblica precisam de chaves na faixa dos 1 000 bits, enquanto oferecem uma fora comparvel a cifras de chave secreta de 128 bits.

2. Cifras Simplrias

Suponhamos que precisamos esconder um nome: Gostaramos de inovar, e criar uma regra diferente para cada letra. Podemos dizer: Primeiro temos um T, mas t a terceira letra de batata ento a substitumos por 3. Podemos continuar desta forma, e tal cifra seria muito difcil de quebrar. Ento por que este tipo de coisa no feito? H vrias razes: Primeiro, um texto cifrado precisa ser decifrvel, e, se escolhermos regras ao acaso, muito fcil criar uma regra que depende do texto plano, que obviamente no pode estar presente seno depois que o texto cifrado foi decifrado.

O prximo problema lembrar as regras, uma vez que as regras consistem na chave. Se escolhermos uma grande variedade de regras, sem seguir nenhuma seqncia lgica, teremos uma cifra forte, mas intil, pois no teremos como lembrar da chave. E se escrevermos a chave num papel, qualquer um a que leia e interprete adequadamente (o que pode ser outro problema). Ento precisamos escolher dentre poucas regras, em alguma seqncia lgica ou padro, o que resulta numa cifra mais fraca. Outro problema o que vamos fazer com mensagens longas. Este tipo de esquema parece precisar de uma chave diferente, ou talvez apenas outra(s) chave(s), para uma mensagem longa, o que sem dvida inconveniente. O que s vezes acontece na prtica que a chave reutilizada regularmente, e isso uma grande fraqueza. Um outro problema no caso de regras muito complexas, que descrever as regras de decodificao pode demandar por mais informao do que a prpria mensagem. Para enviar a mensagem para algum, primeiro precisamos de algum modo transportar a chave em segurana para a localidade receptora. Mas, se podemos transportar esta quantidade de dados seguramente, nos perguntamos por que no poderamos transferir de uma vez a prpria mensagem, visto que de menor tamanho. A criptografia moderna envolve construes que tentam resolver todos estes problemas. Uma cifra moderna tem um keyspace grande, que pode ser controlada por um algoritmo computacional em uma frase de linguagem corrente que podemos lembrar. Um sistema moderno de criptografia pode operar mensagens numa grande variedade de tamanhos, com exatamente a mesma chave, e normalmente assegura uma forma segura de reutilizar as chaves. E a chave pode ser muitssimo menor do que uma mensagem longa. Alm disso, em uma cifra moderna, esperamos que a chave no possa ser exposta, mesmo se o Oponente obtm simultaneamente tanto o texto plano quanto o texto cifrado para uma determinada mensagem (um ataque chamado de texto plano conhecido). Na verdade, normalmente assumimos que o Oponente sabe todos os detalhes da construo da cifra, e tem montes de textos planos para confrontao com os textos cifrados, e

ainda assim incapaz de descobrir a chave. Tais projetos no so nada triviais.

3. Desafios Simplrios

Volta e meia, um iniciante aparece com uma seqncia de caracteres aparentemente aleatria, e diz: Aposto que ningum consegue quebrar isto! Mas este cenrio no muito realista. No uso real, assumimos que uma cifra ser largamente distribuda, e portanto, de certa forma poder ser obtida. Ento, assumimos que o Oponente ir de alguma forma obter, ou os planos de nossa mquina de criptografia, ou ento a prpria mquina. Tambm assumimos que uma mquina de criptografia ser largamente utilizada, ento uma grande quantidade de material cifrado estar disponvel em algum lugar, talvez ao alcance do Oponente. Assumimos ainda que o Oponente pode acabar obtendo alguma quantidade de texto plano, e o texto cifrado correspondente para confrontao. E mesmo nesta situao, ainda esperamos que a cifra seja capaz de ocultar tanto a chave quanto as outras mensagens em trnsito.

4. O Que a Criptografia Pode Fazer

Potencialmente, a criptografia pode esconder informao enquanto a mesma se encontra em trnsito ou armazenada (arquivada). Em termos gerais, a criptografia pode: Garantir o segredo.

Garantir que uma mensagem no foi alterada, enquanto em trnsito. Implicitamente, autenticar o remetente da mensagem.

Criptografia oculta palavras: no fim das contas, ela pode apenas ocultar o ato de falar sobre contrabando ou aes ilegais. Mas em um pas onde h liberdade de expresso, normalmente espera-se que crimes sejam mais do que apenas falar.4 A criptografia pode causar mortes, no mesmo sentido de que botinas podem matar; ou seja, parte de algum outro processo, mas isto no torna a criptografia algo comparvel a um fuzil, ou um canho.5 A criptografia defensiva, e pode proteger negcios comuns e pessoas comuns. A criptografia pode ser para nossas informaes particulares o mesmo que nossa casa para nossa propriedade privada, e nossa casa nosso castelo. Potencialmente, a criptografia pode esconder segredos, seja de terceiros ou durante a comunicao. H muitas boas razes, legtimas e absolutamente dentro da lei, para se ter segredos: certamente, todo setor de pesquisa e desenvolvimento da indstria possui segredos que deseja manter protegidos. Professores e escritores podem querer manter seu trabalho em sigilo, at o momento apropriado. Negociaes envolvendo novos empregos so geralmente secretas, e em geral o romance tambm o , ou pelo menos gostaramos que as conversaes detalhadas no fossem expostas. Um exemplo, escolhido ao acaso, de aplicao possvel para a criptografia, a comunicao on-line eficiente e segura entre a casa e o trabalho, talvez permitindo que as pessoas trabalhem em casa e levando a uma reduo do trfego, algo que certamente todos iriam apreciar.

Nos EUA, a liberdade de expresso (freedom of speech) considerada como um direito constitucional, inalienvel e sagrado. No Brasil, a liberdade de expresso no levada muito a srio, e falar sobre um suposto crime pode teoricamente levar algum cadeia. 5 O Governo dos EUA probe a exportao, mesmo para naes amistosas ou aliadas, de hardware ou software de criptografia considerada forte. Tais itens tm as mesmas restries para exportao aplicveis a armas e munies. Ver Cap. 9, Keyspace.
10 -

5. O Que a Criptografia No Pode Fazer

A criptografia pode apenas ocultar a informao depois que cifrada, e enquanto ela permanece cifrada. Mas informao secreta geralmente no comea a existir na forma cifrada, ento normalmente h um perodo durante o qual o segredo no est protegido. E a informao secreta geralmente no usada na forma cifrada, ento ela estar de novo fora do envelope criptogrfico, toda vez que o segredo utilizado. Segredos so eventualmente relacionados a informao pblica, e as atividades subseqentes, baseadas no segredo, podem indicar o segredo propriamente dito. Enquanto a criptografia pode ocultar palavras, no pode ocultar: Contrabando fsico, Dinheiro, Encontros presenciais e treinamento, Deslocamentos de/para um local, Estilo de vida extravagante incompatvel com a renda, ou Atividades.

E a criptografia definitivamente no pode proteger contra: Informantes, Espionagem, Grampos, Evidncia fotogrfica, ou Delao.

ridculo imaginar que apenas a criptografia pode proteger a maior parte da informao contra investigao governamental. A criptografia apenas uma pequena parte do conjunto de protees necessrio para a garantia de segredo absoluto.
11 -

6. Criptografia com Chaves

Usualmente, cuidamos de selecionar uma, dentre um vasto nmero de possveis formas intermedirias, pelo uso de algum tipo de senha ou chave. Normalmente, a senha alguma frase de linguagem razoavelmente longa, que podemos lembrar facilmente, para no termos que anotar em algum lugar (onde algum mais poderia encontrar a chave). Os possuidores da chave original podem ento expor a informao oculta na mensagem. Isto reduz o problema de proteger a informao a: Executar as transformaes, e Proteger as chaves.

Isto similar a trancar nossos bens e propriedades em nossa casa, e manter a chave guardada no bolso.

7. Problemas com as Chaves

O modelo similar chave fsica nos lembra de vrias coisas que podem acontecer errado com as chaves: Podemos perder nossas chaves. Podemos esquecer qual chave de onde. Podemos dar uma cpia da chave pessoa errada. Algum pode roubar a chave. Algum pode arrombar a fechadura. Algum pode entrar pela janela. Algum pode derrubar a porta.

12

Algum pode tocar a campainha, e ento inadvertidamente receber permisso para entrar. Algum pode obter um mandado judicial, e ento legalmente entrar e fazer tudo o que quiser. Algum pode botar fogo na casa, tornando tudo irrelevante.

Mesmo chaves absolutamente perfeitas no podem resolver todos os problemas, nem podem assegurar a privacidade. Quando a criptografia usada para comunicaes, geralmente ao menos duas pessoas sabem o que est sendo comunicado. Ento, qualquer uma das duas partes pode revelar o segredo: Por acidente. Para a pessoa errada. Atravs de espionagem (escuta clandestina) feita por terceiros. Como forma de vingana, por atos reais ou imaginados. A troco de pagamento. Sob coao. Em juzo.

Quando substancialmente menos dispendioso obter o segredo por outros mtodos, no lugar de um ataque tcnico ao texto cifrado, a criptografia razoavelmente bem-sucedida em fazer aquilo a que se prope.

8. Criptografia sem Chaves

razoavelmente simples desenvolver um programa complexo de criptografia, para produzir uma forma intermediria, complexa e nica. Neste caso, o prprio programa a chave. Mas isto significa que o programa decifrador deve estar disponvel, para se ter acesso informao protegida. Ento, se algum rouba o seu
13 -

computador porttil, provavelmente ir tambm obter seu programa decifrador, com o que se o programa no usar chaves todos os seus dados cuidadosamente protegidos sero imediatamente expostos. por isso que a criptografia geralmente depende de pelo menos uma chave a ser memorizada, e por isso que precisamos de cifras que possam produzir uma grande variedade de textos cifrados.

9. Keyspace

A criptografia deliberadamente cria uma situao de agulha no palheiro. Ou seja, de todas as chaves possveis, apenas uma ir recuperar a mensagem certa, e esta chave nica est oculta junto de todas as outras chaves possveis. claro que o Oponente pode ter sorte, mas provavelmente ser obrigado a tentar a metade das chaves para conseguir decifrar a mensagem. Para manter a mensagem secreta, importante que uma cifra seja capaz de produzir uma grande variedade de diferentes formas intermedirias de texto cifrado. Claramente, nenhuma cifra pode ser mais forte do que uma capaz de obrigar o oponente a verificar todas as combinaes possveis. Se tal ataque de fora bruta for exeqvel, a cifra fraca. O nmero de textos cifrados possveis a fora de projeto da cifra. Cada texto cifrado diferente exige uma chave diferente. Ento, o nmero de textos cifrados diferentes que ns podemos produzir limitado ao nmero de chaves diferentes que pudermos usar. Descrevemos o keyspace como sendo o comprimento em bits do valor binrio necessrio para representar o nmero de possveis textos cifrados, ou de chaves. No particularmente difcil desenvolver cifras que podem ter uma fora de projeto de centenas de milhares de bits, e que podem operar to rapidamente quanto nossas cifras atuais. Contudo, o governo dos EUA normalmente no autoriza a exportao de cifradores de dados com um keyspace maior que cerca de 40 bits, o que um valor um tanto fraco.

14

Recentemente, uma cifra de 56 bits foi examinada (com hardware dedicado) e a chave correta foi encontrada em cerca de 56 horas. Note que uma chave de 56 bits representa 216 vezes mais transformaes do que uma chave de 40 bits. Ento, mantendo-se todos os outros parmetros, um equipamento similar pode encontrar uma chave de 40 bits em cerca de 3 segundos. Mas nesta mesma proporo, uma chave de 80 bits (que presumivelmente 224 vezes mais forte que a chave de 56 bits) levaria cerca de 100 000 anos.6

10. Fora de um Sistema

O keyspace em si apenas determina um limite mximo para a fora da cifra; uma cifra pode ser muito mais fraca do que aparenta. Um entendimento aprofundado, ou anlise do projeto, pode levar a atalhos na soluo. Talvez um menor nmero de testes, cada um eliminando um vasto nmero de chaves, deixando no fim um keyspace cuja anlise exeqvel; nisto consiste a criptoanlise. Entendemos o conceito de fora da cifra, como a capacidade de resistir criptoanlise. Mas isto torna a fora uma qualidade negativa (a ausncia de qualquer ataque praticvel), a qual no podemos medir. Podemos inferir a fora de uma cifra, como a sua capacidade de resistir ao melhor ataque que conhecemos. Podemos ter apenas a esperana de que o Oponente no capaz de fazer algo muito melhor. Todo usurio de criptografia deve entender que todas as cifras conhecidas (incluindo as tabelas descartveis) so pelo menos potencialmente vulnerveis a algum ataque tcnico ainda desconhecido. E, caso este ataque venha a ocorrer, no haver nenhuma forma de tomarmos conhecimento do que ocorreu. Contudo, um ataque tcnico direto pode ser uma das menos provveis formas de exposio da mensagem.
6

Veja a nota 3.
15 -

11. Projeto de um Sistema e sua Fora

O projeto de um sistema criptogrfico pode parecer to fcil quanto selecionar uma cifra em um livro de cifras. Mas as cifras, per se, so apenas uma parte de um sistema seguro de criptografia. comum para um sistema de criptografia exigir um design criptogrfico que vai alm de meramente escolher uma cifra, e tal design muito mais trabalhoso do que aparenta. O uso de uma cifra inviolvel no significa que o sistema de criptografia ser igualmente inviolvel. Um bom exemplo o ataque do intermediador7 em sistemas de chave pblica. Sistemas de chave pblica exigem que algum use a chave correta para o destinatrio desejado. A chave correta precisa ser conhecida a nvel criptogrfico de segredo, ou se torna o elo fraco do sistema. Agora, suponha que um Oponente consiga nos convencer a usar a chave dele no lugar da chave certa (talvez nos enviando uma mensagem falsa, dizendo aqui est a minha nova chave). Se ele for bem sucedido em enganar ambos os lados, e tambm interceptar todas as mensagens entre eles (o que possvel, j que o roteamento da Internet no seguro), o Oponente pode se sentar no meio do caminho. Ele pode decifrar cada mensagem (agora usando uma de suas chaves), ento re-cifrar esta mensagem usando a chave correta, e envi-la ao outro usurio. Ento os usurios se comunicam normalmente, e a cifra no foi quebrada, mas ainda assim o Oponente ser capaz de ler toda a conversao. Tais podem ser as conseqncias de um erro no design do sistema.

Em ingls, man-in-the-middle attack, ou ataque do homem-no-meio [do caminho], que foi traduzido livremente como intermediador.
16 -

12. Criptoanlise versus Subverso

Criptoanlise um trabalho difcil; s vezes se torna tedioso, repetitivo, e muito, muito caro. Nunca h garantia de sucesso, e os recursos so sempre limitados. Consequentemente, pode ser prefervel usar outras formas de abordagem para se obter a informao oculta, ou, quem sabe, obter a prpria chave! Outras abordagens, alm do ataque tcnico direto ao texto cifrado, incluem obter a informao atravs de chantagem, roubo, suborno, ou intimidao. A sala do computador pode ser grampeada, secretrias corrompidas, arquivos invadidos, etc. Muita informao pode ser obtida em alguma outra forma alm de quebrar o texto cifrado. Enquanto a fora de uma cifra muito maior do que o esforo necessrio para obter a informao de alguma outra forma, a criptografia provavelmente forte o bastante. E o mero fato de que a informao vazou, no significa necessariamente que uma cifra foi quebrada.

13. Cifras Secretas

Embora, em alguns casos, a criptoanlise seja bem sucedida mesmo se o processo de cifra for desconhecido, ns certamente esperamos poder tornar o trabalho do oponente o mais difcil que pudermos. Com isso, pode-se argumentar que o processo de criptografia deva permanecer secreto. Certamente, sistemas militares no so realmente publicados (embora seja considerado internamente como se o equipamento fosse conhecido pelo adversrio). Mas em criptografia comercial ns normalmente consideramos (veja Requisitos de Kerckoff) que o Oponente deve saber todos os detalhes da cifra (exceto a chave, naturalmente). H vrias razes para isto:

17

Primeiro, comum que uma cifra tenha fraquezas imprevistas, que no so encontradas por seus projetistas. Mas se o design mantido em segredo, no pode ser examinado por vrias partes interessadas, e ento a fraqueza no pode ser publicamente exposta. E isso significa que a fraqueza pode ser explorada na prtica, por qualquer um que a descubra, enquanto a cifra permanece em uso. Depois, se a cifra em si um segredo, este segredo fica cada vez mais comprometido medida em que fica disponvel para uso: para uma cifra ser usada, ela precisa estar presente em vrias localidades, e quanto mais for usada, maior o risco do segredo ser exposto. Ento, qualquer vantagem que possa haver em manter a cifra secreta no pode ser mantida, e o Oponente eventualmente ir ter a mesma vantagem que teria caso a cifra no fosse mantida em segredo. S que agora os projetistas da cifra podem se consolar com a deluso perigosa de que o Oponente no tem qualquer vantagem alm da que realmente deveria ter.

H outro tipo de segredo aqui, e se trata do segredo comercial envolvendo projetos de software em particular. Muito poucas empresas grandes de software desejam liberar o cdigo-fonte de seus produtos sem que hajam alguns controles rigorosos, e estas companhias podem ter seu ponto de vista. Enquanto as rotinas de criptografia propriamente ditas podem, presumivelmente, ser patenteadas, a liberao do cdigo no ir permitir que uma avaliao cuidadosa do software seja feita em segurana. O cdigo-fonte poderia ficar disponvel aos compradores mediante um acordo de no-divulgao, mas tal acordo no ir satisfazer a todos. E embora parea uma boa idia ter todo o cdigo-fonte disponvel gratuitamente, isto certamente no ir sustentar uma indstria de contnuo design e desenvolvimento de criptografia. Infelizmente parece no haver uma soluo razovel para este problema.

18

14. Cifras de Hardware versus Cifras de Software

Atualmente, a maioria das cifras so implementadas em software; quer dizer, por um programa de instrues executado em um computador de uso geral. Normalmente, uma soluo de software custa mais barato, mas uma soluo de hardware mais rpida, e no h forma de se mudar esta realidade. Naturalmente, h vrios nveis de hardware, desde os chips (os quais exigem uma considervel quantidade de software de interface) at as caixas pretas externas com linhas de comunicao de entrada e sada. Mas h alguns problemas em potencial: software, especialmente em um sistema multiusurio, quase totalmente inseguro. Qualquer um com acesso ao equipamento pode inserir um software modificado, que pode substituir e desativar a segurana original, e vir a ser usado permanentemente, sob a falsa impresso de que a segurana efetiva continua funcionando. Isto pode no representar um grande problema para usurios domsticos, e a soluo real depende basicamente de um sistema operacional seguro. hardware representa um custo mais elevado, e extremamente inflexvel. Ento, se suspeita-se de um problema em uma cifra de hardware, tem-se o custo de reposio, no lugar de uma simples atualizao ou correo de software. De qualquer maneira, um sistema em escala global levaria anos para ser atualizado.

Uma possibilidade lgica o desenvolvimento de processadores criptogrficos pequenos computadores de criptografia em um encapsulamento seguro (imune engenharia reversa). Um controle rigoroso dos processadores permitiria atualizaes autenticadas por chaves pblicas, enquanto afora isso seria similar a um sistema de hardware. Mas provavelmente a maioria dos usurios no iria se preocupar com

19

atualizaes, at que alguma brecha acabasse sendo exposta em alguns computadores.

15. Cifras de Bloco

H uma grande variedade de coisas que permitem diferenciar uma cifra de outra. Mas talvez a mais fcil e mais til distino seja entre as cifras de cadeia e as cifras de bloco. Sob o ponto de vista da lgica, uma cifra de bloco como a substituio simples: Um bloco no criptografado de dados coletado e ento substitudo por um valor arbitrrio de texto cifrado. Logo, uma verso de brinquedo de uma cifra de bloco uma simples tabela de localizao e substituio, como nos passatempos dos jornais. claro que uma cifra de bloco mais realista tem um tamanho de bloco extremamente grande, para ser capaz de lidar com a transformao em tabelas de qualquer tamanho fsico. Por causa deste grande tamanho de bloco, a transformao reversvel deve ser simulada, de alguma forma construda dinamicamente para cada bloco cifrado. Em uma cifra de bloco, qualquer permutao possvel dos valores da tabela uma chave em potencial. Ento, se temos um bloco de 64 bits, h teoricamente 264 chaves possveis, um valor realmente grande. Mas a bem conhecida cifra de bloco DES tem apenas 256 chaves, comparativamente muito pouco. Em parte, porque qualquer mecanismo real pode apenas emular o ideal terico de uma simples substituio bruta. Mas na maioria dos casos, chaves de 56 bits tm sido consideradas como grandes o suficiente. Atualmente, esperamos chaves de pelo menos 128 bits, ou talvez um pouco mais.

20

16. Cifras de Cadeia

Se uma cifra de bloco consiste de simples substituio bruta, uma cifra de cadeia pode ser uma pequena substituio, que de alguma forma alterada por cada bit ou byte cifrado. Claramente, usar uma substituio pequena e constante (ou mesmo uma transformao linear) algo bastante inseguro em uma situao na qual o Oponente logra obter uma grande quantidade de texto plano conhecido. Uma forma de aplicar seguramente uma transformao usar uma combinao aditiva simples, para misturar os dados com uma seqncia de dados totalmente aleatrios; quando bem feito, este um tipo inviolvel de tabela descartvel. Logicamente, uma cifra de cadeia pode ser vista como o conceito geral de usar repetidamente uma transformao de bloco, para manusear mais de um bloco de dados. Podemos dizer que mesmo o simples uso repetido de uma cifra de bloco em modo ECB ir encadear a cifra. E quando usados em sistemas mais complexos de cifras de cadeia como o CBC tornam ainda mais claros os conceitos de meta-cifras em cadeia que usam transformaes de bloco. Uma idia comum que sempre aparece entre os criptgrafos novatos pegar uma senha textual longa (uma frase-chave), e ento realizar uma operao booleana ADD (ou OR-exclusivo) entre os caracteres da chave e os caracteres dos dados, byte por byte, reutilizando a chave a cada vez que ela chega ao fim. Trata-se de uma senha de cadeia muito simples e fraca, com uma chave curta e cclica (repetida continuamente) e um combinador aditivo. Podemos supor que parte da dificuldade em perceber esta fraqueza consiste em distinguir entre diversos tipos de chaves das cifras de cadeia: em uma cifra de cadeia real, mesmo se alterarmos um nico bit em uma frase-chave, podemos esperar que seja produzida uma seqncia de chave diferente, uma seqncia que no vai se repetir ao longo de uma mensagem de qualquer tamanho praticvel. Na verso fraca, a mudana de um nico bit na chave, pequena e cclica, ir afetar somente um bit a cada vez que a chave for usada, e far isso repetidamente, medida que a chave

21

reutilizada vrias vezes. Em qualquer cifra de cadeia aditiva, a reutilizao de uma seqncia chave fatal. E uma cifra de cadeia real ir quase certamente usar uma mensagem aleatria como chave, j que a chave ir realmente proteger os dados.

17 . Cifras de Chave Pblica

Cifras de chave pblica so geralmente cifras de bloco, com a propriedade incomum de ter uma chave para cifrar, e outra diferente, aparentemente sem nenhuma relao, para decifrar a mensagem. Ento, se mantemos uma das chaves privativa, podemos distribuir a outra chave (a chave pblica), e qualquer um pode us-la para cifrar uma mensagem destinada a ns. Ento, usamos nossa chave privativa para decifrar tais mensagens. interessante citar que algum que cifrar uma mensagem para ns no poder decifrar sua prpria mensagem, mesmo que queira. O prottipo de cifra por chave pblica o RSA, que usa aritmtica de valores numricos enormes. Estes valores podem conter 1 000 bits, ou at mais (mais de 400 dgitos decimais), em que todos e cada um dos bits significativo. O keyspace, contudo, muito menor, porque h muitas restries s chaves; um valor aleatrio de chave, escolhido ao acaso, no ir necessariamente ser vlido. Por isso, uma chave pblica de 1 000 bits pode ter a fora (resistncia a um ataque de fora bruta) similar a uma cifra de chave secreta de 128 bits. Como as cifras de chave pblica operam com valores muito grandes, so muito lentas, e geralmente usadas apenas para cifrar uma chave secreta, longa e aleatria (no-textual). Esta chave secreta ento usada por um cifrador convencional, que cifra os dados a serem protegidos. primeira vista, cifradores de chave pblica aparentemente resolvem o problema da distribuio das chaves. Ainda assim, permitem o ataque man-in-the-middle ou intermediador (descrito no captulo 11). Para afastar este risco, necessrio ter certeza de que se est usando exatamente a chave correta para o usurio desejado. Para isto, preciso a

22

autenticao (validao ou certificao) via alguma forma de canal seguro, o que pode causar as mesmas dificuldades de uma troca de chaves secretas entre as partes. Um ataque de intermediador muito preocupante, porque no envolve a quebra de nenhuma cifra, o que significa que todo o esforo despendido no projeto do sistema de criptografia, anlise, prova dos modelos matemticos, anlise pblica, etc. se tornam completamente irrelevantes.

23

Apndices

A. O livro mais importante

O livro mais importante em criptografia The Codebreakers, por David Kahn (Macmillan, 1967) The Codebreakers a histria detalhada da criptografia, um livro de estilo e aventura. A narrativa no-matemtica e, em boa parte, notcnica. Mas o autor explica por que cifras simples falham na proteo da informao; so os mesmos problemas que afetam sistemas criptogrficos de capacidade crescente. Vrias explicaes mostram por que a criptografia real muito mais do que meramente esquemas para cifrar dados. Uma excelente leitura. Outros livros importantes: Decrypted Secrets, por Friedrich Bauer (Springer-Verlag, 1997). De certa forma Decrypted Secrets segue o estilo de The Codebreakers, mas muito mais tcnico. Quase a metade do livro fala de criptoanlise ou de mtodos de ataque s cifras usadas durante a Segunda Guerra Mundial. Handbook of Applied Cryptography, por Menezes, van Oorschot e Vanstone (CRC Press, 1997) O Handbook of Applied Cryptography parece ser a melhor referncia tcnica at agora. Enquanto algumas sees alarmam este

24

revisor, isto acontece muito menos freqentemente do que com outras referncias acessveis. Cryptography and Network Security: Principles and Practice, por William Starlings (2. edio, Prentice Hall, 1998). Cryptography and Network Security um texto introdutrio e uma referncia para implementaes reais. Cobre tanto a criptografia convencional quanto a criptografia de chave pblica (incluindo autenticao). Tambm cobre a segurana na Internet, falando de Kerberos, PGP, S/MIME e SSL. O livro fala de cifras reais e sistemas reais usando criptografia. Contemporary Cryptology, editado por Gustavus Simmons (IEEE Press, 1992). Contemporary Cryptology um estudo substancial da criptologia essencialmente matemtica, embora o sistema DES de criptografia padro dos EUA seja tambm coberto. Descreve o estado da arte na atualidade. Spy Catcher, por Peter Wright (Viking Penguin, 1987). Spy Catcher pe a tecnologia no contexto da realidade. Enquanto tem pouca criptografia per se, tem muita coisa sobre segurana, na qual a criptografia necessariamente embasada. Tambm uma boa leitura. The Puzzle Palace, por James Bamford (Houghton Mifflin, 1982). The Puzzle Palace a melhor descrio que temos da National Security Agency (NSA) [Agncia Nacional de Segurana], que tem sido a fora dominante na criptografia nos EUA desde a Segunda Guerra Mundial. Bons livros sobre a Guerra do Vietnam (alguns dos quais no tm nada a ver com criptografia) incluem:

25

A Bright Shining Lie, por Neil Sheehan (Random House, 1988), About Face, por Colonel David H. Hackworth (Simon & Schuster, 1989), e War of Numbers, por Sam Adams (Steerforth Press, South Royalton, Vermont, 1994).

B. Criptoanlise clssica

Normalmente, pensa-se em criptoanlise como a forma de se quebrar cifras. Mas na realidade a criptoanlise anlise as formas que temos para entender uma cifra em detalhe. E j que a maioria das cifras tem fraquezas, um conhecimento profundo pode expor as melhores formas de ataque para determinadas cifras. Dois livros s vezes mencionados como introdues criptoanlise clssica so: Cryptanalysis por Helen Gaines (1939, mas ainda disponvel em Dover Publications), e Elementary Cryptanalysis por Abraham Sinkov (1966, mas ainda disponvel em The Mathematical Association of America). Estes livros cobrem algumas das cifras clssicas do tipo lpis e papel, o que pode parecer mais simples de compreender do que cifras modernas. Mas, carecendo at mesmo das mais simples ferramentas tais como hashing, gerao de nmeros aleatrios e embaralhamento, as formas clssicas tendem a ser muito limitadas, e so s vezes usadas erradamente como introdues para a criptoanlise moderna. (exceto Decrypted Secrets por Bauer.) Por exemplo:

26

A Cifra de Csar substitui cada letra do texto plano pela letra n posies adiante (originalmente, 3) ao longo do alfabeto normal. Classicamente, a nica chave possvel o valor para n, mas em um ambiente computacional, fcil ser genrico: podemos escolher n para cada posio na mensagem usando um gerador de nmeros aleatrios (isto pode ser uma cifra de cadeia), e tambm codificar o alfabeto, embaralhando-o em uma ordem nica (o que uma Substituio Monoalfabtica). Substituio Monoalfabtica substitui cada letra do texto plano por uma letra associada de um alfabeto randmico (codificado). Classicamente, difcil especificar uma ordem arbitrria para o alfabeto, ento esta ordem s vezes baseada em frases-chave textuais (saltando-se letras repetidas), o que ajuda a tornar a cifra fcil de quebrar. Mas na verso moderna por computador, fcil selecionar entre todas as permutaes possveis, embaralhando o alfabeto com um gerador codificado de nmeros aleatrios. Outro problema com a substituio monoalfabtica que as letras usadas com mais freqncia no texto plano se tornam as mais freqentemente usadas no texto ficrado, e tcnicas estatsticas podem ser usadas para ajudar a identificar quais letras so quais. Classicamente, mltiplos alfabetos diferentes (Substituio Polialfabtica) ou mltiplas letras no texto cifrado para uma mesma letra no texto plano (Substituio Homofnica) foram introduzidas para evitar este problema. Mas na verso moderna por computador, podemos continuar a permutar o alfabeto simples, como na Substituio Dinmica (consulte meu artigo). Alm disso, se o texto plano original distribudo de maneira homognea (o que pode-se assegurar por uma combinao prvia), ento as tcnicas estatsticas so de pouca validade. Substituio Polialfabtica substitui cada letra do texto plano por uma letra associada dentre mltiplos alfabetos aleatrios. Mas, classicamente, difcil produzir alfabetos arbitrrios, ento os alfabetos mltiplos tendem a ser valores diferentes de offset como na Cifra de Csar. Alm disso, difcil at escolher alfabetos aleatoriamente, ento h a tendncia de usar uma seqncia rotativa, o que d ao criptoanalista uma

27

enorme vantagem. Por outro lado, uma verso moderna e melhorada da substituio polialfabtica, com um codificador quadrado especial latino, com cada alfabeto selecionado letra a letra por um gerador codificado de nmeros aleatrios, pode ser parte de uma cifra muito sofisticada. Cifras de Transposio rearranjam as letras do texto plano para formar o texto cifrado. Mas, classicamente, difcil formar um rearranjo (ou permuta) arbitrrio, ento a seqncia de rearranjo tende a ocorrer em padres grficos particulares (ao longo de colunas ao invs de linhas, atravs de diagonais, etc.). Normalmente, duas mensagens de mesmo tamanho podem ser transpostas similarmente, levando ao ataque do mltiplo anagrama: duas mensagens de mesmo tamanho so permutadas do mesmo jeito at que ambas faam sentido. Mas, na forma moderna geral, um gerador codificado de nmeros aleatrios pode embaralhar blocos de tamanho arbitrrio de maneira generalizada, quase nunca permutar dois blocos de forma similar, e trabalhar em um contedo randomizado que pode no fazer sentido, tornando intil o ataque clssico (veja meu artigo). Ento, s vezes por causa das restries do design comum necessrio para o uso prtico com lpis e papel que torna as cifras clssicas fceis de atacar. E os ataques que funcionam bem em verses clssicas especficas podem ter muito pouca chance em verses modernas, muito genricas, da mesma cifra. Outros livros de criptoanlise: Statistical Methods in Cryptanalysis, por Solomon Kullback (Laguna Hills, CA: Aegean Park Press, 1976; publicao original, 1938), Basicamente, um texto orientado para a estatstica til em criptoanlise. Scientific and Engineering Problem-Solving with the Computer, by William Bennett, Jr. (Prentice-Hall, 1976), Chapter 4, Language, e

28

Basicamente um texto introdutrio para a programao em linguagem Basic, o texto abrange problemas do mundo real, um dos quais linguagem e criptoanlise. The Pleasures of Counting, por T. W. Korner (Cambridge, 1996). Uma introduo matemtica real para prodgios potenciais do ensino mdio (!), o texto contm dois ou trs captulos sobre Enigma e quebra do Enigma.

C. Outros Livros

Um livro que talvez seja famoso em todo lugar dentre qualquer um que tente programar cifras existentes ou protocolos de seleo : Applied Cryptography de Bruce Schneier (John Wiley & Sons, 1996). O autor coletou a descrio de muitas cifras e protocolos acadmicos, juntamente com o cdigo em linguagem C da maioria das cifras. Infelizmente, o livro deixa de dizer muita coisa sobre como usar estas ferramentas em sistemas de cifra do mundo real. (Um sistema de cifra no necessariamente seguro s porque usa uma ou mais cifras seguras.) Muitas sees deste livro disparam o alarme deste revisor; portanto o leitor prudente deve usar as muitas referncias para conferir as concluses do autor. Outros livros que eu gostaria de inclur: Cryptology Yesterday, Today, and Tomorrow, por Deavours, Kahn, Kruh, Mellen e Winkel (Artech House, 1987), Cipher Systems, por Beker e Piper (Wiley, 1982), Cryptography, por Meyer e Matyas (Wiley, 1982),

29

Secure Speech Communications, por Beker e Piper (Academic Press, 1985), Security for Computer Networks, por Davies e Price (Wiley, 1984), Network Security, por Kaufman, Perlman e Speciner (Prentice-Hall, 1995), Security in Computing, por Pfleeger (Prentice-Hall, 1989) e Disappearing Cryptography, por Peter Wayner (Academic Press, 1996).

D. Teoria de Codificao

Embora a maioria dos autores recomende um embasamento na Teoria dos Nmeros, eu recomendo um embasamento na Teoria da Codificao: Shift Register Sequences, por Golomb (Aegean Park Press, 1982), A Commonsense Approach to the Theory of Error Correcting Codes, por Arazi (MIT Press, 1988), Coding and Information Theory, por Hamming (Prentice-Hall, 1980), Error-Correcting Codes, por Peterson e Weldon (MIT Press, 1972), Error-Correction Coding for Digital Communications, por Clark e Cain (Plenum Press, 1981), Theory and Practice of Error Control Codes, por Blahut (AddisonWesley, 1983), Error Control Coding, por Lin e Costello (Prentice-Hall, 1983) e The Design and Analysis of Computer Algorithms, por Aho, Hopcroft e Ullman (Addison-Wesley, 1974).

30

E. Para os Desenvolvedores

Aqueles que pretendem desenvolver cifras fariam bem em conhecer os poucos sistemas cujo desenvolvimento e queda esto documentados na literatura aberta. Ciarcia [1] e Pearson [5] so excelentes exemplos de quo traioeiro este ramo de conhecimento; primeiro estude Ciarcia (um caso real de design de circuito), e s ento leia Pearson (como o design quebrado). Geffe [2] e Siegenthaler [8] fornecem uma lio mais tcnica. Retter [6, 7] mostra que o randomizador MacLaren-Marsaglia no criptograficamente seguro, e Kochanski [3, 4] quebra alguns programas cifradores comuns para PC. 1. 2. 3. 4. 5. 6. Ciarcia, S. 1986. Build a Hardware Data Encryptor. Byte. Setembro. 97-111. Geffe, P. 1973. How to protect data with ciphers that are really hard to break. Electronics. 4 janeiro. 99-101. Kochanski, M. 1987. A Survey of Data Insecurity Packages. Cryptologia. 11(1): 1-15. Kochanski, M. 1988. Another Data Insecurity Package. Cryptologia. 12(3): 165-173. Pearson, P. 1988. Cryptanalysis of the Ciarcia Circuit Cellar Data Encryptor. . Cryptologia. 12(1): 1-9. Retter, C. 1984. Cryptanalysis of a MacLaren-Marsaglia System. Cryptologia. 8: 97-108. (Also see letters and responses: Cryptologia. 9: 114-130. Retter, C. 1985. A Key Search Attack on MacLaren-Marsaglia Systems. Cryptologia. 9: 114-130 Siegenthaler, T. 1985. Decrypting a Class of Stream Cyphers using Ciphertext Only. IEEE Transactions on Computers. C-34: 81-85.

7. 8.

31

You might also like