Сучасні інформаційні технології/4. Інформаційна безпека
К.т.н. Цепенюк М. І., Цепенюк Н.М.
Тернопільський державний технічний університет імені Івана Пулюя, Україна
Факторизація
довгих цілих в криптографії: ймовірнісний підхід
Перший конкретний алгоритм для відкритого шифрування запропонували в
1978р. Райвест, Шамір, та Ейдлман [1]. Ця криптографічна система називається RSA
(Rivest-Shamir-Adleman) і вона широко використовується і по нині. Стійкість
системи обумовлюється складністю факторизації
(розкладу на множники) деякого довгого цілого числа n (>512 біт) у загальному випадку, тобто без будь-яких додаткових припущень про вигляд цього числа. Таким
чином, розкриття RSA являє собою наступну задачу:
дано , знайти .
Наразі невідомий ефективний (поліноміальний)
алгоритм розв’язання цієї задачі [2]
В класичних працях П.
Л. Чебишева, Сільвестра, Ерміта та ін. була отримана відома оцінка для (див. [2]) - кількості простих
чисел, що передують числу х:
.
Оскільки найменший дільник числа n не
перевищує ,
то
при факторизації методом прямого перебору потрібно
буде ділити n в граничному випадку на перших простих чисел. Проте,
для факторизації чисел довжиною 60 десяткових знаків
і більше, такий підхід неприйнятний. Більше того, алгоритм повинен задовільно
працювати для складного загального випадку – число n є добутком лише двох
простих чисел, причому кожне із них є порядку . Розв’язати таку задачу можна лише за допомогою розподілених
систем факторизації [1] із використанням
спеціалізованих алгоритмів. Варіант такої системи ми побудували на основі Pollard-Rho алгоритму [2].
Нехай p - найменший простий співмножник числа n. Також
нехай в результаті випадкового генерування чисел вдалося отримати такі цілі a
та b (a>b>0), що
mod
p
. (1)
Тоді, очевидно, число
p є дільником a-b і може бути отримане обчисленням НСД(a‑b,n).
Таким чином, факторизацію n можна звести до знаходження двох чисел a та b, що дають при діленні на p однакові
остачі. За принципом Діріхле, це завжди можна
зробити, породивши p+1 різних чисел.
Отримати такі a та b з великою
ймовірністю можна значно раніше. Задамося числом r (r<p) і оцінимо ймовірність того,
що, породивши випадковим чином r різних чисел, ми отримаємо їх усіх із різними
остачами при діленні на p (невідоме p). Ця
ймовірність, як показав Феллер (див. [2]), V(r, p),
залежна від r та p, рівна
V(r,p)===
= .
Оцінимо логарифм цієї
ймовірності:
ln V(r,p)=, в останній викладці використовується нерівність .
При рості r
ймовірність V(r,p) падає швидко: при r=, маємо, ln V=-1/2, V=; а при r=, V=.
Відповідно,
ймовірності знайти a та b, які задовольняють (1), рівні 0,39 та 0,63. Оскільки , є хороші шанси факторизувати n за спроб.
Результатом нашої
роботи є побудова розподіленої системи для факторизації
довгих цілих на основі паралельної модифікації алгоритму Pollard-Rho [2]. Система працює в середовищі Windows NT і використовує відповідні
мережні можливості цієї ОС. Середовище
зв’язку в нашому випадку являє собою швидкісну локальну мережу (LAN), яка
сполучає кілька десятків(сотень) робочих станцій. На кожній із цих станцій запускається
свій процес(модуль факторизації), що реалізує
алгоритм Полларда. Одна з робочих станцій вибирається
в якості керуючої консолі, призначеної для узгодженого функціонування інших та
збору результатів факторизації за допомогою протоколу
DCOM [3].
Проведені дослідження
підтвердили ефективність роботи системи. Так, факторизація
числа n=5191268089719664430892809=77158673929*67280421310721 тривала 28451
кроків. Факторизація проводилася із використанням
одного факторизуючого модуля і зайняла 9 секунд на
комп’ютері Pentium™ 1000MHz. Інші отримані результати
приведені в таблиці:
n |
p |
q |
К-сть ітерацій |
5191268089719664430892809 18446744073709551617 2286227974369 439125228929 |
67280421310721 274177 18837001 65537 |
77158673929 67280421310721 121369 6700417 |
28451 6120 1457 679 |
1. О. В. Вербіцький. Вступ до криптології//
ВНТЛ.- Львів, 1998.-357 с.
2. Д. Кнут.
Искусство программирования для ЭВМ. - Т. 2. - М.: Мир, 1977.- 724 с.
3. Э. Рофейл, Я. Шохауд. COM и COM+.
Полное руководство. ТОО «Век», 2000.- 584 с.