stringtranslate.com

Дискретный логарифм

В математике для заданных действительных чисел a и b логарифм log b a — это число x, такое что b x = a . Аналогично, в любой группе G степени b k могут быть определены для всех целых чисел k , а дискретный логарифм log b a — это целое число k, такое что b k = a . В теории чисел более часто используемый термин — индекс : мы можем записать x = ind r a (mod  m ) (читается «индекс a по основанию r по модулю m ») для r xa (mod  m ), если rпримитивный корень из m и gcd ( a , m ) = 1.

Дискретные логарифмы быстро вычисляются в нескольких особых случаях. Однако не известно эффективного метода для их вычисления в общем случае. В криптографии вычислительная сложность задачи дискретного логарифма, вместе с ее применением, была впервые предложена в задаче Диффи–Хеллмана . Несколько важных алгоритмов в криптографии с открытым ключом , такие как ElGamal , основывают свою безопасность на предположении о сложности , что задача дискретного логарифма (DLP) над тщательно выбранными группами не имеет эффективного решения. [1]

Определение

Пусть G — любая группа. Обозначим ее групповую операцию умножением, а ее единичный элемент — 1. Пусть b — любой элемент группы G. Для любого положительного целого числа k выражение b k обозначает произведение b на себя k раз: [2]

Аналогично, пусть b k обозначает произведение b −1 на себя k раз. При k = 0 степень k является тождеством: b 0 = 1 .

Пусть a также будет элементом G. Целое число k , которое решает уравнение b k = a, называется дискретным логарифмом (или просто логарифмом в данном контексте) числа a по основанию b . Записывается как k  = log b a .

Примеры

Степени числа 10

Степени числа 10 :

Для любого числа a в этом списке можно вычислить log 10 a . Например, log 10  10000 = 4 и log 10  0,001 = −3. Это примеры задачи дискретного логарифма.

Другие десятичные логарифмы в действительных числах не являются примерами проблемы дискретного логарифма, поскольку они включают нецелые показатели. Например, уравнение log 10  53 = 1,724276… означает, что 10 1,724276… = 53. В то время как целые показатели могут быть определены в любой группе с использованием произведений и обратных величин, произвольные действительные показатели, такие как 1,724276…, требуют других понятий, таких как показательная функция .

В терминах теории групп степени числа 10 образуют циклическую группу G при умножении, а число 10 является генератором этой группы. Дискретный логарифм log 10 a определен для любого a из G.

Степени фиксированного действительного числа

Аналогичный пример справедлив для любого ненулевого действительного числа b . Степени образуют мультипликативную подгруппу G = {…, b −3 , b −2 , b −1 , 1, b 1 , b 2 , b 3 , …} ненулевых действительных чисел. Для любого элемента a из G можно вычислить log b a .

Модульная арифметика

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

Степень k одного из чисел в этой группе можно вычислить, найдя ее степень k как целое число, а затем найдя остаток после деления на p . Когда задействованные числа большие, более эффективно несколько раз уменьшать по модулю p во время вычисления. Независимо от конкретного используемого алгоритма, эта операция называется модульным возведением в степень . Например, рассмотрим Z 17 × . Чтобы вычислить 3 4 в этой группе, вычислите 3 4 = 81, а затем разделите 81 на 17, получив остаток 13. Таким образом, 3 4 = 13 в группе Z 17 × .

Дискретный логарифм — это просто обратная операция. Например, рассмотрим уравнение 3 k ≡ 13 (mod 17). Из приведенного выше примера одно решение — k  = 4, но это не единственное решение. Поскольку 3 16 ≡ 1 (mod 17) — как следует из малой теоремы Ферма — также следует, что если n — целое число, то 3 4+16 n ≡ 3 4 × (3 16 ) n ≡ 13 × 1 n ≡ 13 (mod 17). Следовательно, уравнение имеет бесконечно много решений вида 4 + 16 n . Более того, поскольку 16 — наименьшее положительное целое число m, удовлетворяющее 3 m ≡ 1 (mod 17), это единственные решения. Эквивалентно, множество всех возможных решений можно выразить ограничением, что k ≡ 4 (mod 16).

Полномочия личности

В частном случае, когда b является единичным элементом 1 группы G , дискретный логарифм log b a не определен для a, отличного от 1, и каждое целое число k является дискретным логарифмом для a = 1.

Характеристики

Степени подчиняются обычному алгебраическому тождеству b k  +  l = b k b l . [2] Другими словами, функция

определяемый как f ( k ) = b k является гомоморфизмом групп из целых чисел Z при сложении на подгруппу H группы G , порожденную b . Для всех a из H , log b a существует. Обратно , log b a не существует для a , которые не находятся в H .

Если H бесконечно , то log b a также уникален, а дискретный логарифм представляет собой групповой изоморфизм

С другой стороны, если H конечен порядка n , то log b a уникален только с точностью до сравнения по модулю n , а дискретный логарифм представляет собой групповой изоморфизм

где Z n обозначает аддитивную группу целых чисел по модулю n .

Знакомая формула замены основания для обычных логарифмов остается в силе: если c — другой генератор H , то

Алгоритмы

Нерешенная проблема в информатике :
Можно ли вычислить дискретный логарифм за полиномиальное время на классическом компьютере?

Задача дискретного логарифма считается вычислительно неразрешимой. То есть, неизвестен ни один эффективный классический алгоритм для вычисления дискретных логарифмов в целом.

Общий алгоритм для вычисления log b a в конечных группах G заключается в возведении b во все большие и большие степени k до тех пор, пока не будет найдено требуемое a . Этот алгоритм иногда называют пробным умножением . Он требует времени выполнения, линейного по размеру группы G и, таким образом, экспоненциального по количеству цифр в размере группы. Следовательно, это алгоритм с экспоненциальным временем, практичный только для небольших групп G .

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

Эффективный квантовый алгоритм был разработан Питером Шором . [3]

Эффективные классические алгоритмы существуют также в некоторых особых случаях. Например, в группе целых чисел по модулю p при сложении степень b k становится произведением bk , а равенство означает сравнение по модулю p в целых числах. Расширенный алгоритм Евклида быстро находит k .

В случае Диффи–Хеллмана используется циклическая группа по модулю простого числа p , что позволяет эффективно вычислять дискретный логарифм с помощью Полига–Хеллмана, если порядок группы (равный p −1) достаточно гладкий , т.е. не имеет больших простых множителей .

Сравнение с целочисленной факторизацией

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

Криптография

Существуют группы, для которых вычисление дискретных логарифмов, по-видимому, затруднительно. В некоторых случаях (например, большие подгруппы простых порядков групп Z p × ) не только не существует эффективного алгоритма, известного для худшего случая, но и сложность в среднем случае может быть показана примерно такой же сложной, как и в худшем случае, используя случайную самоприводимость . [4]

В то же время, обратная задача дискретного возведения в степень не является сложной (например, ее можно эффективно вычислить, используя возведение в степень путем возведения в квадрат ). Эта асимметрия аналогична асимметрии между факторизацией целых чисел и умножением целых чисел. Обе асимметрии (и другие, возможно, односторонние функции ) использовались при построении криптографических систем.

Популярным выбором для группы G в дискретной логарифмической криптографии (DLC) являются циклические группы Z p × (например, шифрование Эль-Гамаля , обмен ключами Диффи–Хеллмана и алгоритм цифровой подписи ) и циклические подгруппы эллиптических кривых над конечными полями ( см. Криптография на эллиптических кривых ).

Хотя не существует общедоступного алгоритма для решения задачи дискретного логарифма в целом, первые три шага алгоритма решета числового поля зависят только от группы G , а не от конкретных элементов G , конечный логарифм которых требуется. Предварительно вычисляя эти три шага для конкретной группы, нужно выполнить только последний шаг, который гораздо менее затратен в вычислительном отношении, чем первые три, чтобы получить конкретный логарифм в этой группе. [5]

Оказывается, что большая часть интернет- трафика использует одну из немногих групп, имеющих порядок 1024 бит или меньше, например, циклические группы с порядком простых чисел Окли, указанным в RFC 2409. [6] Атака Logjam использовала эту уязвимость для компрометации различных интернет-сервисов, которые позволяли использовать группы, порядок которых был 512-битным простым числом, так называемый экспортный класс . [5]

Авторы атаки Logjam оценивают, что гораздо более сложные предварительные вычисления, необходимые для решения задачи дискретного логарифма для 1024-битного простого числа, будут в пределах бюджета крупного национального разведывательного агентства, такого как Агентство национальной безопасности США (АНБ). Авторы Logjam предполагают, что предварительные вычисления против широко используемых 1024 простых чисел DH стоят за утверждениями в просочившихся документах АНБ о том, что АНБ способно взломать большую часть современной криптографии. [5]

Смотрите также

Ссылки

  1. ^ Менезес, А. Дж.; ван Ооршот, П. К.; Ванстоун, С. А. "Глава 8.4 Шифрование с открытым ключом Эль-Гамаля" (PDF) . Справочник по прикладной криптографии . CRC Press .
  2. ^ ab Lam; Shparlinski; Wang; Xing (2001). Lam, Kwok-Yan; Shparlinski, Igor; Wang, Huaxiong; Xing, Chaoping (ред.). Криптография и вычислительная теория чисел. Прогресс в области компьютерных наук и прикладной логики (1-е изд.). Birkhäuser Basel. стр. 54–56. doi :10.1007/978-3-0348-8295-8. eISSN  2297-0584. ISBN 978-3-7643-6510-3. ISSN  2297-0576.
  3. ^ Шор, Питер (1997). «Алгоритмы полиномиального времени для разложения на простые множители и дискретных логарифмов на квантовом компьютере». Журнал SIAM по вычислениям . 26 (5): 1484–1509. arXiv : quant-ph/9508027 . doi : 10.1137/s0097539795293172. MR  1471990. S2CID  2337707.
  4. ^ Блейк, Ян Ф.; Гарефалакис, Тео (2004-04-01). «О сложности дискретного логарифма и проблемах Диффи–Хеллмана». Журнал сложности . Юбилейный сборник Харальда Нидеррайтера, специальный выпуск по кодированию и криптографии. 20 (2): 148–170. doi : 10.1016/j.jco.2004.01.002 . ISSN  0885-064X.
  5. ^ abc Адриан, Дэвид; Бхаргаван, Картикеян; Дурумерик, Закир; Годри, Пьеррик; Грин, Мэтью; Хальдерман, Дж. Алекс; Хенингер, Надя ; Спринголл, Дрю; Томе, Эммануэль; Валента, Люк; ВандерСлут, Бенджамин; Вустров, Эрик; Занелла-Бегелин, Сантьяго; Циммерман, Пол (октябрь 2015 г.). «Несовершенная прямая секретность: как протокол Диффи-Хеллмана терпит неудачу на практике» (PDF) .
  6. ^ Харкинс, Д.; Каррел, Д. (ноябрь 1998 г.). «Обмен ключами в Интернете (IKE)». Сетевая рабочая группа . doi :10.17487/RFC2409. ISSN  2070-1721.

Дальнейшее чтение