O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

�.... very little do we have and inclose which we can call our own in the deep sense of the word. We all have to accept and learn, either from our predecessors or from our contemporaries. Even the greatest genius would not have achieved much if he had wished to extract everything from inside himself. But there are many good people, who do not understand this, and spend half their lives wondering in darkness with their dreams of originality. I have known artists who were proud of not having followed any teacher and of owing everything only to their own genius. Such fools!�

[Goethe, Conversations with Eckermann, 17.2.1832]

Introdu��o

����������� A historia da Criptografia � longa e fascinante. A criptografia � uma das profiss�es mais antigas, com cerca de 4000 anos. Os eg�pcios j� utilizavam a criptografia para cifrar alguns de seus hier�glifos, Os romanos utilizavam c�digos secretos para comunicar planos de batalha. O mais interessante � que a tecnologia de criptografia n�o mudou muito at� meados deste s�culo, existe tamb�m o barro de Phaistos (1600 a.c) que ainda n�o foi decifrado. Depois da Segunda Guerra Mundial, com a inven��o do computador, a �rea realmente floresceu incorporando complexos algoritmos matem�ticos. Durante a guerra, os ingleses ficaram conhecidos por seus esfor�os para decifra��o de c�digos. Na verdade, esse trabalho criptogr�fico formou a base para a ci�ncia da computa��o moderna.

A prolifera��o de computadores e sistemas de comunica��es nos anos 60 trouxe com isto uma demanda do setor privado para meios de proteger informa��es que circulam em forma digital e para promover os servi�os de seguran�a. Come�ando com o trabalho de Feistel a IBM em meados dos anos 70 e culminando em 1977 com a ado��o como um Padr�o de processamento de informa��o Federal norte-americano por codificar informa��o n�o classificada, DES (Data Encryption Standard), os Dados Padr�o de Encripta��o, � o mecanismo mais mais famoso cripta��o da hist�ria. Permanece os meios standards por afian�ar com�rcio eletr�nico para muitas institui��es financeiras ao redor do mundo. Themost desenvolvimento not�vel na hist�ria de cryptographycame em 1976whenDiffie e Hellman publicou Dire��es.

Com o aumento vertiginoso das redes de computadores e seu proporcional uso por organiza��es para viabilizar e controlar os seus neg�cios e principalmente a afirma��o cada vez mais da Internet, ao mesmo tempo se criou a suprema necessidade de proteger melhor as informa��es, pois no mercado competitivo, elas s�o muito valiosas, melhorando os mecanismos para implantar e proporcionar meios de seguran�a mais edific�veis e confi�veis.��

Uma forma de proteger e com isso evitar o acesso impr�prio �s informa��es sigilosas � por meio da codifica��o ou cifragem da informa��o, conhecida como criptografia, fazendo com que apenas as pessoas �s quais estas informa��es s�o destinadas, consigam compreend�-las. A criptografia fornece t�cnicas para codificar e decodificar dados, tais que os mesmos possam ser armazenados, transmitidos e recuperados sem sua altera��o ou exposi��o. Em outras palavras, t�cnicas de criptografia podem ser usadas como um meio efetivo de prote��o de informa��es suscet�veis a ataques, estejam elas armazenadas em um computador ou sendo transmitidas pela rede. Seu principal objetivo � prover uma comunica��o segura, garantindo servi�os b�sicos de autentica��o, privacidade e integridade dos dados.

A palavra criptografia tem origem grega (Gr. krypt�s, oculto + graph, r. de graphein, escrever, grafia) e define a arte ou ci�ncia de escrever em cifras ou em c�digos, utilizando um conjunto de t�cnicas que torna uma mensagem incompreens�vel, chamada comumente de texto cifrado, atrav�s de um processo chamado cifragem, permitindo que apenas o destinat�rio desejado consiga decodificar e ler a mensagem com clareza, no processo inverso, a decifragem.

Criptografia � a arte de escrever em cifra ou em c�digo, composto de t�cnicas que permitem tornar incompreens�vel, com observ�ncia e normas especiais consignadas numa cifra ou num c�digo, o texto e uma mensagem escrita com clareza. A defini��o mais clara para criptografia, em nosso tempo moderno, � o estudo de t�cnicas matem�ticas relacionado a aspectos de informa��o seguran�a como confid�ncia, integridade de dados, autentica��o de entidade, e origem de dados autentica��o.

Com o advento da inform�tica, com a sua alta velocidade de processamento, as fun��es de criptografia ficaram mais complexas.

Encripta��o e Desencripta��o

Dados que podem ser lidos e compreendidos sem qualquer medida especial � chamado Texto plano ou texto limpo. O m�todo de disfar�ar o texto de tal modo que se esconda a sua subst�ncia l�gica� chamada encripta��o. O resultado do texto quando o mesmo � cifrado � uma geringon�a ileg�vel chamado texto Encriptado ou texto cifrado. Usamos a encripta��o para assegurar o conte�do da informa��o. O processo de reverter o texto encriptadopara o texto normal � chamado decripta��o.

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

�There are two kinds of cryptography in this world: cryptography that will stop your kid sister from reading your files, and cryptography that will stop major governments from reading your files. This book is about the latter.�

--Bruce Schneier, Applied Cryptography: Protocols, Algorithms, and Source Code in C.

Exemplo:

Suponha que marcos S. e Suzana L. s�o dois agentes secretos que querem se comunicar usando um c�digo, pois suspeitam que seus telefones est�o grampeados e que suas cartas est�o sendo interceptadas. Em particular, Marcos quer mandar a seguinte mensagem para Suzana.

ENCONTRO AMANH�

Usando o esquema de substitui��o dado acima, Marcos envia a seguinte mensagem:

5��������� 14������� 3��������� 15������� 14������� 20������� 18������� 15������� 1��������� 13������� 1��������� 14������� 8

1��������� 14

(Onde o � foi substitu�do por AN). Um c�digo desse tipo pode ser quebrado sem muita dificuldade por uma s�rie de t�cnicas, incluindo a an�lise de freq��ncia de letras. Para dificultar a quebra do c�digo, os agentes procedem seguinte maneira: em primeiro lugar, ao aceitar a miss�o, eles escolheram uma matriz 3x3,

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

Marcos, ent�o, separa a mensagem em cinco vetores

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
(caso isso n�o fosse poss�vel, adicional letras extras).

Temos, ent�o, os vetores

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

Marcos, agora, usa a transforma��o linear

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
dada por
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
, de modo que a mensagem fica:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

Portanto, Marcos envia a mensagem

42������� 25������� 20������� 103����� 69������� 54������� 51������� 35������� 17������� 57������� 42������� 29������� 52

37������� 29

Suponha, agora, que Marcos recebe a seguinte mensagem de Suzana:

43������� 30������� 14������� 101����� 67������� 53������� 96������� 61������� 55������� 83������� 58������� 43������� 40

25������� 24������� 90������� 56������� 53

que ele quer decodificar com a matriz A dada acima. Para decodifica-la, Marcos divide a mensagem em seis vetores em

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

e resolvendo a equa��o

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

para

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
. Como A � invert�vel,

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

Analogamente,

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

Usando acorrespond�ncia entre letras e n�meros, Marcos recebeu a seguinte mensagem:

Planos Fotogr�ficos

Criptoan�lise

A Criptoan�lise, do grego: "krypt�s" (oculto) e "analyein" (desfazer), � a ci�ncia que abrange os princ�pios, m�todos e meios para se chegar a decripta��o de um criptograma, sem pr�vio conhecimento dos c�digos ou cifras empregados na produ��o do texto cifrado. A Criptografia e a Criptoan�lise, comp�em a Criptologia ("krypt�s" + "l�gos" � palavra).

Existem v�rias t�cnicas de criptoan�lise que podem ser usadas para quebrar sistemas criptografados. Uma delas, o ataque da for�a bruta (busca exaustiva da chave), consiste na m�dia do teste da metade de todas as chaves poss�veis de serem usadas.

Outra t�cnica � a criptoan�lise diferencial uma potente t�cnica de criptoan�lise. A id�ia b�sica consiste em estipular textos planos e criptograf�-los. Ela analisa o efeito de diferen�as particulares em pares de textos planos com as diferen�as de pares de textos cifrados resultantes. Estas diferen�as usam probabilidades para �s poss�veis chaves, de forma a localizar a chave mais prov�vel.

As mensagens que leg�veis s�o chamadas de texto plano ou limpo.E as ileg�veis, s�o chamadas de texto cifrado.

Encriptar significa que a mensagem leg�vel (texto plano) ser� transformada em uma mensagem ileg�vel (texto cifrado). A fun��o de decriptar � o processo inverso da encripta��o, a partir de um texto cifrado, obt�m-se o texto plano. Para a criptografia de textos planos, utiliza-se uma chave(senha), que junto com o algoritmo de criptografia, ir� codificar e decodificar os textos. A mesma chave sim�trica serve para criptografar e decriptografar.

A criptografia utiliza conceitos matem�ticos para a constru��o de seus algoritmos criptogr�ficos. Assim, na figura acima est�o representados os s�mbolos matem�ticos que s�o adotados.

Um texto cifrado fica representado da seguinte maneira:

Y = EK(X), ou seja um texto plano (X) � encriptado por um algoritmo que cont�m uma chave (senha) K;

X = DK(Y), para a obten��o do texto plano inicial, deve-se submeter o texto cifrado (Y) ao mesmo algoritmo e a mesma chave (K).

Onde:

�X - Texto Plano

�Y - Texto Cifrado

�E - Encriptar

�D - Decriptar

�K - Chave

Y = EK(X)

X = DK(Y)

Um sistema para afian�ar um m�nimo de seguran�a, ele deve fornecer os seguintes servi�os:

Confidencialidade ou sigilo: garantia de que somente as pessoas ou organiza��es envolvidas na comunica��o possam ler e utilizar as informa��es transmitidas de forma eletr�nica pela rede;

Integridade: garantia de que o conte�do de uma mensagem ou resultado de uma consulta n�o ser� alterado durante seu tr�fego;

Autentica��o: garantia de identifica��o das pessoas ou organiza��es envolvidas na comunica��o;

N�o-Rep�dio (N�o recusa): garantia que o emissor de uma mensagem ou a pessoa que executou determinada transa��o de forma eletr�nica, n�o poder�, posteriormente negar sua autoria.

M�todos

O m�todo de Esteganografia consiste na exist�ncia de uma mensagem escondida dentro de outra mensagem. Por exemplo, uma seq��ncia de letras de cada palavra pode formar a palavra de uma mensagem escondida.

Algumas formas de esteganografia:

Marca��o de caracteres: utiliza��o de uma tinta com composto diferente que ao coloca-la defronte a luz estes caracteres ficam de forma diferente, compondo a mensagem secreta.

Tinta invis�vel: pode-se utilizar uma tinta invis�vel para a escrita da mensagem em cima de outra pr�-existente, aonde, somente com produtos qu�micos poder�amos obter o conte�do.

Outra forma seria a utiliza��o de furos no papel em letras selecionadas, habitualmente vis�vel somente quando colocada defronte uma l�mpada.

����������� A moderna Esteganografia utiliza o uso de bits n�o significativos que s�o concatenados a mensagem original e faz uso tamb�m de �rea n�o usada.

O princ�pio de Kerckhofss consiste em retirar o segredo do algoritmo e passar para uma chave. Essa chave �programa� � o algoritmo. � ela de seleciona qual das poss�veis transforma��es ser� usada.

Sistemas Criptogr�ficos

Criptossistemas podem ser tanto quando assim�tricos. Num criptossistema sim�trico a encripta��o e a decripta��o s�o feitas com uma �nica chave, ou seja, tanto o remetente quanto o destinat�rio usam a mesma chave. Num sistema assim�trico, ao contr�rio, duas chaves s�o empregadas. Em criptossistemas de uma chave, como por exemplo o DES (Data Encription Standart), ocorre o chamado "problema de distribui��o de chaves". A chave tem de ser enviada para todos os usuarios autorizados antes que mensagens possam ser trocadas. Isso resulta num atraso de tempo e possibilita que a chave chegue a pessoas n�o autorizadas.

Criptossistemas assim�tricos, ou de dua chaves, contormam o problema da distribui��o de chaves atrav�s do uso de chaves p�blicas. A criptografia de chaves p�blicas foi inventada em 1976 por Whitfield diffie e Martin Hellman a fim de resolver o problema da distribui��o de chaves. No novo sistema, cada pessoa tem um par de chaves chamadas : chave p�blica e chave privada. A chave p�blica � divulgada enquanto que a chave privada e deixada em segredo. Para mandar uma mensagem privada, o transmissor encripta a mensagem usando a chave p�blicado destinat�rio pretendido.

Segue um exemplo de como o sistema funciona.

Quando Ana quer mandar uma mensagem para Carlos, ela procura a chave p�blica dele em um diret�rio, a usa para encriptar a mensagem, e a envia. Carlos ent�o usa a sua chave privada para decriptar a mensagem e l�-la. Este sistema tamb�m permite a autentica��o digital de mensagens , ou seja � poss�vel prover certeza ao receptor sobre a identidade do transmissor e sobre a integridade da mensagem. Quando uma mensagem � encriptada com uma chave privada, ao inv�s da chave p�blica; o resultado � uma assinatura digital, ou seja, uma mensagem que s� uma pessoa poderia produzir, mas que todos possam verificar.  Normalmente autentica��o se refere ao uso de assinaturas digitais : a assinatura � um conjunto inforj�vel de dados assegurando o nome do autor ou funcionando como uma assinatura de documentos , ou seja, que determinada pessoa concordou com o que estava escrito. Isso tamb�m 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 p�blica � o RSA (Rivest-Shamir-Adelman) . Sua maior desvantagem � a sua capacidade de canal limitada, ou seja, o n�mero de bits de mensagem que ele pode transmitir por segundo. Enquanto um chip que implementa o algor�tmo de uma chave DES pode processar informa��o em alguns milh�es de bits por segundo, um chip RSA consegue apenas na ordem de mil bits por segundo.

Ent�o vejamos , sistemas de uma chave s�o bem mais r�pidos, e sistemas de duas chaves s�o bem mais seguros. Uma poss�vel solu��o � combinar as duas, fornecendo assim um misto de velocidade e seguran�a.    Simplesmente usa-se a encripta��o de uma chave para encriptar a mensagem, e a chave secreta � transmitida usando a chave p�blica do destinat�rio. � importante n�o confundir chave privada com chave secreta.A primeira � mantida em segredo, enquanto que a segunda � enviada para as pessoas que efetivar�o a comunica��o

Criptografia Convencional
T�cnicas Cl�ssicas

O elemento fundamental da criptografia s�o asChaves sim�tricas para criptografar textos, sendo elas utilizadas para fornecer seguran�a {Burwick99}.

A pr�tica de uma chave (segredo) tem como utiliza��o a cripta��oe adescripta��o, sendo que ela mesma deve ser de poderio tanto do emissor quanto do receptor da mesma. Em cifradores sim�tricos, o algoritmo de criptografia e decriptografia s�o os mesmos, muda-se apenas a forma como s�o utilizadas as chaves.

Na corrente t�cnica existe duas chaves, sendo que s�o as mesmas, que servem para criptografar e decriptografar o texto, que, por conseguinte, as mesmas devem ser de conhecimento tanto do emissor quanto de receptor na qual a mensagem se direciona. Os cifradores sim�tricos possuem o seu algoritmo de criptografia e decriptografia iguais, invertendo somente como as mesmas s�o usadas em fun��o da chave.

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
 

Criptografia forte

PGP tamb�m � sobre o tipo posterior de criptografia.

Criptografia pode ser forte ou fraca, como explicado acima. A for�a da Criptografia � medida pelo tempo e recursos exigidos pararecuperar o texto. O resultado de criptografia forte � um texto encriptadode dif�cil decifra��o, sem posse da ferramenta de decodifica��o apropriada, � quase imposs�vel a desencripta��o. Dado todo o poder da computa��o que temoshoje em dia, e se tiv�ssemos a nossa disponibilidade um bilh�o de computadores para fazeremum bilh�o de checagens por segundo ainda n�o � poss�veis decifrar o resultado da criptografia forte antes do fim do universo. A pessoa pensaria, ent�o, aquela criptografia forte se atrasaria bastante bem contra at� mesmo um extremamente determinado cryptanalyst. Quem realmente � dizer? N�o a pessoa provou que o encryption mais forte alcan��vel hoje se atrasar� debaixo do poder de computa��o de amanh�. Por�m, a criptografia forte empregado por PGP � o melhor dispon�vel hoje. Vigil�ncia e conservantismo v�o por�m, proteja voc� melhora que reivindica��es de impenetrabilidade.

Como criptografia trabalha?

Um algoritmo de criptografia, � uma fun��o matem�tica usada dentro do processo de encripta��o e desencripta��o. Um algoritmo de criptografia trabalha dentro de combina��es com as palavras e da chave em conjunto com um n�mero. O mesmo texto codifica o texto encriptado de diferente modos com chaves diferentes. A seguran�a dos dados codificados s�o completamente dependente de duas coisas: a for�a do algoritmo de criptografia e o segredo da chave. Um algoritmo de criptografia, junto a todas as poss�veis chaves e todos os protocolos que fa�a trabalhar esta inclu�do em um sistema de criptografia. PGP � um exemplo de criptografia.

���������� A mensagem enviada � encriptada por Alice, com uma chave K que � de seu conhecimento. A mensagem � enviada para Bob atrav�s de algum meio eletr�nico. Por�m para Bob conseguir decifrar esta mensagem, ele deve ter a mesma chave K utilizada por Alice. Esta chave K � ent�o enviada por um canal seguro para Bob. Com este modelo pode-se garantir a confidencialidade da mensagem, porque somente Alice e Bob t�m conhecimento da chave K.

����������� A criptoan�lise tentar� descobrir qual foi � chave utilizada para cifrar a mensagem e qual � a mensagem cifrada.

O texto cifrado n�o sofre altera��o quanto ao seu tamanho. � importante salientar tamb�m que o texto cifrado n�o cont�m qualquer parte da chave.

Uma encripta��o � dita computacionalmente segura se atende estes dois crit�rios:

  • O custo para quebrar o cifrador excede ao valor da informa��o encriptada.
  • O tempo requerido para quebrar o cifrador excede o tempo de vida �til da informa��o.
Criptografia Convencional - T�cnicas Modernas

Os principais modos de criptografia convencional moderna s�o:

  • DES Simplificado
  • Princ�pios dos Cifradores de BlocoDES
  • Criptan�lise Diferencial e Linear
  • Projeto dos Cifradores de Bloco
  • Modos de Opera��o
  • Fun��es Bent
As t�cnicas de Encripta��o mais usadas

DES ("Data Encryption Standard")

O DES � um mecanismo de cifragem tradicional ("sim�trico) desenvolvido nos anos setenta, utiliza uma chave de 56 bits que � aplicada a blocos de dados com 64 bits, o objectivo destes algoritmos � que seja muito dificil calcular a chave K, mesmo conhecendo o algoritmo DES, uma mensagem cifrada C e uma mensagem original M: C = DES(K,M)

O algoritmo usado � algo complexo:

  • A mensagem de 64 bits � dividida em duas partes de 32 bits cada.
  • A chave de 56 bits � usada para gerar 16 chaves de 18 bits cada.

� aplicado sucessivamente 16 vezes um algorimo, usando as chaves geradas.

Devido as suas caracteristicas pequenas altera��es na mensagem original provocam grandes altera��es na mensagem cifrada, isto dificulta as tentativas de conhecer a chave, mesmo que se possa cifrar aquilo que se pretende.

Embora seja dificil de implementar em "software" de uma forma efici�nte, foi desenvolvido "hardware" capaz de implementar este algoritmo de forma efici�nte.

A aplica��o de "for�a bruta" para descobrir a chave, obriga a aplicar o algoritmo um m�ximo de 256 vezes, ou seja cerca de 72 000 000 000 000 000 vezes.

Este n�mero n�o � contudo demasiado tranquilizante, este algoritmo � implementado de forma mais eficiente em "hardware", para "quebrar" uma chave DES usa-se um "chip" apropriado que pode ser montado de forma a trabalhar em paralelo com outros semelhantes. O custo depende do tempo em que se pretende quebrar a chave, em 1993 por 1 milh�o de dolares podia-se montar uma m�quina capaz de descobrir chaves DES em 3 horas e meia. O documento "Efficient DES key search" cont�m planos detalhados para a implementa��o desse tipo de m�quina.

Para fortalecer o DES seria necess�rio aumentar o n�mero de bits da chave, contudo o algoritmo exige um valor fixo de 56 bits, a aplica��o sucessiva de duas chaves n�o � solu��o pois apenas duplica o n�mero de aplica��es do algoritmo necess�rias para quebrar a chave (t�cnica "meet-in-the middle"), corresponde por isso a aumentar apenas um bit.

O triplo DES utiliza duas chaves, mas o algoritmo � aplicado tr�s vezes segundo a seguinte equa��o:

C = DES( K1 , DES-1( K2 , DES( K1 , M ) ) ), onde DES-1( representa o algoritmo inverso (decifragem).

O triplo DES corresponde � utili��o de uma chave de 90 bits, tem ainda a vantagem de poder ser usado para DES simples, basta que K1=K2.

Al�m da "for�a bruta", existem outras abordagem para descobrir chaves:

Cripto-an�lise diferencial

Para usar esta t�cnica � necess�rio que se possa cifrar as mensagens que se pretende, em fun��o de altera��es nessas mensagens e resultados na mensagem cifrada, no caso do DES simples � possivel reduzir as chaves a 247.

Cripto-an�lise linear

Tenta definir a chave por aproxima��o linear em fun��o da informa��o recolhida de pares (M,C), no caso do DES simples reduz o n�mero de chaves a 243.

RC5

O RC5 � uma t�cnica mais recente e mais flexivel, tal como o DES � uma t�cnica de cripta��o sim�trica (a mesma chave � usada para cifrar e para decifrar), tamb�m � uma tecnica de blocos, mas ao contr�rio do DES n�o est� limitada a blocos de dimens�o fixa, igualmente a chave n�o tem uma dimens�o fixa.

Tal como o DES utiliza a aplica��o sucessiva de um algoritmo, contudo o n�mero de aplica��es n�o � fixo, deste modo pode obter-se um maior grau de seguran�a usando um maior n�mero de aplica��es.

O RC5 � como se pode deduzir muito flexivel, estando sujeito a uma serie de par�metros que devem ser ajustados �s necessidades particulares de cada caso.

A mensagem original � fornecida ao algoritmo sob a forma de dois blocos de w bits, correspondendo ao alinhamento mais conveniente para o sistema em causa, os valores tipicos para w s�o: 16, 32 e 64. A mensagem cifrada possui forma id�ntica.

Outro par�metro importante � o n�mero de aplica��es do algoritmo (r), pode variar de 1 a 255. Para aplicar r vezes o algoritmo, vai ser gerada apartir da chave uma tabela com t = 2.(r+1) blocos de w bits.

A chave � especificada pelos par�metros b e k, b especifica o n�mero de bytes (octetos) que constitui a chave e k � a chave propriamente dita.

� habitual usar a nota��o RC5-w/r/b para especificar uma implementa��o particular RC5. Podemos dizer que o RC5-32/16/7 � equivalente ao DES.

O documento "The RC5 Encryption Algorithm" cont�m grandes detalhes sobre o RC5, incluido uma implementa��o em C.

Aplica��o das t�cnicas de cifragem em bloco

As t�cnicas de cifragem em bloco (Ex: DES e RC5) podem ser aplicadas de diversos modos a mensagens de comprimento diferente do tamanho de bloco.

A t�cnica mais simples � conhecida por ECB ("Electronic Code Book"), consiste em dividir a mensagem em blocos de tamanho adequado, cifrar os blocos em separado e concatenar os blocos cifrados na mesma ordem. O grande inconveniente desta t�cnica � que blocos de mensagem original id�nticos v�o produzir blocos cifrados id�nticos, isso pode n�o ser desej�vel.

A t�cnica CBC ("Cipher Block Chaining") evita este inconveniente, realiza a opera��o xor entre o bloco a cifrar Mi e o bloco anteriormente cifrado Ci, s� depois aplica o algoritmo de cifragem:

Ci = cifragem( chave, Mi xor C(i-1))

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

Na decifragem obt�m-se Mi xor C(i-1), como xor-1 = xor, utiliza-se:

Mi = decifragem( chave, Ci) xor C(i-1)

Como para o primeiro bloco n�o existe mensagem anterior, utiliza-se um bloco aleat�rio conhecido por IV ("Initialization Vector").

Esta t�cnica � pouco favor�vel sob o ponto de vista da propaga��o de erros, uma vez que um erro na transmiss�o de um bloco cifrado Ci vai inutilizar tanto o bloco Mi como o seguinte M(i+1).

Nas t�cnicas CFB ("Cipher FeedBack") e OFB ("Output FeedBack") a mensagem n�o � directamente cifrada, existe um vector de inicial (IV) ao qual � aplicado o algoritmo de cifragem, aplica-se ent�o a opera��o xor entre o vector cifrado e a mensagem.

A opera��o xor entre o vector cifrado e a mensagem � realizada do seguinte modo:

Pegam-se nos n bits da esquerda do vector cifrado e realiza-se a opera��o xor com os n seguintes da mensagem.

Realiza-se o "shift" para a esquerda de n bits do vector cifrado.

Injectam-se n bits no vector original, realizando o "shift" para a esquerda.

No caso do CFB utilizam-se os n bits resultantes da opera��o xor.

No caso do OFB utilizam-se os n bits retirados do vector cifrado.

Quando esgotam os bits do vector cifrado aplica-se novamente o algoritmo de cifragem ao vector original.

As figuras seguintes ilustram as duas t�cnicas: CFB (� esquerda) e OFB (� direita):

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

Os valores mais comuns para n s�o 1, 8 ou 64. Devido ao seu funcionamento a tecnica OFB, tamb�m conhecida por OFM ("Output Feedback Mode") apenas produz um bloco de mensagem errado quando ocorre um erro na transmiss�o de um bloco cifrado.

Quando o comprimento da mensagem n�o � multiplo do tamanho do bloco � necess�rio recorrer a t�cnicas de enchimento ("padding"), uma t�cnica habitual � adicionar um bit 1 seguido dos bits 0 necess�rios.

Distribui��o de chaves

O DES e o RC5 s�o cifragens sim�tricas: b�sicamente a decifragem � o inverso da cifragem, usando a mesma chave que por raz�es obvias deve ser secreta, isto � apenas do conhecimento da entidade de origem e entidade de destino.

O primeiro problema levantado pela criptografia de chave secreta � a distribui��o de chaves, poderiam ser enviadas por um sistema paralelo como correio ou "fax", mas o mais conveniente seria usar a rede de comunica��o, para tal a chave deveria ser cifrada usando uma chave anterior.

Para estabelecer uma comunica��o segura entre uma aplica��o cliente e uma aplica��o servidora, o ideal seria que o servidor e o cliente trocassem entre s� as chaves na altura do estabelecimento da conex�o.

Para se conseguir uma situa��o deste tipo existem duas solu��es:

Manter a criptografia de chave secreta e usar uma t�cnica especial para enviar a chave, por exemplo "puzzles".

Utilizar criptografia de chave p�blica que veio alterar radicalmente o modo de ver a criptografia.

"Puzzles"

Para fornecer a chave secreta � enviado um conjunto de "puzzles", geralmente na ordem das dezenas de milhar. Tomando o exemplo DES, cada "puzzle" � constituido por 120 bits zero, seguido do n�mero do "puzzle" com 16 bits e finalmente uma chave, DES de 56 bits. Todos os "puzzles" s�o cifrados com chaves DES em que os �ltimos 22 bits s�o zero.

O cliente escolhe um "puzzle" � sorte e quebra a cifra usando for�a bruta, tem de tentar "apenas" 234 chaves, quando obt�m 120 zeros no inicio sabe que consegui decifrar o "puzzle" e portanto possiu j� a chave DES que escolheu (�ltimos 56 bits do "puzzle" decifrado). Tem agora de indicar qual o "puzzle" que escolheu, envia ent�o uma mensagem com o n�mero do "puzzle" cifrado com a chave DES escolhida, destinat�rio (ex.:servidor) conhece as chaves que iam nos "puzzles" e o respectivo n�mero de "puzzle" e pode facilmente descobrir qual foi a chave escolhida.

O tempo m�dio que um intruso necessita para descobrir a chave situa-se na ordem dos anos e pode ser ajustado por varia��o do n�mero de "puzzles" em jogo.

Criptografia de chave p�blica

A criptografia de chave p�blica utiliza algoritmos de cifragem e decifragem que n�o est�o diretamente relacionados, passam a existir duas chaves, uma de cifragem e outra de decifragem.

Tipicamente a chave de cifragem � p�blica (� divulgada a todos os utilizadores), a chave de decifragem � secreta. Quando uma entidade A pretende enviar � entidade B uma mensagem cifra-a com a chave p�blica de B antes do envio. Ninguem, nem sequer a entidade A � capaz de decifrar, apenas a entidade B que possui a chave secreta adequada.

Al�m de resolver definitivamente o problema da distribui��o de chaves, a criptografia de chave p�blica facilita significativamente a implementa��o de mecanismos de autentica��o de mensagens e assinatura digital.

Embora tenham sido propostos outros algoritmos, actualmente o RSA � o mais s�lido, o algoritmo "Merkle-Hellman Knapsacks" demorou quatro anos a ser quebrado por Adi Shamir, uma segunda vers�o, supostamente mais s�lida, demorou dois anos a ser quebrada.

RSA

Este algoritmo � devido a Ron Rivest, Adi Shamir e Len Adleman (RSA), baseina-se no seguinte: � simples arranjar dois n�meros primos grandes, mas � muito complicado (moroso) factorizar o seu produto. O RSA tem aguentado todas as investidas dos cripto-analistas, contudo temos que atender ao facto de ser um problema matem�tico, existe sempre o risco de descoberta de uma t�cnica para resolver o problema de forma efici�nte.

Gera��o das chaves:

Escolhem-se dois n�mero primos grandes a e b.

Calcula-se n = a x b.

Calcula-se �(n) = (a-1) x (b-1).

Escolhe-se um n�mero pequeno p que seja primo relativo de �(n) e < �(n), calcula-se s tal que (p x s) mod �(n) = 1, onde mod � o operador "resto da divis�o inteira" (aritm�tica modulo �(n)).

(Dois n�meros s�o primos relativos se o maior divisor comum � 1)

O par (n,p) constitui a chave p�blica, d � a chave secreta.

Aplica��o:

Cifragem: C = Mp mod n

Decifragem: M = Cs mod n

, onde M e C s�o respectivamente a mensagem original e mensagem cifrada, ambas com valores possiveis de zero a n-1.

Uma propriedade interessante do RSA � a possibilidade de invers�o das chaves, pode-se cifrar uma mensagem com a chave s, para decifrar ser� agora necess�ria a chave p�blica: utiliz�vel para autentica��o e assinatura digital.

Para efeitos de exemplifica��o tomem-se os n�meros primos a=7 e b=17:
n = a x b = 119
�(n) = (a-1) x (b-1) = 96
como primo relativo de �(n) podemos escolher p=5
ent�o para obter p x s mod 96 = 1, podemos usar s = 77
pois 5 x 77 = 385, 385 mod 96 = 1
A chave p�blica � (5;119) e a chave secreta � 77

Exemplos de aplica��o:
Para evitar perdas de dados torna-se necess�rio aplicar a seguinte propriedade da aritm�tica modular:

(a x b) mod n = ((a mod n) x (b mod n)) mod n

Para cifrar o n�mero 2 com a chave p�blica temos C = 25 mod 119 = 32 mod 119 = 32
Para decifrar utiliza-se M = 3277 mod 119
, para usar uma calculadora, sem perder dados podemos usar 11 parcelas:
((327 mod 119) x ... x (327 mod 119)) mod 119
, obtemos ent�o 2511 mod 119, podemos agora aplicar ((511 mod 119) x (511 mod 119)) mod 119 , obtemos agora 452 mod 119 = 2
Tamb�m se pode cifrar o n�mero 2 com a chave secreta temos C = 277 mod 119
, para usar uma calculadora, sem perder dados podemos usar 11 parcelas:
((27 mod 119) x ... x (27 mod 119)) mod 119 = 911 mod 119 = 32
Para decifrar utiliza-se M = 325 mod 119 = 2

Para cifrar o n�mero 3 com a chave p�blica temos C = 35 mod 119 = 243 mod 119 = 5
Para decifrar utiliza-se M = 577 mod 119
, para usar uma calculadora, sem perder dados podemos usar 7 parcelas:
((511 mod 119) x ... x (511 mod 119)) mod 119
, obtemos ent�o 457 mod 119 = 3

Como se pode verificar as opera��es a realizar na decifragem n�o s�o simples, especialemente se atendermos a que os n�meros a e b devem ser grandes.

Para os valores 0 e 1 a messagem e o resultado da cifragem coincidem, contudo isto n�o � muito grave, os valores usados para n s�o muito elevados (na ordem de 10200), o tamanho mais comum para as mensagens a cifrar (M) � de 512 bits (que representa n�meros at� mais de 10154), para este n�mero de bits n�o s�o vulgares os valores 0 e 1, de qualquer modo isto pode ser resolvido pela adi��o de duas unidades a M antes de entrar no algoritmo de cifragem e subtra��o de duas unidades depois de sair do algoritmo de decifragem.

Gerar chaves RSA n�o � uma opera��o simples, o primeiro problema � arranjar dois n�meros primos a e b com uma ordem de grandeza de 10100, usar os algoritmos tradicionais de gera��o de n�meros primos � impossivel, a solu��o � usar testes eliminat�rios, estes testes permitem saber se um n�mero n�o � primo, ou qual a probabilidade de ser primo, se um dado n�mero depois de testado intensivamente n�o � eliminado ser� adoptado. A segunda quest�o prende-se com a determina��o de um primo relativo de �(n), p ou s e de seguida � necess�rio determinar outro n�mero para verificar a rela��o (p x s) mod �(n) = 1.

O algoritmo RSA serve de base a muitos sistemas de seguran�a actuais, tais como o PGP ("Pretty Good Privacy").

Sob o ponto de vista de cripto-an�lise e devido ao n�mero de bits das chaves a aplica��o de for�a bruta (tentar todas as chaves secretas poss�veis) est� excluida. A abordagem � tentar obter os dois factores primos de n. Contudo tal � extremamente complexo para a ordem de grandeza usada para n, o tempo necess�rio cresce exponencialmente com o valor de n.

Distribui��o de chaves p�blicas

Embora a criptografia de chave p�blica resolva o problema da distribui��o de chaves existe ainda a quest�o do modo como as chaves p�blicas ser�o obtidas por quem delas necessita.

As chaves p�blicas destinam-se a ser divulgadas, mas esta divulga��o deve ser realizada de tal modo que n�o possa ser forjada por terceiros, as consequ�ncias seriam obvias.

O correio electr�nico ou sistemas de news n�o s�o de todo adequados, uma melhor solu��o ser� a sua coloca��o na p�gina WWW pessoal.

Uma op��o mais segura � definir uma autoridade de chaves p�blicas, quando A pretende enviar uma mensagem a B realiza as seguintes opera��es: contacta a autoridade C enviando-lhe um pedido com etiqueta temporal C responde enviando uma mensagem cifrada com a sua chave secreta (assim A sabe que a mensagem veio de C), onde consta chave p�blica de B e a mensagem original. Quando B recebe a primeira mensagem de A ter� de realizar o mesmo procedimento para obter a chave de B e lhe poder responder.

Apesar de mais seguro a existencia de autoridades de chave p�blica coloca alguns problemas em termos de quantidade de comunica��es necess�rias, uma alternativa � a emiss�o de "certificados de chave p�blica". Cada entidade contacta a autoridade de chave p�blica que lhe fornece um certificado contendo: uma etiqueta temporal; a identifica��o da entidade; a chave p�blica da entidade. O certificado encontra-se cifrado com a chave secreta da autoridade, este facto atesta a sua origem. As diversas entidades podem agora trocar directamente entre si estes certificados, o facto de estarem cifrados pela autoridade atesta a sua veracidade.

Distribui��o de chaves secretas (criptografia sim�trica)

A criptografia de chave p�blica pode ser usada para obviar um dos grandes problemas da criptografia tradicional: a distribui��o de chaves secretas. A motiva��o � o facto de a criptografia tradicional ser substancialmente mais r�pida nas opera��es de cifragem e decifragem, proporcionando assim d�bitos de dados mais elevados.

A utiliza��o mais direta consistiria no seguinte:

  • A aplica��o A envia � aplica��o B uma mensagem com a chave publica da A.
  • A aplica��o B gera uma chave secreta convencional (sim�trica) e envia-a a A cifrada com a respectiva chave publica.
  • A aplica��o A decifra a mensagem com a sua chave secreta e obt�m a chave secreta convencional.

Este mecanismo pode ser contudo furado por uma entidade C com controlo sob as transmiss�es:

  • C captura a primeira mensagem de A e fica a conhecer a chave p�blica de A.
  • C envia para B uma c�pia da mensagem de A, mas substitui a chave p�blica pela sua.
  • C captura a resposta de B e fica a conhecer a chave secreta convencional.

para que A n�o note nada C envia a A a resposta que recebeu de B, cifrada com a chave publica de A.

  • C passa ent�o a actuar de modo passivo, limitando-se a decifrar a conversa��o entre A e B.

O problema pode ser resolvido se previamente for usado um mecanismo seguro de distribu���o de chaves publicas e forem tomadas diversas precau��es quanto a confidencialidade e autentica��o:

  • A envia a B uma mensagem com a sua identifica��o e um identificador de transa��o I1(n�mero que identifica a transa��o em curso), cifrada com a chave p�blica de B.
  • B enviar a A uma mensagem com I1 e um novo identificador I2, cifrada com a chave p�blica de A.
  • A tem a certeza que a mensagem veio de B devido � presen�a de I1, envia ent�o a B I2, cifrado com a chave p�blica de B.
  • A gera a chave secreta convencional, cifra-a com a sua chave secreta e de A, cifra-a com a chave p�blica de B, e envia-a a B.

B recebe a mensagem e decifra-a aplicando primeiro a sua chave secreta e de seguida a chave publica de A.

Algoritmos

Algoritmos de Chave �nica ou Secretas (Sim�tricos)

O exemplo mais difundido de cifrador computacional de chave �nica � o DES (Data Encryption Standard), desenvolvido pela IBM e adotado como padr�o nos EUA em 1977. O DES cifra blocos de 64 bits (8 caracteres) usando uma chave de 56 bits mais 8 bits de paridade (o que soma 64 bits).O algoritmo inicia realizando uma transposi��o inicial sobre os 64 bits da mensagem, seguida de 16 passos de ciftagem e conclui realizando uma transposi��o final, que � a inversa da transposi��o inicial.Para os 16 passos de ciftagem usam-se 16 sub-chaves, todas derivadas da chave original atrav�s de deslocamentos e transposi��es.

Um passo de cifragem do DES, tem dois objetivos b�sicos: a difus�o e a confus�o. A difus�o visa eliminar a redund�ncia existente na mensagem original, distribuindo-a pela mensagem cifrada. O prop�sito da confus�o � tomar a rela��o entre a mensagem e a chave t�o complexa quanto poss�vel.O DES pode ser quebrado pelo m�todo da for�a bruta, tentando-se todas as combina��es poss�veis de chave. Como a chave tem 56 bits, tem-se um total de 2 exp 56 chaves poss�veis.

Existem diversos algoritmos de cifragem de blocos de chave �nica, entre eles:

  • Triple-DES: O DES � aplicado 3 vezes, com sequ�ncias de cifragem e decifragem, combinando a utiliza��o de 2 chaves.
  • WLucifer: precursor do DES.
  • Madryga: trabalha com 8 bits, usando ou-exclusivo e deslocamento de bits.
  • NewDES: blocos de 64 bits e chave de 120 bits.
  • FEAL-N: baseado no DES, pode-se especificar o n�mero de passos da cifragem, fraco se utiliza-se menos de 8 passos.
  • LOKI: bloco e chave de 64 bits.
  • Khufu e Khafre: trabalham de forma semelhante ao DES, usam tabelas de substitui��o de 256 posi��es de 32 bits - contra as de 6 posi��es de 4 bits do DES - usam chaves de 512 bits e um n�mero de passos flex�veis, m�ltiplo de 8.
  • IDEA: blocos de 64 bits com chave de 128 bits.
  • MMB: blocos e chave de 128 bits.
  • Skipjack: chave de 80 bits e 32 passos de processamento.

Estes e outros algoritmos podem ser encontrados em :

ftp://ftp.funet.fi:/pub/crypt/cryptography/symmetric

Algor�tmos de Chave P�blica (Assim�tricos)

A chave de ciframento � p�blicada ou tornada acess�vel aos usu�rios, sem que haja quebra na seguran�a. Dessa forma cada usu�rio tem uma chave de ciframento, de conhecimento p�blico, e outra de deciframento, secreta. Se um usu�rio A deseja mandar uma mensagem para um usu�rio B, ele utiliza a chave de ciframento p�blica PB e envia a mensagem para B, este de posse de sua chave de deciframento secreta SB decodifica a mensagem.

Um exemplo desse sistema � o RSA, anacronico de seus autores Rivest, Shamir e Adleman. Sua seguranca baseia-se na intrabilidade da fatora��ao de produtos de dois primos. Um usu�rio B para determinar seu par (PB,SB), procede da seguinte maneira: escolhe ao acaso dois primos grandes "p" e "q" e computa o seu produto (n=p*q), e o n�mero f(n)=(p-1)*(q-1); B escolhe ao acaso um n�mero "c" relativamente primo com f(n) (ou seja, c e f(n) n�o possuem fatores em comum) e determinara "d" tal que c*d (m�dulo f(n)). Finalmente, o usu�rio B p�blica sua chave p�blica PB(c,n) e mant�m secretos p, q, f(n) e d. A chave secreta SB(d,n) deve ser mantida em sigilo completo.

Cifragem de Blocos

Um algoritmo que realiza cifragem sobre blocos pode operar de diversas maneiras distintas. As mais conhecidas s�o:

     1 - Modo do livro de C�digos (Electronic Code Book - ECB)

Cada bloco da mensagem original � individual e independentemente cifrado para produzir os blocos da mensagem cifrada. O bloco t�pico tem 64 bits, o que produz um livro de c�digos de 2 exp 64 entradas. E note-se que para cada chave poss�vel existe um livro de c�digos diferentes. A vantagem do m�todo � sua simplicidade e a independ�ncia entre os blocos. A desvantagem � que um criptoanalista pode come�ar a compilar um livro de c�digos, mesmo sem conhecer a chave.  Um problema mais grave � a chamada repeti��o de bloco, onde um atacante ativo pode alterar parte de uma mensagem criptografada sem saber a chave e nem mesmo o conte�do que foi modificado. Pode-se por exemplo interceptar uma transa��o banc�ria de transfer�ncia de saldo de qualquer pessoa, a seguir pode-se realizar uma transfer�ncia de saldo de uma conta para a conta do atacante e interceptar a mensagem, assim pode-se identificar os blocos correspondentes ao destinat�rio e dessa forma substituir em todas as mensagens o destinat�rio pelo atacante.

2 - Modo de Encadeamento de Blocos (Cipher Block Chaining - CBC)

CBC realimenta a cifragem do bloco atual com o resultado das cifragens dos blocos anteriores. A opera��o mais utilizada � o ou-exclusivo com o bloco anterior, dessa forma os blocos iguais serao normalmente cifrados de forma diferente, desde que no m�nimo um dos blocos anteriores seja diferente da mensagem. Entretanto 2 mensagens iguais serao mapeadas para os mesmos blocos. E duas mensagens com in�cio igual ser�o cifradas da mesma forma at� que ocorra a diferen�a. A maneira empregada para evitar esse problema � a utilizacao de um vetor de inicializa��ao distinto para cada mensagem.

3 - Modo da Realimenta��o de Cifra (Cipher Feedback - CFB)

Quando h� necessidade de enviar-se mensagens que possuem tamanho menor que um bloco usa-se o m�todo CFB, que trabalha com grupos (8 bits por exemplo - 1 caracter), neste caso a realimentacao � feita sobre o grupo, utilizando-se tamb�m o ou-exclusivo.

4 - Cifras de Substitui��o

Troca cada caracter ou grupo de caracteres por outro, de acordo com uma tabela de substitui��o.Pode-se quebrar este m�todo analisando-se a frequ�ncia de cada caracter no texto cifrado e comparando-se estas frequ�ncias com aquelas que normalmente aparecem em um determinado idioma.As vogais t�m maior frequ�ncia que as consoantes e alguns caracteres possuem frequ�ncia baix�ssima em rela��o aos demais.       Para amenizar a frequ�ncia de caracteres, podemos utilizar v�rias tabelas para a cifragem de um texto. Para uma substitui��o monoalfab�tica podemos ter 261 Tabelas de Substitui��o. Tem-se uma chave que diz qual das tabelas ser� usada para cada letra do texto original. Portanto, quanto maior a chave mais seguro � o m�todo. Entretanto, � suficiente descobrir o tamanho da chave k e analisar blocos de k caracteres no texto, verificando a frequ�ncia de repeti��o dos caracteres.

4.1 - Substitui��o Monoalfab�tica

Cada letra do texto original � trocada por outra de acordo com uma tabela e com sua posi��o no texto. A Substitui��o de C�sar � um exemplo de substitui��o monoalfab�tica que consiste em trocar cada letra por outra que est� 3 letras adiante na ordem alfab�tica. Ex: A=D. Pode-se usar outros valores ao inv�s de 3, o que constitui a chave de ciframento. Existem apenas 26 chaves, por isso � um m�todo que visa proteger textos com pequeno grau de sigilo.

4.2 - Substitui��o por Deslocamentos

A chave indica quantas posi��es deve-se avan�ar no alfabeto para substituir cada letra. Diferente da substitui��o de C�sar, as letras n�o s�o trocadas sempre por uma letra n posi��es a frente no alfabeto. Ex: Chave:020813, A primeira letra � trocada pela letra que est� 2 posi��es a frente no alfabeto, a segunda pela que est� 8 posi��es a frente, e assim por diante, repetindo a chave se necess�rio. (P AI=RIV).

4.3 - Substitui��o Monof�nica

Como a anterior, mas agora cada caracter pode ser mapeado para um ou v�rios caracteres na mensagem cifrada. Isso evita a linearidade da substitui��o.

4.4 - Substitui��o Polialfab�tica

A combina��o no uso de v�rias substitui��es monoalfab�ticas, usadas em rota��o de acordo com um crit�rio ou chave. Por exemplo, poderiam ser utilizadas 4 tabelas, usadas em altern�ncia a cada 4 caracteres. Substitui��o por Pol�gramos: utiliza grupo de caracteres ao inv�s de um caracter individual. Se fossem considerados trigramas, por exemplo, ABA poderia ser substitu�do por RTQ ou KXS,

5 - Cifras de Transposi��o

Troca-se a posi��o dos caracteres na mensagem. Por exemplo, pode-se rescrever o texto percorrendo-o por colunas. Ou ent�o definir o tamanho para um vetor de trocas e tamb�m uma ordem em que as trocas ser�o feitas. Pode-se usar chave para isso. Ex: em um vetor de tamanho 6 pode-se trocar o primeiro caracter pelo terceiro, o segundo pelo quinto e o quarto pelo sexto.Se a frequ�ncia dos caracteres for a mesma do idioma, temos substitui��o por transposi��o. Se for diferente, temos por substitui��o.Tamb�m � poss�vel combinar substitui��o e transposi��o, ou vice-versa.

6 - M�quinas de Cifragem

Um c�digo trabalha com grupos de caracteres de tamanho vari�vel, ao contr�rio da cifra. Cada palavra � substituida por outra. Quebrar um c�digo equivale a quebrar uma gigantesca substitui��o monoalfab�tica onde as unidades s�o as palavras e n�o os caracteres. Para isso deve-se usar a gram�tica da l�ngua e analisar a estrutura das frases.  M�quinas de cifragem baseiam-se em engrenagens que tem tamanhos diferentes e que giram a velocidades diferentes, obtendo um substitui��o polialfab�tica com chave de 26n, onde n � o n�mero de engrenagens.

Chaves secretas

Fun��es Unidirecionais

Podemos dizer que uma uma fun��o � unidirecional se for vi�vel comput�-la e computacionalmente invi�vel computar a sua inversa. Imagine que temos dois n�meros primos da ordem de 10 exp lOO: multiplic�-los � uma quest�o de segundos com a tecnologia atual, no entanto, dado o seu produto da ordem de 10 exp 200, o melhor algoritmo conhecido leva hoje l bilh�o de anos para fatorar o produto dado. Assim a fun��o produto de dois primos � unidirecional.  Uma funcao unidirecional � com segredo se existe uma informa��o que torna a computa��o da sua inversa poss�vel. A fun�ao produto de dois primos � unidirecional sem segredo.

H� casos em que uma fun��o unidirecional sem segredo � �til, um exemplo t�pico � na prote��o de senhas, apresenta as senhas cifradas por uma fun��o unidirecional sem segredo (e de invi�vel deciframento). Quando o usu�rio inicia sua sess�o, fornece a senha que � ent�o ciftada e comparada com a senha cifrada armazenada. Desta maneira, exige-se apenas a integridade do arquivo de senhas, n�o mais exigindo controle de acesso ao arquivo.

Ao selecionar uma fun��o unidirecional como fun��o de ciframento, o projetista deve supor que:

  • o algoritmo de ciframento � de dom�nio p�blico;
  • o espi�o, atrav�s de escuta, tem acesso ao texto cifrado.

Diz-se ent�o que a criptoan�lise � de texto cifrado conhecido.

Protocolo para a Distribui��o de Chaves Secretas

Quando se adota o m�todo de chaves secretas, � recomend�vel n�o utilizar por muito tempo a mesma. Quando ideal � a cada nova sess�o uma nova chave seja estabelecida. Mas como estabelecer a chave ao in�cio de cada sess�o? Como evitar as escutas? Cifrar a mensagem? Com que chave? Aqui apresenta-se uma solu��o para ilustrar o conceito de fun��es unidirecionais.  A fun��o a ser usada � a exponencial m�dulo de um n�mero, isto �, dados os inteiros 'a', 'x' e 'n', seja ~x)=aAx mod n (n>O, x>=O). Assim, ftx) � o resto da divis�o de aAx por n. O c�lculo desta fun��o � vi�vel. O procedimento abaixo mostra uma maneira de calcular esta fun��o :

Procedimento expomod (a,x,n,r:inteiro); {r possui o resultado da fun��o}

declare y, c :  tipo inteiro

inicio

r:= l;
y:=x;
c:=a mod n;
   

    enquanto y>O fa�a inicio

        se �mpar(y) ent�o

            r=r*c mod n;
            y=y div 2;            
            C=C 2 mod n;

       fim;

fim;

  Suponha que dois usu�rios A e B desejam manter uma conversa sigilosa atrav�s de chave secreta. As duas partes escolheram um n�mero primo grande , p' da ordem de 10A 100, e j� concordaram tamb�m em utilizar uma base , a'. Preferivelmente deve ser uma raiz primitiva de p, de modo que ffx)=aAx mod p � uma b~e��o sobre o conjunto 1..p-l dos naturais x tais que l<=x<=p-l. Para iniciar o estabelecimento da chave, A gera ao acaso um expoente x no intervalo 1..p- l e B gera outro, y Usando expomod, A calcula ffx) e B ffy). Ent�o A envia pela rede ffx) e B envia ffy). De posse de y e ffx), B calcula, usando

expomod :

K = [(ffx)]Ay mod p = (aAx mod p)Ay mod p = aA(xy) mod p = K.

Da mesma forma, A usa expomod e de posse de x e ffy) calcula:

k = [(ffy)]AX mod p = (aAy mod p)AX mod p = aA(xy) mod p - - K.

Assim A e B chegam a um n�mero comum K, que ser� a chave de ciframento para as mensagens.

Suponha um espi�o bem informado que obtenha os valores de a e p e, atrav�s de escuta, os valores de f(f(x)) e de f(f(y)). Para determinar K, ele precisa determinar a fun��o logaritmo m�dulo p, que � intrat�vel. Mesmo A n�o � capaz de determinar o valor de y e B o valor de x. A fun��o expomod � unidirecional sem segredo, permite a A e B trocarem uma chave secreta utilizando a pr�pria rede.

Assinatura Digital

Nos sistemas com chave p�blica, qualquer pessoa pode cifrar uma mensagem, mas somente o destinat�rio da mensagem pode decifr�-la. Invertendo-se o uso das chaves podemos ter uma que s� pode ser cifrada por uma pessoa e decifrada por qualquer um, obtendo-se assim umefeito de personaliza��o do documento, semelhante a uma assinatura. Um sistema desse tipo � denominado assinatura digital. Assim para personalizar uma mensagem, um determinado usu�rio A codifica uma mensagem utilizando sua chave secreta e a envia para o destinat�rio. Somente a chave p�blica de A permitir� a decodifica��o sua chave secreta e a envia para o da mensagem, portanto � a prova de que A enviou a mensagem. A mensagem assim pode ser decodificada por qualquer um que tenha a chave p�blica de A. Para garantir o sigilo deve-se a primeira utilizando a pr�pria chave secreta (para fazer a criptografia duas vezes a mensagem: a chave p�blica do destinat�rio, para que somente este possa ler a mensagem.

Propriedades

1 - a assinatura � aut�ntica: quando um usu�rio usa a chave p�blica de A para decifrar uma mensagem, ele confirma que foi A e somente A quem enviou a mensagem;

2 - a assinatura n�o pode ser forjada: somente A conhece sua chave secreta:

3 - o documento assinado n�o pode ser alterado : se houver qualquer altera��o no texto criptografado este n�o poder� ser restaurado com o uso da chave p�blica de A;

4 - a assinatura n�o � reutiliz�vel: a assinatura � uma fun��o do documento e n�o pode ser transferida para outro documento;

5 - a assinatura n�o pode ser repudiada: o usu�rio B n�o precisa de nenhuma ajuda de A para reconhecer sua assinatura e A n�o pode negar ter assinado o documento.

Certificado digital

Certificado de Identidade Digital, tamb�m conhecido como Certificado Digital, associa a identidade de um titular a um par de chaves eletr�nicas (uma p�blica e outra privada) que, usadas em conjunto, fomecem a comprova��o da identidade. � uma vers�o eletr�nica (digital) de algo parecido a uma C�dula de Identidade - serve como prova de identidade, reconhecida diante de qualquer situa��o onde seja necess�ria a comprova��o de identidade.  Certificado Digital pode ser usado em uma grande variedade de aplica��es, como com�rcio eletr�nico, groupware (Intranet's e Internet) e transfer�ncia eletr�nica de fundos (veja o exemplo recente do Banco Bradesco S.A. na implanta��o do seu servi�o Internet - o BradescoNet).  Dessa forma, um cliente que compre em um shopping virtual, utilizando um Servidor Seguro, solicitar� o Certificado de Identidade Digital deste Servidor para verificar, a identidade do vendedor e o conte�do do Certificado por ele apresentado. De forma inversa, o servidor poder� solicitar ao comprador seu Certificado de Identidade Digital, para identific�-lo com seguran�a e precis�o. Caso qualquer um dos dois apresente um Certificado de Identidade Digital adulterado, ele ser� avisado do fato, e a comunica��o com seguran�a n�o ser� estabelecida. O Certificado de Identidade Digital � emitido e assinado (chancelado) por uma Autoridade Certificadora Digital(Certificate Authority), como a Thawte (certificadora da ArtNET), que emite o Certificado. Para tanto, esta autoridade usa as mais avan�adas t�cnicas de criptografia dispon�veis e de padr�es internacionais (norma ISO X.509 para Certitncados Digitais), para a emiss�o e chancela digital dos Certificados de Identidade Digital.

Um certificado contem tr�s elementos:


1 - Informa��o de atributo

Esta � a informa��o sobre o objeto que � certificado. No caso de uma pessoa, isto pode incluir seu nome, nacionalidade e endere�o e-mail, sua organiza��o e o departamento desta organiza��o onde trabalha.

2 - Chave de informa��o p�blica

Esta � a chave p�blicada entidade certificada. O certificado atua para associar a chave p�blica � informa��o de atributo, descrita acima. A chave p�blica pode ser qualquer chave assim�trica, mas usualmente � uma chave RSA.

3 - Assinatura da Autoridade em Certifica��o (CA)

A CA assina os dois primeiros elementos e, ent�o, adiciona credibilidade ao certificado.Quem recebe o certificado verifica a assinatura e acreditar� na informa��o de atributo e chave p�blicaassociadas se acreditar na Autoridade em Certifica��o.

Selo Cronol�gico Digital

O Servico de Selo Cronol�gico Digital gera selos cronol�gicos que associam a data e a hora a um documento digital em uma forma de criptografia forte. O selo cronol�gico digital pode ser usado futuramente para provar que um documento eletr�nico existia na data alegada por seu selo cronol�gico.

Por exemplo, um f�sico que tenha uma id�ia brilhante pode descrev�-la usando um processador de textos e selar este documento com o selo cronol�gico digital.O selo cronol�gico e o documento, juntos, podem mais tarde comprovar que este cientista � o merecedor do Pr�mio Nobel, mesmo que um rival publique essa id�ia primeiro.

Exemplo de uso do sistema: suponha que Paulo assine um documento e queira sel�-lo cronologicamente. Ele calcula o resumo da mensagem usando uma fun��o de hashing seguro e, ent�o, envia este resumo (n�o o documento) para o DTS, que enviar� de volta um seio cronol�gico digital consistindo do resumo da mensagem, da data e da hora em que foi recebida pelo DTS e da assinatura do DTS. Como o resumo da mensagem n�o revela qualquer informa��o a respeito do conte�do do documento, o DTS n�o tem condi��es de saber o conte�do do documento que recebeu o selo cronol�gico digital. Mais tarde, Paulo pode apresentar o documento e o selo cronol�gico, juntos, para provar a data em que este foi escrito. Aquele que vai comprovar a autenticidade do documento calcula o resumo da mensagem, verifica se as mensagens calculada e apresentada s�o iguais, e observa ent�o a assinatura do DTS no selo cronol�gico.  Para ser confi�vel, o selo cronol�gico n�o pode ser falsific�vel. Considere os requisitos para um DTS como descrito a seguir.

O DTS deve ser propriet�rio de uma chave longa (1.024 bits), se este desejar que os selos cronol�gicos sejam seguros por muitas d�cadas.  A chave privativa do DTS deve ser armazenada em um local de m�xima seguran�a, como, por exemplo, um cofre inviol�vel em um local seguro. A data e a hora v�m de um rel�gio que n�o possa ser alterado, (NIST) Deve ser imposs�vel criar selos cronol�gicos sem usar um mecanismo que s� aceite este rel�gio.

O uso do DTS parece ser extremamente importante, se n�o essencial, para manter a validade de documentos atrav�s dos anos. Suponha um contrato de leasing de vinte anos entre um propriet�rio de terras e um arrendat�rio. As chaves p�blicas usadas para assinar o contrato expiram ap�s um ano. Solu��es, como reafirmar as chaves ou reassinar o contrato a cada ano, com novas chaves, requerem a coopera��o de ambas as partes durante v�rios anos enquanto durar o contrato. Se uma das partes se torna insatisfeita com o contrato, ela pode recusar-se a cooperar. A solu��o � registrar o contrato com o DTS na data da primeira assinatura deste. Ambas as partes recebem ent�o uma c�pia do selo cronol�gico, que pode ser usada anos mais tarde para comprovar a autenticidade do contrato original.

No futuro, o prov�vel � que o DTS ser� usado para tudo, desde a assinatura de contratos a longo prazo at� di�rios pessoais e cartas. Hoje, se um historiador descobrir algum manuscrito e atribu�-lo a um escritor famoso (j� falecido), sua autenticidade poder� ser comprovada por meios f�sicos. Mas, se um achado semelhante ocorrer adqui a 100 anos, provavelmente ser� em arquivos de computador (disquetes ou fitas). Talvez a �nica forma de comprovar sua autenticidade seja atrav�s do selo cronol�gico digital.

Site seguro

Um site seguro � constitu�do por programas de computador que s�o executados em um servidor seguro para atender solicita��es feitas pelos usu�rios finais, atrav�s de seus pr�prios programas (clientes seguros). Dotado de caracter�sticas que tornam as transa��es eletr�nicas confidenciais, mediante criptografia, o servidor seguro utiliza-se de um protocolo especial de comunica��o que � o SSL ((" Secure Socket Layer" - desenvolvido originalmente pela Netscape), que utiliza criptografia de chave assim�trica, tornando a comunica��o entre as partes virtualmente inviol�vel. Desta forma, se houver intercepta��o das informa��es trafegadas entre o cliente e o servidor por parte de pessoas n�o autorizadas, estas informa��es ser�o de utilidade zero, j� que seria necess�rio o conhecimento pr�vio das chaves privadas de criptografia.

Para que o sigilo e a inviolabilidade da comunica��o realmente existam, � necess�rio um Certificado de Identidade Digital v�lido.

Formas de Pagamento Virtual

 ���������� ara se comprar coisas pela internet � necess�rio arranjar uma forma adequada de efectuar o pagamento. No mundo real existem muitas maneiras de de pagar: dinheiro, cart�es banc�rios, cart�es de cr�dito, cheque, senhas, etc... Da mesma forma na internet foram criados v�rios sistemas de pagamento.

Cart�es de Cr�dito

Uma das primeiras formas de pagamento na internet foi o uso de cart�es de cr�dito. Trata-se de um sistema que j� existe no mundo real, que � usado por milh�es de pessoas e que permite efetuar compras em qualquer parte do mundo, desde que seja aceite pelo comerciante. Existem v�rios tipos de cart�es, mas todos funcionam da mesma forma: o possuidor do cart�o efetua um pagamento, as informa��es do cart�o sao dadas e o dinheiro � movimentado do possuidor para o fornecedor dos servi�os.

Assim o seu uso na internet � simples: basta ter um cart�o de cr�dito, este ser aceite pelo fornecedor de servi�os e enviar informa��es sobre o cart�o para o fornecedor. O problema reside em quest�es de seguran�a : como garantir que o comprador � mesmo o dono do cart�o? Para contornar este obst�culo existem v�rias formas. Uns usam sistemas de criptografia e autoriza�ao do cart�o online. Outros preferem o uso da confirma��o pelo telefone ou e-mail.

Dinheiro Virtual

Como pagar para quem n�o possui ou n�o gosta de usar cart�es de cr�dito? A resposta reside no dinheiro virtual.  O dinheiro foi uma invenc�o espantosa pois antes todo sistema comercial se baseava em trocas. Para obter um bem era necess�rio troc�-lo por outro bem, o que tinha e n�meros inconvenientes. No entanto o dinheiro s� tem valor porque se lhe � reconhecido esse valor (pelo estado, entidades banc�rias, ...). No in�cio muitas pessoas prefiriam continuar com o sistema de trocas. Levou algum tempo para que os mais precavidos reconhececem o valor do dinheiro. Foram as vantagens deste (menor peso e volume) assim como uma interven��o por parte da entidade emissora que conduziram ao seu uso generalisado .

A cria��o de dinheiro virtual torna-se o passo seguinte nesta evolu��o financeira. O dinheiro virtual tem muitas vantagens: n�o ocupa espa�o, n�o tem custos de emiss�o , n�o se desgasta e n�o se pode perder Mas para ser bem sucedido o dinheiro virtual precisa de ser seguro, r�pido e simples de usar v�rios sistemas de dinheiro virtual foram criados, cada um tem as suas vantagens e n�o � claro qual ser� aceito. Como exemplo destes sistemas temos o NetCash, o Netbill, o Netchex, o Netcheque, o Netmarket e o Magic Money.

ecash

De momento o candidato mais prov�vel � o ecash da empresa holandesa Digicash. Existe um banco emissor que d� o ecash aos utilizadores em troca de dinheiro real. O utilizador gasta quanto ecash quiser. Mais tarde o fornecedor de servi�os pode trocar o ecash (se o quiser) depois (no tal banco) por dinheiro. Mais tarde o fomecedor de O dinheiro real. Em cada transa��o s�o usadas assinaturas digitais p�blicas para manter seguran�a. software cliente, usado pelos clientes para encriptar a transa��o, � gratuito e garante anonimato.Somente as lojas e servi�os participantes t�m de pagar uma pequena taxa e declarar todas transa��es (para evitar fugas ao fisco ou lavagem de dinheiro). Devido a ser um sistema simples o ecash tem bastantes probabilidades de ser bem sucedido.

NetCheque

O NetCheque, desenvolvido pela Universidade da Calif�rnia do Sul , usa-se da mesma forma que os cheques tradicionais. Os NetCheques s�o e-mails assinados pelo pagador autorizado com uma assinatura eletr�nica (c�digo criptogr�fico) e enviados para o receptor. Este processo � protegido pelo sistema de kerberos. A assinatura do utilizador cria o cheque enquanto que o endosso da pessoa a quem se paga o transforma numa ordem para o computador do banco.

LETSystem

Trata-se de um sistema mais ambicioso e complexo. Funciona na base de dinheiro local, tipos de unidades monet�rias vagas e usadas em certas comunidades. Como exemplo desta unidades temos o Stroud, xxxx e pedras. Um utilizador nunca passa a dever dinheiro mas fica antes comprometido, i.e., devendo um servi�o � comunidade. Este tipo de sistema depende bastante da confian�a de todos que o usam.

PGP

PGP � um criptsistema h�brido que combina algor�tmos de chaves p�blicas (assim�tricas) com algor�tmos convencionais (sim�tricos), com a vantagem de utilizar a velocidade da criptografia convencional e a seguranca da criptografia por chaves p�blicas. As chaves p�blicas s�o mantidas em arquivos que cont�m a identifica��o do usu�rio (i.e. o nome da pessoa), a hora (timestamp) da gera��o do par de chaves e as chaves propriamente ditas. S�o usados dois arquivos (key rings) diferentes, um para chaves p�blicas e outro para as secretas, que podem conter uma ou mais chaves cada um.

As chaves p�blicas s�o internamente referenciadas por uma Key JD, que � uma abrevia��o dessa chave (os 64 bits menos significativos). Enquanto muitas chaves podem ter a mesma identifica��o do usu�rio (User JD), nenhuma chave pode ter a mesma Key JD.

PGP faz uso de "message digest para realizar as assinaturas. "Message digest � o nome que se d� a um conjunto de 128 bits fortemente cifrados, fun��o da mensagem. � algo an�logo ao checksum ou ao CRC, que � um c�digo verificador de erros, e representa compactamente a mensagem, usada para detectar mudan�as em seu conte�do. Diferentemente do CRC, entretanto, � computacionalmente impratic�vel a qualquer pessoa descobrir uma outra mensagem que produza uma mesma " message digest", que ainda � criptografada pela chave secreta para formar a assinatura digital.

Os documentos s�o autenticados por um prefixo que cont�m o Key JD da chave secreta que foi usada para assin�-lo, o " message digest" do documento devidamente criptografado pela chave secreta doremetente e a hora (timestamp) de quando foi realizada a assinatura. O Key ID � utilizado pelo destinat�rio para relacion�-lo com a chave p�blicado remetente, afim de checar a assinatura. O software automaticamente procura a chave p�blica e a identifica��o do usu�rio remetente no arquivo de chaves p�blicas.

Arquivos cifrados s�o prefixados pelo Key ID da chave p�blica usada para cifr�-la. O receptor usa essa informa��o para relacionar a correspondente chave secreta que decifra a mensagem. Da mesma forma, o software do destinat�rio automaticamente localiza essa chave secreta no arquivo de chaves secretas.Esses dois tipos de arquivos s�o o principal m�todo de armazenamento e gerenciamento das chaves p�blicas e privadas.

Vulnerabilidades

Nenhum sistema de seguran�a � impenetr�vel. PGP pode ser enganado de v�rias formas diferentes. Em qualquer sistema de seguran�a, temos que nos perguntar se a informa��o que escondemos � mais valiosa para um eventual agressor do que o custo que este teria para burlar o sistema de prote��o. Isto ajudaria a nos proteger de ataques de baixo custo sem nos preocuparmos com meios mais sofisticados e caros de espionagem.

l - Comprometimento da passphrase e chave secreta:

Provavelmente o modo mais simples de quebrar o sistema � escrever em algum lugar sua passphrase. Se algu�m a achar e tamb�m conseguir copiar seu arquivo de chave secreta, pode tranquilamente ler suas mensagens e enviar outras tantas com a sua assinatura, fazendo com que todos pensem que foi voc� o autor das tais mensagens.

N�o usar passwords simples que possam ser facilmente descobertas como os nomes de esposa ou filhos j� ajuda. Se voc� fizer de sua passphrase uma �nica palavra (tornando-se uma pas,S.word), ela poder� ser descoberta por um computador que teste todas as palavras do dicion�rio. Por isso uma passphrase � melhor do que uma password � claro que um agressor mais sofisticado poderia ter em seu computador um banco de dados com frases famosas para tentar achar sua passphrase. Uma passphrase f�cil de lembrar e dif�cil de se descobrir poderia ser constru�da por alguns dizeres criativos sem sentido algum ou refer�ncias liter�rias obscuras.

2 - Falsifica��o da chave p�blica:

Este pode ser o ponto mais vulner�vel de um criptossistema de chave p�blica, principalmente porque a maioria dos novatos na �rea n�o percebem a falsifica��o imediatamente. Quando voc� usar a chave p�blicade de algu�m, esteja certo de que n�o foi falsificada. S� podemos confiar na chave p�blica de uma pessoa se a obtivermos diretamente dessa pessoa, ou se a recebemos em uma mensagem assinada por algu�m em quem confiamos. Mantenha um controle fisico de seus arquivos de chave p�blica e secreta, mais preferivelmente em seu computador pessoal do que naqueles ligados em rede com acesso remoto.Tenha sempre uma c�pia de ambos os arquivos.

3 - Arquivos n�o apagados completamente do disco:

Outro problema potencial � causado pelo modo de dele��o de arquivos da maioria dos sistemas operacionais. Quando voc� criptografa um arquivo e apaga o texto original, o sistema operacional n�o destr�i fisicamente o conte�do do texto original. Ele apenas marca que aqueles blocos foram apagados do disco, permitindo que esse espa�o seja reutilizado posteriormente. Esses blocos marcados ainda cont�m o texto original que quer�amos destruir, e que ser� realmente apagado apenas quando outros dados forem gravados por cima. Se o agressor tiver acesso aos blocos marcados antes que eles sejam regravados, ele pode recuperar o texto original ou pelo menos parte dele, o que pode ser facilmente realizado com programas especializados.

De fato isto poderia at� acontecer acidentalmente, se por alguma raz�o alguma coisa der errado na estrutura l�gica de armazenamento de dados do disco e alguns arquivos forem acidentalmente apagados ou corrompidos. Programas de recupera��o podem ser utilizados para tentar reaver os arquivos danificados, mas isto frequentemente faz com que arquivos previamente deletados sejam ressucitados junto com os arquivos que realmente interessam. Da�, aquele arquivo confidencial que voc� achava ter sumido para todo o sempre pode reaparecer e ser lido pela pessoa que estava tentando consertar seu disco. Mesmo quando voc� est� escrevendo sua mensagem com um processador de textos,o editor estar gerando v�rias c�pias tempor�rias do seu texto no disco, apenas porque � texto ele trabalha internamente. Essas c�pias tempor�rias s�o apagadas pelo pr�prio assim processador quando o finalizamos, mas os seus fragmentos ficam no disco, em algum lugar.

A �nica forma de se ter certeza que nossos textos originais n�o reaparecer�o de uma hora pra outra, �, de algum jeito, apagar fisicamente do disco o conte�do da mensagem. A menos que voc� tenha certeza de que todos os blocos marcados como apagados ser�o reutilizados brevemente, pode-se tomar provid�ncias para reescrev�-los, e assim, destruir qualquer vest�gio do texto sigiloso deixado pelo seu editor de textos favorito. Pode-se faz�-lo utilizando qualquer programa especializado dispon�vel no mercado, como por exemplo o Norton Utilities para DOS (WIPEINFO.EXE).

Mesmo tomadas todas as provid�ncias descritas acima, tavez ainda seja poss�vel recuperar o conteUdo original do texto por algu�m cheio de recursos. Res�duos magn�ticos dos dados originais ficam no disco mesmo ap�s serem regravados. Algum hardware sofisticado de recupera��o de dados pode algumas vezes ter utilidade para reaver os dados (mais a� j� � demais).

4 - V�roses e Cavalo de Tr�ia:

Outro tipo de ataque poderia envolver um v�rus especial que infectaria o PGP ou o seu sistema operacional. Este v�rus hipot�tico seria projetado para capturar sua passphrase ou chave secreta, e grav�-la em algum arquivo no disco ou envi�-la via rede para o 'propriet�rio' do referido v�rus. Ele poderia at� alterar o comportamento do PGP para que as assinaturas n�o sejam checadas corretamente, por exemplo.

Defender-se desse tipo de ataque nada mais � do que evitar contamina��o por virus em geral. PGP n�o tem defesas contra v�rus, ele assume que a sua m�quina est� livre de vermes, o que pode ser pelo menos tentado por vers�es atualizadas de produtos anti-v�rus dispon�veis no mercado. Se por acaso um v�rus especial contra PGP aparecer, esperamos que todos tomemos conhecimento logo.

Outra forma de espionagem envolveria uma c�pia do PGP parecida visualmente com a original, mas alterada para que n�o ftlncionasse a contento. Por exemplo, algu�m poderia deliberadamente alter�-lo para que n�o checasse as assinaturas corretamente, permitindo a falsifica��o das mesmas. Esta vers�o tipo "Cavalo de Tr�ia" n�o seria dif�cil de ser desenvolvida, pois o c�digo fonte do PGP � amplamente divulgado. Para evitar tais problemas, deve-se confiar na fonte de onde foi adquirida a c�pia do PGP, ou peg�-la de v�rias fontes independentes e compar�-las com um utilit�rio destinado para esse fim.

5 - Falha de seguran�a f�sica:

Uma descuido do pr�prio usu�rio poderia permitir a algu�m adquirir seus arquivos originais ou mensagens impressas. Um oponente determinado poderia utilizar meios tais como roubo, vasculhamento de lixo, sequestro, suborno, chantagem ou infiltra��o entre os funcion�rios.

N�o se iluda com a falsa sensa��o de seguran�a s� porque voc� tem uma ferramenta de criptografia. As t�cnicas criptogr�ficas protegem a informa��o somente quando elas est�o criptografadas, viola��es fisicas de seguran�a podem compromet�-las.

6 - Espionagem "Tempest".

Outra forma de espionagem tem sido utilizada por oponentes muito bem equipados que conseguem detectar os sinais eletromagn�ticos emitidos pelo computador. Este tipo de ataque caro e de intensa monitora��o pode ser realizado por um caminh�o suprido da maquinaria necess�ria, estacionado pr�ximo ao seu local de trabalho e remotamente captando todos os seus toques de teclado, assim como os textos jogados na tela, podendo comprometer seus passwords, mensagens, etc. Este tipo de ataque, conhecido como tempest, poderia ser evitado blindando-se computadores e cabos de rede, de modo que esses sinais n�o sejam mais emitidos.

7 - An�lise de tr�fico :

Mesmo que n�o seja poss�vel ler o conte�do das mensagens criptografadas, alguma informa��o �til ainda poderia ser deduzida observando-se de onde as mensagens chegam e para onde elas v�o, o tamanho das mesmas e a hora em que foram enviadas. � a mesma coisa que olhar para uma conta telef�nica de longa dist�ncia e ver para onde voc� ligou, quando e por quanto tempo ficou conversando, mesmo que o conte�do da conversa seja desconhecido para um poss�vel espi�o. A isto chamamos de an�lise de tr�fico. Para resolver este tipo de problema, precisar�amos de protocolos de comunica��o especialmente desenvolvidos para reduzir � exposi��o dessas an�lises, possivelmente com alguma assist�ncia criptogr�fica.

8 - Exposi��o em sistemas multi-usu�rio:

PGP foi originalmente projetado para rodar em m�quinas MSDOS mono-usu�rias, sob seu controle f�sico direto. Mas agora exitem vers�es do PGP que tamb�m rodam em sistemas multi-usu�rios como UNIX e VAXlVMS. Nesses sistemas, os riscos de descobrirem seus passwords, chaves secretas ou mensagens s�o maiores. Um intruso esperto o suficiente ou o pr�prio administrador de rede poderiam ter acesso aos seus arquivos originais, ou talvez utilizar-se de algum programinha especial para monitorar constantemente a digita��o ou ver o que est� aparecendo em sua tela. Os riscos reais de seguran�a dependem de cada situa��o em particular Alguns sistemas multi-usu�rios podem ser considerados seguros porque todos os usu�rios s�o confi�veis, ou porque n�o h� interesse suficiente em espionar algu�m. De qualquer modo, recomenda-se rodar o PGP de uma m�quina isolada, em um sistema mono-usu�rio, diretamente sob seu controle f�sico.

Sistemas Criptogr�ficos baseados em Curvas El�pticas

Introdu��o

Em 1985, Koblitz [1] e Miller [2] sugeriram, independentemente, que curvas el�pticas poderiam ser usadas para esquemas de criptografia de chave p�blica. Desde ent�o um grande esfor�o tem sido feito em busca de caminhos que tornem eficiente a sua computa��o. A matem�tica associada a curvas el�pticas, entretanto, � mais antiga. H� mais de 100 anos esta mat�ria vem sendo estudada em teoria dos n�meros e geometria alg�brica.

Pretende-se, neste trabalho, abordar, de maneira introdut�ria, sistemas baseados em curvas el�pticas e demonstrar que estes sistemas proporcionam blocos de tamanho relativamente pequenos, permitem implementa��es em hardware e software de alta velocidade e oferecem a maior resist�ncia a ataques por bit de chave (strength-per-key-bit) dentre os esquemas conhecidos de chave p�blica.

Curvas El�pticas sobre N�meros Reais

Para melhor entendimento do conceito matem�tico das curvas el�pticas, iniciemos nosso estudo no campo dos reais. A equa��o abaixo mostra a forma de �Weierstrass� de uma curva el�ptica:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (1)

As vari�veis x e y situam-se no plano. Na verdade, x e y podem ser complexos, reais, inteiros, base polinomial, base can�nica ou qualquer outro tipo de elemento de corpo. Mas, consideremos n�meros reais sobre o plano dos reais, que nos � mais familiar. Uma forma simples da equa��o (1) �:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (2)

Como exemplo, vamos representar o gr�fico da curva para a4 = -7, a6 = 5 com x e y no conjunto dos n�meros reais:

n�meros reais:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

           Figura 1 - Gr�fico da curva el�ptica y2=x3-7x+5

Nossa inten��o � definir uma �lgebra para curvas el�pticas. Assim, devemos encontrar uma maneira de definir �adi��o� de dois pontos da curva, cuja soma seja outro ponto da curva. Al�m disso, devemos definir o elemento identidade da soma O, ponto que somado com qualquer outro da curva, resulte no pr�prio ponto:

P + O = P (3)

Este ponto tamb�m � chamado de ponto no infinito.

Para a �lgebra funcionar, o negativo do ponto de interse��o � definido como a �soma el�ptica� (veja figura 2). Matematicamente:

R = P + Q(4)

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

       Figura 2 � Adi��o de pontos de uma curva el�ptica sobre n�meros reais

Adicionar um ponto a ele mesmo � um caso especial. A linha usada � a tangente � curva no ponto considerado.

Curvas El�pticas sobre Corpos Finitos Primos

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

Para utiliza��o em criptografia interessa-nos estudar a matem�tica de curvas el�pticas aplicadas a corpos finitos. Analisaremos, inicialmente, corpos finitos gerados por grandes primos. Ou seja, analisaremos curvas el�pticas sobre Zp, p primo maior que 3.

Uma curva el�ptica E sobre Zp pode ser definida pela mesma equa��o (2) estudada no item anterior:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

onde a4, a 6� Zp e 4a 43 + 27a62

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
0. O conjunto E(Zp) � composto, ent�o, por todos os pontos (x,y), x
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
Zp, y
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
Zp, que satisfazem a equa��o de defini��o, juntamente com o ponto no infinito O.     

Por exemplo: seja p = 23 e considere a curva el�ptica E: y2 = x3 + x + 1, definida sobre Z23. Note que 4a43 + 27a62 = 4 + 4 = 8

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
0, ent�o E � uma curva el�ptica. Os pontos em E(Z23) s�o O e os seguintes:

(0, 1) (0, 22) (1, 7) (1, 16) (3, 10) (3, 13) (4, 0) (5, 4) (5, 19)
(6, 4) (6, 19) (7, 11) (7, 12) (9, 7) (9, 16) (11, 3) (11, 20) (12, 4)
(12, 19) (13, 7) (13, 16) (17, 3) (17, 20) (18, 3) (18, 20) (19, 5) (19, 18)

Vejamos a regra para adicionar dois pontos em uma curva el�ptica E(Zp) para resultar em um terceiro ponto da curva. Junto com esta opera��o de adi��o, o conjunto de pontos E(Zp) forma um grupo, com O servindo como sua identidade. � este grupo que � utilizado na constru��o de sistemas de criptografia baseados em curvas el�pticas. A regra de adi��o � apresentada abaixo como uma seq��ncia de f�rmulas alg�bricas:

      1. P + O = O + P = P para todo P

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
E(Zp)
      2. Se P = (x, y)
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
E(Zp), ent�o (x, y) + (x, -y) =O. (O ponto (x, -y) � representado por �P e � chamado negativo de P. Observe que �P �, tamb�m, um ponto na curva.)
      3. Seja P = (x1,y1)
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
E(Zp) e Q = (x2,y2)
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
E(Zp), onde P
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
-Q. Ent�o P + Q = (x3,y3), onde:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (5)
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (6)

e


   (7)

(8)

Vamos ver um exemplo de adi��o de curva el�ptica. Considere a curva el�ptica definida no exemplo anterior.

      1. Seja P = (3, 10) e Q = (9, 7). Ent�o P + Q = (x3, y3) � calculado como segue: 

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

x3 = 112 - 3 - 9 = 6 - 3 - 9 = -6

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
17 (mod 23), e
y3 = 11(3 - (-6)) -10 = 11(9) -10 = 89
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
20 (mod 23).

Portanto, P + Q = (17,20).

      2. Seja P = (3,10). Ent�o 2P = P + P = (x3, y3) � calculado como segue:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

x3 = 62 - 6 = 30

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
7 (mod 23), e
y3 = 6 (3 -7) -10 = -24 -10 = -11
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
12 (mod 23).

      Portanto, 2P = (7,12).

Curvas El�pticas sobre Corpos Finitos de Caracter�stica Dois.

Os corpos finitos de caracter�stica dois, GF(2m), interessam especialmente, pois permitem implementa��es eficientes da aritm�tica de curvas el�pticas. Neste caso, as constantes s�o n�meros de base polinomial ou can�nica. N�o podemos, neste caso, utilizar a vers�o simplificada da equa��o (1).

      Menezes [3] afirma que � necess�rio uma das duas vers�es abaixo:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (9)
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (10)

A equa��o (9) � da forma �supersingular� e, embora possa ser computada rapidamente, suas propriedades n�o a tornam indicadas para o uso em criptografia.

As curvas da equa��o (10) s�o chamadas �nonsupersingular�. N�o existe nenhum m�todo de ataque conhecido de complexidade menor que exponencial para estas curvas. Certamente, a escolha dos coeficientes � fundamental, a fim de que se obtenha a m�xima vantagem da seguran�a. 

Para que a equa��o (10) seja v�lida, a6 precisa ser diferente de 0. Contudo, a2 pode ser 0.

Valem aqui as mesmas regras de adi��o vistas para corpos primos. As f�rmulas, contudo, s�o um pouco diferentes para adi��o de dois pontos sobre GF(2n), segundo Schroeppel et al.[4]:

      Se P

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
Q:
 

   (11)

   (12)

   (13)


      Se P = Q:

   (14)

   (15)

   (16)

Multiplica��o sobre Curvas El�pticas 

A multiplica��o sobre curvas el�pticas se refere, ao contr�rio da id�ia intuitiva de se multiplicar dois pontos da curva, ao produto de um escalar por um ponto da curva:

Q = kP  (17)

Onde Q e P s�o pontos sobre uma curva el�ptica e k � um inteiro. O que a multiplica��o realmente significa � a soma de Pa ele mesmo k vezes. Como a pr�pria curva el�ptica � isto �, os pontos sobre ela � forma um corpo, o inteiro k n�o deve ser maior que a ordem do ponto P. Caso n�o se saiba a ordem do ponto, o c�lculo n�o ser� t�o eficiente quanto poderia ser.

Exemplo: suponha que desejamos calcular Q = 15P. Podemos expandir como:

Q = 15P = P + 2(P + 2(P + 2P))

Observe que este � o mesmo algoritmo utilizado para exponencia��o modular.

Outro m�todo para o c�lculo da multiplica��o � a expans�o balanceada, proposta por Koblitz [5]. O algoritmo converte uma string de bits �1� em uma string de bits �0� seguido de ��1�. Por exemplo, calculemos Q = 15P:


15P = (16-1)P
11112P = (1000-1)2P
Q = (2P)2 * 2 * 2 - P

Temos, assim cinco opera��es, ao inv�s de seis, como no caso anterior.

Outro exemplo: Q = 10045P = 100111001111012P. O �ltimo bit na cadeia de �1� � substitu�do por ��1�, todos os outros bits s�o substitu�dos por �0� e o primeiro �0� � substitu�do por �1�. Assim, a representa��o balanceada fica:

10100-101000-101
Q = (((((2P * 2 + P)2 * 2 * 2 � P)2 * 2 + P)2 * 2 * 2 *2 � P)2 * 2 + P

Ordem da Curva 

O n�mero de pontos de uma curva el�ptica sobre um corpo finito deve satisfazer o teorema de Hasse. Dado um campo, GF(q), a ordem da curva N dever� satisfazer esta equa��o:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (18)

Ou, de outra forma:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (19)

Ent�o, o n�mero de pontos de uma curva �, aproximadamente, o tamanho do corpo.

Criptografia

Uma vez introduzida a matem�tica de curvas el�pticas sobre corpos finitos, analisaremos como aplic�-la � criptografia. A id�ia b�sica para a implementa��o de sistemas de criptografia de chaves secretas e p�blicas � converter dados em pontos da curva.     

 Duas quest�es fundamentais a serem respondidas por quem pretende utilizar curvas el�pticas em criptografia s�o:

      Quantos bits s�o necess�rios?

      Quanto trabalho deve ser realizado?

A decis�o sobre a primeira quest�o determina quanto tempo se leva para computar uma chave secreta de curva el�ptica. Pode-se considerar, de forma emp�rica, que o tempo da computa��o � proporcional ao cubo do n�mero de bits. Assim, se dobrarmos o n�mero de bits, levaremos, aproximadamente, 8 vezes mais tempo calculando.

Escolha da Curva

A segunda decis�o determina como deve ser escolhida a curva el�ptica. O primeiro passo � certificar-se de que h� mais bits no corpo finito que o comprimento dos dados que desejamos esconder. Para a m�xima seguran�a, uma boa pr�tica � tomar-se 2,5 vezes a quantidade de bits que se deseja embutir. O fator 2 vem da habilidade de se quebrar curvas el�pticas usando a raiz quadrada da ordem do ponto base. O fator 0,5 deve ser usado se n�o se conhece a ordem do ponto base. Por exemplo, suponha que queiramos usar uma chave secreta de 64 bits. O tamanho de corpo mais pr�ximo para uma base can�nica estaria entre 130 e 148 bits.

Como foi citado anteriormente, devem ser evitadas curvas supersingulares porque o problema do logaritmo discreto pode ser reduzido ao problema do logaritmo discreto sobre um corpo extens�o de grau menor.

J� vimos, da equa��o (10), que uma curva nonsupersingular tem a forma:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?

para corpos GF(2n). Quando a2 � diferente de zero, a curva � chamada �twist�. Por exemplo y2 + xy = x3 + x2 + 1, onde corpos de tamanho 101, 107, 109, 113 e 163 tem ordem 2 vezes um primo muito grande. Para uma curva "nontwist", por exemplo y2 + xy = x3 + 1, os corpos 103, 107 e 131 todos tem ordem 4 vezes um primo muito grande. As tabelas 1 e 2, a seguir, apresentam a lista de fatores para estas curvas. O s�mbolo#E representa a ordem de uma curva el�ptica.

Tamanho do Corpo

#E

101

2 x 1 26765 06002 28230 88614 28085 08011

107

2 x 81 12963 84146 06692 18285 10322 12511

109

2 x 324 51855 36584 26701 4874486564 61467

113

2 x 5192 29685 85348 27627 89670 38334 67507

163

2 x 5846 00654 93236 11672 81474 17535 98448 34832 91185 74063

Tabela 1 � E: y2 + xy = x3 + x2 + 1

Tamanho do Corpo

#E

103

4 x 2 53530 12004 56459 53586 25300 67069

107

4 x 40 56481 92073 03335 60436 34890 37809

131

4 x 6805 64733 84187 69269 32320 12949 34099 85129

Tabela 2 � E: y2 + xy = x3 + 1

Para se obter alta seguran�a, curvas de ordem conhecida e de dif�cil ataque, como as apresentadas, s�o necess�rias. Para uma seguran�a moderada, entretanto, curvas aleat�rias s�o perfeitamente adequadas.

Embutindo Dados numa Curva

Antes de computarmos somas e multiplica��es sobre curvas el�pticas, precisamos colocar os dados sobre a curva. Se tomarmos valores aleatoriamente, devemos nos certificar que o valor de x que tomamos satisfaz, de fato, a equa��o da curva. Vamos reescrever a equa��o (10), convertendo o lado direito para uma forma simples, f(x), e trazendo-o para o lado esquerdo:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (20)

Esta � uma equa��o quadr�tica simples. O primeiro passo para resolv�-la � eliminar x. Seja y = xz na equa��o (20). Isto nos d�:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
(21)

Multiplicando a equa��o por x-2, temos:


O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (22)

onde c = f(x).x-2. A equa��o (22) tem solu��o quando o Tra�o de c �0. A fun��o Tra�o mapeia GF(2m)emGF(2). O resultado � um bit. Ela � definida por:


O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
(23)

Por exemplo, seja c = 10110 em GF(25).

Logo,

Tr(10110) = 10110 + 01101 +11010 + 10101 + 01011

A opera��o XOR de todas as colunas d� o mesmo resultado:


Tr(10110) = 1

Uma vez que o Tr(c) = 0, podemos resolver a equa��o para z. Conhecidoz, temos que z+1 tamb�m � uma solu��o para a equa��o (22). Ent�o, colocando z ez+1na equa��oy = zx teremos as duas solu��es para a equa��o quadr�tica e os dados estar�o embutidos na curva. Com os dados na curva podemos come�ar a manipular estes dados de uma forma significativa, sob o ponto de vista criptogr�fico. Vamos ressaltar novamente que o conjunto de dados que desejamos embutir na curva precisa ter menos bits que o tamanho do corpo para assegurar a escolha de valores x, tal que esses valores estejam na curva

Sistemas Criptogr�ficos baseados em Curvas El�pticas

Protocolos

Koblitz [6] sugere o uso de curvas el�pticas em tr�s protocolos de chave p�blica: Diffie-Hellman, ElGamal e Massey-Omura. Analisaremos os dois primeiros. Em seguida, analisaremos o uso de curvas el�pticas para assinatura digital, usando DSA.

Protocolo Diffie-Hellman

Sejam os usu�rios Alexandre e Bia, que desejam compartilhar um par�metro secreto. Ambos devem escolher sua chave secreta que ser� usada como modelo de bits aleat�rios sobre um corpo de tamanho mutuamente combinado. Seja kA a chave de Alexandre e kBa chave de Bia. Eles, primeiramente, devem combinar o uso de uma curva espec�fica, de um tamanho de corpo e a base matem�tica (polinomial ou can�nica). A curva el�ptica deve satisfazer a equa��o (10). Eles ainda devem escolher um ponto base B comum, sobre a curva combinada. Bia, ent�o, computa:

PB = kBB  (24)

sobre a curva el�ptica escolhida e envia para Alexandre. Alexandre computa:

PA = kAB (25)

e envia para Bia. Ambos, ent�o, computam o par�metro secreto:

PS = kA(kBB) = kB(kAB) (26)

Por quest�o de seguran�a, apenas o valor de x obtido e um bit do valor de y s�o utilizados, uma vez que podemos obter y atrav�s da solu��o da equa��o quadr�tica vista anteriormente.

Cada lado, ent�o, possuir� o mesmo par�metro secreto e ningu�m que estiver ouvindo a comunica��o ser� capaz de conhecer este par�metro, sem resolver o problema do logaritmo discreto da curva el�ptica.

O problema com Diffie-Hellman � o ataque chamado de �man-in-the-middle�. Suponha que Melo consiga interceptar toda a comunica��o entre Alexandre e Bia. Ele, ent�o, pega a chave p�blica de Bia por um lado e de Alexandre pelo outro e manda sua pr�pria chave p�blica para ambos. Nem Bia nem Alexandre s�o capazes de perceber a intercep��o, uma vez que eles conseguem cifrar e decifrar normalmente as mensagens. Melo decifra os dados vindos de Alexandre com o par�metro secreto que compartilha com o mesmo, e depois cifra-os novamente usando o par�metro que compartilha com Bia, enviando os dados para ela. Obviamente, Melo pode alterar os dados da maneira que quiser antes de retransmit�-los.

Protocolo ElGamal

A vers�o de curva el�ptica de ElGamal requer que sejam p�blicos o tamanho de corpo, a base matem�tica (polinomial ou can�nica), a curva el�ptica E que satisfa�a a equa��o (10) e um ponto base B sobre a curva. Tanto Alexandre quanto Bia escolhem aleatoriamente um modelo de bits kA ekB, respectivamente, e calculam suas chaves p�blicas:

PA = kAB (27)
PB = kBB (28)

Cada um envia sua chave p�blica ao outro. Agora, Alexandre e Bia podem enviar mensagens um ao outro usando esses pontos p�blicos, de tal forma que ningu�m pode descobrir os dados sem resolver o problema do logaritmo discreto para curvas el�pticas.

Para que Alexandre mande uma mensagem para Bia, ele primeiro embute a informa��o da mensagem na curva el�ptica E, usando o m�todo de convers�o mostrado anteriormente. Vamos chamar este ponto da mensagem Pm. Alexandre, ent�o, escolhe um modelo aleat�rio de bits, r, e computa dois pontos:

Pr = rB   (29)
Ph = Pm + rB   (30)

Alexandre envia, ent�o, ambos os pontos PrePhpara Bia. Para extrair o ponto mensagem, Bia computa:

Ps = kBPr(31)

E subtrai este de Ph:

Pm = Ph - Ps   (32)

Vamos expandir esta �ltima equa��o para ver como ela funciona. Na equa��o (30), o segundo termo do lado direito pode ser expandido usando a equa��o (28):


rPB = r(kBB)   (33)

O termo Phna equa��o (32) �, na verdade:


Ph = Pm + r(kBB)   (34)

Colocando a equa��o (29) na equa��o (31) para expandirPS, e combinando esta com a equa��o (34) na equa��o (32), temos:

Pm = Pm + r(kBB) - kB(rB) = Pm   (35)

Os �nicos pontos que o atacante v� s�o Ph, PA, PBePr. O interessante deste protocolo � que as chaves p�blicas podem permanecer p�blicas. N�o h� necessidade troc�-las. Toda vez que os dados s�o transferidos, um novo valor aleat�rio r� escolhido. Nenhum dos lados precisa lembrar de r, e, se o tamanho do corpo for suficientemente grande, ser� bastante dif�cil descobrir os n�meros secretos kAekB. Isto nos fornece tanto compartilhamento do par�metro secreto quanto autentica��o.

O ataque do Melo (�man-in-the-middle�) ainda � poss�vel. A maneira mais segura de evitar este tipo de ataque � pela verifica��o da chave p�blica atrav�s de um canal alternativo, como um telefone.

Assinatura Digital

Analisaremos, agora, um esquema de assinatura digital, que � a vers�o para curvas el�pticas do DSA (Digital Signature Algorithm).

Seja P um ponto base com ordem n na curva E, que satisfaz a equa��o (10). Chamaremos a chave privada do assinante s e a chave p�blica Q = sP. Tomemos um valor aleat�rio k e um ponto aleat�rio R = kP. Gera-se uma fun��o hash e a partir da mensagem, tal que e seja menor que n. O primeiro passo do DSA � tomar a componente x de R m�dulo a ordem da curva para pegar o primeiro componente da assinatura:

c = x mod-n   (36)

O segundo componente � computado como:

d = k-1(e+sc) (37)

O processo de verifica��o requer o c�lculo de tr�s valores depois de computar o valor hash da mensagem (chamado e�):

h = d-1 mod-n  (38)
h1 = e�h mod-n   (39)
h2 = ch mod-n  (40)

Estes valores s�o usados para computar um ponto sobre a curva el�ptica p�blica com a f�rmula:

R� = h1P + h2Q (41)

Se a componente x da equa��o (41) n�o for igual ao da equa��o (36), assumimos que a mensagem � diferente do documento original assinado. Vamos entender a raz�o. A equa��o (38) pode ser reescrita com a equa��o (37):


h = k(e+sc)-1(42)

Assim, as equa��es (39) e (40) expandem-se para:


h1 = e�k(e+sc)-1 (43)
h2 = ck(e+sc)-1 (44)

Colocando os termos expandidos na equa��o (41):


R� = e�k(e+sc)-1P + sck(e+sc)-1P   (45)
R� = k(e�+sc)(e+sc)-1P (46)

Os fatores do meio s� ser�o cancelados se o valor hash da mensagem original, a chave do assinante e a assinatura publicada estiverem corretos.

Exemplo usando Diffiel-Helman

Vamos apresentar um exemplo de c�lculo de segredo compartilhado usando curvas el�pticas. As partes envolvidas ser�o o browser que est� utilizando nesse momento (cliente) e um servlet que ser� executado no servidor WWW (servidor). A implementa��o foi feita em Java e est� composta pelas seguintes classes:

    Corpo2N: classe que executa as opera��es b�sicas sobre GF(2n);

    CurvaEliptica: classe que executa as opera��es sobre a curva el�ptica;

    Ponto: classe que executa opera��es sobre pontos da curva el�ptica;

    GeradorPseudoAleatorio: possui o m�todo calcula que gera n�meros pseudo-aleat�rios;

    DHExchangeKey: possui m�todos para c�lculo do segredo compartilhado;

    DHAppletClient: applet que roda no lado cliente;

    DHServlet: servlet que roda do lado servidor.

Este exemplo tem por objetivo mostrar ao leitor a implementa��o da �lgebra envolvida na manipula��o de curvas el�pticas. Assim, as classes apresentam coment�rios sobre os m�todos e vari�veis de estado utilizados. Como nosso exemplo tem fins did�ticos, n�o houve preocupa��o em otimizar o c�digo. Pacotes de matem�tica avan�ada, que podem fornecer c�digos mais r�pidos, podem ser encotrados em v�rios sites da Web. Alguns destes pacotes est�o listados abaixo:

    freelip (free large integer package)

    LiDIA

    MIRACL

Nosso exemplo utiliza uma curva gerada aleatoriamente, ONB (base normal �tima) com tamanho de corpo de 134 bits. 

Ao selecionar o in�cio da execu��o do exemplo, dois frames de mesmo tamanho ser�o abertos no browser. No frame da esquerda ser� executado o applet na m�quina local. O applet recebe, inicialmente, do servidor a curva el�ptica, o ponto base e a chave p�blica do servidor. O applet gera, ent�o, suas chaves privada e p�blica, e envia a p�blica para o servidor. De posse de sua chave privada e da chave p�blica do servidor, finalmente o cliente exibe o segredo compartilhado que calculou (obviamente, s� com fins demonstrativos).

No  frame da direita ser� exibida a p�gina enviada pelo servlet (executado no servidor WWW). Tenha paci�ncia a p�gina pode demorar um pouco para ser carregada. O servlet recebe a chave p�blica do cliente e, j� conhecendo a curva, o ponto base e sua chave privada, calcula o segredo compartilhado, exibindo-o (obviamente, s� com fins demonstrativos). Os segredos exibidos pelo cliente e pelo servidor devem ser iguais.

OBS: este programa � somente demonstrativo. O autor n�o se responsabiliza por quaisquer conseq��ncias advindas de seu uso.

Sistemas Criptogr�ficos baseados em Curvas El�pticas

Aspectos de Seguran�a

A base para a seguran�a de sistemas criptogr�ficos baseados em curvas el�pticas � a aparente intratabilidade do �problema do logaritmo discreto de curvas el�pticas�, que pode ser resumido da seguinte forma: dada uma curva el�ptica E definida sobre um corpo finito, um ponto P da curva de ordem n, e um pontoQ, determine o inteiro k, 0

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
k
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
n-1, tal que Q = kP.

Nos �ltimos 12 anos, o problema de logaritmos discretos de curvas el�pticas tem recebido consider�vel aten��o de matem�ticos no mundo inteiro, e nenhum fraqueza significativa foi relatada. Um algoritmo devido a Pohlig e Hellman reduz a determina��o de k � determina��o de k m�dulo cada um dos fatores primos de n. Logo, para se obter o m�ximo n�vel de seguran�a,ndeve ser primo.

O melhor algoritmo para quebrar os protocolos baseados em curvas el�pticas, segundo Jurisic e Menezes [7], em geral, � o m�todo rho de Pollard que leva, aproximadamente, 

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
passos, onde um passo significa uma adi��o de curva el�ptica. Em 1993, Oorschot e Wiener [8] mostraram como o m�todo rho de Pollard pode ser distribu�do em paralelo, tal que, se r processadores forem usados, o n�mero esperado de passos por cada processador antes de um �nico logaritmo discreto ser obtido � 

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (47)

Em seu trabalho, eles estimam que um atacante (bem financiado), considerando n

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
1036
O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
2120, precisaria de uma m�quina com 325.000 processadores (a um custo de US$10 milh�es � �poca) para computar um �nico logaritmo discreto em 35 dias.

Comparemos, agora, a complexidade de algoritmos para quebra da chave. Algoritmos baseados em fatora��o de inteiros, como o RSA, tem ataques bem conhecidos. O problema b�sico para este tipo de criptografia de chave p�blica � se encontrar dois primos grandes (p eq), cujo produto seja um inteiro grande N. O tempo necess�rio para fatorar este tipo de n�mero �:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (48)

Isto ocorre para um m�todo em particular (por sinal, usando curvas el�pticas). Pode haver m�todos mais r�pidos, em fun��o do tamanho de N. Mas, de maneira geral, podemos considerar o problema da fatora��o com complexidade:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
   (49)

Sua complexidade recai, assim, na classifica��o de sub-exponencial.

Sistemas criptogr�ficos baseados em curvas el�pticas usam pontos ou pares de n�meros para esconder a informa��o. A id�ia b�sica � que se tenha um n�mero total de pontos dispon�veis (m) bastante grande. O tempo necess�rio para encontrar um particular ponto �, aproximadamente, o seguinte:

O que acontece à medida que o comprimento da chave aumenta numa aplicação de criptografia?
    (50)

Este tempo � completamente exponencial.

O resultado � que, segundo Rosing [9], embora a compara��o n�o seja trivial, a quantidade de bits que um sistema usando curvas el�pticas necessita, para ser compat�vel com o RSA 1024 bits, est� abaixo de 200 bits. Assim, apesar de precisar de dois elementos de 200 bits para representar cada ponto, a quantidade de hardware necess�ria para se atingir o mesmo n�vel de seguran�a � menor que o necess�rio para o mesmo n�vel de seguran�a usando m�todos de fatora��o de inteiros.

Refer�ncias Bibliogr�ficas

[1] KOBLITZ, N. Elliptic Curve Cryptosystems. Mathematics of Computation (1987).

[2] MILLER, V. S. Use of Elliptic Curves in Cryptography em CRYPTO�85. (New York: Springer-Verlag,1986).

[3] MENEZES, A. J. Elliptic Curve Public Key Cryptosystems. (Boston: Kluwer Academic Publishers, 1993).

[4] SCHROEPEL, R.; ORMAN, H.; O�MALLY, S. Fast Key Exchange with Elliptic Curve Systems. (Tucson, AZ: University of Arizona, Computer Sciences Department, 1995).

[5] KOBLITZ, N. CM � Curves with Good Cryptographic Properties em CRYPTO�91 (New York: Springer-Verlag, 1992).

[6] KOBLITZ, N. A Course in Number Theory and Cryptography. (New York: Springer-Verlag, 1987).

[7] JURISIC, A.; MENEZES, A. J. Elliptic Curves and Cryptography. (Ontario: Certicom White Paper em http://www.certicom.ca/ecc/weccrypt.htm, 1997).

[8] OORSCHOT, P. van; WIENER, M. Parallel Collision Search with Cryptanalytic Applications. (Journal of Cryptography, 1993).

[9] ROSING, M. Implementing Elliptic Curve Cryptography. (Greenwich: Manning, 1998).

O que acontece à medida que o comprimento da chave aumenta?

2 / 2 ptsPergunta 22 O que acontece à medida que o comprimento da chave aumenta em um aplicativo de criptografia? O espaço da chave aumenta proporcionalmente.

Quais são os três tipos de informações confidenciais escolha três?

Os três estados de dados são dados em repouso, dados em movimento e em uso. Os dados podem mudar de estado com rapidez e frequência ou podem permanecer em um único estado durante todo o ciclo de vida de um computador.

Em que situação um controle de detecção seria justificável?

uma nova chave pré-compartilhada Em que situação um controle de detecção seria justificável? quando a empresa precisar procurar por atividades proibidas Um usuário tem um grande volume de dados que precisa ser mantido em sigilo.

Quais medidas a empresa deve tomar para descobrir se sistemas foram comprometidos?

Quais medidas a empresa deve tomar para descobrir se sistemas foram comprometidos? Escolha uma: -Verificar os sistemas em busca de vírus. -Procurar contas não autorizadas. -Procurar alterações de política no Visualizador de eventos.