Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Labs good 2014

.pdf
Скачиваний:
17
Добавлен:
12.02.2016
Размер:
1.26 Mб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА‖

М Е Т О Д И Ч Н І В К А З І В К И

Д Л Я В И К О Н А Н Н Я Л А Б О Р А Т О Р Н И Х Р О Б І Т

ЗД И С Ц И П Л І Н И :

ТЕ Х Н О Л О Г І Ї З А Х И С Т У І Н Ф О Р М А Ц І Ї

Львів – 2013

1

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

Укладач: Басюк Т. М., к.т.н., доцент кафедри ІСМ

ВИМОГИ ДО ОФОРМЛЕННЯ ЗВІТІВ ПРО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ

Звіти про виконання лабораторних робіт оформляються на зшитих аркушах формату А4. Після захисту лабораторних робіт звіти здаються для зберігання на кафедру.

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

Номер та назва роботи;

Мета виконання лабораторної роботи;

Індивідуальне завдання з детальним формулюванням розв‘язуваної задачі, використовувані (власні) теоретичні відомості;

Відповіді на контрольні запитання

Текст програми реалізації.

Результати кроків виконання алгоритму.

Результати роботи програми.

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

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

2

ВСТУП

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

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

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

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

-титульний лист;

-мета виконання лабораторної роботи;

-індивідуальне завдання з детальним формулюванням

розв‘язуваної задачі, використовувані (власні) теоретичні відомості;;

-відповіді на контрольні питання;

-блок-схему та опис функціонування програми;

-тексти програм з поясненнями (коментарями);

-результати виконання (графіки, таблиці, перетворені тексти);

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

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

3

Лабораторна робота №1

Тема роботи: Симетричні методи шифрування інформації.

Мета роботи: Навчитися опрацьовувати (шифрувати та дешифрувати) файли на основі методів симетричного шифрування.

Теоретичні відомості

Симетричне шифрування буває двох видів:

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

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

Блокові шифри бувають двох основних видів:

1.шифри перестановки – переставляють елементи відкритих даних (біти, букви, символи) у деякому новому порядку;

2.шифри заміни – заміняють елементи відкритих даних на інші

елементи за певним правилом.

Шифри заміни діляться на дві групи: моноалфавітні (код Цезаря) та поліалфавітні (шифр Відженера). У моноалфавітних шифрах заміни буква вихідного тексту заміняється на іншу, заздалегідь певну букву.

Одним з найпростіших шифрів заміни є шифр Цезаря (100-44 р. до н. є.). Літери абетки тут ототожнені з цифрами. В системі Цезаря використано 26 символів (26 літер латинської абетки), які перенумеровані числами від 0 до 25 (див. табл.1.).

Таблиця 1. Таблиця шифрування в системі Цезаря

A

00

H

07

 

O

14

V

21

B

01

I

08

 

P

15

W

22

C

02

J

09

 

Q

16

X

23

D

03

K

10

 

R

17

Y

24

E

04

L

11

 

S

18

Z

25

F

05

M

12

 

T

19

 

 

G

06

N

13

 

U

20

 

 

 

 

 

 

4

 

 

 

Шифрування здійснюється відповідною підстановкою: 00 (а) – 03 (d); 01

(b) – 04 (e); 02 (с) – 05 (f);...; 25 (z) – 02 (с). Це означає, що в шифрограмі кожну літеру явного тексту замінюють на літеру, розташовану в абетці на три позиції далі. Висловлюючись сучасною мовою, римляни застосовували операцію додавання до номера літери числа 3 за модулем 26 (1):

С = Р + 3(mod 26)

(1)

Де, С - номер літери в криптограмі; Р - номер відповідної літери в явному тексті.

Наприклад, латинському слову ітрегіит (імперія) відповідає криптограма Ipshulxp, а латинському тексту Veni, vidi, vici (прийшов, побачив, переміг), коли з нього викинути коми й пропуски між словами, відповідає криптограма yhqlylglylfl.

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

Іншим порівняно простим методом шифрування є квадрат Полібія (або шифр в'язниці). Шифр дає змогу спілкуватися шляхом застосування одиничного базису. Для шифрування й дешифрування використовують ключ у вигляді квадрата у який вписано літери абетки, наприклад, української (33 літери та знаки " . " (крапка), " , " (кома), " ' " (апостроф) - усього 36 клітинок) (табл.2).

Таблиця.2. Квадрат Полібія

Кожну літеру або знак відкритого тексту замінюють парою цифр – номером рядка й номером стовпця в таблиці, на перетині яких міститься цей символ. Наприклад, для тексту хто тут криптограма виглядає так: 52 45 41 45 46 45. У випадку в'язниці вистукують кожну цифру криптограми, роблячи паузи між окремими цифрами.

5

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

Потокові шифри

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

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

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

Процес зашифрування в цьому випадку визначається співвідношенням:

Сi = (mi + ri) mod N, i = 1, m,

(2)

где mi, ri , ci – наступний i-й знак початкового повідомлення, гами та шифротексту відповідно;

N– кількість символів в алфавіті повідомлення; m – кількість знаків відкритого тексту;

Для початку роботи необхідно створити таблицю алфавіту та визначити відповідні коди букв.

Буква

А

Б

 

В

Г

Ґ

 

Д

Е

Є

Ж

З

 

И

 

І

Код

01

02

03

04

05

 

06

07

08

09

10

 

11

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Буква

Ї

Й

 

К

Л

М

 

Н

О

П

Р

С

 

Т

 

У

Код

13

14

15

16

17

 

18

19

20

21

22

 

23

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Буква

Ф

Х

 

Ц

Ч

Ш

 

Щ

Ь

Ю

Я

 

Пробіл

 

Код

25

26

27

28

29

 

30

31

32

33

 

34

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

Тепер зашифруємо текст: «ГАМБІ» («04 01 17 02 12»)

Гама: «МОДЕЛ» («17 19 06 07 16)

N=34; m=6

За шифрування використаємо формулу (2) та операцію множення за mod N:

С1= 4+17 (mod 34) = 21 (mod 34) =21

С2= 1+19 (mod 34) =20 (mod 34) =20 С3= 17+6 (mod 34) =23 (mod 34)=23 С4= 2+7 (mod 34) =9 (mod 34) =9 С5= 12+16 (mod 34) =28 (mod 34) =28

Отриманий шифротекст: Р П Т Ж Ч «21 20 23 9 28»

Опис методу шифрування перестановочним шифром

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

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

«ЦЕ ПОВІДОМЛЕННЯ ДЛЯ ВІДПРАВКИ»

записується в таблицю по черзі по рядках. Результат заповнення таблиці з 3 рядків і 9 стовпців показаний в таблиці:

Ц

Е

П

О

В

І

Д

О

М

 

 

 

 

 

 

 

 

 

Л

Е

Н

Н

Я

Д

Л

Я

В

 

 

 

 

 

 

 

 

 

І

Д

П

Р

А

В

К

И

 

 

 

 

 

 

 

 

 

 

Отримаємо шифротекст який утворюється шляхом зчитування символів порядкове: ЦЛІЕЕДПНПОНРВЯАІДВДЛКОЯИМВ. Описана система кодування носить назву простого перестановочного шифру.

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

7

Спробуємо застосувати в якості ключа слово ОМБАЙН, як текст повідомлення візьмемо текст «ЦЕ ПОВІДОМЛЕННЯ НЕОБХІДНО ВІДПРАВИТИ». На рис.1. показані дві таблиці, заповнені текстом повідомлення й ключовим словом, при цьому ліва таблиця відповідає заповненню до перестановки, а права таблиця – заповненню після перестановки.

О

М

Б

А

Й

Н

 

 

 

 

 

 

7

5

2

1

3

6

 

 

 

 

 

 

Е

П

О

В

І

Д

 

 

 

 

 

 

М

Л

Е

Н

Н

Я

 

 

 

 

 

 

Е

О

Б

Х

І

Д

 

 

 

 

 

 

О

В

І

Д

П

Р

 

 

 

 

 

 

В

И

Т

И

 

 

 

 

 

 

 

 

А

Б

Й

К

М

Н

О

 

 

 

 

 

 

 

1

2

3

4

5

6

7

 

 

 

 

 

 

 

В

О

І

Ц

П

Д

Е

 

 

 

 

 

 

 

Н

Е

Н

О

Л

Я

М

 

 

 

 

 

 

 

Х

Б

І

Н

О

Д

Е

 

 

 

 

 

 

 

Д

І

П

Н

В

Р

О

 

 

 

 

 

 

 

И

Т

 

А

И

 

В

 

 

 

 

 

 

 

Рис.1. Горизонтальний перестановочний шифр

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

При зчитуванні вмісту правої таблиці по стовпцях і запису шифртекста групами по чотири букви одержимо шифроване повідомлення:

ВНХДИ ОЕБІТ ІНІП ЦОННА ПЛОВИ ДЯДР ЕМЕОВ

КОНТРОЛЬНІ ПИТАННЯ

1.Особливості алгоритмів симетричного та асиметричного шифрувань?

2.Поняття блокового шифрування?

3.Основні операції потокового шифрування даних?

4.Шифрування з допомогою перестановочного шифру.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1. Написати програму на мові С++ (чи іншій за згодою викладача) яка виконує криптографічні перетворення (шифрування та дешифрування) над файлами за одним з методів симетричного шифрування відповідно до заданого варіанту приведеного в таблиці.

8

Завдання

 

 

1

Шифр Цезаря для блоків розміром 8 біт– результат в рядковому представленні

 

 

2

Шифр Цезаря для блоків розміром 16 біт – результат в бітовому представленні

 

 

3

Шифр Цезаря для блоків розм. 32 біти – результат у цифровому представленні

 

 

4

Шифр Полібія для укр. абетки - результат в бітовому представленні

 

 

5

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

 

 

6

Потокове шифрування укр. абетки – результати в бітовому представленні

 

 

7

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

 

 

8

Потокове шифрування даних англ. абетки - – результати в бітовому виді

 

 

9

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

 

 

10

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

 

 

11

Потокове шифрування даних укр. абетки – результати в цифровому виді

 

 

12

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

 

 

13

Потокове шифрування даних англ. абетки - – результати в цифровому виді

 

 

14

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

 

 

15

Потокове шифрування даних укр. абетки – результати в бітовому представленні

 

 

16

Шифр Цезаря для блоків розм.8 біт – результат у цифровому представленні

 

 

17

Шифр Цезаря для блоків розміром 16 біт – результат в рядковому представленні

 

 

18

Шифр Цезаря для блоків розміром 32 біти – результат в бітовому представленні

 

 

19

Шифр Полібія для укр. абетки - результат в бітовому представленні

 

 

20

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

 

 

21

Потокове шифрування укр. абетки – результати в бітовому представленні

 

 

22

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

 

 

23

Потокове шифрування даних англ. абетки - – результати в бітовому виді

 

 

24

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

 

 

25

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

 

 

26

Потокове шифрування даних укр. абетки – результати в цифровому виді

 

 

27

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

28

Потокове шифрування даних англ. абетки - – результати в цифровому виді

 

 

29

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

 

 

30

Потокове шифрування даних укр. абетки – результати в бітовому представленні

 

 

2.Здійснити компіляцію програми.

3.Результати подати у вигляді текстів програми, відповідних пояснень та скріншотів.

4.Додаткове завдання. Провести порівняння розподілу ймовірностей наявних символів файлу до та після шифрування. Результати ймовірностей представити у табличній та графічній формах для кожного символу

5.Оформити звіт згідно вимог.

9

Лабораторна робота №2

Тема роботи: Блокове шифрування інформації та шифри моноалфавітної заміни.

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

Теоретичні відомості

В алгоритмі блокової перестановки в кожному блоці змінюється послідовність деяких подблоків всередині блоку, наприклад байт або біт в слові, причому порядок перестановок визначається ключем. Нехай є деяке вихідне повідомлення «MESSAGE», яке необхідно закодувати (Рис 1). Це повідомлення має довжину в 7 байт у випадку використання ASCII коду. Розіб'ємо даний блок тексту на три підблоки: «MES», «SA» і «GE».

M=4 N=6

M E

S S A

G E

Перший блок

Другий блок

Третій блок

Третій блок

Другий блок

Перший блок

G E

S A M

E S

Рис.1. Приклад блокової перестановки

Після перестановки ми отримаємо зашифроване повідомлення: «GESAMES». Дешифрування відбувається за тією ж схемою, але в зворотному порядку. Механізм шифрування / дешифрування цього блокового шифру реалізується за допомогою наступного алгоритму:

// Функція яка здійснює перестановку в блоці

// Str - вихідний текст до перестановки

// N і m – границі підблоків в блоці

// Return - текст після перестановки

// Правило формування:

// 1. блок розбивається на три підблоки, межами яких служать m і n

// 2. Третій підблок записується на місце першого

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]