SlideShare una empresa de Scribd logo
1 de 8
Jose Jaime Rodriguez Hernandez
Cristina Gonzalez Moreira
Carlos Joaquin Brito Abundiz

 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

 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


 A continuación se presentara el corrimiento manual
…
Ejemplo

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

 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.

 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.

Más contenido relacionado

Similar a Factorizacion de fermat

Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con javadiegocastro1234
 
3.metodo directo
3.metodo directo3.metodo directo
3.metodo directorjvillon
 
Java problems
Java problemsJava problems
Java problemsNoe Lopez
 
Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)waltergomez627
 
Newton And Neville Interpolation
Newton And Neville InterpolationNewton And Neville Interpolation
Newton And Neville InterpolationCristobal Lopez
 
Series de taylor
Series de taylorSeries de taylor
Series de taylorPedro Jose
 
Métodos Directos
Métodos DirectosMétodos Directos
Métodos DirectosKike Prieto
 
Cap6 - Factorización.pdf
Cap6 - Factorización.pdfCap6 - Factorización.pdf
Cap6 - Factorización.pdfLuis Salazar
 
NÚMEROS REALES II
NÚMEROS REALES IINÚMEROS REALES II
NÚMEROS REALES IICESAR V
 
Algoritmos y Estructura de Datos
Algoritmos y Estructura de DatosAlgoritmos y Estructura de Datos
Algoritmos y Estructura de Datossupito01
 
Integrales indefinidas
Integrales indefinidasIntegrales indefinidas
Integrales indefinidasLile Benavides
 

Similar a Factorizacion de fermat (20)

Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
An 04 metodos-directos
An 04 metodos-directosAn 04 metodos-directos
An 04 metodos-directos
 
3.metodo directo
3.metodo directo3.metodo directo
3.metodo directo
 
Java problems
Java problemsJava problems
Java problems
 
Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)
 
Python
PythonPython
Python
 
Newton And Neville Interpolation
Newton And Neville InterpolationNewton And Neville Interpolation
Newton And Neville Interpolation
 
Series de taylor
Series de taylorSeries de taylor
Series de taylor
 
Interpolaciones
InterpolacionesInterpolaciones
Interpolaciones
 
Métodos Directos
Métodos DirectosMétodos Directos
Métodos Directos
 
Cap6 - Factorización.pdf
Cap6 - Factorización.pdfCap6 - Factorización.pdf
Cap6 - Factorización.pdf
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Integracion
IntegracionIntegracion
Integracion
 
Fundamentos Divide Y Venceras
Fundamentos Divide Y VencerasFundamentos Divide Y Venceras
Fundamentos Divide Y Venceras
 
Aline
AlineAline
Aline
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programas
 
NÚMEROS REALES II
NÚMEROS REALES IINÚMEROS REALES II
NÚMEROS REALES II
 
Algoritmos y Estructura de Datos
Algoritmos y Estructura de DatosAlgoritmos y Estructura de Datos
Algoritmos y Estructura de Datos
 
2 algoritmos-1
2 algoritmos-12 algoritmos-1
2 algoritmos-1
 
Integrales indefinidas
Integrales indefinidasIntegrales indefinidas
Integrales indefinidas
 

Más de Carlos J. Brito Abundis (20)

SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
SG Desarrollando Aplicaciones iOS con Datos en Tiempo Real con Firebase y Swift
 
Pentest en Android con Drozer
Pentest en Android con DrozerPentest en Android con Drozer
Pentest en Android con Drozer
 
Test software use case
Test software use caseTest software use case
Test software use case
 
Tarea equipo 2
Tarea equipo 2Tarea equipo 2
Tarea equipo 2
 
Natural language processing
Natural language processingNatural language processing
Natural language processing
 
Tercera forma normal
Tercera forma normalTercera forma normal
Tercera forma normal
 
Capitulo 4
Capitulo 4Capitulo 4
Capitulo 4
 
Vpn
VpnVpn
Vpn
 
Smtp (protocolo simple de
Smtp (protocolo simple deSmtp (protocolo simple de
Smtp (protocolo simple de
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
 
Presentación pop3
Presentación pop3Presentación pop3
Presentación pop3
 
N a t
N a tN a t
N a t
 
Imap
ImapImap
Imap
 
Protocolo dns
Protocolo dnsProtocolo dns
Protocolo dns
 
Ftp tftp
Ftp tftpFtp tftp
Ftp tftp
 
Dhcp
DhcpDhcp
Dhcp
 
7 capa
7 capa 7 capa
7 capa
 
Capa 4
Capa 4Capa 4
Capa 4
 
3 capa de red
3 capa de red3 capa de red
3 capa de red
 
Capa 2
Capa 2Capa 2
Capa 2
 

Factorizacion de fermat

  • 1. Jose Jaime Rodriguez Hernandez Cristina Gonzalez Moreira Carlos Joaquin Brito Abundiz
  • 2.   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
  • 3.   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
  • 4.
  • 5.   A continuación se presentara el corrimiento manual … Ejemplo
  • 6.  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
  • 7.   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.
  • 8.   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.