Lenstra–Lenstra–Lovász gitterbasreduktionsalgoritm

Lenstra –Lenstra–Lovász (LLL) gitterbasreduktionsalgoritm är en polynomisk tidsgitterreduktionsalgoritm som uppfanns av Arjen Lenstra Hendrik Lenstra och László Lovász 1982. Givet basen , med n -dimensionella heltalskoordinater, för ett gitter L (en diskret undergrupp av Rn ) med , beräknar LLL-algoritmen en LLL-reducerad ( kort, nästan ortogonal ) gitterbas i tid

där är den största längden av under den euklidiska normen , det vill säga .

De ursprungliga applikationerna var att ge polynom-tidsalgoritmer för att faktorisera polynom med rationella koefficienter, för att hitta samtidiga rationella approximationer till reella tal och för att lösa heltalslinjärprogrammeringsproblemet i fasta dimensioner.

LLL-reduktion

Den exakta definitionen av LLL-reducerad är som följer: Givet en grund

definiera sin Gram-Schmidt-process ortogonala grund
och Gram-Schmidt-koefficienterna
för vilken som helst .

Då är basen LLL-reducerad om det finns en parameter i (0.25, 1] ​​så att följande gäller:

  1. (storleksreducerad) För . Per definition garanterar denna egenskap längdminskningen av det beställda underlaget.
  2. ..,n .

Här, genom att uppskatta värdet på parametern , kan vi dra slutsatsen hur väl basen reduceras. Större värden på leder till starkare reduktioner av basen. Inledningsvis demonstrerade A. Lenstra, H. Lenstra och L. Lovász LLL-reduktionsalgoritmen för . Observera att även om LLL-reduktion är väldefinierad för , garanteras polynom-tidskomplexiteten endast för i .

LLL-algoritmen beräknar LLL-reducerade baser. Det finns ingen känd effektiv algoritm för att beräkna en bas där basvektorerna är så korta som möjligt för gitter med dimensioner större än 4. En LLL-reducerad bas är dock nästan så kort som möjligt, i den meningen att det finns absoluta gränser så att den första basvektorn inte är mer än gånger så lång som en kortaste vektor i gittret, den andra basvektorn är likaså inom av det andra på varandra följande minimum, och så vidare.

Ansökningar

En tidig framgångsrik tillämpning av LLL-algoritmen var dess användning av Andrew Odlyzko och Herman te Riele för att motbevisa Mertens gissningar .

LLL-algoritmen har hittat många andra tillämpningar i MIMO- detekteringsalgoritmer och kryptoanalys av krypteringsscheman med offentliga nyckel : ryggsäckskryptosystem , RSA med särskilda inställningar, NTRUEncrypt , och så vidare. Algoritmen kan användas för att hitta heltalslösningar på många problem.

I synnerhet bildar LLL-algoritmen en kärna av en av heltalsrelationsalgoritmerna . Till exempel, om man tror att r =1,618034 är en (något avrundad) rot till en okänd kvadratisk ekvation med heltalskoefficienter, kan man tillämpa LLL-reduktion på gittret i spänns av och . Den första vektorn i den reducerade basen kommer att vara en heltalslinjär kombination av dessa tre, alltså nödvändigtvis av formen ; men en sådan vektor är "kort" bara om a , b , c är små och är ännu mindre. Således är de tre första ingångarna i denna korta vektor sannolikt koefficienterna för det andragradspolynom som har r som en rot. I det här exemplet finner LLL-algoritmen att den kortaste vektorn är [1, -1, -1, 0,00025] och faktiskt har en rot som är lika med det gyllene snittet , 1,6180339887....

Egenskaper för LLL-reducerad grund

Låt vara en -LLL-reducerad bas av ett gitter . Från definitionen av LLL-reducerad basis kan vi härleda flera andra användbara egenskaper om .

  1. Den första vektorn i basen kan inte vara mycket större än den kortaste vektorn som inte är noll : . Speciellt för , detta ger .
  2. Den första vektorn i basen är också begränsad av gittrets determinant: . I synnerhet för ger .
  3. Produkten av normerna för vektorerna i basen kan inte vara mycket större än gittrets determinant: låt .

LLL algoritm pseudokod

Följande beskrivning är baserad på ( Hoffstein, Pipher & Silverman 2008 , Theorem 6.68), med korrigeringarna från erratan.

0
    00
     INPUT  en gitterbas  b  ,  b  1  , ...,  b  n  i  Z  m  en parameter  δ  med 1/4 <  δ  < 1, oftast  δ  = 3/4  PROCEDUR  B  *  <- GramSchmidt({  b  , ... ,  bn  }) = {  b  *  , ...  ,  bn  *  }  ;  och normalisera inte  μ  i  ,  j  
      
            0 
             <- InnerProduct(  b  i  ,  b  j  *  )/InnerProduct(  b  j  *  ,  b  j  *  );  använda  de mest aktuella värdena för  bi  och  b  j  *  k  <- 1;  medan  k  <=  n  gör  för  j  från  k  −1  att  göra  om  |  μk  _  ,  j  |  > 1/2 
                   
                   
                00 sedan  b  k  <-  b  k  − ⌊  μ  k  ,  j  b  j  ;  Uppdatera  B  *  och relaterade  μ  i  ,  j  efter behov.  (Den naiva metoden är att beräkna  B  *  närhelst  b  i  ändras:  B  *  <- GramSchmidt({  b  , ...,  b  n  }) = {  b  *  , ..., 
        
        
             b  n  *  })  end if  end för  if  InnerProduct(  b  k  *  ,  b  k  *  ) > (  δ − μ  2  k  ,  k  −1  ) InnerProduct(  b  k  −1  *  ,  b  k  −1  *  )  sedan  k  <-  k  + 1;  annars  Byt  b  k  och  b    
            
    
     00 k  -1  ;  Uppdatera  B  *  och relaterade  μ  i  ,  j  efter behov.  k  <- max(  k  -1, 1);  end if  end while  return  B  den LLL reducerade basen av {b  , ..., b  n  }  OUTPUT  den reducerade basen  b  ,  b  1  , ...,  b  n  i  Z  m 

Exempel

Exempel från Z 3

Låt ett gitterbas , ges av kolumnerna för

då är det reducerade underlaget
som är storleksreducerad, uppfyller Lovász-villkoret och är därför LLL-reducerad, som beskrivits ovan. Se W. Bosma. för detaljer om reduktionsprocessen.

Exempel från Z[ i ] 4

På samma sätt, för basen över de komplexa heltal som ges av kolumnerna i matrisen nedan,

då ger kolumnerna i matrisen nedan en LLL-reducerad bas.

Genomföranden

LLL implementeras i

Se även

Anteckningar