Алгоритм расчета индекса - Index calculus algorithm
В вычислительная теория чисел, то алгоритм расчета индекса это вероятностный алгоритм для вычислений дискретные логарифмы.Посвящается дискретному логарифму в куда является простым, исчисление индекса приводит к семейству алгоритмов, адаптированных к конечным полям и некоторым семействам эллиптических кривых. Алгоритм собирает отношения между дискретными логарифмами малых простых чисел, вычисляет их с помощью процедуры линейной алгебры и, наконец, выражает желаемый дискретный логарифм относительно дискретных логарифмов малых простых чисел.
Описание
Грубо говоря, дискретный журнал проблема просит нас найти Икс такой, что , куда грамм, час, а модуль п даны.
Алгоритм (подробно описанный ниже) применяется к группе куда q простое. Это требует факторная база как вход. Этот факторная база обычно выбирается числом −1, и первым р простые числа, начинающиеся с 2. С точки зрения эффективности мы хотим, чтобы эта факторная база была небольшой, но для решения дискретного журнала для большой группы нам потребуется факторная база быть (относительно) большим. В практических реализациях алгоритма эти конфликтующие цели так или иначе ставятся под угрозу.
Алгоритм выполняется в три этапа. Первые две стадии зависят только от генератора. грамм и простой модуль q, и найти дискретные логарифмы факторная база из р маленькие простые числа. На третьем этапе находится дискретный лог искомого числа. час с точки зрения дискретных логарифмов факторной базы.
Первый этап состоит в поиске набора р линейно независимый связи между факторной базой и мощностью генератор грамм. Каждое отношение вносит одно уравнение в система линейных уравнений в р неизвестных, а именно дискретных логарифмов р простые числа в факторной базе. Этот этап смущающе параллельный и легко разделить между множеством компьютеров.
На втором этапе решается система линейных уравнений для вычисления дискретных логарифмов факторной базы. Система из сотен тысяч или миллионов уравнений - это серьезное вычисление, требующее большого количества памяти, и оно нет смущающе параллельна, так что суперкомпьютер обычно используется. Это считалось незначительным шагом по сравнению с другими для небольших дискретных вычислений журнала. Однако записи большего дискретного логарифма[1][2] стали возможными только за счет смещения работы с линейной алгебры на решето (т. е. увеличения числа уравнений при уменьшении числа переменных).
Третий этап - поиск силы s генератора грамм который при умножении на аргумент час, может быть разложен на факторную базу граммsчас = (−1)ж0 2ж1 3ж2···пржр.
Наконец, в операции, слишком простой, чтобы ее можно было назвать четвертым этапом, результаты второго и третьего этапов могут быть перегруппированы с помощью простых алгебраических манипуляций, чтобы вычислить желаемый дискретный логарифм. Икс = ж0бревнограмм(−1) + ж1бревнограмм2 + ж2бревнограмм3 + ··· + жрбревнограммпр − s.
Первый и третий этапы до неприличия параллельны, и на самом деле третий этап не зависит от результатов первых двух этапов, поэтому его можно проводить параллельно с ними.
Выбор размера факторной базы р имеет решающее значение, и детали слишком сложны, чтобы объяснять здесь. Чем больше факторная база, тем легче найти отношения на этапе 1 и тем легче завершить этап 3, но тем больше связей вам понадобится, прежде чем вы сможете перейти к этапу 2, и тем сложнее этап 2. Также важна относительная доступность компьютеров, подходящих для различных типов вычислений, необходимых для этапов 1 и 2.
Приложения в других группах
Отсутствие понятия основные элементы в группе точек на эллиптические кривые делает невозможным найти эффективный факторная база для запуска метода расчета индекса, представленного здесь в этих группах. Следовательно, этот алгоритм не может эффективно решать дискретные логарифмы в группах эллиптических кривых. Однако: Для особых видов кривых (так называемых суперсингулярные эллиптические кривые ) существуют специализированные алгоритмы для решения проблемы быстрее, чем с помощью общих методов. Хотя использования этих специальных кривых можно легко избежать, в 2009 году было доказано, что для некоторых полей проблема дискретного логарифмирования в группе точек на Общее эллиптические кривые над этими полями могут быть решены быстрее, чем с помощью общих методов. Алгоритмы действительно являются адаптацией метода исчисления индексов.[3]
Алгоритм
Вход: Генератор дискретных логарифмов грамм, модуль q и аргумент час. Факторная база {−1,2,3,5,7,11, ...,пр}, длины р + 1.
Выход: Икс такой, что граммИкс ≡ час (мод q).
- отношения ← empty_list
- за k = 1, 2, ...
- Используя целочисленная факторизация алгоритм оптимизирован для гладкие числа, попробуйте фактор (Евклидов остаток) с использованием факторной базы, т.е. найти такой, что
- Каждый раз, когда обнаруживается факторизация:
- Магазин k и вычисленный как вектор (это называется отношением)
- Если это соотношение линейно независимый к другим отношениям:
- Добавить в список отношений
- Если есть хотя бы р +1 отношения, выход из цикла
- Сформируйте матрицу, строки которой являются отношениями
- Получить сокращенная форма эшелона матрицы
- Первый элемент в последнем столбце - это дискретный логарифм -1, а второй элемент - дискретный логарифм 2 и так далее.
- за s = 1, 2, ...
- Попытайтесь учесть по факторной базе
- Когда факторизация найдена:
- Выход
Сложность
Предполагая оптимальный выбор факторной базы, ожидаемое время работы (с использованием L-обозначение ) алгоритма исчисления индексов можно записать как.
История
Основная идея алгоритма принадлежит Вестерну и Миллеру (1968),[4] который в конечном итоге опирается на идеи Крайчика (1922).[5] Первые практические реализации последовали за введением в 1976 г. Диффи-Хеллман криптосистема, основанная на дискретном логарифме. Диссертация Меркла в Стэнфордском университете (1979) была одобрена Полигом (1977) и Хеллманом и Рейнери (1983), которые также внесли улучшения в реализацию.[6][7] Адлеман оптимизировал алгоритм и представил его в актуальном виде.[8]
Семейство Index Calculus
Индексное исчисление вдохновило большое семейство алгоритмов. В конечных полях с для некоторых премьер самыми современными алгоритмами являются сито числового поля для дискретных логарифмов, , когда большой по сравнению с , то сито функционального поля, , и Жу,[9] за , когда маленький по сравнению с и решето числового поля в высокой степени, за когда срединный. Дискретный логарифм в некоторых семействах эллиптических кривых может быть решен за время за , но общий случай остается экспоненциальным.
внешняя ссылка
- Дискретные логарифмы в конечных полях и их криптографическое значение, к Андрей Одлызко
- Задача дискретного логарифма Криса Студхолма, включая статью «Проблема дискретного журнала» от 21 июня 2002 г.
- А. Менезес, П. ван Оршот, С. Ванстон (1997). Справочник по прикладной криптографии. CRC Press. стр.107–109. ISBN 0-8493-8523-7.CS1 maint: использует параметр авторов (связь)
Примечания
- ^ Торстен Кляйнджунг, Клаус Дием, Арлен К. Ленстра, Кристин Приплата, Колин Штальке, «Вычисление 768-битного дискретного логарифма простого поля», IACR спринт, 2017
- ^ Джошуа Фрид, Пьеррик Годри, Надя Хенингер, Эммануэль Том, «Вычисление дискретного логарифма килобита скрытых snfs», IACR весна, июль 2016 г.
- ^ Дием, С. (2010). «К проблеме дискретного логарифмирования в эллиптических кривых». Compositio Mathematica.
- ^ Вестерн и Миллер (1968) Таблицы индексов и первообразных корней, Математические таблицы Королевского общества, том 9, Cambridge University Press.
- ^ М. Крайчик, Теория Номбр, Готье - Виллар, 1922 г.
- ^ Полиг, С. Алгебраические и комбинаторные аспекты криптографии. Tech. Представитель № 6602-1, Stanford Electron. Labs., Стэнфорд, Калифорния, октябрь 1977 г.
- ^ М.Э. Хеллман и Дж. М. Рейнери, Быстрое вычисление дискретных логарифмов в GF (q), Advances in Cryptology - Proceedings of Crypto, 1983
- ^ Л. Адлеман, Субэкспоненциальный алгоритм для задачи дискретного логарифмирования с приложениями к криптографии, На 20-м ежегодном симпозиуме по основам компьютерных наук, 1979 г.
- ^ А. Жу, Новый сложный алгоритм исчисления индексов в очень маленькой характеристике [1]