Шифрування за допомогою шифра Енігма

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 04.06.2015
Размер файла 720,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Вступ

Шифр Енігма взяв початок з шифрувальної машина часів Другої світової війни. Енігма-- типовий представник класу так званих дискових шифрувальних машин, оскільки основою її механізму є диски з 26-ма перепайками. Перші згадки про Енігму відносяться до 1918 року. Використовувалася для шифрування і дешифрування секретних повідомлень. Точніше, Енігма-- це ціла родина електромеханічних роторних машин, що застосовувалися з 20-х років XX століття.

Енігма використовувалася в комерційних цілях, а також у військових і державних службах в багатьох країнах світу, але найбільшого поширення набула в нацистській Німеччині під час Другої світової війни. Саме Енігма вермахту (Wehrmacht Enigma)-- німецька військова модель-- найчастіше є предметом дискусій. У грудні 1932 польські шифрувальники вперше зламали німецькі військові шифри Енігми. Ця машина отримала погану славу, тому що криптоаналітики антигітлерівської коаліції змогли розшифрувати велику кількість повідомлень, зашифрованих з її допомогою. Спеціально для цих цілей була створена машина з кодовою назвою «Бомба», що надала значну перевагу антигітлерівській коаліції у війні. Уся інформація, отримана криптоаналізом з її допомогою, мала кодову назву ULTRA.

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

1. Опис функціонування пристрою

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

Механічні частини рухалися, утворюючи електричний контур, що міняється,тобто, фактично, шифрування букв здійснювалося електрично. При натисненні клавіш, контур замикався, струм проходив через різні компоненти і у результаті включав одну з безлічі лампочок, що відображувала букву, що виводилася. Наприклад, при шифруванні повідомлення, що починається з ANX, оператор спочатку натискав кнопку A, і спалахувала лампочка Z, тобто Z ставала першою буквою криптограми. Оператор продовжував шифрування N так само, і так далі. Для пояснення принципу роботи Енігми приведена діаграма ліворуч.

Діаграма спрощена: насправді механізм складався з 26 лампочок, клавіш, перемикачів і електричних схем усередині роторів. Струм йшов з батареї (1) через перемикач (2) в комутаційну панель (3). Комутаційна панель дозволяла перекомутувати з'єднання між клавіатурою (2) і нерухомим вхідним колесом (4). Далі струм проходив через роз'їм (3), в цьому прикладі невживаний, вхідне колесо (4) і схему з'єднань трьох (у армійській моделі) або чотирьох (у військово-морській моделі) роторів (5) і входив в рефлектор (6). Рефлектор повертав струм назад, через ротори і вхідне колесо, але вже по іншому шляху, далі через роз'їм «S», сполучений з роз'їмом «D», через інший перемикач (9), і запалювалася лампочка.

Рис. 1 Схема роторної реалізації приладу

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

1.1 Ротори

Ротори -- це серце Енігми. Кожен ротор був диском приблизно 10 см в діаметрі, зроблений з твердої гуми або бакеліту, з пружинними штирьовими контактами на одній стороні ротора, розташованими по колу.

На іншій стороні знаходилася відповідна кількість плоских електричних контактів. Штирьові і плоскі контакти відповідали буквам в алфавіті, зазвичай це були 26 букв від A до Z. При зіткненні контакти сусідніх роторів замикали електричне коло. Усередині ротора кожен штирьовий контакт був получений з одним з плоских. Порядок з'єднання міг бути різним.

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

Військові моделі Енігми випускалися з різною кількістю роторів. Перша модель містила тільки три, 15 грудня 1938 року їх стало п'ять, але тільки три з них одночасно використовувалися в машині. Ці типи роторів були позначені римськими числами від I до V, і у кожного була одна виїмка, розташована в різних місцях алфавітного кільця. У військово-морських моделях завжди знаходилося більша кількість роторів, ніж в інших: шість, сім або вісім. Ці додаткові ротори позначалися числами VI, VII і VIII, усе з різною електропроводкою.

Чотирьохроторна військово-морська модель Енігми, M4 мала один додатковий ротор, хоча була такого ж розміру, що і трьохроторна, за рахунок тоншого рефлектора. Існували два типи цього ротора: Бета і Гамма. В процесі шифрування він не рухався але міг бути встановлений вручну на будь-яку з 26 різних позицій.

1.2 Ступеневий рух роторів

Ступеневий рух роторів Енігми. Всі три собачки (позначені зеленим) рухаються одночасно. Для першого ротора (1), храповик (червоний) завжди зачеплений, і він повертається при кожному натисканні клавіші. В даному випадку виїмка на першому роторі дозволяє собачці зачепити і другий ротор (2), він повернеться при наступному натисканні клавіші. Третій ротор (3) не зачеплений, так як собачка третього ротора не потрапила у виїмку другого, собачка буде просто ковзати по поверхні диска.

Кожен ротор був прикріплений до шестерінки з 26 зубцями (храповик), а група собачок зачіпляються зубці шестерень. Собачки висувалися вперед одночасно з натисканням клавіші на машині. Якщо собачка чіпляла зубець шестерінки, то ротор обертався на один крок. У армійської моделі Енігми кожен ротор був прикріплений до регульованого кільцю з виїмками. П'ять базових роторів (I-V) мали по одній виїмці, тоді як у військово-морській моделі (VI-VIII) - по дві. У певний момент виїмка потрапляла навпроти собачки, дозволяючи їй зачепити храповик наступного ротора при наступному натисканні клавіші. Коли ж собачка не потрапляла у виїмку, вона просто прослизала по поверхні кільця, що не чіпляючи шестірню. У системі з однією виїмкою другий ротор просувався вперед на одну позицію за той же час, що перший - на 26. Аналогічно, третій ротор просувався на один крок за той же час, за який другий робив 26 кроків.

Особливістю машини було те, що другий ротор також повертався, якщо повертався третій. Це означає, що другий ротор міг обернутися двічі при двох послідовних натискань клавіш - так зване «двокрокового рух», - що призводило до зменшення періоду. Двокрокового рух відрізняє функціонування роторів від нормального одометра. Подвійний крок реалізовувався наступним чином: перший ротор обертався, змушуючи другий також повернутися на один крок. І, якщо другий ротор просунувся в потрібну позицію, то третя собачка зачіпляються третю шестірню. На наступному кроці ця собачка штовхала шестірню і просувала її, а також просувала і другий ротор. З трьома дисками і тільки з однією виїмкою в першому і другому диску, машина мала період 26 Ч 25 Ч 26 = 16 900. Як правило, повідомлення не перевищували пари сотень символів, і, отже, не було ризику повтору позиції роторів при написанні одного повідомлення . У четирёх роторних військово-морських моделях ніяких змін в механізм внесено не було. Собачок було тільки три, тобто четверта ротор ніколи не рухався, але міг бути вручну встановлений на одну з 26 позицій. При натисканні клавіші ротори поверталися до замикання електричного кола....

1.3 Вхідне колесо

Вхідне колесо (нім. Eintrittswalze), або вхідний статор, єднало комутаційну панель або (у разі її відсутності) клавіатуру і лампову панель з роторами. Незважаючи на те, що фіксований зв'язок проводів грало порівняно невелику роль з точки зору безпеки, саме це виявилося деяким перешкодою в роботі польського криптоаналитика Маріана Реевского, коли він намагався визначити спосіб комутації проводів усередині роторів. Комерційна модель Енігми з'єднувала букви в порядку їх слідування на клавіатурі: Q > A, W > B, E > C і так далі.

Однак військова модель з'єднувала їх у прямому алфавітному порядку: A > A, B > B, C > C і т. Д. Тільки інтуїтивна здогадка Реевского дозволила йому змінити розрахунки і вирішити рівняння.

1.4 Рефлектор

За винятком ранніх моделей A і B, за останніми ротором слідував рефлектор (нім. Umkehrwalze), запатентована деталь, що вирізняла сімейство Енігми від інших роторних машин, розроблених в той час. Рефлектор з'єднував контакти останнього ротора попарно, коммутіруя струм через ротори в зворотному напрямку, але за іншим маршрутом. Наявність рефлектора гарантувало, що перетворення, здійснюване Енігмою, є інволюція, тобто дешифрування являє собою те ж саме, що і шифрування. Однак наявність рефлектора унеможливлює шифрування будь-якої літери через саму себе. Це було серйозним концептуальним недоліком, згодом стане в нагоді дешіфровщіков.

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

У армійської та авіаційної моделях Енігми рефлектор був встановлений, але не обертався. Він існував в чотирьох різновидах. Перший різновид була позначена буквою A. Наступна, Umkehrwalze B, була випущена 1 листопада 1937. Третя, Umkehrwalze C, з'явилася в 1941 році. Четверта, Umkehrwalze D, що вперше з'явилася 2 січня 1944, дозволяла оператору Енігми управляти настроюванням комутації всередині рефлектора.

1.6 Комутаційна панель

Комутаційна панель в передній частині машини. Могло використовуватися до 13 з'єднань. На фотографії переключені дві пари букв (S-O і J-A). Комутаційна панель (нім. Steckerbrett) дозволяє оператору варіювати з'єднання проводів. Вперше вона з'явилася в німецьких армійських версіях в 1930 році і незабаром успішно використовувалася і у військово-морських версіях. Комутаційна панель внесла величезний внесок у ускладнення шифрування машини, навіть більший, ніж введення додаткового ротора. З Енігмою без комутаційної панелі можна впоратися практично вручну, однак після додавання комутаційної панелі зломщики були змушені конструювати спеціальні машини.

Кабель, поміщений на комутаційну панель, з'єднував букви попарно, наприклад, E і Q могли бути з'єднані в пару. Ефект полягав у перестановці цих букв до і після проходження сигналу через ротори. Наприклад, коли оператор натискав E, сигнал прямував до Q, і тільки після цього вже у вхідний ротор. Одночасно могло використовуватися кілька таких пар (до 13).

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

2. Повне найменування програмного продукту

Повне найменування програмного продукту: «Шифрування за допомогою шифра Енігма» - надалі програма. Дана програма призначена для шифрування та дешифрування тексту.

Розроблювач - студент групи 11 ОКС Кудимов М.О.

Замовник - керівник курсового проекту Панченко О.О.

2.1 Призначення розробки

Дана розробка є курсовим проектом з предмету «Захист інформації». Призначена для закріплення отриманих знань з предмету.

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

2. Система повинна працювати з операційною системою Windows.

3. Система повинна працювати з консольним та файловим вводом - виводом.

4. Ключ криптосистеми повинен мати 128 біт.

5. Програма повинна працювати з довільними типами файлів.

2.3 Вимоги до надійності

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

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

1. Інспекцію вихідних текстів програми.

2. Автономне тестування модулів (методів) програми.

3. Тестування, сполучення модулів (методів) програми.

4. Комплексне тестування програми.

2.4 Контроль вхідної та вихідної інформації

Програма повинна контролювати вибір користувачем пункту меню «Вихід» і поперджувати про втрату «Не збереження змін».

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

2.5 Вимоги до програмного забезпечення

Програма повинна бути:

- універсальним;

- функціонально достатнім (повним);

- надійним (коректно завершити роботу програм без втрати даних);

- придатним до модернізації та масштабування.

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

Умови експлуатації, рекомендовані системні вимоги:

Windows

- 1,00 ГГц або швидше x86-сумісний процесор або Intel ® Atom ™ 1,6 ГГц або більш швидкий процесор для нетбуків

- Microsoft Windows 7 (32 біт і 64 біт) або Windows 8

- 512 Мб оперативної пам'яті (1 Гб оперативної пам'яті рекомендується для нетбуків); 128 Мбайт графічної пам'яті.

3. Практичная реалізація шифру енігма

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

Імітація Енігми

DEFINT I-N: DEFSTR S

CLS: RANDOM12E 231

DIM s (4, 32) AS STRING * 1

ns = 4

ss = "ААААААААААААААААААААААААААААА '

PRINT ss Шифрування

x = RND (-231)

FOR i = 0 TO ns

FOR j = 0 TO 32: set (i, j) = CHR $ (j): NEXT

FOR j = 0 TO 32: SWAP s (i, j), s (i, 32 * RND):

NEXT

NEXT

s = ""

FOR i = 1 TO LEN (ss) 'шифрування символу

k = ASC (MID $ (ss, i, 1)): IF k> 32 THEN k = k-128

FOR j = 0 TO ns: k = ASC (set (j, k)): NEXT

IF k <32 THEN k = k + 128

PRINT CHR $ (k); : S = s + CHR $ (k)

k = ns * RND 'поворот коліс

FOR j = 0 TO 31: SWAP s (k, j), s (k, j + 1): NEXT

FOR j = 0 TO 32

s (k, j) = CHR $ ((ASC (set (k, j)) + 32) MOD 33)

NEXT

NEXT

PRINT

Розшифрування

x = RND (-231)

FOR i = 0 TO ns

FOR j = 0 TO 32: s (i, j) = CHR $ (j): NEXT

FOR j = 0 TO 32: SWAP s (i, j), s (i, 32 * RND): NEXT

FOR j = 0 TO 32

IF ASC (set (i, j)) <64 THEN

m = j: n = ASC (s (i, j))

DO

k = ASC (s (i, n)): s (i, n) = CHR $ (m OR 64)

m = n: n = k

LOOP UNTIL m = j

END IF

NEXT j

FOR j = 0 TO 32

s (i, j) = CHR $ (ASC (s (i, j)) AND 63)

NEXT

NEXT i

ss = s

FOR i = 1 TO LEN (ss)

k = ASC (MID $ (ss, i, 1)): IF k> 32 THEN k = k-128

FOR j = ns TO 0 STEP -1

k = ASC (s (j, k))

NEXT

IF k <32 THEN k = k + 128

PRINT CHR $ (k);

k = ns * RND 'поворот коліс

FOR j = 0 TO 31: SWAP s (k, j), s (k, j + 1): NEXT

FOR j = 0 TO 32

s (k, j) = CHR $ ((ASC (s (k, j)) + 32) MOD 33)

NEXT

NEXT i

END

Після роботи програми на екрані з'являться три рядки, що зображують: верхня - вихідний текст з букв А, середня - шифровку і нижня - розшифрований текст:

ААААААААААААААААААААААААААААА

ВА ЖЖЬІХйЙЩСЛЦВФЕШЬРСОТСЗТИОБ

ААААААААААААААААААААААААААААА

4. Стадії та етапи розробки

Розробка програми повинна виконуватися по наступних етапах:

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

2. Розробка робочого проекту програми - 28 днів.

3. Приймання - здача з виправленням виявлених недоліків у програмі та програмної документації - 3 доби.

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

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

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

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

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

1. Використання перевірочних тестів, які складаються замовником завчасно.

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

3. В організації замовника із залученням сторонніх експертів.

4.1 Умови експлуатації

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

Розробка програми повинна вестися довільною мовою програмування. Для роботи програми необхідні операційна система Windows XP та більш пізні версії.

Техніко - економічні показники повинні визначатися замовником без участі виконавця.

Розробка повинна бути виконана в три стадії:

1. Розробка технічного завдання;

2. Робочі проектування;

3. Впровадження.

Етапи розробки:

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

Розробка повинна бути виконана в три стадії:

1. Розробка технічного завдання;

2. Робочі проектування;

3. Впровадження.

5. Алгоритм роботи

Рис. 2

Отже, приступимо до вивчення алгоритму. Давайте ж розберемо принцип роботи Трироторної Енігми. У ній було три відсіки для приміщення трьох роторів і додатковий відсік для розміщення рефлектора. Всього за час Другої світової війни було виготовлено вісім роторів і чотири рефлектора, але одночасно могло використовуватися рівно стільки, на скільки була розрахована машина. Кожен ротор мав 26 перетинів, що відповідало окремої букві алфавіту, а так само 26 контактів для взаємодії з сусідніми роторами. Як тільки оператор натискав на потрібну букву, - замикалася електричний ланцюг, в результаті чого з'являлася шифрована буква.

Замикання ланцюга відбувалося за рахунок рефлектора.... Після введення літери крайній правий ротор переміщався вперед, змінюючи тим самим ключ. Так яким же чином одна букву замінювалося на іншу? Як я вже говорив, для Енігми було розроблено вісім різних роторів. Усередині кожного з них було встановлено 26 різних комутацій. Тут представлена докладна специфікація на кожен з них. Наприклад, якщо на вхід першого ротора надходила буква «N», то на виході повинна бути тільки «W» і ніяка інша буква більше. Потрап це буква на другий ротор, вона б уже перетворилася в «T» і т.д. Тобто, кожен ротор виконував чітко поставлене завдання в плані комунікації. А яку ж роль грали кільця?

Розглянемо наступний приклад. Встановимо ротори III, II і I, а порядок кілець «C», «U» і «Q». Натиснемо на клавішу «A». Крайній правий ротор повернеться вперед на один крок, тобто, літера «Q» перейде в «R». Ротор посередині також повернеться вперед на букву «V», але про це я розповім трохи пізніше. Отже, наша літера «А» починає подорож з першого відсіку, в якому встановлений ротор I і на якому виставлена вже буква «R».

Рис. 3 Алгоритм шифрування симолів

Уже перед тим як потрапити на перший ротор буква зазнає своє перше перетворення, а саме: додавання з буквою «R» по модулю 26. Фактично, це шифр Цезаря. Якщо пронумерувати всі букви від 0 до 25, то літера «А» буде як раз таки нульовий. Значить, результатом складання буде буква «R». Далі, ми з вами знаємо, що в першому відсіку ротор I, а в його конструкції закладено, що буква «R» завжди переходить в «U». Тепер на черзі другий відсік з ротором II. Знову, перед попаданням на другий ротор, тепер уже буква «U» змінюється за дещо іншим алгоритмом: до неї додається різниця значень подальшого ротора і попереднього. Поясню.

На другому роторі очікує нас літера «V», а на попередньому, - «R», їх різниця дорівнює чотирьом буквах, і саме вони додаються до нашої букві «U». Тому, на другий ротор надходить буква «Y». Далі по таблиці знаходимо, що в другому роторі букві «Y» відповідає «O». Далі знову дивимося різницю букв «C» і «V», - вона дорівнює семи. Значить, букву «O» зрушуємо на сім позицій і отримуємо «V». У роторі III «V» переходить в «M». Перед тим як потрапити на рефлектор, з нашої літери віднімається буква «C», перетворюючи її в букву «K». Далі відбувається відображення. Якщо ви помітите, то в кожному роторі утворюються великі циклічні групи, наприклад: (A - E - L - T - P - H - Q - X - R - U), а в рефлекторі вони розбиті по парах: (A - Y) (B - R) (C - U) і т.д. Це зроблено для того, щоб потім це можливо було розшифрувати. Припустимо, що встановлений рефлектор B, в якому «K» замінюється на «N» (і навпаки). Половина шляху пройдена.

Тепер ми знову додаємо значення літери «С», отримавши тим самим букву «P». Тут навпаки, у рядку третього ротора знаходимо «P» і дивимося, в при натисканні якої букви вона б з'явилася. Це буква «H». Перетворення в третьому роторі закінчено. Тепер з цієї букви віднімається різниця букв «C» і «V», тобто сім. Отримуємо букву «A». У другому роторі вона переходить саму в себе, тому залишаємо її без змін. Далі, віднімаємо різницю букв «V» і «R», тобто четвірку і отримуємо букву «W». У першому роторі її назад перетворення відображається в букву «N». Залишається тільки відняти з неї букву «R» і отримаємо шукану букву «W». Як бачите, алгоритм роботи машинки виявився не таким складним яким здавався.

Для удосконалення шифру німці запровадили комутаційну панель, яка дозволяла попарно міняти місцями літери. Якщо ми з'єднаємо літери «Q» і «W», то при введенні тієї ж «A» ми отримали б «Q», так як за фактом повинна бути «W», але вона замінена буквою «Q». Ось що додається схема дії. Залишилося лише розповісти про зміщення роторів відносно один одного. Правий ротор обертався завжди при натисканні клавіші на один крок. Наприклад, для ротора I ця позиція дорівнює букві «R». Саме тому в нашому прикладі другий ротор повернувся: перший ротор пройшов через букву «R». Далі, пройшовши через певну позицію, правий ротор приводив у рух лівий на один крок. У більш вдосконалених моделях лівий ротор прокручувався два, а то й три рази.

Висновок

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

ротор рефлектор шифрування інформація

Список літератури

Баричев С. Криптография без секретов. - М.: ABF. 2003.

Дж. Чандлер. Введение в криптографию. - Спб.: Серус. 2002.

Жельников В. Кpиптогpафия от папиpуса до компьютеpа. - М.: ABF. 2006.

Расторгуев С. П., Долгин А. Е., Потанин М. Ю. Как защитить информацию. -М.: 2005.

5. Единая система программной документации.-2001.

ПРОГРАМНЫЙ КОД

DEFINT I-N: DEFSTR S

CLS: RANDOM12E 231

DIM s (4, 32) AS STRING * 1

ns = 4

ss = "ААААААААААААААААААААААААААААА '

PRINT ss x = RND (-231)

FOR i = 0 TO ns

FOR j = 0 TO 32: set (i, j) = CHR $ (j): NEXT

FOR j = 0 TO 32: SWAP s (i, j), s (i, 32 * RND):

NEXT

NEXT

s = ""

FOR i = 1 TO LEN (ss)

k = ASC (MID $ (ss, i, 1)): IF k> 32 THEN k = k-128

FOR j = 0 TO ns: k = ASC (set (j, k)): NEXT

IF k <32 THEN k = k + 128

PRINT CHR $ (k); : S = s + CHR $ (k)

k = ns * RND 'поворот коліс

FOR j = 0 TO 31: SWAP s (k, j), s (k, j + 1): NEXT

FOR j = 0 TO 32

s (k, j) = CHR $ ((ASC (set (k, j)) + 32) MOD 33)

NEXT

NEXT

PRINT

x = RND (-231)

FOR i = 0 TO ns

FOR j = 0 TO 32: s (i, j) = CHR $ (j): NEXT

FOR j = 0 TO 32: SWAP s (i, j), s (i, 32 * RND): NEXT

FOR j = 0 TO 32

IF ASC (set (i, j)) <64 THEN

m = j: n = ASC (s (i, j))

DO

k = ASC (s (i, n)): s (i, n) = CHR $ (m OR 64)

m = n: n = k

LOOP UNTIL m = j

END IF

NEXT j

FOR j = 0 TO 32

s (i, j) = CHR $ (ASC (s (i, j)) AND 63)

NEXT

NEXT i

ss = s

FOR i = 1 TO LEN (ss)

k = ASC (MID $ (ss, i, 1)): IF k> 32 THEN k = k-128

FOR j = ns TO 0 STEP -1

k = ASC (s (j, k))

NEXT

IF k <32 THEN k = k + 128

PRINT CHR $ (k);

k = ns * RND

FOR j = 0 TO 31: SWAP s (k, j), s (k, j + 1): NEXT

FOR j = 0 TO 32

s (k, j) = CHR $ ((ASC (s (k, j)) + 32) MOD 33)

NEXT

NEXT i

END

Размещено на Allbest.ru

...

Подобные документы

  • Історія виникнення та розвиток методів шифрування. Особливості розробки програми, що виконує шифрування за допомогою доповнювального модуля, який надає доступ до самої програми. Вибір ефективного методу шифрування даних. Розробка відповідного інтерфейсу.

    курсовая работа [1,9 M], добавлен 21.07.2011

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

    дипломная работа [4,0 M], добавлен 27.01.2012

  • Задачі інформаційних систем криптографічного захисту інформації. Принципи шифрування даних на основі використання хеш-функцій. Розробка програмних компонентів інформаційних систем криптографічного захисту інформації. Види криптографічних алгоритмів.

    курсовая работа [2,7 M], добавлен 23.01.2012

  • Основи безпеки даних в комп'ютерних системах. Розробка програми для забезпечення захисту інформації від несанкціонованого доступу: шифрування та дешифрування даних за допомогою криптографічних алгоритмів RSA та DES. Проблеми і перспективи криптографії.

    дипломная работа [823,1 K], добавлен 11.01.2011

  • Види секретної інформації та методи захисту. Тип і об’єм вхідних даних. Програмна реалізація системи алгоритму шифрування зі стисненням. Призначення та опис програмного продукту Export. Алгоритми захисту зберігання та обміну секретною інформацією.

    дипломная работа [1,1 M], добавлен 19.09.2012

  • Відомі підходи до реалізації потокового шифрування даних. Регістр зсуву з оберненими зв’язками. Комбінуючий та фільтруючий генератор. Потоковий шифр Alpha1. Розробка структурної схеми алгоритму шифрування Alpha1. Розробка блоку керування пристрою.

    курсовая работа [185,6 K], добавлен 09.04.2013

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

    лабораторная работа [99,5 K], добавлен 18.11.2015

  • Розробка VHDL-програми та синтез елементів пристрою для реалізації підстановки в S-блоках алгоритму DES. Основна функція шифрування (функція Фейстеля). Генерування ключів ki. Проведення симуляції роботи даних програм в середовищі САПР Aldec Riviera 2004.

    курсовая работа [176,9 K], добавлен 21.01.2013

  • Вивчення особливості програмування додатків на мові C++ Builder. Шифрування повідомлення методом перестановки букв за маршрутами типу гамільтонський. Огляд існуючих аналогів. Розгляд необхідних вимог до конфігурації електронно-обчислювальної машини.

    контрольная работа [1,2 M], добавлен 24.07.2014

  • Дослідження криптографічних методів захисту даних від небажаного доступу. Основи безпеки даних в комп'ютерних системах. Класифікаційні складові загроз безпеки інформації. Характеристика алгоритмів симетричного та асиметричного шифрування інформації.

    курсовая работа [245,8 K], добавлен 01.06.2014

  • Криптографія – математичні методи забезпечення інформаційної безпеки та захисту конфіденційності. Огляд існуючих методів пошуку нових алгоритмів шифрування. Розробка системи оцінки ефективності криптографічних систем. Найпоширеніші методи шифрування.

    дипломная работа [1,2 M], добавлен 13.06.2015

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

    презентация [73,3 K], добавлен 19.08.2013

  • Методи вчинення кібератак, їх вплив на комп'ютерні системи в цілому і на окремі комп'ютери. Найкращий спосіб захисту від черв'яка - вжиття заходів запобігання несанкціонованому доступу до мережі. Принцип функціонування DoS-атаки. Шифрування даних ключем.

    дипломная работа [1,2 M], добавлен 25.05.2016

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

    курсовая работа [245,5 K], добавлен 25.08.2014

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

    курсовая работа [594,1 K], добавлен 09.04.2013

  • Характеристика видів крипто-аналітичних атак. Особливості симетричних та асиметричних систем шифрування. Розробка програми, призначеної для криптографічного дешифрування повідомлення методом гамування за допомогою лінійного рекурентного регістру.

    курсовая работа [171,4 K], добавлен 25.08.2014

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

    курсовая работа [140,9 K], добавлен 01.03.2012

  • Алгоритм створення відкритого і секретного ключів. Коректність схеми RSA. Шифрування і створення електронного підпису. Використання китайської теореми про залишки для прискорення розшифрування. Криптоаналіз та атаки на криптографічний алгоритм RSA.

    контрольная работа [747,6 K], добавлен 19.11.2014

  • Порівняння технологій шифрування даних в середовищі Windows Server 2012. Розробка проекту локальної мережі підприємства "Надійний сейф": вибір технології, топології та мережної адресації. Шифрування даних засобами BitLocker. Розрахунок вартості проекту.

    дипломная работа [4,6 M], добавлен 18.05.2015

  • Використання адитивних властивостей множин у системі шифрування Цезаря. Розгляд основних етапів процедури шифрування. Шифр перестановки з використанням шифруючої таблиці. З'ясування особливостей шифруючих таблиць Трисемуса та біграмного шифру Плейфейра.

    курсовая работа [57,8 K], добавлен 25.11.2020

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.