Материал: Розробка проекту програмного шифратора алгоритмічною мовою високого рівня

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

Розробка проекту програмного шифратора алгоритмічною мовою високого рівня














Курсовий проект

Розробка проекту програмного шифратора алгоритмічною мовою високого рівня


Вступ

Інформаційна безпека постійна еволюціонує і з кожним роком стає все актуальніша не тільки в державних, а й в комерційних структурах. Державна служба спеціального зв’язку та захисту інформації України забезпечує інформаційну безпеку державних структур України від незаконного втручання зловмисників до баз даних, держаних секретів і т.д. При цьому інформаційна безпека включає в себе не тільки технологічний бік, але й законодавчий. Важливо аби законодавство країни відображало зміни у підходах до захисту інформації у комп’ютерно-інтегрованих системах. Для забезпечення безпеки інформації використовуються криптосистеми, в основі яких полягають криптографічні перетворення - це таке перетворення інформації, яке використовує таємні данні (таємні ключі) відомі тільки визначеному колу осіб. Криптографічні перетворення виконуються за вітчизняними та закордонними стандартами. Нині використовуються стандарти AES, ГОСТ 28147-89, RSA, криптосистеми на базі еліптичної кривої (як альтернатива RSA). Можливо, новим витком у методах інформаційного захисту стане квантова криптографія, хоча навести приклад її успішного практичного застосування не можна, незважаючи на активні дослідження у цій сфері.

Курсовий проект з дисципліни « Алгоритмізація та програмування» має за основну мету підготувати особовий склад курсу до майбутньої роботи в галузях інформаційних технологій та безпеки.

Ця тема курсової роботи дозволяє оволодіти початковими криптографічними навичками та вдосконалити навички програмування на алгоритмічній мові високого рівня, познайомитись з криптографічними системами та їх різновидами.

Ціллю даної курсової роботи є робота з криптографічною системою створеною методом гамування та розробка проекту програмного шифратора, що забезпечує конфеденційность повідомлення М шляхом його крипто перетворення у криптограму Е за допомогою ключових даних К. Ключова послідовність формується за допомогою лінійного рекурентного регістру (ЛРР). Моя робота має 21 елемент пам’яті регістру та зворотній зв’язок на 2, 5, 7 та 13 елементах.

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

Даний проект створювався за допомогою вивчення спеціальної літератури по криптографії та літератури по настройці і компіляції програм мовою «С».


1.      Основи криптосистем та їх використання

Принцип роботи криптосистеми захисту інформації

Криптографічне перетворення - таке перетворення інформації, котре використовує таємні данні (таємний ключ), відомий тільки окремому кругу осіб

.        На шифратор подається повідомлення М, котре в шифраторі, за допомогою ключа Кш, методом гамування, перетворюється в криптограму Е.

.        В каналі зв’язку криптограма Е піддається спотворенню, за рахунок завад та перехвату, та на приймач приходить спотворена криптограма.

.        З приймача на дешифратор передається криптограма Е’, яка в дешифраторі, за допомогою Кдш, дешифрує повідомлення і після дешифрування виходить повідомлення М’.

1.1    Принцип роботи шифратора

1.      Повідомлення Мbyte в пристрої Пр. перетворюється в бітову комбінацію Мbit, яка складається з «1» та «0».

.        В пристрої F ключ шифрування Кш перетворюється в гамму Гі (в даному випадку за допомогою ЛРР).

.        В шифраторі гама Гі сумується по модулю два з бітовою комбінацією Мbit та отримаємо криптограму Еbit.

1.2 Основи криптографії

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

Шифруванням даних - називається процес перетворення відкритих даних на зашифровані з допомогою шифру.

Дешифруванням даних - процес перетворення закритих даних на відкриті з допомогою шифру

Математична модель криптосистеми

Еі=Mі Гі;

Mі’=Eі’ Гі’.

Системи шифрування поділяються на:

.        Симетричні системи - це системи, в яких ключ шифрування дорівнює ключу дешифрування (Кш = Кдш) (далі п. 1.6);

.        Асиметричні системи або системи з відкритим ключем - це системи, в яких ключ шифрування не дорівнює ключу дешифрування (КшКдш) (далі п. 1.7).

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

Криптоаналіз - це наука, котра дозволяє із перехопленої криптограми Е добувати інформацію М без знання ключа. Іншими словами, криптоаналіз - це злом криптографічного алгоритму або системи, хоча цей термін має і строго технічні значення.

1.3 Криптоаналітичні атаки

Криптоаналітична атака - це спроба реалізації загрози інформації з використанням методів криптографічного аналізу.

На схемі 1 представлені найбільш відомі криптоаналітичні атаки, вживані до синхронних потокових шифрів.

Класифікація крипто аналітичних атак


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

Клас аналітичних атак можна розбити на два підкласи:

•        методи крипто-аналізу гамми, що шифрує;

•        методи крипто-аналізу процедури ключової ініціалізації і реініцiалiзацiї.

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

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

*Перевірка користувача - введенням шляху в оперативну транзакцію, користувач підтверджує, що це саме він.

*Ідентифікація Початку координат Даних - забезпечення джерела повідомлення.

*Цілісність Даних - забезпечення збереження даних неправомочними сторонами.

*Чи не відмова - одержувач транзакції здатна демонструвати нейтральному третій особі, що потрібний передавач дійсно посилав транзакцію. [Сайт «kriptograf.ru»]

1.4 Вимоги для сучасних криптографічних систем захисту інформації

*Зашифроване повідомлення повинно піддаватися читання тільки при наявності ключа;

* Кількість операцій, необхідних для визначення використаного ключа шифрування за фрагментом шифрованого повідомлення і відповідного йому відкритого тексту, має бути не менше загального числа можливих ключів;

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

* Знання алгоритму шифрування не повинно впливати на надійність захисту,

* Незначна зміна ключа повинно приводити до істотної зміни виду зашифрованого повідомлення навіть при використанні одного і того ж ключа;

* Структурні елементи алгоритму шифрування повинні бути незмінними;

* Додаткові біти, що вводяться в повідомлення в процесі шифрування, повинен бути повністю та надійно сховані в зашифрованому тексті;

* Довжина шифрованого тексту повинна бути рівною довжині вихідного тексту;

* Не повинно бути простих і легко встановлюваних залежністю між ключами, послідовно що використовуються в процесі шифрування;

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

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

1.5    Симетричні системи шифрування

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

1.6    Асиметричні системи або системи з відкритим ключем

Асиметричні системи або системи з відкритим ключем - це системи шифрування, в яких ключ шифрування не дорівнює ключу дешифрування Кш ≠Кдш. Загалом використовуються в комерційних структурах. Для асиметричних систем ставляться дві вимоги:

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

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

Алгоритми шифрування з відкритим ключем одержали широке поширення в сучасних інформаційних системах. Так, алгоритм RSA став світовим стандартом де-факто для відкритих систем і рекомендований МККТТ.

Взагалі ж всі пропоновані сьогодні криптосистеми з відкритим ключем спираються на один з наступних типів незворотних перетворень:

. Розкладання великих чисел на прості множники.

. Обчислення логарифма в кінцевому полі.

. Обчислення коренів алгебраїчних рівнянь.

Тут же слід зазначити, що алгоритми криптосистеми з відкритим ключем (СОК) можна використовувати в двох призначеннях:

. Як самостійні засоби захисту переданих і збережених даних.

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

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

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

Цифрові подання.

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

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

Цифрові подання можуть використовуватися, щоб використовувати три криптографічних послуги: ідентифікацію, відмова і цілісність даних. код з виправленням помилок може використовуватися, щоб генерувати сильні цифрові подання з маленькою кількістю обробки енергії. [Сайт «kriptograf.ru»]


2. Шифрування методом гамування

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

Гамування є також широко застосовуваних криптографічним перетворенням.

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

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

Метод гамування стає безсилим, якщо зловмисникові стає відомий фрагмент початкового тексту і відповідна йому шифрограма. Простим вирахуванням за модулем виходить відрізок ПСП і по ньому відновлюється вся послідовність. Зловмисники може зробити це на основі припущень про зміст вихідного тексту. Так, якщо більшість надісланих повідомлень починається зі слів» СОВ.СЕКРЕТНО», то крипто-аналіз всього тексту значно полегшується. Це слід враховувати при створенні реальних систем інформаційної безпеки.

2.1 Лінійно рекурентний регістр (ЛРР)

ЛРР - це перемикаюча схема, яка призначена для утворення псевдовипадкових послідовностей (рис. 3) і складається із чарунок пам’яті та суматорів за модулем два, об`єднаних зворотніми зв`язками.

Довжиною ЛРР називають число, яке дорівнює кількості елементів пам’яті, що входять до нього. В момент, коли почнуть поступати імпульси тактової частоти від ГТЧ, вихідний символ кожного розряду ЛРР приймає те значення, яке перед цим знаходилось у попередній чарунці пам’яті.

Схема ЛРР

аі - чарунки пам`яті;- зворотні зв’язки;

Å - суматори за mod 2;

ГТЧ - генератор тактової частоти (в усіх наступних схемах існування ГТЧ береться до уваги, але не зображується).

Одночасно відбувається додавання вихідних елементів, які знаходяться в тих чарунках пам’яті, котрі з’єднані зворотнім зв’язком з суматорами та результат суми записується в (n-1) чарунку пам’яті. При надходженні наступних імпульсів тактової частоти робота ЛРР проходить аналогічним чином. Лінійний рекурентний регістр (ЛРР) є найбільш простим і поширеним генератором Псевдо Випадковій Двійковій Послідовності (ПСДП). Це малогабаритний, недорогий пристрій, здатний надати багатий вибір породжуваних послідовностей і забезпечити такі вимоги як: