Алгоритм редукции решеточного базиса Ленстры – Ленстры – Ловаса - Lenstra–Lenstra–Lovász lattice basis reduction algorithm
В Ленстра – Ленстра – Ловас (LLL) алгоритм редукции базиса решетки это полиномиальное время редукция решетки алгоритм изобретенный Арьен Ленстра, Хендрик Ленстра и Ласло Ловас в 1982 г.[1] Учитывая основа с п-мерные целочисленные координаты, для решетка L (дискретная подгруппа рп) с , алгоритм LLL вычисляет LLL-уменьшенный (коротко, почти ортогональный ) базис решетки во времени
куда самая большая длина по евклидовой норме, т. е. .[2][3]
Первоначальные приложения должны были дать алгоритмы с полиномиальным временем для факторизация полиномов с рациональными коэффициентами, для поиска одновременные рациональные приближения к действительным числам, а для решения задача целочисленного линейного программирования в фиксированных размерах.
Снижение LLL
Точное определение LLL-редукции выглядит следующим образом. основа
определить его Процесс Грама – Шмидта ортогональный базис
и коэффициенты Грама-Шмидта
- , для любого .
Тогда основа LLL-редуцируется, если существует параметр в (0.25,1] такая, что имеет место следующее:
- (размер уменьшен) Для . По определению это свойство гарантирует уменьшение длины упорядоченного базиса.
- (Условие Ловаса) Для k = 2,3, .., n .
Здесь, оценивая значение параметра, можно сделать вывод, насколько хорошо сокращен базис. Высшие ценности приводят к более сильным редукциям базиса. Первоначально А. Ленстра, Х. Ленстра и Л. Ловас продемонстрировали алгоритм LLL-редукции для .Обратите внимание, что хотя LLL-редукция хорошо определена для , полиномиальная сложность гарантируется только для в .
Алгоритм LLL вычисляет базы с уменьшенным LLL. Не существует известного эффективного алгоритма для вычисления базиса, в котором базисные векторы были бы как можно короче для решеток размерностей больше 4.[4] Однако базис с сокращением LLL почти настолько короткий, насколько это возможно, в том смысле, что существуют абсолютные границы такой, что первый базисный вектор не превышает раз длиннее самого короткого вектора в решетке, второй базисный вектор также находится в пределах второго последующего минимума и т. д.
Приложения
Первым успешным применением алгоритма LLL было его использование Андрей Одлызко и Герман те Риле в опровержении Гипотеза Мертена.[5]
Алгоритм LLL нашел множество других приложений в MIMO алгоритмы обнаружения[6] и криптоанализ шифрование с открытым ключом схемы: ранцевых криптосистем, ЮАР с определенными настройками, NTRUEncrypt, и так далее. Алгоритм можно использовать для поиска целочисленных решений многих задач.[7]
В частности, алгоритм LLL образует ядро одного из алгоритмы целочисленных отношений. Например, если считается, что р= 1.618034 - это (слегка округлено) корень неизвестному квадратное уровненеие с целыми коэффициентами, можно применить LLL-редукцию к решетке в охватывает и . Первый вектор в приведенном базисе будет целым числом линейная комбинация из этих трех, следовательно, обязательно в форме ; но такой вектор будет «коротким», только если а, б, c маленькие и еще меньше. Таким образом, первые три элемента этого короткого вектора, вероятно, будут коэффициентами интегрального квадратичного многочлен у которого есть р как корень. В этом примере алгоритм LLL находит самый короткий вектор как [1, -1, -1, 0,00025] и действительно имеет корень, равный Золотое сечение, 1.6180339887....
Свойства LLL-редуцированного базиса
Позволять быть -LLL-сокращенная основа решетка . Из определения LLL-редуцированного базиса мы можем вывести несколько других полезных свойств о .
- Первый вектор в базисе не может быть намного больше, чем кратчайший ненулевой вектор: . В частности, для , это дает .[8]
- Первый вектор в базисе также ограничен определителем решетки: . В частности, для , это дает .
- Произведение норм векторов в базисе не может быть намного больше определителя решетки: пусть , тогда .
Псевдокод алгоритма LLL
Следующее описание основано на (Хоффштейн, Пайфер и Сильверман, 2008 г., Теорема 6.68) с исправлениями из опечаток.[9]
ВХОД решетчатая основа параметр с , Наиболее часто ПРОЦЕДУРА и не нормализовать используя самые актуальные значения и пока делать за из к делать если тогда Обновлять и связанные по мере необходимости. (Наивный метод - пересчитать в любое время изменения: ) конец, если конец для если тогда еще Замена и Обновлять и связанные по мере необходимости. конец, если конец пока возвращаться LLL сокращает базу ВЫХОД сокращенная база
Примеры
Пример из
Пусть базис решетки , задаваемые столбцами
то приведенный базис
- ,
который уменьшен в размере, удовлетворяет условию Ловаса и, следовательно, является LLL-уменьшенным, как описано выше. См. W. Bosma.[10] для получения подробной информации о процессе восстановления.
Пример из
Аналогичным образом, для базиса комплексных целых чисел, заданных столбцами матрицы ниже,
- ,
тогда столбцы матрицы ниже дают LLL-сокращенный базис.
- .
Реализации
LLL реализован в
- Арагели как функция
lll_reduction_int
- fpLLL как отдельная реализация
- ЗАЗОР как функция
LLLReducedBasis
- Маколей2 как функция
LLL
в пакетеLLLBases
- Магма как функции
LLL
иLLLGram
(взяв матрицу грамма) - Клен как функция
IntegerRelations [LLL]
- Mathematica как функция
РешеткаСнижение
- Библиотека теории чисел (NTL) как функция
LLL
- PARI / GP как функция
qflll
- Пиматген как функция
analysis.get_lll_reduced_lattice
- SageMath как метод
LLL
управляемый fpLLL и NTL - Изабель / ХОЛ в записи «Архив формальных доказательств»
LLL_Basis_Reduction
. Этот код экспортируется в эффективно исполняемый Haskell.[11]
Смотрите также
Примечания
- ^ Ленстра, А.К.; Ленстра, Х. В., мл.; Ловас, Л. (1982). «Факторинг многочленов с рациональными коэффициентами». Mathematische Annalen. 261 (4): 515–534. CiteSeerX 10.1.1.310.318. Дои:10.1007 / BF01457454. HDL:1887/3810. МИСТЕР 0682664.
- ^ Гэлбрейт, Стивен (2012). "глава 17". Математика криптографии с открытым ключом.
- ^ Nguyen, Phong Q .; Стеле, Дэмиен (сентябрь 2009 г.). "Алгоритм LLL квадратичной сложности". SIAM J. Comput. 39 (3): 874–903. Дои:10.1137/070705702. Получено 3 июн 2019.
- ^ Nguyen, Phong Q .; Стеле, Дэмиен (1 октября 2009 г.). «Возвращение к низкоразмерной редукции базиса решетки». ACM-транзакции на алгоритмах. 5 (4): 1–48. Дои:10.1145/1597036.1597050.
- ^ Одлызко, Андрей; te Reile, Герман Дж. Дж. «Опровержение гипотезы Мертена» (PDF). Журнал für die reine und angewandte Mathematik. 357: 138–160. Дои:10.1515 / crll.1985.357.138. Получено 27 января 2020.
- ^ Шахабуддин, Шахриар и др., "Настраиваемый мультипроцессор сокращения решетки для обнаружения MIMO", в препринте Arxiv, январь 2015 г.
- ^ Д. Саймон (2007). «Избранные приложения LLL в теории чисел» (PDF). LLL + 25 Конференция. Кан, Франция.
- ^ Регев, Одед. «Решетки в информатике: алгоритм LLL» (PDF). Нью-Йоркский университет. Получено 1 февраля 2019.
- ^ Сильверман, Джозеф. "Введение в исправления математической криптографии" (PDF). Кафедра математики Университета Брауна. Получено 5 мая 2015.
- ^ Босма, Виб. «4. LLL» (PDF). Конспект лекций. Получено 28 февраля 2010.
- ^ Дивасон, Хосе. «Формализация алгоритма сокращения базиса LLL». Доклад конференции. Получено 3 мая 2020.
Рекомендации
- Напиас, Хугетт (1996). «Обобщение алгоритма LLL на евклидовы кольца или порядки». Журнал де Теори де Номбр де Бордо. 8 (2): 387–396. Дои:10.5802 / jtnb.176.
- Коэн, Анри (2000). Курс вычислительной алгебраической теории чисел. GTM. 138. Springer. ISBN 3-540-55640-0.CS1 maint: ref = harv (связь)
- Борвейн, Питер (2002). Вычислительные экскурсии по анализу и теории чисел. ISBN 0-387-95444-9.
- Luk, Франклин Т .; Цяо, Саньчжэн (2011). "Поворотный алгоритм LLL". Линейная алгебра и ее приложения. 434 (11): 2296–2307. Дои:10.1016 / j.laa.2010.04.003.
- Хоффштейн, Джеффри; Пайфер, Джилл; Сильверман, Дж. (2008). Введение в математическую криптографию. Springer. ISBN 978-0-387-77993-5.CS1 maint: ref = harv (связь)