next up previous contents
Siguiente: En campos finitos Un nivel arriba: En anillos de residuos Anterior: Algoritmo de Shank

Algoritmo de Pohlig-Hellman

Con las notaciones anteriores, supongamos factorizado como un producto de primos $p-1=\prod_{i=1}^{t} p_i^{e_i}$. Como se quiere conocer el exponente $z\mbox{\rm mod }(p-1)$, por el Teorema Chino del Residuo, basta calcular $z\mbox{\rm mod }(p_i)$, $i=1,\ldots,t$. Consideremos pues el siguiente problema:


Instancia:
\begin{pagi}{39}Primos $p,q$\space y un exponente $e$\space tales que $p-1=0\mbox{\rm mod }q^e$\space pero $p-1\not=0\mbox{\rm mod }q^{e+1}$ .\end{pagi}
Solución:
\begin{pagi}{39}Un entero $z_q$\space tal que $z_q=z\mbox{\rm mod }q^e$ .\end{pagi}



Escribamos a la solución del problema en base q: $z_q=\sum_{i=0}^{e-1} a_i q^i$. Ya que $z=z_q\mbox{\rm mod }q^e$ se tiene z=zq+sqe, para algún $s\in I\!\!N$. Observamos que

\begin{displaymath}z_q+sq^e-a_0=\sum_{i=1}^{e-1} a_i q^i + sq^e=q\left[\sum_{i=0}^{e-2} a_{i+1} q^i + sq^{e-1}\right]\end{displaymath}

es decir $\frac{1}{q}\left[z_q+sq^e-a_0\right]$ es un entero. Consecuentemente

\begin{displaymath}\eta:= \frac{p-1}{q}\left[z_q+sq^e\right]=\frac{p-1}{q}a_0\mbox{\rm mod }(p-1)=:\theta\mbox{\rm mod }(p-1).\end{displaymath}

Por tanto,

\begin{displaymath}y^{\frac{p-1}{q}}=x^{\eta}=x^{\theta}.\end{displaymath}

Calculemos pues $v=y^{\frac{p-1}{q}}$. Si v=1 entonces a0=0. En otro caso, el mínimo i tal que $v=x^{i\frac{p-1}{q}}$ dará el valor de a0. Si c=1 entonces zq=a0. En otro caso, hacemos $y_1=y\cdot x^{-a_0}$. Denotemos por z1 al exponente tal que $z_1=(\log_x(y_1)\mbox{\rm mod }q^e$. De hecho, $z_1=\sum_{i=1}^{e-1} a_i q^i$. Como antes,

\begin{displaymath}y_1^{\frac{p-1}{q^2}}=x^{\frac{p-1}{q}a_1}\mbox{\rm mod }p.\end{displaymath}

Calculemos pues $v_1=y_1^{\frac{p-1}{q^2}}$. Si v1=1 entonces a1=0. En otro caso, el mínimo i tal que $v_1=x^{i\frac{p-1}{q}}$ dará el valor de a1. Si c=2 entonces zq=a0+a1q. En otro caso, se repite el procedimiento.
  
Figure 3.1: Algoritmo de Pohlig-Hellman.
\fbox{\begin{minipage}[t]{28em}
\begin{tabbing}123\=456\=789\=012\=345\=678\=901...
...ado }$z_q=\sum_{i=0}^{e-1} a_i q^i$\space \\
\} 
\end{tabbing}
\end{minipage}}


next up previous contents
Siguiente: En campos finitos Un nivel arriba: En anillos de residuos Anterior: Algoritmo de Shank
Guillermo Morales-Luna
2000-10-29