Алгоритм Полига – Хеллмана - Pohlig–Hellman algorithm
В теория групп, то Алгоритм Полига – Хеллмана, иногда упоминается как Алгоритм Сильвера – Полига – Хеллмана,[1] это специальный алгоритм для вычислений дискретные логарифмы в конечная абелева группа чей заказ гладкое целое число.
Алгоритм был представлен Роландом Сильвером, но впервые опубликован Стивен Полиг и Мартин Хеллман (независимо от серебра).[нужна цитата ]
Группы порядка простой степени
В качестве важного частного случая, который используется в качестве подпрограммы в общем алгоритме (см. Ниже), алгоритм Полига – Хеллмана применяется к группы чей заказ основная сила. Основная идея этого алгоритма состоит в итеративном вычислении -адические цифры логарифма путем многократного «сдвига» всех, кроме одной неизвестной цифры в экспоненте, и вычисления этой цифры элементарными методами.
(Обратите внимание, что для удобства чтения алгоритм заявлен для циклических групп - в общем, необходимо заменить на подгруппу создано , который всегда цикличен.)
- Вход. Циклическая группа порядка с генератором и элемент .
- Выход. Уникальное целое число такой, что .
- Инициализировать
- Вычислить . К Теорема Лагранжа, этот элемент имеет порядок .
- Для всех , делать:
- Вычислить . По построению порядок этого элемента должен делить , следовательно .
- С использованием алгоритм шага младенца гигантский шаг, вычислить такой, что . Это требует времени .
- Набор .
- Возвращаться .
Предполагая намного меньше, чем , алгоритм вычисляет дискретные логарифмы по временной сложности , намного лучше, чем алгоритм шага младенца гигантский шаг .
Общий алгоритм
В этом разделе мы представляем общий случай алгоритма Полига – Хеллмана. Основные ингредиенты - это алгоритм из предыдущего раздела (для вычисления логарифма по модулю каждой степени простого числа в групповом порядке) и Китайская теорема об остатках (чтобы объединить их в логарифм в полной группе).
(Опять же, мы предполагаем, что группа является циклической, с пониманием того, что нециклическая группа должна быть заменена подгруппой, порожденной базовым элементом логарифма.)
- Вход. Циклическая группа порядка с генератором , элемент , и разложение на простые множители .
- Выход. Уникальное целое число такой, что .
- Для каждого , делать:
- Вычислить . К Теорема Лагранжа, этот элемент имеет порядок .
- Вычислить . По конструкции, .
- Используя алгоритм выше в группе , вычислить такой, что .
- Решите одновременное сравнение Китайская теорема об остатках гарантирует, что существует единственное решение. .
- Возвращаться .
- Для каждого , делать:
Правильность этого алгоритма можно проверить с помощью классификация конечных абелевых групп: Повышение и к власти можно понимать как проекцию на факторную группу порядка .
Сложность
Наихудшим входом для алгоритма Полига – Хеллмана является группа простого порядка: в этом случае он деградирует до алгоритм шага младенца гигантский шаг, следовательно, временная сложность наихудшего случая равна . Однако гораздо эффективнее, если порядок плавный: в частности, если разложение на простые множители , то сложность алгоритма равна
Примечания
- ^ Моллин 2006, стр. 344
- ^ Menezes, et. al 1997, стр. 108
Рекомендации
- Моллин, Ричард (18 сентября 2006 г.). Введение в криптографию (2-е изд.). Чепмен и Холл / CRC. п.344. ISBN 978-1-58488-618-1.
- С. Полиг и М. Хеллман (1978). «Улучшенный алгоритм вычисления логарифмов по GF (p) и его криптографическая значимость» (PDF). IEEE Сделки по теории информации (24): 106–110.CS1 maint: использует параметр авторов (связь)
- Менезеш, Альфред Дж.; ван Оршот, Пол К.; Ванстон, Скотт А. (1997). "Теоретико-числовые справочные задачи" (PDF). Справочник по прикладной криптографии. CRC Press. стр.107–109. ISBN 0-8493-8523-7.