Алгоритм шіфрованіяхешірованія двійкових файлів на основі мережі Фейстеля принцип роботи реалізація

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Федеральне агентство з освіти

Державна освітня установа

вищої професійної освіти

Далекосхідний державний технічний університет

(ДВПИ ім. В. В. Куйбишева)

Кафедра конструювання та виробництва радіоапаратури

Пояснювальна записка до курсової роботи

з дисципліни

«Інформаційна безпека та захист інформації»

на тему:

АЛГОРИТМ шифрування / Хешування Двійковий файл НА ОСНОВІ МЕРЕЖІ Фейстель: ПРИНЦИП РОБОТИ, РЕАЛІЗАЦІЯ, ШВИДКІСТЬ РОБОТИ

Виконав

студент групи Р-7791

Павловський М.І.

2010

ЗМІСТ

ВСТУП

1 ОПИС СХЕМИ шифрування

2 ОПИС СХЕМИ Розшифрування

3 скріншоти ПРАЦЮЮЧОЇ ПРОГРАМИ

4 ШВИДКІСТЬ РОБОТИ АЛГОРИТМІВ

ВИСНОВОК

ВСТУП

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

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

  1. Безключове - в них не використовуються які-небудь ключі.

  2. Одноключевой - в них використовується якийсь додатковий ключовий параметр - зазвичай це секретний ключ.

  3. Двохключеву, які використовують у своїх обчисленнях два ключі: секретний і відкритий.

У цій роботі необхідно розробити алгоритм шифрування, заснований на мережі Фейстеля.

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

Рисунок 1 - Структура алгоритмів на основі мережі Фейстеля

Додатковий аргумент функції f (), позначений на рис. 1 як Ki, називається ключем раунду. Накладення обробленого субблока на необроблений найчастіше виконується за допомогою логічної операції «виключає або» - XOR (як показано на рис. 1). Досить часто замість XOR тут використовується додавання по модулю 2n, де n - розмір субблока в бітах. Після накладення субблоки міняються місцями, тобто в наступному раунді алгоритму обробляється вже інше субблок даних.

1 ОПИС СХЕМИ шифрування

Рисунок 2 - Схема шифрування

Зробимо докладний опис вищенаведеної схеми.

Прочитуємо з файлу два блоки по одному байту (left і right).

Потім беремо правий блок і виконуємо перестановку бітів в даному блоці за наступним принципом: 1 біт - 5 біт, 2 біт - 7 біт, 3 біт - 6 біт, 4 біт - 8 біт.

Ключ, позначений буквою K, являє собою масив з 4 елементів по одному байту, кожен з яких використовується в одній з чотирьох ітерацій.

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

(1)

Потім з результатом c, отриманими після додавання за модулем 256, виробляємо операцію XOR (виключає «або») з лівим блоком (left), ліченим з файлу.

(2)

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

(3)

Тепер ми маємо змінений лівий блок (left) і початковий правий блок (right). Міняємо ці блоки місцями, тобто правий стане лівим, а змінений лівий правим.

Проводимо 4 такі ітерації і записуємо отримані блоки в зашифрований файл: спочатку отриманий лівий блок, а потім отриманий правий блок.

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

3 ОПИС СХЕМИ Розшифрування

Рисунок 3 - Схема розшифрування

Зробимо докладний опис вищенаведеної схеми.

Прочитуємо із зашифрованого файлу два блоки по одному байту (left і right).

Беремо правий блок і виробляємо з ним операцію циклічного зсуву на 2 біти вправо, тобто останні 2 біти числа right стануть першими. Дана операція реалізується з допомогою двох побитной зрушень:

(4)

Потім беремо лівий блок і виконуємо перестановку бітів в даному блоці за наступним принципом: 1 біт - 5 біт, 2 біт - 7 біт, 3 біт - 6 біт, 4 біт - 8 біт.

Ключ, позначений буквою K, являє собою масив з 4 елементів по одному байту, кожен з яких використовується в одній з чотирьох ітерацій.

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

(5)

Потім з результатом c, отриманими після додавання за модулем 256, виробляємо операцію XOR (виключає «або») з правим блоком над яким виробили циклічний зсув d.

(6)

Тепер ми маємо змінений правий блок (right) і початковий лівий блок (left). Міняємо ці блоки місцями, тобто лівий стане правим, а змінений правий лівим.

Проводимо 4 такі ітерації і записуємо отримані блоки в зашифрований файл: спочатку отриманий лівий блок, а потім отриманий правий блок.

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

3 скріншоти ПРАЦЮЮЧОЇ ПРОГРАМИ

Рисунок 4 - Вікно програми при відкритті (програма готова до роботи)

Малюнок 5 - Шифрування файлу

На даному етапі ми вибрали файл для шифрування. Шлях до даного файлу записаний у першому textBox 'е. Прогрес бар показує процес шифрування: скільки байт оброблено у відсотках.

Малюнок 6 - Шифрування завершено

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

Малюнок 7 - Розшифрування файлу

На даному етапі ми вибрали файл для розшифрування (файл, який вийшов в результаті шифрування). Шлях до даного файлу записаний у другому textBox 'е. Прогрес бар показує процес розшифрування: скільки байт оброблено у відсотках.

Рисунок 8 - Розшифрування завершено

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

4 ШВИДКІСТЬ РОБОТИ АЛГОРИТМІВ

Швидкість роботи для алгоритмів шифрування і розшифрування розраховується аналогічно за такою формулою:

, (7)

де

- Швидкість шифрування / розшифрування в мегабитах в секунду;

- Розмір файлу в мегабайтах;

- Час на момент закінчення шифрування / розшифрування;

- Час на момент початку шифрування / розшифрування;

- Час шифрування / розшифрування, виражене в секундах;

У цій роботі при шифруванні і расшифровании файлу довжиною 14,2 МБ була отримана швидкість, приблизно рівна 0,16 МБ / сек.

Тестування проводилося на комп'ютері з наступною конфігурацією:

Об'єм оперативної пам'яті: 1 ГБ;

Частота процесора: 2,66 ГГц.

ВИСНОВОК

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

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

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

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
27.9кб. | скачати


Схожі роботи:
Інформаційні технології передавання файлів через Інтернет на основі протоколу FTP
Реалізація штучної нейронної мережі
Принцип поділу влади його закріплення і реалізація в Конституції
Принцип поділу влади і його реалізація в Російській Федерації
Принцип поділу влади його закріплення і реалізація до Конституції
Реалізація мережі в операційній системі Linux
Реалізація поштового клієнта і сервера на основі CORBA
Локальні мережі на основі комутаторів
Алгоритм роботи програми Консультант Плюс
© Усі права захищені
написати до нас