You are on page 1of 23

Criptografia

em Software e Hardware
Edward David Moreno Fbio Dacncio Pereira Rodolfo Barros Chiaramonte

Novatec Editora

Captulo 1
Conceitos de Segurana de Dados e Criptografia
Neste primeiro captulo, apresenta-se e enfatiza a necessidade da segurana de dados nos tempos modernos, focalizando o papel dos algoritmos de criptografia e as vantagens de se ter conhecimento dos conceitos, implementao e, principalmente, do seu desempenho.

1.1 Criptografia
A criptografia pode ser entendida como um conjunto de mtodos e tcnicas para cifrar ou codificar informaes legveis por meio de um algoritmo, convertendo um texto original em um texto ilegvel, sendo possvel mediante o processo inverso recuperar as informaes originais (SIMON, 1999). Veja o processo na figura 1.1:

Figura 1.1 Esquema geral para cifragem de um texto.


Pode-se criptografar informaes basicamente por meio de cdigos ou de cifras. Os cdigos protegem as informaes trocando partes destas por cdigos predefinidos. Todas as pessoas autorizadas a ter acesso a uma determinada informao devem conhecer os cdigos utilizados. As cifras so tcnicas nas quais a informao cifrada por meio da transposio e/ou substituio das letras da mensagem original. Assim, as pessoas autorizadas podem ter acesso s informaes originais conhecendo o processo de cifragem. As cifras incluem o conceito de chaves, que ser apresentado na seo 1.2. Os principais tipos de cifra so as de transposio, que so uma mistura dos caracteres da informao original (por exemplo, pode-se cifrar a palavra CRIPTOGRAFIA e escrev-la RPORFACITGAI) e as cifras de substituio, que por meio de uma tabela de substituio predefinida trocam ou substituem um caractere ou caracteres de uma informao.

21

22

Criptografia em Software e Hardware

1.1.1 Breve Histria da Criptografia


A criptografia to antiga quanto a prpria escrita, visto que j estava presente no sistema de escrita hieroglfica dos egpcios. Os romanos utilizavam cdigos secretos para comunicar planos de batalha. Com as guerras mundiais e a inveno do computador, a criptografia cresceu incorporando complexos algoritmos matemticos. A criptologia faz parte da histria humana porque sempre houve frmulas secretas e informaes confidenciais que no deveriam cair no domnio pblico ou na mo de inimigos. Segundo Kahn (1967), o primeiro exemplo documentado da escrita cifrada relaciona-se aproximadamente ao ano de 1900 a.C, quando o escriba de Khnumhotep II teve a idia de substituir algumas palavras ou trechos de texto. Caso o documento fosse roubado, o ladro no encontraria o caminho que o levaria ao tesouro e morreria de fome perdido nas catacumbas da pirmide. Em 50 a.C, Jlio Csar usou sua famosa cifra de substituio para cifrar (criptografar) comunicaes governamentais. Para compor seu texto cifrado, Csar alterou letras desviando-as em trs posies; A se tornava D, B se tornava E etc. s vezes, Csar reforava seu mtodo de criptografar mensagens substituindo letras latinas por gregas. O cdigo de Csar o nico da Antigidade que usado at hoje. Atualmente qualquer cifra baseada na substituio cclica do alfabeto denomina-se cdigo de Csar. Apesar da sua simplicidade (ou exatamente por causa dela), essa cifra foi utilizada pelos oficiais sulistas na Guerra de Secesso americana e pelo exrcito russo em 1915. Em 1901, iniciou-se a era da comunicao sem fio. Apesar da vantagem de uma comunicao de longa distncia sem o uso de fios ou cabos, o sistema aberto e aumenta o desafio da criptologia. Em 1921, Edward Hugh Hebern fundou a Hebern Electric Code, uma empresa produtora de mquinas de cifragem eletromecnicas baseadas em rotores que giram a cada caractere cifrado (TKOTZ, 2003). Entre 1933 e 1945, a mquina Enigma que havia sido criada por Arthur Scherbius foi aperfeioada at se transformar na ferramenta criptogrfica mais importante da Alemanha nazista. O sistema foi quebrado pelo matemtico polons Marian Rejewski que se baseou apenas em textos cifrados interceptados e numa lista de chaves obtidas por um espio (KAHN, 1967). A seguir, outros acontecimentos relacionados utilizao da criptografia (TKOTZ, 2003):

Ano
1943 1969 1976

Descrio
Mquina Colossus projetada para quebrar cdigos. James Ellis desenvolve um sistema de chaves pblicas e chaves privadas separadas. Diffie-Hellman um algoritmo baseado no problema do logaritmo discreto, o criptossistema de chave pblica mais antigo ainda em uso.

Captulo 1 Conceitos de Segurana de Dados e Criptografia Ano


1976

23

Descrio (cont.)
A IBM apresenta a cifra Lucifer ao NBS (National Bureau of Standards), o qual, aps avaliar o algoritmo com a ajuda da NSA (National Security Agency), introduz algumas modificaes (como as Caixas S e uma chave menor) e adota a cifra como padro de criptografia de dados nos EUA (FIPS46-3, 1999), conhecido hoje como DES (Data Encryption Standard). Hoje o NBS chamado de NIST (National Institute of Standards and Technology). Ronald L. Rivest, Adi Shamir e Leonard M. Adleman comearam a discutir como criar um sistema de chave pblica prtico. Ron Rivest acabou tendo uma grande idia e a submeteu apreciao dos amigos: era uma cifra de chave pblica, tanto para confidencialidade quanto para assinaturas digitais, baseada na dificuldade da fatorao de nmeros primos grandes. Foi batizada de RSA, de acordo com as primeiras letras dos sobrenomes dos autores (TKOTZ, 2003). O algoritmo RSA publicado na ACM (Association for Computing Machinery), um dos melhores meios de divulgao de pesquisas cientficas. Maiores detalhes desta organizao podem ser obtidos no link www.acm.org. Xuejia Lai e James Massey publicam na Sua A Proposal for a New Block Encryption Standard (Uma Proposta para um Novo Padro de Encriptao de Bloco LAI, 1990), o assim chamado IDEA (International Data Encryption Algorithm), para substituir o DES. O algoritmo IDEA utiliza uma chave de 128 bits e emprega operaes adequadas para computadores de uso geral, tornando as implementaes em software mais eficientes (SCHNEIER, 1996). Phil Zimmermann torna pblica sua primeira verso de PGP (Pretty Good Privacy) como resposta ao FBI, o qual invoca o direito de acessar qualquer texto claro da comunicaes entre usurios que se comunicam por meio de uma rede de comunicao digital. PGP oferece alta segurana para o cidado comum e, como tal, pode ser encarado como um concorrente de produtos comerciais como o Mailsafe da RSADSI. Entretanto, PGP especialmente notvel porque foi disponibilizado como freeware e, como resultado, tornou-se um padro mundial, enquanto seus concorrentes da poca continuaram absolutamente desconhecidos (BROWN et al., 2000). Novamente o professor Ronald L. Rivest, autor dos algoritmos RC2 e RC4 includos na biblioteca de criptografia BSAFE do RSADSI, publica a proposta do algoritmo RC5 na Internet. Esse algoritmo usa rotao dependente de dados como sua operao no linear e parametrizado de modo que o usurio possa variar o tamanho do bloco, o nmero de estgios e o comprimento da chave. O algoritmo Blowfish, uma cifra de bloco de 64 bits com uma chave de at 448 bits de comprimento, projetado por Bruce Schneier (SCHNEIER, 1994). O PGP 5.0 Freeware amplamente distribudo para uso no comercial. O cdigo DES de 56 bits quebrado por uma rede de 14.000 computadores (CURTIN e DOLSKE, 1998). O cdigo DES quebrado em 56 horas por pesquisadores do Vale do Silcio (DESKEY, 2001). O DES quebrado em apenas 22 horas e 15 minutos, mediante a unio da Electronic Frontier Foundation e a Distributed.Net, que reuniram em torno de 100.000 computadores pessoais ao DES Cracker pela Internet (MESERVE, 1999).

1977

1978

1990

1991

1994

1994 1997 1997 1998 1999

24 Ano
2000

Criptografia em Software e Hardware Descrio (cont.)


O NIST (National Institute of Standards and Technology) anunciou um novo padro de uma chave secreta de cifragem, escolhido entre 15 candidatos. Esse novo padro foi criado para substituir o algoritmo DES, cujo tamanho das chaves tornou-se insuficiente para conter ataques de fora bruta (MESERVE, 1999). O algoritmo Rijndael, cujo nome uma abreviao dos nomes dos autores Rijmen e Daemen, foi escolhido para se tornar o futuro AES (Advanced Encryption Standard) (FIPS197, 2001). Muitos professores e profissionais da computao com vnculo em centros de pesquisa, universidades e empresas motivam-se e comeam a pesquisar novas formas de implementar algoritmos e solues de segurana. Surge, assim, uma onda de pesquisas e desenvolvimentos voltados a realizar otimizaes dessas primeiras implementaes e uma dessas tendncias a implementao em hardware. Assim, este livro destaca a importncia de se implementar alguns desses algoritmos criptogrficos em hardware, em especial, por meio do uso da tecnologia de circuitos programveis (FPGAs), a qual acessvel e diminui de forma significativa os tempos e custos associados realizao de projetos e prottipos.

2000 - 2004

Os computadores so a expresso maior da era digital, marcando presena em praticamente todas as atividades humanas. Da mesma forma com que revolucionaram a informao, tambm influenciaram a criptologia; por um lado, ampliaram seus horizontes, por outro, tornaram a criptologia quase que indispensvel. Na seo 1.1.2 se apresentar a importncia da criptografia.

1.1.2 A Importncia da Criptografia


Nesta seo discutida a importncia da criptografia, a segurana dos sistemas operacionais e por que se deve utilizar esse recurso contra intrusos que desejam acessar informaes alheias. A segurana eletrnica nunca foi to amplamente discutida: casos de violao de contas bancrias, acesso a informaes sigilosas, invaso e destruio de sistemas so cada vez mais comuns. Informaes so transmitidas com mais eficincia e velocidade, mas como se sabe, nem sempre de forma segura. A privacidade importante para pessoas e empresas. Muitos problemas podem acontecer se uma pessoa no autorizada tiver acesso a dados pessoais, como: contracheque, saldo bancrio, faturas do carto de crdito, diagnsticos de sade e senhas bancrias ou de crdito automtico. No caso de empresas, os danos podem ser de maior magnitude, atingindo a organizao e os prprios funcionrios. Dados estratgicos da empresa, previso de venda, detalhes tcnicos de produtos, resultados de pesquisas e arquivos pessoais so informaes valiosas, s quais se alguma empresa concorrente tiver acesso de forma indevida, tal fato poder acarretar srios problemas. A Internet um ambiente que viabiliza principalmente a comunicao, a divulgao, a pesquisa e o comercio eletrnico. Em 1999, havia mais de 100 milhes de usurios da Internet nos Estados Unidos. No final de 2003, esse nmero alcanou 177 milhes nos Estados Unidos

Captulo 1 Conceitos de Segurana de Dados e Criptografia

25

e 502 milhes no mundo todo (BURNETT e PAINE, 2002). O comrcio eletrnico emergiu como um novo setor da economia norte-americana, sendo responsvel por cerca de U$100 bilhes em vendas durante 1999. Em 2003, o comrcio eletrnico excedeu U$1 trilho. Ao mesmo tempo, o CSI (Computer Security Institute) constatou um aumento de crimes cibernticos: 55% dos entrevistados na pesquisa informaram atividades maliciosas relacionadas com pessoas da prpria organizao. Ciente disso, pode-se ter certeza que as empresas em expanso precisam de produtos, mecanismos e solues de segurana (BURNETT, 2002). H no muito tempo, a segurana era uma questo de se trancar uma porta ou um cofre. Atualmente as informaes geralmente no esto armazenadas somente em papis, e, sim, em banco de dados. Como proteger essas informaes? O que os sistemas operacionais (SO) oferecem para essa proteo? Os sistemas operacionais oferecem um sistema de proteo por meio de permisses (Figura 1.2), isto , por meio do SO possvel criar usurios com diferentes nveis de acesso para as informaes contidas em um computador. Tal acesso implementado via procedimento de login. Assim quando um determinado usurio fizer login em um computador, ter acesso s pastas e aos arquivos designados pelo seu nvel de permisso, isto , se um usurio tiver restries para o acesso de pasta, arquivos e programas, este no conseguir acess-los. Os cadastros de usurios e as permisses so concedidos pelo superusurio ou administrador do sistema. Este responsvel pelo gerenciamento do sistema, at pode permitir que outros usurios alterarem algumas permisses, como de uma pasta pessoal. Independentemente das restries impostas, com o login de superusurio pode-se ter acesso a todas as funes do sistema. A questo como o sistema operacional sabe que a pessoa que est acessando o sistema realmente o superusurio? O sistema operacional concede a permisso por meio de um nome de usurio e senha, normalmente os nomes de usurios administradores so root, su ou administrador e, infelizmente, sabe-se que as tcnicas para superar essas defesas so amplamente conhecidas (BURNETT, 2002). A seguir so descritos alguns dos principais ataques:

Figura 1.2 Configurao da permisso de acesso a uma pasta no Windows 2000.

26

Criptografia em Software e Hardware


Ataque contra senhas: Vrios sistemas operacionais vm com um nome de usurio e senhas predefinidas e, muitas vezes, o mesmo login utilizado para realizar vrias tarefas, como: criao de usurios, manuteno e backup, instalao de programas etc. No uma boa prtica utilizar o login predefinido. A utilizao da senha predefinida ou de uma senha derivada de uma data de aniversrio ou qualquer dado pessoal pode facilitar o ataque ao sistema. Se o invasor no tiver competncia para descobrir a senha, poder utilizar aplicativos, chamados de software de cracking de senha. Esses softwares testam exaustivamente todas as possibilidades de combinaes de senhas at encontrar uma vlida; se a senha for fraca, em questo de minutos o invasor ter acesso ao sistema. Seria interessante dar preferncia a diferentes senhas de superusurio para cada funo do sistema, pois se o sistema for invadido, o intruso no ter acesso a todas as informaes do sistema, mesmo acessando com um login de superusurio. Uma outra maneira de invadir e recuperar os dados do sistema desviando do controle de permisses do SO, chamado de ataque de recuperao de dados. Ataques de recuperao de dados: O sistema operacional organiza as informaes em arquivos e diretrios para que o usurio possa acessar rapidamente a uma determinada informao. Contudo, os dados e o controle de acesso a estes so bits eletrnicos. Assim, possvel fazer uma leitura desses bits no como arquivos de texto ou de nmeros, e, sim, como bits, independentemente do sistema operacional. Esses ataques desviam do sistema operacional e capturam os bits brutos, reconstituindo-os em arquivos originais, burlando os controles de permisso do sistema operacional. Ataque de reconstruo de memria: Freqentemente, o material sigiloso est armazenado na memria do computador. Quando executar um programa, este ser armazenado em uma rea da memria principal e o sistema operacional indicar essa rea como indisponvel. Quando o programa finalizado, o sistema operacional apenas disponibiliza a rea sem sobrescrev-la. O invasor simplesmente aloca a memria liberada e examina o que sobrou (BURNETT, 2002). Como impedir que um invasor tenha acesso a informaes privadas?

Para impedir o acesso a informaes privadas, pode-se utilizar a proteo por criptografia. A proteo por criptografia uma soluo prtica para proteger informaes sigilosas. Independentemente do algoritmo criptogrfico utilizado, sempre ocorrer transformao de um texto legvel em um ilegvel. Mesmo que o invasor obtenha o contedo de um arquivo, este ser ilegvel. Para ter acesso informao original, o invasor ter que resolver um problema matemtico de difcil soluo. A criptografia pode adicionar tambm maior segurana ao processo de identificao de pessoas, criando identidades digitais fortes. De modo algum a criptografia a nica ferramenta necessria para assegurar a segurana de dados, nem resolver todos os problemas de segurana. um instrumento entre vrios outros. Alm disso, a criptografia no prova de falhas. Toda criptografia pode ser quebrada

Captulo 1 Conceitos de Segurana de Dados e Criptografia

27

e, sobretudo, se for implementada incorretamente, no agregar nenhuma segurana real (BURNETT e PAINE, 2002).

1.1.3 Alguns Termos Utilizados na Criptografia


Com o conceito de criptografia, tm-se alguns termos oficiais comumente utilizados, que so conceituados nesta seo. O ato de transformar um texto legvel (texto claro, texto original, texto simples) em algo ilegvel (cifra, texto cifrado, texto cdigo) chamado de encriptar (codificar, criptografar, cifrar). A transformao inversa chamada de decriptar (decodificar, decriptografar, decifrar). O algoritmo de criptografia uma seqncia de procedimentos que envolvem uma matemtica capaz de cifrar e decifrar dados sigilosos. O algoritmo pode ser executado por um computador, por um hardware dedicado e por um humano. Em todas as situaes, o que diferencia um de outro a velocidade de execuo e a probabilidade de erros. Existem vrios algoritmos de criptografia. Neste livro, apresentam-se especificamente o DES, AES, RC5, IDEA e RSA, MD5 e SHA-1, pois so os mais utilizados atualmente, alm do ALPOS (um algoritmo didtico criado pelos autores). Alm do algoritmo, utiliza-se uma chave. A chave na criptografia computadorizada um nmero ou um conjunto de nmeros. A chave protege a informao cifrada. Para decifrar o texto cifrado, o algoritmo deve ser alimentado com a chave correta, que nica. Na figura 1.3, tem-se a ilustrao do esquema geral de cifragem utilizando chave:

Figura 1.3 Esquema geral de cifragem com chave.


Na histria da criptografia, sempre ficou evidente que no existe um algoritmo que no possa ser quebrado (descoberto ou solucionado). Com a criptografia computadorizada, atualmente os algoritmos so divulgados comunidade e o sigilo das informaes garantido apenas pela chave, o que significa que se algum descobrir a chave para decifrar uma determinada informao, todas as outras informaes cifradas com esse algoritmo ainda estaro protegidas, por terem chaves diferentes. J um algoritmo criptogrfico que no utiliza o recurso de chaves para cifrar as informaes pode levar a um efeito cascata perigoso. Se esse algoritmo for quebrado, todas as informaes cifradas com ele estaro desprotegidas, pois o que garante o sigilo das informaes seria o prprio algoritmo. Assim, toda criptografia moderna e computadorizada opera com chaves.

28

Criptografia em Software e Hardware

A criptografia desde seu incio foi desenvolvida para impedir que um invasor ou intruso, algum que est tentando acessar informaes sigilosas, tivesse xito. H pouco tempo a criptografia era amplamente utilizada para proteger informaes militares. Atualmente protege uma gama maior de diferentes informaes. Os invasores no necessariamente s querem acessar informaes sigilosas, mas tambm desativar sites, excluir informaes de uma pessoa ou empresa, danificar sistemas em geral. O estudo sobre a quebra de sistemas criptogrficos conhecido como anlise criptogrfica. Semelhantemente ao invasor, o criptoanalista procura as fraquezas dos algoritmos. O criptgrafo desenvolve sistemas de criptografia. importante que a comunidade de criptografia conhea as fraquezas, pois os invasores tambm as esto procurando. quase certo que os invasores no iro publicar suas descobertas para o mundo (BURNETT, 2002).

1.1.4 Algoritmos de Bloco e Fluxo


Pode-se classificar os algoritmos de criptografia por meio do tratamento dado s informaes que sero processadas; assim, tm-se os algoritmos de bloco e os algoritmos de fluxo. A cifra de blocos opera sobre blocos de dados. O texto antes de ser cifrado dividido em blocos que variam normalmente de 8 a 16 bytes que sero cifrados ou decifrados. Quando o texto no completa o nmero de bytes de um bloco, este preenchido com dados conhecidos (geralmente valor zero 0) at completar o nmero de bytes do bloco, cujo tamanho j predefinido pelo algoritmo que est sendo usado. A forma mais comum de preenchimento determinar o nmero de bytes que deve ser preenchido e utilizar esse valor para preencher o bloco. Por exemplo, suponha que o tamanho do bloco em um determinado algoritmo seja de 16 bytes e foram utilizados apenas 9. Deve-se preencher os 7 bytes restantes com o valor 07. Um problema na cifra de bloco que se o mesmo bloco de texto simples aparecer mais de uma vez, a cifra gerada ser a mesma, facilitando o ataque ao texto cifrado. Para resolver esse problema so utilizados os modos de realimentao. O modo mais comum de realimentao a cifragem de blocos por encadeamento CBC (Cipher Block Chaining). Neste modo realizada uma operao de XOR do bloco atual de texto simples com o bloco anterior de texto cifrado. Para o primeiro bloco, no h bloco anterior de texto cifrado; assim, faz-se uma XOR com um vetor de inicializao. Este modo no adiciona nenhuma segurana extra. Apenas evita o problema citado da cifra de bloco. Portanto, os algoritmos de blocos processam os dados como um conjunto de bits, sendo os mais rpidos e seguros para a comunicao digital. Ainda, como vantagem, que os blocos podem ser codificados fora de ordem, o que bom para acesso aleatrio, alm de ser resistente a erros, uma vez que um bloco no depende de outro. Entretanto, como desvantagem, se a mensagem possuir padres repetitivos nos blocos, o texto cifrado tambm o apresentar, o que facilitar o servio do criptoanalista. Outra desvantagem que um bloco pode ser substitudo por outro modificando a mensagem original.

Captulo 1 Conceitos de Segurana de Dados e Criptografia

29

Os algoritmos de fluxo criptografam (cifram) a mensagem bit a bit, em um fluxo contnuo, sem esperar que se tenha um bloco completo de bits. tambm chamado de criptografia em stream de dados, onde a criptografia se d mediante uma operao XOR entre o bit de dados e o bit gerado pela chave. A tabela 1.1 apresenta algumas recomendaes para selecionar o tipo de algoritmo que dever ser usado em uma determinada aplicao:

Tabela 1.1 Escolhendo um algoritmo por aplicao (BURNETT, 2002) Aplicao Banco de dados E-mail Cifragem recomendada Bloco AES Comentrios A interoperabilidade com um outro software no relevante, mas necessrio reutilizar as chaves. Ganha-se interoperabilidade em todos os pacotes de e-mail utilizando o AES-padro. A velocidade extremamente importante, cada conexo pode ter uma nova chave. Assim, na prtica, a maioria dos navegadores e servidores possui o RC4. A interoperabilidade no relevante, porm cada arquivo pode ser cifrado com a mesma chave e, ento, proteg-la.

SSL

RC4

Criptografia de arquivos

Bloco

1.1.5 Vrus ou Informao Cifrada


Fernando de la Cuadra (2003), editor tcnico internacional da empresa Panda Software, empresa de software de segurana e antivrus, aponta em seu artigo vantagens e problemas da criptografia atual. Enviar uma mensagem cifrada por correio eletrnico traz vantagens tanto para o emissor como para o receptor. A confidencialidade est praticamente assegurada. Ningum que no conhea a chave utilizada na cifragem poder entender as informaes da mensagem. Assim, pode-se enviar todo tipo de informao com um bom nvel de segurana, estando-se praticamente a salvo de tericas interceptaes na comunicao. Mas quem intercepta uma comunicao? Em princpio, imagina-se que seja um hacker, um espio ou qualquer outro usurio que queira acessar as informaes da comunicao, mas tambm pode ser um antivrus fazendo uma verificao. Um antivrus sempre tentar impedir o ataque de um vrus, para isso examinar a mensagem enviada pelo correio eletrnico. O que pode acontecer que dentro do contedo de uma mensagem cifrada exista um vrus e o antivrus no o identifique. Ou, ainda, o antivrus pode identificar uma mensagem cifrada como sendo um vrus e essa mensagem poder ser excluda.

30

Criptografia em Software e Hardware

Atualmente 90% dos vrus esto espalhados pela Internet. Sendo assim, o mais lgico a instalao de antivrus nos firewalls, proxys etc. Mas se o vrus estiver em uma mensagem de correio eletrnico cifrada, at o melhor antivrus poder falhar em seu objetivo de proteger as informaes. E os usurios que receberem a mensagem cifrada, inconscientemente, sero infectados (CUANDRA, 2003). Em definitivo, ningum dvida de que os sistemas de criptografia sejam uma ferramenta que fornece segurana s comunicaes, mas podem ter uma deficincia: esconder vrus. Uma soluo para evitar que o vrus cifrado entre em uma determinada companhia ou organizao deveria ser uma proteo efetiva que bloqueia as mensagens cifradas no autorizadas, antes de chegar aos usurios finais (CUANDRA, 2003).

1.2 Importncia da Chave ou Senha


O termo chave vem do fato de que o nmero secreto, a famosa senha utilizada nos sistemas computacionais, funciona da mesma maneira que uma chave convencional usada nas portas e entradas a lugares fechados de residncias, empresas etc., de modo a proteger o patrimnio de um determinado usurio. Assim, algo similar ocorre com a criptografia, em que para proteger a informao de um determinado usurio (armazenada em arquivos de computador), deve-se instalar uma fechadura (algoritmo de criptografia). Para operar a fechadura, precisa-se da famosa chave ou senha (nmero secreto), a qual permite cifrar ou decifrar a informao desejada. O algoritmo realiza seus passos utilizando a chave para alterar o texto simples (mensagem original) e convert-lo em texto cifrado. Para recuperar a informao em forma legvel, necessrio inserir a mesma chave ou outra que esteja relacionada com aquela que foi usada no processo anterior e executar a operao inversa. O algoritmo inverte os passos e converte o texto cifrado de novo ao texto simples original. Assim como apenas a chave correta de um determinado prdio pode abrir a entrada deste, apenas a chave correta usada em criptografia pode cifrar ou decifrar os dados. Na criptografia de chave simtrica, a chave que utilizada para criptografar os dados a mesma chave utilizada para decifr-los. Na criptografia assimtrica, usa-se outra chave que possui um valor relacionado com essa primeira chave. Na seo 1.3, apresentam-se mais detalhes sobre criptografia simtrica e assimtrica. Toda criptografia moderna e computadorizada opera com chaves. Por que uma chave necessria? Por que no criar um algoritmo que no necessite de uma chave? Se os invasores podem entender o algoritmo, podem recuperar os dados secretos simplesmente executando o algoritmo. Uma primeira soluo seria manter o algoritmo em segredo, mas essa abordagem apresenta vrios problemas. Supondo que no seja possvel manter o algoritmo em segredo, os invasores sempre quebraro o algoritmo. Tal fato no seria possvel se houvesse especialistas em criptografia que desenvolvessem seus prprios algoritmos, mas neste caso tambm se deveria acreditar que a empresa ou usurio que escreveu o algoritmo nunca o revelaria.

Captulo 1 Conceitos de Segurana de Dados e Criptografia

31

Neste ponto, h um aspecto relevante em criptografia: o que mais importante, um algoritmo que deve ser mantido em segredo ou um algoritmo que possa cifrar informaes mesmo que os usurios de sistemas computacionais saibam como ele funciona. Neste segundo aspecto, destacam-se a importncia dos algoritmos com chave e, principalmente, a relevncia da chave. As chaves minimizam a preocupao com o algoritmo utilizado no esquema de criptografia. Em termos computacionais, para proteger os dados com uma chave, necessrio proteger apenas a chave, algo que mais fcil do que proteger um algoritmo. Alm disso, se utilizar chaves para proteger os segredos, possvel utilizar diferentes chaves para proteger diversos segredos. Assim se algum descobrir (quebrar) uma das chaves, os outros segredos ainda podero estar seguros. Se alguma informao depender somente de um algoritmo secreto, qualquer invasor que quebre esse segredo ter acesso a todas as informaes contidas em um determinado sistema computacional. As chaves so muito importantes em criptografia. Segundo o princpio de Kerckhoffs, que menciona a relevncia do espao de chaves, muito mais seguro um sistema onde se conhece o algoritmo de criptografia que o espao de chaves. Ao se manter em segredo as chaves, supondo-se conhecer o algoritmo usado, gera-se um sistema incondicional e computacionalmente seguro. Esse princpio ainda vlido por vrias razes (KERCKHOFFS, 1983). Os invasores podem deduzir um algoritmo sem nenhuma ajuda. Na histria da criptografia, nunca algum foi capaz de manter um algoritmo criptogrfico em segredo. Este sempre descoberto. Um exemplo disso que durantes as guerras, os espies sempre encontraram maneiras de descobrir o algoritmo, seja este originado de uma operao matemtica, seja de uma mquina. Eles o roubavam ou faziam com que algum o revelasse (por meio de chantagem, extorso ou uso de tcnicas de anlise criptogrfica). Agentes sempre descobriam o algoritmo ou obtinham uma cpia da mquina. Por exemplo, na Segunda Guerra Mundial, os soldados poloneses capturaram a mquina alem Enigma, logo no incio da guerra. Enigma era uma mquina de criptografia utilizada pelo exrcito alemo. Os aliados (isto , os britnicos) foram capazes de quebrar o cdigo mais facilmente porque tinham a posse dessa mquina. De forma alternativa, os analistas criptogrficos podem descobrir o algoritmo. Na Segunda Guerra Mundial, decifradores de cdigo dos Estados Unidos foram capazes de determinar o funcionamento interno das mquinas codificadas japonesas sem ter a posse de uma dessas mquinas. Um caso mais recente refere-se ao RC4, um algoritmo inventado em 1987, mas nunca publicado. Os analistas de criptografia e outros especialistas o estudaram e determinaram que o RC4 era uma boa maneira de manter os dados em segredo. Atualmente, o RC4 utilizado como parte do Secure Sockets Layer (SSL), o protocolo de comunicao segura da WEB (World Wide Web).

32

Criptografia em Software e Hardware

Mas a empresa que o criou, a RSA Data Security, nunca tornou pblico o funcionamento interno do algoritmo RC4. Esse segredo era mantido por interesses financeiros e no de segurana. A empresa esperava que mantendo-o em sigilo ningum mais o implementaria e comercializaria. Em 1994, hackers annimos divulgaram o algoritmo na Internet. Acredita-se que eles provavelmente o tenham descoberto usando um depurador de linguagem assembly, aps terem acesso a uma cpia do cdigo-objeto. Se um sistema criptogrfico estiver baseado no hardware, os engenheiros podem abrilo e examinar as partes internas dele. Em 1998, David Wagner e Ian Goldherg, nessa poca alunos graduados da Universidade da Califrnia, em Berkeley, abriram um telefone celular digital, supostamente seguro, e quebraram seu cdigo. s vezes possvel manter um algoritmo em segredo por um perodo suficientemente longo, para que seja eficaz, mas aps certo tempo algum acabar descobrindo-o. A segunda razo de relevncia da senha, mais do que o algoritmo usado, refere-se a assuntos comerciais. Empresrios e usurios sempre desejam saber como um determinado software pelo qual se interessam foi criado. Caso a empresa no revele os segredos de implementao e construo, por meio de tcnicas de reengenharia reversa sobre um software podem-se conhecer detalhes da sua criao e respectiva implementao. Soma-se a isso o fato de que somente pessoas que adquiriram o produto podem se comunicar entre si. Tal fato inviabiliza a comunicao com pessoas que no adquiriram ou compraram o algoritmo de um mesmo fornecedor. Dessa maneira, como resultado, os algoritmos devem ser padronizados, o que significa que devem ser pblicos. Se algum quiser utilizar a criptografia, necessrio empregar um dispositivo de hardware ou um programa de software. Portanto, torna-se necessrio adquirir o produto em algum estabelecimento especializado. Da mesma forma como os usurios podem ter acesso a esse dispositivo, os invasores tambm o tm. Desse modo, possveis invasores podem ir mesma fonte e obter suas prprias cpias. Tal fato faz com que os algoritmos devam ser disponibilizados, ou melhor, deve-se cuidar da chave. Uma outra razo para cuidar da chave, e no do algoritmo, refere-se ao fato de que possvel construir sistemas criptogrficos nos quais o algoritmo completamente conhecido e seguro, pois os possveis invasores precisam conhecer a chave para descobrir as informaes. Esses sistemas so mais seguros que aqueles que no tm chave, visto que somente confiam no segredo de no se conhecer o algoritmo. Quando os algoritmos se tornam pblicos, os analistas criptogrficos e os profissionais da rea de computao tm uma chance de examinar as fraquezas destes. Se um algoritmo for vulnervel, pode-se optar por no utiliz-lo. Caso contrrio, pode-se ter certeza de que os dados esto seguros. Por outro lado, se um algoritmo for mantido em segredo, os analistas no sero capazes de encontrar nenhuma fraqueza que este possa apresentar, e, assim, no sabero se ou no vulnervel.

Captulo 1 Conceitos de Segurana de Dados e Criptografia

33

1.2.1 Como Gerar a Chave


Em um sistema criptogrfico de chave simtrica, a chave formada por um conjunto de caracteres, podendo ser um nmero qualquer ou uma seqncia de caracteres alfanumricos (letras e smbolos especiais), contanto que tenha um tamanho correto e adequado quele que o algoritmo criptogrfico selecionado permitir. Geralmente, aconselha-se que a chave seja formada por nmeros ou caracteres alfanumricos sem coerncia nenhuma entre si, pois assim ser mais difcil descobri-la (ou, em termos criptogrficos, quebr-la). A chave deve ser, dentro do possvel, selecionada de forma aleatria. Para os criptgrafos, valores aleatrios so simplesmente conjuntos de nmeros que passam em testes estatsticos de aleatoriedade e no so repetveis. Com o intuito de gerar chaves, h vrias tcnicas utilizadas. Entre elas, destaca-se o uso de sistemas geradores de nmeros aleatrios (GNAs), ou random number generator (RNGs). Esses dispositivos funcionam agrupando nmeros de diferentes tipos de entradas imprevisveis, como a medio da desintegrao espontnea de radioatividade, o exame das condies atmosfricas ou o clculo de minsculas varincias na corrente eltrica. Esses nmeros passam por testes de aleatoriedade. Se solicitar um segundo grupo de nmeros, a nova seqncia ser completamente diferente, isto , nunca receber a mesma seqncia novamente. Tal situao ocorre porque a sada baseada em uma entrada que sempre est mudando. Esses nmeros podem ser obtidos utilizando-se algoritmos chamados de geradores de nmeros pseudo-aleatrios (GNPAs), ou pseudo-random number generators (PRNGs). Se um desses algoritmos for utilizado para gerar alguns milhares de nmeros e aplicar testes estatsticos, os nmeros passariam no teste de aleatoriedade. O que torna esses nmeros pseudoaleatrios, e no aleatrios, o fato de ser repetveis. Se for instalado o mesmo GNPA em um outro computador, os mesmos resultados podero ser obtidos. Se o programa for executado um certo tempo depois, esses mesmos resultados tambm podero ser obtidos. Para evitar esse problema, costuma-se usar GNPA com uma entrada diferente em cada evento de utilizao (chamada de semente). Assim, geraro dados diferentes, pois alterando a entrada, a sada tambm o ser. A gerao aleatria dessa chave est associada a dois parmetros importantes: velocidade de gerao e entropia, que esto intimamente relacionadas com o tamanho da chave.

1.2.2 Importncia do Tamanho da Chave


Se os invasores puderem descobrir qual a chave usada na cifragem dos dados, podero decifrar a mensagem enviada e obter os dados contidos nela. Um mtodo conhecido como ataque de fora bruta consiste em tentar todas as possveis chaves at que a correta seja identificada. Suponha que a chave seja um nmero entre 0 e 1.000.000 (um milho). O invasor pega o texto cifrado e alimenta o algoritmo de criptografia com a suposta chave de valor 0. O algoritmo realiza seu trabalho e produz um resultado.

34

Criptografia em Software e Hardware

Se os dados resultantes parecerem razoveis, 0 provavelmente a chave correta. Se for um texto sem sentido, 0 no a verdadeira chave. Nesse caso, ele tentar outro valor, por exemplo, 1 e, em seguida, 2, 3, 4, e assim por diante. Um algoritmo simplesmente realiza os passos, independentemente da entrada. No h nenhuma maneira de saber se o resultado que ele produz o correto. Mesmo se o valor estiver prximo da chave, talvez errado em apenas 1, o resultado ser um texto sem sentido. Assim, necessrio examinar o resultado, compar-lo para identificar algum sentido e, assim, informar se o valor usado como chave pode ser a chave realmente usada para cifrar as mensagens. Como tal procedimento depende de uma seqncia de entrada e sada, com valores supostos de chaves, um mtodo consiste em criar programas que sigam esses passos at descobrirem alguma informao. Normalmente, esse processo requer pouco tempo para testar uma chave. Assim, pode-se escrever um programa que verifique vrias chaves por segundo. No mbito da computao, tal operao torna possvel descobrir qualquer chave, somente se necessita de tempo. interessante perceber que esse tempo de procura est muito associado ao tamanho da chave. Chaves criptogrficas so medidas em bits. O intervalo de possveis respostas para identificar uma chave est em correspondncia ao nmero 2TC, em que TC o tamanho da chave em bits. Assim, uma chave de 2 bits significa que o intervalo de possveis valores de 0 at 22 = 4. Uma chave de 40 bits significa que o intervalo dos possveis valores de 0 at aproximadamente 1 trilho (240). Uma chave de 56 bits de 0 at aproximadamente 72 quatrilhes (256). O intervalo de uma chave de 128 bits to grande que mais fcil apenas dizer que se trata de uma chave de 128 bits (nmero de possibilidades igual a 2128). Cada bit adicionado ao tamanho da chave dobrar o tempo requerido para um ataque de fora bruta. Se uma chave de 40 bits levasse 3 horas para ser quebrada, uma chave de 41 bits levaria 6 horas, uma chave de 42 bits, 12 horas, e assim por diante. Essa situao ocorre visto que cada bit adicional da chave dobra o nmero de chaves possveis (lembre-se que esse nmero est em funo de 2TC). Assim, ao adicionar um bit, o nmero de chaves possveis dobrado. Dobrando o nmero de chaves possveis, o tempo mdio que um ataque de fora bruta leva para encontrar a chave correta tambm dobrado. Portanto, para se ter maior segurana, isto , tornar o trabalho de um determinado invasor mais difcil, deve-se escolher uma chave maior. Chaves mais longas significam maior segurana. A tabela 1.2 mostra o impacto de se aumentar o tamanho da chave e o respectivo tempo de quebrar a chave usando ataque por fora bruta, assim como a respectiva estimativa de custo (em dlares) da tecnologia necessria para encontrar a chave. Pode-se constatar que tendo mais recursos disponveis (em tecnologia e, portanto, maior custo em dlares), possvel diminuir

Captulo 1 Conceitos de Segurana de Dados e Criptografia

35

o tempo para encontrar uma determinada chave. No obstante seja possvel achar a chave, h tamanhos de chave que inviabilizam essa ao, dado que demandaria muito tempo. Nessa tabela, o termo 2s significa 2 segundos; 200 ms significa que o tempo dado em milissegundos (10-3 segundos); 200 us significa que o tempo dado em microssegundos (isto , 10-6 segundos):

Tabela 1.2 Tempo gasto para quebra de chaves por fora bruta (SCHNEIER, 1996) Tamanho da chave (bits) Custo U$ 100 mil 1 milho 10 milhes 100 milhes 1 bilho 10 bilhes 100 bilhes 1 trilho 10 trilhes 40 2s 200 ms 20 s 2 ms 200 us 20 us 2 us 0,2 us 0,02 us 56 35 horas 3,5 h 21 m 2m 13 s 1s 100 ms 10 ms 1 ms 64 1 ano 37 dias 4 dias 9h 1h 5,4 m 32 s 3s 300 ms 80 70.000 anos 7.000 anos 700 anos 70 anos 7 anos 245 dias 24 dias 2,4 dias 6 horas 112 10 anos
14

128 10 anos
19

1013 anos 10 anos


12

1018 anos 1017 anos 1016 anos 1015 anos 1014 anos 1013 anos 1012 anos 1011 anos

1011 anos 1010 anos 109 anos 108 anos 107 anos 10 anos
6

importante lembrar que o poder da computao dobra a cada 1,5 ano e que a estimativa do tempo de existncia do universo, segundo os ltimos estudos cientficos, est em torno de 1010 anos. Assim, chega-se concluso de que sempre possvel decifrar uma determinada mensagem, pois sempre ser possvel descobrir a chave: basta testar todas as chaves possveis; somente uma questo de tempo. Entretanto, essa ao pode demorar mais que o tempo de durao do universo (SCHNEIER, 1996). Ento, qual o tamanho mximo que uma chave deve ter? Com o passar dos anos, o RSA Laboratories props alguns desafios. A primeira pessoa ou empresa a quebrar uma mensagem em particular ganharia um prmio em dinheiro. Alguns desafios foram testes do tempo de um ataque de fora bruta. Em 1997, uma chave de 40 bits foi quebrada em 3 horas e uma chave de 48 bits durou 280 horas. Em 1999, a Electronic Frontier Foundation encontrou uma chave de 56 bits em 24 horas. Em cada um dos casos, pouco mais de 50% do espao de chave foi pesquisado antes de a chave ser encontrada. Em todas essas situaes, centenas ou at milhares de computadores operavam conjuntamente para quebrar as chaves. Na realidade, com o desafio de 56 bits de DES que a Electronic Frontier Foundation quebrou em 24 horas, um dos computadores era um cracker especializado em DES. Esse tipo de computador realiza apenas uma tarefa: verifica as chaves de DES. Um invasor que trabalhe secretamente, provavelmente no seria capaz de reunir a fora de centenas de computadores e talvez no possua uma mquina especificamente construda para quebrar um algoritmo em particular. Para a maioria dos invasores, essa a razo pela qual o tempo que despendem para quebrar a chave quase certamente seria significativamente maior. Por outro lado, se o invasor fosse uma agncia governamental de inteligncia com grandes recursos, a situao seria diferente.

36

Criptografia em Software e Hardware

Pode-se pensar em situaes ainda mais crticas. Suponha que examinar 1% do espao de chave de uma chave de 56 bits leva 1 segundo e examinar 50% , 1 minuto. Todas as vezes que se adicionar um bit ao tamanho de chave, dobra-se, ento, o tempo de pesquisa. Os resultados so mostrados na tabela 1.3, onde se percebe que o impacto e observaes realizadas para os dados da tabela 1.2 so tambm aplicveis.

Tabela 1.3 Tempo gasto para quebra de chaves (BURNETT, 2002) Bits 1% do espao da chave 50% do espao da chave 56 57 58 64 72 80 90 108 128 1 segundo 2 segundos 4 segundos 4,2 minutos 17,9 horas 190,9 dias 535 anos 140 mil milnios 146 bilhes de milnios 1 minuto 2 minutos 4 minutos 4,2 horas 44,8 dias 31,4 anos 321 sculos 8 milhes de milnios 8 trilhes de milnios

Atualmente, 128 bits o tamanho de chave simtrica mais comumente utilizado. Se a tecnologia avanar e os invasores de fora bruta puderem melhorar esses nmeros (talvez possam reduzir para alguns anos o tempo das chaves de 128 bits), ento sero necessrias chaves de 256 bits ou ainda maiores. Assim, considerando que a tecnologia est avanando sempre, teremos de aumentar repetidas vezes o tamanho das chaves. Com o passar do tempo, ser necessrio aumentar o tamanho das chaves. bom lembrar que aumentar a chave significa tambm aumentar o tempo cifragem e decifragem. Por isso, recomenda-se ateno em relao escolha do tamanho da chave. Assim, possvel pensar que poder chegar um momento em que precisaremos de uma chave to grande que com esta ser muito difcil de lidar. No momento atual, considerando-se os conhecimentos adquiridos na rea de segurana, quase certamente nunca precisaremos de uma chave mais longa que 512 bits (64 bytes). Supondo que cada tomo no universo conhecido (h aproximadamente 2300) fosse um computador e que cada um desses computadores pudesse verificar 2300 chaves por segundo, essa tarefa levaria cerca de 2162 milnios para pesquisar 1% do espao de chave de uma chave de 512 bits. De acordo com a teoria do big-bang, o tempo decorrido desde a criao do universo menor que 224 milnios. Em outras palavras, altamente improvvel que a tecnologia v to longe para forar a utilizar chaves que sejam muito grandes (BURNETT e PAINE, 2002). Apesar de o ataque de fora bruta precisar de muito tempo, principalmente quando a chave possui um tamanho razovel, h outros ataques que exploram as fraquezas nos algoritmos criptogrficos e tendem a diminuir o tempo do ataque. Por esse motivo, no momento se recomenda usar chaves relativamente longas, superiores a 128 bits. J para aplicaes comerciais e financeiras (por exemplo, transaes bancrias), necessrio que a chave seja maior que 128 bits. Tal fato significa que um usurio comum que tente fazer um ataque de fora bruta, precisar de muito tempo para ter uma invaso considerada bem-sucedida.

Captulo 1 Conceitos de Segurana de Dados e Criptografia

37

1.3 Criptografia de Chaves Simtrica e Assimtrica


Na criptografia de chave simtrica, os processos de cifragem e decifragem so feitos com uma nica chave, ou seja, tanto o remetente quanto o destinatrio usam a mesma chave. Em algoritmos simtricos, como, por exemplo, o DES (Data Encription Standard), ocorre o chamado problema de distribuio de chaves. A chave tem de ser enviada para todos os usurios autorizados antes que as mensagens possam ser trocadas. Essa ao resulta num atraso de tempo e possibilita que a chave chegue a pessoas no autorizadas. A criptografia assimtrica contorna o problema da distribuio de chaves mediante o uso de chaves pblicas. A criptografia de chaves pblicas foi inventada em 1976 por Whitfield Diffie e Martin Hellman, a fim de resolver o problema da distribuio de chaves. Neste novo sistema, cada pessoa tem um par de chaves denominado chave pblica e chave privada. A chave pblica divulgada, enquanto a chave privada mantida em segredo. Para mandar uma mensagem privada, o transmissor cifra a mensagem usando a chave pblica do destinatrio pretendido, que dever usar a sua respectiva chave privada para conseguir recuperar a mensagem original. Atualmente, um dos mecanismos de segurana mais utilizados a assinatura digital, que precisa dos conceitos de criptografia assimtrica. A assinatura digital uma mensagem que s uma pessoa poderia produzir, mas que todos possam verificar. Normalmente autenticao se refere ao uso de assinaturas digitais: a assinatura um conjunto inforjvel de dados assegurando o nome do autor que funciona como uma assinatura de documentos, ou seja, que determinada pessoa concordou com o que estava escrito. Tal procedimento tambm evita que a pessoa que assinou a mensagem depois possa se livrar de responsabilidades, alegando que a mensagem foi forjada. Um exemplo de criptossistema de chave pblica o RSA (RivestShamir-Adleman), cuja maior desvantagem a sua capacidade de canal limitada, ou seja, o nmero de bits de mensagem que pode transmitir por segundo (BURNETT, 2002). A figura 1.4 ilustra o funcionamento das criptografias simtrica e assimtrica. Observe que existem duas chaves na criptografia assimtrica:

Figura 1.4 Modelos simtrico e assimtrico de criptografia.

38

Criptografia em Software e Hardware

Aps analisar o contedo exposto anteriormente, pode-se questionar qual modelo utilizar: simtrico ou assimtrico. Pois bem, em virtude dessa escolha foi desenvolvido um modelo hbrido, ou seja, que aproveitasse as vantagens de cada tipo de algoritmo. O algoritmo simtrico, por ser muito mais rpido, utilizado no ciframento da mensagem em si, enquanto o assimtrico, embora lento, permite implementar a distribuio de chaves e utilizado em aplicaes de assinatura digital. Ento, os algoritmos criptogrficos podem ser combinados para a implementao dos trs mecanismos criptogrficos bsicos: o ciframento, a assinatura digital e o hashing, e estes ltimos dois conceitos ainda sero descritos e analisados em captulos posteriores, em especial, no captulo 9. Esses mecanismos so componentes de protocolos criptogrficos, embutidos na arquitetura de segurana dos produtos destinados ao comrcio eletrnico. Esses protocolos criptogrficos, portanto, provm os servios associados criptografia que viabilizam o comrcio eletrnico. Descrevem-se, a seguir, alguns exemplos de protocolos que empregam sistemas criptogrficos hbridos. O IPSec o padro de protocolos criptogrficos desenvolvidos para o IPv6. Realiza tambm o tunelamento de IP sobre IP. Tenciona-se adot-lo como futuro padro para todas as formas de VPN Virtual Private Network (MAIA, 1999). O SSL e TLS oferecem suporte de segurana criptogrfica para os protocolos NTTP, HTTP, SMTP e Telnet. Permitem utilizar diferentes algoritmos simtricos, message digest e mtodos de autenticao e gerncia de chaves para algoritmos assimtricos (MAIA e PAGLIUSI, 1999). SSL (Security Socket Layer) o protocolo mais conhecido em transaes via WEB e hoje domina esse mercado, estando presente principalmente em vendas on-line envolvendo carto de crdito. Foi criado pela Netscape, sendo o padro livre para uso pessoal e empresarial. Ressalte-se novamente o nvel de segurana desse protocolo, o qual assegura a inviolabilidade das vendas on-line com carto de crdito (GEEK, 2002). Pode-se citar tambm como exemplo o PGP, descrito anteriormente, lembrando-se de que se trata de um programa de criptografia famoso e bastante difundido na Internet, destinado criptografia de e-mail. Suporta os algoritmos hashing MD5 e SHA-1. O S/MIME (Secure Multipurpose Internet Mail Extensions) consiste em um esforo de um consrcio de empresas, tendo como um dos lderes a Microsoft, para adicionar segurana a mensagens eletrnicas no formato MIME. Acredita-se que o S/MIME dever estabelecer-se no mercado corporativo, enquanto o PGP atuar no mundo do e-mail pessoal (MAIA, 1999). J o SET um conjunto de padres e protocolos para realizar transaes financeiras seguras, como as realizadas com cartes de crdito na Internet. Oferece um canal seguro entre todos os envolvidos na transao, bem como autenticidade e privacidade entre as partes envolvidas. A especificao X.509 define o relacionamento entre as autoridades de certificao, com base em criptografia de chave pblica e assinatura digital (MAIA e PAGLIUSI, 1999).

Captulo 1 Conceitos de Segurana de Dados e Criptografia

39

Pode-se, ento, comparar os modelos vistos (criptografias simtrica e assimtrica), conforme se mostra na tabela 1.4:

Tabela 1.4 Comparao entre os tipos de algoritmos de criptografia


Criptografia simtrica Rpida Criptografia assimtrica Lenta

Gerncia e distribuio das chaves Gerncia e distribuio so simples so complexas No oferece assinatura digital Oferece assinatura digital

A tabela 1.5 apresenta detalhes dos algoritmos simtricos mais conhecidos pela comunidade da rea de segurana da informao e criptografia:

Tabela 1.5 Caractersticas dos algoritmos simtricos mais conhecidos


Algoritmo DES Triple DES (2 chaves) Triple DES (3 chaves) IDEA Blowfish RC5 CAST-128 RC2 RC4 Rijndael (AES) MARS RC6 Serpent Twofish Tipo Bloco Bloco Bloco Bloco Bloco Bloco Bloco Bloco Stream (fluxo) Bloco Bloco Bloco Bloco Bloco Tamanho da chave 56 112 168 128 32 a 448 0 a 2.040 40 a 128 0 a 1.024 0 a 256 128, 192, 256 Varivel Varivel Varivel 128, 192, 256 Tamanho do bloco 64 64 64 64 64 32, 64, 128 64 64 -128, 192, 256 128 128 128 128

Nessa tabela possvel observar que a maioria dos algoritmos criptogrficos modernos, os mais usados na atualidade, baseia-se no sistema de cifrar as informaes por bloco, cujo tamanho de bloco mais utilizado de 64 bits e possui chaves de tamanho relativamente grande, superior a 56 bits. Outro aspecto que merece destaque alguns algoritmos possurem tamanhos de chave e/ou de bloco variveis (ver situao dos algoritmos blowfish, RC5, CAST, RC2, RC4, Rijndael - AES, MARS, RC6, Serpent e Twofish, que casualmente foram os algoritmos que fizeram parte do projeto AES) (BIHAM, 1999).

1.4 Assinatura Digital


Alguns algoritmos criptogrficos de chave-pblica podem ser utilizados para gerar o que se denomina de assinaturas digitais. O algoritmo RSA um desses algoritmos, assim, alm da operao normal de cifrar com a chave-pblica e decifrar com a chave-privada, permite que, cifrando-se com a chave-privada, o processo de decifrar com a chave-pblica resulte na recuperao da mensagem (BUCHMANN, 2001).

40

Criptografia em Software e Hardware

Obviamente essa forma de uso no assegura o sigilo da mensagem, uma vez que qualquer um pode decifr-la, dado que a chave-pblica de conhecimento pblico. Entretanto, se essa operao resulta na mensagem esperada, pode-se ter certeza de que somente o detentor da correspondente chave-privada poderia ter realizado a operao de cifragem. Assim, uma assinatura digital o criptograma resultante da cifrao de um determinado bloco de dados (documento) pela utilizao da chave-privada de quem assina em um algoritmo assimtrico. A verificao da assinatura feita decifrando-se o criptograma (assinatura) com a suposta chave-pblica correspondente. Se o resultado for vlido, a assinatura considerada vlida, ou seja, autntica, uma vez que apenas o detentor da chave privada, par da chave pblica utilizada, poderia ter gerado esse criptograma. Na figura 1.5, ilustra-se esse procedimento:

Figura 1.5 Gerao de assinatura digital de um documento (BURNETT, 2002).


Nesta figura, um usurio de nome Fbio assina um documento, cifrando-o com sua chaveprivada e enviando tanto o documento original quanto a assinatura para um outro usurio chamado Edward. Este usurio verifica a assinatura decifrando-a com a chave-pblica de Fbio (de conhecimento pblico) e comparando o resultado com o documento recebido. Se estiverem de acordo, a assinatura conferir caso contrrio ser considerada invlida, significando que ou no foi Fbio quem assinou ou o documento foi adulterado aps a assinatura. interessante observar que esse procedimento capaz de garantir tanto a origem (autenticao do emissor), tendo em vista que supostamente somente Fbio conhece sua chave privada e, portanto, somente ele capaz de gerar uma assinatura que possa ser verificada com sua chave-pblica, como tambm a integridade do documento, j que se este for alterado, a verificao da assinatura ir indicar a adulterao caso tenha vindo efetivamente do pretenso emissor. Em geral, diante da ineficincia dos algoritmos assimtricos no computador, os mtodos para assinatura digital empregados na prtica no assinam o documento que se deseja autenticar em si, mas uma smula deste, obtida pelo seu processamento por meio do que se denomina funo de hashing, que uma funo criptogrfica que gera uma sada de tamanho fixo (geralmente 128 a 256 bits) independentemente do tamanho da entrada. Essa sada se denomina de hash da mensagem (ou documento ou o que quer que seja a entrada). Segundo Burnett e Paine (2002), para ter utilidade criptogrfica, a funo de hashing deve ser:

Captulo 1 Conceitos de Segurana de Dados e Criptografia


simples (eficiente, rpida), se computar o hash de dada mensagem; impraticvel, se determinar a entrada a partir de seu hash.

41

impraticvel, se determinar uma outra entrada que resulte no mesmo hash de uma dada entrada. Valores de hash possveis so estatisticamente eqiprovveis. A tabela 1.6 apresenta as caractersticas dos algoritmos de hashing mais conhecidos pela comunidade da rea de segurana de dados.

Tabela 1.6 Caractersticas dos algoritmos de hashing mais conhecidos (GUELFI, 2002)
Algoritmo de hash Abreast Bavies-Meyer (c/IDEA) Davies-Meyer (c/DES) GOST-Hash NAVAL (3 passos) NAVAL (4 passos) NAVAL (5 passos) MD4 Message Digest 4 MD5 Message Digest 5 N-HASH (12 rounds) N-HASH (15 rounds) RIPE-MD RIPE-MD-160 SHA Secure Hash Algorithm SNEFRU (4 passos) SNEFRU (8 passos) Tamanho hash 128 64 256 Varivel Varivel Varivel 128 128 128 128 128 160 160 128 128 Kbytes/s 22 9 11 168 118 95 236 174 29 24 182 -75 48 23

Nessa tabela possvel observar que a maioria dos algoritmos de hashing utiliza um tamanho de hash fixo, com destaque para 128 e 160 bits, que so os tamanhos mais usados pela comunidade. Os algoritmos mais conhecidos pela comunidade acadmica e com utilidade comercial so SHA, MD4 e MD5. J os outros, como o nome indicado na tabela 1.6 sugere, pertencem a aplicaes governamentais e de uso privado, como, por exemplo, aplicaes militares e navais.

1.5 Consideraes Finais


Ainda no contexto da viso atual de criptografia, pode-se elencar outros fatores que impulsionam seu estudo e evoluo: A tecnologia de protocolos de rede tornar a Internet uma rota vulnervel s invases e ao furto de informaes.

42

Criptografia em Software e Hardware


Crackers de todas as partes esto dispostos a destruir at mesmo os mais slidos negcios on-line, possuindo armas intelectuais para isso. E-commerce comeou a perder adeptos, por ser suscetvel a fraudes em operaes envolvendo transferncia de dinheiro e cartes de crdito. Correio eletrnico tambm no seguro. Diversos servios on-line aproveitam-se da ingenuidade do internauta para invadir um microcomputador e obter dados pessoais. Pelo computador muito mais fcil e provvel a aplicao de mtodos de monitoramento. Ainda h um certo sentimento de insegurana quando se realiza alguma transao comercial via Internet, fazendo com que no se aproveite todo o potencial desse tipo de comrcio. A invaso de mquinas/sistemas e roubo de informao uma realidade, deixando de lado a imagem fictcia e cinematogrficas. Os algoritmos de criptografia ainda so um conceito distante da grande massa de usurios, apresentando-se como algo abstrato e intangvel.

Por esses motivos, este livro alm de apresentar de forma clara os algoritmos criptogrficos mais utilizados no momento, preocupa-se tambm com dados de desempenho: tempos de execuo do processo de cifragem e decifragem, de processamento de alguns algoritmos simtricos (DES, AES, IDEA, RC5) e assimtricos, como o RSA e funes de hashing (MD5 e SHA-1), quando implementados em software (usando-se a linguagem C e alguns deles em Java) e hardware (em circuitos programveis FPGAs por meio da linguagem especial para descrio de sistemas digitais, conhecida como VHDL). fundamental destacar ao leitor que ao aumentar o tamanho da chave, incrementamse o nvel de segurana e tambm o tempo de processamento do processo de cifragem e decifragem. Este livro mostra qual o real impacto desse processo, como os impactos do algoritmo no tempo de processamento, do sistema operacional (Windows, Linux), do processador etc.