Материал: Забезпечення інформаційної безпеки за допомогою криптогрфії

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Симетричні криптоалгоритми поділяються на:

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

.1 Скремблер - це набір біт, які міняються на кожному кроці по визначеному алгоритму. Після виконання кожного наступного кроку на його виході з’являється шифруючий біт (0 або 1), який накладається на поточний біт.

. Блочні шифри - перетворення блоку вхідної інформації фіксованої довжини. Схема застосовується при пакетній передачі інформації та кодування файлів.

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

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

Переваги:

Швидкість

Простота реалізації (за рахунок більш простих операцій)

Необхідна менша довжина ключа для порівнянної стійкості

Вивченість (за рахунок більшого віку)

Недоліки:

Складність управління ключами у великій мережі. Це означає квадратичне зростання числа пар ключів, які треба генерувати, передавати, зберігати і знищувати в мережі. Для мережі в 10 абонентів потрібно 45 ключів, для 100 вже 4950, для 1000-499500.

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

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

Важливою властивістю симетричних шифрів є неможливість їх використання для підтвердження авторства, так як ключ відомий кожній стороні. [4]

Найпоширеніші методи шифрування

Шифр Цезаря:

Шифр Цезаря - симетричний алгоритм шифрування підстановками. Використовувався римським імператором Юлієм Цезарем для приватного листування.

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

Якщо зіставити кожному символу алфавіту його порядковий номер (нумеруючи з 0), то шифрування і дешифрування можна виразити формулами:


де  - символ відкритого тексту,

 - символ шифрованого тексту,

 - потужність алфавіту,

 - ключ.

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

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

Також зламати шифр Цезаря також можна, як і звичайний підстановочний шифр, у зв’язку з тим, що частота появи кожної літери в шифртексті збігається з частотою появи у відкритому тексті. Якщо припустити, що частота появи літер у відкритому тексті приблизно відповідає середньостатистичній відносній частоті появи літер в текстах мови, на якій написано повідомлення, тоді ключ знаходиться зіставленням перших декількох літер, що трапляються найчастіше у відкритому та зашифрованому текстах. Тобто за допомогою методу частотного криптоаналізу. [5]

Шифр Віженера: поліалфавітний шифр <#"862778.files/image011.gif"> і  приблизно 512 біт завдовжки кожне; обчислюється їх добуток

;

обчислюється функція Ейлера

;

вибирається ціле  таке, що  та  взаємно просте з ;

за допомогою розширеного алгоритму Евкліда знаходиться число  таке, що

;

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

Для того, щоб зашифрувати повідомлення  обчислюється

.

Число  використовується в якості шифротексту. Для розшифрування потрібно обчислити


Неважко переконатися, що при розшифруванні ми відновимо вихідне повідомлення:


З умови


випливає, що

для деякого цілого , отже


Згідно з теоремою Ейлера:

,

тому

працює значно повільніше симетричних алгоритмів. Для підвищення швидкості шифрування відкритий показник  вибирається невеликим, звичайно 3, 17 або 65537 (2 обрати не можна, бо  повинно бути взаємно простим із ). Ці числа у двійковому вигляді містять тільки по дві одиниці, що зменшує число необхідних операцій множення при піднесенні до степеня. Наприклад, для піднесення числа  до степеня 17 потрібно виконати тільки 5 операцій множення:

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

Значення секретного показника  повинне бути досить великим. У 1990 році Міхаель Вінер показав, що якщо  і , то є ефективний спосіб обчислити  по  і . Однак, якщо значення  вибирається невеликим, то  виявляється досить великим і проблеми не виникає.

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

Через низьку швидкість шифрування (близько 30 кбіт/сек при 512 бітному ключі на процесорі 2 ГГц), повідомлення звичайно шифрують за допомогою продуктивніших симетричних алгоритмів з випадковим ключем (сеансовий ключ), а за допомогою RSA шифрують лише цей ключ.

Алгоритм електронного цифрового підпису Ель Гамаля (EGSA):

Надійний та зручний для реалізації на персональних комп’ютерах алгоритм цифрового підпису був розроблений у 1984 році американцем арабського походження Тахером Ель Гамалем. У 1991 році Національний інститут стандартів (НІСТ) США обґрунтував перед комісією Конгресу США вибір цього алгоритму як бази для відповідного національного стандарту. Найменування EGSA має походження від слів El Gamal Signature Algorithm(алгоритм цифрового підпису Ель Гамаля). Ідея EGSA базується на тому, що для практичної неможливості фальсифікації ЕЦП може бути використана практично нерозв’язувана задача дискретного логарифмування.

Алгоритм: 1. Перший користувач вибирає випадкове секретне число k, взаємно просте з Р-1, і обчислює число A^k mod P2. Потім застосовуємо алгоритм Евкліда для значення b рівнянні:

m = (X1 * а +k * b) mod (P-1)

Пара чисел (а, b) буде цифровим підписом повідомлення m.3. Повідомлення m разом з підписом (а, b) відправляється користувачеві 2.4. Користувач 2 отримує повідомлення m і з використанням відкритогоключа першого абонента Y1 обчислює два числа за наступними формулами

с1=Y1^a * a^b mod P,= A^m mod P

Якщо с1 = с2, то цифровий підпис першого користувача вірний.

Приклад обчислення і перевірки цифрового підпису: Маємо наступні загальні параметри: Р = 43, А = 23. Один з користувачів підписує своє повідомлення m=15 цифровим підписом, сформованим по алгоритму Ель Гамаля. Спочатку він обирає собі закритий ключ Х1=7 і формує відкритий ключ:

= 23^27 mod 41 = 4.

Відкритий ключ передаємо іншим партнерам. Потім обираємо випадкове секретне число до, взаємно просте з Р-1. Нехай k=12. Далі обчислюємо число

= A^k mod P = 23^13 mod 41 = 31

Потім за допомоою алгоритму Евкліда знаходиться b в рівнянні:

= (X1 * а +k * b) mod (P-1) = 15=7 * 31+13 * 6 mod 40

Рішенням буде значення b=6.Таким чином, пара чисел (31, 6) буде цифровим підписом повідомлення m=15.Потім інший партнер перевіряє цифровий підпис в повідомленні(за бажанням): він отримує отримує відкритий ключ першого користувача та обчислює с1 і с2 і порівнює їх.

с1=Y1^a * a^b mod P=23^7 * 31^6 mod 41=40,= A^m mod P= 23^15 mod 41= 40

Якщо с1 = с2, то цифровий підпис в повідомленні m=15 вірний. [8]

Алгоритм Диффі-Хеллмана

Припустимо, що обом абонентам відомі деякі два числа g і p (наприклад, вони можуть бути «зашиті» в програмне забезпечення), які не є секретними і можуть бути відомі також іншим зацікавленим особам. Для того, щоб створити невідомий більш нікому секретний ключ, обидва абонента генерують великі випадкові числа: перший абонент - число a, другий абонент - число b. Потім перший абонент обчислює значення A = gamod p і пересилає його друга, а другий обчислює B = gbmod p і передає першому.

Передбачається, що зловмисник може отримати обидва цих значення, але не модифікувати їх (тобто у нього немає можливості втрутитися в процес передачі). На другому етапі першого абонент на основі наявної в нього a і отриманого по мережі B обчислює значення Bamod p = gabmod p, а другий абонент на основі наявної в нього b і отриманого по мережі A обчислює значення Abmod p = gabmod p. Як неважко бачити, у обох абонентів вийшло одне і те ж число: K = gabmod p. Його вони і можуть використовувати в якості секретного ключа, оскільки тут зловмисник зустрінеться з практично нерозв’язною (за розумний час) проблемою обчислення gabmod p по перехоплених gamod p і gbmod p, якщо числа p, a, b обрані досить великими.

Під час роботи алгоритму, кожна сторона:

генерує випадкове натуральне число a - закритий ключ;

 <https://tyschenkoia12.files.wordpress.com/2014/12/400px-diffie-hellman-schlc3bcsselaustausch.png>

спільно з віддаленої стороною встановлює відкриті параметри p і g (зазвичай значення p і g генеруються на одній стороні і передаються іншій), деp є випадковим простим числом;g є первісним коренем за модулем p;

обчислює відкритий ключ A, використовуючи перетворення над закритим ключем A = ga mod p;

обмінюється відкритими ключами з віддаленої стороною;

обчислює загальний секретний ключ K, використовуючи відкритий ключ віддаленої сторони B і свій закритий ключ a;

= Ba mod p

Ключ виходить рівним з обох сторін, тому що:

mod p = (gb mod p) a mod p = gab mod p =

= (ga mod p) b mod p = Ab mod p. [9]

3. Вибір засобу вирішення проблеми

Для винаходу нового методу шифрування можуть підійти декілька програмних продуктів, як, наприклад, Delphi, C, C++, Excel, Pascal та інші.

Спочатку було обрано Excel:

Табличний процесор Excel фірми Microsoft призначений для введення, зберігання, обчислення і виведення великих обсягів даних у вигляді, зручному для аналізу і сприйняття інформації. Усі дані зберігаються й обробляються у вигляді окремих або зв'язаних таблиць. Одна або кілька таблиць складають «робочу книгу», У цьому випадку таблиці називаються робочими аркушами цієї книги, аркуші можна видаляти, доповнювати або переміщати з однієї робочої книги в іншу. Фізично на диску зберігається вся книга у вигляді окремого файла з розширенням «xls».

Можливості Excel дуже високі (обробка тексту, управління базами даних).

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

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