§6. Первообразные корни и индексы. Порождающий элемент и дискретный логарифм. В этом параграфе рассмотрены теоретико-числовые основы, ведущие к задачам дискретного логарифмирования над конечным полем, а также приведены некоторые приложения теории конечных групп к таким вопросам как тесты на простоту и построение простых чисел. 6.1. Основные понятия и теоремы. При ( a, m)=1 существуют положительные γ с условием aγ≡1(mod m). Наименьшее из таких γ называется показатель, которому a принадлежит по модулю m. В том, что такие γ существуют, можно убедиться, вспомнив теорему Эйлера (γ=φ( m)). Возвращаясь к основам общей алгебры, в частности, к теории конечных групп, можно сказать, что показатель, которому которому a принадлежит по модулю m есть то же самое, что порядок элемента a в конечной мультипликативной группе m, · mod m>. Далее будем обозначать его Om(a).
Поскольку дальнейшие построения будут тесно связаны с группой m, · mod m>, то на протяжении текущего параграфа для краткости будем обозначать эту группу как Um.
Докажем несколько важных теорем, описывающих свойства Om(a):
Теорема 1.
Числа 1=a0, a1, a2, … , несравнимы между собой по модулю m.
Доказательство:
Действительно, из того, что al≡ak(mod m), 0 ≤ k < l < Om(a) следовало бы, что al—k≡1(mod m), 0 < k—l < Om(a), что противоречит определению Om(a).
Теорема 2.
Пусть δ= Om(a). Тогда aγ≡aβ (mod m) γ≡β(mod δ).
Доказательство:
Из теоремы 1 следует, что если aγ≡aβ (mod m) , то γ≡β(mod δ).
Пусть теперь γ≡β(mod δ) Тогда, по теореме делимости, найдутся такие числа q, w, r: 0 ≤ r < δ, что γ=δ·q+r, β=δ·w+r. Тогда из того, что aδ≡1(mod m) следует, что
aγ≡aδq+r≡(aq)δar≡ar(mod m)
aβ≡aδw+r≡(aw)δar≡ar(mod m)
Что и требовалось доказать.
Теорема 3.
Om(a)\φ(m).
Доказательство:
Следует из Теоремы 2 при β=0 и из теоремы Эйлера (aφ(m)≡1(mod m)).
Последняя теорема также может быть доказана как следствие из теоремы Лагранжа (порядок любого элемента в группе делит порядок группы) применительно к группе Um.
Числа, принадлежащие показателю φ(m) (если они существуют), называются первообразными корнями по модулю m.
Если a – первообразный корень по модулю m, то согласно Теореме 1, числа 1=a0, a1, a2, … , aφ(m)-1 несравнимы между собой по модулю m, а раз их φ(m) штук, то они образуют приведенную систему вычетов по модулю m. Тогда a есть ни что иное как порождающий элемент группы Um.
Утверждение
Если существует первообразный корень по модулю m, то мультипликативная группа Um является циклической группой.
Доказательство очевидным образом следует из вышесказанного.
Пример 1.
Рассмотрим группу U11=<{1,2,3,4,5,6,7,8,9,10},· mod m>. Порядок этой группы равен φ(11)=10. Найдем порядки всех элементов в этой группе и отыщем порождающий элемент этой группы, если он существует. Для краткости вместо ab mod 11 будем писать просто ab.
1: 10=1, 11=1. O11(1)=1.
2: 20=1, 21=2, 22=4, 23=8, 24=5, 25=10, 26=9, 27=7, 28=3, 29=6, 210=1. O11(2)=10.
3: 30=1, 31=3, 32=9, 33=5, 34=4, 35=1. O11(3)=5.
4: 40=1, 41=4, 42=5, 43=9, 44=3, 45=1. O11(4)=5.
5: 50=1, 51=5, 52=3, 53=4, 54=9, 55=1. O11(5)=5.
6: 60=1, 61=6, 62=3, 63=7, 64=9, 65=10, 66=5, 67=8, 68=4, 69=2, 610=1. O11(6)=10.
7: 70=1, 71=7, 72=5, 73=2, 74=3, 75=10, 76=4, 77=6, 78=9, 79=8, 710=1. O11(7)=10.
8: 80=1, 81=8, 82=9, 83=6, 84=4, 85=10, 86=3, 87=2, 88=5, 89=7, 810=1. O11(8)=10.
9: 90=1, 91=9, 92=4, 93=3, 94=5, 95=1. O11(9)=5.
10: 100=1, 101=10, 102=1. O11(10)=2.
Действительно, порядки всех элементов делят порядок группы. При этом в группе U11 нашлись порождающие элементы, причем не один, а четыре. Это 2, 6, 7 и 8. Однако не во всех группах Um существуют порождающие элементы, убедимся в этом на следующем примере:
Пример 2.
Рассмотрим группу U8=<{1,3,5,7},· mod 8>, φ(8)=4.
1: 10=1, 11=1. O8(1)=1.
3: 30=1, 31=3, 32=1. O8(3)=2.
5: 50=1, 51=5, 52=1. O8(5)=2.
7: 70=1, 71=7, 72=1. O8(7)=2.
Итак, в группе U8 нет порождающего элемента.
Возникает вопрос – в каких группах Um порождающий элемент существует, а в каких – нет, и как найти порождающий элемент? На этот вопрос ответим в следующих пунктах данного параграфа.
6.2. Существование первообразных корней по модулю p.
Лемма 1.
Om(x)=ab Om(xa)=b. Лемма 2.
Om(x)=a, Om(y)=b, (a,b)=1 Om(xy)=ab.
Доказательства этих лемм не представляют принципиальной сложности, поэтому предоставляются читателю в качестве упражнения. Теорема 1 (Критерий Люка).
В группе Up , p – простое число, существуют порождающие элементы.
Доказательство:
Действительно, пусть δ1, δ2, … , δr – все различные показатели, которым по модулю p принадлежат числа 1,2,…,p—1 (то есть порядки этих чисел в Up). Пусть τ=НОК(δ1,δ2,… ,δr), и τ= - каноническое разложение. Каждый множитель этого разложения делит хотя бы одно из чисел δ1,…,δr. Поэтому можем представить одно из таких чисел как δj=a . Пусть ξj – одно из чисел ряда 1, 2, … , p—1: Op(ξj)=δj.
Тогда, согласно Лемме 1, Op(η)= , где η= .
Согласно Лемме 2, Op(g)=τ= , где g=η1η2…ηk.
Поэтому, согласно Теореме 3, п.1, τ\(p—1).
Но поскольку числа δ1, δ2, … , δr делят τ, то любое из чисел ряда 1, 2, … , p—1 является решением сравнения xτ≡1(mod p), согласно Теореме 2, п.1.
Пользуясь Теоремой 1, §4, п.4, получаем p—1≤τ. Но τ как порядок элемента g не может быть больше, чем p—1, поэтому p—1=τ, а значит g – первообразный корень, или порождающий элемент группы Up .
6.3. Первообразные корни по модулям pα, 2pα.
Теорема (о существовании первообразного корня по модулю pα)
Пусть g – первообразный корень по модулю p, тогда существуют такое число t, что u= не делится на p, и тогда g+pt – первообразный корень по модулю pα α>1.
Замечание
Число u, заданное условием, является целым в силу теоремы Ферма. Действительно, поскольку g Up, то (g,p)=1 (g+pt,p)=1 по теореме Ферма, (g+pt)p—1≡1(mod p) p\((g+pt)p—1 –1).
Доказательство:
Имеем:
gp—1=1+pT0
(g+pt)p—1=1+p(T0—gp—2t+pT)=1+pu *
где если t пробегает Zp, то и u пробегает Zp (полную систему вычетов по модулю р). Поэтому существует такое t Zp, для которого u не делится на p. При таком t из (*) получаем:
(g+pt)p(p—1)=(1+pu)p=1+p2u2
………………………… **
где все ui, i=2,3,…α—1 не делятся на р.
Пусть . Тогда (g+pt)δ≡1(mod pα), откуда gδ≡1(mod p) (р—1)\δ , и δ\φ(рα)=рα—1(р—1) . Тогда δ имеет вид δ=рr—1(р—1), где 1≤ r ≤ α.
Но (*) и (**) показывают, что сравнение верно при r = α и неверно при r < α, то согласно Теореме 3 п.1., δ=рα—1(р—1) =φ(рα), и (g+pt) – первообразный корень по модулю рα.
Теорема 2.
Пусть g – первообразный корень по модулю рα, α≥1. Нечетное g0 из чисел g, g+рα будет первообразным корнем по модулю 2рα .
Доказательство:
Заметим, что g+рα будет являться первообразным корнем по модулю рα, а также φ(рα)=φ(2рα)=с. Нетрудно проверить, что сравнения g0r≡1(mod рα) и g0r≡1(mod 2рα) могут выполняться лишь одновременно. Первое сравнение выполняется при r=c и не выполняется при r<c (так как g0 – первообразный корень по модулю рα), следовательно второе сравнение верно при r=c и неверно при r<c. Значит g0 – первообразный корень по модулю 2рα.
Доказанные теоремы вкупе с теоремой о существовании первообразных корней по модулю p позволяют сделать следующий
Вывод: Существуют первообразные корни по модулям рα, 2рα для всех α. Если известен первообразный корень по модулю р, то, пользуясь Теоремами 1 и 2 настоящего пункта, можно найти первообразный корень по модулям рα, 2рα.
Пример.
p=71, наименьший первообразный корень по модулю 71 есть 7.
Найти первообразный корень по модулю 71α и 2·71α для всех α.
Согласно Теореме 1, нужно найти такое t, чтобы (g+pt)p—1—1 0(modp2).
Будем перебирать t:
t=0. g+pt=g=7.
770—1 mod 5041 = (710)7 –1 mod 5041 = 28147—1 mod 5041 =
= (28142)3 ·2814—1 mod 5041 = 42262·4226·2814—1 mod 5041=
= 3854·4226·2814 –1 mod 5041 = 1562 ≠ 0.
Итак, 7 – первообразный корень по модулю 71α для всех α.
Поскольку 7 – нечетное число, то, согласно Теореме 2, 7 - первообразный корень по модулю 2·71α для всех α. Вообще говоря, нам повезло, первое же испытанное число t подошло. В другом случае, возможно, пришлось бы перебирать несколько t, прежде чем отыскали бы первообразный корень.
Разумеется, мы не отыскали все первообразные корни по данному модулю. Алгоритмы нахождения их весьма трудоемки, особенно тогда, когда требуется найти все или несколько первообразных корней.
6.4. Нахождение первообразных корней по простому модулю.
В настоящем пункте будем рассматривать число n, причем n—1= * - каноническое разложение на простые сомножители.
Теорема
On(a)=n—1 1) an—1≡1(mod n);
2) , 1(mod n).
Доказательство:
Пусть On(a)=n—1. Тогда (1) выполняется в силу определения порядка элемента в группе. Кроме того, , 1 ≤ < n—1= On(a), откуда в силу определения порядка элемента, выполняется (2).
Пусть теперь выполнены (1) и (2). Покажем, что On(a)=n—1.
В силу (1), On(a)\(n—1). В силу (2), On(a) не делит . Значит, On(a)=n—1.
Результатами только что доказанной теоремы можно пользоваться для нахождения порождающего элемента группы Up, причем проверять стоит только второй пункт, так как первый для простого модуля выполняется автоматически согласно теореме Ферма. Кроме того, можно вывести правило: если a1, a2 не являются порождающими элементами группы Up, то a1a2 также не является порождающим элементом Up. Отсюда делаем вывод о том, что наименьший порождающий элемент группы Up – простое число.
Пример
p=71. p—1=70=2·5·7.
Для того чтобы a являлся порождающим элементом, необходимо и достаточно, чтобы выполнялись условия: a10 1(mod n), a14 1(mod n), a35 1(mod n).
Будем испытывать числа из U71. Вместо ab mod 71 для краткости будем писать ab.
2: 210 =30, 214 =54, 235=1. 2 не является порождающим элементом.
3: 310 =48, 314 =54, 335=1. 3 не является порождающим элементом.
5: 510 = 1. 5 не является порождающим элементом.
7: 710 =45, 714 =54, 735=70. 7 – порождающий элемент.
Итак, наименьший порождающий элемент группы U71 (или первообразный корень по модулю 71) есть 7.
6.5. Существование и количество первообразных корней. Первообразные корни существуют не для всякого модуля. Действительно, как было показано в Примере 2 п.1, не существует первообразных корней по модулю 8. Теорема 1
Первообразные корни по модулю m существуют m=2, 4, pα или 2pα, где p – простое нечетное число. Теорема 2
Количество первообразных корней по модулю m, если они существуют, есть φ(φ(m)). Пример:
Определить количество первообразных корней по модулю 10.
10 = 2·5=2р. Первообразные корни существуют. Найдем их количество.
φ(φ(10))=φ(4)=2.
Проверим результат. U10={1, 3, 7, 9}
O10(1)=1;
32=9, 33=7, 34=1. O10(3)=4=φ(10). 3 – первообразный корень.
72=9, 73=3, 74=1. O10(7)=4=φ(10). 7 – первообразный корень.
92=1. O10(9)=2.
Действительно, нашлись два первообразных корня по модулю 10. Теорема 3
Пусть с=φ(m), q1, q2, … , qk – различные простые делители с. Тогда g: (g,m)=1 – первообразный корень по модулю m не выполняется ни одно из сравнений , i=1,2,…,k.
■
Теорема, доказанная в предыдущем пункте, является частным случаем данной теоремы при простом n.
6.6. Дискретные логарифмы. Если g – первообразный корень по модулю m (порождающий элемент Um), то, если γ пробегает полную систему вычетов по модулю φ(m), то gγ пробегает приведенную систему вычетов по модулю m.
Для чисел a: (a,m)=1 введем понятие об индексе, или о дискретном логарифме.
Если a≡gγ (mod m), то γ называется индексом, или дискретным логарифмом числа а по основанию g по модулю m.
В теории чисел принято употреблять слово «индекс» и писать γ=indga, но в криптографии применяют сочетание «дискретный логарифм» и пишут γ=logga. Поскольку на протяжении настоящего пособия не раз встретится упоминание о так называемой задаче дискретного логарифмирования, будем употреблять последний вариант названия и написания. Тем более, что дискретные логарифмы обладают некоторыми свойствами логарифмов непрерывных:
Свойство 1: Дискретный логарифм разнозначен в полной системе вычетов по модулю φ(m).
Свойство 2: loggab…h≡logga+loggb+…+loggh (mod φ(m)).
Свойство 3: loggan≡nlogga(mod φ(m)).
Доказательство этих свойств не представляет сложности и является прямым следствием определений дискретного логарифма и первообразного корня.
6.7. Проблема Диффи-Хеллмана. Пусть даны простое число р и g - первообразный корень по модулю р. Существует полиномиальный алгоритм возведения числа в степень по любому модулю, поэтому задача вычисления x=gy mod p считается легкой задачей. Вычисление же обратной функции y=loggx mod (p—1) считают сложной задачей, поскольку на данный момент не найдено полиномиальных алгоритмов ее решения. Впрочем, не доказано и принципиальной невозможности построить такой алгоритм.
Проблема Диффи-Хеллмана – это формализация проблемы дискретного логарифмирования. Звучит она следующим образом:
Пусть известны p, α, δ, γ, где p – простое число, α – порождающий элемент группы Up, δ,γ Up.
Требуется найти: mod p.
Поскольку на данный момент задача дискретного логарифмирования не относится к числу решаемых за полиномиальное время, то проблема Диффи-Хеллмана считается сложной. Любая шифрсистема, чье дешифрование вычислительно эквивалентно решению данной проблемы, является условно стойкой.
6.8. Условная стойкость шифра Эль Гамаля.
Шифр ElGamal – симметричный шифр, основанный на теоретико-числовой проблематике. Напомним его конструкцию.
Параметры системы: p – простое число, α– порождающий элемент группы Up;
Закрытый ключ для расшифрования: a – целое число, 1 ≤ a < p—1;
Открытый ключ для шифрования: β = αa mod p.
Пусть имеется открытый тест x Up. Для шифрования берут случайное число k Zp—1 и вычисляются y1=αk mod p, y2=xβk mod p. Затем пара (y1,y2) пересылается обладателю секретного ключа, а k уничтожается.
Для расшифрования необходимо вычислить x=y2(y1a)-1mod p.
Действительно, в результате расшифрования получим открытый текст:
y2(y1a)-1mod p=xβk(αka) -1 mod p= xαak(αka) -1mod p=xα0 mod p=x.
Проблема дешифрования заключается в вычислении сообщения по шифрограмме без использования секретного ключа.
Теорема
Проблема дешифрования для шифра ElGamal и проблема Диффи-Хеллмана вычислительно эквивалентны.
Доказательство:
Действительно, пусть A есть алгоритм решения проблемы Диффи-Хеллмана,
A(p, α, δ, γ)= mod p.
Тогда дешифрование для шифра ElGamal осуществляется следующим образом:
x=y2A(p, α, y1, β)-1
(поскольку A(p, α, y1, β)= A(p, α, αk, αa)= mod p=αak mod p=β mod p).
Обратно, пусть B есть алгоритм дешифрования для шифра ElGamal, то есть
B(p, α, β, y1, y2)=x=y2(y1 )-1 mod p.
Тогда проблема Диффи-Хеллмана решается следующим образом:
δ =B(p, α, γ, δ, 1)-1
|