SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
DAVID RIOS BETONI




Criptografia com o uso de curvas elípticas.




        Instituto Tecnológico de Aeronáutica (ITA)

           São José dos Campos – SP – 2010
Resumo


Este trabalho apresenta criptografia com uso das curvas elípticas. Sua segurança está baseada
equações cúbicas referenciadas na matemática. Neste trabalho apresentaremos o que é curvas
Elípticas e sua aplicação na criptografia.



Introdução

        Criptografia é o estudo dos princípios e técnicas pelas quais a informação pode ser
transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas
por seu destinatário final (detentor da "chave secreta"), o que a torna difícil de ser lida por
alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com
facilidade. É um ramo da Matemática, parte da Criptologia.
        Os sistemas de criptografia são classificados em simétricos e assimétricos.
        Os sistemas simétricos usam uma chave secreta, conhecida por ambos os lados A e B
da comunicação, esta chave secreta é de conhecimento somente de A e B e ninguém mais
dever ter conhecimento. Um dos problemas de se utilizar este sistema é que os interlocutores A
e B precisam combinar previamente a chave secreta a ser usada através de um meio
comunicação seguro. Se a chave secreta for transmitida por um interlocutor a outro através de
um meio inseguro, todo o sistema de segurança estará comprometido. Outra desvantagem é que
cada interlocutor deve armazenar uma chave secreta para manter comunicação privada entre os
interlocutores, com isso a quantidade de chaves privadas criadas é enorme e de difícil
armazenamento.
        Já a criptografia assimétrica é um método de criptografia que utiliza um par de chaves:
uma chave pública e uma chave privada. A chave pública é distribuída livremente para todos os
correspondentes via e-mail ou outras formas, enquanto a chave privada deve ser conhecida
apenas pelo seu dono.
Atualmente, existem somente três tipos de sistemas de criptografia com chave pública
considerados seguros e eficientes [1]. Esses sistemas estão classificados de acordo com o
problema matemático em que eles se baseiam [1] [2]:
   •       Sistemas de fatoração de inteiros (Integer Factorization Systems – IFS), baseados no
           problema de fatoração de inteiros (Integer Factorization Problem – IFP)
   •       Sistemas de logaritmo discreto (Discrete Logarithm System – DLS), baseados no
           problema do logaritmo discreto (Discrete Logarithm Problem – DLP)
   •       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)


Abaixo, algumas das aplicações de cada uma das técnicas em algoritmos reais:

   I.            IFS : RSA - Rabin-Williams
   II.           DLS : DAS – US Gov / Diffie-Hellman/KE Schnorr
   III.          ECDSL : ECC

Alguns problemas encontrados:

                                    Problema: Fatoração de Inteiros
          Definição   Dado um número n que é o produto de dois valores primos grandes p
                      e q (ou seja, n = pq), determinar p e q.
          Base        Enquanto encontrar números primos grandes é uma tarefa
                      relativamente fácil, o problema de fatorar o produto desses valores é
                      considerada uma tarefa computacionalmente intratável .
                                     Problema: Logaritmo Discreto
          Definição   Dado um primo p , o conjunto Zp = {0, 1,..., p–1}, y, g Î Zp,(g > 0),
                      determinar x Î Zp ( 0 £ x £ p - 2 ), onde y = gx (mod p)
          Base        O problema de calcular o x = logdg(y) (logaritmo discreto na base g),
                      sendo g e y primos extensos, também é considerada uma tarefa
                      computacionalmente intratável .
                         Problema: Logaritmo Discreto em Curvas Elípticas
          Definição   Dada uma curva elíptica E, definida por um conjunto finito de pontos
                      de natureza Fq (q é o número elementos do conjunto) - E(Fq) - e os
                      pontos P, Q Î E(Fq), determinar o inteiro l ( 0 £ l £ q -1) tal que Q = lP
          Base        Ao passo que é relativamente fácil determinar o ponto Q = lP
                      (veremos isso ao definir as operações em curvas elípticas),
                      determinar l dados Q, P Î E(Fq) é bem mais difícil.
O que é uma Curva Elíptica

          As curvas elípticas se definem mediante equações cúbicas (de terceiro grau) da
matemática.

As curvas elípticas sobre o corpo dos números reais vêm a ser dadas pelas equações:
 y² = x³ − x e por y² = x³ − x + 1 onde , de modo que o polinômio não tenha raízes múltiplas, e
ainda um elemento 0 chamado ponto no infinito




A definição formal de uma curva elíptica é a de uma curva algébrica que vai se projetando no
corpo finito

Se define a curva como o conjunto de todos os pontos (x,y) que satisfazem a equação acima e
tais que x e y sejam elementos do fecho algébrico de corpo finito .

Embora estejamos mais familiarizados com o uso de curvas elípticas aplicada ao plano dos
reais, seu uso em sistemas criptográficos não seria prático e tão pouco preciso. Isso de deve,
principalmente, devido à problemas com arredondamento, “trucagem” de valores e limites .
Aplicações de criptografia necessitam de uma aritmética rápida e precisa, que pode ser obtida
através do uso de corpos inteiros finitos.


Existe uma regra para somar dois pontos pertencentes a uma curva elíptica, de tal forma que
esta soma seja um terceiro ponto sobre a mesma curva. O conjunto de pontos E(Zp), juntamente
com a operação de soma, formam um grupo abeliano, onde o ponto no infinito 0 é o elemento
neutro.
Sejam, pois, P = (x1 ; y1) e Q = (x2 ; y2) dois pontos distintos tomados em uma curva elíptica E.
A soma de P e Q, denotada por R = (x3 ; y3) é definida através do traçamento de uma linha que
atravesse P e Q. Esta linha intercepta a curva elíptica E em um terceiro ponto, onde R é a
reflexão deste ponto sobre o eixo x. Este ponto R é portanto o resultado da operação de soma P
+ Q.


Se P = (x1 ; y1), então o dobro de P, denotado por R = (x3 ; y3) define-se pelo
traçamento de uma reta tangente à curva elíptica no ponto P. Esta reta intercepta a curva
em um segundo ponto, cuja reflexão sobre o eixo x é o ponto R [14].

As fórmulas algébricas que representam P + Q podem ser derivadas dos procedimentos
geométricos na Figura abaixo.
Abaixo é ilustrado a adição de pontos diferentes e do mesmo ponto numa curva elíptica,
conforme definido acima.




Duas das mais eficientes e freqüentemente utilizadas opções de Campo Finito ou Corpo Finito
são:


   •   Curvas elípticas sobre corpos finitos primos (Fq = Fp)
   •   Curvas elípticas sobre corpos finitos de característica dois (Fq = F2m).
Aplicação de Curvas Elípticas em Criptografia

Ao se projetar um sistema de criptografia baseado em curvas elípticas, é necessário determinar,
num primeiro momento, quais são as características gerais do sistema, onde serão definidos
todos as operações e parâmetros genéricos que todos os componentes irão utilizar. Num
segundo momento, cada um dos usuários desse sistema terá que definir seus parâmetros
pessoais (chaves), de forma a viabilizar sua participação no sistema. Ao se determinar as
características gerais do sistema, precisamos realizar os seguintes passos [6][18]:
    I.      Definir a natureza de seu campo finito Fq (Fp ou F2m);
    II.     Selecionar a representação para os elementos em Fq (polinomial, base ótima,
            subcampos, etc);
    III.    Implementar aritmética e operações em Fq;
    IV.     Selecionar uma curva apropriada em Fq (quais parâmetros utilizar para a curva)
    V.      Definir um ponto gerador em E(Fq)
    VI.     Definir o mapeamento da mensagem original em pontos de uma curva (“embedding”)
Discussões mais extensas sobre o que deve ser evitado e quais as “boas práticas” em
termos de parametrização dessas curvas também podem ser vistas em [1].
Exemplo de Criptografia com Curvas Elípticas
Considerando uma curva elíptica E(F751) com a equação y2 = x3- x + 188 (mod 751) (a = -1 e b
= 188), e ponto gerador G = (0, 376). Consequentemente, os múltiplos kG do ponto gerador G
são (1≤ k≤ 751 )
G = (0, 376)                2G = (1, 376)            3G = (750, 375)        4G = (2, 373)
5G = (188, 657)             6G = (6, 390)            7G = (667, 571)        8G = (121, 39)
9G = (582, 736)             10G = (57, 332)          ... ... ...            761G = (565, 312)
762G = (328, 569)           763G = (677, 185)        764G = (196, 681)      765G = (417, 320)
766G = (3, 370)             767G = (1, 377)          768G = (0, 375)        769G = O (ponto no
infinito)
Quando A decide mandar uma mensagem M para B, ele deve saber, a partir de alguma
estratégia, a chave pública do destinatário. Se o destinatário desse exemplo escolheu o valor
nB = 85 como chave privada, teremos que a chave pública correspondente à mesma é o ponto
PB = nBG = 85(0, 376) => PB = (671,558). O procedimento de criptografia de PM passa, então,
pelas etapas:
            A: Mapeia a mensagem M no ponto PM = (433, 253) € E(Fq)
            A: Escolhe, digamos, k = 113
            A: Calcula o par de pontos PC :
                    PC = [(kG), (PM+ kPB)]
                    PC = [113 (0, 376), (443, 253) + 113 (671, 558)]
                    PC = [(34, 633), (443, 253) + (47, 416)]
                    PC = [(34, 633), (217, 606)]
            A: Transmite para B o par de pontos cifrados PC = [(34, 633), (217, 606)]


            B: Recebe o par de pontos cifrados PC= [(34, 633), (217, 606)
            B: Calcula, a partir de sua chave privada nB = 85:
                    (PM + kPB) – [nB (kG)] = (217, 606) – [85(34, 633)]
                    (PM + kPB) – [nB (kG)] = (217, 606) – [(47, 416)]
                    (PM + kPB) – [nB (kG)] = (217, 606) + [(47, -416)] (PM + kPB) – [nB (kG)] = (217,
            606) + [(47, 335)] (–416 =335 mod 751)
                    (PM + kPB) – [nB (kG)] = (443, 253)


                    B: Mapeia ponto PM = (433, 253) novamente na mensagem M
Bibliografia

[1] BARBOSA, J. C. – “CRIPTOGRAFIA DE CHAVE PÚBLICA BASEADA EM CURVAS
ELÍPTICAS” 2003
[2] Prof. Dr. Jean-Yves Chouinard - “Notes on Elliptic Curve Cryptography” –
Design of Secure Computer Systems - http:://www.site.uottawa.ca/ - September, 24th, 2002
[3] V. Miller. Uses of Elliptic Curves in Cryptography. Advances in Cryptography,
Crypto 85, Springs Verlag LNCS 218, 417-426, 1986

[4] www.certicom.com – An Introduction to Information Security– A Certicom

Whitepaper – March, 1997

[5] www.certicom.com - Current Public-Key Cryptographic Systems – A Certicom

Whitepaper – April, 1997

[6] www.certicom.com – Remarks on the Security of the Elliptic Curve Cryptosystem – A Certicom
Whitepaper – September, 1997- DIFFIE, Whitfield; HELLMAN, Martin. E. New directions in
cryptography. IEEE Transactions on Information Theory, vol. 22, n. 6, p. 644-654, 1976.

[7]BOTES, J. J.; PENZHORN, W. T. Public-key cryptosystems based on elliptic curves.
Communications and Signal Processing, 1993., Proceedings of the 1993 IEEE South African
Symposium

[8] Portonoi P. “Criptografia com curvas Elípticas “ 2005

Más contenido relacionado

La actualidad más candente

Função exponencial e função logarítmica
Função exponencial e função logarítmicaFunção exponencial e função logarítmica
Função exponencial e função logarítmica
Everton Moraes
 
04 eac proj vest mat módulo 1 função logarítmica
04 eac proj vest mat módulo 1 função logarítmica04 eac proj vest mat módulo 1 função logarítmica
04 eac proj vest mat módulo 1 função logarítmica
con_seguir
 
Lista de exercicio de funcao exponencial
Lista de exercicio de funcao exponencialLista de exercicio de funcao exponencial
Lista de exercicio de funcao exponencial
Cleidison Melo
 
MatemáTica Estudo Dos Log
MatemáTica Estudo Dos LogMatemáTica Estudo Dos Log
MatemáTica Estudo Dos Log
educacao f
 
Logaritmo e exponencial
Logaritmo e exponencialLogaritmo e exponencial
Logaritmo e exponencial
didicadoida
 
Apostila 3 calculo i integrais
Apostila 3 calculo i integraisApostila 3 calculo i integrais
Apostila 3 calculo i integrais
trigono_metrico
 
Matematica 1 exercicios gabarito 07
Matematica 1 exercicios gabarito 07Matematica 1 exercicios gabarito 07
Matematica 1 exercicios gabarito 07
comentada
 
03 eac proj vest mat módulo 1 função exponencial
03 eac proj vest mat módulo 1 função exponencial03 eac proj vest mat módulo 1 função exponencial
03 eac proj vest mat módulo 1 função exponencial
con_seguir
 
Cálculo diferencial e integral de várias variáveis unid iii
Cálculo diferencial e integral de várias variáveis   unid iiiCálculo diferencial e integral de várias variáveis   unid iii
Cálculo diferencial e integral de várias variáveis unid iii
Bruno Luz
 

La actualidad más candente (20)

09 problemas de grafos np-completos
09 problemas de grafos np-completos09 problemas de grafos np-completos
09 problemas de grafos np-completos
 
Função exponencial e função logarítmica
Função exponencial e função logarítmicaFunção exponencial e função logarítmica
Função exponencial e função logarítmica
 
Fu log 2016
Fu log 2016Fu log 2016
Fu log 2016
 
Logarítmos
LogarítmosLogarítmos
Logarítmos
 
IA Perceptron
IA PerceptronIA Perceptron
IA Perceptron
 
04 eac proj vest mat módulo 1 função logarítmica
04 eac proj vest mat módulo 1 função logarítmica04 eac proj vest mat módulo 1 função logarítmica
04 eac proj vest mat módulo 1 função logarítmica
 
Lista de exercicio de funcao exponencial
Lista de exercicio de funcao exponencialLista de exercicio de funcao exponencial
Lista de exercicio de funcao exponencial
 
MatemáTica Estudo Dos Log
MatemáTica Estudo Dos LogMatemáTica Estudo Dos Log
MatemáTica Estudo Dos Log
 
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...
 
Logaritmo e exponencial
Logaritmo e exponencialLogaritmo e exponencial
Logaritmo e exponencial
 
Apostila 3 calculo i integrais
Apostila 3 calculo i integraisApostila 3 calculo i integrais
Apostila 3 calculo i integrais
 
www.CentroApoio.com - Matemática - Logaritmo
www.CentroApoio.com - Matemática - Logaritmowww.CentroApoio.com - Matemática - Logaritmo
www.CentroApoio.com - Matemática - Logaritmo
 
Aula de LOGARITMOS
Aula de LOGARITMOSAula de LOGARITMOS
Aula de LOGARITMOS
 
Apostila logaritmos
Apostila logaritmosApostila logaritmos
Apostila logaritmos
 
Logaritmos
LogaritmosLogaritmos
Logaritmos
 
Matematica 1 exercicios gabarito 07
Matematica 1 exercicios gabarito 07Matematica 1 exercicios gabarito 07
Matematica 1 exercicios gabarito 07
 
03 eac proj vest mat módulo 1 função exponencial
03 eac proj vest mat módulo 1 função exponencial03 eac proj vest mat módulo 1 função exponencial
03 eac proj vest mat módulo 1 função exponencial
 
Logarítmos
LogarítmosLogarítmos
Logarítmos
 
Calculo numerico capitulo 2
Calculo numerico capitulo 2Calculo numerico capitulo 2
Calculo numerico capitulo 2
 
Cálculo diferencial e integral de várias variáveis unid iii
Cálculo diferencial e integral de várias variáveis   unid iiiCálculo diferencial e integral de várias variáveis   unid iii
Cálculo diferencial e integral de várias variáveis unid iii
 

Destacado

Criptografia e segurança na informática
Criptografia e segurança na informáticaCriptografia e segurança na informática
Criptografia e segurança na informática
Andielson Becker
 
curvas elipticas
 curvas elipticas curvas elipticas
curvas elipticas
G Hoyos A
 
Criptografia e certificação digital
Criptografia e certificação digitalCriptografia e certificação digital
Criptografia e certificação digital
Juarez Junior
 
Introducao a criptografia
Introducao a criptografiaIntroducao a criptografia
Introducao a criptografia
gillojau
 
CIFRADO RSA
CIFRADO RSACIFRADO RSA
CIFRADO RSA
rul05
 
Criptografía Y Encriptacion
Criptografía Y EncriptacionCriptografía Y Encriptacion
Criptografía Y Encriptacion
JESSICA BECERRA
 

Destacado (18)

Criptofgrafia sobre curvas elípticas
Criptofgrafia sobre curvas elípticasCriptofgrafia sobre curvas elípticas
Criptofgrafia sobre curvas elípticas
 
Segurança da Votação Eletrônica Brasileira - Uma Análise Crítica - Paulo Pagl...
Segurança da Votação Eletrônica Brasileira - Uma Análise Crítica - Paulo Pagl...Segurança da Votação Eletrônica Brasileira - Uma Análise Crítica - Paulo Pagl...
Segurança da Votação Eletrônica Brasileira - Uma Análise Crítica - Paulo Pagl...
 
acme-tutorial-PGP-LCM
acme-tutorial-PGP-LCMacme-tutorial-PGP-LCM
acme-tutorial-PGP-LCM
 
Criptografia e segurança na informática
Criptografia e segurança na informáticaCriptografia e segurança na informática
Criptografia e segurança na informática
 
criptografia de curva elipticas
criptografia de curva elipticascriptografia de curva elipticas
criptografia de curva elipticas
 
curvas elipticas
 curvas elipticas curvas elipticas
curvas elipticas
 
Criptografia e certificação digital
Criptografia e certificação digitalCriptografia e certificação digital
Criptografia e certificação digital
 
Introdução a criptografia
Introdução a criptografiaIntrodução a criptografia
Introdução a criptografia
 
Certificados Digitais & Criptografia
Certificados Digitais & CriptografiaCertificados Digitais & Criptografia
Certificados Digitais & Criptografia
 
Introducao a criptografia
Introducao a criptografiaIntroducao a criptografia
Introducao a criptografia
 
Criptografia - Decifra Me Ou Te Devoro
Criptografia - Decifra Me Ou Te DevoroCriptografia - Decifra Me Ou Te Devoro
Criptografia - Decifra Me Ou Te Devoro
 
Criptografia
CriptografiaCriptografia
Criptografia
 
CIFRADO RSA
CIFRADO RSACIFRADO RSA
CIFRADO RSA
 
Criptografia simetrica e assimétrica
Criptografia simetrica e assimétricaCriptografia simetrica e assimétrica
Criptografia simetrica e assimétrica
 
Explicando a máquina Enigma
Explicando a máquina EnigmaExplicando a máquina Enigma
Explicando a máquina Enigma
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Criptografía Y Encriptacion
Criptografía Y EncriptacionCriptografía Y Encriptacion
Criptografía Y Encriptacion
 

Similar a Criptografia com curva_eliptica_dbetoni

13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
Ricardo Bolanho
 
Nota de aula seguranca da informacao - criptografia
Nota de aula   seguranca da informacao - criptografiaNota de aula   seguranca da informacao - criptografia
Nota de aula seguranca da informacao - criptografia
felipetsi
 
Ger numaleat(1)
Ger numaleat(1)Ger numaleat(1)
Ger numaleat(1)
Iago Lira
 
CAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo LuzCAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo Luz
Eduardo Luz
 
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptxAula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Juliana Menezes
 
Estudo de Funções com o Software Winplot
Estudo de Funções com o Software Winplot Estudo de Funções com o Software Winplot
Estudo de Funções com o Software Winplot
Rodrigo Romais
 

Similar a Criptografia com curva_eliptica_dbetoni (20)

13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Nota de aula seguranca da informacao - criptografia
Nota de aula   seguranca da informacao - criptografiaNota de aula   seguranca da informacao - criptografia
Nota de aula seguranca da informacao - criptografia
 
Aes 25
Aes 25Aes 25
Aes 25
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdf
 
Ger numaleat(1)
Ger numaleat(1)Ger numaleat(1)
Ger numaleat(1)
 
03 pid d
03 pid d03 pid d
03 pid d
 
Trabalho de Cálculo Numérico
Trabalho  de Cálculo NuméricoTrabalho  de Cálculo Numérico
Trabalho de Cálculo Numérico
 
Trabalho de Cálculo numérico
Trabalho de Cálculo numéricoTrabalho de Cálculo numérico
Trabalho de Cálculo numérico
 
Math
MathMath
Math
 
Formula luderiana racional para extracao de raiz quadrada (completo)
Formula luderiana racional para extracao de raiz quadrada (completo)Formula luderiana racional para extracao de raiz quadrada (completo)
Formula luderiana racional para extracao de raiz quadrada (completo)
 
FORMA ANALÍTICA E MÉTODOS DAS DIFERENÇAS FINITAS APLICADO AO POTENCIAL DENTRO...
FORMA ANALÍTICA E MÉTODOS DAS DIFERENÇAS FINITAS APLICADO AO POTENCIAL DENTRO...FORMA ANALÍTICA E MÉTODOS DAS DIFERENÇAS FINITAS APLICADO AO POTENCIAL DENTRO...
FORMA ANALÍTICA E MÉTODOS DAS DIFERENÇAS FINITAS APLICADO AO POTENCIAL DENTRO...
 
Função Quadrática Zeros, Vérticees.ppt
Função Quadrática Zeros, Vérticees.pptFunção Quadrática Zeros, Vérticees.ppt
Função Quadrática Zeros, Vérticees.ppt
 
Aula2
Aula2Aula2
Aula2
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1
 
Floyd-Warshall
Floyd-WarshallFloyd-Warshall
Floyd-Warshall
 
CAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo LuzCAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo Luz
 
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptxAula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
Aula de Apresentação, Função e Função do 1º Grau.ppt · versão 1.pptx
 
Apostila rpira
Apostila rpiraApostila rpira
Apostila rpira
 
Estudo de Funções com o Software Winplot
Estudo de Funções com o Software Winplot Estudo de Funções com o Software Winplot
Estudo de Funções com o Software Winplot
 
Mat regra de sinais
Mat regra de sinaisMat regra de sinais
Mat regra de sinais
 

Criptografia com curva_eliptica_dbetoni

  • 1. DAVID RIOS BETONI Criptografia com o uso de curvas elípticas. Instituto Tecnológico de Aeronáutica (ITA) São José dos Campos – SP – 2010
  • 2. Resumo Este trabalho apresenta criptografia com uso das curvas elípticas. Sua segurança está baseada equações cúbicas referenciadas na matemática. Neste trabalho apresentaremos o que é curvas Elípticas e sua aplicação na criptografia. Introdução Criptografia é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário final (detentor da "chave secreta"), o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade. É um ramo da Matemática, parte da Criptologia. Os sistemas de criptografia são classificados em simétricos e assimétricos. Os sistemas simétricos usam uma chave secreta, conhecida por ambos os lados A e B da comunicação, esta chave secreta é de conhecimento somente de A e B e ninguém mais dever ter conhecimento. Um dos problemas de se utilizar este sistema é que os interlocutores A e B precisam combinar previamente a chave secreta a ser usada através de um meio comunicação seguro. Se a chave secreta for transmitida por um interlocutor a outro através de um meio inseguro, todo o sistema de segurança estará comprometido. Outra desvantagem é que cada interlocutor deve armazenar uma chave secreta para manter comunicação privada entre os interlocutores, com isso a quantidade de chaves privadas criadas é enorme e de difícil armazenamento. Já a criptografia assimétrica é um método de criptografia que utiliza um par de chaves: uma chave pública e uma chave privada. A chave pública é distribuída livremente para todos os correspondentes via e-mail ou outras formas, enquanto a chave privada deve ser conhecida apenas pelo seu dono.
  • 3. Atualmente, existem somente três tipos de sistemas de criptografia com chave pública considerados seguros e eficientes [1]. Esses sistemas estão classificados de acordo com o problema matemático em que eles se baseiam [1] [2]: • Sistemas de fatoração de inteiros (Integer Factorization Systems – IFS), baseados no problema de fatoração de inteiros (Integer Factorization Problem – IFP) • Sistemas de logaritmo discreto (Discrete Logarithm System – DLS), baseados no problema do logaritmo discreto (Discrete Logarithm Problem – DLP) • 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) Abaixo, algumas das aplicações de cada uma das técnicas em algoritmos reais: I. IFS : RSA - Rabin-Williams II. DLS : DAS – US Gov / Diffie-Hellman/KE Schnorr III. ECDSL : ECC Alguns problemas encontrados: Problema: Fatoração de Inteiros Definição Dado um número n que é o produto de dois valores primos grandes p e q (ou seja, n = pq), determinar p e q. Base Enquanto encontrar números primos grandes é uma tarefa relativamente fácil, o problema de fatorar o produto desses valores é considerada uma tarefa computacionalmente intratável . Problema: Logaritmo Discreto Definição Dado um primo p , o conjunto Zp = {0, 1,..., p–1}, y, g Î Zp,(g > 0), determinar x Î Zp ( 0 £ x £ p - 2 ), onde y = gx (mod p) Base O problema de calcular o x = logdg(y) (logaritmo discreto na base g), sendo g e y primos extensos, também é considerada uma tarefa computacionalmente intratável . Problema: Logaritmo Discreto em Curvas Elípticas Definição Dada uma curva elíptica E, definida por um conjunto finito de pontos de natureza Fq (q é o número elementos do conjunto) - E(Fq) - e os pontos P, Q Î E(Fq), determinar o inteiro l ( 0 £ l £ q -1) tal que Q = lP Base Ao passo que é relativamente fácil determinar o ponto Q = lP (veremos isso ao definir as operações em curvas elípticas), determinar l dados Q, P Î E(Fq) é bem mais difícil.
  • 4. O que é uma Curva Elíptica As curvas elípticas se definem mediante equações cúbicas (de terceiro grau) da matemática. As curvas elípticas sobre o corpo dos números reais vêm a ser dadas pelas equações: y² = x³ − x e por y² = x³ − x + 1 onde , de modo que o polinômio não tenha raízes múltiplas, e ainda um elemento 0 chamado ponto no infinito A definição formal de uma curva elíptica é a de uma curva algébrica que vai se projetando no corpo finito Se define a curva como o conjunto de todos os pontos (x,y) que satisfazem a equação acima e tais que x e y sejam elementos do fecho algébrico de corpo finito . Embora estejamos mais familiarizados com o uso de curvas elípticas aplicada ao plano dos reais, seu uso em sistemas criptográficos não seria prático e tão pouco preciso. Isso de deve, principalmente, devido à problemas com arredondamento, “trucagem” de valores e limites . Aplicações de criptografia necessitam de uma aritmética rápida e precisa, que pode ser obtida através do uso de corpos inteiros finitos. Existe uma regra para somar dois pontos pertencentes a uma curva elíptica, de tal forma que esta soma seja um terceiro ponto sobre a mesma curva. O conjunto de pontos E(Zp), juntamente com a operação de soma, formam um grupo abeliano, onde o ponto no infinito 0 é o elemento neutro.
  • 5. Sejam, pois, P = (x1 ; y1) e Q = (x2 ; y2) dois pontos distintos tomados em uma curva elíptica E. A soma de P e Q, denotada por R = (x3 ; y3) é definida através do traçamento de uma linha que atravesse P e Q. Esta linha intercepta a curva elíptica E em um terceiro ponto, onde R é a reflexão deste ponto sobre o eixo x. Este ponto R é portanto o resultado da operação de soma P + Q. Se P = (x1 ; y1), então o dobro de P, denotado por R = (x3 ; y3) define-se pelo traçamento de uma reta tangente à curva elíptica no ponto P. Esta reta intercepta a curva em um segundo ponto, cuja reflexão sobre o eixo x é o ponto R [14]. As fórmulas algébricas que representam P + Q podem ser derivadas dos procedimentos geométricos na Figura abaixo.
  • 6. Abaixo é ilustrado a adição de pontos diferentes e do mesmo ponto numa curva elíptica, conforme definido acima. Duas das mais eficientes e freqüentemente utilizadas opções de Campo Finito ou Corpo Finito são: • Curvas elípticas sobre corpos finitos primos (Fq = Fp) • Curvas elípticas sobre corpos finitos de característica dois (Fq = F2m).
  • 7. Aplicação de Curvas Elípticas em Criptografia Ao se projetar um sistema de criptografia baseado em curvas elípticas, é necessário determinar, num primeiro momento, quais são as características gerais do sistema, onde serão definidos todos as operações e parâmetros genéricos que todos os componentes irão utilizar. Num segundo momento, cada um dos usuários desse sistema terá que definir seus parâmetros pessoais (chaves), de forma a viabilizar sua participação no sistema. Ao se determinar as características gerais do sistema, precisamos realizar os seguintes passos [6][18]: I. Definir a natureza de seu campo finito Fq (Fp ou F2m); II. Selecionar a representação para os elementos em Fq (polinomial, base ótima, subcampos, etc); III. Implementar aritmética e operações em Fq; IV. Selecionar uma curva apropriada em Fq (quais parâmetros utilizar para a curva) V. Definir um ponto gerador em E(Fq) VI. Definir o mapeamento da mensagem original em pontos de uma curva (“embedding”) Discussões mais extensas sobre o que deve ser evitado e quais as “boas práticas” em termos de parametrização dessas curvas também podem ser vistas em [1].
  • 8. Exemplo de Criptografia com Curvas Elípticas Considerando uma curva elíptica E(F751) com a equação y2 = x3- x + 188 (mod 751) (a = -1 e b = 188), e ponto gerador G = (0, 376). Consequentemente, os múltiplos kG do ponto gerador G são (1≤ k≤ 751 ) G = (0, 376) 2G = (1, 376) 3G = (750, 375) 4G = (2, 373) 5G = (188, 657) 6G = (6, 390) 7G = (667, 571) 8G = (121, 39) 9G = (582, 736) 10G = (57, 332) ... ... ... 761G = (565, 312) 762G = (328, 569) 763G = (677, 185) 764G = (196, 681) 765G = (417, 320) 766G = (3, 370) 767G = (1, 377) 768G = (0, 375) 769G = O (ponto no infinito) Quando A decide mandar uma mensagem M para B, ele deve saber, a partir de alguma estratégia, a chave pública do destinatário. Se o destinatário desse exemplo escolheu o valor nB = 85 como chave privada, teremos que a chave pública correspondente à mesma é o ponto PB = nBG = 85(0, 376) => PB = (671,558). O procedimento de criptografia de PM passa, então, pelas etapas: A: Mapeia a mensagem M no ponto PM = (433, 253) € E(Fq) A: Escolhe, digamos, k = 113 A: Calcula o par de pontos PC : PC = [(kG), (PM+ kPB)] PC = [113 (0, 376), (443, 253) + 113 (671, 558)] PC = [(34, 633), (443, 253) + (47, 416)] PC = [(34, 633), (217, 606)] A: Transmite para B o par de pontos cifrados PC = [(34, 633), (217, 606)] B: Recebe o par de pontos cifrados PC= [(34, 633), (217, 606) B: Calcula, a partir de sua chave privada nB = 85: (PM + kPB) – [nB (kG)] = (217, 606) – [85(34, 633)] (PM + kPB) – [nB (kG)] = (217, 606) – [(47, 416)] (PM + kPB) – [nB (kG)] = (217, 606) + [(47, -416)] (PM + kPB) – [nB (kG)] = (217, 606) + [(47, 335)] (–416 =335 mod 751) (PM + kPB) – [nB (kG)] = (443, 253) B: Mapeia ponto PM = (433, 253) novamente na mensagem M
  • 9. Bibliografia [1] BARBOSA, J. C. – “CRIPTOGRAFIA DE CHAVE PÚBLICA BASEADA EM CURVAS ELÍPTICAS” 2003 [2] Prof. Dr. Jean-Yves Chouinard - “Notes on Elliptic Curve Cryptography” – Design of Secure Computer Systems - http:://www.site.uottawa.ca/ - September, 24th, 2002 [3] V. Miller. Uses of Elliptic Curves in Cryptography. Advances in Cryptography, Crypto 85, Springs Verlag LNCS 218, 417-426, 1986 [4] www.certicom.com – An Introduction to Information Security– A Certicom Whitepaper – March, 1997 [5] www.certicom.com - Current Public-Key Cryptographic Systems – A Certicom Whitepaper – April, 1997 [6] www.certicom.com – Remarks on the Security of the Elliptic Curve Cryptosystem – A Certicom Whitepaper – September, 1997- DIFFIE, Whitfield; HELLMAN, Martin. E. New directions in cryptography. IEEE Transactions on Information Theory, vol. 22, n. 6, p. 644-654, 1976. [7]BOTES, J. J.; PENZHORN, W. T. Public-key cryptosystems based on elliptic curves. Communications and Signal Processing, 1993., Proceedings of the 1993 IEEE South African Symposium [8] Portonoi P. “Criptografia com curvas Elípticas “ 2005