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

Додаток г Алгоритм шифрування rsa

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

Принцип функціонування асиметричної криптосистеми полягає в наступному:

  • користувач А генерує два ключі - відкритий (незасекречений) і секретний - і передає відкритий ключ по незахищеному каналу користувачу Б;

  • користувач Б шифрує повідомлення, використовуючи відкритий ключ шифрування користувача А;

  • користувач Б посилає зашифроване повідомлення користувачу А по незахищеному каналу;

  • користувач А отримує зашифроване повідомлення і дешифрує його, використовуючи свій секретний ключ.

Пари {відкритий ключ; секретний ключ} обчислюються за допомогою спеціальних алгоритмів, причому жоден ключ не може бути виведений з другого.

Криптографічна система rsa (Rivest-Shamir-Adleman)

Авторами алгоритму RSA, запропонованого в 1977 р., є Р.Рівест (Rivest), А.Шамір (Shamir) і А.Адлеман (Adleman). Надійність алгоритму базується на складності факторизації (розкладення на множники) великих чисел і складності обчислення дискретних алгоритмів (знахождення x при відомих a, b і n із рівняння ax = b (mod n) ).

Алгоритм RSA складається з трьох частин: генерування ключів, шифрування і дешифрування.

  1. Генерування ключів.

Оберемо два великих різних простих числа p і q (Натуральне число називається простим, якщо воно ділиться тільки на себе і на 1.) та знайдемо їх добуток

n = pq .

Обчислимо функцію Ейлера (n) за формулою

(n) = (p-1)(q-1).

Закритий ключ d обираємо з умов

d < (n) і

d взаємно просте з (n),

тобто d і (n) не мають спільних дільників.

Відкритий ключ e обираємо з умов

e < (n) і

de = 1(mod (n)) .

Остання умова означає, що різниця de - 1 повинна ділитись на (n) без залишку. Для визначення числа e слід підібрати таке число k, що

de - 1 = (n)*k .

В алгоритмі RSA

( e, n ) – відкритий ключ,

( d, n ) – секретний ключ.

  1. Шифрування.

Вихідне повідомлення розбивається на блоки Mi однакової довжини. Кожен блок представляється у вигляді великого десяткового числа, менше n , і шифрується окремо. Шифрування блока M (M – десяткове число) здійснюється за наступною формулою

Me = C (mod n) ,

де C – шифрблок, що відповідає блоку відкритого повідомлення M. Шифрблоки з`єднуються в шифрограму.

  1. Дешифрування.

При дешифруванні шифрограма розбивається на блоки відомої довжини і кожен шифрблок дешифрується окремо за наступною формулою

Cd = M (mod n) .