Uma introduo criptografia com curvas elpticas Afonso Comba
Uma introdução à criptografia com curvas elípticas Afonso Comba de Araujo Neto
Curvas elípticas são equações que definem um conjunto de pontos em um plano bidimensional l Elas têm a seguinte forma geral l l Com coeficientes pertencentes ao conjunto sobre o qual a curva está definida.
Corpos l l l Todas as curvas elípticas são definidas sobre algum corpo Um corpo é um conjunto, mais duas operações com características especiais O corpo dos reais é composto pelo conjunto dos reais mais as operações de adição e multiplicação Essas operações definem como os símbolos + e x são interpretados nas equações Os corpos utilizados na prática são os chamados “corpos finitos”, mas exemplificaremos com o corpo dos reais
Curvas elípticas l Utilizando o conjunto dos reais, a equação pode ser simplificada da seguinte forma l Com l É necessário que a curva possua tangente à todos os seus pontos
Curvas elípticas Exemplo:
Lei de grupo l l Devido às características destas curvas, podemos tomar o conjunto de pontos de uma curva elíptica e definir uma operação fechada sobre ele. É o que chamamos lei de grupo A lei de grupo deve possuir as seguintes propriedades 1. 2. 3. 4. Comutatividade Existência da identidade Existência do inverso Associatividade
Definição da operação l l Ao conjunto de pontos da curva, é adicionado um ponto extra chamado ponto no infinito, normalmente denotado por Para satisfazer as propriedades antes mencionadas, algumas definições se fazem necessárias l l definimos o ponto no infinito como sendo a identidade; dado um ponto P = (x, y), definimos o inverso de P como P = (x, -y). Devido à natureza simétrica das curvas elípticas, o inverso sempre existe, e o inverso da identidade é a própria identidade.
Soma de pontos l Para definirmos a operação, que chamaremos de soma de pontos, entre os elementos do conjunto, existem quatro casos a serem considerados. Consideremos dois pontos quaisquer do conjunto, P e Q. l Caso 1: é trivialmente dedutível da definição de identidade. Se um dos pontos é a identidade, então o resultado é igual ao outro ponto.
Soma de pontos l Caso 2: Dedutível da definição de inverso. Se um dos pontos é o inverso do outro, a operação entre eles resulta na identidade. Exemplo:
Soma de pontos l Caso 3: É o caso mais comum. Se P é diferente de Q, então traçamos uma reta que passe por P e Q. Essa reta interceptará a curva em um terceiro ponto R. O resultado da operação é o inverso do ponto R, ou seja, R. l Podemos ver que o caso 2 é um caso particular do caso 3 onde a reta intercepta, por definição, o ponto no infinito.
Exemplo
Soma de pontos l Caso 4: Caso P e Q sejam iguais, e diferentes da identidade, traça-se uma reta tangente à curva no ponto P. Da mesma forma que no caso anterior, a reta intercepta um terceiro ponto R. O resultado é o inverso desse ponto. l É importante notar que esse caso é o mesmo que calcularmos P + P = 2 P.
Exemplo
Equações algébricas l Naturalmente, a implementação prática desse sistema se dá através de um sistema de equações algébricas. l R = P + Q é calculado da seguinte forma:
Campos finitos Entendido o funcionamento da operação de soma de pontos de uma curva elíptica, podemos começar a adaptar o sistema para seu uso em criptografia l Na prática, os criptossistemas elípticos são definidos sobre corpos finitos, ou seja, corpos cujo conjunto base tem um número finito de elementos l Dois conjuntos são normalmente utilizados l l GF(p) - número primo de elementos GF(2 m) – número de elementos igual a uma potência de 2 Nesses corpos, as operações são tomadas em módulo
Campos finitos l Desta forma, deixamos de ter curvas e passamos a ter um conjunto discreto de pontos. l Exemplo de curva sobre GF(23)
Produto escalar Ao somar um ponto P com ele mesmo, estamos multiplicando o ponto por 2 l Se somarmos novamente o ponto ao resultado, obteremos 3 P l Podemos definir o produto escalar no sistema elíptico, que seria o produto de um ponto por um valor escalar k. l
Otimização do produto escalar l A associatividade da soma de pontos permite que façamos otimizações no produto escalar. Por exemplo, podemos calcular 50 P da seguinte forma O objetivo disto é minimizar o número de somas elípticas. No exemplo, são necessárias apenas 12 somas ao invés de 50. l A fim de generalizar o procedimento, Neal Koblitz, um dos inventores da criptografia com curvas elípticas, desenvolveu um algoritmo conhecido como expansão binária balanceada, que faz com que o número de somas elípticas seja proporcional ao número de bits do valor escalar multiplicado. l l Essa otimização é fundamental para a criptografia
Ponto gerador O produto escalar permite que pensemos em uma seqüência de pontos l Dado um ponto P, podemos nos referir aos outros pontos da curva como 2 P, 3 P, 4 P, etc. l Isso significa que podemos pegar um ponto qualquer e utilizá-lo como referência para identificação de todos os outros pontos. Esse ponto é o que chamamos de ponto gerador, ou G l Isso agiliza a aritmética, na medida em que podemos somar os coeficientes dos pontos ao invés dos pontos diretamente. l Ex. : 7 G + 10 G = 17 G l
O criptossistema elíptico O problema do logaritmo discreto e os protocolos criptográficos
Problema do logaritmo discreto elíptico l Todas as técnicas de criptografia com chave pública são baseadas em problemas matemáticos intratáveis. l RSA: fatoração em componentes primos Ø l El Gamal e Diffie-Hellman: logaritmo discreto Ø l Dado um número inteiro, descobrir dois números primos que multiplicados resultem neste número Dado o resultado de uma potenciação em módulo e a base da potência, descobrir o expoente Da mesma forma, a criptografia com curvas elípticas é baseada no chamado problema do logaritmo discreto elíptico, ou Elliptic Curve Discrete Logarithm Problem (ECDLP)
ECDLP l O problema do logaritmo discreto elíptico pode ser enunciado da seguinte forma: Dados os pontos P e G na equação P = k x G, descobrir o valor escalar k. Os métodos existentes para resolução deste problema não são muito melhores que a simples força bruta l Esse é, atualmente, o problema matemático mais difícil empregado na prática para fins criptográficos l
Protocolos criptográficos l Os protocolos criptográficos são os procedimentos através dos quais podemos nos utilizar o ECDLP como base para criptografia assimétrica l Como o próprio nome sugere, os protocolos que se utilizam do logaritmo discreto convencional (como El Gamal e Diffie-Hellman) são facilmente transpostos para o modelo elíptico
Protocolos criptográficos l Todos os protocolos se utilizam de parâmetros públicos e parâmetros privados l Em todos os casos, é necessário que as partes concordem nos parâmetros públicos, sendo eles: 1. 2. 3. O corpo utilizado, GF(p) ou GF(2 m) A curva utilizada Um ponto gerador sobre esta curva, que chamaremos de G.
Elliptic Curve Diffie-Hellman Protocolo para troca de um segredo através de um canal público. l Funcionamento: l l l Alice deseja trocar um segredo Qs com Bob. Alice escolhe um valor escalar ka qualquer e calcula o ponto Qa = ka x G, e envia Qa para Bob calcula Qb = kb x G, da mesma forma, e envia Qb para Alice Cada um deles pega o ponto recebido e multiplica pelo seu próprio valor escalar, obtendo: Qs = k a x Qb = k b x Qa = k a x k b x G O ECDLP garante que ka não é dedutível de Qa e G, assim como kb não é dedutível de Qb e G.
Elliptic Curve AES Protocolo de chave pública baseado no El Gamal l A idéia é criar e cifrar um ponto da curva e utilizá-lo como chave para o algoritmo simétrico AES l Funcionamento: l l l Alice deseja mandar um documento secreto m para Bob escolhe um valor escalar k e calcula Y = k x G. Y é a sua chave pública, e k a sua chave privada. Alice, de posse de Y, escolhe um valor descartável qualquer s e calcula os pontos N = s x G e C = s x Y. Alice então utiliza o ponto C de alguma forma como chave simétrica para o AES e calcula a mensagem cifrada M = E(C, m). Alice envia M e N para Bob então calcula C = k x N. Em posse de C, ele utiliza o AES novamente para recuperar m, m = D(C, M)
Elliptic Curve DSA Protocolo para assinatura digital de um hash de documento l Dado o hash m, a chave pública Y e a chave privada k, a assinatura é obtida da seguinte forma: l l l Escolhe-se um valor descartável s e calcula-se N = s x G. Sendo r a abscissa do ponto N, calcula-se w = s(m + rk)-1. A assinatura é o par <r, w>. Para verificarmos a assinatura, calculamos V = wm x G + wr x Y. A abscissa de V deve ser igual a r, pois V e N devem ser o mesmo ponto. A demonstração da igualdade V = N está no trabalho escrito
Criptografia com curvas elípticas na prática
ECC versus RSA l Tamanhos de chave Maturidade do sistema l Reconhecimento comercial l
ECC versus RSA l Um estudo da Sun, através do SSL, mostrou que a criptografia elíptica realmente é tão mais eficiente que a criptografia com RSA quanto maior for a segurança necessária Tempos (ms) de execução das operações criptográficas básicas, para RSA 1024 bits e ECC 163 bits (acima) e RSA 2048 bits e ECC 193 bits (abaixo)
Conclusões A criptografia com curvas elípticas é uma técnica ainda muito nova l É importante existir uma tecnologia de criptografia assimétrica confiável alternativa ao RSA l O RSA está bem estabelecido e não deve ser substituído, a não ser nos casos em que a eficiência da criptografia elíptica se mostre muito importante, como nos sistemas wireless e smart cards l l Desafio ECC
- Slides: 31