Факторизация

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

Факториза́ция — разложение данного натурального числа на простые множители.

В отличие от задачи распознавания простоты числа, факторизация предположительно является сложной задачей.

Содержание

[править] Алгоритмы факторизации

В зависимости от сложности алгоритмы факторизации можно разбить на две группы. Первая группа — экспоненциальные алгоритмы, сложность которых экспоненциально зависит от длины входящих праметров (то есть от длины самого числа в бинарном представлении). Вторая группа — субэкспоненциальные алгоритмы, для обозначения сложности которых принята L-нотация:

L_{N}(\alpha,\;c):=O(\exp((c+o(1))(\log N)^{\alpha}(\log\log N)^{1-\alpha})),

где N — число подлежащее факторизации, 0 < α < 1 и c — некоторые константы.

Вопрос о существовании алгоритма факторизации с полиномиальной сложностью на классическом компьютере является одной из важных открытых проблем современной теории чисел. В то же время факторизация с полиномиальной сложностью возможна на квантовом компьютере с помощью алгоритма Шора.

[править] Экспоненциальные алгоритмы

[править] Субэкспоненциальные алгоритмы

[править] Решето числового поля

В настоящее время самыми эффективными алгоритмами факторизации являются вариации решета числового поля:

[править] Применение в криптографии

Предполагаемая сложность задачи факторизации лежит в основе криптостойкости некоторых алгоритмов шифрования с открытым ключом, таких как RSA.

[править] Ссылки