Almeida Camargo Advogados
Faça do Almeida Camargo a sua home page  

Menu
Home
Institucional
Estudos Jurídicos
Código do Consumidor
Cooperativismo e Terceiro Setor
Ciber Crimes
Direito da Sociedade da Informação
Econômico e Concorrêncial
Energia Usina Antiga do Itapeva
Eventos
Informática e os Tribunais
Inf. e Melhoria do Poder Judiciário
Nota Fiscal Eletrônica
Notícias
OAB
Opinião e Notícia
Pareceres
Second Life
SPED-Sist. Público de Escrit. Digital
Tributário
Links Úteis
Fale Conosco

Empresas
Centro de Estudos Jurídicos

Bd4u

Veja Introdução

Enquete
 
Você acredita que a adoção de maiores controles do Fisco através da NF-e poderia evitar situações de sonegação Fiscal?
Dê sua opinião ou envie mensagem:
suaopiniao@almeidacamargo.com.br
  Sim
  Não
 

Login
  Login: 
  Senha:    
Previsão do tempo para região Sudeste
 
::. Tecnologia .::
Versão para impressão Imprimir  -   Enviar por e-mail Enviar  -  Altera o tamanho da letra A- A+
Criptografia de Chave Pública Baseada em Curvas Elípticas.
Criptografia de Chave Pública Baseada em Curvas Elípticas
Autor: Julio Cesar Barbosa
Nível: Avançado


Introdução
Dentro do contexto de criptografia, os sistemas existentes apoiam-se no fato de existirem problemas matemáticos que, dado o elevado nível de trabalho envolvido na sua resolução, tornam-se de difícil solução. Conseqüentemente, buscamos proteção no fato de que nosso "adversário" não conseguirá, mesmo contando com as mais modernas ferramentas computacionais, reverter a função de criptografia (na qual o sistema se baseia) e acessar os parâmetros e entradas do nosso sistema em um tempo aceitável.

Em termos de criptografia computacional, um problema matemático é dito "de difícil solução" quando, mesmo aplicando-se o algoritmo mais eficiente para resolvê-lo, esse leva um longo período para que sua execução se conclua. Esse tempo de execução possui uma relação direta com o tamanho dos dados de entrada do algoritmo utilizado. Cientistas da área defendem o fato de que, em geral, um problema de fácil solução tem o tempo de execução polinomial, enquanto problemas de difícil solução tem esse tempo em formato exponencial. Conseqüentemente, estaremos interessados em saber o quanto um problema se torna difícil (tempo de execução) com o aumento do tamanho de sua entrada e, adicionalmente, em selecionar problemas que maximizem esse tempo, sempre que quisermos obter um sistema de criptografia mais seguro.

Sistemas de criptografia com chave pública (chamados de sistemas assimétricos) foram inicialmente propostos por Whitfield Diffie e Martin Hellman em 1976 [1]. Esses sistemas trabalham com duas chaves diferentes, independentes e não facilmente deriváveis [8]: A chave pública, utilizada na codificação de uma mensagem cifrada, e, a chave privada, utilizada na sua descodificação. Opcionalmente, quando se deseja assinar digitalmente uma mensagem, o emprego da chave pública e privada se inverte, ou seja, o remetente "assina" (codifica) a mensagem através de sua chave privada, enquanto o destinatário somente conseguirá descodificar essa mensagem aplicando a chave pública do remetente. A segurança está em poder armazenar a chave privada em segurança e ser computacionalmente impossível obter essa chave a partir da mensagem cifrada e da chave pública correspondente.

Tem se observado que, ao se projetar sistemas criptográficos de chave pública, é necessário também haver um compromisso entre o nível de segurança e o tempo de resposta que se deseja obter [2]. Nesse aspecto, quanto mais desenvolvidos forem as ferramentas e algoritmos utilizados para violação dos sistemas de criptografia existentes, maiores têm que ser os parâmetros (chaves) e, conseqüentemente, maior o esforço no trabalho de codificação e descodificação dos textos cifrados. É nesse ponto que as propostas e idéias discutidas devem ser avaliadas e comparadas entre si.

Criptografia com Curvas Elípticas
Criptografia com o uso de curvas elípticas foi inicialmente proposta em 1985 por Victor Miller [5] e Neal Koblitz [6], como uma atraente forma de implementação de um sistema de chave pública em algumas das aplicações existentes. Antes de iniciar a aplicação direta de curvas elípticas em criptografia, veremos alguns conceitos básicos sobre curvas elípticas, suas propriedades e a álgebra envolvida (álgebra de curvas elípticas).

É importante frisar que curvas elípticas não são elipses. Elas têm esse nome pois são definidas como um objeto matemático (uma curva) descrito por uma equação cúbica, as mesmas que usamos para calcular o comprimento de arco de uma elipse. Essas curvas, que podem assumir diversas formas (dependendo dos parâmetros utilizados), possuem propriedades interessantes, e nosso interesse nelas está justamente nessas propriedades. Em particular, podemos definir, a partir do conjunto de soluções (pontos) dessa curva, operações específicas e um elemento identidade, como veremos mais adiante.
Equações cúbicas para curvas elípticas têm a seguinte forma (simplificada):

y2 = x 3 + a4x + a5 (1)

Podemos definir uma "soma" de dois pontos pertencentes a uma curva elíptica (álgebra para curvas elípticas) como sendo um outro ponto na curva. Um elemento identidade (citado anteriormente) nessa álgebra seria um ponto O (chamado de ponto no infinito), tal que a soma de qualquer outro ponto da curva a esse ponto resulta no próprio ponto (equivalente à soma de um inteiro > 0 com 0, na álgebra tradicional). Adicionalmente, podemos representar as operações de soma de um ponto com ele mesmo, que também irá resultar em um outro ponto nessa curva (um outro ponto no conjunto de soluções).

De forma mais genérica, o conjunto de pontos (x, y) dessa curva poderiam ser valores inteiros, complexos, base canônica ou qualquer outro tipo de elemento de corpo. Ao aplicar essas operações de forma restrita a um grupo finito de inteiros, denominado Fq [9], os proponentes da criptografia com curva elíptica observaram o potencial dessa técnica. Eles se basearam no fato de que, embora seja relativamente fácil determinar o ponto Q = lP, determinar o inteiro l dados Q, P E(Fq) (E é uma curva elíptica no grupo Fq) é bem mais difícil e não possui solução em tempo sub-exponencial. Esse problema é denominado problema do logaritmo discreto em curvas elípticas (Elliptic Curve Discrete Logarithm Problem - ECDLP) e será comentado a seguir.

Curvas Elípticas X Demais Sistemas de Criptografia
Muitas outras opções de sistemas de criptografia de chave pública já foram propostas, mas a maioria foi declarada comprovadamente insegura ou inviável em termos de uso prático. Atualmente, existem somente três tipos de sistemas de criptografia com chave pública considerados seguros e eficientes [3][4]. Esses sistemas estão classificados de acordo com o problema matemático em que eles se baseiam:

I. Sistemas de fatoração de inteiros (Integer Factorization Systems - IFS), baseados no problema de fatoração de inteiros (Integer Factorization Problem - IFP)
II. Sistemas de logaritmo discreto (Discrete Logarithm System - DLS), baseados no problema do logaritmo discreto (Discrete Logarithm Problem - DLP)
III. Sistemas de curva elíptica (Elliptic Curve Discrete Logarithm System - ECDLS), baseados no problema do logaritmo discreto em curvas elípticas (Elliptic Curve Discrete Logarithm Problem - ECDLP)

Como exemplo de algumas das aplicações de cada uma dessas técnicas em implementações reais, temos: RSA e Rabin-Williams (IFS), El Gamal, DAS e Diffie-Hellman e Schnorr (DLS) e, finalmente, ECC (ECDSL).

Nível de Segurança
Os chamados algoritmos genéricos se propõem a resolver qualquer configuração encontrada em cada um desses problemas, diferente dos algoritmos específicos, que somente se aplicam a determinadas "classes" de problemas [3][4]. Ao avaliar e comparar as opções de sistemas de criptografia com chave pública, os cientistas da área se baseiam nos algoritmos genéricos e qual a complexidade (número de passos X tamanho da entrada) que cada um deles oferece. Os problemas de fatoração de inteiros e de logaritmos discretos admitem, em geral, algoritmos que executam em tempo sub-exponencial. Esses problemas também são considerados "difíceis", mas não tão difíceis quanto os que necessitam de algoritmos puramente exponenciais. O melhor algoritmo genérico conhecido para o problema dos logaritmos discretos em curvas elípticas é puramente exponencial.

Conseqüentemente, podemos constatar que o problema de logaritmos discretos em curvas elípticas é considerado mais "difícil" de resolver que os demais. Estudos recentes indicam que, para um nível de segurança razoável (1012 MIPS), enquanto o RSA e o DSA necessitam de 1024 bits, o ECC precisa de somente 160 bits para o tamanho de chave [3][4]. Outro dado importante levantado é que o aumento do nível de segurança (MIPS maior) necessita de um aumento bem mais expressivo do tamanho das chaves do RSA e DSA, em comparação ao ECC. Isso evidencia que o aumento dos atuais parâmetros de segurança, irá exigir um crescimento do tamanho da chave bem mais significativo no caso do RSA e DSA do que no ECC.

Eficiência
A discussão acerca da eficiência de cada um dos sistemas de criptografia descritos aqui, leva em consideração os seguintes fatores: Carga computacional, tamanho de chave e tamanho de banda. Para uma comparação mais justa, os dados apresentados levam em consideração o mesmo nível de segurança para todas as propostas (ECC, RSA ou DSA).

I. Carga Computacional: Mede a eficiência com que os algoritmos podem implementar as transformações com as chaves públicas e privadas (sistema em operação). As melhores implementações de cada um dos sistemas ("state-of-the-art implementations") indicam que o ECC executa numa ordem de 10 vezes mais rápido que o RSA ou DSA. [3].

II. Tamanho de Chave: Conforme citado anteriormente, o ECC também apresenta grande vantagem nesse aspecto. Enquanto RSA e DSA apresentam pares de chave (pública, privada) com tamanhos, em bits, RSA(1088,2048) e DSA(1026,160), temos, no caso da implementação de curvas elípticas o par ECC(161,160) [3].

III. Tamanho de Banda: Corresponde a quantos bits (a mais) temos que transmitir após criptografar ou assinar uma mensagem, em relação a mensagem original. Todas as três opções apresentam valores parecidos nesse quesito, com o ECC se destacando exclusivamente nos casos em que queremos processar mensagens pequenas [3][4]. Se visualizarmos os sistemas de criptografia com chave pública como eficiente ferramenta de troca de chave de seção (usa transformação de mensagens pequenas), essa vantagem do ECC torna-se ainda mais significativa.

Conclusão
Podemos observar que o uso da criptografia com chave publica baseada em curvas elípticas é uma excelente opção, não somente em termos de nível de segurança, como também em todos os principais pontos relativos à eficiência de operação. Dadas suas características, essa técnica pode ser utilizada, principalmente, em sistemas "embutidos" ou sistemas com restrições físicas de espaço e/ou capacidade de processamento. Estudos recentes [7] apontam para o uso dessa técnica na implementação de cartões inteligentes ("smart cards"), entre outros tipos de aplicação.

Referências
[1] Diffie, W., Hellman, M. "New Directions on Crryptography". IEEE Transactions on Information Theory, 1976
[2] Reinhard Rauscher, Frank Bohnsack. Results of na Elliptic-Curve-Approach for Use in Cryptosystems. EUROMICRO Conference, 1999. Proceedings. 25th, 09/08/1999 -09/10/1999, 1999 Location: Milan , Italy pp 415-422 vol.2 1999
[3] www.certicom.com - Current Public-Key Cryptographic Systems - A Certicom Whitepaper - April, 1997
[4] www.certicom.com - Remarks on the Security of the Elliptic Curve Cryptosystem - A Certicom Whitepaper - September, 1997
[5] V. Miller. Uses of Elliptic Curves in Cryptography. Advances in Cryptography, Crypto 85, Springs Verlag LNCS 218, 417-426, 1986
[6] M. Koblitz. Elliptic Curve Cryptosystems, Math Comp., 48, 203-209, 1987
[7] Elsayed Mohammed, A. E. Emarah and Kh. El-Shennawy. Elliptic Curve Cryptosystems on Smart Cards. 2001 IEEE 35th International Carnahan Conference on , Oct 2001 pp 213 -222
[8] William Stallings. Cryptography and Network Security - Principles and Practice. 2nd Edition - Prentice Hall
[9] Gabriel Belingueres. Introducción A Los Criptosistemas de Curva Elíptica. http://www.toptutoriales.com/matematicas/criptografia/criptografia7.htm

O Lockabit não compartilha necessariamente da mesma opinião do autor.

Data: 15/12/2006

Fonte: www.lockabit.coppe.ufrj.br


Inéditas


  Veja mais notícias

Estudos e Pesquisas

  Veja mais notícias
"O essencial não é fazer muita coisa no menor prazo;
é fazer muita coisa aprazível ou útil."
Machado de Assis 
Copyright Fox Informática                                                       Home | Institucional | Fale Conosco | Profissionais | Artigos | China | Links