Дайджест последних достижений в области криптографии. Выпуск первый. Вычисление дискретного логарифма

  • Глава 6. ВЫБОР ДОЛГОВРЕМЕННОГО КЛЮЧА АЛГОРИТМА ГОСТ 28147-89
  • 6.1. Область сильных ключей
  • 6.1.1. Достаточность условия равновероятности псевдогаммы для выбора сильного блока подстановки
  • 6.2. Контроль долговременного ключа алгоритма ГОСТ 28147-89
  • 6.2.1. Угроза внедрения слабых параметров
  • 6.2.2. Подход к выявлению слабых долговременных ключей
  • 6.2.3. Свойства теста
  • 6.2.4. Тестирование долговременного ключа
  • Глава 7. ЭЛЕМЕНТЫ ТЕОРИИ СРАВНЕНИЙ
  • 7.1.1. Расширенный алгоритм Эвклида
  • 7.2. Модульная арифметика
  • 7.2.1. Функция Эйлера и малая теорема Ферма
  • 7.3. Сравнения первой степени от одного неизвестного
  • 7.3.1. Китайская теорема об остатках
  • 7.3.2. Степенные сравнения по простому модулю
  • Глава 8. ВЫЧИСЛЕНИЕ КВАДРАТНОГО КОРНЯ В ПРОСТОМ ПОЛЕ
  • 8.1.1. Символ Лежандра
  • 8.1.2. Символ Якоби
  • 8.2. Алгоритм нахождения квадратного корня в простом поле
  • 9.1. Построение криптосистемы RSA. Идея цифровой подписи
  • 9.2. Смешанные криптосистемы. Протокол Диффи-Хэллмана ключевого обмена
  • 9.3. Цифровая подпись Эль-Гамаля
  • 9.3.1. Криптосистема Эль-Гамаля
  • 9.3.2. Механизм цифровой подписи Эль-Гамаля
  • 9.3.3. Ослабление подписи Эль-Гамаля вследствие некорректной реализации схемы
  • 9.3.4. Варианты цифровой подписи типа Эль-Гамаля
  • 10.1 Обозначения и постановка задачи
  • 10.2. Построение корней из единицы в поле
  • 10.3. Алгоритм дискретного логарифмирования
  • 10.3.1. Пример вычисления дискретного логарифма
  • 10.4. Фальсификация подписи Эль-Гамаля в специальном случае выбора первообразного элемента и характеристики поля
  • 10.4.1. Слабые параметры в подписи Эль-Гамаля
  • Глава 11. МЕТОДЫ ФАКТОРИЗАЦИИ ПОЛЛАРДА
  • 11.2.1. Оценка вероятности выбора критической пары
  • 11.2.2. Оптимизация выбора критической пары
  • Глава 12. НЕКОТОРЫЕ СЛУЧАИ ОСЛАБЛЕНИЯ КРИПТОСИСТЕМЫ RSA
  • 12.1. Атаки на RSA, не использующие факторизацию модуля
  • 12.2. Атаки на RSA, использующие факторизацию модуля
  • 12.2.1. Алгоритм факторизации Диксона
  • Глава 13. ТЕСТ ФЕРМА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
  • 13.1. Решето Эратосфена и критерий Вильсона
  • 13.2. Тест на основе малой теоремы Ферма
  • 13.2.1. Основные свойства псевдопростых чисел
  • 13.2.2. Свойства чисел Кармайкла
  • 13.2.3. (n-1) - критерий Люка
  • 13.2.3. Понятие о последовательностях Люка. (n+1) - критерий Люка
  • Глава 14. ТЕСТЫ СОЛОВЕЯ-ШТРАССЕНА И РАБИНА-МИЛЛЕРА ПРОВЕРКИ ЧИСЕЛ НА ПРОСТОТУ
  • 14.1. Тест Соловея-Штрассена
  • 14.1.1. Эйлеровы псевдопростые числа
  • 14.2. Тест Рабина-Миллера
  • 14.2.1. Сильно псевдопростые числа
  • Глава 15. ПОСТРОЕНИЕ БОЛЬШИХ ПРОСТЫХ ЧИСЕЛ
  • 15.1. Детерминированный тест, основанный на обобщенном критерии Люка
  • 15.1.1. Теорема Поклингтона
  • 15.1.2. Обобщение критерия Люка
  • 15.2. Детерминированный тест, основанный на теореме Димитко
  • Глава 16. ВЫБОР ПАРАМЕТРОВ КРИПТОСИСТЕМЫ RSA
  • 16.1. Общие требования к выбору параметров
  • 16.2. Метод Гордона построения сильно простых чисел
  • 16.3. Пример построения сильно простого числа
  • Глава 17. ОБЩИЕ СВЕДЕНИЯ ОБ ИНОСТРАННЫХ КРИПТОСРЕДСТВАХ
  • 17.1. Аппаратные криптосредства
  • 17.2. Основные принципы построения систем управления ключами
  • 17.2.1. Ключевые системы потоковых шифров
  • 17.3. Блочные шифры в смешанных криптосистемах
  • 17.3.2. Смешанная криптосистема на основе алгоритмов RSA и IDEA
  • ЗАКЛЮЧЕНИЕ
  • ЛИТЕРАТУРА
  • 130 Глава 10. АЛГОРИТМ СИЛЬВЕРА - ПОЛЛИГА - ХЭЛЛМАНА

    Запись показателя в виде дроби корректна, поскольку один из сомножителей числителя, а именно u , делится наp , т.е. дробь является обычным целым числом.

    Очевидно, r p p , j = b ju = 1 , следовательно, элементыr p , j - корни степениp

    из единицы. Аналогичным образом заполним все строки таблицы R .

    Дальнейшая работа сводится к вычислениям, в результате которых появляются элементы, являющиеся корнями степени p из единицы в поле.

    Для каждого такого элемента будет необходимо определить его позицию

    j (номер колонки) в строке таблицыR с меткой

    Поскольку в каждой строке элементы различны, то для данного числа

    соответствующую ему позицию мы определим однозначно.

    Для этого,

    конечно, мы должны быстро просмотреть строку таблицы R ,

    что возможно, поскольку число q − 1 - гладкое.

    10.3. Алгоритм дискретного логарифмирования

    Предположим, что x представлен в

    p -ичной системе счисления. Тогда

    его вычет по

    модулю p a

    имеет вид

    x = x

    X p +K+x

    a− 1

    p a − 1 modp a ,

    0 ≤x i ≤p −1 .

    Обозначим

    y0 = y.

    определения

    x k,

    k = 0, K , a− 1 ,

    предложим следующую процедуру, которую обсудим позже.

    Прежде всего, определяем x

    как позицию

    y u p

    в строке с номером p

    таблицы R .

    Алгоритм дискретного логарифмирования 131

    k > 0 коэффициентx k

    определяем как позицию элемента

    yk u

    p k+ 1

    yk = y0

    b h(k) ,

    h(k) = x+ x p+K+ x

    p k− 1 .

    k − 1

    Повторив процедуру

    делящего

    q − 1 ,

    получаем

    значения

    x modp a ,

    помощью китайской

    остатках

    восстанавливаем x mod (q − 1 ) .

    Обоснуем процедуру определения x k .

    Вычислим y 0 u p . Очевидно,

    y 0 u p-

    корень степени

    p из единицы, причем

    y u p= y u

    p = b xu p= b x0 u p+ (x− x0 ) u

    x − x

    X p +K+x

    a− 1

    p a − 1.

    Кроме того, число x 0 u

    p является целым, т.к.u делится на

    В выражении (x − x 0 ) u p оба сомножителя делятся на

    p . Разделив на

    сомножитель,

    получаем,

    что (x − x

    p = ku,

    B x 0 u

    Сравнив с обозначением r

    p , получаем, чтоy u p

    j = x.

    Это позволяет определить

    Как позицию

    y u p в строке таблицы

    R с

    меткой p .

    Уничтожим теперь x

    в показателе степени b x ,

    разделив

    b x 0.

    Обозначим результат через y 1 :y 1 = y 0 b x 0 p 0 и вычислимy 1 u p 2 = b u (x − x 0 ) p 2 .

    члены, кроме ux 1 p p 2 , кратныu и на значениеb u (x − x 0 ) p 2 не влияют.

    132 Глава 10. АЛГОРИТМ СИЛЬВЕРА - ПОЛЛИГА - ХЭЛЛМАНА

    Поскольку u делится на

    также целое,

    откуда y u

    p2 = b x1 u p= r

    j = x . Таким образом,

    x равен позиции

    y u p2

    в строке с меткой p таблицыR .

    Для определения

    уничтожим

    в показателе степени b x − x 0 , разделив

    b x1 p1 .

    b x0 p0 + x1 p1

    B d ,

    d = x2 p2 +K+ xa − 1 pa − 1 .

    Вычисляем y u p 3

    B x2 u p= r

    j = x , что позволяет определитьx

    по таблице R и т.д., пока не определимx a − 1 .

    10.3.1. Пример вычисления дискретного логарифма

    В поле F 37 , приb = 2 , найти дискретный логарифм элемента 28.

    Решение. Задача сводится к решению в поле F

    уравнения 28 = 2 x .

    q = 37

    является

    степенью

    простого

    числа, поэтому

    операции в поле совпадают с операциями в поле вычетов по модулю 37, в частности, деление есть умножение на обратный элемент.

    u = q − 1= 36= 22 32 ,

    следовательно,

    имеем два

    делителя: 2 и 3.

    Составим таблицу

    со строки с меткой p = 2 .

    Вычислим

    B j (q − 1 )2

    для j = 0,1

    2 (q − 1 ) 2 ≡ −1 (37 ) .

    2, j

    Элементами строки с меткой 3

    являются числа:

    B j (q − 1 )3 ,

    j = 0,1,2,

    3, j

    т.е. r 3,0 = 1 ,r 3,1 = 2 36 3 ≡ 26 (37 ) ,r 3,2 = 2 2 36 3 ≡ 2 24 ≡ 10 (37 ) . ТаблицаR имеет следующий вид.

    Алгоритм дискретного логарифмирования 133

    Таблица 4. Корни из единицы степеней 2 и 3

    Найдем вычет

    x = x

    X p +K+x

    a− 1

    pa − 1

    mod p a ,

    при p = 2 ,a = 2 .

    Число шагов равно

    a = 2 . Итак, необходимо определить

    x 0 , x 1 . Найдемx 0 .

    Вычислим y 0 u p = 28 18 ≡ 1 (37 ) . Позиция единицы в строке 2 таблицыR равна

    0, следовательно, x 0 = 0 .

    Вычислим y ,

    уничтожив член с

    в показателе числа b x :

    y = y

    b x0 p0 .

    Поскольку x

    то y = y .

    Возводим y

    в степень u

    p 2,

    p 2= 4 :

    y u 4= 28 36 4= − 1 (37 ) .

    Позиция числа (-1) в строке 2 таблицыR равна 1, следовательно,

    x 1= 1 .

    Итак x = x 0 + x 1 p = 2 mod 4.

    Найдем вычет

    x mod p a , при

    p = 3 ,a = 2 . Число шагов равноa = 2 .

    y 0 u p = 28 12 ≡ 26 (37 ) . Позиция

    26 в строке 3 таблицы

    следовательно,

    x = 1 , поэтому

    y = y

    b x 0 p 0 = 14.

    Возводим

    в степень

    p 2,

    p 2= 9 :

    y u9

    1436 9 = 10(37) ,

    следовательно x 1 = 2 . Итак,

    x = 7 mod9.

    Z p r Z

    134 Глава 10. АЛГОРИТМ СИЛЬВЕРА - ПОЛЛИГА - ХЭЛЛМАНА

    систему сравнений x = 2 mod4 ,x = 7 mod9 :9 − 1 (4 ) = 1 ,

    4− 1 (9) = 7,

    x ≡ 2 9(9− 1 mod 4) + 7 4(4− 1 mod 9) = 214, т.е.

    x ≡ 34 mod36.

    10.3.2. Логарифмирование в группе единиц кольца вычетов по модулю pr .

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

    существует первообразный элемент γ , степени которого представляют все вычеты, взаимно простые с модулем. Эти вычеты образуют вмультипликативную группуU (p r ) изϕ (p r ) элементов (т.н. группу единиц).

    Можно показать , что если γ p - первообразный корень в поле

    GF (p ) , то одно из чиселγ = γ p + kp , гдеk { 0,1 } , удовлетворяет условию

    (γ p + kp ) p − 1 ≠ 1 (mod p 2 ) и является первообразным корнем по любому модулюp α ,α > 1 . Заметим, что пары чиселa ,p , для которых выполняется соотношениеa p − 1 = 1mod p 2 , встречаются редко. Поэтому будем считать, что

    γ = γp .

    Таким образом, любой из ϕ (p r ) = p r − 1 (p − 1 ) вычетовb U (p r ) можно

    представить в виде b = γ x mod p r .

    Алгоритм дискретного логарифмирования в группе единиц… 135

    Соответственно, задача дискретного логарифмирования в группе единиц кольца Z p r Z состоит в определении вычетаx поmod ϕ (p r ) , исходя изb и

    γ .

    К сожалению, использование модуля p r не дает преимуществ, поскольку

    при наличии эффективного алгоритма логарифмирования в простом поле

    GF (p ) логарифмирование в группе единиц кольца вычетов по модулюp r ,r > 1 , практически всегда можно осуществить, воспользовавшись свойствами так называемого обобщенного отношения ФермаL m (a ) .

    Областью определения отображения L m (a ) является группаU (m )

    вычетов по модулю m , взаимно простых с модулем. По теореме Эйлера,

    существует λ :a ϕ (m ) − 1 = λ m . ЗначениеL m (a ) определяется как вычет числаλ по модулюm :L m (a ) = a ϕ (m m ) − 1 (mod m ) .

    Легко убедиться, что отношение Ферма обладает следующими замечательными свойствами.

    Lm (ab) = Lm (a) + Lm (b)(mod m) ,

    Lm (a+ mc) = Lm (a) + ϕ (m) ca- 1 (mod m) ,

    где a, b U(m) , c ZmZ.

    r > 1 . Заметим,

    что в этом случае,

    (a+ mc) = L(a) + (pr − pr − 1 ) ca- 1 (mod m) = L(a) (mod pr − 1 ) .

    образом, если a ≡ b (mod m ) , то

    L (a) ≡ L(b) (mod pr − 1 ) .

    L (γ ) = 0(modp r − 1 ) ,

    определения

    L (γ ) следует, что

    γ ϕ (m ) = 1(modp 2 r − − 2 r 1 , т.е.

    r 1 , что противоречит

    Если L

    (γ )= 0 (mod m ), то

    (γ ) = 0(modp r 1 ) и r 1 .

    Аналогично, при L

    (γ ) = pt (modp r 1 ) ,

    получаем

    γ ϕ (m ) = 1(modp r + 1 ) ,

    что невозможно, т.к. ϕ (p r + 1 ) > ϕ (m ) .

    Таким образом, элемент L m (γ )

    p и, следовательно,

    обратим по модулю p r 1 .

    Рассмотрим задачу логарифмирования

    в группе единиц кольца

    Z mZ ,

    эффективный алгоритм

    логарифмирования в кольце

    известен.

    Из соотношения b = γ x mod p r

    b = γ x mod p,

    известно значение x по модулю

    p 1 . Если мы найдемx (mod p r 1 ) , то

    значение

    по модулю ϕ (m ) = p r 1 (p 1 )

    можно вычислить по китайской

    теореме об остатках.

    Очевидно,

    что значение x (mod p r 1 )

    легко определить

    из сравнения

    L (b) = xL(γ ) (mod pr 1 ) .

    необходимо

    вычислять

    значения

    h = Lm (a) (mod pr 1 ) .

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

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

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

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

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

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

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

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

    Валентина:

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

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

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

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

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

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

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

    А теперь - собственно, определение логарифма:

    Логарифм по основанию a от аргумента x - это степень, в которую надо возвести число a , чтобы получить число x .

    Обозначение: log a x = b , где a - основание, x - аргумент, b - собственно, чему равен логарифм.

    Например, 2 3 = 8 ⇒ log 2 8 = 3 (логарифм по основанию 2 от числа 8 равен трем, поскольку 2 3 = 8). С тем же успехом log 2 64 = 6 , поскольку 2 6 = 64 .

    Операцию нахождения логарифма числа по заданному основанию называют логарифмированием. Итак, дополним нашу таблицу новой строкой:

    2 1 2 2 2 3 2 4 2 5 2 6
    2 4 8 16 32 64
    log 2 2 = 1 log 2 4 = 2 log 2 8 = 3 log 2 16 = 4 log 2 32 = 5 log 2 64 = 6

    К сожалению, далеко не все логарифмы считаются так легко. Например, попробуйте найти log 2 5 . Числа 5 нет в таблице, но логика подсказывает, что логарифм будет лежать где-то на отрезке . Потому что 2 2 < 5 < 2 3 , а чем больше степень двойки, тем больше получится число.

    Такие числа называются иррациональными: цифры после запятой можно писать до бесконечности, и они никогда не повторяются. Если логарифм получается иррациональным, его лучше так и оставить: log 2 5 , log 3 8 , log 5 100 .

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

    Перед нами - не что иное как определение логарифма. Вспомните: логарифм - это степень , в которую надо возвести основание, чтобы получить аргумент. Именно основание возводится в степень - на картинке оно выделено красным. Получается, что основание всегда находится внизу! Это замечательное правило я рассказываю своим ученикам на первом же занятии - и никакой путаницы не возникает.

    С определением разобрались - осталось научиться считать логарифмы, т.е. избавляться от знака «log». Для начала отметим, что из определения следует два важных факта:

    1. Аргумент и основание всегда должны быть больше нуля. Это следует из определения степени рациональным показателем, к которому сводится определение логарифма.
    2. Основание должно быть отличным от единицы, поскольку единица в любой степени все равно остается единицей. Из-за этого вопрос «в какую степень надо возвести единицу, чтобы получить двойку» лишен смысла. Нет такой степени!

    Такие ограничения называются областью допустимых значений (ОДЗ). Получается, что ОДЗ логарифма выглядит так: log a x = b ⇒ x > 0 , a > 0 , a ≠ 1 .

    Заметьте, что никаких ограничений на число b (значение логарифма) не накладывается. Например, логарифм вполне может быть отрицательным: log 2 0,5 = −1 , т.к. 0,5 = 2 −1 .

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

    Теперь рассмотрим общую схему вычисления логарифмов. Она состоит из трех шагов:

    1. Представить основание a и аргумент x в виде степени с минимально возможным основанием, большим единицы. Попутно лучше избавиться от десятичных дробей;
    2. Решить относительно переменной b уравнение: x = a b ;
    3. Полученное число b будет ответом.

    Вот и все! Если логарифм окажется иррациональным, это будет видно уже на первом шаге. Требование, чтобы основание было больше единицы, весьма актуально: это снижает вероятность ошибки и значительно упрощает выкладки. Аналогично с десятичными дробями: если сразу перевести их в обычные, ошибок будет в разы меньше.

    Посмотрим, как работает эта схема на конкретных примерах:

    Задача. Вычислите логарифм: log 5 25

    1. Представим основание и аргумент как степень пятерки: 5 = 5 1 ; 25 = 5 2 ;
    2. Составим и решим уравнение:
      log 5 25 = b ⇒ (5 1) b = 5 2 ⇒ 5 b = 5 2 ⇒ b = 2 ;

    3. Получили ответ: 2.

    Задача. Вычислите логарифм:

    Задача. Вычислите логарифм: log 4 64

    1. Представим основание и аргумент как степень двойки: 4 = 2 2 ; 64 = 2 6 ;
    2. Составим и решим уравнение:
      log 4 64 = b ⇒ (2 2) b = 2 6 ⇒ 2 2b = 2 6 ⇒ 2b = 6 ⇒ b = 3 ;
    3. Получили ответ: 3.

    Задача. Вычислите логарифм: log 16 1

    1. Представим основание и аргумент как степень двойки: 16 = 2 4 ; 1 = 2 0 ;
    2. Составим и решим уравнение:
      log 16 1 = b ⇒ (2 4) b = 2 0 ⇒ 2 4b = 2 0 ⇒ 4b = 0 ⇒ b = 0 ;
    3. Получили ответ: 0.

    Задача. Вычислите логарифм: log 7 14

    1. Представим основание и аргумент как степень семерки: 7 = 7 1 ; 14 в виде степени семерки не представляется, поскольку 7 1 < 14 < 7 2 ;
    2. Из предыдущего пункта следует, что логарифм не считается;
    3. Ответ - без изменений: log 7 14.

    Небольшое замечание к последнему примеру. Как убедиться, что число не является точной степенью другого числа? Очень просто - достаточно разложить его на простые множители. Если в разложении есть хотя бы два различных множителя, число не является точной степенью.

    Задача. Выясните, являются ли точными степенями числа: 8; 48; 81; 35; 14 .

    8 = 2 · 2 · 2 = 2 3 - точная степень, т.к. множитель всего один;
    48 = 6 · 8 = 3 · 2 · 2 · 2 · 2 = 3 · 2 4 - не является точной степенью, поскольку есть два множителя: 3 и 2;
    81 = 9 · 9 = 3 · 3 · 3 · 3 = 3 4 - точная степень;
    35 = 7 · 5 - снова не является точной степенью;
    14 = 7 · 2 - опять не точная степень;

    Заметим также, что сами простые числа всегда являются точными степенями самих себя.

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

    Некоторые логарифмы встречаются настолько часто, что имеют специальное название и обозначение.

    Десятичный логарифм от аргумента x - это логарифм по основанию 10, т.е. степень, в которую надо возвести число 10, чтобы получить число x . Обозначение: lg x .

    Например, lg 10 = 1; lg 100 = 2; lg 1000 = 3 - и т.д.

    Отныне, когда в учебнике встречается фраза типа «Найдите lg 0,01», знайте: это не опечатка. Это десятичный логарифм. Впрочем, если вам непривычно такое обозначение, его всегда можно переписать:
    lg x = log 10 x

    Все, что верно для обычных логарифмов, верно и для десятичных.

    Натуральный логарифм

    Существует еще один логарифм, который имеет собственное обозначение. В некотором смысле, он даже более важен, чем десятичный. Речь идет о натуральном логарифме.

    Натуральный логарифм от аргумента x - это логарифм по основанию e , т.е. степень, в которую надо возвести число e , чтобы получить число x . Обозначение: ln x .

    Многие спросят: что еще за число e ? Это иррациональное число, его точное значение найти и записать невозможно. Приведу лишь первые его цифры:
    e = 2,718281828459...

    Не будем углубляться, что это за число и зачем нужно. Просто помните, что e - основание натурального логарифма:
    ln x = log e x

    Таким образом, ln e = 1 ; ln e 2 = 2 ; ln e 16 = 16 - и т.д. С другой стороны, ln 2 - иррациональное число. Вообще, натуральный логарифм любого рационального числа иррационален. Кроме, разумеется, единицы: ln 1 = 0.

    Для натуральных логарифмов справедливы все правила, которые верны для обычных логарифмов.

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

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

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

    Похожие публикации