stringtranslate.com

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

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

Дискретные логарифмы можно быстро вычислить в некоторых особых случаях, однако в целом не известно эффективного метода их вычисления. В криптографии вычислительная сложность задачи дискретного логарифмирования и ее применения была впервые предложена в задаче Диффи-Хеллмана . Некоторые важные алгоритмы в криптографии с открытым ключом , такие как Эль-Гамаль , основывают свою безопасность на предположении о том, что задача дискретного логарифмирования (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. Это примеры проблемы дискретного логарифма.

Другие логарифмы по основанию 10 в действительных числах не являются примерами проблемы дискретного логарифма, поскольку они включают нецелые показатели степени. Например, уравнение 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 (по модулю 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 степень bk становится произведением 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. ^ Менезес, AJ; ван Ооршот, ПК; Ванстон, С.А. «Глава 8.4 Шифрование с открытым ключом Эль-Гамаля» (PDF) . Справочник по прикладной криптографии . ЦРК Пресс .
  2. ^ аб Лам; Шпарлинский; Ван; Син (2001). Лам, Квок-Ян; Шпарлинский, Игорь; Ван, Хуасюн; Син, Чаопин (ред.). Криптография и вычислительная теория чисел. Прогресс в области информатики и прикладной логики (1-е изд.). Биркхойзер Базель. стр. 54–56. дои : 10.1007/978-3-0348-8295-8. eISSN  2297-0584. ISBN 978-3-7643-6510-3. ISSN  2297-0576.
  3. ^ Шор, Питер (1997). «Алгоритмы полиномиального времени для простой факторизации и дискретных логарифмов на квантовом компьютере». SIAM Journal по вычислительной технике . 26 (5): 1484–1509. arXiv : Quant-ph/9508027 . дои : 10.1137/s0097539795293172. МР  1471990. S2CID  2337707.
  4. ^ Блейк, Ян Ф.; Гарефалакис, Тео (1 апреля 2004 г.). «О сложности дискретного логарифма и задач Диффи – Хеллмана». Журнал сложности . Festschrift для Харальда Нидеррайтера, специальный выпуск по кодированию и криптографии. 20 (2): 148–170. дои : 10.1016/j.jco.2004.01.002 . ISSN  0885-064X.
  5. ^ abc Адриан, Дэвид; Бхаргаван, Картикеян; Дурумерик, Закир; Годри, Пьеррик; Грин, Мэтью; Халдерман, Дж. Алекс; Хенингер, Надя ; Спринголл, Дрю; Томе, Эммануэль; Валента, Люк; ВандерСлот, Бенджамин; Вустроу, Эрик; Занелла-Бегелен, Сантьяго; Циммерманн, Пол (октябрь 2015 г.). «Несовершенная прямая секретность: как Диффи-Хеллман терпит неудачу на практике» (PDF) .
  6. ^ Харкинс, Д.; Каррел, Д. (ноябрь 1998 г.). «Интернет-обмен ключами (IKE)». Сетевая рабочая группа . дои : 10.17487/RFC2409. ISSN  2070-1721.

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