Lenstra-Lenstra-Lovas algoritme
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 19. marts 2020; checks kræver
3 redigeringer .
Lenstra-Lenstra-Lovas- algoritmen ( LLL-algorithm , LLL-algorithm ) er en gitterbasisreduktionsalgoritme udviklet af Arjen Lenstra , Hendrik Lenstra og Laszlo Lovas i 1982 [1] . I polynomiel tid transformerer algoritmen en basis på et gitter (undergruppe ) til den korteste næsten ortogonale basis på samme gitter. Fra 2019 er Lenstra-Lenstra-Lovas-algoritmen en af de mest effektive til at beregne det reducerede grundlag i højdimensionelle gitter . Det er primært relevant i problemer, der reducerer til at finde den korteste gittervektor
.
Historie
Algoritmen blev udviklet af de hollandske matematikere Arjen Lenstra og Hendrik Lenstra sammen med den ungarske matematiker Laszlo Lovas i 1982 [1] [2] .
Hovedforudsætningen for oprettelsen af LLL-algoritmen var, at Gram-Schmidt-processen kun fungerer med vektorer, hvis komponenter er reelle tal . For et vektorrum gør Gram-Schmidt-processen det muligt at transformere et vilkårligt grundlag til et ortonormalt ("ideelt", som LLL-algoritmen har tendens til). Men Gram-Schmidt-processen garanterer ikke, at hver af vektorerne ved outputtet vil være en heltal lineær kombination af den oprindelige basis. Det resulterende sæt af vektorer er således muligvis ikke grundlaget for det oprindelige gitter. Dette førte til behovet for at skabe en speciel algoritme til at arbejde med gitter [3] .
Oprindeligt blev algoritmen brugt til at faktorisere polynomier med heltalskoefficienter , beregne diofantiske tilnærmelser af reelle tal og til at løse lineære programmeringsproblemer i fastdimensionelle rum og senere til kryptoanalyse [4] [2] .
Basisreduktion
Et gitter i det euklidiske rum er en undergruppe af gruppen genereret af lineært uafhængige vektorer fra , kaldet basis for gitteret. Enhver gittervektor kan repræsenteres af en heltal lineær kombination af basisvektorer [5] . Grundlaget for et gitter er defineret tvetydigt: figuren viser to forskellige baser af det samme gitter.

Basisreduktion består i at bringe gittergrundlaget til en særlig form, der tilfredsstiller bestemte egenskaber. Den reducerede basis bør om muligt være den korteste blandt alle baserne i gitteret og tæt på ortogonal (hvilket kommer til udtryk i, at de endelige Gram-Schmidt-koefficienter ikke bør være mere end ) [3] .

Lad, som et resultat af transformationen af grundlaget ved hjælp af Gram-Schmidt-processen , få grundlaget med Gram-Schmidt-koefficienterne defineret som følger:



, for alt sådan .

Så kaldes en (ordnet) basis en -LLL-reduceret basis (hvor parameteren er i intervallet ), hvis den opfylder følgende egenskaber [3] :



![{\textstyle (0.25,1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/770355bbeff78a6383f3e6130d5a76f6d9f38b6f)
- For alt sådan . (reduktionsbetingelse)


- Til rummer :. (Lovas tilstand)


Her er normen for vektoren , er det skalære produkt af vektorer.


Indledningsvis demonstrerede Lenstra, Lenstra og Lovas driften af algoritmen for parameteren i deres papir . Selvom algoritmen forbliver korrekt for , er dens polynomielle tidsdrift kun garanteret i intervallet [1] .




Reducerede basisegenskaber
Lade være et grundlag på gitteret reduceret af LLL-algoritmen med parameteren . Flere egenskaber kan udledes af definitionen af et sådant grundlag . Lad være normen for den korteste gittervektor, så
:



- Den første basisvektor kan ikke være væsentlig længere end den korteste ikke-nulvektor :
. Især, for det viser sig [6] .

- Den første basisvektor er begrænset af gitterdeterminanten :
. Især, for det viser sig [3] .

- Produktet af vektornormer kan ikke være meget større end gitterets determinant:
. Især for [3] .

Grundlaget transformeret ved LLL-metoden er næsten den kortest mulige, i den forstand, at der er absolutte grænser , således at den første basisvektor ikke er mere end gange så lang som den korteste gittervektor, ligesom den anden basisvektor ikke er mere end en faktor af den anden den korteste gittervektor, og så videre (som følger direkte af egenskab 1) [6] .



Algoritme
Input [7] :
gitterbasis (består af lineært uafhængige vektorer),

parameter c , oftest (valget af parameter afhænger af den specifikke opgave).


Handlingssekvens [4] :
- Først oprettes en kopi af det originale grundlag, som ortogonaliseres, således at det aktuelle grundlag i løbet af algoritmen sammenlignes med den resulterende kopi for ortogonalitet ( ).

- Hvis nogen Gram-Schmidt-koefficient (c ) er større i absolut værdi end , så er projektionen af en af vektorerne af det aktuelle grundlag på vektoren af en ortogonaliseret basis med et andet tal mere end halvdelen . Det betyder, at det er nødvendigt at trække vektoren ganget med den afrundede fra vektoren (afrunding er nødvendig, da gittervektoren kun forbliver vektoren af det samme gitter, når den multipliceres med et heltal, hvilket følger af dens definition). Så bliver det mindre , da fremskrivningen på nu bliver mindre end det halve . Der foretages således kontrol for overholdelse af 1. betingelse fra definitionen af et LLL-reduceret grundlag.














- Genberegnet til .


- For er den 2. betingelse kontrolleret, indført af forfatterne af algoritmen som definitionen af et LLL-reduceret grundlag [1] . Hvis betingelsen ikke er opfyldt, byttes indeksene for de kontrollerede vektorer. Og betingelsen kontrolleres igen for den samme vektor (allerede med et nyt indeks).

- Genberegnet for og for




- Hvis der er nogen tilbage, der overstiger i absolut værdi (allerede med en anden ), så skal vi tilbage til punkt 2.



- Når alle betingelser er kontrolleret og ændringer er foretaget, afsluttes algoritmen.
I algoritmen - afrunding efter matematikkens regler. Processen med algoritmen, beskrevet i pseudokode [7] :

ortho 
(udfør
Gram-Schmidt-processen uden normalisering);
bestemme , 
altid med
de mest aktuelle værdier
tildele
indtil
videre : for
j fra til 0 : hvis , så :;
Opdater værdierfor;
endetilstand ;
_ slutningen af cyklussen ;
hvis , så : andet :
bytte og steder;
Opdater værdierfor; for;
;
endetilstand ;
_ slutningen af cyklussen .









Outputdata: reduceret grundlag: .

Beregningsmæssig kompleksitet
Inputtet indeholder en basis af dimensionelle vektorer med .



Hvis basisvektorerne består af heltalskomponenter, tilnærmer algoritmen den korteste næsten ortogonale basis i polynomiel tid , hvor er den maksimale længde i den euklidiske norm , dvs. Hovedsløjfen i LLL-algoritmen kræver iterationer og arbejder med længdenumre . Da længdevektorer behandles ved hver iteration , kræver algoritmen aritmetiske operationer. Brugen af naive algoritmer til addition og multiplikation af heltal resulterer i bitvise operationer [3] .









I det tilfælde, hvor gitteret har en basis med rationelle komponenter, skal disse rationelle tal først konverteres til heltal ved at gange basisvektorerne med nævnerne af deres komponenter (sættet af nævnere er begrænset til et eller andet heltal ). Men så vil operationer allerede blive udført på heltal, der ikke overstiger . Som et resultat vil der være et maksimum af bit-operationer . I det tilfælde, hvor gitteret er givet i , forbliver kompleksiteten af algoritmen den samme, men antallet af bitoperationer stiger. Da et hvilket som helst reelt tal i computerrepræsentationen erstattes af et rationelt tal på grund af bitrepræsentationens begrænsethed, er det resulterende estimat også sandt for reelle gitter [3] .



På samme tid, for dimensioner mindre end 4, løses problemet med basisreduktion mere effektivt af Lagrange-algoritmen [8] .
Eksempel
Et eksempel givet af Wib Bosma [9] .
Lad grundlaget for gitteret (som en undergruppe ) være givet af søjlerne i matrixen:


I løbet af algoritmen opnås følgende:
- Gram-Schmidt ortogonaliseringsproces

, og

, derfor og , så og



- For vi har og , så vi går til næste trin.



- Når vi har:

betyder nu

betyder nu

, så de skifter plads.

- Nu vender vi tilbage til trin 1, mens den mellemliggende matrix har formen


Outputdata: basis reduceret med Lenstra-Lenstra-Lovas-metoden:
Ansøgning
Algoritmen bruges ofte inden for MIMO -metoden (spatial signal coding) til at afkode signaler modtaget af flere antenner [10] , og i offentlige nøglekryptosystemer : kryptosystemer baseret på rygsækproblemet , RSA med specifikke indstillinger, NTRUEncrypt og så videre . Algoritmen kan bruges til at finde heltalsløsninger i forskellige talteoriproblemer, især til at finde rødderne til et polynomium i heltal [11] .
I processen med angreb på offentlige nøglekryptosystemer ( NTRU ) bruges algoritmen til at finde den korteste gittervektor, da algoritmen til sidst finder et helt sæt korteste vektorer [12] .
I RSA-kryptanalyse med en lille CRT-eksponent er opgaven, som i tilfældet med NTRU, reduceret til at finde den korteste gitterbasisvektor, der findes i polynomiel tid (fra basisdimensionen) [13] .
I rygsækproblemer, især for at angribe Merkle-Hellman-kryptosystemet, søger LLL-algoritmen efter en reduceret gitterbasis [14] .
Variationer og generaliseringer
Brug af flydende komma -aritmetik i stedet for en nøjagtig repræsentation af rationelle tal kan fremskynde LLL-algoritmen betydeligt på bekostning af meget små numeriske fejl [15] .
Implementeringer af algoritmen
Programmatisk er algoritmen implementeret i følgende software:
- I fpLLL som en selvstændig implementering [16] ;
- I GAP som funktion LLLReducedBasis [17] ;
- I Macaulay2 som en funktion LLLi biblioteket LLLBases [18] ;
- I Magma både funktioner LLLog LLLGram [19] ;
- I Maple som funktion IntegerRelations[LLL] [20] ;
- I Mathematica som funktion LatticeReduce [21] ;
- I Talteoribiblioteket (NTL) som et modul LLL [22] ;
- I PARI/GP som en funktion qflll [23] ;
- I Pymatgen som funktion analysis.get_lll_reduced_lattice [24] ;
- I SageMath som metode LLLimplementeret i fpLLL og NTL [25] .
Noter
- ↑ 1 2 3 4 A. K. Lenstra, H. W. Lenstra Jr., L. Lovász. Faktorering af polynomier med rationelle koefficienter // Mathematische Annalen . - 1982. - S. 515-534 . — ISSN 4 . - doi : 10.1007/BF01457454 .
- ↑ 1 2 The LLL Algorithm, 2010 , 1 The History of the LLL-Algorithm.
- ↑ 1 2 3 4 5 6 7 Galbraith, Steven. 17. Lattice Reduction // Mathematics of Public Key Cryptography (engelsk) . - 2012. Arkiveret 20. september 2015 på Wayback Machine
- ↑ 1 2 Xinyue, Deng. En introduktion til LLL-algoritme // Massachusetts Institute of Technology. - S. 9-10 . Arkiveret fra originalen den 8. december 2019.
- ↑ Cherednik I. V. Ikke-negativ gitterbasis // 3. udg. — Diskret. Mat., 2014. - T. 26 . - S. 127-135 . (Russisk)
- ↑ 1 2 Regev, Oded. Gitter i datalogi: LLL Algorithm // New York University. Arkiveret fra originalen den 20. marts 2021.
- ↑ 1 2 Hoffstein, Jeffrey; Pipher, Jill; Silverman, JH En introduktion til matematisk kryptografi . — Springer, 2008. - S. 411. - ISBN 978-0-387-77993-5 .
- ↑ Nguyen, Phong Q., Stehlé, Damien. Lavdimensionel gitterbasisreduktion genbesøgt // ACM Transactions on Algoritms. — S. 1–48 . - doi : 10.1145/1597036.1597050 .
- ↑ Bosma, Wieb. 4. LLL // Computeralgebra. - 2007. Arkiveret 8. maj 2019.
- ↑ Shahriar Shahabuddin, Janne Janhunen, Zaheer Khan, Markku Juntti, Amanullah Ghazi. En tilpasset gitterreduktion multiprocessor til MIMO-detektion // 2015 IEEE International Symposium on Circuits and Systems (ISCAS). - 2015. - arXiv : 1501.04860 . - doi : 10.1109/ISCAS.2015.7169312 .
- ↑ D. Simon. Udvalgte anvendelser af LLL i talteori // LLL+25 Konference. - Caen, Frankrig. Arkiveret 6. maj 2021.
- ↑ Abderrahmane, Nitaj. Krypteringsanalyse af NTRU med to offentlige nøgler // International Association for Cryptologic Research. - Caen, Frankrig. Arkiveret fra originalen den 21. december 2019.
- ↑ Bleichenbacher, Daniel og May, Alexander. Nye angreb på RSA med små hemmelige CRT-eksponenter // International Association for Cryptologic Research. — Darmstadt, Tyskland. Arkiveret fra originalen den 24. juni 2021.
- ↑ Liu, Jiayang, Bi, Jingguo og Xu, Songyan. Et forbedret angreb på de grundlæggende Merkle-Hellman Knapsack Cryptosystems // IEEE. — Beijing 100084, Kina. Arkiveret fra originalen den 17. juni 2021.
- ↑ The LLL Algorithm, 2010 , 4 Fremskridt med hensyn til LLL og Lattice Reduction.
- ↑ FPLLL-udviklingsteamet. FPLLL, et gitterreduktionsbibliotek . — 2016. Arkiveret den 17. februar 2020.
- ↑ Integralmatricer og gitter . GAP . Hentet 10. december 2019. Arkiveret fra originalen 19. december 2019. (ubestemt)
- ↑ LLLBaser -- gitterreduktion (Lenstra-Lenstra-Lovasz-baser) . Macaulay 2 . Hentet 10. december 2019. Arkiveret fra originalen 10. december 2019. (ubestemt)
- ↑ LLL-reduktion . Magma . Hentet 10. december 2019. Arkiveret fra originalen 10. december 2019. (ubestemt)
- ↑ IntegerRelations/LLL . ahorn . Hentet 10. december 2019. Arkiveret fra originalen 18. september 2020. (ubestemt)
- ↑ LatticeReduce . Wolfram sprogdokumentation . Hentet 10. december 2019. Arkiveret fra originalen 10. december 2019. (ubestemt)
- ↑ MODUL:LLL . NTL . Hentet 10. december 2019. Arkiveret fra originalen 17. august 2018. (ubestemt)
- ↑ Vektorer, matricer, lineær algebra og mængder . PARI/GP . Hentet 10. december 2019. Arkiveret fra originalen 18. december 2019. (ubestemt)
- ↑ pymatgen.core.lattice modul . pymatgen . Hentet 27. december 2019. Arkiveret fra originalen 18. december 2019. (ubestemt)
- ↑ Tætte matricer over heltalsringen . salvie . Hentet 18. december 2019. Arkiveret fra originalen 6. maj 2021. (ubestemt)
Litteratur
- Huguette, Napias. En generalisering af LLL-algoritmen over euklidiske ringe eller ordrer // J. The. Nombr. Bordeaux. - 1996. - doi : 10.5802/jtnb.176 .
- Cohen, Henry. Et kursus i beregningsmæssig algebraisk talteori (engelsk) . — Springer, 2000. - Vol. 138. - (GTM). — ISBN 3-540-55640-0 .
- Borwein, Peter. Beregningsudflugter i analyse og talteori . - 2002. - ISBN 0-387-95444-9 .
- Hoffstein, Jeffrey; Pipher, Jill; Silverman, JH En introduktion til matematisk kryptografi . — Springer, 2008. - ISBN 978-0-387-77993-5 .
- Luk, Franklin T.; Qiao, Sanzheng. En pivoteret LLL-algoritme // Lin. Alg. Ansøgning.. - 2011. - T. 434 , nr. 11 . - S. 2296-2307 . - doi : 10.1016/j.laa.2010.04.003 .
- LLL-algoritmen: undersøgelse og applikationer / Ed. af Phong Q. Nguyen og Brigitte Vallee. - Springer, 2010. - ISBN 978-3-642-02295-1 . - doi : 10.1007/978-3-642-02295-1 .
- Murray R. Bremner. Lattice Basisreduktion: En introduktion til LLL-algoritmen og dens applikationer. - CRC Press, 2011. - ISBN 9781439807026 .