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 basecon coordenadas enteras n -dimensionales, para una red L (un subgrupo discreto de R n ) conEl algoritmo LLL calcula una base reticular reducida por LLL (corta, casi ortogonal ) en tiempodóndees la longitud más grande debajo la norma euclidiana , es decir,. [ 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 base define su base ortogonal del proceso de Gram-Schmidt y los coeficientes de Gram-Schmidt para cualquier.
Entonces la basese reduce LLL si existe un parámetroen (0.25, 1 ] de tal manera que se cumpla lo siguiente:
- (tamaño reducido) Para, tenemosPor definición, esta propiedad garantiza la reducción de la longitud de la base ordenada.
- (Condición de Lovász) Para, tenemos.
Aquí, estimando el valor de laparámetro, podemos concluir qué tan bien se reduce la base. Valores mayores deconducen 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. Tenga en cuenta que, si bien la reducción de LLL está bien definida para, la complejidad de tiempo polinomial está garantizada solo paraen.
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.de tal manera que el primer vector base no sea más queveces tan largo como un vector más corto en la red, el segundo vector base también está dentrodel 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 enabarcado pory. El primer vector en la base reducida será una combinación lineal entera de estos tres, por lo tanto necesariamente de la forma; pero dicho vector es "corto" solo si a , b , c son pequeños yes 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,tiene una raíz igual a la proporción áurea , 1,6180339887....
Propiedades de la base reducida LLL
Dejarser unBase reducida de una red -LLLA partir de la definición de base reducida LLL, podemos derivar varias otras propiedades útiles sobre.
- El primer vector de la base no puede ser mucho mayor que el vector no nulo más corto :. En particular, paraesto da. [ 8 ]
- El primer vector de la base también está acotado por el determinante de la red:. En particular, paraesto da.
- El producto de las normas de los vectores en la base no puede ser mucho mayor que el determinante de la red: sea, entonces .
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 , j ⌉ b 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 mEjemplos
Ejemplo de Z 3
Sea una base reticular, será dado por las columnas de entonces la base reducida es 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, Entonces, las columnas de la matriz que aparece a continuación proporcionan una base reducida LLL.
Implementaciones
LLL se implementa en
- Arageli como función
lll_reduction_int - fpLLL como implementación independiente
- FLINT como función
fmpz_lll - GAP como función
LLLReducedBasis - Macaulay2 como la función
LLLen el paqueteLLLBases - Magma como las funciones
LLLyLLLGram(tomando una matriz gram) - Maple como función
IntegerRelations[LLL] - Mathematica como la función
LatticeReduce - Biblioteca de Teoría de Números (NTL) como la función
LLL - PARI/GP como función
qflll - Pymatgen como la función
analysis.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
- ^ 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 .
- ↑ Galbraith, Steven (2012). "capítulo 17" . Matemáticas de la criptografía de clave pública .
- ↑ 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 .
- ↑ 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 .
- ^ 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 .
- ↑ 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.
- ↑ D. Simon (2007). "Aplicaciones seleccionadas de LLL en teoría de números" (PDF) . Conferencia LLL+25 . Caen, Francia.
- ↑ Regev, Oded. "Retículos en Ciencias de la Computación: Algoritmo LLL" (PDF) . Universidad de Nueva York . Consultado el 1 de febrero de 2019 .
- ↑ 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 .
- ↑ Bosma, Wieb. "4.LLL" (PDF) . Apuntes de conferencias . Consultado el 28 de febrero de 2010 .
- ↑ 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.
- Teoría de la criptografía
- Teoría computacional de números
- Puntos de la red