LLL算法,全稱Lenstra-Lenstra-Lovász算法,是一種用於約簡格基的算法,由Arjen Lenstra、Hendrik Lenstra和László Lovász於1982年提出。LLL算法在多項式時間內求解格中的近似正交基,它是對高斯約減算法的一種拓展,適用於多維格。
LLL算法的主要目的是將格的一組基轉換為滿足特定條件的另一組基,這些條件包括尺度條件和羅瓦茲條件。滿足這些條件的基被稱為LLL約減基。LLL約減基具有良好的性質,使得求解某些問題,如最短向量問題(SVP),變得容易。
LLL算法通過施密特正交化過程來處理輸入的基向量,並套用一系列步驟來確保基向量滿足上述條件。如果前k個基向量不滿足條件,算法會通過交換位置和減小k值的方式來調整基向量,直到滿足條件。
LLL算法在密碼學和數字理論等領域有著重要套用。它能夠幫助破解基於背包密碼體制的密碼系統,並且是唯一已知能夠承受量子計算機攻擊的加密系統之一。此外,LLL算法也是研究局部引理(Lovász Local Lemma)的基礎,這是一個在機率論中重要的工具,用於分析事件之間的依賴關係。