В теории вычислительной сложности предположение о вычислительной сложности — это гипотеза о том, что конкретная задача не может быть решена эффективно (где эффективно обычно означает «за полиномиальное время »). Неизвестно, как доказать (безусловную) сложность для по существу любой полезной задачи. Вместо этого специалисты по информатике полагаются на сокращения, чтобы формально связать сложность новой или сложной задачи с предположением о вычислительной сложности для задачи, которая лучше понята.
Предположения о вычислительной стойкости имеют особое значение в криптографии . Основной целью криптографии является создание криптографических примитивов с доказуемой безопасностью . В некоторых случаях обнаруживается, что криптографические протоколы имеют информационно-теоретическую безопасность ; одноразовый блокнот является распространенным примером. Однако информационно-теоретическая безопасность не всегда может быть достигнута; в таких случаях криптографы прибегают к вычислительной безопасности. Грубо говоря, это означает, что эти системы безопасны, предполагая, что любые противники ограничены в вычислительном отношении , как и все противники на практике.
Предположения о вычислительной сложности также полезны для разработчиков алгоритмов : простой алгоритм вряд ли опровергнет хорошо изученное предположение о вычислительной сложности, такое как P ≠ NP .
Ученые-компьютерщики по-разному оценивают, какие предположения о твердости являются более надежными.
Мы говорим, что предположение сильнее предположения , когда подразумевает (и обратное ложно или неизвестно). Другими словами, даже если предположение ложно, предположение все равно может быть верным, и криптографические протоколы, основанные на предположении, все равно могут быть безопасными для использования. Таким образом, при разработке криптографических протоколов надеются доказать безопасность, используя самые слабые возможные предположения.
Среднее предположение говорит, что конкретная проблема является сложной для большинства случаев из некоторого явного распределения, тогда как худшее предположение говорит, что проблема является сложной только для некоторых случаев. Для данной проблемы средняя сложность подразумевает сложность для наихудшего случая, поэтому среднее предположение о сложности сильнее, чем предположение о сложности для наихудшего случая для той же проблемы. Более того, даже для несопоставимых проблем предположение, такое как гипотеза экспоненциального времени, часто считается предпочтительным, чем среднее предположение, такое как гипотеза о посаженной клике . [1] Однако для криптографических приложений знание того, что проблема имеет некоторый сложный случай (проблема является сложной в худшем случае), бесполезно, поскольку это не дает нам способа генерации сложных случаев. [2] К счастью, многие средние предположения, используемые в криптографии (включая RSA, дискретный логарифм и некоторые проблемы решеток), могут быть основаны на худших предположениях с помощью сокращений от худшего случая к среднему. [3]
Желаемой характеристикой предположения о вычислительной стойкости является фальсифицируемость , т. е. если бы предположение было ложным, то его можно было бы доказать. В частности, Наор (2003) ввел формальное понятие криптографической фальсифицируемости. [4] Грубо говоря, предположение о вычислительной стойкости считается фальсифицируемым, если его можно сформулировать в терминах вызова: интерактивного протокола между противником и эффективным верификатором, где эффективный противник может убедить верификатора принять его, если и только если предположение ложно.
Существует множество используемых предположений о криптографической стойкости. Это список некоторых наиболее распространенных и некоторые криптографические протоколы, которые их используют.
Если задано составное целое число , и в частности то, которое является произведением двух больших простых чисел , задача факторизации целых чисел состоит в том, чтобы найти и (в более общем смысле, найти простые числа такие, что ). Это крупная открытая проблема — найти алгоритм факторизации целых чисел, который выполняется за время, полиномиальное по размеру представления ( ). Безопасность многих криптографических протоколов основана на предположении, что факторизация целых чисел сложна (т. е. не может быть решена за полиномиальное время). Криптосистемы, безопасность которых эквивалентна этому предположению, включают криптосистему Рабина и криптосистему Окамото–Учиямы . Многие другие криптосистемы основаны на более сильных предположениях, таких как RSA, проблемы остатков и сокрытие Фи.
При наличии составного числа , экспоненты и числа задача RSA заключается в нахождении . Предполагается , что задача сложна, но становится простой, если принять во внимание факторизацию . В криптосистеме RSA — открытый ключ , — шифрование сообщения , а факторизация — секретный ключ, используемый для расшифровки.
Для данного составного числа и целых чисел задача остатка состоит в том, чтобы определить, существует ли (или найти) такое, что
Важные особые случаи включают в себя задачу квадратичной вычетности и задачу составной вычетности решения . Как и в случае RSA, эта задача (и ее особые случаи) предположительно сложна, но становится легкой при факторизации . Некоторые криптосистемы, которые полагаются на сложность задач вычетности, включают:
Для составного числа неизвестно, как эффективно вычислить его функцию Эйлера . Предположение о сокрытии Фи постулирует, что трудно вычислить , и, более того, даже вычисление любых простых множителей является трудным. Это предположение используется в протоколе PIR Кашена–Микали–Стадлера . [5]
При наличии элементов и из группы задача дискретного логарифма требует целого числа, такого что . Известно, что задача дискретного логарифма не сопоставима с факторизацией целых чисел, но их вычислительные сложности тесно связаны .
Большинство криптографических протоколов, связанных с проблемой дискретного журнала, на самом деле полагаются на более сильное предположение Диффи–Хеллмана : заданные элементы группы , где — генератор , а — случайные целые числа, трудно найти . Примерами протоколов, использующих это предположение, являются оригинальный обмен ключами Диффи–Хеллмана , а также шифрование Эль-Гамаля (которое опирается на еще более сильный вариант Decisional Diffie–Hellman (DDH) ).
Полилинейное отображение — это функция (где — группы ), такая что для любых и ,
Для криптографических приложений хотелось бы построить группы и карту таким образом, чтобы операции карты и группы можно было вычислить эффективно, но задача дискретного логарифма все еще сложна. [6] Некоторые приложения требуют более сильных предположений, например, полилинейных аналогов предположений Диффи-Хеллмана.
Для особого случая билинейные отображения с правдоподобной безопасностью были построены с использованием спаривания Вейля и спаривания Тейта . [7] В последние годы было предложено много конструкций, но многие из них также были взломаны, и в настоящее время нет единого мнения о безопасном кандидате. [8]
Некоторые криптосистемы, которые полагаются на предположения о многолинейной стойкости, включают:
Наиболее фундаментальной вычислительной проблемой на решетках является задача кратчайшего вектора (SVP) : для заданной решетки найти кратчайший ненулевой вектор . Большинство криптосистем требуют более сильных предположений относительно вариантов SVP, таких как задача кратчайших независимых векторов (SIVP) , GapSVP , [10] или Unique-SVP. [11]
Наиболее полезное предположение о твердости решетки в криптографии касается проблемы обучения с ошибками (LWE): при заданных образцах для , где для некоторой линейной функции , легко обучиться с помощью линейной алгебры . В задаче LWE входные данные алгоритма содержат ошибки, т. е. для каждой пары с некоторой малой вероятностью . Считается, что ошибки делают проблему неразрешимой (для соответствующих параметров); в частности, известны сокращения от худшего случая к среднему из вариантов SVP. [12]
Для квантовых компьютеров задачи факторизации и дискретного логарифмирования являются простыми, но предполагается, что задачи на решетках будут сложными. [13] Это делает некоторые криптосистемы на основе решеток кандидатами на постквантовую криптографию .
Некоторые криптосистемы, которые полагаются на сложность решетчатых задач, включают:
Наряду с их криптографическими приложениями, предположения о сложности используются в теории вычислительной сложности для предоставления доказательств математических утверждений, которые трудно доказать безусловно. В этих приложениях доказывается, что предположение о сложности подразумевает некоторое желаемое утверждение теории сложности, вместо того, чтобы доказывать, что само утверждение истинно. Наиболее известным предположением этого типа является предположение, что P ≠ NP [14], но другие включают гипотезу об экспоненциальном времени [15] , гипотезу о посаженной клике и гипотезу об уникальных играх [16] .
Известно, что многие наихудшие вычислительные задачи являются сложными или даже полными для некоторого класса сложности , в частности NP-сложными (но часто также PSPACE-сложными , PPAD-сложными и т. д.). Это означает, что они по крайней мере столь же сложны, как и любая задача в классе . Если задача является -сложной (относительно полиномиальных сокращений времени), то ее нельзя решить с помощью алгоритма полиномиального времени, если только предположение о вычислительной сложности не является ложным.
Гипотеза экспоненциального времени (ETH) является усилением предположения о сложности, которое предполагает, что проблема булевой выполнимости (SAT) не только не имеет алгоритма с полиномиальным временем, но и требует экспоненциального времени ( ). [17] Еще более сильное предположение, известное как сильная гипотеза экспоненциального времени (SETH), предполагает, что -SAT требует времени, где . ETH, SETH и связанные предположения о вычислительной сложности позволяют выводить результаты с мелкозернистой сложностью, например, результаты, которые различают полиномиальное время и квазиполиномиальное время , [1] или даже против . [18] Такие предположения также полезны в параметризованной сложности . [19]
Некоторые вычислительные проблемы считаются сложными в среднем при определенном распределении экземпляров. Например, в задаче о посаженной клике входными данными является случайный граф , выбранный путем выборки случайного графа Эрдёша–Реньи , а затем «посадки» случайной -клики, т. е. соединения равномерно случайных узлов (где ), и цель состоит в том, чтобы найти посаженную -клику (которая является уникальной whp). [20] Другим важным примером является гипотеза Фейге , которая является предположением о вычислительной сложности случайных экземпляров 3-SAT (выбранных для поддержания определенного соотношения предложений к переменным). [21] Предположения о вычислительной сложности в среднем случае полезны для доказательства сложности в среднем случае в таких приложениях, как статистика, где существует естественное распределение входных данных. [22] Кроме того, предположение о сложности посаженной клики также использовалось для различения полиномиальной и квазиполиномиальной временной сложности в худшем случае других проблем, [23] аналогично гипотезе экспоненциального времени.
Проблема покрытия уникальной меткой — это проблема удовлетворения ограничений, где каждое ограничение включает две переменные , и для каждого значения существует уникальное значение, которое удовлетворяет . Определить, могут ли быть удовлетворены все ограничения, легко, но гипотеза уникальной игры (UGC) постулирует, что определение того, могут ли быть удовлетворены почти все ограничения ( -дробь, для любой константы ) или почти ни одно из них ( -дробь) не может быть удовлетворено, является NP-трудным. [16] Часто известно, что задачи аппроксимации являются NP-трудными, предполагая UGC; такие задачи называются UG-трудными. В частности, предполагая UGC, существует алгоритм полуопределенного программирования , который обеспечивает оптимальные гарантии аппроксимации для многих важных задач. [24]
С задачей Unique Label Cover тесно связана задача Small Set Expansion (SSE) : для заданного графа найдите небольшой набор вершин (размера ), расширение ребер которого минимально. Известно, что если SSE трудно аппроксимировать, то и Unique Label Cover тоже. Следовательно, гипотеза Small Set Expansion , постулирующая, что SSE трудно аппроксимировать, является более сильным (но тесно связанным) предположением, чем гипотеза Unique Game. [25] Известно, что некоторые задачи аппроксимации являются SSE-трудными [26] (т. е. по крайней мере такими же сложными, как аппроксимация SSE).
Для данного набора чисел задача 3SUM спрашивает, существует ли тройка чисел, сумма которых равна нулю. Существует квадратичный алгоритм для 3SUM, и было высказано предположение, что ни один алгоритм не может решить 3SUM за «истинно субквадратичное время»: гипотеза 3SUM — это предположение вычислительной сложности, что не существует алгоритмов для 3SUM (для любой константы ). Эта гипотеза полезна для доказательства почти квадратичных нижних границ для нескольких задач, в основном из вычислительной геометрии . [27]