Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект ТСО ( 1 часть)посл..doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
5.2 Mб
Скачать

Лекція 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. Нехай з умови леми. Нехай також

де канонічне розкладання чисел й , має вигляд

Тоді для будь-якого , взаємно простого з і задовольняючій умовам

частка повідомлень , для яких не кратна числу НОД , не перевищує .

Доказ. Аналогічно теоремі Поклінгтона можна показати, що , для Отже , а також при таким чином,

НОК .

Аналогічно одержуємо

НОК .

Звідси НОК .

Відповідно до леми, частка , для яких виконується умова , становить не менш

Оскільки, для таких повинне бути

,

одержуємо необхідне. Теорема доведена.

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

Тому умови теореми нескладно забезпечуються невеликою модифікацією процедури генерації простих чисел і не вимагають більших витрат на гарантування їхнього виконання.

Контрольні питання та задачі

  1. Дати означення сильного простого числа.

  2. Навести приклади використання сильних простих чісел в криптографії.

  3. Навести оцінки складності побудови сильних простих чісел в криптографії.