You are on page 1of 83

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ДВНЗ «УНІВЕРСИТЕТ МИТНОЇ СПРАВИ ТА ФІНАНСІВ»

Факультет інноваційних технологій

Кафедра комп’ютерних наук та інженерії програмного забезпечення

ЛАБОРАТОРНА РОБОТА №1-9

З дисципліни «Технології захисту інформації»

«ВИКОНАВ» «ПЕРЕВІРИВ»

Студент групи К19-1 Професор кафедри комп’ютерних


наук та інженерії програмного
забезпечення

_______________ В.П.Іонідіс _______________ В.О. Яковенко

Підпис (П.І.Б.) Підпис (П.І.Б.)

Дніпро

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

Тема: Дослідження криптоалгоритма шифрування RSA

Мета роботи: дослідження структури алгоритму й методики практичної


реалізації криптосистеми шифрування RSA.
Завдання:

1. Скласти блок-схему й програму алгоритму шифрування RSA.

2. Лістинг програми шифрування заданого повідомлення М з використанням


алгоритму RSA.

3. Висновки: переваги й недоліки алгоритму шифрування RSA.


Теоретична частина

Як відомо, алгоритми симетричного шифрування використовують ключі


невеликої довжини і тому можуть швидко шифрувати більші обсяги даних.

При використанні алгоритму симетричного шифрування відправник і


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

Рішенням даної проблеми є використання асиметричних алгоритмів


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

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


бути відправлені по незахищених каналах. Концепція таких систем заснована
на застосуванні односпрямованих функцій. Як приклад односпрямованої
функції може служити цілочисельне множення. Пряме завдання - обчислення
добутку двох більших цілих чисел р та q, n=p*q. Це відносно нескладне
завдання для ЕОМ.
Зворотне завдання - факторизація або розкладання на множники великого
цілого числа практично нерозв’язні при досить більших значеннях n.

Наприклад, якщо р приблизно дорівнює q, а їхній добуток n приблизно


дорівнює 2664 , то для розкладання цього числа на множники буде потрібно 2 23
операцій, що практично неможливо виконати за прийнятний час на сучасних
ЕОМ.

Іншим прикладом односпрямованої функції є модульна експонента з


фіксованою основою й модулем.

Наприклад, якщо y = aх , те природно можна записати, що х = loga(у).

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

Для відомих цілих а, n, у варто знайти таке число х, при якому а х (mod n)
= y.

Наприклад, якщо а = 2664 та n=2664 знаходження показника ступеня х для


відомого y буде потребувати близько 1026 операцій, що також неможливо
виконати на сучасних ЕОМ .

У зв’язку з тим, що в цей час не вдалося довести, що не існує ефективного


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

Іншим важливим класом функцій, використовуваних при побудові


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

У даній лабораторній роботі досліджується криптосистема RSA, що


використовує модульну експоненту з фіксованим модулем і показником
ступеня ( тобто односпрямовану функцію із секретом).
Лістинг програми

Рис 1.1. Лістинг програми шифрування заданого повідомлення М з


використанням алгоритму RSA.
Рис 1.2. Лістинг програми шифрування заданого повідомлення М з
використанням алгоритму RSA.
Рис 1.3. Результат роботи програми шифрування заданого повідомлення М з
використанням алгоритму RSA.

Великою перевагою RSA є його масштабованість, ключі можуть бути


різної довжини шифрування: 768-бітний, 1024-бітний, 2048-бітний, 4096-
бітний і т. д.

RSA засновано на простому математичному підході, тому його реалізація в


інфраструктурі відкритих ключів (PKI) стає легкою. Адаптивність і безпека
зробили RSA найбільш використовуваним алгоритмом асиметричного
шифрування для різних додатків, включаючи сертифікати SSL / TLS,
криптовалюти та шифрування електронної пошти.
Висновок: У ході виконання Лабораторної роботи №1 ми дослідили
структури алгоритму й методики практичної реалізації криптосистеми
шифрування RSA.
Лабораторна Робота №2

Тема: Дослідження електронного цифрового підпису (ЕЦП) RSA

Мета роботи: Дослідження структури алгоритму й методики практичної


реалізації (ЕЦП) RSA.
Завдання:

1. Скласти блок-схему алгоритму й програму формування ЕЦП RSA.

2. Лістинг програми розрахунку ЕЦП RSA відповідно до завдання

3. Висновки переваги й недоліки ЕЦП RSA.


Теоретична частина

Рис 2.1. Блок-схема алгоритму ЕЦП RSA

Технологія застосування системи ЕЦП припускає наявність мережі


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

Одночасно при цьому виникає проблема, як аутентификації автора


електронного документа, так і самого документа, тобто встановлення
дійсності автора й відсутності змін в отриманому електронному
повідомленні.

В алгоритмах ЕЦП як і в асиметричних системах шифрування


використовуються односпрямовані функції. ЕЦП використовується для
аутентификації текстів, переданих по телекомунікаційних каналах.

ЭЦП являє собою щодо невеликий обсяг додаткової цифрової інформації,


переданої разом з підписаним текстом.

Концепція формування ЕЦП заснована на оборотності асиметричних


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

Система ЕЦП включає дві процедури:

- формування цифрового підпису;

- перевірку цифрового підпису.

У процедурі формування підпису використовується секретний ключ


відправника повідомлення, у процедурі перевірки підпису - відкритий ключ
відправника.

Безпека системи RSA визначається обчислювальними труднощами


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

Програма формування ЕЦП RSA.

Визначення відкритого «е» і секретного «d» ключів (дії відправника):

1. Вибір двох взаємно простих більших чисел р и q

2. Визначення їхнього добутку: n =р * q

3. Визначення функції Ейлера: ф(n) = (p-1)(q-1)

4. Вибір відкритого ключа е з урахуванням умов:

1<d<ф(n), НОД(d,ф(n))=1

5. Визначення секретного ключа e, що задовольняє умові

е * d = 1 (mod ф(n)), де e < n

Формування ЕЦП:
1. Обчислення хеш-значення повідомлення М: m = h (M)

2. Для одержання ЕЦП шифруємо хеш-значення т за допомогою

секретного ключа d і відправляємо одержувачеві цифровий підпис S=m d


(mod

n) і відкритий текст повідомлення М.

Аутентификація повідомлення - перевірка дійсності підпису

1. Розшифровка цифрового підпису S за допомогою відкритого

ключа е й обчислення її хеш-значення m’= Se (mod n)

2. Обчислення хеш-значення прийнятого відкритого тексту М

m=h(M)

3. Порівняння хеш-значень m і m’ ; якщо m=m’, то цифровий підпис S -

достовірна.
Лістинг програми

Рис 2.2. Лістинг програми розрахунку ЕЦП RSA відповідно до завдання


Рис 2.3. Лістинг програми розрахунку ЕЦП RSA відповідно до завдання
Рис 2.4. Результат

Висновки

Плюси ЕЦП

широка сфера застосування. Даний різновид електронного підпису


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

 при використанні ЕЦП на підприємствах значно скорочує об’єм


паперової документації;
 гарантує захист цілісності документа – зміни в текст проявляються
при перевірці підпису.

Мінуси ЕЦП

 Спірне застосування ЕЦП на міжнародному рівні. Законодавство


України передбачає декілька умов за яких ЕЦП може
прирівнюватись до власноручного, усі вони вимагають посиленого
сертифіката, що є українським ноу-хау, який міжнародним
законодавством не визначений. З цього випливає, що при
використанні ЕЦП для здійснення правочинів між юридичними чи
фізичними особами, в яких одна сторона знаходиться за межами
України, будуть виникати розбіжності, і у разі виникнення спору
суду буде складно прийняти рішення щодо законності даного
документа.
оскільки такий підпис зберігається на окремому носії (наприклад, на
флеш-карті), його можна загубити, викрасти та відповідно зробити
певні дії на користь третіх осіб без реальної згоди особи, на відміну
від підпису, який здійснюється власноручно і є невідокремленим від
людини.
 Не набули поширення у приватній сфері, внаслідок зарегульованості
даної сфери та необхідності додаткових витрат на його одержання та
використання.
Висновок: У ході виконання Лабораторної роботи №2 ми дослідили
структури алгоритму й методики практичної реалізації (ЕЦП) RSA.
Лабораторна Робота №3

Тема: Дослідження криптоалгоритма шифрування Ель-Гамаля

Мета роботи: Дослідження структури алгоритму й методики практичної


реалізації криптосистеми шифрування Ель-Гамаля.
Завдання:

1. Скласти блок-схему й програму алгоритму шифрування Ель-Гамаля.

2. Лістинг програми шифрування заданого повідомлення з використанням


алгоритму Ель-Гамаля.

3. Висновки: переваги й недоліки алгоритму шифрування Ель-Гамаля.


Теоретична частина

Схема шифрування Ель-Гамаля може бути використана як для формування


цифрових підписів, так і шифрування даних.

Безпека схеми Ель-Гамаля обумовлений складністю обчислення


дискретних логарифмів у кінцевому полі.

У цей час найбільш перспективними системами криптографічного захисту


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

Відкритий ключ не є секретним і може бути опублікований для


використання всіма користувачами системи, які зашифровують дані.

Розшифровування даних за допомогою відкритого ключа неможливо.

Для розшифрування даних одержувач зашифрованої інформації


використовує секретний ключ, що не може бути визначений з відкритого
ключа.

При використанні алгоритму шифрування Ель-Гамаля довжина


шифротекста вдвічі більше довжини вихідного відкритого тексту М.

У реальних схемах шифрування необхідно використовувати як модуль

n велике простої число, що має у двійковому поданні довжину 512... 1024


біт.

Слід зазначити, що формування кожного підпису по даному методі


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

Рис 3.2. лістинг програми шифрування Ель-Гамаля.

Рис 3.2. результат


Висновок на відміну від RSA, алгоритм Ель-Гамаля не запатентовано, і тому
він став дешевшою альтернативою, оскільки оплата внесків за ліцензію не
потрібна. Вважається, що алгоритм потрапляє під дію патенту Діффі-
Геллмана.
Висновок: У ході виконання Лабораторної роботи №3 ми дослідили
структури алгоритму й методики практичної реалізації Ель-Гамаля.
Лабораторна Робота №4

Тема: Дослідження електронного цифрового підпису (ЕЦП) Ель-Гамаля

Мета роботи: Дослідження структури алгоритму й методики практичної


реалізації (ЕЦП) Ель-Гамаля.
Теоретична частина

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

під документом абсолютно не придатні при обробці документів в


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

При обміні електронними документами по мережі значно знижуються


витрати, пов’язані з їхньою обробкою, зберіганням і пошуком.

Одночасно при цьому виникає проблема, як аутентифікації автора


електронного документа, так і самого документа, тобто встановлення
дійсності автора й відсутності змін в отриманому електронному
повідомленні.

ЕЦП використовується для аутентифікації текстів, переданих по


телекомунікаційних каналах. Функціонально вона аналогічна звичайного
рукописного підпису й має основні її властивості:

- засвідчує, що підписаний текст виходить від імені, що

поставило підпис;

- не дає цій самій особі можливості відмовитися від

Зобов’язань, пов’язаних з підписаним текстом; гарантує цілісність

підписаного тексту.

ЕЦП являє собою щодо невеликий обсяг додаткової цифрової

інформації, переданої разом з підписаним текстом.


Концепція формування ЕЦП за схемою Ель-Гамаля також заснований

на оборотності асиметричних шифрів і на взаємозв&#39;язку вмісту

повідомлення, самого підпису й пари ключів.

Ідея алгоритму цифрового підпису Ель-Гамаля заснований на тім, що

для обґрунтування практичної неможливості фальсифікації цифрового

підпису в ній використана більше складне обчислювальне завдання

дискретного логарифмування, чим розкладання на множники великого

цілого числа. Основним достоїнством такої схеми цифрового підпису є

можливість вироблення ЕЦП для великої кількості повідомлень із

використанням одного секретного ключа.

Безпека схеми Ель-Гамаля обумовлений складністю обчислення

дискретних логарифмів у кінцевому полі.


Лістинг програми

Рис 4.2. лістинг програми шифрування (ЕЦП) Ель-Гамаля.


Рис 4.3. лістинг програми шифрування (ЕЦП) Ель-Гамаля.

Рис 4.3. Результат


Висновок: У ході виконання Лабораторної роботи №4 ми дослідили
структури алгоритму й методики практичної реалізації ЕЦП Ель-Гамаля.
Лабораторна Робота №5

Тема: Дослідження надійності парольного захисту

Мета роботи: Дослідження стійкості парольного захисту до ”взлому”


методом підбору.
Теоритична частина

У комп’ютерних системах паролі застосовуються для захисту ресурсів

і при реєстрації в системі.

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


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

Парольний захист широко використовується в мережах: практично кожен,


хто працює в Internet, стикається з необхідністю використання паролів.

Вибір паролю користувача грає виключно важливу роль, оскільки


більшість спроб доступу до захищених ресурсів і проникнення в систему в
тому чи іншому ступені пов’язані з підбором пароля.

Пароль, по суті справи, є першою “лінією оборони” у системі безпеки.

Погано підібраний пароль або парольна фраза може практично знецінити


систему безпеки.

При виборі пароля варто використовувати наступне:

Поганим вважається пароль, у якому використовували:

 Будь-яке власне ім’я;


 Будь-яке слово, що є в якому-небудь словнику;
 Ідентифікатор користувача, привласнений йому системою, а також
будь-які його варіації, наприклад, представлені букви і т.п.;
 Будь-яку дату народження;
 Той самий символ, повторений кілька разів, (наприклад, RRRRRRR);
 Будь-який рядок символів, довжина якого не перевищує шести букв;
 Перший пароль, що потрапив на очі, наприклад, взятий з яких- небудь
посібників, книг і т.п.;
 Пароль, встановлений на Вашому комп’ютері кимсь іншим і який Ви
не змінили.
 Хорошим вважається пароль, при виборі якого використовувалося
наступне:
 Незв’язана між собою пара слів, обраних зі словника і розділена яким-
небудь знаком, наприклад, hotbed%esquire
 Вимовний набір букв або безглузда фраза довжиною не менш восьми
символів, наприклад, roshanitewa
 Випадковий рядок символів у форматі номерних знаків автомобілів,
наприклад, 9NSL656 (але тільки не номерний знак свого автомобіля
або номерний знак кого-небудь з відомих Вам автомобілів !!!)
 Ініціали і телефонний номер кого-небудь, кого Ви ніколи не знали і не
знаєте. Їх можна вибрати навмання з телефонного довідника

Гарна парольна фраза не повинна бути цитатою з якої-небудь широко


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

Існують програми генерації паролів (і шифрувальних ключів). Якщо


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

Для реалізації методики потрібні два гральних кубики (гральні кости).


Практична частина

Завдання №1

буквено- цифровий цифровий з букв і


числовий: десятковий: шістнадцятирічний: дифтонгів:

1 5 E 4 4 g U

5 2 Z 5 9 nk

3 2 N 3 D r

4 4 V 1 5 cr

4 2 T 9 3 Z

3 4 P 5 F t

Завдання №2
Лістинг програми

Рис 6.2.Програма для взлому паролю

Рис 6.1.Результат
Висновок: У ході виконання Лабораторної роботи №5 ми дослідили
стійкості парольного захисту до ”взлому” методом підбору.
Лабораторна Робота №6

Тема: Дослідження простих криптографічних систем. криптографія.

Мета роботи: Дослідження простих криптографічних систем. Криптоаналіз.


Теоритична частина

1.Шифри простої та багаторазової підстановки. буквою або символом.

Вихідний текст:

Т 1 Т 2 Т 3 Т 4 Т 5 ...

Шифр:

К 1 К 2 К 3 К 4 К 5 ... = f(К 1 ) f(К 1 ) f(К 1 ) f(К 1 )

f(К 1 )f(К 1 )...,

Причому f(К i ) має зворотну функцію.

Ключ являє собою просто перемішаний алфавіт (якщо букви

заміняються буквами).

Приклад.

Алфавіт:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

Обрано таке перемішування алфавіту (ключ):

XGUACDTBFHRSLMQVYZWIEJOKNP

При такому ключі в тексті, який шифрується

A заміняється на X

B заміняється на G

C заміняється на U

D заміняється на A
E заміняється на C

і т.п.

Вправа. Використовуючи перестановку приклада, розшифруйте


криптограму:

MEUSCXZOCXVQM

У шифрі багаторазової підстановки використовуються послідовно n


простих підстановок.

Приклад. Нехай n = 3. Використовуючи той же ключ, маємо для тексту


“input”:

I N P U T / вихідний текст

F M V E I / 1-я підстановка

D L J C F / 2-я підстановка

A S H U D / 3-я підстановка = криптограма.

Розшифровка виконується зворотнім виконанням відповідних підстановок.

2. Перестановочні шифри з фіксованим періодом.

Букви тексту поділяються на групи довжиною d. У кожній групі


застосовується та сама перестановка (транспозиція).

Ця перестановка і є ключ.

Нехай, наприклад, d = 5.

Визначимо перестановку:

23154

При такій перестановці в кожній групі

на 1-і місце переставляється 2-я буква,


на 2-і місце переставляється 3-я буква,

на 3-і місце переставляється 1-я буква,

на 4-і місце переставляється 5-я буква,

на 5-і місце переставляється 4-я буква.

Нехай тепер шифрується текст:

Т 1 Т 2 Т 3 Т 4 Т 5 Т 6 Т 7 Т 8 Т 9 Т 10 Т 11 Т 12 Т 13 Т 14 Т 15 ...

Після розбивки на групи:

Т 1 Т 2 Т 3 Т 4 Т 5 Т 6 Т 7 Т 8 Т 9 Т 10 Т 11 Т 12 Т 13 Т 14 Т 15 ...

Після перестановок у групах:

Т 2 Т 3 Т 1 Т 5 Т 4 Т 7 Т 8 Т 6 Т 10 Т 9 Т 12 Т 13 Т 11 Т 15 Т 14 ...

Після об’єднання груп одержуємо криптограму:

Т 2 Т 3 Т 1 Т 5 Т 4 Т 7 Т 8 Т 6 Т 10 Т 9 Т 12 Т 13 Т 11 Т 15 Т 14 ...

Розшифровка виконується застосуванням до криптограми тієї ж

перестановки.

Вправа. Розшифруйте, використовуючи ключ (перестановку)

4 3 7 1 5 6 2:

TMOD_SN_RKOHEELS_EEAP___E___

Примітка. При виконанні перестановок, проміжки(пробіли) між

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

до довжини, кратної d = 7 шляхом додавання пробілів (для наочності

замість пробілу використовується знак підкреслення _).


Більш ефективне застосування не однієї, а послідовно декількох

перестановок. Якщо періоди цих перестановок d 1 , d 2 ... d n , то вони

еквівалентні одній перестановці з періодом d = НОК(d 1 , d 2 ... d n ), де


НОК -

найменше загальне кратне.

Вправа. Розшифруйте криптограму, отриману двома послідовними

перестановками

315794268

5 4 3 2 1:

TNNAACO_IL_OMMYC_OONHOT_FN_TEU_Y_R

______

Примітка. При виконанні обох перестановок враховувалися пробіли

між словами. Текст також вирівнювався пробілами відповідно до довжин 9

і 5 відповідно (див. вище).

3. Шифр Виженера і його варіанти

Простий шифр Виженера. Букви алфавіту нумеруються від А = 0 до Z

= N-1. Як ключ використовується набір d букв (період шифру). Ключ

підписується з повторенням під текстовою послідовністю аж до кінця

тексту. З цих двох послідовностей (тексту і повторюваного ключа)

виходить третя послідовність - криптограма за правилом:

C i = (T i + K i ) mod N
де: N - обсяг алфавіту, C i - i-я буква криптограми, T i - i-я буква тексту,

K i - i-я буква ключа.

Приклад. Для англійського алфавіту N = 26. Послідовно нумеруємо

букви:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Ключ: G A H

Текст:

N O W I S T H E (Now is the ...)

Одержуємо криптограму політерним додаванням по модулі 26:

N O W I S T H E ...

13 14 22 8 18 19 7 4

G A H G A H G A ...

60760760

_________________________________

19 14 3 14 18 0 13 4 ...

T O D O S A N E ...

Остаточно маємо криптограму:

todosane...

Розшифровку шифрограми по Виженеру можна виконати по формулі:

M i = C i - K i , якщо С i &gt; К i ,
M i = 26 + (C i - K i ) якщо С i &lt; К i

Приклад:

T O D O S A N E ...

19 14 3 14 18 0 13 4 ...

G A H G A H G A ...

6 0 7 6 0 7 6 0 ...

19 - 6 = 13 N

14 - 0 = 14 0

3 - 7 = -4, 26 + (-4) = 22 W

14 - 6 = 8 I

18 - 0 = 18 S

0 - 7 = -7, 26 + (-7) = 19 T

13 - 6 = 7 H

4-0=4E

......

......

......

4. Складений шифр Виженера утворюється послідовним

застосуванням двох або більш простих шифрів Виженера з періодами d 1 ,


d2

... dn . Як і у випадку шифру складеної перестановки, що одержаний період

d = НОК(d 1 , d 2 ... d n ),
де НОК - найменше загальне кратне періодів d 1 , d 2 ... d n .

5. Шифр Виженера з перемішаним один раз алфавітом. “Прямій”

варіант шифру являє собою просту підстановку з наступним застосуванням

шифру Виженера. “Зворотний” варіант - шифр Виженера з наступною

простою підстановкою.

6. Шифр Вернама - це простий шифр Виженера з ключем

необмеженої довжини, у якому букви k i вибираються випадково і

незалежно друг від друга.

Для генерації необхідної ключової послідовності використовують

програмний генератор псевдовипадкових чисел (ПВЧ), що виробляє

псевдовипадкову послідовність по певним чином обраному т.зв. числу, що

породжує.

7. Шифр бігучого ключа - це шифр Вернама, у якому як ключ

використовується осмислений текст.

8. Шифр Цезаря. Окремий випадок шифру Виженера з періодом

шифру = 1.

Кожна буква тексту попросту циклічно зрушується на фіксоване

число (n) місць уперед за алфавітом. Це число (від 0 до N, де N - обсяг

алфавіту) і є ключем.

Вправа. Розшифруйте криптограму (n = 2):

YGBPGGFBOQTGBUPQYBHQTBDCVVGTBUMKKPI
Примітка.

1. Використано алфавіт англійської мови:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

2. Знак пробілу в тексті замінений іншим знаком алфавіту.

(Визначите, який саме це знак).

9.Шифр Бофора. Текст шифрується по формулі:

C i = (T i - K i ) mod N

10. Видозмінений Шифр Бофора. Текст шифрується по формулі:

C i = (K i - T i ) mod N

Вправа. Виведіть алгоритми дешифрування для простого і

видозміненого шифрів Бофора і покажіть на прикладі їх застосування.

Шифр Бофора з періодом = 1 називається зворотним шифром Цезаря.

11. n-грамні підстановки.

Замість 1-ої букви тексту підставляються 2, 3, ... або n букв.

При N-грамній підстановці ключ складають на основі всіляких

перестановок (N) n n-грам.

Практично ключ складається на основі масиву, у якому по першому

вимірі змінюється перша буква, по другому - друга буква і т.д. n-грами.

Приклад. для діаграмної підстановки в англійському алфавіті число

перестановок = (26) 2 = 676.

Для цього випадку можна використовувати таблицю, у якій по рядках


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

Шифр “Плейфер” (Playfair)

Приватний вид діаграмної підстановки. Для шифровки англомовних

текстів. Як ключ використовується таблиця розміру (5х5), т.зв. ключовий

квадрат. Елементи таблиці - випадково перемішані букви алфавіту.

Приклад:

LZQCP

AGNOU

RDMIF

KYHVS

XBTEW

При складанні квадратної таблиці одна з 26 букв латинського

алфавіту є “зайвою”. В англійських текстах без збитку для читаності і

розуміння можна не розрізняти букви I і J, а при шифровці вважати їх за

одну букву - I. Тому в таблиці букви J немає.

При шифровці кожна діаграма тексту заміняється діаграмою з

таблиці.

Алгоритм шифрування простіше пояснити на прикладі.

12. 1-й випадок: букви діаграми тексту обмежують прямокутну область


(прямокутник) у ключовому квадраті.
Нехай діаграма тексту - АС. Букви діаграми АС обмежують

Прямокутник

LZQC.

AGNO.

.....

.....

.....

При шифруванні замість АС підставляється діаграма LO, букви якої

розташовані в протилежних кутах даного прямокутника. Буква L береться

першою, тому що буква L знаходиться вище букви А.

13

2-й випадок: букви діаграми тексту знаходяться на одній

горизонталі ключового квадрата. Заміняються буквами, які розташовані

правіше на 1 позицію. Якщо друга буква діаграми тексту відповідає

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

горизонталі. Т.ч., підстановка виконується циклічно.

Нехай діаграма в тексті - RI. Букви діаграми знаходяться на

горизонталі R ... F:

.....
.....

RDMIF

.....

.....

У криптограмі замість RI підставляється DF. Якщо ж діаграма тексту -

RF, то діаграма криптограми буде DR.

`14

3-й випадок: букви діаграми тексту знаходяться на одній вертикалі

ключового квадрата. Заміна виконується аналогічно 2-му случаю. Так, PS

заміниться на UW, SW - на WP і т.п.

4-й випадок: букви діаграми в тексті збігаються. При шифруванні

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

реальних мов це практично не позначиться на розумінні осмислених

текстів.

Розшифровка криптограми виконується в зворотному порядку.

Шифр з автоключем

Шифр типу Виженера, у якому або самому тексті або його ж

криптограмі використовуються в якості “ключа”. Шифрування


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

довжину первинного ключа.

Приклад. Первинний ключ: “comet”.

Текст: “send supplies...”

“Ключ” - сам текст.

Нумерація букв алфавіту:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Маємо:

S E N D S U P P L I E S ... / текст

C O M E T S E N D S U P ... / первинний ключ + ключ (сам текст)

U S Z H L M T C O A Y H ... / криптограма

Якщо ж використовувати як ключ криптограму, то одержимо:

S E N D S U P P L I E S ... / текст

C O M E T U S Z H L O H ... / первинний ключ + ключ

(криптограма)

U S Z H L O H O S T T S ... / криптограма

Розшифровка виконується в зворотному порядку.

Вправа. Відробіть і перевірте алгоритм розшифровки самостійно.

Дробові шифри
У цих шифрах кожна буква спочатку перетвориться в дві (або більше)

букв або в два (або більше) числа, потім отримані символи перемішуються,

наприклад, за допомогою перестановки. Після цього їх можна перевести в

первісний алфавіт.

Приклад. Перетворення для 25-буквеного алфавіту виконується по

таблиці:

01234

0LZQCP

1AGNOU

2RDMIF

3KYHVS

4XBTEW

Так, буква “У” перетвориться в число 41.


Лістинг програми

Рис 6.1. код програми


Рис 6.2. код програми

Рис 6.3. результат


Висновок: У ході виконання Лабораторної роботи №6 ми дослідили прості
криптографічні системи.
Лабораторна Робота №7

Тема: Дослідження методів програмної генерації псевдовипадкових чисел


для криптографічних систем.

Мета роботи: Вивчити теоретичні основи програмних методів генерації


псевдовипадкових послідовностей чисел (ПВЧ). Одержати досвід реалізації
генераторів (датчиків) ПВЧ. Досліджувати практичні характеристики
генераторів ПВЧ.
Теоритична частина

Введення.

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


одержання випадкових чисел.

Наприклад, для того щоб одержати текст, зашифрований методом


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

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


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

Таким чином в будь-яке програмне рішення закладене принципове


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

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


генераторами або датчиками псевдовипадкових чисел (ПВЧ).

До гарних датчиків ПВЧ і до числових послідовностей (гам), які вони


генерують пред’являються такі вимоги:
1. період повторення гами повинний бути максимально

великим, по-крайній мері, більше довжини шифруємого тексту

(найбільш важлива вимога);

2. гама повинна бути не передбачуваною: по частині гами і

закону її формування, не може бути можливим пророчення

попереднього або наступного фрагменту цієї гами;

3. продуктивність датчика ПВЧ, тобто кількість генеруємих

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

додатків (статистичне зондування, моделювання в реальному часі і

т.д.) може вимагатися продуктивність порядку 10 10 -10 12 випадкових

чисел у секунду.

4. алгоритм генерації гами повинний бути максимально

простим.

1.1. Дробові датчики

Це одні з перших в історії датчиків ПВЧ.

Дробовий датчик формує ПВЧ по формулі:

Y n = FRAC(A*n + B),

де А и В первісні дробові числа великої розрядності; n - лічильник

поточної ітерації; FRAC- операція взяття дробової частини від отриманого


результату.
Якщо n пробігають усі значення 1..N, то числа Y n виглядають досить
випадковими. Доведено, що при раціональному коефіцієнті А множина чисел
Y n кінцева, а при ірраціональному - нескінченно і щільно по всьому
інтервалі 0..1. Для поліпшення властивостей дробових датчиків ПВЧ, можна
застосувати поліноміальну формулу більш високого порядку, наприклад:

Y n = FRAC(A*n + B*n + C).

Однак характеристики ПВЧ у будь-якому випадку недостатні для


практичного застосування дробових датчиків у сучасних криптографічних
системах. Справа в тім, що для представлення ірраціональних чисел потрібна
нескінченна кількість розрядів, що неможливо, а у випадку використання
раціональних чисел велика ймовірність одержання циклів з малими
періодами. Крім того, для даного класу генераторів ПВЧ неможливо дати
строге математичне обґрунтування нижньої границі періоду повторення
послідовності, тому що вона дуже сильно залежить від вихідних чисел.

1.2. Конгруентні датчики

Датчики цього типу прості в реалізації, але можуть не забезпечувати


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

Найбільш простий з конгруентних датчиків – лінійний. Він генерує гаму


Yn , описану співвідношенням:

Yn+i = (A*Yn + C) mod М,

де n = 0,1,2, . . М; М - період гами; А и С – константи; Y 0 - вихідне

(породжуюче) число.
ЗАУВАЖЕННЯ. При використанні потокових криптосистем, наприклад
при шифруванні/розшифруванні методом гамування числа A,C і Y 0 можуть
бути використані як ключ шифру.

Період повторення залежить від обраних значень А и С. Значення М


зазвичай встановлюють рівним 2n , де n - довжина машинного слова в бітах.
Період М буде максимальним тільки тоді, коли С - непарне, і A mod 4 = 1.

1.3. Датчики ПВЧ на лінійних послідовних автоматах

Генератори на лінійних послідовних автоматах (ЛПА) також відносно


легко реалізуються апаратної і програмно. Апаратні ЛПА являють собою
електронні схеми на основі регістрів сдвигу і суматорів по mod 2.

Для побудови датчиків ПВЧ на основі ЛПА використовуються поліноми,


що породжують. Поліномом ступеня, що породжує, n називається вираз
виду:

де коефіцієнти А о = А n = 1, а інші рівні 0 або 1.

Поліноми, що породжують, мають дві властивості:

- не діляться ні на який інший поліном,

- є дільниками полінома

Доведено, що лінійний послідовний автомат має максимальний період


повторення генеруємих чисел рівний 2 n - 1, у тому випадку, якщо
породжуючий поліном є т.зв. примітивним поліномом ступеня n.

ПРИМІТКА. Строге алгебраїчне визначення примітивності


полінома виходить за рамки досліджуваного курсу. Тому в розділі

“Практична частина” без коментарів приведений набір простих

поліномів 9-й ступеня, який варто використовувати при виборі

варіанта відповідного пункту завдання практичної частини.

Побудова датчика ПВЧ на ЛПА для варіанта апаратної реалізації

виконується так:

 виходячи з необхідного періоду генерації знаходиться поліном


відповідного ступеня, що породжує;
 будується сдвиговий регістр відповідної розрядності (при
необхідності декілька сдвигових регістрів з’єднуються каскадно);
 початковим заповнення сдвигового регістра може бути будь-яким.
(Це значення називається базою генерації);
 виходи тих тригерів сдвигового регістра, що відповідають ступеням
Х, що присутні у поліномі, що породжує, підключаються до
суматору по mod 2;
 крім цього, на вхід суматора по mod 2 додатково подається
константа “1”;
 вихід суматора по mod 2 підключається до входу сдвигового
регістра;
 після запуску датчика, на кожному кроці вміст регістра сдвигається
вправо на 1 розряд, а у звільнений крайній лівий розряд
переписується результат підсумовування з виходу суматора по mod
2.

Як вихід датчика ПВЧ на ЛПА можна використовувати будь-який з

тригерів сдвигового регістра або вихід суматора по mod 2. На виході


датчика таким чином, генерується потік біт, який потім можна

структурувати (наприклад побайтно) і інтерпретувати як потрібно.

Рис 7.1. Код програми дробного генератору

Рис 7.2. Результат


Рис 7.2. Код програми лінійно конгруентного генератору

Рис 7.3. Результат


Висновок: У ході виконання Лабораторної роботи №7 ми дослідили
практичні характеристики генераторів ПВЧ.
Лабораторна Робота №8

Тема: Криптоаналіз простих криптографічних систем.

Мета роботи: Ознайомитися з деякими методами криптоаналізу на


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

Ціль криптоаналізу - розшифровка криптограм.

Задача криптоаналітика полягає в тому, щоб відновити вихідний текст і


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

1. Розкриття шифру простої (моноалфавітної) підстановки.

При простій підстановці букви тексту замінюються відповідними буквами


перемішаного алфавіту (див. Лаб. роботу № 2). При цьому “статистика”
тексту в процесі шифровки не порушується.

Тому текст, зашифрований методом простої підстановки можна


розшифрувати визначенням частот букв у криптограмі і наступному
зіставленні з частотами букв алфавіту. У процесі такого зіставлення для
кожної букви тексту знайдеться (більш-менш вірогідно) “двійник” у
криптограмі.

Чим довша перехоплена криптограма, тим ефективніше криптоаналіз


частотним методом (тобто шляхом визначення статистики букв).

Розшифровці також сприяють:

1. Семантична (змістовна) надмірність шифруємих текстів.

2. Статистична збитковість мови тексту (низька ентропія мови).

Наприклад, ентропія російської мови нижче, ніж англійського.

З урахуванням збитковості для розкриття шифру простої підстановки

в деяких практичних випадках досить лише 30- 40-буквеного фрагмента

криптограми.
Рис 8.1. Частоти букв Англ алфавіту

Написати програму розшифровки криптограм, створених методом простої


підстановки. Вхід.

2.1. Вихідний текстовий файл програми шифровки методом простої


підстановки або текстовий файл, що представляє собою криптограму і
створений вручну за допомогою якого-небудь текстового редактора. У
першому (кращому!) випадку доцільно використовувати програми,
розроблені в Лаб. роботі
№ 2.

2.2. Таблиця статистики, отримана за допомогою програми

визначення статистики алфавіту (п. 1.Завдання) і одна з таблиць 1 -

4.

Довжина криптограми - не менш 30-40 букв. Вихід. розшифрований текст


(вивести на екран).

Примітка. Криптограму одержати по довільно обраному фрагменту того ж


файлу, що використовувався як вхідний для програми п. 1.

Завдання.

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


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

Рис 8.1. Код програми

Рис 8.2. Код програми


Рис 8.3. Код програми

Рис 8.3. Результат


Висновок: У ході виконання Лабораторної роботи №8 ми ознайомилися з
деякими методами криптоаналізу на прикладах розкриття шифрів простої
підстановки і Виженера.
Лабораторна Робота №9

Тема: Перешкодозахищене кодування інформації: дослідження лінійних


групових кодів для виявлення і виправлення помилок.

Мета роботи: Ознайомитися з принципами виявлення і виправлення


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

При передачі інформації з каналу зв’язку можливо її перекручування через


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

Сучасне устаткування систем передачі/збереження дуже надійне, однак


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

Тому в тих випадках, коли до надійності передачі/збереження інформації


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

Фундаментальні ідеї і розробки в задачах надійної передачі інформації з


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

Клоду Шеннону.

Розвиток Шенноновских ідей і розробок привело до створення численних


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

З позицій математичної теорії зв’язку К.Шеннона процеси


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

Надлишкові коди

Спочатку розглянемо рівномірні коди без надмірності (рівномірні – це такі,


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

n = log 2 N біт.

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


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

Типовим прикладом системи рівномірного не надлишкового кодування є


таблиця кодів ASCII. У цій системі кожен з 256 символів ( як друкованих так
і не друкованих) кодується вектором довжиною 8 біт (log 2 256 = 8). Кодові
системи без надмірності зовсім не захищені від помилок.

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


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

При побудові рівномірного надлишкового коду для кодування символів


використовуються кодові вектора довжиною

n > log2N біт,

т.ч. більше, ніж мінімально необхідна для ненадлишкового кодування.

Наприклад, нехай N = 256 (як у таблиці ASCII) Якщо використовувати для


кодування вектора довжину не 8, а скажемо, 12 біт, то ними можна було б

закодувати 212 = 4096 символів. Неважко переконатися, що з 4096 векторів

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

Всі інші вектора (їх число буде = 4096 - 256 = 3840) можна не
використовувати.

У термінах надлишкових кодів обрані 256 векторів називаються


дозволеними, а не використовувані 3840 - забороненими.

Неважко побачити, що при цьому помилка навіть в одному розряді


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

Якщо ж перешкоди в каналі настільки великі, що може відбутися


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

По цій же термінології:

виявлення помилки (помилок) означає можливість шляхом аналізу


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

виправлення помилки (помилок) означає можливість шляхом аналізу


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

Здатність надлишкового коду виявляти і виправляти помилки називається


коригувальною здатністю.

Зв’язок коригувальної здатності коду з кодовою відстанню.

Для оцінки ступеня розходження між довільними векторами даного коду


використовується величина мінімальної кодової відстані.

Кодова відстань d між двома векторами дорівнює числу біт в них, що


відрізняються. Наприклад:

V1 = 00101100

V2 = 01101001

d = 3.

Мінімальна кодова відстань dmin - це найменше з значень кодових


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

Для того, щоб за допомогою даного надлишкового коду можна було б


виявляти всі помилки кратності до t o включно, необхідне виконання такої

умови:

dmin >= to + 1

Для того, щоб за допомогою даного надлишкового коду можна було б

виправляти всі помилки кратності до t и включно, необхідне виконання

такої умови:

dmin >= 2tu+ 1


Для того, щоб за допомогою даного надлишкового коду можна було б

виправляти всі помилки кратності до t и включно й одночасно виявляти всі

помилки кратності до t o (при t o  t и ) включно, необхідне виконання


такої

умови:

dmin >= to + tu + 1

При цьому потрібно мати на увазі, що, якщо виявлена кодом помилка має
кратність to > tu , то така помилка виправлена бути не може, тобто в даному
випадку код тільки виявляє помилку.

Коригувальні можливості кодів у залежності від кодової відстані


ілюструється таблицею 1:

Рис 9.1. Коригувальна таблиця

Таким чином, виходячи з вимог до надійності передачі інформації і


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

Яка ж кількість додаткових (надлишкових) біт буде потрібно для


забезпечення даної корегувальної здатності, або, те ж саме, для даного d min ?
Бажано звичайно, щоб ця кількість була якомога менша.

По прийнятій термінології ці додаткові, надлишкові біти кодового вектора


називаються перевірочними або контрольними.

Відомий ряд формул для оцінок мінімальної кількості перевірочних біт


(оцінки Хемминга, Плоткіна, Елайєса, Варшамова-Гільберта).

Нехай:

k - кількість інформаційних біт, тобто кількість мінімально

необхідних для побудови рівномірного ненадлишкового коду біт,

r - кількість перевірочних біт,

n - повна довжина кодового вектора, n = k + r,

то, наприклад, оцінка Варшамова-Гільберта така:

r >= log2 (1 + )

У даній лабораторній роботі для даних k = n - r і d min можна

використовувати також заздалегідь розраховані значення r, зведені в

таблицю 2:
Рис 9.2.

Лінійні групові коди.

Припустимо, що по заданим технічним вимогам визначені:

- необхідна кількість інформаційних біт k = 2 N , де N – обсяг алфавіту


підлягаючого кодуванню символів,

- корегуюча здатність коду, кількість перевірочних розрядів r і, відповідно


загальна довжина кодового вектора n = k + r.

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


векторів, перевірки їх правильності і корекції помилкових біт у прийнятих
векторах?

Як приклад рішення цього питання в даній роботі розглядаються


алгоритми кодування /декодування за допомогою систематичних лінійних
групових кодів (ЛГК).

ЛГК відносяться до класу систематичних кодів. У таких кодах значення


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

Внаслідок лінійності ЛГК має наступну властивість: сума по mod2 будь-


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

Будемо позначати інформаційні біти через И i , (i = 1...k),а перевірочні -

через П j (j = 1...r).

Набір вихідних векторів довжиною N біт вибирається таким чином.

1. Всі вихідні вектора повинні бути різні.

2. Нульовий вектор (це вектор, всі біти якого - нулі) не входить у

число вихідних.

3. Всі вихідні вектора повинні бути лінійно незалежні, тобто

необхідне виконання такої умови:

де коефіцієнт a i = 0 або 1 і ця умова може не виконуватися тільки у


випадку тотожної рівності 0 усіх ai , тобто при

4. Кожен вихідний кодовий вектор, як і будь-який ненульовий дозволений


вектор, повинен містити кількість одиниць не менш dmin .

5. Кодова відстань між будь-якими парами вихідних векторів повинна бути


не менше, ніж dmin .

Підібрані таким чином m ( m < 2 N ) вихідних кодових векторів однозначно


визначають конкретний систематичний код, зокрема, ЛГК і дозволяють
одержати інші 2 N - m дозволених векторів підсумовуванням по mod 2
усіляких сполучень вихідних векторів.

Але такий спосіб одержання дозволених векторів незручний для


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

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

ЛГК. Практично матрицю будують так. У якості інформаційної підматриці


беруть одиничну матрицю Ek,k у канонічній (ліводіагональній) формі розміру
k*k:

1 0 0 … 0

0 1 … 0

0 1 … 0

… … … … …

0 0 0 … 1

Перевірочна ж підматриця ( позначимо її C r,k )будується шляхом підбора


різних r-розрядних підвекторів, що задовольняють наступним умовам:

- кількість одиниць у кожнім рядку перевірочної підматриці повинна бути


не менш dmin - 1;
- сума по mod 2 двох будь-яких рядків повинна мати не менш d min – 2
одиниць.

Лістинг програми

Рис 9.3. Код програми


Рис 9.4. Код програми

Рис 9.5. Результат


Висновок: У ході виконання Лабораторної роботи №9 ми ознайомилися з
принципами виявлення і виправлення помилок при передачі інформації з
комунікаційних каналів або при збереженні її на магнітних або оптичних
носіях.

You might also like