Algoritmus LLL

Z testwiki
Skočit na navigaci Skočit na vyhledávání

Algoritmus LLL (také L3[1]), rozepsaně Lenstrův-Lenstrův-Lovászův algoritmus pro redukci báze mříže je polynomický algoritmus publikovaný v roce 1982 Arjenem Lenstrou, Hendrikem Lenstrou a László Lovászem a sloužící k nalezení redukované báze dané bodové mříže. Pro bodové mříže v prostoru o pěti a více rozměrech není znám žádný efektivní algoritmus pro nalezení nejkratší báze dané mříže, ale v řadě aplikací je postačující najít jeho aproximaci, kterou je možné efektivně najít právě algoritmem LLL.

Původní aplikací metody bylo hledání rozkladu polynomů s racionálními koeficienty, ale později našla daleko rozmanitější uplatnění při řešení rozmanitých úloh na bodových mřížích. Patřičné problémy se objevují například v kryptoanalýze některých asymetrických šifer (například RSA a NTRUEncrypt) nebo v rámci lineárního programování.

LLL-redukovaná báze

Pro zadanou bázi mříže

𝐁={𝐛0,𝐛1,,𝐛n},

je uvažována ortogonální báze získaná Gramovou-Schmidtovou ortogonalizací:

𝐁*={𝐛0*,𝐛1*,,𝐛n*},

a koeficienty

μi,j=𝐛i,𝐛j*𝐛j*,𝐛j*, pro všechna 1j<in.

Báze B je považována za LLL-redukovanou s parametrem δ(1/4,1), pokud jsou splněny dvě podmínky:

  1. Pro 1j<in:|μi,j|14
  2. Pro k = 1,2,..,n :δ𝐛k1*2𝐛k*2+μk,k12𝐛k1*2

Implementace

Algoritmus LLL je součástí řady výpočetních prostředí a programových knihoven, například:

  • GAP nabízí funkci LLLReducedBasis
  • Maple nabízí funkci IntegerRelations[LLL]
  • Mathematica nabízí funkci LatticeReduce
  • PARI/GP nabízí funkci qflll
  • SageMath nabízí funkci LLL

Odkazy

Reference

Šablona:Překlad

Literatura

Šablona:Portály