з навчальної дисципліни: "Алгоритмізація та програмування"
Тема: "Розробка проекту програмного дешифратора алгоритмічною мовою високого рівня"
Напрям
підготовки: "Комп’ютерні науки"
Зміст
Вступ
. Основи криптосистем та їх використання
.1 Види крипто-аналітичних атак
.2 Вимоги для сучасних криптографічних систем захисту інформації
.3 Симетричні системи шифрування
.4 Асиметричні системи або системи з відкритим ключем
. Шифрування методом гамування
. Вимоги до програмного продукту
. Текст програми
. Опис програми
Висновки
Список джерел
Вступ
На сьогоднішній день інформаційний захист інформації постійно еволюціонує. Доказом цього стала поява більш нових та удосконалених стандартів криптосистем, таких як AES, ГОСТ 28147-89 та RSA. Тому питанню захисту інформації приділяється велика увага у світі та в нашій країні зокрема. Актуальність даної курсової роботи, а саме розробки проекту програмного дешифратора алгоритмічною мовою високого рівня полягає у підготовленні особового складу курсу до майбутньої роботи в галузях інформаційних технологій та безпеки інформації. Цей проект дозволяє оволодіти початковими криптографічними навиками та вдосконалити навики програмування на алгоритмічній мові високого рівня, познайомитись з криптографічними системами та їх різновидами. Курсова робота дає можливість познайомитися з криптографічною системою, в основу якої покладено застосування лінійно рекурентного регістру(ЛРР).
Ціллю даного проекту є розробка проекту програмного дешифратора, що забезпечує перетворення криптограми Е у розшифроване повідомлення М за допомогою ключових даних К. Ключова послідовність формується за допомогою (ЛРР). Курсова робота включає 21 елемент пам’яті регістру та зворотні зв’язки на 2, 5, 7 та 13 елементах. По закінченні роботи програми на екрані повинен вибитися текст, який відправник вбивав у програму. Дана програма використовує симетричну систему шифрування.
Курсова робота створювалася за допомогою вивчення спеціальної літератури з криптографії , вмінь та навиків використання мови високого рівня (мови С).
Завдання на курсову роботу за темою: "Розробка проекту програмного шифратора(дешифратора) алгоритмічною мовою високого рівня "
1. Розробити проект програмного шифратора (дешифратора), що забезпечує конфіденційність повідомлення М шляхом його криптоперетворення у криптограму Е за допомогою ключових даних К. Процедура шифрування (дешифрування) відображена на функціональної структурі (мал. 1).
2. Ключова
послідовність формується за допомогою лінійного рекурентного регістру (ЛРР).
Кількість елементів пам’яті регістру n, a0, …ai, … an-1 - ідентифікатори елементів, і
- поточний індекс елементу пам’яті. Значення індексів в завданні на курсову
роботу вказують на зворотний зв'язок регістру (наприклад, і= 2, 4
- зворотній зв'язок с виходу елементів a2 і a4).
|
|
n |
і |
|
1 |
21 |
2, 5, 7, 13 |
|
2 |
11 |
1, 4, 9 |
|
3 |
9 |
3, 5, 8 |
|
4 |
13 |
2, 4, 9, 11 |
|
5 |
12 |
1, 7, 9, 11 |
|
6 |
14 |
5, 7, 8, 12 |
|
7 |
15 |
1, 5, 14 |
|
8 |
17 |
5, 8, 12, 16 |
|
9 |
18 |
2,5, 7, 8, 11, |
|
10 |
19 |
3, 5, 16 |
1. Основи криптосистем та їх використання
Мал. 1 Схема криптосистеми захисту інформації
Ш - шифратор; ДШ - дешифратор; ГК - генератор ключів; М -
повідомлення на вході, М’ - повідомлення на виході; Е - зашифроване
повідомлення до подачі на канал зв’язку; Е’ - зашифроване повідомлення після
проходу каналу зв’язку; КЗ - канал зв’язку;Кдш - ключ дешифрування; Кш - ключ
шифрування;
На малюнку 1 представлена схема криптосистеми захисту інформації. Вона реалізується таким чином: спочатку відправником вводиться повідомлення. Це повідомлення переводиться у біти (кожній букві відповідає відповідна комбінація із семи біт). Послідовність бітів підсумовується за модулем два з генератором ключів, який утворюється за допомогою ЛРР в комірки якого входять ключі. В результаті цієї операції на виході шифратора буде зашифроване повідомлення Е. Це повідомлення передається через канал зв’язку. На жаль, передати повідомлення без завад практично не вдається, адже в каналі зв’язку діють різноманітні завади та перехвати. Зашифроване повідомлення знову ж таки підсумовуються за модулем два з генератором ключів. Ключ шифрування повинен дорівнювати ключу дешифрування. В результаті цих операцій на виході будемо мати теж повідомлення, яке було відправлено відправником.
Схема реалізації дешифратора
Криптографічне перетворення - це таке перетворення інформації, котре використовує таємні дані (таємний ключ), відомий тільки обмеженому колу осіб. Ключ - це інформація, необхідна для безперешкодного шифрування і дешифрування текстів. Шифруванням даних - це процес перетворення відкритих даних на зашифровані з допомогою шифру, а дешифруванням, навпаки - процес перетворення закритих даних на відкриті.
Математична модель криптосистеми:
Е=f(M,Kш)
M’=g(E’,Kдш)
Системи шифрування поділяються на :
1. Симетричні системи;
2. Асиметричні системи або системи з відкритим ключем.
Крипто-аналіз - це наука, котра дозволяє із перехопленої криптограми Е добувати інформацію М, без знання ключа.
1.1 Види крипто-аналітичних атак
До аналітичних атак відносять атаки, в яких алгоритм побудови атаки заснований на аналітичних принципах розтину крипто-схеми.
Клас аналітичних атак можна розбити на два підкласи:
• методи крипто-аналізу гамми;
• методи крипто-аналізу процедури ключової ініціалізації і реініцiалiзацiї.
Через специфіку принципів побудови потокових шифрів основним видом атак на дані схеми в першому підкласі є кореляційні атаки, основна ідея яких полягає в знаходженні кореляції між гаммою тієї, що шифрує і різними лінійними комбінаціями ключа (регістра зрушення). Як об'єкт дослідження кореляційні атаки розглядають нелінійну функцію, що вносить не лінійність до вихідної послідовності регістра зрушення. Особливістю даних атак є те, що успішний крипто-аналіз може бути проведений і без наявності знань про вид нелінійної функції.
Аналітичні атаки - це атаки, що набули найбільш широкого поширення. Всі аналітичні атаки відбуваються при допущенні, що крипто аналітику відомий опис генератора (створюючи поліноми, вид нелінійного перетворення), він володіє відкритим і відповідним йому закритим текстом. Атаки даного класу еквівалентні атакам по відомому відкритому тексту. Завданням крипто аналітика є визначення вживаного ключа (початкового заповнення).
Для забезпечення безпеки від атак використовують деяку комбінацію з чотирьох різних криптографічних послуг. Ці послуги:
*Перевірка користувача - введенням шляху в оперативну транзакцію, користувач підтверджує, що це саме він.
*Ідентифікація Початку координат Даних - забезпечення джерела повідомлення.
*Цілісність Даних - забезпечення збереження даних неправомочними сторонами.
*Чи не відмова - одержувач транзакції здатна демонструвати
нейтральному третій особі, що потрібний передавач дійсно посилав транзакцію.
1.2 Вимоги для сучасних криптографічних систем захисту
інформації
*Зашифроване повідомлення повинно піддаватися читанню тільки при наявності ключа;
* Кількість операцій, необхідних для визначення використаного ключа шифрування за фрагментом шифрованого повідомлення і відповідного йому відкритого тексту, має бути не менше загального числа можливих ключів;
* Кількість операцій, необхідних для розшифрування інформації шляхом перебору всіляких ключів повинно мати строгу нижню оцінку і виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережевих обчислень);
* Знання алгоритму шифрування не повинно впливати на надійність захисту;
* Незначна зміна ключа повинно приводити до істотної зміни виду зашифрованого повідомлення навіть при використанні одного і того ж ключа;
* Структурні елементи алгоритму шифрування повинні бути незмінними;
* Додаткові біти, що вводяться в повідомлення в процесі шифрування, повинен бути повністю та надійно сховані в зашифрованому тексті;
* Довжина шифрованого тексту повинна бути рівною довжині вихідного тексту;
* Не повинно бути простих і легко встановлюваних залежністю між ключами, послідовно що використовуються в процесі шифрування;
* Будь-який ключ з безлічі можливих повинен забезпечувати надійний захист інформації;
* Алгоритм повинен допускати як програмну, так і апаратну реалізацію, при цьому зміна довжини ключа не повинно вести до якісного погіршення алгоритму шифрування.
1.3 Симетричні системи шифрування
Симетричні системи - це системи шифрування, в яких ключ
шифрування дорівнює ключу дешифрування (Кш=Кдш). Ключ - це інформація,
необхідна для безперешкодного шифрування і дешифрування текстів. Симетричні
системи найбільш стійкі до крипто аналізу, тому-що у цих системах
використовуються один ключ, яким шифрується і дешифрується повідомлення. Не знаючи
ключа не можливо прочитати зашифроване повідомлення. Кожен користувач повинен
довіряти іншому, щоб не оприлюднювати загальний ключ третій особі. Ці системи
ефективно зашифровують велику кількість даних, однак, вони висловлюють істотні
ключові проблеми управління в мережах більше ніж у маленькому числі
користувачів, і зазвичай використовуються разом з шифрування з відкритим
ключем.
1.4 Асиметричні системи або системи з відкритим ключем
Асиметричні системи або системи з відкритим ключем - це системи шифрування, в яких ключ шифрування не дорівнює ключу дешифрування (Кш ≠Кдш). Загалом використовуються в комерційних структурах. Для асиметричних систем ставляться дві вимоги:
1. Перетворення вихідного тексту повинно бути незворотним і виключати його відновлення на основі відкритого ключа;
2. Визначення закритого ключа на основі відкритого також повинно бути неможливим на сучасному технологічному рівні. При цьому бажана точна нижня оцінка складності (кількості операцій) розкриття шифру.
Алгоритми шифрування з відкритим ключем одержали широке поширення в сучасних інформаційних системах. Так, алгоритм RSA став світовим стандартом де-факто для відкритих систем і рекомендований МККТТ. Взагалі ж всі пропоновані сьогодні криптосистеми з відкритим ключем спираються на один з наступних типів незворотних перетворень:
. Розкладання великих чисел на прості множники.
. Обчислення логарифма в кінцевому полі.
. Обчислення коренів алгебраїчних рівнянь.
Тут же слід зазначити, що алгоритми криптосистеми з відкритим ключем (СОК) можна використовувати в двух призначеннях:
. Як самостійні засоби захисту переданих і збережених даних;
. Як кошти для розподілу ключів.
Алгоритми СОК більш трудомісткі, ніж традиційні криптосистеми. Тому часто на практиці раціонально за допомогою СОК розподіляти ключі, обсяг яких як інформації незначний. А потім за допомогою звичайних алгоритмів здійснювати обмін великими інформаційними потоками. Схеми шифрування з відкритим ключем вимагають, щоб кожна сторона мала ключову пару: секретний ключ, який не повинен бути розкритий іншому користувачеві, і загальний ключ, який може бути доступним у загальному каталозі. Ці два ключі пов'язані жорсткої односторонньою функцією, так що в обчислювальному відношенні нездійсненно визначити секретний ключ від загального ключа. Секретний ключ часто зберігається в програмному забезпеченні з використанням пароля, а проте, секретний ключ повинен ідеально бути збережений в безпечній апаратної лексеми, що запобігає прямий доступ або втручання.
2. Шифрування методом гамування
Гамування (рис. 2) - це процес накладання за певним законом гами шифру на відкриті дані. Під гамою шифру розуміється псевдовипадкова двійкова послідовність, що виробляється за заданим алгоритмом для зашифровування відкритих даних і розшифрування зашифрованих даних.
Гамування є також широко застосовуваних криптографічним перетворенням. Принцип шифрування гамуванням полягає в генерації гами шифру за допомогою датчика псевдовипадкових чисел і накладення отриманої гами на відкриті дані оборотним чином (наприклад, використовуючи додавання по модулю 2). Процес дешифрування даних зводиться до повторної генерації гами шифру при відомому ключі і накладення такої гами на зашифровані дані.
Отриманий зашифрований текст є досить важким для розкриття в тому випадку, якщо гамма шифру не містить повторюваних бітових послідовностей. По суті гамма шифру повинна змінюватися випадковим чином для кожного шифруючого слова. Фактично ж, якщо період гами перевищує довжину всього зашифрованого тексту і невідома ніяка частина вихідного тексту, то шифр можна розкрити тільки прямим перебором (пробою на ключ). Крипостійкість в цьому випадку визначається розміром ключа.
Метод гамування стає безсилим, якщо зловмисникові стає
відомий фрагмент початкового тексту і відповідна йому шифрограма. Простим
вирахуванням за модулем виходить відрізок ПСП і по ньому відновлюється вся
послідовність. Зловмисники може зробити це на основі припущень про зміст
вихідного тексту. Так, якщо більшість надісланих повідомлень починається зі
слів" СОВ.СЕКРЕТНО ", то крипто-аналіз всього тексту значно
полегшується. Це слід враховувати при створенні реальних систем інформаційної
безпеки.
Мал. 2 Лінійно рекурентний регістр (ЛРР)
Будується на основі лінійних рекурентних співвідношень. Лінійний рекурентний регістр (ЛРР) є найбільш простим і поширеним генератором Псевдо Випадковій Двійковій Послідовності (ПСДП). Це малогабаритне, легеня, недорогий пристрій, здатний надати багатий вибір породжуваних послідовностей і забезпечити такі вимоги як:
*великий розмір ансамблю послідовностей, що формуються на одній алгоритмічній основі;
*оптимальність кореляційних функцій в ансамблі;
*збалансованість структури;
*максимальність періоду для даної довжини регістра зрушення.
ЛРР є зсувним регістром з лінійними зворотними зв'язками (схема роботи представлена на рис.3, в якому вхідний сигнал утворюється в результаті складання по модулю 2 декількох фіксованих розрядів. В результаті утворюється вихідний сигнал у вигляді ПСП "0" і "1". Цей "шум" володіє цікавою властивістю: після події деякого часу, визначуваного довжиною регістра, він в точності повторюється (регістр максимальної довжини n перед повторенням проходить через 2n-1 стан). Тобто утворюються циклічні або кільцеві ПСДП.