Introducción a la teoría de números. Ejemplos y - TEC-Digital
Introducción a la teoría de números. Ejemplos y - TEC-Digital
Introducción a la teoría de números. Ejemplos y - TEC-Digital
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
170 NÚMEROS PRIMOS Y FACTORIZACIÓN.<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
Algoritmo 9.5: Miller-Rabin<br />
Datos: n ≥ 3 y un parámetro <strong>de</strong> seguridad t ≥ 1.<br />
Salida: “n es primo” o “n es compuesto”.<br />
Calcule r y s tal que n − 1 = 2sr, r impar;<br />
for i = 1,2,...,t do<br />
a =Random(2,n − 2);<br />
y = ar (mod n);<br />
if y �= 1 y y �= n − 1 then<br />
j = 1;<br />
while j ≤ s − 1 y y �= n − 1 do<br />
y = y2 (mod n);<br />
if y = 1 then<br />
return “Compuesto”;<br />
j = j + 1;<br />
if y �= n − 1 then<br />
return “Compuesto”;<br />
return “Primo”;<br />
compuesto. Esto es así pues si x 2 ≡ y 2 (mod n) pero si x ≡/ ± y (mod n), entonces MCD(x − y,n)<br />
es un factor no trivial <strong>de</strong> n. En <strong>la</strong> línea 12, si y �= n − 1, entonces a es un testigo fuerte <strong>de</strong> n.<br />
Si el algoritmo 9.5 <strong>de</strong>c<strong>la</strong>ra compuesto a n entonces n es <strong>de</strong>finitivamente compuesto, por el<br />
teorema 9.3. Si n es primo, es <strong>de</strong>c<strong>la</strong>rado primo. Si n es compuesto, <strong>la</strong> probabilidad <strong>de</strong> que el<br />
algoritmo lo <strong>de</strong>c<strong>la</strong>re primo es inferior a 1/4 t .<br />
El algoritmo 9.5 requiere, para n − 1 = 2 j r con r impar, t(2 + j)lnn pasos. t es el número <strong>de</strong><br />
bases.<br />
Una estrategia que se usa a veces es fijar <strong>la</strong>s bases. Se toman como base algunos <strong>de</strong> los primeros<br />
primos en vez <strong>de</strong> tomar<strong>la</strong>s <strong>de</strong> manera aleatoria. El resultado importante aquí es este: Si p1, p2,..., pt<br />
son los primeros t primos y si ψt es el más pequeño entero compuesto el cual es seudoprimo<br />
para todas <strong>la</strong>s bases p1, p2,..., pt, entonces el algoritmo <strong>de</strong> Miller-Rabin, con <strong>la</strong>s bases p1, p2,..., pt,<br />
siempre respon<strong>de</strong> <strong>de</strong> manera correcta si n < ψt. Para 1 ≤ t ≤ 8 tenemos<br />
t ψt<br />
1 2047<br />
2 1373653<br />
3 25326001<br />
4 3215031751<br />
5 2152302898747<br />
6 3474749660383<br />
7 341550071728321<br />
8 341550071728321