Lenstra – Lenstra – Lovász algoritmus redukce báze mřížky - Lenstra–Lenstra–Lovász lattice basis reduction algorithm
The Lenstra – Lenstra – Lovász (JÁ BUDU) algoritmus redukce mřížkové báze je polynomiální čas mřížková redukce algoritmus vynalezl Arjen Lenstra, Hendrik Lenstra a László Lovász v roce 1982.[1] Vzhledem k základ s n-rozměrné celočíselné souřadnice pro a mříž L (samostatná podskupina Rn) s , algoritmus LLL vypočítá Sníženo LLL (krátce, skoro ortogonální ) mřížkový základ v čase
kde je největší délka podle euklidovské normy, tj. .[2][3]
Původní aplikace měly poskytnout algoritmy polynomiálního času pro faktorizující polynomy s racionálními koeficienty, k nalezení simultánní racionální aproximace reálných čísel a za řešení celočíselný problém lineárního programování v pevných rozměrech.
Snížení LLL
Přesná definice LLL-redukované je následující: Daná a základ
definovat jeho Gram – Schmidtův proces ortogonální základ
a Gram-Schmidtovy koeficienty
- , pro všechny .
Pak základ je LLL-sníženo, pokud existuje parametr v (0,25,1] tak, že platí:
- (zmenšená velikost) Pro . Tato vlastnost podle definice zaručuje zkrácení délky objednaného základu.
- (Podmínka Lovász) Pro k = 2,3, .., n .
Tady, odhad hodnoty můžeme konstatovat, jak dobře je základna snížena. Vyšší hodnoty vést k silnějšímu snížení základny. Zpočátku A. Lenstra, H. Lenstra a L. Lovász demonstrovali algoritmus redukce LLL pro Uvědomte si, že i když je redukce LLL dobře definována pro , polynomiálně-časová složitost je zaručena pouze pro v .
Algoritmus LLL vypočítává báze redukované LLL. Neexistuje žádný známý efektivní algoritmus pro výpočet základu, ve kterém jsou bazální vektory co nejkratší pro mřížky rozměrů větších než 4.[4] Základ se sníženou LLL je však téměř co nejkratší v tom smyslu, že existují absolutní hranice takový, že první základní vektor není větší než krát tak dlouhý jako nejkratší vektor v mřížce, druhý bazický vektor je rovněž uvnitř druhého po sobě jdoucího minima atd.
Aplikace
Časnou úspěšnou aplikací algoritmu LLL bylo jeho použití Andrew Odlyzko a Herman te Riele vyvracet Mertenova domněnka.[5]
Algoritmus LLL našel v aplikaci řadu dalších aplikací MIMO detekční algoritmy[6] a dešifrování šifrování veřejného klíče schémata: batoh kryptosystémy, RSA s konkrétním nastavením, NTRUEncrypt, a tak dále. Algoritmus lze použít k nalezení celočíselných řešení mnoha problémů.[7]
Zejména algoritmus LLL tvoří jádro jednoho z celočíselné relační algoritmy. Například pokud se tomu věří r= 1,618034 je (mírně zaoblené) vykořenit do neznáma kvadratická rovnice s celočíselnými koeficienty lze použít redukci LLL na mřížku v překlenul a . První vektor v redukované bázi bude celé číslo lineární kombinace z těchto tří, tedy nutně ve formě ; ale takový vektor je "krátký", pouze pokud A, b, C jsou malé a je ještě menší. První tři vstupy tohoto krátkého vektoru tedy budou pravděpodobně koeficienty integrálního kvadratu polynomiální který má r jako kořen. V tomto příkladu algoritmus LLL najde nejkratší vektor [1, -1, -1, 0,00025] a skutečně má kořen rovný Zlatý řez, 1.6180339887....
Vlastnosti základny se sníženým LLL
Nechat být -LLL snížený základ a mříž . Z definice základny se sníženým LLL můžeme odvodit několik dalších užitečných vlastností .
- První vektor v základně nemůže být mnohem větší než nejkratší nenulový vektor: . Zejména pro , to dává .[8]
- První vektor v základně je také omezen determinantem mřížky: . Zejména pro , to dává .
- Produkt norem vektorů v základně nemůže být mnohem větší než determinant mřížky: let , pak .
Algoritmus LLL pseudokód
Následující popis je založen na (Hoffstein, Pipher & Silverman 2008, Theorem 6.68), s opravami z errata.[9]
VSTUP mřížkový základ parametr s , nejčastěji POSTUP a normalizovat pomocí nejaktuálnějších hodnot a zatímco dělat pro z na dělat -li pak Aktualizace a související je podle potřeby. (Naivní metoda je přepočítat kdykoli Změny: ) skončit, pokud konec pro -li pak jiný Zaměnit a Aktualizace a související je podle potřeby. skončit, pokud skončit chvíli vrátit se LLL snížil základ VÝSTUP snížený základ
Příklady
Příklad z
Nechť mřížkový základ , být dán sloupci
pak je snížený základ
- ,
který je zmenšen velikostí, splňuje podmínku Lovász, a je tedy redukován LLL, jak je popsáno výše. Viz W. Bosma.[10] pro podrobnosti procesu redukce.
Příklad z
Podobně pro základ nad komplexními celými čísly danými sloupci matice níže,
- ,
pak sloupce níže uvedené matice poskytují základ se sníženým LLL.
- .
Implementace
LLL je implementováno v
- Arageli jako funkce
lll_reduction_int
- fpLLL jako samostatná implementace
- MEZERA jako funkce
LLLReducedBasis
- Macaulay2 jako funkce
JÁ BUDU
v balíčkuLLLBases
- Magma jako funkce
JÁ BUDU
aLLLGram
(přičemž gram matice) - Javor jako funkce
IntegerRelations [LLL]
- Mathematica jako funkce
LatticeReduce
- Knihovna teorie čísel (NTL) jako funkce
JÁ BUDU
- PARI / GP jako funkce
qflll
- Pymatgen jako funkce
analysis.get_lll_reduced_lattice
- SageMath jako metoda
JÁ BUDU
poháněno fpLLL a NTL - Isabelle / HOL v záznamu „archiv formálních důkazů“
LLL_Basis_Reduction
. Tento kód se exportuje do efektivně spustitelného Haskell.[11]
Viz také
Poznámky
- ^ Lenstra, A. K.; Lenstra, H. W., Jr.; Lovász, L. (1982). "Faktorování polynomů s racionálními koeficienty". Mathematische Annalen. 261 (4): 515–534. CiteSeerX 10.1.1.310.318. doi:10.1007 / BF01457454. hdl:1887/3810. PAN 0682664.
- ^ Galbraith, Steven (2012). „kapitola 17“. Matematika kryptografie veřejného klíče.
- ^ Nguyen, Phong Q .; Stehlè, Damien (září 2009). „Algoritmus LLL s kvadratickou složitostí“. SIAM J. Comput. 39 (3): 874–903. doi:10.1137/070705702. Citováno 3. června 2019.
- ^ Nguyen, Phong Q .; Stehlé, Damien (1. října 2009). Msgstr "Nízkorozměrná mřížková redukce se znovu objevila". Transakce ACM na algoritmech. 5 (4): 1–48. doi:10.1145/1597036.1597050.
- ^ Odlyzko, Andrew; te Reile, Herman J. J. „Vyvrátit Mertenovu domněnku“ (PDF). Journal für die reine und angewandte Mathematik. 357: 138–160. doi:10,1515 / crll.1985.357.138. Citováno 27. ledna 2020.
- ^ Shahabuddin, Shahriar et al., „A Customized Lattice Reduction Multiprocessor for MIMO Detection“, v předtisku Arxiv, leden 2015.
- ^ D. Simon (2007). "Vybrané aplikace LLL v teorii čísel" (PDF). Konference LLL + 25. Caen, Francie.
- ^ Regev, Oded. „Lattices in Computer Science: LLL Algorithm“ (PDF). Newyorská univerzita. Citováno 1. února 2019.
- ^ Silverman, Joseph. "Úvod do matematické kryptografie Errata" (PDF). Brown University Mathematics Dept. Citováno 5. května 2015.
- ^ Bosma, Wieb. "4. LLL" (PDF). Poznámky z přednášky. Citováno 28. února 2010.
- ^ Divasón, Jose. „Formalizace algoritmu redukce základu LLL“. Konferenční příspěvek. Citováno 3. května 2020.
Reference
- Napias, Huguette (1996). „Zobecnění algoritmu LLL na euklidovské prsteny nebo příkazy“. Journal de Théorie des Nombres de Bordeaux. 8 (2): 387–396. doi:10,5802 / jtnb.176.
- Cohen, Henri (2000). Kurz výpočetní algebraické teorie čísel. GTM. 138. Springer. ISBN 3-540-55640-0.CS1 maint: ref = harv (odkaz)
- Borwein, Peter (2002). Výpočtové exkurze v analýze a teorii čísel. ISBN 0-387-95444-9.
- Luk, Franklin T .; Qiao, Sanzheng (2011). „Otočený algoritmus LLL“. Lineární algebra a její aplikace. 434 (11): 2296–2307. doi:10.1016 / j.laa.2010.04.003.
- Hoffstein, Jeffrey; Pipher, Jill; Silverman, J.H. (2008). Úvod do matematické kryptografie. Springer. ISBN 978-0-387-77993-5.CS1 maint: ref = harv (odkaz)