Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie_algebra_I_Teoria_Chisel_1_30_el_uchebni...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
3.12 Mб
Скачать

Задачі до §10

1*. Довести властивості чисел Кармайкла (твердження 10.3).

2*. Нехай , де p, q – різні прості. Довести: , де . Виразити через d кількість основ, за якими п є псевдопростим Ферма.

(Вказівка: спочатку показати, що , ).

3. Довести: п – псевдопросте Ойлера за основою х п – псевдопросте Ферма за основою х.

4*. Нехай . Довести: п – сильно псевдопросте за основою хп – псевдопросте Ойлера за основою х.

5. Перевірити, чи є 91 псевдопростим Ферма та Ойлера за основою 3.

6. Знайти всі х, за якими є псевдопростими Ферма число 11 та число 15. За якими із знайдених основ вони також є псевдопростими Ойлера? Сильно псевдопростими?

7. Написати програму для знаходження найменшого псевдопростого Ферма за основами 5 і 2.

8. Довести: основи, за якими п є псевдопростим (Ферма, Ойлера), утворюють підгрупу в .

9. Перевірити, що число 65 є сильно псевдопростим за основами 8 та 18, але не є сильно псевдопростим за основою 14 = 818 mod 65. (Звідси, зокрема, випливає, що сильно псевдопрості числа не утворюють групу відносно операції множення за відповідним модулем.)

10. Довести, що якщо п не є числом Кармайкла, то воно псевдопросте не більш, ніж для половини основ з .

11. Довести, що будь-яке складене непарне число завжди буде псевдопростим Ферма, Ойлера та сильно псевдопростим за основами 1 та –1.

12. Довести властивості множин Ап, Вп, Сп, які в даному параграфі рекомендовані для самостійного доведення.

§11. Означення дискретного лОгАриФму. Алгоритм знаходження дискретного логарифму у мультиплікативній групі скінченНого поля Zp

Нехай р – просте число, g – утворюючий елемент Zp*.

Для будь-якого 1 <у – 1 ми можемо легко обчислити х gу mod р, за допомогою поліноміального алгоритму (методом бінарного піднесення до степеня).

Проте набагато складніше розв’язати обернену задачу: якщо відомі просте число р, елемент g, що є генератором Zp*, та х Zp*, , знайти таке у, що gу ≡ х (mod р). Така задача називається задачею дискретного логарифмування.

Означення 11.1: в наших позначеннях, число у називається дискретним логарифмом числа х за основою g (і модулем р), якщо gу ≡ х (mod р). Для дискретного логарифму використовується позначення у = ind(xgp), або у = ind(xg) = indg(x), якщо зрозуміло, про який модуль іде мова.

За наслідком 6.4 з теореми Ойлера, якщо gу ≡ х (mod р) і для деякого у1 виконується  у ≡ у1 (mod (р – 1)), то ≡ х (mod р). Тому заради однозначності вважатимемо, що 0 ≤ ind(x, g) < p – 1.

На сьогоднішній день задача дискретного логарифмування вважається, в загальному випадку, складною. Алгоритми дискретного логарифмування є субекспоненційними, час їх роботи приблизно такий, як і в алгоритмів, що розв’язують задачі факторизації.

Означення дискретного логарифму можна ввести в будь-якій циклічній групі, проте ми будемо вивчати знаходження дискретного логарифму лише в групі . В цьому випадку при деяких додаткових обмеженнях на модуль р задача дискретного логарифмування все ж таки може бути розв’язна за поліноміальний час. Алгоритми, що розв’язують задачу дискретного логарифмування, використовуючи додаткову інформацію про структуру циклічної групи або про вид числа р, називаються спеціальними. Алгоритми, що можуть бути застосовані для розв’язування задачі дискретного логарифмування у будь-якій циклічній групі, називаються загальними. На сьогоднішній день відомі лише експоненційні загальні алгоритми розв’язку цієї задачі.

Означення 11.2: натуральне число а назвемо s-гладким, якщо всі його прості дільники не перевищують s.

Твердження 11.3: нехай число р – 1 є s-гладким, s – його найбільший простий дільник. Тоді існує алгоритм розв’язку задачі дискретного логарифмування у групі , час роботи якого обмежено поліномом від max{s, log p}.

Алгоритм Сільвера – Поліга – Хеллмана

Вхід: x, g, pN, р просте число, х , g – генератор .

Вихід: у = ind(x, g, p).

Алгоритм працює наступним чином.

Розкладаємо р – 1 на прості множники. Оскільки за умовою дільники р – 1 не перевищують s, то це вимагатиме не більше за s·log p операцій ділення.

Нехай , де q – прості дільники числа р – 1.

Показник степеню у будемо знаходити наступним чином. Для кожного простого числа q, яке ділить р – 1, знайдемо лишок у·mod qα. Після цього у легко відновлюється за Китайською теоремою про лишки.

Отже, для деякого q з розкладу р – 1, розглянемо , де у правій частині записано розклад у·mod qα у q-ічній системі числення.

Нам необхідно визначити послідовність , утворену коефіцієнтами розкладу. Запишемо ; тоді

.

Звідси, з використанням малої теореми Ферма для модуля р і утворюючого елемента g: .

Перепишемо цей вираз у більш зручному вигляді:

. (11.1).

Знайдемо з останнього виразу у0, поклавши і = 0: .

Обчислюємо , і починаємо шукати у0 з останньої рівності методом перебору (тобто для кожного 0 ≤ j ≤ – 1 обчислюємо ; якщо = , то у0 = j).

Після цього можна аналогічно знайти у1, поклавши у (11.1) і = 1:

; .

Поетапно обчислюємо всі елементи послідовності та знаходимо у·mod qα.

Аналогічно проводимо описану процедуру для всіх простих чисел q, які є дільниками р – 1.

Після того, як знайдено у mod qα для всіх простих дільників числа р – 1, значення у відновлюється з системи порівнянь за Китайською теоремою про лишки.

Метод Сільвера-Поліга Хеллмана є поліноміальним детермінованим спеціальним алгоритмом, тобто пристосованим до групи зі спеціальною структурою. Субекспоненційні алгоритми, що відомі на сьогоднішній день, також є спеціальними – наприклад, найшвидший з алгоритмів, так званий "метод квадратичного решета". Також існує багато експоненційних, імовірнісних та детермінованих, загальних методів дискретного логарифмування (тобто придатних для роботи у довільній циклічній групі). Найпоширенішими з них є метод Шенкса (детермінований, експоненційний), який ще називають "Giant Step – Baby Step", та методи Полларда (імовірнісні, експоненційні).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]