Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Інститут комп’ютерних наук і інформаційних технологій
Кафедра автоматизованих систем управління
К у р с о в а р о б о т а
на тему:
Шифрування за допомогою доповнюючого модуля
Зміст
Вступ. 4
1. Огляд літератури. 5
1.1. Захист інформації. 5
1.2.Шифрування даних. 7
2. Постановка задачі. 12
3. Алгоритм розв’язку задачі. 12
3.1 Загальний опис алгоритму. 12
3.2.Укрупнена блок-схема алгоритму з поясненнями. 12
3.3.Алгоритми підпрограм. 15
4.Програмна реалізація алгоритму. 15
4.1.Загальна характеристика і призначення програми. 15
4.2структура програми, опис функцій 16
5.Інструкція користувачеві. 17
6.Контрольні приклади та результати їх реалізації. 18
Висновки. 19
Список використаної літератури. 20
Додатки. 20
Додаток 1. Тексти програмних файлів на мові Сі та Assembler. 20
Вступ.
В світі комп’ютерів шифрування належать до числа найбільш поширених і добре вивчених задач. Алгоритми шифрування використовуються майже у всіх програмах передачі важливих даних, а також в банківських і державних установах, системах безпеки.
Наука що вивчає методи шифрування називається криптографія.
Те, що в 60-і роки називалося комп'ютерною безпекою, а в 70-і - безпекою даних, зараз більш правильно іменується інформаційною безпекою. Інформаційна безпека підкреслює важливість інформації в сучасному суспільстві - розуміння того, що інформація - це коштовний ресурс, щось більше, ніж окремі елементи даних.
Інформаційною безпекою називають заходи для захисту інформації від неавторизованого доступу, руйнування, модифікації, розкриття і затримок у доступі. Інформаційна безпека містить у собі заходу для захисту процесів створення даних, їхнього введення, обробки і висновку. Метою інформаційної безпеки є забезпечити цінності системи, захистити і гарантувати точність і цілісність інформації, і мінімізувати руйнування, що можуть мати місце, якщо інформація буде модифікована чи зруйнована. Інформаційна безпека вимагає обліку всіх подій, у ході яких інформація створюється, модифікується, чи до неї забезпечується доступ.
Інформаційна безпека дає гарантію того, що досягаються наступні цілі:
конфіденційність критичної інформації, цілісність інформації і зв'язаних з нею процесів( створення, уведення, обробки і висновку), приступність інформації, коли вона потрібна, облік усіх процесів, зв'язаних з інформацією.
Деякі технології по захисту системи і забезпеченню обліку всіх подій можуть бути вбудовані в сам комп'ютер. Інші можуть бути вбудовані в програми. Деякі ж виконуються людьми і є реалізацією вказівок керівництва, що містяться у відповідних керівних документах. Ухвалення рішення про вибір рівня складності технологій для захисту системи вимагає встановлення критичності інформації і наступного визначення адекватного рівня безпеки.
1. Огляд літератури.
1.1. Захист інформації.
Міри захисту інформаційної безпеки
Контролюйте доступ як до інформації в комп'ютері, так і до прикладних програм. Ви повинні мати гарантії того, що тільки авторизовані користувачі мають доступ до інформації і додатків.
Ідентифікація користувачів
Вимагайте, щоб користувачі виконували процедури входу в комп'ютер, і використовуйте це як засіб для ідентифікації на початку роботи. Щоб ефективно контролювати мікрокомп'ютер, може виявитися найбільш вигідним використовувати його як однокористувальницьку систему. Звичайно в мікрокомп'ютера немає процедур входу в систему, право використовувати систему надається простим включенням комп'ютера.
Ідентифікація користувачів
Використовуйте унікальні паролі для кожного користувача, що не є комбінаціями особистих даних користувачів, для ідентифікації особистості користувача. Впровадити міри захисту при адмініструванні паролів, і ознайомити користувачів з найбільш загальними помилками, що дозволяють учинитися комп'ютерному злочину..
Інші міри захисту:
Паролі - тільки один з типів ідентифікації - щось, що знає тільки користувач. Двома іншими типами ідентифікації, що теж ефективні, є щось, чим володіє користувач (наприклад, магнітна карта), чи унікальні характеристики користувача(його голос). Якщо в комп'ютері мається вбудований стандартний пароль( пароль, що вбудований у програми і дозволяє обійти заходу для керування доступом), обов'язково змініть його. Зробіть так, щоб програми в комп'ютері після входу користувача в систему повідомляли йому час його останнього сеансу і число невдалих спроб установлення сеансу після цього. Це дозволить зробити користувача складовою частиною системи перевірки журналів.
Захищайте ваш пароль
Не діліться своїм паролем ні з ким, вибирайте пароль, який важко вгадати, спробуйте використовувати рядкові і прописні букви, цифри, чи виберіть знаменитий вислів і візьміть звідти кожну четверту букву. А ще краще дозвольте комп'ютеру самому згенерувати ваш пароль. Не використовуйте пароль, що є вашою адресою, псевдонімом, ім'ям дружини, телефонним номером чи чимось очевидним. Використовуйте довгі паролі, тому що вони більш безпечні, найкраще від 6 до 8 символів, забезпечте прихованість пароля на екрані комп'ютера при його введенні, забезпечте відсутність паролів у роздруківках, не записуйте паролі на столі, стіні чи терміналі. Тримаєте його в пам'яті Серйозно відносьтеся до адміністрування паролів, періодично змінюйте паролі і робіть це не за графіком, шифруйте чи робіть щось з файлами паролів, що зберігаються в комп'ютері, для захисту їх від неавторизованого доступу. Призначайте на посаду адміністратора паролів тільки саму надійну людину, не використовуйте той самий пароль для всіх співробітників у групі, змінюйте паролі, коли людина звільняється, змушуйте людей розписуватися за одержання паролів, встановлюйте і впроваджуйте правила роботи з паролями і забезпечте, щоб усі знали процедури авторизації. Розробіть процедури авторизації, що визначають, хто з користувачів повинен мати доступ до тієї чи іншої інформації і додатків і використовуйте відповідні заходи для впровадження цих процедур в організації. Встановіть порядок в організації, при якому для використання комп'ютерних ресурсів, одержання дозволу доступу до інформації і додатків та одержання пароля потрібен дозвіл тих чи інших начальників.
Захист файлів
Крім ідентифікації користувачів і процедур авторизації розробіть процедури по обмеженню доступу до файлів з даними: використовуйте зовнішні і внутрішні мітки файлів для вказівки типу інформації, що вони містять, і необхідного рівня безпеки, обмежте доступ у приміщення, у яких зберігаються файли даних, такі як архіви і бібліотеки даних, використовуйте організаційні міри і програмно-апаратні засоби для обмеження доступу до файлів тільки авторизованих користувачів. Захищайте системні програми. Якщо ПО використовується спільно, захищайте його від схованої модифікації за допомогою політики безпеки, мір захисту при його розробці і контролі за ним у його життєвому циклі, а також навчання користувачів в області безпеки. Міри захисту при розробці програм і відповідні політики повинні включати процедури внесення змін у програму, її приймання і тестування до введення в експлуатацію. Політики повинні вимагати дозволу відповідального обличчя з керівництва для внесення змін у програми, обмеження списку обличчя, кому дозволено вносити зміни і явно описувати обов'язки співробітників по веденню документації. Повинен бути розроблений і підтримуватися каталог прикладних програм. Повинні бути впроваджені міри захисту по запобіганню одержання, чи зміни додавання програм неавторизованими людьми через вилучені термінали. Зробіть міри захисту більш адекватними за допомогою залучення організацій, що займаються тестуванням інформаційної безпеки, при розробці мір захисту в прикладних програмах і консультуйтеся з ними при визначенні необхідності тестів і перевірок при обробці критичних даних. Контрольні журнали, убудовані в комп'ютерні програми, можуть чи запобігти виявити комп'ютерне шахрайство і зловживання. Повинні бути контрольні журнали для спостереження за тим, хто з користувачів обновляв критичні інформаційні файли. Якщо критичність інформації, збереженої в комп'ютерах, вимагає контрольних журналів, то важливі як міри фізичного захисту, так і заходу для керування доступом. У комп'ютерній мережі журнали повинні зберігатися в хості, а не на робочій станції. Контрольні журнали не повинні відключатися для підвищення швидкості роботи. Роздруки контрольних журналів повинні проглядатися досить часто і регулярно.[2,\Autorun\Info\Vvedenie в компьютерную безопасность.htm]
1.2.Шифрування даних.
Поняття "Безпека" охоплює широке коло інтересів як окремих облич, так і цілих держав. У наш мобільний час видне місце приділяється проблемі інформованої безпеки, забезпеченню захисту конфіденційної інформації від ознайомлення з нею конкуруючих груп Недарма великий психолог Вільям Шекспір у "Королі Лірі" вирік: "Щоб думку ворога довідатися, серця вскривають, а не те що листи". Про важливість збереження інформації в таємниці знали вже в древні часи, коли з появою писемності з'явилася і небезпека прочитання її небажаними обличчями. Існували три основних способи захисту інформації.
Один з них припускав захист її чисто силовими методами: охорона документа - носія інформації - фізичними особами, передача його спеціальним кур'єром і т.д.
Другий спосіб одержав назву "стеганографія" латино-грецьке сполучення слів, що означають у сукупності "тайнопис"). Він полягав у прихованні самого факту наявності інформації. У даному випадку використовувалися так зване симпатичне чорнило. При відповідному "проявленні" папера текст стає видимим. Один із прикладів приховання інформації приведений у працях давньогрецького історика Геродота. На голові раба, що голилася наголо, записувалося потрібне повідомлення. І коли волосся його досить відростали, раба відправляли до адресата, що знову голили його голову і зчитував отримане повідомлення.
Третій спосіб захисту інформації полягав у перетворенні важливого тексту в деякий набір хаотичних знаків (чи букв алфавіту). Одержувач даного повідомлення мав можливість перетворити його в те ж саме осмислене повідомлення, якщо мав ключ до його побудови. Цей спосіб захисту інформації називається криптографічним.
Криптографія - слово грецьке й у перекладі означає "тайнопис". За твердженням ряду фахівців криптографія за віком - ровесник єгипетських пірамід. У документах древніх цивілізацій - Індії, Єгипту, Месопотамії - є зведення про системи і способи складання шифрованих листів. У давньоіндійських рукописах описані 64 способи листа. Один із самих старих шифрованих текстів з Месопотамії являє собою табличку, написану клинописом і містячу рецепт для виготовлення глазурі для гончарних виробів. Для написання його були використані рідко уживані клинописні знаки, ігнорувалися деякі голосні і згодні і вживалися числа замість імен. Шифровані тексти Древнього Єгипту - це найчастіше релігійні тексти і медичні рецепти.
Зовсім відсутні зведення про використання шифрів у Древньому Китаї, що підрозумівається, очевидно, складністю ієрогліфічного письма, яке використовувалось. Найбільш повні і достовірні зведення про шифри відносяться до Древньої Греції. Основні поняття криптографії - шифр (від арабського "цифра"; араби першими стали заміняти букви на цифри з метою захисту вихідного тексту). Секретний елемент шифру, недоступний стороннім, називається ключем шифру. Як правило, у древні часи використовувалися так називані шифри заміни і шифри перестановки.
Історичним прикладом шифру заміни є шифр Цезаря (1 століття до н.е.), описаний істориком Древнього Рима Святонієм. Гай Юлій Цезар використовував у своєму переписуванні шифр власного винаходу. Стосовно до сучасної російської мови він полягав у наступному. Виписувався алфавіт: А, Б, У, Г, Д, Е,...,; потім під ним виписувався той же алфавіт, але із зрушенням на 3 букви вліво:
А
Б
В
Г
Д
Е
Є
Ж
З
И
І
…
Г
Д
Е
Є
Ж
З
И
І
Й
К
Л
…
При зашифровці буква А замінялася буквою Г, Б замінялася на Д й так далі. Так, наприклад, слово "РИМ" перетворювалося в слово "УЛП". Одержувач повідомлення "УЛП" шукав ці букви в нижньому рядку і по буквах над ними відновлював вихідне слово "РИМ". Ключем у шифрі Цезаря є величина зрушення 3 нижнього рядка алфавіту. Спадкоємець Юлія Цезаря - Цезар Август - використовував той же шифр, але з ключем - зрушення 4. Слово "РИМ" він у цьому випадку зашифрував би в буквосполучення "ФМР". У художній літературі класичним прикладом шифру заміни є відомий шифр "Танцюючі чоловічки" (К. Дойля). У ньому букви тексту замінялися на символічні фігурки людей. Ключем такого шифру були пози чоловічків,, що заміняють букви... Для приклада шифру перестановки виберемо ціле позитивне число, скажемо 5; розташуємо числа від 1 до 5 у двострічковому запису:
1
2
3
4
5
3
2
5
1
4
Зашифруємо фразу "СВЯЩЕННА РИМСЬКА ІМПЕРІЯ". У цій фразі 23 букви. Доповнимо її двома довільними буквами (наприклад,Ь.Э) до найближчого числа, кратного 5, тобто 25. Випишемо цю доповнену фразу без пропусків, одночасно розбивши її на п'ятизначні групи:
СВЯЩЕ ННАЯР ИМСКА ЯИМПЕ РИЯЬЭ
Букви кожної групи переставимо відповідно до зазначеного двострічковим записом за наступним правилом: перша буква встає на третє місце, друга - на друге, третя на п'яте, четверта на перше і п'ята на четверте. Отриманий текст виписується без пропусків:
ЩВСЕЯЯННРАКМИАСПИЯЕМЬИРЭЯ
При розшифруванні текст 1 розбивається на групи по 5 букв і букви переставляються в зворотному порядку: 1 на 4 місце, 2 на 2,3 на 1, 4 на 5 і 5 на 3. Ключем шифру є обране число 5 і порядок розташування чисел у нижньому ряді двухстрочной запису. Одним з перших приладів, що реалізують шифр перестановки, є так називаний прилад СЦИТАЛЛА. Він був винайдений у древній "варварській" Спарті в часи Ликурга; Рим швидко скористався цим приладом. Для зашифрування тексту використовувався циліндр заздалегідь обумовленого діаметра. На циліндр намотувався тонкий ремінь з пергаменту, і текст виписувався построчно по утворюючої циліндра (уздовж його осі). Потім ремінь змотувався і відправлявся - одержувачу повідомлення. Останній намотував його на циліндр того ж діаметра і читав текст по осі циліндра. У цьому прикладі ключем такого шифру був діаметр циліндра і його довжина, що, власне кажучи, породжують двохстрічковий запис, зазначений вище. Цікаво, що винахід дешифрувального пристрою "АНТИСЦИТАЛЛА" приписується великому Аристотелю. Він запропонував для цього використовувати конусоподібний "спис", на який намотувався перехоплений ремінь, що пересувався по осі до того положення, поки не з'являвся осмислений текст. Були й інші способи захисту інформації, розроблені в античні часи. Давньогрецький полководець Еней Тактика в IV столітті до н.е. запропонував пристрій, названий згодом "диском Енея". Принцип його був простий. На диску діаметром 10-15 см і товщиною 1-2 см висвердлювалися отвори по кількості букв алфавіту. У центрі диска містилася "котушка" з намотаною на ній ниткою достатньої довжини. При зашифруванні нитка "витягалася" з котушки і послідовно протягалася через отвори, відповідно до букв шифрованого тексту. Диск і був посланням. Одержувач послання послідовно витягав нитку з отворів, що дозволяло йому одержувати передане повідомлення, але в зворотному порядку проходження букв. При перехопленні диска недоброзичливець мав можливість прочитати повідомлення тим же ж способом, що й одержувач. Але Еней передбачив можливість легкого знищення переданого повідомлення при загрозі захоплення диска. Для цього було досить висмикнути "котушку" із закріпленим на її кінцем нитки до повного виходу всієї нитки з всіх отворів диска. Ідея Енея була використана в створенні й інших оригінальних шифрах заміни. Скажемо, в одному з варіантів замість диска використовувалася лінійка з числом отворів, рівних кількості букв алфавіту. Кожен отвір позначався своєю буквою; букви по отворах розташовувалися в довільному порядку. До лінійки була прикріплена котушка з намотаної на неї ниткою. Поруч з котушкою був проріз. При шифруванні нитка протягалася через проріз, а потім через отвір, що відповідає першій букві шифрованого тексту, при цьому на нитці зав'язувався вузлик у місці проходження її через отвір; потім нитка повертався в проріз і аналогічно зашифровувався друга буква тексту і т.д. Після закінчення шифрування нитка витягалася і передавалася одержувачу повідомлення. Той, маючи ідентичну лінійку, протягав нитку через проріз до отворів, обумовлених вузлами, і відновлював вихідний текст по буквах отворів. Цей пристрій одержав назву "лінійка Енея". Шифр, реалізований лінійкою Енея, є одним із прикладів шифру заміни: коли букви заміняються на відстані між вузликами з урахуванням проходження через проріз. Ключем шифру був порядок розташування букв по отворах у лінійці. Сторонній, що одержав нитку (навіть маючи лінійку, але без нанесених на ній букв), не зможе прочитати передане повідомлення. Аналогічне "лінійці Енея" "вузликовий лист" одержав поширення в індіанців Центральної Америки. Свої повідомлення вони також передавали у виді нитки, на якій зав'язувалися різнобарвні вузлики, що визначали зміст повідомлення. Помітним внеском Енея в криптографію є запропонований їм так називаний книжковий шифр, описаний у творі "Про оборону укріплених місць". Еней запропонував проколювати малопомітні дірки в книзі чи в іншому документі над буквами (чи під ними) секретного повідомлення. Цікаво відзначити, що в першій світовій війні німецькі шпигуни використовували аналогічний шифр, замінивши дірки на крапки, що наносились симпатичним чорнилом на букви газетного тексту. Книжковий шифр у сучасному його виді має трохи інший вид. Суть цього шифру складається в заміні букв на номер рядка і номер цієї букви в рядку і заздалегідь обговореній сторінці деякої книги. Ключем такого шифру є книга і використовувана сторінка в ній. Цей шифр виявився "довгожителем" і застосовувався навіть у часи другої світової війни. Ще один винахід древніх греків - так називаний квадрат Полібія. Стосовно до сучасного латинського алфавіту з 26 букв шифрування по цьому квадраті полягало в наступному. У квадрат розміром 5x6 кліток виписуються всі букви алфавіту, при цьому букви I,J не розрізняються (J ототожнюється з буквою I);
A
B
C
D
E
A
A
B
C
D
E
D
F
G
H
I
K
C
L
M
N
O
P
D
Q
R
S
T
U
E
V
W
X
Y
Z
Буква, що шифрується замінялася на координати квадрата, у якому вона записана. Так, B замінялася на AB, F на BA, R на DB і т.д. При розшифруванні кожна така пара визначала відповідну букву повідомлення. Ключем такого шифру було розташування букв у таблиці 5x5. Цікаво відзначити, що в трохи зміненому виді шифр Полібія дійшов до наших днів і одержав своєрідну назву "тюремний шифр". Для його використання потрібно тільки знати природний порядок розташування букв алфавіту (як у зазначеному вище прикладі для англійської мови). Сторони квадрата позначаються не буквами (ABCDE), а числами (12345). Число 3, наприклад, передається шляхом потрійного стукоту. При передачі букви спочатку "відстукується число, що відповідає рядку, у якій знаходиться буква, а потім номер відповідного стовпця. Наприклад, буква "F" передається подвійним стукотом (другий рядок) і потім одинарним (перший стовпець). З застосуванням цього шифру зв'язані деякі історичні казуси. Так, декабристи, посаджені у в'язницю після невдалого повстання, не змогли встановити зв'язок з перебуваючим у "одинаку" князем Одоєвськ. Виявилося, що цей князь (добре відомий по тим часам) не пам'ятав природний порядок розташування букв у російському і французькому алфавітах (іншими мовами він не володів). Декабристи для російського алфавіту використовували прямокутник розміру 5x6 (5 рядків і 6 стовпців) і скорочений до 30 букв алфавіт. "Тюремний шифр", строго говорячи, не шифр, а спосіб перекодування повідомлення з метою його приведення до виду, зручному для передачі по каналу зв'язку (через стінку). Справа в тім, що в таблиці використовувався природний порядок розташування букв алфавіту. Відзначимо, що при довільному розташуванні букв у квадраті виникає одне утруднення: або потрібно пам'ятати відправнику й одержувачу повідомлення заданий довільний порядок проходження букв у таблиці (ключ шифру), що взагальному говорячи важко, або мати при собі запис цих букв. В другому випадку з'являється небезпека ознайомлення з ключем сторонніх облич. Тому в ряді випадків ключ складається в такий спосіб. Береться деяке "ключове слово", що легко запам'ятати, наприклад, "CRYPTOLOGY", видаляють з нього повтори букв (одержують "CRYPTOLOG") і записують його в початкових клітках квадрата. У клітки, що залишилися, записуються інші букви алфавіту в природному порядку.
A B C D E A C R Y P T B O L G A B C D E F H I E U V W X Z
У такому шифрі ключем є зазначене "ключове слово" ("пароль"). Помітимо, до речі, що в такий же спосіб можна легко запам'ятати порядок проходження букв і в "лінійці Енея". Крах Священної Римської імперії породив середньовіччя. Цей період у житті людства характеризується й упадком інтелектуальної діяльності. В часи, коли сама грамотність була доступна дуже вузькому колу людей, необхідність у криптографічному захисті інформації стояла не настільки гостро. Так, король франків і Священної Римської імперії Карл Великий навчився читати і писати у віці 50 років, а "завойовник Уселеної" Чингис-хан залишився безграмотним на все життя. Проте Карл Великий уже знав і використовував деякі шифри заміни. Освіта і грамотність у ці часи зосередилися в церкві, і тайнопис став її монополією. Церква ухвалила, що простим парафіянам не можна ховати таємниці від "добродії"; їхній тайнопис - це "єресь". За використання тайнопису передбачалися тверді міри покарання, аж до страти. Проте криптографія не вмерла. Серйозний внесок у її розвиток внесли араби. Деякі історики вважають, що криптографія як наука зародилася саме в арабському світі. Саме в арабських книгах уперше були описані методи криптоаналізу (дешифрування). Про криптографію згадується й у "Іліаді" Гомера.[2, \Autorun\Info\Tayna.htm]
2. Постановка задачі.
Задача, що розв’язується в даній курсовій роботі належить до класу задач шифрування. Метою розв’язку даної задачі є вибір ефективного методу шифрування даних. В результаті програмної реалізації програми ми повинні отримати зашифрований файл певних даних, або дешифрований файл. Розв’язок даної задачі існує для текстових, символьних і числових даних. Програма розрахована для IBM сумісних компютерів.
3. Алгоритм розв’язку задачі.
3.1 Загальний опис алгоритму.
Користувач має можливість переглянути зашифрований файл, а також розшифрувати його за допомогою створеної програми при умові що він має право доступу до цього програмного продукту. Право доступу оприділяється наявністю у користувача дискети з відповідним серійним номером, на якій може бути записана програма перегляду і дешифрування даних (хоча це не обовязково, але бажано для забезпечення відповідного захисту). Якщо дискета з заданим серійним номером відсутня, то програма дешифрування не запускається. Дана програма дає можливість зашифрувати і дешифрувати вказаний файл. Для цього користувач повинен зясувати з яким текстом він має справу, щоб не зашифрувати вже зашифрований файл, або навпаки. Організовано сторінковий перегляд незашифрованих даних даних.
3.2.Укрупнена блок-схема алгоритму з поясненнями.
До даної програми наведено дві блок-схеми: перша - це алгоритм перевірки наявності дискети з відповідним серійним номером; друга – загальна структура програми шифрування.
Блок схема алгоритму перевірки наявності дискети.
Ні так
Блок схема роботи програми шифрування(дешифрування).
3.3.Алгоритми підпрограм.
Алгритм шифрування.
В даній роботі я вибрала алгоритм шифрування методом зсуву, і інвертування, оскільки цей метод є найпростіший в реалізації, швидкий в роботі. Зсув відбувається на три позиції, хоча можливо вносити зміни. Додатковий захист забезпечується додатковим модулем. Я вважаю що якщо зашифрований текст, певним з уже відомих методів шифрування, попаде до рук криптоаналітика то він обовязково буде розшифрований і це лише питання часу.
Алгоритм дешифрування.
Алгоритм дешифрування є дзеркальним відображенням алгоритму шифрування.
4.Програмна реалізація алгоритму.
4.1.Загальна характеристика і призначення програми.
Програма шифрування містить 6 файлів: „Proga12.cpp” в якому наведено головну програму, що виконує шифрування(дешифрування); заголовного файла “func.h”, який містить функції шифрування і дешифрування, а також функцію створення вікна; файл з текстовими даними для перевірки роботи програми; і два виконавчих файли “Proga12.exe” i “Modul.exe”. Також для роботи програми необхідна одна дискета щільністю 1.44 Мбайт.
Назва файла
Мова програмування
Розмір в текстових рядках
Розмір в байтах
Prg12.cpp
C
143
2911
Mywin.h
C
88
1492
Prg12.exe
20965
Modul.asm
Assembler
55
1548
Modul.exe
4096
2.txt
Текстові дані
Дана програма призначена для виконання шифрування даних.
4.2структура програми, опис функцій
Спочатку запускається програма Modul.exe, яка визначає чи користувач має право доступу до основної програми перегляду і шифрування даних. Якщо доступ відкрито, то ця программа запускає программу шифрування Prg12.exe. Программа шифрування може знаходитись на потрібній для її запуску дискеті, що дозволчє додатково захистити інформацію.
Таблиця 2
Назва функції
Призначення
Мова програмування
Розмір в т.р.
опис
змінних
void wwindow
Малювання рамки выкна
С
23
int x1,int y1,
int x2, int y2
void Scrypt
Ф-ція шифрування
С
18
char *buf, FILE *f
void Descrypt
Ф-ція дешифрування
С
18
char *buf, FILE *f
void CKB
Функція очистки буфера клавіатури
С
5
Void
5.Інструкція користувачеві.
Дана програма виконує шифрування текстових і числових даних. Дані зчитуються з файлу, шлях до якого вказується у відповідь на запит програми. Для зручного використання програми організовано інтерфейс. При виклику програми з’являється вікно, що показане на малюнку. Користувачу необхідно вказати повний шлях до файла.
Коли введене імя необхідного файла->Enter
Появляється вікно для перегляду файла:
Дані з файлу зчитуються посторінково. Для переходу на іншу сторінку необхідно натиснути будь-яку клавішу. Коли переглянуто весь файл користувач має можливість зашифрувати або дешифрувати дані, за допомогою клавіш F1 i F2, відповідно. Вихід з програми здійснюється клавішою End.
6.Контрольні приклади та результати їх реалізації.
Зашифровані дані:
Дешифровані дані:
Всі дані виводяться на екран і записуються у файл.
Висновки.
В процесі виконання розрахункової роботи я ознайомився з методами шифрування, розробив програму, що виконує шифрування за допомогою доповнювального модуля, який надає доступ до самої програми, відповідно до завдання даної курсової роботи. Розробив відповідний інтерфейс.
Список використаної літератури.
Програмування текстових зображень на основі функцій консольного введення-виведення даних і безпосереднього звертання до відеопам’яті: Методичний посібник до лабораторних робіт з курсу „Програмування текстових і графічних зображень” /Укл. Шпак З. Я. – Львів: Націон. ун-т „Львівська політехніка”, 2002.
2. Криптогафия – защита от шпионов: компакт-диск. Alex soft.
Додатки.
Додаток 1. Тексти програмних файлів на мові Сі та Assembler.
Текст основної програми шифрування:
#include <conio.h>
#include <stdio.h>
#include <dos.h>
#include <io.h>
#include <bios.h>
#include "mywin.h"
#include <stdlib.h>
int main(void)
{
int j, i=0, key, k, n=0, m, l, s=1;
FILE *f1, *f2;
char *filename, *filetext, *filetext1, *scr;
int x, y;
struct text_info win;
clrscr();
window (15, 10, 65, 15);
textbackground(5);
clrscr();
wwindow (2, 2, 50, 5);
cprintf("Enter file name:");
scanf("%s", &*filename);
if ((f1 = fopen(filename,"r"))== NULL)
{
textbackground(0);
clrscr();
printf("File read ERROR!!!!");
getch();
return 0;
}//if
f1=fopen(filename, "r");
gotoxy(1, 1);
window (1, 1, 80, 1);
textbackground(5);
clrscr();
printf("F1 Scrypt F2 Descrypt F3 Help");
gotoxy(1, 2);
window (1, 2, 80,25);
textbackground(0);
l1: clrscr();
printf("\n \t \t Data from file %s\n\n", filename);
rewind(f1);
while((filetext[i]=fgetc(f1)) != EOF)i++;
filetext[i] = '\0';
for (j=0; j<i;j++)
{
printf("%c", filetext[j]);
if(j==i-2)
{ textcolor(9 + BLINK);
//cprintf("\n%s", "Its end text file, now you may scrypt or descript data");
cputs("Its end text file, now you may scrypt or descript data");
textcolor(15);
goto h;
}//if
gettextinfo(&win);
x=wherex(); y=wherey();
if(y==win.winbottom-2)
{
textcolor(YELLOW + BLINK);
cputs( "Press any key for prolong read data");
getch();
gotoxy(1, 1);
textcolor(15);
textbackground(0);
clrscr();
}//if
}//for
h: while (getch()!=79){
switch (key=getch())
{
case 59: {
if (n==0)
{
clrscr();
fclose(f1);
f1=fopen(filename, "w+");
printf("\n\t\tZachufrovani dani:");
gotoxy(3, 3);
Scrypt(filetext, f1);
fclose(f1);
n++;
}//if
else
{
puts("File is skrypts");
goto l2;
}//else
}//case
CKB();
break;
case 60: {
clrscr();
fclose(f1);
f1=fopen(filename, "w+");
printf ("\n\t\tDeshufrovani dani:\n");
gotoxy (3, 3);
Descrypt (filetext, f1);
fclose(f1);
}//case
CKB();
break;
case 61: {
clrscr();
cputs("This program for protect your data. For more information read documentation.");
getch();
}//case
CKB();
break;
case 27: goto l1;
case 79: goto l2;
default: ;
}//switch
} //while
l2: gotoxy(0, 0);
window(1,1, 80, 25);
textbackground(0);
clrscr();
fcloseall();
return 0;
} //main
текст заголовного файла mywin.h:
#include<conio.h>
#include <stdlib.h>
#include <string.h>
void wwindow (int x1,int y1, int x2, int y2)
{
int i, j;
gotoxy(x1,y1);
putch(201);
for(i=x1+1; i<x2; i++) putch(205);
putch(187);
for(i=1; i<y2-y1; i++){
gotoxy(x2, y1+i);putch(186);
}
gotoxy(x2, y2);
putch(188);
for(i=1; i<x2-x1; i++){
gotoxy(x2-i, y2);
putch(205); }
gotoxy(x1, y2);
putch(200);
for(i=1; i<y2-y1; i++){
gotoxy(x1, y2-i);
putch(186);}
}
void Scrypt(char *buf, FILE *f)