Архів якісних рефератів

Знайти реферат за назвою:         Розширений пошук

Меню сайту

Головна сторінка » Інформатика, програмування

Призначення та побудова системи конфіденційного листування. Алгоритм шифрування RSA (контрольна робота)

Зміст

1.

Системи конфіденційного листування, їх призначення та побудова. Алгоритм шифрування RSA

3

2.

Практична частина. Розклад руху залізничного транспорту

20

Список використаної літератури

22

1. Системи конфіденційного листування, їх призначення та побудова. Алгоритм шифрування RSA

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

З = Ek1(M), М' = Dk2(C)

де: M (message) - відкрита інформація (вихідний текст); C (cipher text) - отриманий у результаті зашифрування шифротекст (чи криптограма); E (encryption) - функція зашифрування, що виконує криптографічні перетворення над вихідним текстом; k1 (key) - параметр функції E, називаний ключем зашифрування; М' - інформація, отримана в результаті розшифрування; D (decryp-tion) - функція розшифрування, що виконує зворотні зашифруванню криптографічні перетворення над шифротекстом; k2 - ключ, за допомогою якого виконується розшифрування інформації.

Для того, щоб результат розшифрування збігся з вихідним повідомленням (тобто щоб М' = M), необхідно одночасне виконання двох умов:

- функція розшифрування D повинна відповідати функції зашифрування E.

- ключ розшифрування k2 повинний відповідати ключу зашифрування k1.

Якщо для зашифрування використовувався криптостійкий алгоритм шифрування, то при відсутності правильного ключа k2 одержати М' = M неможливо. Криптостійкість - основна характеристика алгоритмів шифрування і вказує насамперед на ступінь складності одержання вихідного тексту з зашифрованого без ключа k2.

Алгоритми шифрування можна розділити на дві категорії: симетричного й асиметричного шифрування.

Для перших співвідношення ключів зашифрування і розшифрування визначається як k1 = k2 = k (тобто функції E і D використовують той самий ключ шифрування).

При асиметричному шифруванні ключ зашифрування k1 обчислюється по ключі k2 таким чином, що зворотне перетворення неможливе, наприклад, по формулі k1 = ak2 mod p (a і p - параметри використовуваного алгоритму).

Криптографія з відкритим ключем ідеальна для шифрування й розподілу ключів, автентифікації та ін. Симетрична криптографія ідеальна для шифрування файлів й каналів зв'язку.

1.1. Симетричне шифрування

В даний час найбільш відомий алгоритм симетричного шифрування DES (Data Encryption Standard), розроблений у 1977 р. Донедавна він був "стандартом США", оскільки уряд цієї країни рекомендувало застосовувати його для реалізації різних систем шифрування даних. Незважаючи на те, що споконвічно DES планувалося використовувати не більш 10-15 років, спроби його заміни почалися тільки в 1997 р.

Основна причина зміни стандарту шифрування - його відносно слабка криптостійкість, причина якої в тім, що довжина ключа DES складає усього 56 значущих біт. Відомо, що будь-який криптостійкий алгоритм можна зламати, перебравши всі можливі варіанти ключів шифрування. Легко підрахувати, що кластер з 1 млн. процесорів, кожний з який обчислює 1 млн. ключів у секунду, перевірить 256 варіантів ключів DES майже за 20 ч. А оскільки по нинішніх мірках такі обчислювальні потужності цілком реальні, ясно, що 56-битний ключ занадто короткий і алгоритм DES необхідно замінити на більш "сильний".

Сьогодні усе ширше використовуються два сучасних криптостійких алгоритми шифрування: вітчизняний стандарт ДСТ 28147-89 і новий криптостандарт США - AES (Advanced Encryption Standard).

Стандарт ДСТ 28147-89

Алгоритм, обумовлений ДСТ 28147-89 (рис.1.1), має довжину ключа шифрування 256 біт. Він шифрує інформацію блоками по 64 біт, що потім розбиваються на два субблоки по 32 біт (N1 і N2).

Субблок N1 обробляється певним чином, після чого його значення складається зі значенням субблоку N2 (додавання виконується по модулі 2, тобто застосовується логічна операція XOR - " що виключає чи"), а потім субблоки міняються місцями.

Рис.1.1. Схема алгоритму ДСТ 28147-89

Дане перетворення виконується визначене число раз ("раундів"): 16 чи 32 в залежності від режиму роботи алгоритму. У кожнім раунді виконуються дві операції.

Перша - накладення ключа. Вміст субблоку N1 складається по модулі 2 з 32-битною частиною ключа Kx. Повний ключ шифрування представляється у виді конкатенації 32-битних підключів: K0, K1, K2, K3, K4, K5, K6, K7. У процесі шифрування використовується один з цих підключів - в залежності від номера раунду і режиму роботи алгоритму.

Друга операція - таблична заміна. Після накладення ключа субблок N1 розбивається на 8 частин по 4 біт, значення кожної з яких заміняється відповідно до таблиці заміни для даної частини субблоку. Потім виконується побітове циклічне зрушення субблоку вліво на 11 біт.

Алгоритм, обумовлений ДСТ 28147-89, передбачає чотири режими роботи: 1) простої заміни, 2) гаммірування, 3) гаммірування зі зворотним зв'язком і 4) генерації імітоприставок. У них використовується описане вище шифроперетворення, але здійснюється це перетворення в кожному з режимів по-різному.

1. У режимі простої заміни для зашифрування кожного 64-битного блоку інформації виконуються 32 описаних вище раунди. При цьому 32-битні підключи використовуються в наступній послідовності:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 і т.д. - у раундах з 1-го по 24-й;

K7, K6, K5, K4, K3, K2, K1, K0 - у раундах з 25-го по 32-й.

Розшифрування в даному режимі проводиться точно так само, але з іншою послідовністю застосування підключів:

K0, K1, K2, K3, K4, K5, K6, K7 - у раундах з 1-го по 8-й;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 і т.д. - у раундах з 9-го по 32-й.

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

2. У режимі гаммірування кожен блок відкритого тексту побітно складається по модулі 2 із блоком гами шифру розміром 64 біт.

Гама шифру - це спеціальна послідовність, що виходить у результаті визначених операцій з регістрами N1 і N2: 1) у регістри N1 і N2 записується їхнє початкове заповнення - 64-битна величина (синхропосилка); 2) виконується зашифрування вмісту регістрів N1 і N2 (синхропосилки) у режимі простої заміни; 3) вміст регістра N1 складається по модулі (232 - 1) з константою C1 = 224 + 216 + 28 + 24, а результат додавання записується в регістр N1; 4) вміст регістра N2 складається по модулі 232 з константою C2 = 224 + 216 + 28 + 1, а результат додавання записується в регістр N2; 5) вміст регістрів N1 і N2 подається на вихід як 64-битий блок гами шифру.

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

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

У більшості реалізацій алгоритму ДСТ 28147-89 синхропосилка не секретна, однак є системи, де синхропосилка - такий же секретний елемент, як і ключ шифрування. Для таких систем ефективна довжина ключа алгоритму (256 біт) збільшується ще на 64 біт секретної синхропосилки, що також можна розглядати як ключовий елемент.

3. У режимі гаммірування зі зворотним зв'язком для заповнення регістрів N1 і N2, починаючи з 2-го блоку, використовується не попередній блок гами, а результат зашифрування попереднього блоку відкритого тексту (рис.1.2). Перший же блок у даному режимі генерується цілком аналогічно попередньому.

Рис.1.2. Створення гами шифру в режимі гаммірування зі зворотним зв'язком

4. У режимі генерації імітоприставок використовується так звана імітоприставка - криптографічна контрольна сума, що обчислюється із використанням ключа шифрування і призначена для перевірки цілісності повідомлень.

При генерації імітоприставки виконуються наступні операції: 1) перший 64-битний блок масиву інформації, для якого обчислюється імітоприставка, записується в регістри N1 і N2 і зашифровується в скороченому режимі простої заміни (виконуються перші 16 раундів з 32; 2) отриманий результат складається по модулі 2 з наступним блоком інформації зі збереженням результату в N1 і N2. Цикл повторюється до останнього блоку інформації. 64-битний вміст, що вийшов у результаті цих перетворень, регістрів N1 і N2 чи його частина і є імітоприставкою.

Розмір імітоприставки вибирається, виходячи з необхідної вірогідності повідомлень: при довжині імітоприставки r біт імовірність, що зміна повідомлення залишиться непоміченою, дорівнює 2-r.

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

Алгоритм ДСТ 28147-89 вважається дуже сильним алгоритмом - у даний час для його розкриття не запропоновано більш ефективних методів, чим згаданий вище метод "грубої сили". Його висока стійкість досягається в першу чергу за рахунок великої довжини ключа - 256 біт. При використанні секретної синхропосилки ефективна довжина ключа збільшується до 320 біт, а засекречування таблиці замін додає додаткові біти. Крім того, криптостійкість залежить від кількості раундів перетворень, яких за ДСТ 28147-89 повинно бути 32 (повний ефект розсіювання вхідних даних досягається вже після 8 раундів).

Стандарт AES

На відміну від алгоритму ДСТ 28147-89, що довгий час залишався секретним, американський стандарт шифрування AES, покликаний замінити DES, вибирався на відкритому конкурсі, який був оголошений у 1997 р. Національним інститутом стандартів і технологій США. На конкурс було представлено 15 алгоритмів-претендентів, розроблених як відомими в області криптографії організаціями (RSA Security, Counterpane і т.д.), так і приватними особами. Підсумки конкурсу були підведені в жовтні 2000 р.: переможцем був оголошений алгоритм Rijndael, розроблений двома криптографами з Бельгії, Вінсентом Ріджменом і Джоан Дайменом.

Алгоритм Rijndael не схожий на більшість відомих алгоритмів симетричного шифрування, структура яких зветься "мережа Фейстеля" і аналогічна російському ДСТ 28147-89.

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

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

Алгоритм Rijndael виконує чотири перетворення:

1) BS - таблична заміна кожного байта масиву;

2) SR - зсув рядків масиву. При цій операції перший рядок залишається без змін, а інші циклічно побайтно зсуваються вліво на фіксоване число байт, що залежить від розміру масиву. Наприклад, для масиву розміром 4´4 рядки 2, 3, 4 зсуваються відповідно на 1, 2, 3 байти.

3) MC - операція над незалежними стовпцями масиву, коли кожен стовпець за визначеним правилом збільшується на фіксовану матрицю c(x);

4) - додавання ключа. Кожен біт масиву складається по модулі 2 із відповідним цьому биту ключем раунду, що, у свою чергу, обчислюється з ключа шифрування.

У кожнім раунді над даними, що шифруються, по черзі виконуються перераховані перетворення: BS-SR-MC-AK. Виключення стосуються першого й останнього раундів: перед першим раундом додатково виконується операція AK, а в останньому раунді відсутнє MC. У результаті послідовність операцій при зашифруванні виглядає так: AK, {BS, SR, MC, AK} (повторюється R-1 раз), BS, SR, AK.

Кількість раундів шифрування (R) в алгоритмі Rijndael перемінна (10, 12 чи 14 раундів) і залежить від розмірів блоку і ключа шифрування (для ключа також передбачено кілька фіксованих розмірів).

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

Зворотна операція до SR - це циклічне зрушення рядків вправо, а не вліво.

Зворотна операція для MC - множення по тим же правилам на іншу матрицю d(x), що задовольняє умові: c(x) * d(x) = 1.

Додавання ключа AK є зворотним самому собі, оскільки в ньому використовується тільки операція XOR. Ці зворотні операції застосовуються при розшифровці у послідовності, зворотної тієї, що використовувалася при зашифруванні.

Rijndael став новим стандартом шифрування даних завдяки цілому ряду переваг перед іншими алгоритмами. Насамперед він забезпечує високу швидкість шифрування на всіх платформах: як при програмної, так і при апаратній реалізації. Його відрізняють незрівнянно кращі можливості розпаралелювання обчислень у порівнянні з іншими алгоритмами, представленими на конкурс. Крім того, вимоги до ресурсів для його роботи мінімальні, що важливо при його використанні в пристроях, що мають обмежені обчислювальні можливості.

Недоліком же алгоритму можна вважати лише властиву йому нетрадиційну схему.

1.2. Асиметричне шифрування

Алгоритми асиметричного шифрування, як уже відзначалося, використовують два ключі: k1 - ключ зашифрування (відкритий) і k2 - ключ розшифрування (секретний). Відкритий ключ обчислюється із секретного: k1 = f(k2).

Асиметричні алгоритми шифрування засновані на застосуванні односпрямованих функцій. Відповідно до визначення, функція y = f(x) є односпрямованою, якщо: 1) її легко обчислити для всіх можливих варіантів x; 2) для більшості можливих значень y досить складно обчислити таке значення x, при якому y = f(x).

Ще один важливий клас функцій, використовуваних в асиметричному шифруванні, - односпрямовані функції з таємним ходом: існує можливість ефективного обчислення зворотної функції x = f-1(y), якщо відомий "таємний хід" (значення секретного ключа). Ці функції використовуються в широко розповсюдженому алгоритмі асиметричного шифрування RSA.

Розглянемо більш докладно саме цей алгоритм асиметричного шифрування.

Алгоритм RSA

Перший алгоритм кодування з відкритим ключем (PKE) було запропоновано Вітфілдом Діффі та Мартіном Хелманом у Стенфордському університеті. Перевага PKE полягає у відсутності потреби секретної передачі ключа.

PKE базується на нерозв'язності проблеми розкладу натурального числа на прості множники.

RSA схему шифрування було запропоновано у 1978 році та названо іменами трьох його винахідників: Роном Рівестом, Аді Шаміром та Леонардом Адлеманом. RSA належить до класу алгоритмів кодування з відкритим ключем.

У 80-х роках криптосистема переважно використовувалася для забезпечення секретності та достовірності цифрових даних. У сучасному світі RSA використовується в web–серверах та браузерах для зберігання таємності даних що передаються по мережі, .

Схема RSA базується на обчисленні виразів зі степенями. Відкритий текст шифрується блоками, довжина кожного із яких менша за деяке число n.

Алгоритм генерації ключа

A повинен згенерувати відкритий та секретний ключі:

1. Згенерувати два великих простих числа p та q приблизно однакової довжини;

2. Обчислити n = p * q, fi = (p – 1) * (q – 1);

3. Вибрати натуральне e, 1 < e < fi, взаємно просте з fi;

4. Використовуючи розширений алгоритм Евкліда, розв'язати рівняння d * e1(mod fi).

Відкритий ключ: (n, e). Секретний ключ: d.

Схема шифрування RSA

B шифрує повідомлення m та надсилає A.

1. Шифрування. В робить наступні дії:

- отримає відкритий ключ (n, e) від А;

- представляє повідомлення у вигляді натурального числа m з проміжку [1..n];

- обчислює c = me mod n;

- надсилає шифротекст c до А.

2. Дешифрування. Для отримання повідомлення m із шифротексту c А робить наступні дії: використовуючи секретний ключ d, обчислює m = cd mod n.

Приклад

1. Оберемо два простих числа: p = 17, q = 19;

2. Обчислимо n = 17 ´ 19 = 323, fi = (p - 1) ´ (q - 1) = 16 ´ 18 = 288;

3. Оберемо e = 7 (НСД(e, fi) = 1) та розв'яжемо рівняння 7d1 (mod 288), звідки d = 247.

Побудовано RSA систему: p = 17, q = 19, n = 323, e = 7, d = 247.

Відкритий ключ: n = 323, e = 7, секретний ключ: d = 247.

1. m = 4. Кодування: 47 mod 323 = 234. Декодування: 234247 mod 323 = 4.

2. 2. m = 123. Кодування: 1237 mod 323 = 251. Декодування: 251247mod 323= 123.

Циклічна атака

За відомим шифром c (c = me mod n) злодій, маючи відкритий ключ e та n, бажає знайти повідомлення m. Він починає будувати послідовність чисел

c, ce, , , …

Оскільки обчислення відбуваються в групі Zn*, то елементи послідовності знаходяться в межах від 0 до n - 1. Отже існує таке натуральне k, що с = . Враховуючи що c = me mod n, маємо: me = або m = .

Таким чином для знаходження повідомлення m за його шифром c необхідно побудувати послідовність c, ce, , , …, , = c, і взяти її передостаннє число.

Приклад

Розв'язати рівняння: m7 mod 323 = 251.

e = 7, n = 323, c = 251.

k

 

0

251

1

310

2

47

3

4

4

234

5

123

6

251

З таблиці маємо: c = = 251. Оскільки me = , то m = = 123.

Атака методом осліплення

Припустимо, А має секретний ключ RSA системи, а Z – злодій, який перехопив шифр c і хоче декодувати його. При цьому А відмовляє видати Z вихідний текст m. Тоді Z обирає деяке значення bZn, обчислює c/ = be ´ c і просить А дешифрувати його.

А погоджується дешифрувати c/ своїм секретним ключем d, оскільки зміст повідомлення c/ йому ні про що не говорить і виглядає невинним. Отримавши m/ = cd mod n, злодій Z обчислює m = m/ / b і отримує шукане m. Шифром m дійсно є c, оскільки me = mе / be = cde / be = c/ / be = c.

Така атака можлива, оскільки А не знає повної інформації про шифр c/, який дає йому злодій Z.

Приклад.

Нехай А має RSA систему: p =17, q = 19, n = 323, e = 7, d = 247.

Злодій Z перехопив шифр c = 234 і хоче знайти таке m, що m7 = 234 mod 323.

1. Z обирає b = 10ÙZ323, обчислює c/ = 107 * 234 mod 323 = 14 і просить А дешифрувати його.

2. A обчислює m/ = 14247 mod 323 = 40 і передає його Z.

3. Z знаходить шукане повідомлення обчислюючи

m = 40 / 10 = 40 * 10-1 = 40 * 97 = 4 mod 323.

Таким чином 47 = 234 mod 323.

Прискорення дешифрування

За допомогою китайської теореми про лишки можна прискорити процес дешифрування, знаючи секретні прості числа p та q.

Дешифрування. А має декодуючу експоненту d, а також p та q (n = p * q). А отримує від В шифр с та повинен виконати операцію cd (mod n).

1. Обчислити dp = d mod (p - 1), dq = d mod (q - 1)

2. Обчислити mp = mod p, mq = mod q.

3. Розв'язати систему лінійних порівнянь

Розв'язком системи буде декодоване повідомлення: m = cd (mod n).

Приклад

Нехай RSA система має вигляд: p = 17, q = 19, n = 323, e = 7, d = 247.

Для розв'язку рівняння m7 mod 323 = 251 (c = 251) обчислимо 251247 mod 323:

1. dp = 247 mod 16 = 7, dq = 247 mod 18 = 13;

2. mp = 2517 mod 17 = 4, mq = 25113 mod 19 = 9;

3. Розв'яжемо систему лінійних порівнянь

Розв'язуючи її методом Гауса, отримаємо m = 123.

Отже 1237 mod 323 = 251.

Мала декодуюча експонента

Приклад.

Виберемо повідомлення m = 13 та зашифруємо його трьома різними RSA системами.

1. p = 5, q = 17, n = 85, e = 3, d = 57, m3 mod 85 = 72;

2. p = 11, q = 23, n = 253, e = 3, d = 169, m3 mod 253 = 173;

3. p = 17, q = 23, n = 391, e = 3, d = 261, m3 mod 391 = 242;

Для знаходження повідомлення m за відкритими ключами (ni, ei ) та перехопленими шифрами ci складемо систему порівнянь

Одним із її розв'язків буде x = 2197 = 133. Тобто шуканим повідомленням буде m = 13.

Неприховані повідомлення

Повідомлення m називається неприхованим, якщо його шифр дорівнює самому повідомленню, тобто me = m (mod n).

Наприклад, повідомлення m = 0 та m = 1 завжди є неприхованими для довільних значень e та m.

Кількість неприхованих повідомлень в RSA системі дорівнює

(1 + НСД(e - 1, p - 1)) * (1 + НСД(e - 1, q - 1))

Оскільки значення e - 1, p - 1 та q - 1 – парні, то НСД(e - 1, p - 1)2, НСД(e - 1, q - 1)2, а отже кількість неприхованих повідомлень завжди не менша за 9.

Використання алгоритму RSA як інструмент електронного підпису

Наприкінці звичайного листа або документа виконавець чи відповідальна особа зазвичай ставить свій підпис. Подібна дія зазвичай переслідує дві мети.

По-перше, одержувач має можливість переконатися в автентичності листа, звіривши підпис з наявним у нього зразком.

По-друге, особистий підпис є юридичним гарантом авторства документа.

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

Алгоритм RSA є найбільш простим і розповсюдженим інструментом електронного підпису.

А тепер розглянемо застосування алгоритму RSA для формування електронного цифрового підпису (далі – ЕЦП) на прикладі обчислення і перевірки електронного підпису (S) повідомлення M.

Перший крок - обчислення хеша повідомлення m = h(M), що потім шифрується на секретному ключі Ks (згадаємо, що при шифруванні по алгоритму RSA для зашифрування використовується публічний ключ).

Для алгоритму ЕЦП RSA S = mKs mod N.

Одержувач, що бажає перевірити значення S повідомлення M, також обчислює хеш повідомлення по формулі m = h(M) і розшифровує S за допомогою відкритого ключа Kp, використовуючи асиметричний алгоритм шифрування RSA, відповідно до вираження м' = SKp mod N.

Якщо м' = m, ЕЦП повідомлення визнається вірним. У противному випадку підпис вважається підробленим і робиться висновок про те, що цілісність повідомлення порушена.

Отже, у криптосистемі RSA секретний ключ використовується для обчислення ЕЦП чи для розшифрування повідомлень, а публічний - для перевірки ЭЦП чи зашифрування повідомлень.

Слід зазначити і ряд недоліків, властивих формуванню ЕЦП із використанням RSA, причому частина з них успадковані від використовуваного алгоритму шифрування RSA.

Серед останніх варто згадати про те, що ЕЦП RSA уразлива до мультиплікативної атаки, тобто алгоритм ЕЦП RSA дозволяє зловмиснику, навіть не знаючи секретний ключ Ks, обчислити підпис повідомлень, результат хеширування яких збігається з добутком результатів хеширування підписаних раніше повідомлень.

Розглянемо три повідомлення M1, M2 і M3, що мають наступні властивості:

m1 = h(M1), m2 = h(M2), m3 = h(M3)

m3 = m1 * m2 mod N

При цьому допустимо, що зловмисник має реальні підписи (тобто обчислені законним власником ключа Ks) повідомлень M1 і M2:

S1 = m1Ks mod N

S2 = m2Ks mod N

Тоді визначити підпис повідомлення M3 дуже легко:

S3 = S1 * S2 mod N,

оскільки

S1 * S2 mod N = mKs * m2Ks mod N = (m1 * m2)Ks mod N = m3Ks mod N = S3.

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

Існує і ще одна, не менш важлива проблема, яку можна віднести до недоліків застосування даного методу формування ЕЦП, - проблема нецільового використання секретного ключа.

Припустимо, серед знайомих деякого користувача - власника секретного ключа Ks завівся зловмисник. Під яким-небудь приводом цей шахрай просить користувача розшифрувати своїм ключем Ks по алгоритму асиметричного шифрування RSA деяке зашифроване повідомлення С. Довірливий користувач розшифровує це повідомлення за допомогою формули M = CKs mod N і відсилає результат (розшифроване повідомлення) зловмиснику.

На перший погляд, небезпеки ніякої немає. Однак при уважному розгляді видно, що M - це по суті значення ЕЦП повідомлення, хеш якого дорівнює C. Отже, легальний користувач поставив свій підпис під деяким повідомленням і відправив її зловмиснику.

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

Як міру протидії описаному тут трюку користувачам алгоритму RSA рекомендується застосовувати для власне асиметричного шифрування і для ЕЦП різні пари ключів, і неодмінно використовувати всі ключі тільки по призначенню.

Як згадувалося вище, у файлі, де зберігається ключ, існують додаткові поля, вміст яких несе в собі різну функціональність. Публічний ключ найбільш вживаного у світі формату (X.509 версії 3) обов'язково супроводжується кодом призначення ключа, тобто вказує, чи служить даний конкретний ключ ключем для асиметричного шифрування чи для формування ЕЦП.

Продовжуючи приклади ”зайвої довірливості”, припустимо, що ключ Ks, яким користувач розшифрував прислане зловмисником повідомлення C, має парний публічний ключ Kp. А в структурі останнього зазначено, що він призначений для асиметричного шифрування, але не для створення ЕЦП.

"Правильне” програмне забезпечення просто не дозволить застосовувати такий ключ для перевірки ЕЦП, а обчислена за допомогою ключа Ks ЕЦП ніколи не буде визнана вірною - через інше призначення ключа. А виходить, і підпис отриманий обманним шляхом. Можлива, звичайно, і помилка при створенні ЕЦП легального повідомлення, але в цьому випадку відправнику буде потрібно ще раз підписати повідомлення ключем, призначеним для ЕЦП.

Аналізуючи надійність криптосистеми RSA можна навести такий приклад.

Автори алгоритму RSA в 1977 році зашифрували англійське повідомлення "the magic words are squeamish ossifrage” ("магічні слова до нудоти закостенілі”). На початку кожна англійська літера була замінена її номером в англійській абетці – і таким чином було отримане дане повідомлення m у цифровій формі. Як публічний ключ було вибрано число n із 129 десятковими розрядами та число е = 9007. Ці два числа та зашифроване з їх допомогою повідомлення m були опубліковані. Крім того, повідомлялося, що число n є добутком двох простих чисел з 64 та 65 десятковими розрядами відповідно. Тому, хто перший дешифрує згадану фразу, була обіцяна символічна нагорода у 100 доларів США.

Тільки через 17 років (1994р.) це повідомлення було дешифроване. Факторизація числа n, яке було добутком двох різних простих чисел, вимагала величезних затрат. Роботою керували чотири автори проекту Д.Аткінс, М.Графф, А.Ленстра та П.Лейланд, які провели попередню теоретичну підготовку з приблизно 600 добровольцями. Ці люди працювали 220 днів і використали 1600 комп'ютерів, зв'язаних мережею Інтернет.

Найбільша швидкіcть реалізації RSA в 1000 разів повільніша, ніж DES. В 1989 році найбільші швидкоcті VKSI- реалізації дорівнювали приблизно 64 Kб/c. Зараз швидкість ~1 Мб/с. (для порівняння швидкість DES(ГОСТ) – від 10 до 100 Мб/с).

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

.


 

2. Практична частина

Для складання розкладу руху залізничного транспорту, використовуючи засоби Excel, (див. електронний Додаток до цієї роботи) складемо наступну аналітичну таблицю (таблиця 2.1).

Таблиця 2.1

Список використаної літератури

1. Бабичев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии. - М.: Горячая линия - Телеком, 2001. – 120 с.

2. Береза А.М. Основи створення інформаційних систем: Навч. посібник. 2 видання, перероблене і доповнене – К.: КНЕУ, 2001. – 472 с.

3. Інформатика: Комп'ютерна техніка. Комп'ютерні технології. Посіб. /За ред. О.І. Пушкаря - К.: Видавничий центр "Академія”, 2001. – 696 с.

4. Інформаційні системи і технології: навч. посібник / С.Г. Карпенко, В.В. Попов, Ю.А. Тарнавський, Г.А. Шпортюк. – К.: МАУП, 2004.

5. Носов В.В., Орлов П.И., Громыко И.А. Организация и обеспечение безопасности информации. Учебное пособие. - Харьков, 2004. – 141 с.

6. Столлингс В. Криптография и защита сетей: принципы и практика, 2-е издание.: Пер. с англ. - М.: Издательский дом "Вильямс”, 2001. – 672 с.

7. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях / Под ред. В.Ф. Шаньгина. - М.: Радио и связь, 1999. – 328 с.

8. Рябко. Б.Я., Фионов А.Н. Криптографические методы защиты информации: Учебник пособие для вузов. - М.: Горячая линия - Телеком, 2005. – 229 с.





Реферат на тему: Призначення та побудова системи конфіденційного листування. Алгоритм шифрування RSA (контрольна робота)


Схожі реферати



5ka.at.ua © 2010 - 2016. Всі права застережені. При використанні матеріалів активне посилання на сайт обов'язкове.    
.