Проблема факторизации натурального числа (разложение на простые сомножители) довольно актуальна на сегодняшний день. Предполагается, что факторизация длинных чисел - задача трудоемкая, и на этом предположении основано множество криптосистем. В частности, криптографический алгоритм RSA с открытым ключом имеет в числе своих параметров известное длинное число п, образованное произведением секретных простых чисел p и q (то есть p и q - результат факторизации п).
В статье (1) был опубликован алгоритм RSA-129 и сообщение, зашифрованное с его помощью. Читателям предлагалось расшифровать его, факторизовав 129-значное десятичное число, и получить денежное вознаграждение. На тот момент методов факторизации было немного. Так, метод Ферма справлялся за приемлемое время лишь с числами в 25-30 разрядов. Математическое сообщество взялось за эту задачу, и сейчас существуют такие алгоритмы факторизации:
Экспоненциальные:
- р- и (p-1) - методы Полларда;
- (p+1) - метод Уильямса;
- метод Ленстры;
- методы Шенкса и др;
Субэкспоненциальные:
- метод квадратичного решета (К. Померанс);
- алгоритмы решета числового поля;
- алгоритм Ленстры с использованием эллиптических кривых (ЭК), о котором пойдет речь в данной работе;
- другие.
Цель данной работы - исследование и реализация алгоритма Ленстры факторизации натуральных чисел. Для ее осуществления необходимо решить ряд задач:
- ознакомиться с проблемой факторизации натуральных чисел;
- изучить алгоритм Ленстры на эллиптических кривых;
- реализовать последовательный алгоритм:
- на кривых Вейерштрасса в аффинной и проективной системах координат;
- на кривых Twisted Edwards;
- реализовать параллельную версию алгоритма;
- сравнить скорости работы вышеназванных реализаций и представить результаты;
- исследовать параметры алгоритма.
Цели данной работы выполнены.
Алгоритм Ленстры реализован с использованием разных кривых и координат, в последовательном и параллельном варианте, проведены эксперименты по сравнению времени их работы.
Выяснилось, что варианты алгоритма Ленстры на кривых Twisted Edwards и на кривых Вейерштрасса в проективных координатах работает быстрее, чем на кривых Вейерштрасса в аффинных координатах.
В ходе опыта с кривыми стало ясно, что успешность алгоритма серьезно зависит от выбора границ, и чем больше границы, тем вероятнее будет найден искомый делитель. Однако практика требует меньших временных затрат, особенно если работа идет с очень длинными числами, в связи с чем необходимо эти границы уменьшать. Эксперимент, проведенный в данной работе, показал, что выбор границы В2<р/ 2 (где р - наименьший простой делитель факторизуемого числа) дает в рассмотренных случаях в среднем 16% успешных результатов, а выбор максимальной вычисляемой особым образом границы дает примерно 29% успешных результатов.
Проблема в том, что наша цель - как раз найти р. И выбор границы В 2, таким образом, задача нетривиальная, которая до сих пор исследуется.
1. A new kind of cipher that would take millions years to break. M., Gardner. 1977 г., Scientific American, стр. 120-124.
2. Blake I. F., Seroussi G., Smart N. P. Elliptic curves in cryptography. Cambridge : Cambridge University Press, 1999.
3. Ш.Т., Ишмухаметов. Методы факторизации натуральных чисел. Казань : Казанский университет, 2011.
4. Ишмухаметов Ш.Т., Рубцова Р.Г. Математические основы защиты информации. Казань : Казанский университет, 2012.
5. Factoring integers with elliptic curves. H.W., Lenstra. 126, б.м. : Annals of Mathematics, 1987 г.
6. Bernstein D. J., Lange T. Faster addition and doubling on elliptic curves. 2007.
7. Bernstein D. J., Birkner P., Joye M., Lange T., Peters C. Twisted Edwards Curves. 2008.
8. Hisil Huseyin, Koon-Ho Wong Kenneth, Carter Gary, Dawson Ed. Twisted Edwards Curves Revisited.
2008.
9. Бессалов А.В., Цыганкова О.В. Производительность групповых операций на скрученной кривой Эдвардса над простым полем.