Articulo de referencia

Algoritmo de Wiedemann en bloques

El algoritmo de bloques de Wiedemann para calcular vectores de núcleo de una matriz sobre un campo finito es una generalización de Don Coppersmith de un algoritmo de Doug Wiedem...

El algoritmo de bloques de Wiedemann para calcular vectores de núcleo de una matriz sobre un campo finito es una generalización de Don Coppersmith de un algoritmo de Doug Wiedemann.

Algoritmo de Wiedemann

Sea una matriz cuadrada sobre un cuerpo finito F, sea un vector aleatorio de longitud , y sea . Considérese la secuencia de vectores obtenida al multiplicar repetidamente el vector por la matriz ; sea cualquier otro vector de longitud , y considérese la secuencia de elementos del cuerpo finito METRO {\estilo de visualización M} norte × norte {\displaystyle n\veces n} incógnita b a s mi {\displaystyle x_{\mathrm {base}}} norte {\estilo de visualización n} incógnita = METRO incógnita b a s mi {\displaystyle x=Mx_{\mathrm {base}}} S = [ incógnita , METRO incógnita , METRO 2 incógnita , ] {\displaystyle S=\left[x,Mx,M^{2}x,\ldots \right]} METRO {\estilo de visualización M} y {\estilo de visualización y} norte {\estilo de visualización n} S y = [ y incógnita , y METRO incógnita , y METRO 2 incógnita ] {\displaystyle S_{y}=\left[y\cdot x,y\cdot Mx,y\cdot M^{2}x\ldots \right]}

Sabemos que la matriz tiene un polinomio mínimo ; por el teorema de Cayley-Hamilton sabemos que este polinomio es de grado (al que llamaremos ) no mayor que . Digamos . Entonces ; por lo que el polinomio mínimo de la matriz aniquila la secuencia y, por lo tanto , . METRO {\estilo de visualización M} norte 0 {\estilo de visualización n_{0}} norte {\estilo de visualización n} a = 0 norte 0 pag a METRO a = 0 {\displaystyle \suma _{r=0}^{n_{0}}p_{r}M^{r}=0} a = 0 norte 0 y ( pag a ( METRO a incógnita ) ) = 0 {\displaystyle \sum_{r=0}^{n_{0}}y\cdot(p_{r}(M^{r}x))=0} S {\estilo de visualización S} S y Estilo de visualización S_{y}}

Pero el algoritmo de Berlekamp–Massey nos permite calcular de manera relativamente eficiente alguna secuencia con . Nuestra esperanza es que esta secuencia, que por construcción aniquila a , en realidad aniquila a ; por lo que tenemos . Luego aprovechamos la definición inicial de para decir que y por lo tanto es un vector kernel de , con suerte distinto de cero . q 0 q yo {\displaystyle q_{0}\lpuntos q_{L}} i = 0 yo q i S y [ i + a ] = 0 a {\displaystyle \sum _{i=0}^{L}q_{i}S_{y}[{i+r}]=0\;\para todo \;r} y S {\displaystyle y\cdot S} S {\estilo de visualización S} i = 0 yo q i METRO i incógnita = 0 {\displaystyle \suma _{i=0}^{L}q_{i}M^{i}x=0} incógnita {\estilo de visualización x} METRO i = 0 yo q i METRO i incógnita b a s mi = 0 {\displaystyle M\sum _{i=0}^{L}q_{i}M^{i}x_{\mathrm {base} }=0} i = 0 yo q i METRO i incógnita b a s mi {\displaystyle \suma _{i=0}^{L}q_{i}M^{i}x_{\mathrm {base}}} METRO {\estilo de visualización M}

El algoritmo de bloques Wiedemann (o Coppersmith-Wiedemann)

La implementación natural de la aritmética de matrices dispersas en una computadora facilita el cálculo de la secuencia S en paralelo para una cantidad de vectores igual al ancho de una palabra de máquina; de hecho, normalmente no se necesitará más tiempo para calcular esa cantidad de vectores que para calcular uno solo. Si tiene varios procesadores, puede calcular la secuencia S para un conjunto diferente de vectores aleatorios en paralelo en todas las computadoras.

Resulta que, mediante una generalización del algoritmo de Berlekamp-Massey para proporcionar una secuencia de matrices pequeñas, se puede tomar la secuencia producida para una gran cantidad de vectores y generar un vector kernel de la matriz grande original. Es necesario calcular para algunos donde se necesita satisfacer y son una serie de vectores de longitud n; pero en la práctica se puede tomar como una secuencia de vectores unitarios y simplemente escribir las primeras entradas en los vectores en cada momento t . y i METRO a incógnita yo {\displaystyle y_{i}\cdot M^{t}x_{j}} i = 0 i máximo , yo = 0 yo máximo , a = 0 a máximo {\displaystyle i=0\ldots i_{\max},j=0\ldots j_{\max},t=0\ldots t_{\max}} i máximo , yo máximo , a máximo {\displaystyle i_{\max},j_{\max},t_{\max}} a máximo > d i máximo + d yo máximo + Oh ( 1 ) {\displaystyle t_{\max}>{\frac {d}{i_{\max}}}+{\frac {d}{j_{\max}}}+O(1)} y i {\displaystyle y_{i}} y i {\displaystyle y_{i}} i máximo {\displaystyle i_{\max}}

Cálculo de factores invariantes

El algoritmo de bloques de Wiedemann se puede utilizar para calcular los factores invariantes principales de la matriz, es decir, los bloques más grandes de la forma normal de Frobenius . Dados y donde es un cuerpo finito de tamaño , la probabilidad de que los factores invariantes principales de se conserven en es METRO F q norte × norte {\displaystyle M\in F_{q}^{n\times n}} , V F q b × norte {\displaystyle U,V\en F_{q}^{b\times n}} F q Estilo de visualización Fq q {\estilo de visualización q} pag {\estilo de visualización p} a < b {\displaystyle k<b} METRO {\estilo de visualización M} i = 0 2 norte 1 METRO i V yo incógnita i {\displaystyle \suma _{i=0}^{2n-1}UM^{i}V^{T}x^{i}}

pag { 1 / 64 , if  b = k + 1  and  q = 2 ( 1 3 2 b k ) 2 1 / 16 if  b k + 2  and  q = 2 ( 1 2 q b k ) 2 1 / 9 if  b k + 1  and  q > 2 {\displaystyle p\geq {\begin{cases}1/64,&{\text{if }}b=k+1{\text{ and }}q=2\\\left(1-{\frac {3}{2^{b-k}}}\right)^{2}\geq 1/16&{\text{if }}b\geq k+2{\text{ and }}q=2\\\left(1-{\frac {2}{q^{b-k}}}\right)^{2}\geq 1/9&{\text{if }}b\geq k+1{\text{ and }}q>2\end{cases}}} . [1]

Referencias

  1. ^ Harrison, Gavin; Johnson, Jeremy; Saunders, B. David (1 de enero de 2022). "Análisis probabilístico de Wiedemann en bloque para factores invariantes principales". Revista de computación simbólica . 108 : 98–116. arXiv : 1803.03864 . doi :10.1016/j.jsc.2021.06.005. ISSN  0747-7171.
  • Wiedemann, D., "Resolución de ecuaciones lineales dispersas sobre campos finitos", IEEE Trans. Inf. Theory IT-32, págs. 54-62, 1986.
  • D. Coppersmith, Solución de ecuaciones lineales homogéneas sobre GF(2) mediante el algoritmo de bloques de Wiedemann, Math. Comp. 62 (1994), 333-350.
  • El informe de investigación de Villard de 1997 'Un estudio del algoritmo de bloques Wiedemann de Coppersmith utilizando polinomios matriciales' (el material de la portada está en francés, pero el contenido en inglés) es una descripción razonable.
  • El artículo de Thomé 'Cálculo subcuadrático de polinomios generadores de vectores y mejora del algoritmo de bloques Wiedemann' utiliza un algoritmo basado en FFT más sofisticado para calcular los polinomios generadores de vectores y describe una implementación práctica con i max  =  j max  = 4 utilizada para calcular un vector kernel de una matriz de 484603×484603 de entradas módulo 2 607 −1 y, por lo tanto, para calcular logaritmos discretos en el campo GF (2 607 ).
Retrieved from "https://en.wikipedia.org/w/index.php?title=Block_Wiedemann_algorithm&oldid=1170214599"