Быстрое сокращение от RSA до SAT


28

Сегодня в блоге Скотта Ааронсона приведен список интересных открытых задач / задач по сложности. Один из них привлек мое внимание:

Создайте публичную библиотеку из 3SAT-экземпляров, используя как можно меньше переменных и предложений, что может привести к значительным последствиям в случае ее решения. (Например, экземпляры, кодирующие задачи факторинга RSA.) Изучите производительность лучших текущих SAT-решателей в этой библиотеке.

Это вызвало у меня вопрос: какова стандартная методика сокращения проблем RSA / факторинга до SAT и насколько быстро это происходит? Есть ли такое стандартное сокращение?

Просто чтобы прояснить, под «быстрым» я не подразумеваю полиномиальное время. Мне интересно, есть ли у нас более жесткие верхние границы сложности сокращения. Например, есть ли известное кубическое сокращение?

Ответы:


26

Один из подходов для кодирования факторинга (RSA) в SAT заключается в использовании схем мультипликатора (каждая схема может быть закодирована как CNF).

Предположим, нам дано целое число с 2 n битами, C = ( c 1 , c 2 , , c 2 n ) 2 . Нас интересует поиск двух n- битных целых чисел A = ( a 1 , , a n ) и A = ( b 1 , , b n ) , произведение которых C = A С2NСзнак равно(с1,с2,,с2N)2NAзнак равно(a1,,aN)Aзнак равно(б1,,бN) .Сзнак равноA*В

Самая наивная кодировка может быть примерно такой: мы знаем, что

с 2 п - 1 = ( пб п - 1 ) х ö г ( п - 1б п ) С г г у : г 2 п - 1 = ( в nb n - 1 ) ( a n

с2Nзнак равноaNбN
с2N-1знак равно(aNбN-1)Иксор(aN-1бN)
с 2 н - 2 =( в п б п - 2 )хог( п - 1 б п - 1 )хог( п - 2 б п )хог д 2 н - 1 ...
СaррY:d2N-1знак равно(aNбN-1)(aN-1бN)
с2N-2знак равно(aNбN-2)Иксор(aN-1бN-1)Иксор(aN-2бN)Иксорd2N-1

Затем с использованием преобразования Цейтин вышеуказанное кодирование может быть переведено в CNF.

Этот подход производит относительно маленький CNF. Но эта кодировка не поддерживает «Unit Propagation», поэтому производительность SAT Solvers действительно плохая.

Есть другие схемы для умножения, которые могут быть использованы для этой цели, но они производят больший CNF.


10
В разделе 6.1 «Поиск твердых экземпляров проблемы удовлетворенности: опрос» Кука и Митчелла они используют эту проблему в качестве задачи.
Амир

Откуда вы знаете, что A и B должны быть длиной n битов, не может быть n - 1 и n битов. Наверняка это может быть 2n бит и 1 бит.
Илья Газман

1
N

с2N-2

А как насчет RSA-129
Илья Газман

18

Продолжая то, что написал @Amir, я наткнулся на следующую симпатичную веб-страницу, на которой размещен генератор CNF для схем факторинга, которые можно, например, запускать на некоторых (теперь неактивных) номерах RSA Factoring Challenge . Сгенерированные экземпляры имеют формат DIMACS , который может напрямую передаваться любому из текущих конкурентов на ежегодном конкурсе SAT solver . Что касается сложных экземпляров SAT в целом, проблемы с эталонным тестом, представленные на сайте соревнований SAT, представляются весьма полезными, а также неплохо классифицировать их на случайные / специально созданные / промышленные.


1
Эта ссылка очень крутая!
Гек Беннетт

Если вы на самом деле попытаетесь ввести одно из этих чисел, вы обнаружите, что их исходный код использует тип данных int и, следовательно, может содержать только 32-разрядные числа, в то время как незафиксированные числа RSA начинаются с сотен бит.
Эллиот Гороховский



0

Смотрите satfactor:


Преобразовать целочисленную факторизацию в булеву проблему удовлетворенности

Шейн Неф

обзор

Определение факторов большого целого числа представляло интерес для человека, по крайней мере, со времен Евклида. Не существует известного общего алгоритма для этой задачи, который масштабируется менее чем за экспоненциальное время по отношению к числу битов, необходимых для представления целого числа.

Что делает этот код

Преобразует целочисленную проблему факторизации в булеву проблему СООТВЕТСТВИЯ. Если проблема решается с помощью решателя SAT, он извлекает целочисленные коэффициенты.

Решатели буленовской удовлетворенности улучшаются с каждым годом. Каждые 2 года проводится международный конкурс между решателями (см. Http://www.satcompetition.org/ и http://www.satlive.org/ ). Насколько хорошо эти современные решатели могут справиться с одной из самых старых существующих математических задач?

Этот проект преследует 2 основные цели:
1) Преобразовать задачу и вычислить целое число, представляющее интерес!
2) Быстро создать либо разрешимую, либо неразрешимую проблему СООТВЕТСТВИЯ, сложность которой легко контролируется создателем.
- Чтобы создать неразрешимую проблему удовлетворенности, просто закодируйте простое число.
- Чтобы создавать более сложные, но решаемые проблемы, выбирайте составные числа большего размера с меньшим количеством факторов.

Количество процентов может быть любого размера!

Есть некоторые решатели с открытым исходным кодом SATISFIABILITY. Смотрите http://www.satlive.org/ для некоторых из них.

Сложение

make -C src /

Как

Введите интересующий вас номер в двоичном виде:

bin / iencode 10101> смесь.21
// решаем с помощью вашего любимого решателя и помещаем результаты в solution.txt
bin / extract-sat смесь.21 solution.txt

Выход будет:
00011
00111

которые представляют собой двоичные представления для десятичных целых 3 и 7, множители 21.

Если входное целое число имеет более 2 факторов, и проблема SAT решена, выходные данные будут только двумя из факторов. Это могут быть не простые числа (вы можете легко проверить это в Maxima, Maple или Mathematica).

Не все SAT-решатели выводят результаты в одном и том же формате. Возможно, вам придется немного скорректировать эти результаты. extract-sat требует файл решения, содержащий список целых чисел (на любое количество строк). Например,

1 -2 3 4 -5 ...


1
Можете ли вы обобщить методы, используемые этим программным обеспечением? На этом сайте нас больше интересуют алгоритмы и методики, нежели реклама программного инструмента. Например, вопросы по сложности редукции. Я не понимаю, как вы ответили на вопрос; на сайтах Stack Exchange вы должны отвечать только в том случае, если можете ответить на заданный вопрос. Кроме того, у вас есть какие-либо отношения с инструментом или его авторами?
DW
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.