Intermaths: Revista de Matemática Aplicada e Interdisciplinar (ISSN: 2675-8318)
DOI: https://doi.org/10.22481/intermaths.v5i2.15134
Universidade Estadual Paulista Júlio de Mesquita Filho: Sao Paulo, SP, BR
https://orcid.org/0000-0002-1359-9898
SISTEMAS CRIPTOGRÁFICOS USANDO CURVAS ELÍPTICAS
Resumo
Neste trabalho iremos discutir e comparar alguns Criptosistemas baseados em Curvas Elípticas. E por quê usar as Curvas Elípticas em Criptografia? O motivo principal é que elas fornecem segurança equivalente aos sistemas clássicos usando menos bits. Por exemplo, em [1] foi estimado que o tamanho de uma chave de 4096 bits para o sistema RSA fornece o mesmo nível de segurança do que 313 bits num sistema usando Curvas Elípticas. Isto significa que a implementação para sistemas com Curvas Elípticas requer chips de menor tamanho, menor consumo de energia, entre outros fatores. Em [4], os autores fizeram um experimento num pequeno dispositivo portátil (3Com’s Palm Pilot) maior que um cartão inteligente mas menor que um laptop. Eles verificaram que gerar uma chave de 512-bit RSA toma 3,4 minutos, enquanto gerar uma chave de 163-bit no sistema ECC-DSA toma 0,597 segundos. Embora certos procedimentos, como verificação de assinaturas, tenham sido um pouco mais rápidos para o RSA, os métodos com Curvas Elípticas, como ECC-DSA, oferecem maior velocidade em diversas situações.
Palavras-chave: Curvas Elípticas; Criptografia; Sistemas Criptográficos.
CRYPTOGRAPHIC SYSTEMS USING ELLIPTIC CURVES
Abstract
In this work we will discuss and compare some Cryptosystems based on Elliptic Curves. And why use Elliptic Curves in Cryptography? The main reason is that they provide equivalent security to classical systems using fewer bits. For example, in [1] it was estimated that a key size of 4096 bits for the RSA system provides the same level of security as 313 bits in a system using Elliptic Curves. This means that the implementation for systems with Elliptic Curves requires smaller chips, lower power consumption, among other factors. In [4], the authors did an experiment on a small portable device (3Com’s Palm Pilot) larger than a smart card but smaller than a laptop. They found that generating a 512-bit RSA key takes 3.4 minutes, while generating a 163-bit key in the ECC-DSA system takes 0.597 seconds. Although certain procedures, such as signature verification, were slightly faster for RSA, Elliptic Curve methods, such as ECC-DSA, offer greater speed in several situations
Keywords: Elliptic Curves; Cryptography; Criptography Systems.
1 Introdução
A situação clássica no envio de mensagens entre duas pessoas pode ser colocada no seguinte contexto. Alice deseja enviar uma mensagem para Bob. Para evitar que Eva, a intrusa, leia a mensagem, Alice criptografa a mensagem para obter o texto cifrado. Quando Bob recebe o texto cifrado, ele descriptografa e lê a mensagem. Para criptografar a mensagem, Alice usa uma Chave de encriptação. Bob usa uma chave de descriptografia para descriptografar o texto cifrado. Obviamente a chave de descriptografia deve ser mantida em segredo.
Existem dois tipos básicos de Criptografia. Na Criptografia Simétrica ou de Chave Privada, onde a chave de criptografia e a chave de descriptografia são iguais ou uma pode ser facilmente deduzida da outra. Os métodos populares de Criptografia Simétrica incluem o Data Padrão de Criptografia (DES) e o Padrão de Criptografia Avançado (AES). Nesse caso, Alice e Bob precisam encontrar alguma forma de estabelecer uma chave. Por exemplo, Bob poderia enviar um mensageiro para Alice com vários dias de antecedência. Então, quando chegar a hora de enviar a mensagem, ambos terão a chave. É evidente que isto é impraticável em muitas situações.
O outro tipo de Criptografia é a Criptografia de Chave Pública ou Criptografia Assimétrica. Neste caso, Alice e Bob não precisam ter contato prévio. Bob publica uma chave de Criptografia Pública, que Alice usa. Ele também tem uma chave de descriptografia privada, que lhe permite descriptografar os textos cifrados. Já que todo mundo sabe a Chave de Criptografia, deveria ser inviável deduzir a chave de descriptografia. O sistema de Chave Pública mais famoso é conhecido como RSA e está baseado na dificuldade de fatorar números inteiros em primos. Outro sistema bem conhecido é devido ao ElGamal e está baseado no Problema do Logaritmo Discreto.
Geralmente, os Sistemas Assimétricos são mais lentos que os bons Sistemas Simétricos. Portanto, é comum usar um Sistema Assimétrico para estabelecer uma chave que será usada num Sistema Simétrico. A melhoria na velocidade é importante quando grandes quantidades de dados estão sendo transmitidas.
2 Troca de chaves Diffie-Hellman
Alice e Bob querem chegar a um acordo sobre uma chave comum que possam usar para troca de dados por meio de um esquema de Criptografia Simétrica, como o DES ou o AES. Por exemplo, Alice e Bob poderiam ser bancos que desejam transmitir dados financeiros. É impraticável e demorado usar um mensageiro para entregar a chave. Além disso, suponha que Alice e Bob não tiveram contato prévio e, portanto, os únicos canais de comunicação entre eles são públicos. Uma maneira de estabelecer uma chave secreta é dada pelo seguinte método, devido a Diffie e Hellman (na verdade, eles usam grupos multiplicativos de corpos finitos). Tal método consiste dos seguintes passos:
1. Alice e Bob escolhem uma curva elíptica sobre o corpo finito de modo que o Problema do Logaritmo Discreto seja difícil de resolver em . Eles também escolhem um ponto de modo que o subgrupo gerado por tenha ordem grande (geralmente, a curva e o ponto são escolhidos de modo que a ordem desse subgrupo seja um primo grande).
2. Alice escolhe um inteiro secreto , calcula e envia para Bob.
3. Bob escolhe um inteiro secreto , calcula e envia para Alice.
4. Alice calcula .
5. Bob calcula .
6. Alice e Bob usam algum método acordado publicamente para extrair uma chave de . Por exemplo, eles poderiam usar os últimos 256 bits da coordenada de como chave ou poderiam avaliar uma função hash na coordenada .
As únicas informações que a intrusa Eva tem é a curva , o corpo finito e os pontos . Para ela descifrar a mensagem, precisa resolver o seguinte problema:
2.1 Problema de Diffie-Hellman
Dados em , calcular
Se Eva puder resolver logaritmos discretos em , então ela poderá usar para encontrar . Então ela pode calcular para obter . Contudo, não se sabe se existe alguma maneira de calcular sem primeiro resolver o problema de logaritmo discreto.
Uma questão relacionada é a seguinte:
2.2 O problema de Decisão de Diffie-Hellman
Dados em , e dado um ponto determine se
Em outras palavras, se Eva receber uma denúncia anônima informando seu , ela poderá verificar se as informações estão corretas?
Os Problemas Diffie-Hellman e de Decisão Diffie-Hellman podem ser apresentados para grupos arbitrários. Originalmente, eles apareceram no contexto de grupos multiplicativos de corpos finitos.
Para Curvas Elípticas, o emparelhamento de Weil pode ser usado para resolver o Problema de Decisão de
Diffie-Hellman em alguns casos.
Exemplo: Seja a curva definida sobre , onde . Esta curva é supersingular (, com , ou seja, a curva não possui pontos de ordem ). Seja uma raiz cúbica primitiva da unidade. Observar que pois a ordem de , é , o qual não é múltiplo de . Defina-se a aplicação
Verifica-se que é um isomorfismo (usando as leis de adição).
Se tem ordem , então também tem ordem .
Agora defina-se o emparelhamento modificado de Weil
onde é
é o emparelhamento usual de Weil e
Lema: Suponha que e de ordem . Então é uma -ésima raiz primitiva da unidade.
Demonstração: Suponha que , para alguns inteiros . Então
Se , então e assim . Se , escrevemos , com . Neste caso temos
Dado que , deve se ter . Por tanto , e tem ordem . Mas isto é impossível pois temos assumido que . Disto segue se que a única relação da forma deve ter , de modo que e formam uma base para o espaço , o que garante que seja uma raiz primitiva -ésima da unidade. Assim concluímos a prova.
Suponha agora que conhecemos e queremos decidir se . Primeiro, usamos o emparelhamento usual de Weil para decidir se é um múltiplo de . Sabemos que é um múltiplo de se e somente se . Suponha que este seja o caso, ou seja, , para algum . Assim temos
e
Supondo que , temos que é uma raíz primitiva -ésima da unidade e assim
Isto resolve o Problema de Decisão de Diffie-Hellman neste caso. Observar que não foi necessário calcular nenhum logaritmo discreto, mesmo em corpos finitos. Apenas foi necessário calcular o emparelhamento de Weil.
Joux ([8]) mostrou uma outra aplicação do emparelhamento modificado de Weil que é conhecido como troca tripartida de chaves Diffie-Hellman. Este método funciona assim. Suponha que Alice, Bob e Chris queiram estabelecer uma chave comum. O procedimento padrão Diffie-Hellman requer duas rodadas de interação. O modificado permite que isso seja reduzido para uma rodada. Como acima, seja a curva sobre , onde . Seja um ponto de ordem . Normalmente, deve ser escolhido como sendo um número primo grande. Então Alice, Bob e Chris fazem o seguinte:
1. Alice, Bob e Chris escolhem os inteiros secretos , respectivamente.
2. Alice transmite , Bob transmite e Chris transmite .
3. Alice calcula a, Bob calcula e Chris calcula .
4. Como cada um dos três usuários calculou o mesmo número, eles usam este número para produzir uma chave, usando algum método pre-combinado publicamente.
Dado que é supersingular, o problema de logaritmo discreto em pode ser reduzido a um problema de logaritmo discreto para . Portanto, deve ser escolhido o suficiente grande para que esse problema do logaritmo discreto seja difícil.
3 Criptografia Massey-Omura
Alice deseja enviar uma mensagem para Bob através de canais públicos. Eles ainda não estabeleceram uma chave privada. Uma maneira de fazer isso é a seguinte. Alice coloca sua mensagem em uma caixa, coloca um cadeado nela e envia para Bob. Bob coloca seu cadeado nela e a envia de volta para Alice. Alice então tira o cadeado e envia a caixa de volta para Bob. Bob então remove o cadeado, abre a caixa e lê a mensagem.
Este procedimento pode ser implementado matematicamente como segue.
1. Alice e Bob tomam uma curva elíptica sobre um corpo finito , tal que o problema do logaritmo discreto em seja difícil. Seja .
2. Alice representa sua mensagem como um ponto .
3. Alice escolhe um número inteiro secreto tal que , calcula e o envia a Bob.
4. Bob escolhe um número inteiro secreto tal que , calcula e o envia a Alice.
5. Alice calcula , logo calcula e o envia a Bob. 6. Bob calcula , logo calcula . Então é a mensagem.
Vamos verificar que é a mensagem original . Formalmente temos
De fato, temos , de modo que , para algum . Dado que o grupo tem ordem , pelo Teorema de Lagrange temos que , para todo . Portanto
Aplicando isto para temos que
ou seja, e cancelam. De modo análogo, e cancelam e assim
A intrusa Eva conhece então , e os pontos . Sejam . Então temos que Eva conhece e deseja encontrar . Este é o Problema de Diffie-Hellman.
O método acima é aplicável em qualquer grupo finito, mas raramente usado na prática.
Agora, como representar a mensagem como sendo um ponto de uma curva elíptica? Usaremos o método proposto por Koblitz ([5]). Seja a curva definida sobre . O caso de um corpo finito arbitrário é similar. Seja a mensagem, expressa como um número . Seja , para . Para , calcular .
Se , então é um quadrado módulo , em cujo caso não é necessário tentar mais valores de . Se , então uma raíz quadrada de é dada por . Se , também é possível calcular uma raíz quadrada de . Assim é obtido um ponto na curva . Logo, para recuperar a partir de , basta calcular . Dado que é basicamente um elemento aleatório de , que é cíclico de ordem par, a probabilidade de que seja um quadrado é aproximadamente . Assim, a probabilidade de não ser possível encontrar um ponto para , logo após de tentar valores, está perto de .
4 Criptografia de chave pública ElGamal
Alice deseja enviar uma mensagem para Bob. Primeiro, Bob estabelece sua chave pública como segue. Escolhe uma curva elíptica sobre um corpo finito de modo que o problema do logaritmo discreto seja difícil de resolver no grupo . Ele também escolhe um ponto em (em geral é assumido que a ordem de seja um número primo grande). Ele escolhe um inteiro secreto e calcula . A curva elíptica , o corpo finito e os pontos e são a chave pública de Bob e são feitos públicos. A chave secreta de Bob é o inteiro .
Para enviar uma mensagem a Bob, Alice segue o seguinte roteiro:
1. Baixa a chave pública de Bob.
2. Expressa sua mensagem como um ponto .
3. Escolhe um número inteiro secreto aleatório e calcula .
4. Calcula .
5. Envia para Bob.
Bob descriptografa a mensagem calculando . Esta descriptografia funciona pois
A intrusa Eva conheçe a informação pública de Bob e os pontos . Se ela consegue calcular o logaritmo discreto, então pode usar e para encontrar e usar esta informação para descriptografar a mensagem como . Também, usando e , pode encontrar . Assim pode calcular . Se ela não puder calcular o logaritmo discreto, então não haverá maneira de encontrar .
É importante que Alice use um aleatório diferente cada vez que envia uma mensagem para Bob. Suponha que Alice use o mesmo para . Então Eva reconhece isso pois . Então calcula . Suponha que seja um anúncio de vendas divulgado um dia depois. Então Eva descobre e calcula . Portanto, neste caso, o conhecimento de um texto simples permite que Eva deduza outro texto simples .
O sistema de chave pública ElGamal, em contraste com a assinatura ElGamal, esquema da próxima seção, não parece ser amplamente utilizado.
5 Assinaturas Digitais ElGamal
Alice quer assinar um documento. A maneira clássica é escrever sua assinatura em um pedaço de papel contendo o documento. Suponha, no entanto, que o documento é eletrônico, por exemplo, um arquivo de computador. A solução ingênua seria digitalizar a assinatura de Alice e anexá-la ao arquivo que contém o documento. Neste caso, a intrusa Eva pode copiar a assinatura e anexá-la ao outro documento. Portanto, devem ser tomadas medidas para vincular a assinatura ao documento de tal forma que não possa ser utilizado novamente. No entanto, deve ser possível verificar se a assinatura é válida, assim como mostrar que Alice deve ter sido a pessoa que assinou o documento. Uma solução para o problema depende da dificuldade do logaritmo discreto. Classicamente, o algoritmo foi desenvolvido para o grupo multiplicativo de um corpo finito. Na verdade, aplica-se a qualquer grupo finito. Vamos apresenta-lo para curvas elípticas.
Alice primeiro deve estabelecer uma chave pública. Ela escolhe uma curva elíptica sobre um corpo finito tal que o problema de logaritmo discreto seja difícil para . Ela também escolhe um ponto . Geralmente as escolhas são feitas de modo que a ordem de seja um número primo grande. Alice também escolhe um inteiro secreto e calcula . Finalmente, ela escolhe uma função
Por exemplo, se , então ela poderia usar , onde é um número inteiro, com . A função não precisa ter de propriedades especiais, exceto que sua imagem deve ser grande e apenas um pequeno número de entradas devem produzir qualquer saída (por exemplo, para , no máximo dois pontos produz uma determinada saída ).
As informações públicas de Alice são . Ela mantém em privado. O inteiro não precisa ser tornado público. Seu sigilo não afeta a análise da segurança do sistema. Para assinar um documento, Alice segue os seguintes passos:
1. Representa o documento como sendo um número inteiro (se , escolhe uma curva maior ou usa uma função hash.
2. Escolhe um número inteiro aleatório tal que e calcula .
3. Calcula .
A mensagem assinada é . Observar que são números inteiros, enquanto é um ponto da curva . Observar também que Alice não está tentando manter o documento em segredo. Se ela quiser fazer isso, então precisaria usar alguma forma de criptografia. Agora Bob verifica a assinatura da seguinte forma:
1. Baixa as informações públicas de Alice.
2. Calcula e .
3. Se , ele declara a assinatura válida.
Se a assinatura é válida, então pois
Aqui temos usado o fato de que , e portanto para algum inteiro . Assim
Isto é válido pois a congruência que define foi considerada
Se Eva puder calcular logaritmos discretos, ela poderá usar para encontrar . Neste caso, ela pode colocar a assinatura de Alice em qualquer mensagem. Alternativamente, Eva pode usar para encontrar . Como ela conheçe , então pode usar para encontrar . Se , então tem soluções para . Desde que seja pequeno, Eva pode tentar cada possibilidade até obter . Então ela pode usar , como antes, para falsificar a assinatura de Alice em mensagens arbitrárias.
Como acabamos de ver, Alice deve manter em segredo. Além disso, ela deve usar um aleatório diferente para cada assinatura. Suponha que ela assine usando o mesmo para obter mensagens assinadas . Eva imediatamente reconheçe que foi usado duas vezes, pois é mesmo para ambas as assinaturas. As equações para produzem:
Subtraindo estas equações temos . Seja . Existem valores possíveis para . Então a Eva tenta cada um até que seja satisfeita. Uma vez que determinou , então pode encontrar , como antes.
Talvez não seja necessário que Eva resolva o problema do logaritmo discreto para falsificar a assinatura de Alice em outra mensagem . Tudo o que Eva precisa fazer é produzir de modo que seja satifeita a equação . Isso significa que ela precisa encontrar tal que
Se ela escolher algum ponto (não há necessidade de escolher um inteiro ), então precisa resolver o problema do logaritmo discreto para o inteiro . Se, em vez disso, ela escolher , então deverá resolver a equação para . Essa equação parece ser menos complexa do que o problema do logaritmo discreto, embora não tenha sido analisada minuciosamente. Além disso, ninguém foi capaz de descartar a possiblidade de usar algum procedimento que encontre simultaneamente. Existem maneiras de usar uma mensagem assinada válida para produzir outra mensagem assinada válida. No entanto, é pouco provável que as mensagens produzidas sejam significativas.
Existe a ideia geral de que a segurança do sistema ElGamal está muito próxima da segurança dos logaritmos discretos para o grupo .
Uma desvantagem do sistema ElGamal é que a mensagem assinada é aproximadamente três vezes maior que a mensagem original (não é necessário armazenar a coordenada de , uma vez que existem apenas duas opções ela para um dado ). Um método mais eficiente é escolher uma função hash pública e sinal . Uma função hash criptográfica é uma função que toma entradas de comprimento arbitrário, às vezes uma mensagem de bilhões de bits, e saídas de comprimento fixo, por exemplo, bits. Uma função hash deve ter as seguintes propriedades:
1. Dada uma mensagem , o valor pode ser calculado rapidamente.
2. Dado , é computacionalmente inviável encontrar satisfazendo (isto significa que tem pré-imagem resistente).
3. É computacionalmente inviável encontrar mensagens distintas , com (isto significa que é fortemente livre de colisões).
A razão para (2) e (3) é evitar que Eva produza mensagens com um valor de hash desejado ou duas mensagens com o mesmo valor de hash. Isso ajuda evitar falsificações. Existem várias funções hash populares disponíveis, por exemplo, MD5 (devido ao Rivest; produz uma saída de 128 bits) e o Secure Hash Algoritmo (do NIST; produz uma saída de 160 bits). Para obter mais detalhes, consulte [6]. Trabalho recente de Wang, Yin e Yu [7] descobriu fraquezas neles, então o assunto está ainda em um estado de fluxo.
Se Alice usar uma função hash, a mensagem assinada será então
onde é a assinatura válida.
Para verificar que a assinatura seja válida, Bob realiza o seguinte:
1. Abaixa a informação pública de Alice.
2. Calcula
3. Se declara que a assinatura é válida.
A vantagem é que uma mensagem muito longa contendo bilhões de bits tem uma assinatura que requer apenas alguns milhares de bits extras. Enquanto o problema do logaritmo discreto for difícil para , Eva não conseguirá colocar a assinatura de Alice numa outra mensagem. O uso de uma função hash tambám protege contra outras falsificações.
Uma variante recente do esquema de assinatura ElGamal (devido a Van Duin) é muito eficiente em certos aspectos. Por exemplo, evita o cálculo de , e seu procedimento de verificação requer apenas dois cálculos de um número inteiro vezes um ponto. Como antes, Alice tem um documento que deseja assinar. Para configurar o sistema, ela escolhe uma curva elíptica sobre um corpo finito e um ponto de ordem primo grande . Ela também escolhe uma função hash criptografica . Ela escolhe um inteiro secreto e calcula . A informação pública é . A informação secreta é . Para assinar , Alice faz o seguinte:
1. Escolhe um número inteiro aleatório módulo e calcula .
2. Calcula .
O documento assinado é . Para verificar a assinatura, Bob abaixa a informação pública de Alice e verifica se é válida. Se for assim, a assinatura é declarada válida. De outra forma é inválida.
6 O Algoritmo de assinatura digital
O Padrão de Assinatura Digital está baseado no Algoritmo de Assinatura Digital (DSA). A versão original usa grupos multiplicativos de corpos finitos. Uma versão mais recente, o ECDSA, usa curvas elípticas. O algoritmo é uma variante do esquema de assinatura ElGamal, com algumas modificações. Esboçamos o algoritmo aqui
Alice quer assinar um documento , que é um número inteiro (na verdade, ela normalmente assina o hash do documento, como antes). Alice escolhe uma curva elíptica sobre um corpo finito tal que , onde é um primo grande e é um número inteiro pequeno, geralmente 1,2 ou 4 ( deve ser pequeno para manter o algoritmo eficiente). Ela escolhe um ponto base em de ordem . Finalmente, Alice escolhe um inteiro secreto e calcula . Alice faz públicas as seguintes informações:
(não há necessidade de manter em secreto; este pode ser deduzido de e usando o Teorema de Hasse).
Para assinar a mensagem Alice segue os passos a seguir:
1. Escolhe um número inteiro aleatório , com e calcula
2. Calcula
O documento assinado é
Para verificar a assinatura Bob segue os passos:
1. Calcula e
2. Calcula
3. Declara a assinatura válida se .
Se a mensagem for assinada corretamente, a equação de verificação é válida:
A principal diferença entre o sistema ECDSA e o sistema ElGamal é o procedimento de verificação. No sistema ElGamal, a equação de verificação requer três cálculos de um número inteiro vezes um ponto. Estas são as partes mais caras do algoritmo. Na ECDSA, apenas são necessários dois cálculos de um número inteiro vezes um ponto. Se muitas verificações serão feitas, então a maior eficiência da ECDSA é valiosa. Este é o mesmo tipo de melhoria do sistema Van Duin mencionado no final da seção anterior.
7 O esquema de Criptografia integrada de Curva Elíptica (ICIES)
O ECIES foi inventado por Bellare e Rogaway [3] e trata-se de um esquema de criptografia de chave pública.
Alice deseja enviar uma mensagem para Bob. Primeiro Bob estabelece sua chave pública, escolhe uma curva elíptica sobre um corpo finito de modo que o problema do logaritmo discreto seja difícil em . Logo escolhe um ponto sobre de ordem primo . A seguir escolhe um número inteiro secreto e calcula . A chave pública é . A chave privada é .
O algoritmo também precisa de duas funções hash criptográficas, , e uma função de criptografia simétrica (a qual depende de uma chave ) que são publicamente acordados.
Para criptografar e enviar a mensagem, Alice segue os seguintes passos:
1. Baixa a chave pública de Bob.
2. Escolhe um número inteiro aleatório com .
3. Calcula e .
4. Escreve a saída de como (isto é, seguido de ).
5. Calcula e .
6. Envia para Bob.
Para decriptografar, Bob segue os passos:
1. Calcula , usando seu conhecimento da chave secreta .
2. Calcula e escreve a saída como .
3. Calcula . Se não for igual a , Bob para e rejeita o texto cifrado.
4. Calcula , onde é a função de decriptografia para .
Um fato importante é o processo de autenticação dado no passo 3. ao decriptografar. Em muitos sistemas criptográficos, um invasor pode escolher vários textos cifrados e forçar Bob para descriptografá-los. Essas descriptografias são usadas para atacar o sistema. No sistema presente, o invasor pode gerar textos cifrados escolhendo e e tomando então . Mas o invasor não conheçe , então ele não pode usar o mesmo valor que Bob obtém de . Portanto, é muito improvável que seja igual a . Com probabilidade muito alta, Bob simplesmente rejeita o texto cifrado e não retorna uma descriptografia.
Na descrição do processo foram usadas funções hash para a autenticação. Existem outros métodos de autenticação que poderiam ser usados.
Uma das vantagens do ICIES sobre os métodos de chave pública Masey-Omura e ElGamal é que a mensagem não é representada por um ponto da curva. Além disso, desde que um método simétrico de chaveado é usado para enviar a mensagem, não precisamos fazer um novo cálculo de curva elíptica para cada bloco da mensagem.
Referências
- [1] I. F. Blake, G. Seroussi and N. P. Smart, “Elliptic Curves Cryptography”, volume 265 of London Mathematical Society Lecture Notes Series. Cambridge University Press, Cambridge, 2000. Reprint of the 1999 original.
- [2] L. C. Washington, “Elliptic Curves Number Theory and Cryptography”, CRC Press A Chapman and Hall, Book 2008.
- [3] M. Abdalla, M. Bellare and P. Rogaway, “The Oracle Diffie-Hellman assumption and an analysis of DHIES”, Topics in Cryptology - CT RSA 0, volume 2020 of Lectures Notes in Computer Science, Springer, Berlin, 2001, pages 143-158.
- [4] D. Boneh, “The decision Diffie-Hellman problem”, In Algorithmic number theory (Portland, OR, 1998), volume 1423 of Lecture Notes in Comput. Sci, pages 48-63. Springer-Verlag, Berlin,1998.
- [5] N. Koblitz, “Introduction to elliptic curves and modular forms”, volume 114 of graduate texts in Mathematics. Springer-Verlag, New York, second edition, 1994.
- [6] A. J. Menezes, P. C. van Oorschot, and S. A. Vanstone, “Handbook of applied cryptography”, CRC Press Series on Discrete Mathematics and its Applications. CRC Press, Boca Raton, FL, 1997. With a foreword by R. L. Rivest.
- [7] X. Wang, Y. Yin, Yiqun, and H. Yu, “Finding collisions in the full SHA-1”, Advances in cryptology - CRYPTO 2005, volume 3621 of Lecture Notes in Comput. Sci. pages 17-36, Springer, Berlin, 2005.
- [8] A. Joux, “A one round protocol for tripartite Diffie-Hellman”, In Algorithmic Number Theory (Leiden, The Netherlands, herefore maps2000), volume 1838 of Lecture Notes in Comput. Sci., pages 385-394. Springer-Verlag, Berlin, 2000.