В информатике, задачи решетки являются классом оптимизации задачи, связанные с математическими объектами, называемыми решетками. Предполагаемая неразрешимость таких проблем играет центральную роль в построении безопасных криптосистем на основе решеток : решетчатые проблемы являются примером NP-сложных проблем, которые, как было показано, являются сложными в среднем случае., предоставляя тестовый пример безопасности криптографических алгоритмов. Кроме того, некоторые проблемы решетки, которые являются наихудшими трудностями, могут использоваться в качестве основы для чрезвычайно безопасных криптографических схем. Использование в таких схемах жесткости наихудшего случая делает их одними из очень немногих схем, которые, скорее всего, защищены даже от квантовых компьютеров. Для приложений в таких криптосистемах решетки в векторном пространстве (часто ) или бесплатные модули (часто ) обычно рассматриваются.
Для всех задач ниже предположим, что нам даны (в дополнение к другим более конкретным входным данным) базис для векторного пространства V и norm N. Обычно рассматривается евклидова норма L. Однако другие нормы (такие как L ) также учитываются и отображаются в различных результатах. Пусть обозначает длину кратчайшего ненулевого вектора в решетке L, то есть
В SVP базис векторного пространства V и norm N (часто L ) являются задано для решетки L, и нужно найти кратчайший ненулевой вектор в V, измеренный N, в L. Другими словами, алгоритм должен вывести ненулевой вектор v такое, что .
В версии SVP γ γ-приближения необходимо найти ненулевой вектор решетки длины не более для данного .
Точная версия проблемы известна только как NP-жесткий для рандомизированных сокращений.
Напротив, соответствующие задача относительно равномерной нормы известна как NP-сложная.
Чтобы решить точную версию SVP при евклидовой норме, Известно несколько различных подходов, которые можно разделить на два класса: алгоритмы, требующие сверхэкспоненциального времени () и память и алгоритмы, требующие экспоненциального времени и пространства () в размерности решетки. Первый класс алгоритмов, в первую очередь, включает в себя решетчатую нумерацию и сокращение случайной выборки, в то время как второй включает решетчатое просеивание, вычисление ячейки Вороного решетки и дискретную гауссовскую выборку. Открытая проблема заключается в том, существуют ли алгоритмы для решения точного SVP, работающие за одно экспоненциальное время () и требующие полиномиального масштабирования памяти в размер решетки.
Для решения версии γ-приближения SVP γ для для евклидовой нормы наиболее известные подходы основаны на использовании уменьшение базиса решетки. Для больших Lenstra – Lenstra– Алгоритм Ловаса (LLL) может найти решение за время, полиномиальное в размерности решетки. Для меньших значений алгоритм Блока Коркина-Золотарева (BKZ) является обычно используется, когда входные данные алгоритма (размер блока ) определяют временную сложность и качество вывода: для больших коэффициентов аппроксимации , достаточно небольшого размера блока , и алгоритм быстро завершает работу у. Для небольших необходимы более крупные , чтобы найти достаточно короткие векторы решетки, и алгоритм занимает больше времени найти решение. Алгоритм BKZ внутренне использует точный алгоритм SVP в качестве подпрограммы (работающий в решетках с размером не более ), и его общая сложность тесно связана с затратами на эти Звонки SVP в измерении .
Проблема GapSVP β состоит в различении экземпляров SVP, в которых длина самого короткого вектора не более или больше , где может быть фиксированной функцией размера решетки . Учитывая основу решетки, алгоритм должен решить, будет ли или . Как и другие проблемы с обещаниями, алгоритм может ошибаться во всех других случаях.
Еще одна версия проблемы - GapSVP ζ, γ для некоторых функций . Входными данными для алгоритма является базис и число . Гарантируется, что все векторы в ортогонализации Грама – Шмидта имеют длину не менее 1, и что и что где - размер. Алгоритм должен принять, если , и отклонить, если . Для больших (), проблема в эквивалент GapSVP γ, поскольку предварительная обработка, выполненная с использованием алгоритма LLL, делает второе условие (и, следовательно, ) избыточным.
В CVP базис векторного пространства V и метрики M (часто L ) даны для решетки L, а также вектор v в V, но не обязательно в L. Желательно, чтобы найти вектор в L, ближайший к v (измеренный с помощью M). В -приближенной версии CVP γ необходимо найти решетку вектор на расстоянии в mo st .
Ближайшая векторная задача - это обобщение задачи наикратчайшего вектора. Легко показать, что, имея oracle для CVP γ (определено ниже), можно решить SVP γ, сделав несколько запросов к оракулу. Наивный метод поиска кратчайшего вектора путем вызова оракула CVP γ для поиска вектора, ближайшего к 0, не работает, потому что 0 сам по себе является вектором решетки, и алгоритм потенциально может вывести 0.
Уменьшение от SVP γ до CVP γ выглядит следующим образом: Предположим, что входные данные для задачи SVP γ являются основой для решетки . Рассмотрим базис и пусть будет вектором, возвращаемым CVP γ (B, b я). Утверждение состоит в том, что кратчайший вектор в наборе является самым коротким вектором в данной решетке.
Goldreich et al. показали, что любая твердость SVP подразумевает такую же твердость для CVP. Используя инструменты PCP, Arora et al. показал, что CVP трудно аппроксимировать в пределах фактора , если . Dinur et al. усилил это, дав результат NP-твердости с для .
Алгоритмы для CVP, особенно вариант Fincke и Pohst, использовались для обнаружения данных в системах беспроводной связи с множеством входов и множеством выходов (MIMO ) (для кодированных и некодированных). сигналы). В этом контексте это называется сферическим декодированием из-за радиуса, используемого внутри многих решений CVP.
Он был применен в области разрешения целочисленной неоднозначности GNSS (GPS) фазы несущей. В этой области это называется методом LAMBDA.
Эта проблема аналогична проблеме GapSVP. Для GapSVP β входные данные состоят из основы решетки и вектора , и алгоритм должен ответить, выполняется ли одно из следующих условий:
Противоположное условие - ближайший вектор решетки находится на расстоянии , отсюда и название GapCVP.
Проблема тривиально содержится в NP для любого коэффициента приближения.
Шнорр в 1987 году показал, что детерминированные алгоритмы полиномиального времени могут решить проблему для . Ajtai et al. показали, что вероятностные алгоритмы могут достичь немного лучшего коэффициента приближения .
В 1993 году Банашчик показал, что GapCVP n находится в . В 2000 году Голдрайх и Гольдвассер показали, что ставит проблему как в NP, так и в coAM. В 2005 году Ааронов и Регев показали, что для некоторой константы проблема с находится в .
Для нижних границ Dinur et al. в 1998 году показал, что проблема NP-трудна для .
Для решетки L размерности n алгоритм должен вывести n линейно независимых так, чтобы где правая часть рассматривает все основания решетки.
В -приближенной версии, заданной решеткой L с размерностью n, найдите n линейно независимых векторов длины , где - это '-й последовательный минимум .
Эта проблема аналогична CVP. Для вектора, расстояние от которого до решетки не превышает , алгоритм должен вывести ближайший к нему вектор решетки..
При наличии основы для решетки алгоритм должен найти наибольшее расстояние (или, в некоторых версиях, его приближение) от любого вектора до решетки.
Многие проблемы становятся проще, если исходный базис состоит из коротких векторов. Алгоритм, который решает задачу кратчайшего базиса (SBP), должен, учитывая базис решетки , выводить эквивалентный базис таким образом, чтобы длина самого длинного вектора в была как можно короче.
Версия аппроксимации SBP γ проблема состоит в нахождении базиса, самый длинный вектор которого не более чем в раз длиннее самого длинного вектор в кратчайшем базисе.
Средний случай сложности проблем формирует основу для доказательства безопасности для большинства криптографических схем. Однако экспериментальные данные свидетельствуют о том, что большинству NP-сложных задач не хватает этого свойства: они, вероятно, только в худшем случае. Были выдвинуты гипотезы или доказано, что многие решеточные задачи являются сложными для среднего случая, что делает их привлекательным классом задач для построения криптографических схем. Более того, для создания безопасных криптографических схем использовалась жесткость наихудшего случая некоторых задач решетки. Использование в таких схемах жесткости наихудшего случая делает их одними из очень немногих схем, которые, скорее всего, безопасны даже против квантовых компьютеров.
Вышеупомянутые проблемы решетки легко решить, если алгоритм снабжен «хорошо» основание. Алгоритмы сокращения решетки стремятся, учитывая основу решетки, вывести новый базис, состоящий из относительно коротких, почти ортогональных векторов. Алгоритм сокращения базиса решетки Ленстры-Ленстры-Ловаса (LLL) был одним из первых эффективных алгоритмов для этой задачи, который мог выводить почти сокращенный базис решетки за полиномиальное время. Этот алгоритм и его дальнейшие усовершенствования были использованы для взлома нескольких криптографических схем, что сделало его очень важным инструментом криптоанализа. Успех LLL на экспериментальных данных привел к убеждению, что сокращение решетки может быть простой проблемой на практике. Однако это убеждение было оспорено, когда в конце 1990-х было получено несколько новых результатов о сложности решеточных задач, начиная с результата Ajtai.
. В своих основополагающих статьях Ajtai показал, что проблема SVP была NP- hard и обнаружил некоторые связи между сложностью наихудшего случая и сложностью среднего случая некоторых задач решетки. Основываясь на этих результатах, Аджтай и Дворк создали криптосистему с открытым ключом, безопасность которой может быть доказана с использованием только наихудшего уровня надежности определенной версии SVP, что сделало ее первым результатом использовать жесткость наихудшего случая для создания защищенных систем.