Você está na página 1de 7

LinuxFocus article number 243 http://linuxfocus.

org

Introduo criptografia

by Pierre Loidreau
<pierre.loidreau/at/ensta.fr>

About the author: O Pierre trabalha como professorInvestigador na ENSTA (Escola Nacional Superior de Tcnicas Avanadas). O seu campo de investigao diz respeito a "sistemas encriptados" baseados na teoria de correco de erros. "Joga" com o linux todos os dias... e tnis muito frequentemente.

Abstract: Este artigo foi publicado primeiro numa revista de Linux Francesa, numa edio especial focando a segurana. O editor, os autores, os tradutores, gentilmente, permitiram a LinuxFocus de publicar cada artigo desta edio especial. De acordo, a LinuxFocus apresentarlhos mal estejam traduzidos para Ingls. Obrigado a todas as pessoas envolvidas neste trabalho. Este genrico ser reproduzido para cada artigo tendo a mesma origem.

_________________ _________________ _________________

Translated to English by: Axelle Apvrille


<axellec/at/netcourrier.com>

O porqu da criptografia 2500 anos de histria.


A origem da criptografia, provavelmente, remonta ao princpios da existncia humana, logo que as pessoas tenham tentado aprender a comunicar. Consequentemente, tiveram de encontrar meios para garantir a confidencialidade de parte das suas comunicaes. Contudo o primeiro uso deliberado de mtodos tcnicos para encriptar mensagens pode ser atrbuido aos antigos Gregos, em meados do sculo VI A.C. uma vara, chamada "scytale" foi utilizada. O emissor enrolaria uma pedao de papel volta da vara e escreveria a sua mensagem longitudinalmente nela. Depois abria o papel e envivao para o endereo respectivo. A desencriptao da mensagem sem o conhecimento do comprimento das varas actuando aqui como uma chave secreta era considerado impossvel. Mais tarde os romanos utilizaram o cdigo cifrado de Csar para comunicar (uma terceira letra do alfabeto). Os prximos 19 sculos foram devotados criao de tcnicas de encriptao experimentais, inteligentes, em 1/7

que, cuja segurana, actualmente, reside no quanto o utilizador confia nelas. Durante o sculo XIX, o Kerchoffs escreveu os princpios da encriptao moderna. Um destes princpios afirmava que a segurana de um sistema encriptado no residia no processo de encriptao em si, mas sim na chave que era utilizada. Assim, deste ponto de vista, era esperado que os sistemas de encriptao seguissem estes requisitos. Contudo, os sistemas existentes, ainda carecem de clculos matemticos e por conseguinte, de utilitrios para medir o benchmark de resistncia a ataques. Melhor seria se algum atingisse o objectivo mor da criptografia e encontrasse um sistema, incondicionalmente, 100% seguro ! Em 1948 e 1948, foram adicionadas bases cientficas criptografia com 2 papeis de Claude Shannon: "Uma Teoria Matemtica da Comunicao" e, principalmente, "A Teoria de Comunicao de Sistemas Secretos". Estes artigos afastaram esperanas e preconceitos. O Shannon provou a cifrao de Vernam que havia sido proposta alguns anos antes e tambm a renomeou para One Time Pad era o nico sistema, incondicionalmente, seguro que alguma podia existir. Infelizmente, tal sistema no era possvel plo em prtica... Esta a razo porque, nos nossos dias, a evoluo dos sistemas de segurana baseada em segurana computacional. Um defende que a chave de cifrao segura se nenhum ataque conhecido no faa mais do que procurar por todas as chaves possveis.

AES (Padro avanado de Encriptao)


Recentemente, em Outubro de 2000, o NIST (National Institute of Standards and Technology) anunciou um novo padro de uma chave secreta de cifragem, escolhido de 15 candidatos. Este novo padro pretendia substituir o velho algoritmo DES, cujo tamanho das chaves se est a tornar muito pequeno. O Rijndael um nome comprimido, originrio dos seus inventores Rijmen e Daemen foi escolhido para se tornar o futuro AES. Este sistema de encriptao dito ser um "bloco" de cifragem medida que as mensagens so encriptadas em blocos inteiros, com unidades de 128bits. Existem mltiplas ideias que propem a utilizao de chaves com 128, 192, 256 bits. S para sua informao, o DES encripta blocos de 64 bits com uma chave de 56 bits. O DES triplo, normalmente, encripta blocos de 64 bits com uma chave de 112 bits.

Tabela 1: Iteraces do AES

O modo operacional do AES est descrito na figura 1. Primeiro uma chave secreta K0 ajustada bit a bit mensagem. Depois, semelhantemente a todos os blocos de cifragem. A funo F iterada, utilizando subchaves geradas a partir de uma rotina de expanso, inicializada pela chave me. Para o AES, a funo F iterada 10 vezes.

2/7

A figura 2 descreve o modo como a funo F iterada para a encriptao. Recebe um bloco de 128bits reparticionados em 16 octetos. Primeiro a substituio S aplicada a cada byte (octeto). De seguida a permutao P aplicada aos 16 octetos. A subchave de 128bit, gerada pela rotina de expanso, adicionada bit a bit ao resultado anterior. A chave Ki do ciclo ni obtida da chave da rotina de expanso utilizando a subchave K(i1) do ciclo ni1 sendo K0 a chave secreta. A rotina de expanso da chave est descrita na figura 3. Os 16 bytes da chave K(i1) so processadas 4 a 4. Os ltimos 4 bytes so permutados utilizando a substituio S a mesma substituio que utilizada na funo iterada F para substituir os bits de cada octeto. Depois os primeiros 4 bytes resultantes so adicionados ao elemento alpha i. Este elemento o byte de prdefinio que depende do iterador do ciclo. Finalmente, para obter o Ki, os 4 bytes resultantes so adicionados bit a bit aos primeiros 4 bytes do K(i1). De seguida o resultado adicionado aos prximos quatro bytes, etc.

Tabela 2: Funo F F

Vejemos, agora, muito resumidamente, como as substituies so construdas e ao que corresponde a constante i. Tecnimente e por razes de simplificao um octeto deve ser considerado como um elemento conjunto de 256 elementos, chamado um campo finito e no qual todas as operaes simples (como a adio, multiplicao, e inverso) existem. De facto a prvia substituio S o inverso de tal campo. A substituio S especificada como sendo uma operao simples e pode, facilmente, ser implementada. O elemento i corresponde elevao da potncia i de um elemento do campo. Tais consideraes tornam as implementaes do AES muito eficientes. Como o AES somente construdo atravs de operaes de bitwise, isto dlhe duas grandes vantagens: mesmo puras implementaes em software do AES so bastante rpidas. Por exemplo uma implementao em C++ num Pentium a 200 Mhz oferece uma performance de 70Mbits/s de encriptao ; 3/7

a resistncia do AES a uma anlise de encriptao diferencial e linear no depende da escolha da SBox, como para o DES tais SBoxes eram suspeitas de conter uma backdoor para o NSA. De facto, todas as operaes so simples.

Tabela 3: Rotina da Chave de expanso

Chave Pblica de encriptao


Em 1976, o Diffie e o Hellman publicaram um artigo "New Directions in Cryptography" o qual era um objectivo real para a comunidade dos criptgrafos. Este artigo introduzia o conceito de chave pblica de encriptao. Naquela altura, a nica familia de algoritmos conhecida algoritmos de chaves secretas simtricas no podia mais satisfazer as novas necessidades que apareciam devido exploso dos mtodos de comunicao como as redes. Basicamente, o princpio da sua nova ideia foi a introduo do conceito de funes de um s sentido trapdoor. Tais funes operam facilmente num sentido mas computacionalmente impossvel de inverter sem o conhecimento de um segredo chamado trap mesmo que a funo seja conhecida por todos. Ento, a chave pblica actua como funo enquanto que o trap (somente conhecido por um nmero limitado de utilizadores) chamada chave privada. Isto deu origem ao nascimento ao mundo da Alice, Bob (e outros). A Alice e o Bob so duas pessoas que tentam comunicar com requisitos de integridade, evitando intrusos que podem tentar escutar ou at mesmo alterar a comuncao. Claro que, para decrifrar a mensagem , o recipiente s precisa de inverter a funo utilizando o segredo denominado trap. O exemplo mais simptico do criptografismo pblico (e, sem dvida o mais simples) foi apresentado dois anos mais tarde em 1978. Foi inventado por Rivest, Shamir e Adleman e por aqui surgiu o RSA. baseado na dificuldade matemtica da factorizao inteira. A chave privada feita do tripleto (p,q,d) com p e q dois primos (tendo aproximadamente o mesmo tamanho), e d um primo relativo de p1 e q1. A chave pblica formada pelo par (n,e), com n=pq, e e o inverso do mdulo de d (p1)(q1), por exemplo

4/7

ed = 1 mod(p1)(q1).

Suponha que a Alice quer enviar algum texto, encriptada com a chave pblica do Bob(n,e). Primeiro, transforma a mensagem num inteiro m menos o n. Depois, processa c = me mod n,

e envia o resultado c para o Bob. Do seu lado, o Bob, cuja chave privada (p,q,d), processa : cd mod n = med mod n = m.

Para o RSA, a funo armadilha de um s sentido a funo que associa um inteiro x <n ao valor xe mod n. Desde o RSA, muitos outros sistemas chave de encriptao pblicos foram inventados. Presentemente uma das alternativas mais famoasas ao RSA um sistema de encriptao baseado em logatimos discretos.

Utilizao Moderna da Criptografia


Actualmente a chave pblica de criptografia realmente interessante porque fcil de utilizar e resolve muitos problemas de segurana at ento sem resoluo. Mais precisamente, resolve alguns problemas de autenticao: Identificando Individuos: a utilizao das comunicaes annimas hoje tem o seguinte significado, a Alice quer ter a certeza que a pessoa com quem est a falar no est a enganar ou a persuadir o Bob. Para tal fazer, ela utiliza um protocolo de identificao. Existem mltiplos protocolos que, no geral, assentam nos princpios da RSA ou do algoritmo discreto. Autenticao de Documentos: uma autoridade autentica um documento atravs de uma assinatura digital. A assinatura consiste em adicionar alguns bits resultantes de algum processamento do documento e da autoridade como entrada e, geralmente encontramse na forma de hash, atravs de um algoritmo de hash como o MD5 ou o SHA. Assim, qualquer pessoa com acesso ao documento devia ser capaz de verificar que assinatura foi atribuida pela autoridade. Para tal, esquemas de assinatura, so utilizados. Um dos mais famosos esquemas de assinaturas o ElGamal mais uma vez baseado nos problemas de logaritmos discretos. Para alm da chave secreta de encriptao, a chavepblica de encriptao fornece encriptao base de sistemas de criptao, garantindo confidencialidade nas comunicaes. Imaginemos que a Alice quer comunicar secretamente com o Bob. A Alice obtem a chave pblica do Bob num directrio pblico e, encripta a sua mensagem com esta chave. Quando o Bob recebe o texto encriptado, ele usa a chave privada para decifrar o texto encriptado e l o texto inicialmente limpo. Ambas as chaves tm regras diferentes, isto explica por que tais sistemas so designados de sistemas de encriptao assimtricos referindo os sistemas com chave de encriptao para cifrar e decifrar so conhecidos como sistema de encriptao simtricos.

A chave pblica de encriptao oferece um outro grande benefcio em relao chave secreta de encriptao. De facto, se n utilizadores comunicarem atravs de uma chave encriptada secreta, cada um deles precisa de uma chave diferente para cada pessoa no grupo. Assim, tm de ser arranjadas n(n1) chaves. Se o n representa milhares de utilizadores ento milhes de chaves precisam de ser arranjadas... Para alm disto, adicionar um utilizador ao grupo no tarefa fcil, porque novas n chaves precisam de ser geradas para o utilizador poder 5/7

comunicar com todos os membros do grupo. Depois, estas novas chaves precisam de ser enviadas de volta para o grupo. De modo contrrio, nos sistemas de encriptao assimtricos, as n chaves pblicas dos membros so arquivadas num directrio pblico. Adicionar um novo utilizador, consiste, simplesmente, em adicionar a sua chave pblica ao directrio.

Usar uma chave pblica ou privada: encontrando a melhor combinao


O pargrafo anterior explicou que a chave pblica de encriptao resolveu muitos problemas com os quais a chave privada no conseguia lidar. Pode questionarse porque que foi desenhado o AES. Actualmente, existem duas grandes explicaes para esta escolha. Primeiro, uma razo prtica. Geralmente, os sistemas de encriptao com chave pblica so muito lentos. Por exemplo, as implementaes de software do RSA so mil vezes mais lentas que o AES, e o RSA no foi desenhado tendo em mente a implementao de hardware. A transmisso de informao to crucial nos dias de hoje que no podemos estar limitados por um algoritmo secreto. Segundo, o ncleo da estrutura dos sistemas de encriptao com chave pblica conduz a outros problemas de segurana. Por exemplo, os sistemas de encriptao com uma chave pblica requerem tamanhos de chaves maiores para um nvel de segurana correcto que os sistemas de encriptao com chave secreta. Actualmente a ideia e importncia do tamanho da chave dos sistemas de encriptao s deve ser considerada nos sistemas de encriptao com chave secreta. De facto, tais sistemas assentam no facto que s ataques de forabruta que os pode derrotar, ou seja enumerando todas as possibilidades para as chaves. Se o tamanho da chave for de 128 bits ento devem ser enumeradas 2128 possibilidades. Mas com os sistemas de encriptao de chave pblica, o tamanho da chave s interessante quando se considera o mesmo sistema. Por exemplo, o RSA com uma chave de 512 bit menos seguro que o AES com uma chave de 128 bit. O nico modo correcto de avaliar um sistema de encriptao de chave pblica estimar a complexidade do ataque mais bem conhecido e, isto ligeiramente diferente: um nunca sabe se uma nova inveno vai comprometer a segurana do sistema. Recentemente, um grupo de pesquisadores, facturizou, com sucesso, um inteiro de 512 bit. Consequentemente, para um nvel correcto de segurana, o conselho normal utilizar nmeros de 1024 bits. Por conseguinte, para pura encriptao, os algoritmos de chave secreta so preferidos quando possvel utilizlos. Zimmermann trabalhou sob uma soluo hbrida interessante, implementada no PGP. Basicamente quando a Alice e o Bob querem comunicar com factores de integridade utilizando o algoritmo de chave secreta (o PGP usa o IDEA): A Alice e o Bob negoceiam uma chave utilizando um protocolo de troca de chaves. Os protocolos de troca de chaves utilizam chaves de encriptao pblica. Um dos mais famosos protocolos assenta no algoritmo de DiffieHellman's. Depois, comunicam utilizando o algoritmo IDEA. Quando a comunicao termina, a chave de negociao da sesso descartada. Tais sistemas usam ambas as chaves secretas e pblicas dos sistemas de encriptao. Normalmente, as pessoas consideram como sendo a parte mais insegura o protocolo de troca das chaves.

6/7

Bibliografia
Histria da Criptografia: S. Singh : Histoire des codes secrets. JeanClaude Latts, 1999. D. Kahn : The Codebreakers: the story of secret writing. MacMillan publishing, 1996. Para o AES : http://csrc.nist.gov/encryption/aes/rijndael/ http://www.esat.kuleuven.ac.be/rijmen/rijndael/ Criptografia em geral: Artifo de Anne Canteaut e Fran LvyditVhel : http://wwwrocq.inria.fr/canteaut/crypto_moderne.pdf B. Schneier : Applied Cryptography. John Wiley e Sons, 1996.

Webpages maintained by the LinuxFocus Editor team Pierre Loidreau "some rights reserved" see linuxfocus.org/license/ http://www.LinuxFocus.org
20050110, generated by lfparser_pdf version 2.51

Translation information: fr > : Pierre Loidreau <pierre.loidreau/at/ensta.fr> fr > en: Axelle Apvrille <axellec/at/netcourrier.com> en > pt: Bruno Sousa <bruno/at/linuxfocus.org>

7/7