factorizacion de fermat

8
Factorización de Fermat Jose Jaime Rodriguez Hernandez Cristina Gonzalez Moreira Carlos Joaquin Brito Abundiz

Upload: carlos-brito

Post on 24-Jun-2015

260 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Factorizacion de fermat

Factorización de Fermat

Jose Jaime Rodriguez Hernandez Cristina Gonzalez Moreira

Carlos Joaquin Brito Abundiz

Page 2: Factorizacion de fermat

La factorización de Fermat no se basa en los

factores primos, sino en representar un número impar N como una diferencia de dos cuadrados y después expresar la misma como el producto de una suma por una diferencia, con lo que se logra la factorización:

Definición

Page 3: Factorizacion de fermat

Se buscan dos enteros x e y de tal forma que

n = a2 – b2

Como N = (x + y)(x - y), salvo que x - y = 1, tenemos una factorizacion de N

Definición -2

Page 4: Factorizacion de fermat
Page 5: Factorizacion de fermat

A continuación se presentara el corrimiento

manual …

Ejemplo

Page 6: Factorizacion de fermat

  public static String doFermat(double n) { double x = Math.ceil(Math.sqrt(n)); double b2 = (x * x) - n; double temp1 = 0; double temp2 = 0; double raiz = Math.sqrt(b2); int i = 1; System.out.println(" a = \t" + x); System.out.println(" b2 = \t" + b2); System.out.println(" raíz = \t" + raiz); while ((raiz - (Math.floor(raiz))) != 0) { x = x + 1; b2 = (x * x) - n; raiz = Math.sqrt(b2); System.out.println("\nIteracion [" + i + "]\n"); System.out.println(" a = \t" + x); System.out.println(" b2 = \t" + b2); System.out.println(" raíz = \t" + raiz); System.out.println("----------------------"); i = i + 1; } temp1 = x - Math.sqrt(b2); temp2 = x + Math.sqrt(b2); return "X1 = " + temp1 + "\tX2 = " + temp2; }}

Código

Page 7: Factorizacion de fermat

El algoritmo anterior tiene orden de

complejidad exponencial, O(n) En el caso n = pq donde p y q son dos primos

cercanos, y como consecuencia cercanos a raíz de n, es sin embargo muy rápido.

Page 8: Factorizacion de fermat

Por tanto, en el RSA, como en el sistema de

Rabin es conveniente que p y q no sean de la misma longitud

Con esta precaución el método de Fermat es impractible debido al alto número de iteraciones que precisaría.

En la práctica se debe usar limitando el número de iteraciones, para evitar que parar el proceso por medios drásticos.