20.09.2019

Квадратичное сравнение. Вычисление дискретного логарифма


Пример 13.13

Для какого значения n группа имеет примитивные корни: 17, 20, 38 и 50 ?

Решение

a. имеет примитивные корни, потому что 17 - простое число (p t , где t равно 1 ).

b. не имеет никаких примитивных корней.

c. и 19 - простое число.

d. имеет первообразные корни, потому что , а 5 - простое число.

Если группа имеет примитивный корень, то обычно она имеет несколько таких корней. Число примитивных корней может быть вычислено как - . Например, число примитивных корней - это - . Обращаем внимание, что нужно сначала проверить, имеет ли группа какой-либо примитивный корень, прежде чем находить число корней.

Если группа G = < Z n* , x > имеет хотя бы один примитивный корень, то число примитивных корней - ( (n))

Рассмотрим три вопроса:

1. Если дан элемент a и группа , как можно определить, является ли a примитивным корнем G ? Это не такая легкая задача.

а. Мы должны найти , - эта задача по сложности подобна задаче разложения на множители числа n .

б. Мы должны найти .

2. Если дана группа , как найти все примитивные корни ? Эта задача более трудная, чем первая задача, потому что мы должны повторить вычисления по п.1.б для всей группы.

3. Если дана группа , то как выбирать примитивный корень G ? В криптографии мы должны найти, по крайней мере, один примитивный корень в группе. Однако в этом случае значение n выбирается пользователем, и пользователь знает . Пользователь пробует последовательно несколько элементов, пока не находит первый из них.

Циклическая группа . Циклические группы уже обсуждались в лекциях 5-6. Обратите внимание на то, что, если группа имеет примитивные корни, то они циклически повторяются. Каждый примитивный корень - генератор и может использоваться для создания целого набора. Другими словами, если g - примитивный корень в группе, мы можем генерировать набор Z n * как

Пример 13.14

Группа имеет два примитивных корня, потому что и . Можно найти примитивные корни - это 3 и 7 . Ниже показано, как можно создать целый набор Z 10* , использующий каждый примитивный корень.

g = 3 -> g 1 mod 10 = 3 g 2 mod 10 = 9 g 3 mod 10 = 7 g 4 mod 10 = 1 g = 7 -> g 1 mod 10 = 7 g 2 mod 10 = 9 g 3 mod 10 = 3 g 4 mod 10 = 1

Обратите внимание, что группа всегда циклическая, потому что p - простое.

Группа G = < Z n * , x > является циклической группой, если она имеет примитивные корни. Группа G = < Z p * , x > всегда является циклической.

Идея дискретного логарифма . Группа имеет несколько интересных свойств.

Решение модульного логарифма с использованием дискретных логарифмов

Теперь рассмотрим, как решаются задачи типа y = a x (mod n) , т. е. дано y , а мы должны найти x .

Табулирование дискретных логарифмов . Один из способов решения вышеупомянутой проблемы - использовать таблицу для каждого Z p* и различных оснований. Этот тип таблицы может быть предварительно рассчитан и сохранен. Например, таблица 13.4 показывает значения дискретного логарифма для Z 7* . Мы знаем, что мы имеем два примитивных корня или основания в данном множестве.

Таблица 13.4. Дискретный логарифм для G =
y 1 2 3 4 5 6
x = L 3 y 6 2 1 4 5 3
x = L 5 y 6 4 5 2 1 3

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

Пример 13.15

Найдите x в каждом из следующих случаев:

a.

b.

Мы можем легко использовать таблицу 13.4 дискретного логарифма .

Группа исследователей из EPFL и Университета Лейпцига смогла посчитать логарифм по основанию простого числа размером 768 бит . Для этого им понадобилось 200 ядер и время с февраля 2015 года. Использовали они вариант цифрового решета. Таким образом логарифмирование сравнялось с факторизацией где рекорд для обычных чисел тоже 768 бит

Кстати, после завтрашнего апдейта можно будет прикручивать бесплатный TLS к dyndns хостам! Это суперкруто, все хомяки теперь будут с сертификатами.

Защищаемся от Side channel атак

Не секрет, что нынче информацию о ключах шифрования можно удаленно снимать чуть ли не через вентилятор. Поэтому, все большую популярность обретают constant-time алгоритмы, которые не зависят от входных данных. Немцы выпустили минимальные требования для реализаций, выполнение которых усложнит задачу получения секретных данных через побочные каналы данных. , советую ознакомиться.

На этом у меня всё, до новых встреч!

Самые часто задаваемые вопросы

Возможно ли, изготовить печать на документе по предоставленному образцу? Ответ Да, возможно. Отправьте на наш электронный адрес скан-копию или фото хорошего качества, и мы изготовим необходимый дубликат.

Какие виды оплаты вы принимаете? Ответ Вы можете оплатить документ во время получения на руки у курьера, после того, как проверите правильность заполнения и качество исполнения диплома. Также это можно сделать в офисе почтовых компаний, предлагающих услуги наложенного платежа.
Все условия доставки и оплаты документов расписаны в разделе «Оплата и доставка». Также готовы выслушать Ваши предложения по условиям доставки и оплаты за документ.

Могу ли я быть уверена, что после оформления заказа вы не исчезнете с моими деньгами? Ответ В сфере изготовления дипломов у нас достаточно длительный опыт работы. У нас есть несколько сайтов, который постоянно обновляются. Наши специалисты работают в разных уголках страны, изготавливая свыше 10 документов день. За годы работы наши документы помогли многим людям решить проблемы трудоустройства или перейти на более высокооплачиваемую работу. Мы заработали доверие и признание среди клиентов, поэтому у нас совершенно нет причин поступать подобным образом. Тем более, что это просто невозможно сделать физически: Вы оплачиваете свой заказ в момент получения его на руки, предоплаты нет.

Могу я заказать диплом любого ВУЗа? Ответ В целом, да. Мы работаем в этой сфере почти 12 лет. За это время сформировалась практически полная база выдаваемых документов почти всех ВУЗов страны и за разные года выдачи. Все, что Вам нужно – выбрать ВУЗ, специальность, документ, и заполнить форму заказа.

Что делать при обнаружении в документе опечаток и ошибок? Ответ Получая документ у нашего курьера или в почтовой компании, мы рекомендуем тщательно проверить все детали. Если будет обнаружена опечатка, ошибка или неточность, Вы имеете право не забирать диплом, при этом нужно указать обнаруженные недочеты лично курьеру или в письменном виде, отправив письмо на электронную почту.
В кратчайшие сроки мы исправим документ и повторно отправим на указанный адрес. Разумеется, пересылка будет оплачена нашей компанией.
Чтобы избежать подобных недоразумений, перед тем, как заполнять оригинальный бланк, мы отправляем на почту заказчику макет будущего документа, для проверки и утверждения окончательного варианта. Перед отправкой документа курьером или почтой мы также делаем дополнительное фото и видео (в т. ч. в ультрафиолетовом свечении), чтобы Вы имели наглядное представление о том, что получите в итоге.

Что нужно сделать, чтобы заказать диплом в вашей компании? Ответ Для заказа документа (аттестата, диплома, академической справки и др.) необходимо заполнить онлайн-форму заказа на нашем сайте или сообщить свою электронную почту, чтобы мы выслали вам бланк анкеты, который нужно заполнить и отправить обратно нам.
Если вы не знаете, что указать в каком-либо поле формы заказа/анкеты, оставьте их незаполненными. Всю недостающую информацию мы потому уточним в телефонном режиме.

Последние отзывы

Валентина:

Вы спасли нашего сына от увольнения! Дело в том что недоучившись в институте, сын пошел в армию. А вернувшись, восстанавливаться не захотел. Работал без диплома. Но недавно начали увольнять всех, кто не имеет «корочки. Поэтому решили обратиться к вам и не пожалели! Теперь спокойно работает и ничего не боится! Спасибо!

Дискретное логарифмирование (DLOG) - задача обращения функции g x {\displaystyle g^{x}} в некоторой конечной мультипликативной группе G {\displaystyle G} .

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

Для заданных g и a решение x уравнения называется дискретным логарифмом элемента a по основанию g . В случае, когда G является мультипликативной группой кольца вычетов по модулю m , решение называют также индексом числа a по основанию g . Индекс числа a по основанию g гарантированно существует, если g является первообразным корнем по модулю m .

Энциклопедичный YouTube

    1 / 5

    ✪ Задача вычисления дискретного логарифма

    ✪ Дискретное логарифмирование (часть 11)| Криптография | Программирование

    ✪ Протокол Ди́ффи - Хе́ллмана (часть 12) | Криптография | Программирование

    ✪ Переносная шифровальная машина «Эни́гма» (часть 6) | Криптография | Программирование

    ✪ Шифр Вернама (часть 4) | Криптография | Программирование

    Субтитры

    Нам нужна числовая процедура, которая легко выполняется в одном направлении и гораздо труднее в обратном. Это приводит нас к модульной арифметике, также известной как "арифметика часов" (или "остатков"). Например, для нахождения 46 по модулю 12 можно взять веревку длиной 46 единиц и свернуть ее вокруг часов, которые называют модулем. То место, где веревка заканчивается, и есть решение. То есть 46 по модулю 12 эквивалентно 10-ти. Все просто. Теперь для выполнения этого возьмем простой модуль. 17, к примеру. Затем найдем первообразный корень 17-ти, в этом случае -- три. Он имеет очень важное свойство при возведении в различные степени -- значения равномерно распределяются вокруг часов. 3 называют порождающим элементом или генератором. Если возвести 3 в любую степень x, то результат равновероятно может оказаться любым числом от 1 до 16. То есть обратная процедура довольно сложна. Скажем, какая степень 3 даст в результате 12? Это и есть задача вычисления дискретного логарифма. И теперь у нас есть односторонняя функция. Простая для прямого и сложная для обратного выполнения. Для заданного числа 12 нам приходится прибегнуть к перебору многих ошибочных вариантов, чтобы найти нужный показатель степени. Так насколько это сложно? Ну, с небольшими значениями это просто, но если использован простой модуль длиной в сотни знаков, задача становится практически неразрешимой. Даже если есть доступ ко всем вычислительным мощностям Земли, перебор всех вариантов может занять тысячи лет. Таким образом, сила односторонней функции основана на времени, необходимом для обратного преобразования.

Постановка задачи

Пусть в некоторой конечной мультипликативной абелевой группе G {\displaystyle G} задано уравнение

g x = a {\displaystyle g^{x}=a} . (1)

Решение задачи дискретного логарифмирования состоит в нахождении некоторого целого неотрицательного числа x {\displaystyle x} , удовлетворяющего уравнению (1). Если оно разрешимо, у него должно быть хотя бы одно натуральное решение, не превышающее порядок группы. Это сразу даёт грубую оценку сложности алгоритма поиска решений сверху - алгоритм полного перебора нашел бы решение за число шагов не выше порядка данной группы.

Чаще всего рассматривается случай, когда G = ⟨ g ⟩ {\displaystyle G=\langle g\rangle } , то есть группа является циклической , порождённой элементом g {\displaystyle g} . В этом случае уравнение всегда имеет решение. В случае же произвольной группы вопрос о разрешимости задачи дискретного логарифмирования, то есть вопрос о существовании решений уравнения (1), требует отдельного рассмотрения.

Пример

Рассмотрим задачу дискретного логарифмирования в кольце вычетов по модулю простого числа. Пусть задано сравнение

3 x ≡ 13 (mod 17) . {\displaystyle 3^{x}\equiv 13{\pmod {17}}.}

Для чисел специального вида результат можно улучшить. В некоторых случаях можно построить алгоритм, для которого константы будут c ≈ 1 , 00475 {\displaystyle c\approx 1,00475} , d = 2 5 {\displaystyle d={\frac {2}{5}}} . За счёт того, что константа c {\displaystyle c} достаточно близка к 1, подобные алгоритмы могут обогнать алгоритм с d = 1 3 {\displaystyle d={\frac {1}{3}}} .

В произвольном конечном поле

Задача рассматривается в поле GF(q) , где q = p n {\displaystyle q=p^{n}} , p {\displaystyle p} - простое.

В группе точек на эллиптической кривой

Рассматривается группа точек эллиптической кривой над конечным полем. В данной группе определена операция сложения двух точек. Тогда m P {\displaystyle mP} - это P + … + P ⏟ m {\displaystyle \underbrace {P+\ldots +P} \limits _{m}} . Решением задачи дискретного логарифмирования на эллиптической кривой является нахождение такого натурального числа m {\displaystyle m} , что m P = A {\displaystyle mP=A} для заданных точек P {\displaystyle P} и A . {\displaystyle A.}

До 1990 года не существовало алгоритмов дискретного логарифмирования, учитывающих особенностей строения группы точек эллиптической кривой. Впоследствии, Менезес (Alfred J. Menezes), Окамото (Tatsuaki Okamoto) и Венстон (Scott A. Vanstone) предложили алгоритм, использующий спаривание Вейля . Для эллиптической кривой, определённой над полем G F (q) {\displaystyle GF(q)} , данный алгоритм сводит задачу дискретного логарифмирования к аналогичной задаче в поле G F (q k) {\displaystyle GF(q^{k})} . Однако, данное сведение полезно, только если степень k {\displaystyle k} мала. Это условие выполняется, в основном, для суперсингулярных эллиптических кривых. В остальных случаях подобное сведение практически никогда не приводит к субэкспоненциальным алгоритмам.

Вычислительная сложность и приложения в криптографии

Задача дискретного логарифмирования является одной из основных задач, на которых базируется криптография с открытым ключом . Классическими криптографическими схемами на её основе являются схема выработки общего ключа Диффи-Хеллмана , схема электронной подписи Эль-Гамаля , криптосистема Мэсси-Омуры для передачи сообщений. Их криптостойкость основывается на предположительно высокой вычислительной сложности обращения показательной функции. Хотя сама показательная функция вычисляется достаточно эффективно, даже самые современные алгоритмы вычисления дискретного логарифма имеют очень высокую сложность, которая сравнима со сложностью наиболее быстрых алгоритмов

Определение. Пусть G = < G ; , 1 > - конечная группа, а и b - элементы группы G ; r = ordb . Натуральное число l называют дискретным логарифмом элемента а при основании b, если

Замечания.

а) В качестве группы G избираем мультипликативную группу из ненулевых элементов конечного поля F r

б) Если q = р - простое число и b - первообразный корень по модулю р, то число l , определяемое условием (1.1), называют индексом числа а при основании b по модулю р.

в) Вместо термина "дискретный логарифм элемента а при основании b" употребляют также термин " индекс элемента а при основании b".

Обозначение. ind b a - дискретный логарифм элемента а при основании b . (Группа G обычно подразумевается из контекста.)

Задача определения дискретного логарифма элемента конечной группы может быть легко решена, если порядок группы не слишком велик и для этой группы составлена таблица индексов. При отыскании логарифма положительного действительного числа, если нет таблицы логарифмов или она недоступна, можно воспользоваться методом последовательного приближения. Он состоит в следующем. На каждом шаге применения этого метода интервал границ значения арифметического логарифма сужают вдвое. Так продолжая, легко определить значение этого логарифма с любой заранее объявленной точностью. Успех применения этого метода основан на использовании свойств неравенств. Ничего подобного нет в конечном поле. Точнее говоря, в конечном поле нельзя построить метод вычисления дискретного логарифма, подобный методу последовательного приближения. В самом деле, в конечном поле нельзя определить антисимметричное, транзитивное, связное бинарное отношение, согласованное с какой-нибудь операцией.

Алгоритм перебора - метод, который хотя бы теоретически может всегда привести к успеху. Он состоит в следующем. Пусть b - примитивный элемент данного конечного поля и a - другой какой-нибудь элемент того же поля. Чтобы найти ind b a, начиная, например, с п = 0, сравниваем элемент а с элементом b n , если a = b n , то ind b a = п, в противном случае находим b п+1 = b n b и опять сравниваем элемент а с элементом b п+1 и т.д. Если число элементов поля 2 100 или больше, то количество операций (умножений), необходимое для вычисления дискретною логарифма произвольного элемента конечного поля в приемлемое время, чрезвычайно велико и находится за пределами возможностей современных вычислительных машин.

Алгоритм согласования

Теорема 1 . Пусть t , r - натуральные числа, r 2 t . Для любого целого l можно указать целые числа х и у такие, что

Доказательство . Можем предполагать, что
. Полагаем

С другой стороны.

Теорема 2 . Пусть G = < G, , 1 > -конечная группа; а и b элементы группы G ; t = ord b ;

(1.2)

Тогда число l можно найти, выполнив не более чем
операции умножения на элементы группы
G .

Доказательство . Полагаем
. Рассмотрим ряды

(1.3)

Если
разрешимо относительно l, представим l ввиде

Так как t = ord b , то b " = b xr+y = а в том и только в том случае, когда

, (1.5)

т.е. когда найдется элемент ряда (1.3), который совпадет с каким-нибудь членом ряда (1.4).

Нетрудно сосчитать число операций, позволяющих установить равенство (1.2). При вычислении элементов ряда (1.3) потребуется выполнить не более r-2 умножений. Для вычисления
в силу следующей леммы