Fatoração de curva elíptica Lenstra - Lenstra elliptic-curve factorization

A fatoração de curva elíptica de Lenstra ou o método de fatoração de curva elíptica ( ECM ) é um algoritmo de tempo de execução subexponencial rápido para fatoração de inteiros , que emprega curvas elípticas . Para fatoração de uso geral , ECM é o terceiro método de fatoração conhecido mais rápido. A segunda mais rápida é a peneira quadrática polinomial múltipla e a mais rápida é a peneira de campo de número geral . A fatoração da curva elíptica Lenstra recebeu o nome de Hendrik Lenstra .

Na prática, o ECM é considerado um algoritmo de fatoração de propósito especial, pois é mais adequado para encontrar pequenos fatores. Atualmente, ainda é o melhor algoritmo para divisores que não excedam 50 a 60 dígitos , já que seu tempo de execução é dominado pelo tamanho do menor fator p em vez do tamanho do número n a ser fatorado. Freqüentemente, o ECM é usado para remover pequenos fatores de um número inteiro muito grande com muitos fatores; se o inteiro restante ainda for composto, ele terá apenas grandes fatores e será fatorado usando técnicas de uso geral. O maior fator encontrado usando ECM até agora tem 83 dígitos decimais e foi descoberto em 7 de setembro de 2013 por R. Propper. Aumentar o número de curvas testadas aumenta as chances de encontrar um fator, mas não são lineares com o aumento do número de dígitos.

Algoritmo

O método de fatoração de curva elíptica de Lenstra para encontrar um fator de um determinado número natural funciona da seguinte maneira:

  1. Escolha aleatória uma curva elíptica sobre , com equação da forma em conjunto com um não-trivial ponto sobre ele.
    Isso pode ser feito primeiro escolhendo aleatório e, em seguida, configurando para garantir que o ponto esteja na curva.
  2. Pode-se definir adição de dois pontos na curva, para definir um Grupo . As leis de adição são fornecidas no artigo sobre curvas elípticas .
    Podemos formar múltiplos repetidas de um ponto : . As fórmulas de adição envolvem tomar a inclinação modular da junção e , portanto, a divisão entre as classes de resíduos do módulo , realizada usando o algoritmo Euclidiano estendido . Em particular, a divisão por alguns inclui o cálculo do .
    Assumindo que calculamos uma inclinação da forma com , então se , o resultado da adição do ponto será , o ponto "no infinito" correspondendo à interseção da linha "vertical" que une a curva. No entanto, se , então, a adição do ponto não produzirá um ponto significativo na curva; mas, mais importante, é um fator não trivial de .
  3. Calcule na curva elíptica ( ), onde é um produto de muitos números pequenos: digamos, um produto de pequenos primos elevados a pequenas potências, como no algoritmo p-1 , ou o fatorial para alguns não muito grandes . Isso pode ser feito de forma eficiente, um pequeno fator de cada vez. Diga, para obter , primeiro calcule , depois , então , e assim por diante. é escolhido para ser pequeno o suficiente para que a adição do ponto -wise possa ser realizada em um tempo razoável.
    • Se terminarmos todos os cálculos acima sem encontrar elementos não invertíveis ( ), isso significa que a ordem das curvas elípticas (módulo primos) não é
    suave o suficiente, então precisamos tentar novamente com uma curva diferente e um ponto de partida.
  4. Se encontrarmos um , terminaremos: é um fator não trivial de .

A complexidade do tempo depende do tamanho do menor fator primo do número e pode ser representada por exp [( 2  +  o (1)) ln  p  ln ln  p ] , onde p é o menor fator de n , ou , em L -notação .

Por que o algoritmo funciona?

Se p e q são dois divisores primos de n , então y 2  =  x 3  + ax  +  b  (mod  n ) implica a mesma equação também módulo  p e módulo  q . Essas duas curvas elípticas menores com a adição agora são grupos genuínos . Se esses grupos têm N p e N q elementos, respectivamente, então para qualquer ponto P na curva original, pelo teorema de Lagrange , k  > 0 é mínimo, de modo que no módulo da curva p implica que k divide N p ; além disso ,. A declaração análoga vale para o módulo de curva q . Quando a curva elíptica é escolhida aleatoriamente, então N p e N q são números aleatórios próximos de p  + 1 e q  + 1, respectivamente (veja abaixo). Portanto, é improvável que a maioria dos fatores primos de N p e N q sejam os mesmos, e é bem provável que, ao calcular eP , encontraremos algum kP que é ∞ módulo  p, mas não módulo  q , ou vice-versa. Quando este for o caso, kP não existe na curva original e nos cálculos encontramos algum v com mdc ( v , p ) =  p ou mdc ( vq ) =  q , mas não ambos. Ou seja, mdc ( vn ) deu um fator não trivial de  n .

O ECM é, em sua essência, uma melhoria do algoritmo p  -1 mais antigo . O algoritmo p  - 1 encontra fatores primos p tais que p  - 1 é b-potências suave para pequenos valores de b . Para qualquer e , um múltiplo de p  - 1, e qualquer um relativamente primo a p , pelo pequeno teorema de Fermat temos a e  ≡ 1 ( mod p ) . Então mdc ( a e  - 1,  n ) provavelmente produzirá um fator de n . No entanto, o algoritmo falha quando p  - 1 tem grandes fatores primos, como é o caso de números contendo primos fortes , por exemplo.

O ECM contorna este obstáculo considerando o grupo de uma curva elíptica aleatória sobre o corpo finito Z p , ao invés de considerar o grupo multiplicativo de Z p que sempre tem ordem  p  - 1.

A fim do grupo de uma curva elíptica sobre Z p varia (bastante aleatoriamente) entre p  + 1 - 2 p e p  + 1 + 2 p pelo teorema de Hasse , e é provável que seja suave para algumas curvas elípticas. Embora não haja prova de que uma ordem de grupo suave será encontrada no intervalo de Hasse, usando métodos probabilísticos heurísticos , o teorema de Canfield-Erdős-Pomerance com opções de parâmetros adequadamente otimizados e a notação L , podemos esperar tentar L [ 2 /2, 2 ] curvas antes de começar um grupo fim lisa. Esta estimativa heurística é muito confiável na prática.

Um exemplo

O exemplo a seguir é de Trappe & Washington (2006) , com alguns detalhes adicionados.

Queremos fator n = 455839. Vamos escolher a curva elíptica y 2 = x 3 + 5 x - 5, com o ponto P = (1, 1) sobre ele, e vamos tentar de computação (10!) P .

A inclinação da linha tangente em algum ponto A = ( x , y ) é s = (3 x 2 + 5) / (2 y ) (mod n) . Usando s podemos calcular 2 A . Se o valor de s está na forma a / b onde b > 1 e mdc ( a , b ) = 1, temos que encontrar o inverso modular de b . Se não existir, mdc ( n , b ) é um fator não trivial de n .

Primeiro vamos calcular 2 P . Dispomos de ( P ) = s (1,1) = 4, então as coordenadas de 2 P = ( x ' , y' ) são x ' = s 2 - 2 x = 14 e y' = S ( x - x ′ ) - y = 4 (1 - 14) - 1 = –53, todos os números compreendidos (mod n ). Apenas para verificar se este 2 P está de fato na curva: (–53) 2 = 2809 = 14 3 + 5 · 14 - 5.

Então calculamos 3 (2 P ). Temos s (2 P ) = s (14, -53) = –593/106 (mod n ). Usando o algoritmo euclidiano : 455839 = 4300 · 106 + 39, então 106 = 2 · 39 + 28, então 39 = 28 + 11, então 28 = 2 · 11 + 6, então 11 = 6 + 5, então 6 = 5 + 1. Portanto, mdc (455839, 106) = 1, e retrocedendo (uma versão do algoritmo euclidiano estendido ): 1 = 6 - 5 = 2 · 6 - 11 = 2 · 28 - 5 · 11 = 7 · 28 - 5 · 39 = 7 · 106 - 19 · 39 = 81707 · 106 - 19 · 455839. Portanto, 106 −1 = 81707 (mod 455839) e –593/106 = –133317 (mod 455839). Dado este s , podemos calcular as coordenadas de 2 (2 P ), assim como fizemos acima: 4 P = (259851, 116255). Apenas para verificar se este é realmente um ponto na curva: y 2 = 54514 = x 3 + 5 x - 5 (mod 455839). Depois disso, podemos calcular .

Podemos calcular 4 de forma semelhante! P e assim por diante, mas 8! P requer a inversão de 599 (mod 455839). O algoritmo Euclidiano dá que 455839 é divisível por 599, e encontramos uma fatoração 455839 = 599 · 761.

O motivo pelo qual isso funcionou é que a curva (mod 599) tem 640 = 2 7 · 5 pontos, enquanto (mod 761) tem 777 = 3 · 7 · 37 pontos. Além disso, 640 e 777 são os menores inteiros positivos k tais que kP = ∞ na curva (mod 599) e (mod 761), respectivamente. Desde 8! é um múltiplo de 640, mas não um múltiplo de 777, temos 8! P = ∞ na curva (mod 599), mas não na curva (mod 761), portanto , a adição repetida quebrou aqui, produzindo a fatoração.

O algoritmo com coordenadas projetivas

Antes de considerar o plano projetivo sobre primeiro, considere um espaço projetivo 'normal' sobre ℝ: Em vez de pontos, as linhas através da origem são estudadas. Uma linha pode ser representada como um ponto diferente de zero , sob uma relação de equivalência ~ dada por: ⇔ ∃ c ≠ 0 tal que x '= c x , y' = c y e z '= c z . Nessa relação de equivalência, o espaço é denominado plano projetivo ; os pontos, denotados por , correspondem a linhas em um espaço tridimensional que passam pela origem. Observe que o ponto não existe neste espaço, pois para desenhar uma linha em qualquer direção possível requer pelo menos um de x ', y' ou z '≠ 0. Agora observe que quase todas as linhas passam por qualquer plano de referência - como o plano ( X , Y , 1), enquanto as linhas precisamente paralelas a este plano, tendo coordenadas ( X, Y , 0), especificam direções exclusivamente, como 'pontos no infinito' que são usados ​​no afim ( X, Y ) -avião que se encontra acima.

No algoritmo, apenas a estrutura de grupo de uma curva elíptica sobre o campo ℝ é usada. Visto que não precisamos necessariamente do campo ℝ, um corpo finito também fornecerá uma estrutura de grupo em uma curva elíptica. No entanto, considerando a mesma curva e operação com n não primo, não dá um grupo. O Método da Curva Elíptica faz uso dos casos de falha da lei da adição.

Agora declaramos o algoritmo em coordenadas projetivas. O elemento neutro é então dado pelo ponto no infinito . Seja n um inteiro (positivo) e considere a curva elíptica (um conjunto de pontos com alguma estrutura) .

  1. Escolha com um ≠ 0.
  2. Calcule . A curva elíptica E está então na forma Weierstrass dada por e usando coordenadas projetivas, a curva elíptica é dada pela equação homogênea . Ele tem o objetivo .
  3. Escolha um limite superior para esta curva elíptica. Observação: Você só vai encontrar fatores p se a ordem de grupos da curva elíptica E sobre (indicado por ) é B-liso , o que significa que todos os fatores primos de tem que ser menor ou igual a B .
  4. Calcule .
  5. Calcule ( k vezes) no ringue . Note-se que, se é B -Smooth e n é primordial (e, portanto, é um campo) que . No entanto, se apenas for B-smooth para algum divisor p de n , o produto pode não ser (0: 1: 0) porque adição e multiplicação não são bem definidas se n não for primo. Nesse caso, um divisor não trivial pode ser encontrado.
  6. Caso contrário, volte para a etapa 2. Se isso ocorrer, você notará isso ao simplificar o produto

No ponto 5, é dito que, nas circunstâncias certas, um divisor não trivial pode ser encontrado. Conforme apontado no artigo de Lenstra (Fatoração de inteiros com curvas elípticas), a adição precisa da suposição . Se não forem e distintos (caso contrário, a adição funciona de forma semelhante, mas é um pouco diferente), então a adição funciona da seguinte maneira:

  • Para calcular: ,
  • ,
  • ,
  • ,
  • .

Se a adição falhar, isso será devido a uma falha no cálculo Em particular, porque nem sempre pode ser calculado se n não for primo (e, portanto, não for um campo). Sem querer ser um campo, pode-se calcular:

  • ,
  • ,
  • ,
  • e simplifique se possível.

Este cálculo é sempre legal e se o mdc do Z -coordenar com n ≠ (1 ou n ), então quando a simplificação falha, um divisor não trivial de n é encontrado.

Curvas torcidas de Edwards

O uso de curvas de Edwards requer menos multiplicações modulares e menos tempo do que o uso de curvas de Montgomery ou curvas de Weierstrass (outros métodos usados). Usando as curvas de Edwards, você também pode encontrar mais primos.

Definição. Deixe ser um campo em que , e deixe com . Então a curva de Edwards torcida é dada por Uma curva de Edwards é uma curva de Edwards torcida na qual .

Existem cinco maneiras conhecidas de construir um conjunto de pontos em uma curva de Edwards: o conjunto de pontos afins, o conjunto de pontos projetivos, o conjunto de pontos invertidos, o conjunto de pontos estendidos e o conjunto de pontos completados.

O conjunto de pontos afins é dado por:

.

A lei da adição é dada por

O ponto (0,1) é seu elemento neutro e o inverso de é .

As outras representações são definidas de forma semelhante à forma como a curva Weierstrass projetiva segue da afim.

Qualquer curva elíptica na forma de Edwards tem um ponto de ordem 4. Portanto, o grupo de torção de uma curva de Edwards é isomórfico para ou .

Os casos mais interessantes para ECM são e , uma vez que eles forçam as ordens de grupo dos primos do módulo da curva a serem divisíveis por 12 e 16, respectivamente. As seguintes curvas têm um grupo de torção isomórfico a :

  • com ponto onde e
  • com ponto onde e

Cada curva de Edwards com um ponto de ordem 3 pode ser escrita das maneiras mostradas acima. Curvas com grupo de torção isomórfico a e podem ser mais eficientes na localização de primos.

Estágio 2

O texto acima é sobre o primeiro estágio da fatoração da curva elíptica. Espera-se encontrar um divisor primo p tal que seja o elemento neutro de . No segundo estágio, espera-se encontrar um divisor primo q tal que tenha ordem primo pequena em .

Esperamos que a ordem esteja entre e , onde é determinado no estágio 1 e é o novo parâmetro do estágio 2. A verificação de uma pequena ordem de , pode ser feita calculando o módulo n para cada primo l .

GMP-ECM e EECM-MPFQ

O uso de curvas elípticas Twisted Edwards, bem como outras técnicas foram utilizadas por Bernstein et al para fornecer uma implementação otimizada de ECM. Sua única desvantagem é que ele funciona em números compostos menores do que a implementação de propósito mais geral, GMP-ECM de Zimmerman.

Método da curva hiperelíptica (HECM)

Existem desenvolvimentos recentes no uso de curvas hiperelípticas para fatorar inteiros. Cosset mostra em seu artigo (de 2010) que se pode construir uma curva hiperelíptica com gênero dois (portanto, uma curva com f de grau 5), o que dá o mesmo resultado que usar duas curvas elípticas "normais" ao mesmo tempo. Fazendo uso da superfície Kummer, o cálculo é mais eficiente. As desvantagens da curva hiperelíptica (versus uma curva elíptica) são compensadas por esta forma alternativa de cálculo. Portanto, Cosset afirma aproximadamente que usar curvas hiperelípticas para fatoração não é pior do que usar curvas elípticas.

Versão quântica (GEECM)

Bernstein , Heninger , Lou e Valenta sugerem GEECM, uma versão quântica de ECM com curvas de Edwards. Ele usa o algoritmo de Grover para quase dobrar o comprimento dos primos encontrados em comparação com o EECM padrão, assumindo um computador quântico com qubits suficientes e de velocidade comparável ao computador clássico executando o EECM.

Veja também

  • UBASIC para programa prático (ECMX).

Referências

links externos