Шифрування файлів

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра інформатики

Інформація про роботу

Рік:
2011
Тип роботи:
Курсова робота
Предмет:
Програмування частина 4 Технологія системного програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Тернопільский національний технічний університет ім.І.Пулюя Кафедра інформатики і математичного моделювання Курсова робота з дисципліни “Програмування” на тему «Шифрування файлів» ЗМІСТ Вступ 3 1. Аналіз завдання 4 2. Суть загального шифрування 5 - 9 3. Метод шифрування (код Грея) 10 4. Створення програми із описом основних процедур 11-13 5.Опис технології роботи програми 13-14 Додаток (код програми) Висновок ВСТУП Проблема безпеки інформації завжди хвилювала суспільство. Саме тому перші алгоритми шифрування інформації були розроблені ще у давні часи. Прикладом тому є алгоритм кодування/декодування Цезаря, що використовувався у Давньому Римі, але модифікації якого ще досі застосовуються для захисту інформаційних систем. Комп’ютерні технології вирішують важливі проблеми людей, забезпечують їх інструментарієм, здатним автоматизувати розв’язання великої кількості задач, вирішують проблему комунікації, значно економлять час, сприяють командній роботі розробників і науковців та різноманітній проектній діяльності. Також дуже цінними є інтелектуальні системи підтримки прийняття рішень. В той же час, інформаційні системи мають у собі приховану небезпеку. Для інформаційних баз завжди існує ймовірність несанкціонованого доступу сторонніх осіб к даним, що потенційно може нанести шкоду державі, особам чи організаціям, в тому числі використано у злочинних намірах. Простий приклад: можна розшифрувати дані, що передані електронною поштою, підробити підпис тощо. Безумовно, захисту потребує не тільки кореспонденція та інформаційні бази. Будь-яка важлива інформація має бути захищена від навмисного або випадкового втручання. Це стосується захисту інформаційних та програмних продуктів, що пов’язано з використанням програм, активізованих не шляхом покупки, а внаслідок незаконних дій. Також це стосується авторизованого доступу людей до роботи у інформаційній системі. Так, зловмисник може отримати або вирахувати пароль особи, що має адміністративні права або ж є керівником певного підрозділу і, увійшовши у систему з його іменем і паролем, може отримати доступ до секретних даних, а у першому випадку — навіть знищити інформаційні бази і вивести з ладу систему. Аналіз завдання Оскільки нам потрібна програма найбільш проста і доступна у користуванні, а також вона повинна мати досить простий і зрозумілий інтерфейс, тому мову програмування, на якій буде виконана програма обираю “С”. Саме така мова програмування забезпечить нам найпростіший і найбільш знайомий користувачу інтерфейс (простої програми у ОС Windows) майбутньої програми – Шифратор. Крім цього така мова програмування проста у користуванні та наділена достатньою кількістю можливостей для створення даної програми, має досить зручний і зрозумілий інтерфейс, та не потребує високих технічних характеристик ПК, що ще більш розширює поле користування даним програмним продуктом – С. Також дана мова програмування забезпечує роботу програми в ОС Windows, що є найбільш поширеною на даний час. Умовно створення програми поділяється на 2 частини: 1 частина – створення інтерфейсу (титульна сторінка , меню) 2 частина – безпосереднє написання функціонального програмного коду програми У першій частині важливо, щоб будь-який користувач мав змогу користуватись програмою.для цього було створене зручне меню. Програма містить пункти меню зашифрувати/розшифрувати файл, а також вихыд з програми. Для більш раціонального використання програми рекомендується файл який потрібно зашифрувати/розшифрувати помістити в папку з програмою Coder.exe для того щоб не вказувати шлях до файл. Також можливий варіант шифрування/розшифрування текстового файлу який розміщений в будь якому місці, але потрібно вказувати повний шлях до нього. 2. Суть загального шифрування Цей процес по ідеї своїй надзвичайно простий. Так, береться якесь слово, показуємо, “абрикос”, і кожна буква в ньому заміняється на іншу, наприклад “а” на “л” і т.д. Для розшифровки треба знати тільки, як виконані заміни. Схема шифрування називається шаблоном. У нашім прикладі взятий найпростіший шаблон, а в реальних програмах-шифрувальниках використовуються схеми, засновані на математичних вираженнях і із працею подающиеся декодуванню. При цьому в одному повідомленні можна застосувати кілька шаблонів, вкладених друг у друга, тобто закодувати повідомлення кілька разів. Припустимо, що шифрувальна схема занадто складна для розгадування або “злому”. У цьому випадку єдиний спосіб прочитати повідомлення - скористатися програмою, що розшифровує. Розшифровка - це процес відновлення даних закодованого повідомлення але на основі відомого коду або шифру. Ключ до розгадки - опис шаблона, використаного при шифровці. Відкриті й особисті ключі При шифровці електронної пошти, на відміну від стандартних процедур, застосовуваних до файлів на жорсткому диску вашого комп’ютера, одержувачеві потрібен ключ для прочитання повідомлення. Передавати ключ тим же листом або яким-небудь іншим способом проблематично. Вихід був знайдений в 70-і роки, коли на допомогу прийшла система відкритого (public) і особистого (private) ключів. У цій системі публічний, або відкритий, ключ адресата поширюється між відправниками, які, у свою чергу, з його допомогою можуть зашифрувати повідомлення, що відправляються цьому адресатові. Розшифровується лист тільки з використанням особистого, або закритого, ключа адресата. Відкритий ключ доступний кому завгодно, а особистий - лише власникові. Із сучасних програм найцікавіші такі, які дозволяють створювати ключі довжиною 128 біт і більше, - самі безпечного й стійкі до злому. Стандартні засоби шифрування, що входять до складу програм Outlook Express і Netscape Communicator, поза територією США можуть використовувати ключі довжиною не більше 56 біт. За останнім часом навколо експорту стійких криптотехнологий зі США розгорнулися справжні баталії. Так, до липня 1998 року максимальна довжина ключа, дозволена в шифрувальних програмах, експортованих за межі США, становила не більше 56 битов. Багато компаній протестують проти цього рішення, не обходиться й без вивертів. Наприклад, сильна криптографічна програма PGP заборонена до експорту, але неї експортували у вигляді вихідних кодів, а це більше 12 томів, що становлять близько 12000 сторінок. Текст був отсканирован і перевірений за межами США, після чого програма надійшла в продаж. У цей час уже не рідкість конкурси, що повідомляються компаніями-розроблювачами програм шифрування. Приз за розшифровку повідомлення становить у різних випадках від 10 до 100 тисяч доларів, причому в змаганнях може взяти участь будь-який бажаючий. Найвідоміший випадок розшифровки за останнім часом наступний. За допомогою саморобного суперкомп’ютера, на який група з десятка розроблювачів витратила менше 250 тисяч доларів, був зламаний шифр стандарту DES (data encryption standard), використовуваного в урядових організаціях США. Розкриття зайняло рекордно короткий час - 56 годин. У нагороду за свої досягнення група зломщиків повинна одержати приз в 10 тисяч доларів від компанії RSA Data Security, що спеціалізується на засобах шифрування інформації. Керували зломщиками Джон Гилмор (John Gilmore) і Пол Кочер (Paul Kocher), а фінансував роботи фонд перспективних досліджень Electronic Frontier Foundation. Зібраний комп’ютер був названий Deep Crock (“Великий злом”) - напевно, за аналогією із шаховим комп’ютером-чемпіоном Deep Blue. Для розкриття коду йому знадобилося перебрати 17902806669197312 комбінацій, тобто біля чверті із всіх можливих. Симетричні алгоритми шифрування Симетри́чні алгори́тми шифрува́ння — у криптографії — алгоритми, які застосовуються при шифруванні інформації. Особливість симетричних алгоритмів шифрування полягає у тому, що ключ шифрування та розшифрування однаковий, тобто з його допомогою (на відміну від асиметричних алгоритмів шифрування) можна як зашифрувати, так і розшифрувати (відновити) повідомлення. Типи симетричних алгоритмів шифрування Симетричні алгоритми шифрування можна розділити на потокові та блочні алгоритми шифрування. Потокові алгоритми шифрування послідовно обробляють текст повідомлення. Блочні алгоритми працюють з блоками фіксованого розміру. Як правило, довжина блоку дорівнює 64 бітам, але, в алгоритмі AES використовуються блоки довжиною 128 біт. Симетричні алгоритми шифрування не завжди використовуються самостійно. В сучасних криптоситемах, використовуються комбінації симетричних та асиметричних алгоритмів, для того, аби отримати переваги обох схем. До таких систем належить SSL, PGP та GPG. Асиметричні алгоритми використовуються для розповсюдження ключів швидших симетричних алгоритмів. До деяких відомих, поширених алгоритмів з гарною репутацією належать: Twofish, Serpent, AES (або Рейндайль), MD5, DES, 3DES, RSA, Blowfish, CAST5, RC4, TDES (3DES), та IDEA. Швидкість шифрування В основному, симетричні алгоритми шифрування вимагають менше обчислень, ніж асиметричні. На практиці, це означає, що якісні асиметричні алгоритми в сотні або в тисячі разів повільніші за якісні симетричні алгоритми. Недоліком симетричних алгоритмів є необхідність мати секретний ключ з обох боків передачі інформації. Так як ключі є предметом можливого перехоплення, їх необхідно часто змінювати та передавати по безпечних каналах передачі інформації під час розповсюдження. Атаки на симетричні шифри При застосуванні із асиметричними алгоритмами шифрування для передачі ключей, майже завжди використовуються генератори криптографічно стійких псевдовипадкових чисел для генерування симетричних ключей сеансу. Однак, брак достатнього рівня випадковості в цих генераторах, або в їх початкових векторах, в минулому часто призводив до втрати конфіденційності при передачі даних. Дуже ретельний підхід до впровадження криптосистеми та генерація випадкових чисел із використанням високоякісних джерел випадкових чисел є дуже важливим для збереження конфіденційності даних, що передаються. Методи виправлення помилок і шифрування даних: Коли дані передаються через телекомунікаційний канал або комп'ютерну мережу, потенційно існує три небезпеки: (а)  відмови або збою апаратного забезпечення; (б)  несанкціонованого доступу до системи тих, хто «підслуховує»; (в)  прямого втручання когось, хто посилає помилкові повідомлення в лінію, видаючи себе зовсім за іншого користувача (внаслідок чого приймає повідомлення думає, що його відправили, маючи санкціонований доступ до системи). Шифрування є мало не єдиним способом запобігання комп'ютерному «підслуховуванню» (оскільки парольний захист не може бути абсолютно надійним: «зломщик» може обійти введення пароля, підібрати пароль експериментально або зробити що-небудь ще в цьому ж напрямі. Шифрування ж припускає«перемішування» інформації з одного боку каналу зв'язку, передачу зашифрованих даних, потім розшифровку в приймаючому вузлі лінії зв'язку. Аутентифікація є методом перевірки того, що інформація прийшла від відповідного відправника. Аутентифікація припускає додавання до повідомлення додаткового поля, вміст якого будується по решті частини повідомлення шляхом застосування деякого алгоритму, використовуваного за погодженням приймаючих сторін, які обмінюються інформацією. 3.Код Грея Код Грея Знаходження коду Грея Розглянемо біти числа n і нехай G(n) – код Грея для числа n.   біт дорівнює одиниці лише тоді, коли    біт дорівнює одиниці, а  біт дорівнює нулю або навпаки (  біт дорівнює нулю, а  біт дорівнює одиниці). Таким чином, маємо: . int g (int n) { return n^(n>>1); } Знаходження оберненого коду Грея Потрібно по коду Грея  відновити початкове число . Будемо іти від старших бітів до молодших (нехай наймолодший біт має номер , а найстарший — ). Отримуємо таке відношення між бітами  числа  i бітами  числа :     int rev_g (int g) { int n = 0; for (; g; g>>=1) n ^= g; return n; } 4. Створення програми із описом основних процедур Фунція зміни кольору тексту void print (char * text, int color) { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdOut, color); cout<<text; SetConsoleTextAttribute(hStdOut, 7); } Фунція шифрування файлу void encrypt () { system ("cls"); print ("Введiть шлях до файлу який потрiбно зашифрувати:\n",2); char input [255]; scanf ("%s",input); FILE *in, *out; in = fopen (input,"r") ; if ( in == NULL) print ("Некоректний шлях до файлу !\n",2); else { print ("Введiть шлях файлу для запису зашифрованих даних:\n",2); char output [255]; scanf ("%s",output); out = fopen (output,"w"); if (out == NULL) print ("Некоректний шлях до файлу !\n",2); else { char current; while (fscanf (in,"%c", &current) == 1) fprintf (out,"%d\n", g(current ) ) ; print ("Зашифровано успiшно.\n",2); fclose(in); fclose(out); } } getch(); menu(); } Функція розшифрвання файлу void decrypt() { mitka: system ("cls"); string parol; string trueParol = "qwerty"; print ("Веедiть пароль: \n",2); cin>>parol; if ( parol != trueParol ) { print ("Невiрний пароль !\n\n",2); print ("Введiть\n1 - Cпробувати знову\n2 - Повернутися у попереднє меню",2); char button; while(1){ button = getch(); if (button == '1') goto mitka; if (button == '2') menu(); } } print ("Введiть шлях до файлу який потрiбно розшифрувати:\n",2); char input [255]; scanf ("%s",input); FILE *in, *out; in = fopen (input,"r") ; // відкриття фалу if (in == NULL) print ("Некоректний шлях до файлу !\n",2); else { print ("Введiть шлях файлу для запису розшифрованих даних:\n",2); char output [255]; scanf ("%s",output); out = fopen (output,"w"); if ( in == NULL || out == NULL) print ("Некоректний шлях до файлу !\n",2); else { int current; while (fscanf (in,"%d", &current) == 1) fputc (rev_g(current),out); print ("Розшифровано успiшно.\n",2); fclose(in); // закриття файлу fclose(out); } } getch(); menu(); } 5.Опис технології роботи програми У даній курсовій роботі представлена програма –Шифратор.Ця програма призначена для шифрування текстових файлів . Для зручності створено головне меню з допомогою якого можна легко шифрувати та розшифровувати файли. Після запуску програми відкривається вікно на якому розміщена титульна сторінка програми:  Після того як користувач натиснув будь-яку клавішу програма переходить до основного меню:  Коли користувач вибере один з пунктів меню він зможе ввести шлях до файлу який потрібно розшифрувати або зашифрувати а також шлях для запису зашифрованного файлу:  Код програми
Антиботан аватар за замовчуванням

16.03.2014 23:03-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!