Lenstra-Lenstra-Lovasův algoritmus

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 19. března 2020; kontroly vyžadují 3 úpravy .

Algoritmus Lenstra-Lenstra-Lovas ( LLL-algorithm , LLL-algorithm ) je algoritmus redukce mřížkové báze vyvinutý Arjenem Lenstrou , Hendrikem Lenstrou a Laszlo Lovasem v roce 1982 [1] . V polynomiálním čase algoritmus transformuje bázi na mřížce (podskupině ) na nejkratší téměř ortogonální bázi na stejné mřížce. Od roku 2019 je algoritmus Lenstra-Lenstra-Lovas jedním z nejúčinnějších pro výpočet redukovaného základu v mřížích velkýchrozměry . Je relevantní především v problémech, které se redukují na nalezení nejkratšího vektoru mřížky .

Historie

Algoritmus vyvinuli nizozemští matematici Arjen Lenstra a Hendrik Lenstra spolu s maďarským matematikem Laszlo Lovasem v roce 1982 [1] [2] .

Hlavním předpokladem pro vytvoření algoritmu LLL bylo, že Gramův–Schmidtův proces pracuje pouze s vektory, jejichž součástí jsou reálná čísla . Pro vektorový prostor umožňuje Gramův–Schmidtův proces transformovat libovolnou bázi na ortonormální („ideální“, k níž směřuje algoritmus LLL). Gram-Schmidtův proces však nezaručuje, že na výstupu bude každý z vektorů celočíselnou lineární kombinací původní báze. Výsledná sada vektorů tedy nemusí být základem původní mřížky. To vedlo k potřebě vytvořit speciální algoritmus pro práci s mřížemi [3] .

Zpočátku byl algoritmus používán k faktorizaci polynomů s celočíselnými koeficienty , k výpočtu diofantických aproximací reálných čísel a k řešení problémů lineárního programování v prostorech s pevnými rozměry a později ke kryptoanalýze [4] [2] .

Snížení základu

Mříž v euklidovském prostoru  je podskupina grupy generované lineárně nezávislými vektory z , nazývané základ mřížky. Libovolný vektor mřížky může být reprezentován celočíselnou lineární kombinací základních vektorů [5] . Základ mřížky je definován nejednoznačně: obrázek ukazuje dvě různé základny téže mřížky.

Redukce báze spočívá v uvedení mřížové báze do speciální formy, která splňuje určité vlastnosti. Redukovaná báze by měla být pokud možno nejkratší ze všech bází mřížky a blízká ortogonální (což je vyjádřeno tím, že konečné Gram-Schmidtovy koeficienty by neměly být větší než ) [3] .

Nechť jako výsledek transformace báze pomocí Gram-Schmidtova procesu získáme bázi s Gram-Schmidtovými koeficienty definovanými následovně:

, pro všechny takové .

Potom se (uspořádaná) báze nazývá -LLL-redukovaná báze (kde parametr je v intervalu ), pokud splňuje následující vlastnosti [3] :

  1. Pro všechny takové . (podmínka snížení)
  2. Pro chyty: . (Lovasův stav)

Zde je norma vektoru , je skalární součin vektorů.

Zpočátku Lenstra, Lenstra a Lovas ve svém článku demonstrovali fungování algoritmu pro parametr . Přestože algoritmus zůstává správný pro , jeho polynomiální časová operace je zaručena pouze pro v intervalu [1] .


Redukované základní vlastnosti

Dovolit být základem na mřížce  zmenšené algoritmem LLL s parametrem . Z definice takového základu lze odvodit několik vlastností . Nechť  je norma nejkratšího mřížkového vektoru, pak:

  1. První základní vektor nemůže být výrazně delší než nejkratší nenulový vektor :. Zejména pro to se ukazuje [6] .
  2. První bázový vektor je omezen mřížkovým determinantem :. Zejména pro to se ukazuje [3] .
  3. Součin vektorových norem nemůže být mnohem větší než determinant mřížky:. Zejména pro [3] .

Báze transformovaná metodou LLL je téměř nejkratší možná v tom smyslu, že existují absolutní hranice tak, že první bázový vektor není více než krát delší než nejkratší mřížkový vektor, podobně druhý bázový vektor není delší než faktor druhého nejkratšího mřížkového vektoru a tak dále (což přímo vyplývá z vlastnosti 1) [6] .

Algoritmus

Vstup [7] :

mřížková báze (skládá se z lineárně nezávislých vektorů), parametr c , nejčastěji (volba parametru závisí na konkrétní úloze).

Pořadí akcí [4] :

  1. Nejprve je vytvořena kopie původní báze, která je ortogonalizována tak, že v průběhu algoritmu je aktuální báze porovnávána s výslednou kopií na ortogonalitu ( ).
  2. Pokud je jakýkoli Gram-Schmidtův koeficient (c ) v absolutní hodnotě větší než , pak je projekce jednoho z vektorů aktuální báze na vektor ortogonalizované báze s jiným číslem více než poloviční . To znamená, že je nutné od vektoru odečíst vektor vynásobený zaokrouhleným (zaokrouhlení je nutné, jelikož mřížkový vektor zůstává vektorem stejné mřížky pouze po vynásobení celým číslem, což vyplývá z jeho definice). Pak se zmenší , protože nyní bude projekce na méně než poloviční . Je tedy provedena kontrola splnění 1. podmínky z definice redukovaného základu CŽV.
  3. Přepočteno pro .
  4. Pro je zaškrtnuta 2. podmínka zavedená autory algoritmu jako definice báze redukované LLL [1] . Pokud podmínka není splněna, pak se indexy zaškrtnutých vektorů prohodí. A znovu se kontroluje podmínka pro stejný vektor (již s novým indexem).
  5. Přepočteno pro a pro
  6. Pokud zbyde nějaké, které překračuje v absolutní hodnotě (již s jiným ), pak se musíme vrátit k bodu 2.
  7. Po zkontrolování všech podmínek a provedení změn se algoritmus ukončí.

V algoritmu  - zaokrouhlování podle pravidel matematiky. Proces algoritmu, popsaný v pseudokódu [7] :

ortho (proveďte Gram-Schmidtův proces bez normalizace); určit , vždy s uvedením nejaktuálnějších dosud přiřazených hodnot : pro j od do 0 : if , then : ; Aktualizovat hodnotypro; koncová podmínka ; konec cyklu ; if , then : else : swap and places; Aktualizovat hodnotypro; pro; ; koncová podmínka ; konec cyklu .

Výstupní údaje: redukovaný základ: .

Výpočetní složitost

Vstup obsahuje základ -rozměrných vektorů s .

Pokud se základní vektory skládají z celočíselných složek, algoritmus aproximuje nejkratší téměř ortogonální bázi v polynomiálním čase , kde  je maximální délka v euklidovské normě , tj . Hlavní smyčka algoritmu LLL vyžaduje iterace a pracuje s čísly délky . Vzhledem k tomu, že vektory délky jsou zpracovávány při každé iteraci , v důsledku toho algoritmus vyžaduje aritmetické operace. Použití naivních algoritmů pro sčítání a násobení celých čísel vede k bitovým operacím [3] .

V případě, kdy má svaz základ s racionálními složkami, je třeba tato racionální čísla nejprve převést na celá čísla vynásobením vektorů báze jmenovateli jejich složek (množina jmenovatelů je omezena na nějaké celé číslo ). Ale pak budou operace prováděny již na celých číslech nepřesahujících . Výsledkem bude maximální počet bitových operací . Pro případ, kdy je mřížka uvedena v , zůstává složitost algoritmu stejná, ale zvyšuje se počet bitových operací. Protože v počítačové reprezentaci je jakékoli reálné číslo nahrazeno racionálním z důvodu omezenosti bitové reprezentace, výsledný odhad platí i pro reálné svazy [3] .

Zároveň pro rozměry menší než 4 problém redukce báze efektivněji řeší Lagrangeův algoritmus [8] .

Příklad

Příklad uvedl Wib Bosma [9] .

Nechť je základ mřížky (jako podgrupa ) dán sloupci matice:

V průběhu algoritmu se získá následující:

  1. Gram-Schmidtův ortogonalizační proces
    1. a _
    2. , tedy a , pak a
  2. Protože máme a , přejdeme k dalšímu kroku.
  3. Když máme:
    1. znamená teď
    2. znamená teď
    3. , takže mění místa.
  4. Nyní se vrátíme ke kroku 1, zatímco mezilehlá matice má tvar

Výstupní data: základ redukovaný metodou Lenstra-Lenstra-Lovas:

Aplikace

Algoritmus se často používá v rámci metody MIMO (kódování prostorového signálu) k dekódování signálů přijímaných více anténami [10] , a v kryptosystémech s veřejným klíčem : kryptosystémy založené na problému s batohem , RSA se specifickými nastaveními, NTRUEncrypt a tak dále . Algoritmus lze použít k nalezení celočíselných řešení v různých problémech teorie čísel, zejména k nalezení kořenů polynomu v celých číslech [11] .

V procesu útoků na kryptosystémy s veřejným klíčem ( NTRU ) se algoritmus používá k nalezení nejkratšího vektoru mřížky, protože algoritmus nakonec najde celou sadu nejkratších vektorů [12] .

V kryptoanalýze RSA s malým CRT-exponentem je úloha, stejně jako v případě NTRU, redukována na nalezení nejkratšího vektoru mřížky, který se nachází v polynomiálním čase (z dimenze báze) [13] .

V problémech s batohem, zejména při útoku na kryptosystém Merkle-Hellman, hledá algoritmus LLL redukovanou mřížkovou bázi [14] .

Variace a zobecnění

Použití aritmetiky s pohyblivou řádovou čárkou namísto přesné reprezentace racionálních čísel může výrazně urychlit algoritmus LLL za cenu velmi malých numerických chyb [15] .

Implementace algoritmu

Programově je algoritmus implementován v následujícím softwaru:

Poznámky

  1. ↑ 1 2 3 4 A. K. Lenstra, H. W. Lenstra ml., L. Lovász. Faktorování polynomů s racionálními koeficienty // Mathematische Annalen . - 1982. - S. 515-534 . — ISSN 4 . - doi : 10.1007/BF01457454 .
  2. 1 2 The LLL Algorithm, 2010 , 1 The History of the LLL-Algorithm.
  3. ↑ 1 2 3 4 5 6 7 Galbraith, Steven. 17. Redukce mřížky // Matematika kryptografie veřejného klíče  (anglicky) . - 2012. Archivováno 20. září 2015 na Wayback Machine
  4. 1 2 Xinyue, Deng. Úvod do algoritmu LLL  //  Massachusetts Institute of Technology. - S. 9-10 . Archivováno z originálu 8. prosince 2019.
  5. Cherednik I. V. Nezáporná mřížková báze  // 3. vyd. - Oddělený. Mat., 2014. - T. 26 . - S. 127-135 .
  6. 1 2 Regev, Oded. Lattices in Computer Science: LLL Algorithm  // New York University. Archivováno z originálu 20. března 2021.
  7. ↑ 1 2 Hoffstein, Jeffrey; Pipher, Jill; Silverman, JH Úvod do matematické kryptografie  . — Springer, 2008. - S. 411. - ISBN 978-0-387-77993-5 .
  8. Nguyen, Phong Q., Stehlé, Damien. Redukce báze nízkorozměrné mřížky znovu prozkoumána  //  ACM Transactions on Algorithms. — S. 1–48 . - doi : 10.1145/1597036.1597050 .
  9. Bosma, Wieb. 4. LLL  // Počítačová algebra. - 2007. Archivováno 8. května 2019.
  10. Shahriar Shahabuddin, Janne Janhunen, Zaheer Khan, Markku Juntti, Amanullah Ghazi. Přizpůsobený multiprocesor pro redukci mřížky pro detekci MIMO // 2015 IEEE International Symposium on Circuits and Systems (ISCAS). - 2015. - arXiv : 1501.04860 . - doi : 10.1109/ISCAS.2015.7169312 .
  11. D. Simon. Vybrané aplikace CŽV v teorii čísel  // Konference LLL+25. — Caen, Francie. Archivováno 6. května 2021.
  12. Abderrahmane, Nitaj. Kryptoanalýza NTRU se dvěma veřejnými klíči  // International Association for Cryptologic Research. — Caen, Francie. Archivováno z originálu 21. prosince 2019.
  13. Bleichenbacher, Daniel a May, Alexander. Nové útoky na RSA s malými tajnými exponenty CRT  // Mezinárodní asociace pro kryptologický výzkum. — Darmstadt, Německo. Archivováno z originálu 24. června 2021.
  14. Liu, Jiayang, Bi, Jingguo a Xu, Songyan. Vylepšený útok na základní kryptosystémy Merkle–Hellman Knapsack  // IEEE. — Peking 100084, Čína. Archivováno z originálu 17. června 2021.
  15. Algoritmus LLL, 2010 , 4 Pokrok v oblasti LLL a redukce mřížky.
  16. Vývojový tým FPLLL. FPLLL, knihovna pro redukci mřížky . — 2016. Archivováno 17. února 2020.
  17. Integrální matice a svazy . GAP . Staženo 10. prosince 2019. Archivováno z originálu 19. prosince 2019.
  18. LLLBase -- redukce mřížky (Lenstra-Lenstra-Lovaszovy báze) . Macaulay2 . Staženo 10. prosince 2019. Archivováno z originálu 10. prosince 2019.
  19. Snížení LLL . Magma . Staženo 10. prosince 2019. Archivováno z originálu 10. prosince 2019.
  20. IntegerRelations/LLL . javor . Získáno 10. prosince 2019. Archivováno z originálu 18. září 2020.
  21. LatticeReduce . Jazyková dokumentace Wolfram . Staženo 10. prosince 2019. Archivováno z originálu 10. prosince 2019.
  22. MODUL:LLL . NTL . Získáno 10. prosince 2019. Archivováno z originálu 17. srpna 2018.
  23. Vektory, matice, lineární algebra a množiny . PARI/GP . Staženo 10. prosince 2019. Archivováno z originálu 18. prosince 2019.
  24. modul pymatgen.core.lattice . pymatgen . Staženo 27. prosince 2019. Archivováno z originálu 18. prosince 2019.
  25. Husté matice přes celý kruh . šalvěj . Získáno 18. prosince 2019. Archivováno z originálu 6. května 2021.

Literatura