Дискретное логарифмирование в группе — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Создание статьи (перенесена из Вычисление порядка элемента в группе))
 
Строка 1: Строка 1:
 
{{В разработке}}
 
{{В разработке}}
  
Рассмотрим конечную группу <math>G</math>. Для заданного <math>a</math> необходимо найти такое минимальное <math>n</math>, что <math>a^n=e</math>. <br>
+
Рассмотрим конечную группу <tex>G</tex>. Для заданного <tex>a</tex> необходимо найти такое минимальное <tex>n</tex>, что <tex>a^n=e</tex>. <br>
Теперь рассмотрим '''обобщенную задачу поиска порядка''', также называемую '''задачей дискретного логарифмирования''': для заданных <math>a</math> и <math>b</math> из группы найти такое минимальное <math>n</math>, что <math>a ^ n = b</math>. <br>
+
Теперь рассмотрим '''обобщенную задачу поиска порядка''', также называемую '''задачей дискретного логарифмирования''': для заданных <tex>a</tex> и <tex>b</tex> из группы найти такое минимальное <tex>n</tex>, что <tex>a ^ n = b</tex>. <br>
Очевидно, <math>n < |G| </math> (следует из принципа Дирихле). Пусть <math>m = \lceil |G| \rceil</math>. Будем искать <math>n</math> в виде <math>xm-y</math>, где <math>y \in 0 \dots m - 1</math> и <math>x \in 1 \dots m</math>.<br>
+
Очевидно, <tex>n < |G| </tex> (следует из принципа Дирихле). Пусть <tex>m = \lceil |G| \rceil</tex>. Будем искать <tex>n</tex> в виде <tex>xm-y</tex>, где <tex>y \in 0 \dots m - 1</tex> и <tex>x \in 1 \dots m</tex>.<br>
<math>a ^ n = a ^ {xm - y} = b</math> <br>
+
<tex>a ^ n = a ^ {xm - y} = b</tex> <br>
<math>a ^ {xm} = b a ^ {y}</math> <br>
+
<tex>a ^ {xm} = b a ^ {y}</tex> <br>
<math> {a ^ m} ^ x = b a ^ y </math> <br>
+
<tex> {a ^ m} ^ x = b a ^ y </tex> <br>
  
Далее мы выписываем все полученные выражения для левой и правой частей при всех допустимых <math>x</math> и <math>y</math> (или складываем в удобную структуру данных: отсортированный массив, хеш, дерево и т. д.). После чего ищем пересечение. Для каждого элемента одной части поиск в структуре данных для другой части (в случае с отсортированным массивом) занимает время <math>O(log |G|)</math>. Учитывая, что время на предварительную обработку <math>O(|G|)</math>, общее время работы алгоритма − <math>O(|G| log |G|)</math>.
+
Далее мы выписываем все полученные выражения для левой и правой частей при всех допустимых <tex>x</tex> и <tex>y</tex> (или складываем в удобную структуру данных: отсортированный массив, хеш, дерево и т. д.). После чего ищем пересечение. Для каждого элемента одной части поиск в структуре данных для другой части (в случае с отсортированным массивом) занимает время <tex>O(log |G|)</tex>. Учитывая, что время на предварительную обработку <tex>O(|G|)</tex>, общее время работы алгоритма − <tex>O(|G| log |G|)</tex>.
 +
 
 +
[[Категория: Теория групп]]

Версия 22:24, 29 июня 2010

Эта статья находится в разработке!

Рассмотрим конечную группу [math]G[/math]. Для заданного [math]a[/math] необходимо найти такое минимальное [math]n[/math], что [math]a^n=e[/math].
Теперь рассмотрим обобщенную задачу поиска порядка, также называемую задачей дискретного логарифмирования: для заданных [math]a[/math] и [math]b[/math] из группы найти такое минимальное [math]n[/math], что [math]a ^ n = b[/math].
Очевидно, [math]n \lt |G| [/math] (следует из принципа Дирихле). Пусть [math]m = \lceil |G| \rceil[/math]. Будем искать [math]n[/math] в виде [math]xm-y[/math], где [math]y \in 0 \dots m - 1[/math] и [math]x \in 1 \dots m[/math].
[math]a ^ n = a ^ {xm - y} = b[/math]
[math]a ^ {xm} = b a ^ {y}[/math]
[math] {a ^ m} ^ x = b a ^ y [/math]

Далее мы выписываем все полученные выражения для левой и правой частей при всех допустимых [math]x[/math] и [math]y[/math] (или складываем в удобную структуру данных: отсортированный массив, хеш, дерево и т. д.). После чего ищем пересечение. Для каждого элемента одной части поиск в структуре данных для другой части (в случае с отсортированным массивом) занимает время [math]O(log |G|)[/math]. Учитывая, что время на предварительную обработку [math]O(|G|)[/math], общее время работы алгоритма − [math]O(|G| log |G|)[/math].