Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 19. Методи захисту інформ..docx
Скачиваний:
5
Добавлен:
20.09.2019
Размер:
83.89 Кб
Скачать

Малюнок 19.1 Шифрування відкритим ключем

У системах шифрування з відкритим або асиметричним ключем (public/ assymmetric key) використається два ключі.  Один із ключів, називаний відкритим, несекретним використається для шифрування повідомлень, які можуть бути розшифровані тільки за допомогою секретного ключа, наявного в одержувача, для якого призначене повідомлення. Або для шифрування повідомлення може використатися секретний ключ і якщо повідомлення можна розшифрувати за допомогою відкритого ключа, то дійсність відправника буде гарантована (система електронного підпису). Цей принцип винайдений Уітфілдом Діффі (Whitfield Diffie) і Мартіном Хелманом (Martin Hellman) в 1976 р. 

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

Серед несиметричних алгоритмів найбільш відомий RSA, запропонований Роном Рівестом (Ron Rivest),  Аді Шаміром (Adi Shamir) і Леонардом Эдлманом (Leonard Adleman). Розглянемо його більш докладно.

Шифрування з використанням алгоритму RSA

Завдання, покладене в основу методу полягають у тому, щоб знайти таку функцію y=f(x), щоб одержання зворотної функції  x=f-1(y) , було б  у загальному випадку дуже складним завданням (NP-повним завданням), однак, якщо знати якусь секретну інформацію, то зробити це істотно простіше. Такі функції також називають однобічними функціями з лазівкою або потайным ходом.  Наприклад,  одержати добуток двох чисел n=p*q просто, а розкласти n на множники, якщо p і q досить більші прості числа, складно.

  1. Першим  кроком у використанні алгоритму RSA є генерація ключів. Для цього потрібно:

  2. Вибрати два дуже більших простих числа p і q.

  3. Обчислити  добуток n= p*q.

  4. Вибрати велике випадкове число d, що  не має загальних співмножників із числом (p-1)*(q-1).

  5. Визначити число e, щоб виконувалося (e*d) mod ((p-1)*(q-1))=1.

Тоді відкритим ключем  будуть числа e і n,  а секретним ключем - числа  d і n.

Тепер, щоб зашифрувати дані по відомому ключі {e,n}, необхідно зробити наступне:

  • Розбити шифруемый текст на блоки,  де i-й блок може бути представлений у вигляді числа m(i)=0,1,2..., n-1. Їх повинне бути не більше n-1.

  • Зашифрувати текст, розглянутий як послідовність чисел m(i) по формулі c(i)=(m(i)e)mod n.

Щоб розшифрувати ці дані, використовуючи секретний ключ {d,n}, необхідно  обчислити: m(i) = (c(i)d) mod n. У результаті буде отримана безліч чисел m(i), які являють собою  частина вихідного тексту.

Наприклад, зашифруємо й розшифруємо повідомлення AБВ, що представимо, як послідовність чисел  123 (у діапазоні 0-32)

  • Вибираємо p=5 і q=11 (числа насправді повинні бути більшими).

  • Знаходимо n=5*11=55

  • Визначаємо (p-1)*(q-1) = 40. Тоді d буде дорівнює, наприклад 7.

  • Виберемо e, виходячи з (e*7) mod 40=1. Наприклад, e=3.

Тепер зашифруємо повідомлення, використовуючи відкритий ключ {3,55}

  • C1 = (13) mod 55 = 1

  • C2 = (23) mod 55 = 8

  • C3 = (33) mod 55 = 27

Тепер розшифруємо ці дані, використовуючи закритий ключ {7,55}.

  • M1 = (17) mod 55 = 1

  • M2 = (87) mod 55 = 2097152mod 55 =  2

  • M3 = (277)mod 55 = 10460353203 mod 55 = 3

Таким чином, всі, дані розшифровані.

Отже, ми з'ясували, що сучасна криптографія містить у собі наступні великі розділи:

  • Симетричні криптосистемы.

  • Криптосистемы з відкритим ключем.

  • Системи електронного підпису.

  • Керування ключами,

а основні напрямки  використання криптографічних методів - передача конфіденційної інформації з каналів зв'язку (наприклад, електронна пошта), установлення дійсності переданих повідомлень, зберігання інформації (документів, баз даних) на носіях у зашифрованому виді.