Articulo de referencia

Algoritmo de reducción de base reticular Lenstra-Lenstra-Lovász

El algoritmo de reducción de base de red Lenstra-Lenstra-Lovász ( LLL ) es un algoritmo de reducción de red de tiempo polinomial inventado por Arjen Lenstra , Hendrik Lenstra y ...

El algoritmo de reducción de base de red Lenstra-Lenstra-Lovász ( LLL ) es un algoritmo de reducción de red de tiempo polinomial inventado por Arjen Lenstra , Hendrik Lenstra y László Lovász en 1982. [ 1 ] Dada una baseB={b1,b2,,bd}{\displaystyle \mathbf {B} =\{\mathbf {b} _{1},\mathbf {b} _{2},\dots ,\mathbf {b} _{d}\}}con coordenadas enteras n -dimensionales, para una red L (un subgrupo discreto de R n ) condnorte{\displaystyle d\leq n}El algoritmo LLL calcula una base reticular reducida por LLL (corta, casi ortogonal ) en tiempoO(d5norteregistro3B){\displaystyle {\mathcal {O}}(d^{5}n\log ^{3}B)}dóndeB{\displaystyle B}es la longitud más grande debi{\displaystyle \mathbf {b} _{i}}bajo la norma euclidiana , es decir,B=máximo(b12,b22,,bd2){\displaystyle B=\max \left(\|\mathbf {b} _{1}\|_{2},\|\mathbf {b} _{2}\|_{2},\dots ,\|\mathbf {b} _{d}\|_{2}\right)}. [ 2 ] [ 3 ]

Las aplicaciones originales tenían como objetivo proporcionar algoritmos de tiempo polinomial para factorizar polinomios con coeficientes racionales , para encontrar aproximaciones racionales simultáneas a números reales y para resolver el problema de programación lineal entera en dimensiones fijas.

reducción de LLL

La definición precisa de LLL-reducido es la siguiente: Dada una baseB={b1,b2,,bnorte},{\displaystyle \mathbf {B} =\{\mathbf {b} _{1},\mathbf {b} _{2},\dots,\mathbf {b} _{n}\},} define su base ortogonal del proceso de Gram-SchmidtB={b1,b2,,bnorte},{\displaystyle \mathbf {B} ^{*}=\{\mathbf {b} _{1}^{*},\mathbf {b} _{2}^{*},\dots ,\mathbf {b} _{n}^{*}\},} y los coeficientes de Gram-Schmidt μi,j=bi,bjbj,bj,{\displaystyle \mu _{i,j}={\frac {\langle \mathbf {b} _{i},\mathbf {b} _{j}^{*}\rangle }{\langle \mathbf {b} _{j}^{*},\mathbf {b} _{j}^{*}\rangle }},}para cualquier1j<inorte{\displaystyle 1\leq j<i\leq n}.

Entonces la baseB{\displaystyle B}se reduce LLL si existe un parámetroδ{\displaystyle \delta }en (0.25, 1 ] de tal manera que se cumpla lo siguiente:

  1. (tamaño reducido) Para1j<inorte{\displaystyle 1\leq j<i\leq n}, tenemos|μi,j|0,5{\displaystyle \left|\mu _{i,j}\right|\leq 0.5}Por definición, esta propiedad garantiza la reducción de la longitud de la base ordenada.
  2. (Condición de Lovász) Para2knorte{\displaystyle 2\leq k\leq n}, tenemosδbk12bk2+μk,k12bk12{\displaystyle \delta \Vert \mathbf {b} _{k-1}^{*}\Vert ^{2}\leq \Vert \mathbf {b} _{k}^{*}\Vert ^{2}+\mu _{k,k-1}^{2}\Vert \mathbf {b} _{k-1}^{*}\Vert ^{2}}.

Aquí, estimando el valor de laδ{\displaystyle \delta }parámetro, podemos concluir qué tan bien se reduce la base. Valores mayores deδ{\displaystyle \delta }conducen a reducciones más fuertes de la base. Inicialmente, A. Lenstra, H. Lenstra y L. Lovász demostraron el algoritmo de reducción LLL paraδ=3/4{\displaystyle \delta =3/4}. Tenga en cuenta que, si bien la reducción de LLL está bien definida paraδ=1{\displaystyle \delta =1}, la complejidad de tiempo polinomial está garantizada solo paraδ{\displaystyle \delta }en(0,25,1){\displaystyle (0.25,1)}.

El algoritmo LLL calcula bases reducidas LLL. No se conoce ningún algoritmo eficiente para calcular una base en la que los vectores base sean lo más cortos posible para retículos de dimensiones mayores que 4. [ 4 ] Sin embargo, una base reducida LLL es casi tan corta como sea posible, en el sentido de que hay límites absolutos.doi>1{\displaystyle c_{i}>1}de tal manera que el primer vector base no sea más quedo1{\displaystyle c_{1}}veces tan largo como un vector más corto en la red, el segundo vector base también está dentrodo2{\displaystyle c_{2}}del segundo mínimo sucesivo, y así sucesivamente.

Aplicaciones

Una de las primeras aplicaciones exitosas del algoritmo LLL fue su uso por Andrew Odlyzko y Herman te Riele para refutar la conjetura de Mertens . [ 5 ]

El algoritmo LLL ha encontrado numerosas aplicaciones en algoritmos de detección MIMO [ 6 ] y en criptoanálisis de esquemas de cifrado de clave pública : criptosistemas de la mochila , RSA con configuraciones específicas, NTRUEncrypt , etc. El algoritmo puede utilizarse para encontrar soluciones enteras a muchos problemas. [ 7 ]

En particular, el algoritmo LLL constituye el núcleo de uno de los algoritmos de relación entera . Por ejemplo, si se cree que r = 1,618034 es una raíz (ligeramente redondeada) de una ecuación cuadrática desconocida con coeficientes enteros, se puede aplicar la reducción LLL a la red enR4{\displaystyle \mathbf {R} ^{4}}abarcado por[1,0,0,10000r2],[0,1,0,10000r],{\displaystyle [1,0,0,10000r^{2}],[0,1,0,10000r],}y[0,0,1,10000]{\displaystyle [0,0,1,10000]}. El primer vector en la base reducida será una combinación lineal entera de estos tres, por lo tanto necesariamente de la forma[a,b,do,10000(ar2+br+do)]{\displaystyle [a,b,c,10000(ar^{2}+br+c)]}; pero dicho vector es "corto" solo si a , b , c son pequeños yar2+br+do{\displaystyle ar^{2}+br+c}es incluso más pequeño. Por lo tanto, es probable que las tres primeras entradas de este vector corto sean los coeficientes del polinomio cuadrático integral que tiene a r como raíz. En este ejemplo, el algoritmo LLL encuentra que el vector más corto es [1, -1, -1, 0.00025] y, de hecho,incógnita2incógnita1{\displaystyle x^{2}-x-1}tiene una raíz igual a la proporción áurea , 1,6180339887....

Propiedades de la base reducida LLL

DejarB={b1,b2,,bnorte}{\displaystyle \mathbf {B} =\{\mathbf {b} _{1},\mathbf {b} _{2},\dots,\mathbf {b} _{n}\}}ser unδ{\displaystyle \delta }Base reducida de una red -LLLL{\displaystyle {\mathcal {L}}}A partir de la definición de base reducida LLL, podemos derivar varias otras propiedades útiles sobreB{\displaystyle \mathbf {B} }.

  1. El primer vector de la base no puede ser mucho mayor que el vector no nulo más corto :b1(2/(4δ1))norte1λ1(L){\displaystyle \Vert \mathbf {b} _{1}\Vert \leq (2/({\sqrt {4\delta -1}}))^{n-1}\cdot \lambda _{1}({\mathcal {L}})}. En particular, paraδ=3/4{\displaystyle \delta =3/4}esto dab12(norte1)/2λ1(L){\displaystyle \Vert \mathbf {b} _{1}\Vert \leq 2^{(n-1)/2}\cdot \lambda _{1}({\mathcal {L}})}. [ 8 ]
  2. El primer vector de la base también está acotado por el determinante de la red:b1(2/(4δ1))(norte1)/2(det(L))1/norte{\displaystyle \Vert \mathbf {b} _{1}\Vert \leq (2/({\sqrt {4\delta -1}}))^{(n-1)/2}\cdot (\det({\mathcal {L}}))^{1/n}}. En particular, paraδ=3/4{\displaystyle \delta =3/4}esto dab12(norte1)/4(det(L))1/norte{\displaystyle \Vert \mathbf {b} _{1}\Vert \leq 2^{(n-1)/4}\cdot (\det({\mathcal {L}}))^{1/n}}.
  3. El producto de las normas de los vectores en la base no puede ser mucho mayor que el determinante de la red: seaδ=3/4{\displaystyle \delta =3/4}, entonces i=1nortebi2norte(norte1)/4det(L){\textstyle \prod _{i=1}^{n}\Vert \mathbf {b} _{i}\Vert \leq 2^{n(n-1)/4}\cdot \det({\mathcal {L}})}.

pseudocódigo del algoritmo LLL

La siguiente descripción se basa en ( Hoffstein, Pipher y Silverman 2008 , Teorema 6.68) , con las correcciones de las erratas. [ 9 ]

ENTRADA una base reticular b 1 , b 2 , ..., b n en Z m un parámetro δ con 1/4 < δ < 1, más comúnmente δ = 3/4 PROCEDIMIENTO B * <- GramSchmidt({ b 1 , ..., b n }) = { b 1 * , ..., b n * }; y no normalizar μ i , j <- InnerProduct( b i , b j * )/InnerProduct( b j * , b j * ); usando los valores más actuales de b i y b j * k <- 2; mientras k <= n hacer para j desde k −1 hasta 1 hacer si | μ k , j | > 1/2 entonces b k <- b k − ⌊ μ k , jb j ; Actualizar B * y el μ i , j relacionado's según sea necesario. (El método ingenuo es recalcular B * cada vez que b i cambia: B * <- GramSchmidt({ b 1 , ..., b n }) = { b 1 * , ..., b n * }) fin si fin para si InnerProduct( b k * , b k * ) > ( δ − μ 2 k , k −1 ) InnerProduct( b k −1 * , b k −1 * ) entonces k <- k + 1; de lo contrario Intercambiar b k y b k −1 ; Actualizar B * y los μ i , j relacionados's según sea necesario. k <- max( k −1, 2); fin si fin mientras devolver B la base reducida LLL de {b 1 , ..., b n } SALIDA la base reducida b 1 , b 2 , ..., b n en Z m

Ejemplos

Ejemplo de Z 3

Sea una base reticularb1,b2,b3Z3{\displaystyle \mathbf {b} _{1},\mathbf {b} _{2},\mathbf {b} _{3}\in \mathbf {Z} ^{3}}, será dado por las columnas de [113105126]{\displaystyle {\begin{bmatrix}1&-1&3\\1&0&5\\1&2&6\end{bmatrix}}} entonces la base reducida es [011100012],{\displaystyle {\begin{bmatrix}0&1&-1\\1&0&0\\0&1&2\end{bmatrix}},} que, al reducirse su tamaño, satisface la condición de Lovász y, por lo tanto, está reducida a LLL, como se describió anteriormente. Véase W. Bosma [ 10 ] para obtener más detalles sobre el proceso de reducción.

Ejemplo de Z[ i ] 4

Asimismo, para la base sobre los enteros complejos dada por las columnas de la matriz siguiente, [2+2i7+3i7+3i5+4i3+3i2+4i6+2i1+4i2+2i8+0i9+1i7+5i8+2i9+0i6+3i4+4i],{\displaystyle {\begin{bmatrix}-2+2i&7+3i&7+3i&-5+4i\\3+3i&-2+4i&6+2i&-1+4i\\2+2i&-8+0i&-9+1i&-7+5i\\8+2i&-9+0i&6+3i&-4+4i\end{bmatrix}},} Entonces, las columnas de la matriz que aparece a continuación proporcionan una base reducida LLL. [6+3i2+2i22i3+6i61i3+3i55i2+1i22i2+2i31i5+3i2+1i8+2i7+1i24i].{\displaystyle {\begin{bmatrix}-6+3i&-2+2i&2-2i&-3+6i\\6-1i&3+3i&5-5i&2+1i\\2-2i&2+2i&-3-1i&-5+3i\\-2+1i&8+2i&7+1i&-2-4i\\\end{bmatrix}}.}

Implementaciones

LLL se implementa en

  • Arageli como funciónlll_reduction_int
  • fpLLL como implementación independiente
  • FLINT como funciónfmpz_lll
  • GAP como funciónLLLReducedBasis
  • Macaulay2 como la función LLLen el paqueteLLLBases
  • Magma como las funciones LLLy LLLGram(tomando una matriz gram)
  • Maple como funciónIntegerRelations[LLL]
  • Mathematica como la funciónLatticeReduce
  • Biblioteca de Teoría de Números (NTL) como la funciónLLL
  • PARI/GP como funciónqflll
  • Pymatgen como la funciónanalysis.get_lll_reduced_lattice
  • SageMath como método LLLimpulsado por fpLLL y ​​NTL
  • Isabelle/HOL en la entrada 'archivo de pruebas formales' LLL_Basis_Reduction. Este código se exporta a Haskell ejecutable de manera eficiente. [ 11 ]

Véase también

Notas

  1. ^ Lenstra, Alaska ; Lenstra, HW Jr .; Lovász, L. (1982). "Factorización de polinomios con coeficientes racionales". Annalen Matemáticas . 261 (4): 515– 534. CiteSeerX 10.1.1.310.318 . doi : 10.1007/BF01457454 . hdl : 1887/3810 . SEÑOR 0682664 . S2CID 5701340 .   
  2. Galbraith, Steven (2012). "capítulo 17" . Matemáticas de la criptografía de clave pública .
  3. Nguyen, Phong Q.; Stehlè, Damien (septiembre de 2009). "Un algoritmo LLL con complejidad cuadrática" . SIAM J. Comput . 39 (3): 874–903 . doi : 10.1137/070705702 . Recuperado el 3 de junio de 2019 .
  4. Nguyen, Phong Q.; Stehlé, Damien (1 de octubre de 2009). "Revisión de la reducción de bases reticulares de baja dimensión". ACM Transactions on Algorithms . 5 (4): 1– 48. doi : 10.1145/1597036.1597050 . S2CID 10583820 . 
  5. ^ Odlyzko, Andrés; te Reile, Herman JJ "Refutando la conjetura de Mertens" (PDF) . Journal für die reine und angewandte Mathematik . 357 : 138– 160. doi : 10.1515/crll.1985.357.138 . S2CID 13016831 . Consultado el 27 de enero de 2020 . 
  6. D. Wübben et al., "Reducción de retículos", IEEE Signal Processing Magazine, vol. 28, n.º 3, págs. 70-91, abril de 2011.
  7. D. Simon (2007). "Aplicaciones seleccionadas de LLL en teoría de números" (PDF) . Conferencia LLL+25 . Caen, Francia.
  8. Regev, Oded. "Retículos en Ciencias de la Computación: Algoritmo LLL" (PDF) . Universidad de Nueva York . Consultado el 1 de febrero de 2019 .
  9. Silverman, Joseph . "Introducción a la criptografía matemática: erratas" (PDF) . Departamento de Matemáticas de la Universidad de Brown . Consultado el 5 de mayo de 2015 .
  10. Bosma, Wieb. "4.LLL" (PDF) . Apuntes de conferencias . Consultado el 28 de febrero de 2010 .
  11. Divasón, Jose (2018). "Una formalización del algoritmo de reducción de base LLL". Demostración interactiva de teoremas: 9.ª Conferencia Internacional, ITP 2018, celebrada como parte de la Conferencia Federada de Lógica, FloC 2018, Oxford, Reino Unido, 9-12 de julio de 2018, Actas . Lecture Notes in Computer Science. Vol. 10895. pp. 160-177 . doi : 10.1007/978-3-319-94821-8_10 . ISBN   978-3-319-94820-1.

Referencias

  • Napias, Huguette (1996). "Una generalización del algoritmo LLL sobre anillos u órdenes euclidianos" . Journal de Théorie des Nombres de Burdeos . 8 (2): 387– 396. doi : 10.5802/jtnb.176 .
  • Cohen, Henri (2000). Un curso de teoría algebraica computacional de números . GTM. Vol.  138. Springer. ISBN 3-540-55640-0.
  • Borwein, Peter (2002). Excursiones computacionales en análisis y teoría de números . Springer. ISBN 0-387-95444-9.
  • Luk, Franklin T.; Qiao, Sanzheng (2011). "Un algoritmo LLL pivotado" . Álgebra lineal y sus aplicaciones . 434 (11): 2296– 2307. doi : 10.1016/j.laa.2010.04.003 .
  • Hoffstein, Jeffrey ; Pipher, Jill ; Silverman, JH (2008). Introducción a la criptografía matemática . Springer. ISBN 978-0-387-77993-5.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Lenstra–Lenstra–Lovász_lattice_basis_reduction_algorithm&oldid=1359688160 "