Criptografia de curva elíptica
A Criptografía de Curvas Elípticas, é uma aproximação para a criptografia de chave pública com base na estrutura algébrica de curvas elípticas sobre corpos finitos. A utilização de curvas elípticas em criptografia foi sugerida por Neal Koblitz e Victor S.Miller em 1985. Curvas Elípticas são também utilizadas em várias fatorações de algoritmos inteiros, que têm aplicações em criptografia.
As curvas elípticas usadas em Criptografia são definidas tipicamente em dois tipos de campos finitos: campos de característica impar p ( F p {\displaystyle \mathbb {F} _{p}} ,, onde p > 3 é um número principal grande) e campos da característica par ( F 2 m {\displaystyle \mathbb {F} _{2^{m}}} ).Quando a distinção não é importante nós denotamos ambos eles como F q {\displaystyle \mathbb {F} _{q}} ,onde q = p ou q = 2m. Em F p {\displaystyle \mathbb {F} _{p}} os elementos são inteiros ( 0 ≤ x < p {\displaystyle 0\leq x<p} )que são combinados usando a aritmética modular. No caso F 2 m {\displaystyle \mathbb {F} _{2^{m}}} é um pouco mais complicado: um obtém representações diferentes dos elementos do campo como bitstrings para cada escolha do polinômio binário irretível f (x) do grau m.O conjunto de todos os pares das coordenadas (x, y) para ( x , y ) {\displaystyle (x,y)} para x , y ∈ F q {\displaystyle x,y\in \mathbb {F} _{q}} que forma o plano F q × F q {\displaystyle \mathbb {F} _{q}\times \mathbb {F} _{q}} . Uma curva elíptica é o locus dos pontos do plano cujas coordenadas satisfazem a uma determinada equação cúbica junto com um ponto na infinidade O. No caso p>3 a equação definida de E ( F p ) {\displaystyle E(\mathbb {F} _{p})} pode ser escrita y 2 = x 3 + a x + b {\displaystyle y^{2}=x^{3}+ax+b} , onde a ∈ F p {\displaystyle a\in \mathbb {F} _{p}} e b ∈ F p {\displaystyle b\in \mathbb {F} _{p}} são constantes tanto que 4 a 3 + 27 b 2 ≠ 0 {\displaystyle 4a^{3}+27b^{2}\neq 0} . No outro caso a equação definida de E ( F 2 m ) {\displaystyle E(\mathbb {F} _{2^{m}})} pode ser escrita: y 2 + x y = x 3 + a x 2 + b {\displaystyle y^{2}+xy=x^{3}+ax^{2}+b} onde a ∈ F 2 m {\displaystyle a\in \mathbb {F} _{2^{m}}} e b ∈ F 2 m {\displaystyle b\in \mathbb {F} _{2^{m}}} são constantes e b ≠ 0 {\displaystyle b\neq 0} . Embora o ponto na infinidade O não tenha coordenadas, é conveniente representá-las , usando um par das coordenadas que não satisfazem à equação definida, por exemplo O = ( 0 , 0 ) {\displaystyle O=(0,0)} se b ≠ 0 {\displaystyle b\neq 0} e O = ( 0 , 1 ) {\displaystyle O=(0,1)} . De acordo com o teorema de Hasse em curvas elípticas o número dos pontos em uma curva é quase o do tamanho do campo subjacente; mais precisamente: ( q − 1 ) 2 ≤ | E ( F q ) | ≤ ( q + 1 ) 2 {\displaystyle ({\sqrt {q}}-1)^{2}\leq |E(\mathbb {F} _{q})|\leq ({\sqrt {q}}+1)^{2}} . Os pontos em uma curva elíptica dão forma a um grupo abeliano ( E ( F ) , + ) {\displaystyle (E(\mathbb {F} ),+)} com O {\displaystyle O} o ponto distinto na infinidade. Ou seja dado dois pontos P , Q ∈ E ( F q ) {\displaystyle P,Q\in E(\mathbb {F} _{q})} , , há um terceiro ponto, denotado por P + Q {\displaystyle P+Q} on E ( F q ) {\displaystyle E(\mathbb {F} _{q})} , e as seguintes relações servem para todos P , Q , R ∈ E ( F q ) {\displaystyle P,Q,R\in E(\mathbb {F} _{q})} :
Desde que o grupo cíclico (aditivo) descrito acima pode ser considerado similar ao grupo (multiplicativo) de potências de um inteiro g de módulo primo p: ( g 0 , g , g 2 , g 3 , g 4 , … ) {\displaystyle (g^{0},g,g^{2},g^{3},g^{4},\ldots )} , o problema de encontrar k dados os pontos kG e G é chamado o Problema Discreto do Logaritmo da Curva Elíptica (em Inglês - Elliptic Curve Discrete Logarithm Problem - ECDLP). A dificuldade suposta de diversos problemas relacionados ao logaritmo discreto no subgrupo de E ( F q ) {\displaystyle E(\mathbb {F} _{q})} permite o uso da Criptografia de Curva Elíptica (CCE). A maioria dos esquemas de curva elíptica criptográficos são relacionados aos esquemas discretos dos logarítmos que foram formulados originalmente para a aritmética modular usual: O esquema chave do acordo de Diffie-Hellman da curva elíptica é baseado no esquema de Diffie-Hellman. Nem todos os esquemas do DLP devem ser movidos ao domínio curva elíptica. Por exemplo, o poço - o esquema conhecido como Criptografia de ElGamal nunca foi estandardizado por corpos oficiais e não deve diretamente ser usado sobre uma curva elíptica (o esquema padrão de criptografia para ECC é chamado esquema integrado de Curva de Criptografia Elíptica). A razão principal é que embora seja simples converter uma mensagem arbitrária (de comprimento limitado) a um modulo inteiro p, não é simples converter bitstring a um ponto de curva. Na conferência 2005 de RSA ,a agência da segurança nacional (NSA) anunciou o Suite B que usa exclusivamente ECC para a geração digital da assinatura e a troca da chave. O suite é pretende proteger sistemas classificados e não-classificados e informação da segurança nacional. Uma outra fonte principal de aplicações criptográficas de curvas elípticas é o operador bilinear (baseado em se Weil pairing ou Tate pairing) que permite fazer, por exemplo, eficiente criptografia de identidade-baseada.
Mesmo que os detalhes de cada curva elíptica em particular sejam descritos em seus próprios artigos, aqui você encontrará algumas implementações sobre alguns assuntos.
Parâmetros do Domínio
Para usar ECC, todos os partidos devem concordar com todos os elementos que definem a curva elíptica, que é parâmetro do domínio do esquema. A curva elíptica é definida pelas constantes a e b usadas em sua equação definida. Finalmente, o subgrupo cíclico é definido por seu gerador (aka. ponto base) G {\displaystyle G} . Para a aplicação criptográfica a ordem de G, aquele é o número não-negativo o menor n tais que o n G = O {\displaystyle nG=O} , devem ser os primeiros. Desde que n é o tamanho de um subgrupo de E ( F q ) {\displaystyle E(\mathbb {F} _{q})} segue do teorema de Lagrange que o número h = | E | n {\displaystyle h={\frac {|E|}{n}}} é inteiro. Em aplicações criptográficas este número h, chamado cofator, pelo menos deve ser pequeno ( h ≤ 4 {\displaystyle h\leq 4} ) e, preferivelmente, h = 1 {\displaystyle h=1} . No caso principal os parâmetros do domínio são ( p , a , b , G , n , h ) {\displaystyle (p,a,b,G,n,h)} e no segundo caso eles são ( m , f , a , b , G , n , h ) {\displaystyle (m,f,a,b,G,n,h)} . A menos que haja a garantia que os parâmetros do domínio foram gerados por um partido confiável com respeito a seu uso, os parâmetros do domínio devem ser validados antes de usar. A geração de parâmetros do domínio não é feita geralmente por cada participante desde que esta envolva contar o número dos pontos em uma curva que seja cansativa e incômoda para executar.
Tamanhos Chaves
Desde que os os algoritmos mais rápidos que permite solucionar o ECDLP, precisa O ( n ) {\displaystyle O({\sqrt {n}})} etapas, isso indica que o tamanho do campo subjacente será aproximadamente duas vezes o parâmetro da segurança. Por exemplo, para segurança de 128 bits necessita de uma curva maior que F q {\displaystyle \mathbb {F} _{q}} , onde q ≈ 2 256 {\displaystyle q\approx 2^{256}} . Isto pode ser contrastado com a criptografia de campo-finito (por exemplo, DSA) que requer 3072 bits de chaves públicas e 256 bits chaves confidenciais , e criptografia de fatoração de inteiros (por exemplo, RSA) que requer o 3072 bits de chave-pública de 3072 bits e chaves-confidenciais. O esquema o mais difícil de ECC (publicamente) teve 109 bits de chave (que é aproximadamente 55 bits de segurança).Como primeiro exemplo do campo, foi quebrado no começo de 2003 usando-se mais que 10.000 PCs da classe Pentium que funcionam continuamente por mais que 540 dias. Como segundo exemplo do campo, foi quebrado em abril 2004 usando 2600 computadores por 17 meses.
Coordenadas Projetáveis
Uma examinação mais próxima das réguas de adição mostra que a fim adicionar dois pontos necessita-se não somente de diversas adições e multiplicações em F q {\displaystyle \mathbb {F} _{q}} mas também uma operação inversa. A inversão (dado x ∈ F q {\displaystyle x\in \mathbb {F} _{q}} encontrar y ∈ F q {\displaystyle y\in \mathbb {F} _{q}} tanto que x y = 1 {\displaystyle xy=1} ) é uma das duas ordens de valor mais lentas do que a multiplicação. Felizmente, os pontos em uma curva podem ser representados em sistemas coordenados diferentes que não requerem uma operação inversa para adicionar dois pontos. Diversos sistemas foram propostos:


