
- •Лекція 1
- •Лекція 2 Алгоритм Евкліда. Розширений алгоритм Евкліда. Складність алгоритмів. Складність операцій додавання і віднімання.
- •Лекція 3 Використання модульної арифметики. Обчислення з многочленами. Методи множення. Складність обчислень. План.
- •Лекція 4 Складність розв’язання систем рівнянь.
- •Лекція 5 Тестування чисел на простоту. Імовірнісні алгоритми з однобічною помилкою. Складність алгоритмів.
- •Контрольні питання та завдання
- •Лекція 6 Тестування чисел на простоту. Алгоритми з імовірнісним часом виконання. Детерміновані алгоритми. Складність алгоритмів.
- •Лекція 7 Побудова великих простих чисел.
- •Лекція 8 Побудова великих простих чисел.
- •Лекція 9 Складність алгоритмів факторизации.
- •Лекція 10 Складність алгоритмів факторизации.
Лекція 8 Побудова великих простих чисел.
План
1. Метод Маузера (продовження).
2. Сильні прості числа і їхнє застосування в криптографії.
3. Побудова сильних простих чисел.
У практичних додатках генерація простих чисел виконується швидко .
1. Генерується випадкове - бітове число .
2. Установлюється старший і молодший біт рівними 1.( Старший біт гарантує необхідну довжину простого числа, а молодший - забезпечує його непарність 0.
3. Переконуються, що не ділиться на малі прості числа 3,5,7,11, і т.д. у багатьох реалізаціях перевіряється подільність на всі прості числа, менші 256. Найбільш надійна перевірка подільністю на всі прості числа, менші 2000
( Ленстра А.К.).
4. виконується тест Рабіна – Міллера для деякого випадкового . Якщо проходить тест, генерують інше випадкове й повторюють тест. Для прискорення обчислень обирають невеликі значення. Виконайте п'ять тестів, описаних в J.A. Gordon Strong Primes are Easy to Find Якщо не проходить один з тестів генеруйте інше й т.д.
Інший шлях – не генерувати випадкове число , а послідовно перебирати числа, починаючи з випадково обраного числа, поки не знайдеться просте число.
Етап 3 не обов'язковий,
але бажаний. Перевірка подільності
випадкового непарного числа
на 3,5 й 7 відтинає 54% непарних чисел ще
до етапу 4. Перевірка подільності на всі
прості числа, менші 100, відкидає 76%
непарних чисел, перевірка подільності
на всі прості числа, менші 256, виключає
80% непарних чисел. У загальному випадку,
частка непарних чисел, які не діляться
на жодне просте число, менше
,
дорівнює
.
Чим більше тестуємо число
,
тим більше попередніх обчислень потрібно
виконати до тесту Рабіна – Міллера.
Теорема 1. Нехай
- просте й
,
і
де
- різні прості числа. Тоді ймовірність
того, що випадково обрана підстава
в лемі 7.1 буде доводити простоту числа
,дорівнює
Доказ. Тому
що
-
просте, то порівняння
виконується при всіх
. При
умова
при всіх
рівносильно тому, що порядок елемента
ділиться на
Застосовуючи лему 4 при
одержуємо потрібну рівність.
Наслідок. В умовах теореми, при досить великих як нижня оцінка ймовірності успіху одержуємо величину
.
Тому що , тоді шукана оцінка випливає з нерівності
,
де у випадку
виконується рівність.
У. Маурер запропонував
наступний рекурсивний алгоритм побудови
великих простих чисел ( уперше ідея
методу викладена в 1991 р.). У ньому на
кожному кроці алгоритму беруться вже
побудовані на попередньому етапі прості
числа
й для випадкового набору показників
обчислюється число
. Потім випадково підбираються числа
так, щоб
і число
при якомусь
задовольняло умові лем 1 або 2 лекції 7.
За часом даний алгоритм виявляється
дуже ефективним, тому що якщо
- просте, тоді в силу доведеної теореми
і її наслідку число
знаходиться дуже швидко. Якщо ж число
- складене, то ймовірність виконання
рівності
для декількох баз
мала, якщо тільки
не є числом Кармайкла., тобто є числом
дуже спеціального виду. При цьому,
отримані в результаті роботи алгоритму
прості числа будуть мати практично
рівномірний розподіл. У. Маурер був
фактично першим, хто запропонував й
обґрунтував використання випадкового
пошуку разом з достатніми умовами
простоти, що дозволило будувати доказово
прості числа.
Багато криптографічних
алгоритмів вимагають формування великих
простих чисел. До таких алгоритмів
належить й несиметрична криптосистема
RSA (
застосовується як у режимі шифрування
так й у режимі ЕЦП).
Цей криптоалгоритм ви будете вивчати
пізніше. Скажемо тільки, що криптографічна
стійкість цього алгоритму заснована
на труднощі задачі факторизації. Щоб
виключити можливість застосування
деяких методів факторизації на числа
й
(великі прості числа), які необхідно
формувати на першому кроці алгоритму,
накладають обмеження. ( дивиться також
лекцію 6). Це обмеження полягає в тому,
що числа
не повинні містити у своєму розкладанні
маленьких простих співмножників і
містити як співмножник хоча б одне
велике просте число. Найбільш сильна
вимога, сформульована Райвестом в 1978
р., полягає в тому, щоб числа
були простими, причому числа
й
також не повинні розкладатися в добуток
маленьких простих чисел, а повинне
містити в якості одного з дільників
велике просте число.
Визначення.
Просте число
називається
сильним простим, якщо виконуються умови
де
- великі прості числа.
З огляду на те, що числа
й
повинні бути непарними, одержуємо, при
деяких
виконані рівності
Дж. Гордон запропонував в 1984 р. алгоритм генерації таких чисел.
Крок 1. Будуємо прості
випадкові числа
й
.
Для побудови кожного з них використовується
наступний метод. Фіксуємо випадкове
число
,
що має потрібне число знаків, і за
допомогою пробних ділень залишаємо в
інтервалі
тільки ті числа, які не мають маленьких
дільників. Перевіряємо числа, що
залишилися, на простоту одним з тестів
простоти.
Крок 2. Будуємо просте
число
виду
перебором чисел
в
інтервалі
,
використовуючи аналогічно кроку 1
просівання за допомогою пробних ділень
на маленькі прості числа й застосовуючи
потім до чисел, що залишилися, тести
простоти.
Крок 3. Обчислюючи число
,
і припускаємо
Перебором чисел
здійснюємо перевірку чисел виду
доти, поки не спрацює один з тестів
простоти.
В основі даного алгоритму лежить наступна теорема.
Теорема
2.
(Гордон). Якщо
- непарні прості числа, тоді число
задовольняє умовам
у тому і тільки в тому випадку,
коли воно має вигляд
,
де
Доказ. У силу малої теореми Ферма маємо
Звідси, з огляду на те, що
,
,
одержуємо
Тому числа - є шуканими.
Покажемо, що інших чисел,
що задовольняють даній умові немає.
Якщо
- таке число, то
Звідси
Виходить,
,
і число
має вигляд
Теорема доведена.
Ще однією можливою слабкістю
вибору чисел
й
у системі
може бути наявність великої кількості
елементів
,
що представляють відкриті повідомлення
й мають малий порядок
.
У цьому випадку для знаходження невідомого
повідомлення
можна змінити метод ітерації процесу
зашифрування
,
доти , поки не виконається умова
і, отже,
Мінімальне число кроків до
одержання
дорівнює
Виходить, для безпеки зашифрування,
необхідно вимагати, щоб для майже всіх
і
величина
була досить великою.
Приведемо достатню умову, доведено в 1995 р. Маурером, що гарантує стійкість щодо методів, що використовують ітерацію процесу зашифрування.
Лема. 1.
Нехай
й
,
де канонічне розкладання чисел
,
.
Тоді частка
відкритих повідомлень
,
для яких
,
що задовольняють нерівності
Доказ.
Скористаємося вже відомою оцінкою.
Тому що за умовою
безпосередньо
треба, що НОК
,
одержуємо
що й доводить лему.
Теорема 3.
Нехай
з умови леми. Нехай також
де канонічне розкладання
чисел
й
,
має вигляд
Тоді для будь-якого
,
взаємно простого з
і задовольняючій умовам
частка
повідомлень
,
для яких
не кратна числу НОД
, не перевищує
.
Доказ.
Аналогічно теоремі Поклінгтона можна
показати, що
,
для
Отже
,
а також
при
таким чином,
НОК
.
Аналогічно одержуємо
НОК
.
Звідси НОК
.
Відповідно до леми, частка
,
для яких виконується умова
,
становить не менш
Оскільки, для таких повинне бути
,
одержуємо необхідне. Теорема доведена.
Дана теорема показує, що умова
Рівеста про те, щоб для великого простого
дільника
числа
число
також мало великий простий дільник, не
є необхідним для захисту від методу з
використанням ітерації процесу
зашифрування. Для генерації чисел
й
,
що дають достатню стійкість щодо цього
методу, можна використати метод Маурера
побудови простих чисел. Він носить
рекурсивний характер і для генерації
й
використаються генеровані на першому
рівні рекурсії раніше числа
й
,
які у свою чергу будуються по генерованим
раніше на другому рівні рекурсії числам
й
.
Відповідно до теореми для забезпечення
високої стійкості щодо методу ітерирування
процесу зашифрування досить взяти
попарно взаємно прості числа
й
,
а як експонента шифрування
взяти число
,
що використалося для доказу простоти
чисел за допомогою теореми Поклінгтона
й
на другому рівні рекурсії.
Тому умови теореми нескладно забезпечуються невеликою модифікацією процедури генерації простих чисел і не вимагають більших витрат на гарантування їхнього виконання.
Контрольні питання та задачі
Дати означення сильного простого числа.
Навести приклади використання сильних простих чісел в криптографії.
Навести оцінки складності побудови сильних простих чісел в криптографії.