ВСТУП
З давніх-давен люди використовували різні види інформації. Інформація зберігалася в основному на папері, і часто її могли привласнити. З часом люди почали використовувати різні методи для того, щоб приховати конфіденційну інформацію, і вона була доступна обмеженому колу осіб. Перші способи приховання важливої інформації були досить неординарними і небезпечними. Згодом люди почали використовувати шифрування тексту з метою конфіденційності і несанкціонованого доступу до неї.
Протягом багатьох століть людство використовувало криптографічні методи для захисту інформації при її передачі та зберіганні. Приблизно до кінця XIX ст. ці методи стали об'єктом математичного вивчення. До теперішнього часу криптографія містить безліч результатів (теорем, алгоритмів), як фундаментальних, так і прикладних. Заняття криптографією неможливо без серйозної математичної підготовки. Галузь математики, що вивчає захист інформації, традиційно називається криптологією і підрозділяється на криптографію, що займається розробкою нових методів і обґрунтуванням їх коректності, і криптоаналіз, завдання якого - інтенсивне вивчення існуючих методів, часто з метою реального розкриття секретів іншого боку. Криптографія та криптоаналіз перебувають у тісній взаємодії один з одним і з практичними потребами і розвиваються паралельно закритими урядовими організаціями багатьох держав і міжнародним науковим співтовариством. В даний час існують тисячі криптографічних систем, реалізованих як програмно, так і апаратно. Але реалізувати криптографічну систему в минулому столітті було дуже важко. Однак, поява в середині нашого століття перших електронно-обчислювальних машин кардинально змінила ситуацію. З проникненням комп'ютерів у різні сфери життя виникла принципово нова галузь господарства - інформаційна індустрія. Обсяг циркулюючої в суспільстві інформації з тих пір стабільно зростає за експоненціальним законом - він приблизно подвоюється кожні п'ять років. Фактично, на порозі нового тисячоліття людство створило інформаційну цивілізацію, в якій від успішної роботи засобів обробки інформації залежить саме благополуччя і навіть виживання людства в його нинішній якості. З розвитком ЕОМ характер інформаційних взаємодій надзвичайно ускладнився, і поряд з класичним завданням захисту переданих текстових повідомлень від несанкціонованого прочитання і спотворення виникли нові завдання сфери захисту інформації. Обчислювальні "здібності" сучасних комп'ютерів підняли на абсолютно новий рівень як можливості з реалізації шифрів, раніше немислимих через свою високої складності, так і можливості аналітиків щодо їх злому. Практична криптографія перетворилася в самостійну науку. Були створені методи вирішення нових, нетрадиційних завдань сфери захисту інформації, найбільш відомими з яких є завдання підпису цифрового документа.
Метою написання курсової роботи є дослідження методів захисту інформації і реалізація шифру Бекона.
Завданням даної курсової роботи є:
детально розглянути середовище для створення програм - С++ Builder 6;
дослідити сучасні методи захисту текстової інформації;
зробити порівняльний аналіз шифру Бекона з іншими відомими шифрами;
показати роль шифрування текстової інформації в сучасному світі;
реалізувати алгоритм і створити відповідне ПО на мові С++ у середовищі С++ Builder 6 для шифрування і розшифрування текстової інформації.
Об'єктом дослідження є шифр Бекона.
Предметом дослідження є місце сучасної криптографії серед інших незалежних наук, суть і роль шифру Бекона.
Для того, щоб вирішити ряд поставлених завдань, курсову роботу розділено на три розділи.
У першому розділі розглянуто суть і практичне використання алгоритмів шифрування тексту.
У другому розділі розглянуто основні особливості мови С++ і середовище для програмування С++ Builder 6;
У третьому розділі розглянуто детальний опис створеної програми а також звернемо увагу на труднощі які виникли при написані програми.
Закінчується робота висновками, які узагальнюють весь матеріал і дають чітку оцінку даного шифру порівняно з іншими шифрами.
При написанні роботи використано багато
підручників про криптографію, які допомогли краще зрозуміти суть і роль
криптографії у сучасному світі. Такими питаннями займалося небагато вчених, але
вони зробили вагомий внесок у криптографію. Над питаннями про шифрування і
розшифрування даних працювали такі вчені: Болтов А.А., Брассар Ж.К., Гатченко
Н.А., Ісаєв А.С., Яковлев А.Д. Серед них вітчизняні вчені : Захарова М.В.,
Піскунова Т.С., Шпара С.В.
РОЗДІЛ І.АЛГОРИТМ КОДУВАННЯ ТЕКСТУ
.1 Практичне використання алгоритмів кодування
тексту
Сьогодні велика кількість різних організацій старається не розголошувати інформацію про свої розробки , статистичні дані і т.д. Але, зберігаючи інформацію на різних фізичних носіях, вона може бути викрадена і використана у поганих цілях . «Хто володіє інформацією, той володіє світом», - сказав колись Уїнстон Черчіль. Замінити фізичний носій може і будь-хто, при цьому виявити викрадача дуже важко. Як вирішення проблеми пропонується сотні сервіс-сховищ даних . Сервіси надають можливість для зберігання і отримання будь-якого обсягу даних, у будь-який час, з будь-якої точки земної поверхні. Але їх можуть зламати і скористатися вашими даними. Надійний захист інформації може дати тільки шифрування даних - оборотне перетворення даних з метою приховання інформації. Цей процес складається з двох частин : шифрування і розшифрування. Дані можуть зберігатися і передаватися у різних носіях в зашифрованому вигляді і стають доступні тільки при завантаженні ключа шифрування. Ключ - інформація, необхідна для безперешкодного шифрування й дешифрування текстів. Ключ для шифрування і розшифрування може бути як однаковий, так і різний. В залежності від ключа поділяють шифрування на симетричне і асиметричне . При симетричному шифруванні використовується спільний ключ для зашифрування і розшифрування інформації. При цьому вказаний тип шифрування має дуже багато недоліків: ключ потрібно передавати іншій стороні для розшифрування і його можуть перехопити. Але швидкість зашифрування і розшифрування набагато більша, ніж у асиметричному методі . Асиметричний тип шифрування кращий тим, що немає необхідності передавати ключ , він відкритий . Повідомлення можна розшифрувати, використовуючи відповідний алгоритм. Але такий тип шифрування значно повільніший. Криптографія - це наука, яка займається шифрування інформації. Вона заснувалася ще в часи до нашої ери. Зараз налічується дуже багато видів шрифтів, всі вони відрізняють своєю складністю, особливістю ключа. Зашифрувати можна будь-який текст, для цього придумано безліч способів. Створено безліч машин, які шифрують текст з високою швидкістю. Особливо актуальними шифрувальні машини були під час різних війн . Вони коштували дуже дорого і були дуже рідкісними, а шифри, використанні ними, - поганими і легко розшифровувалися. Складність шифру визначається часом для розшифрування повідомлення без ключа, а також кількістю всіх можливих ключів . Для сучасних криптографічних систем захисту інформації сформульовані наступні загальноприйняті вимоги:
Зашифроване повідомлення повинно піддаватися читанню тільки при наявності ключа.
Число операцій, необхідних для визначення використаного ключа шифрування за фрагментом шифрованого повідомлення і відповідного йому відкритого тексту, повинно бути не менше загального числа можливих ключів.
Число операцій, необхідних для розшифровки інформації шляхом перебору різноманітних ключів повинно мати строгу нижню оцінку і виходити за межі можливостей сучасних комп'ютерів (з урахуванням можливості використання мережевих обчислень).
Знання алгоритму шифрування не повинно впливати на надійність захисту.
Незначна зміна ключа повинна приводити до істотної зміни виду зашифрованого повідомлення навіть при використанні одного і того ж ключа.
Структурні елементи алгоритму шифрування повинні бути незмінними.
Додаткові біти, що вводяться в повідомлення в процесі шифрування, повинні бути повністю та надійно сховані в зашифрованому тексті.
Довжина шифрованого тексту повинна бути рівною довжині вихідного тексту.
Не повинно бути простих і легко встановлюваних залежністю між ключами, послідовно використовуються в процесі шифрування.
Будь-який ключ із безлічі можливих повинен забезпечувати надійний захист інформації.
Алгоритм повинен допускати як програмну, так і апаратну реалізацію, при цьому зміна довжини ключа не повинна призводити до якісного погіршення алгоритму шифрування.[7]
Захист даних з допомогою шифрування - одне з можливих рішень проблеми безпеки інформації . Зашифровані дані стають доступними тільки для того, хто знає, як їх розшифрувати, і тому викрадення зашифрованих даних абсолютно безглузде для несанкціонованих користувачів. Криптографія забезпечує не тільки таємність інформації, але і її справжність. Секретність підтримується шляхом шифрування окремих повідомлень або всього файлу цілком. Справжність інформації підтверджується шляхом шифрування спеціальним кодом, що містить всю інформацію, що перевіряється одержувачем для підтвердження особи автора. Він не тільки засвідчує походження інформації, але і гарантує її незмінність . Навіть просте перетворення інформації є дуже ефективним засобом, що дає можливість приховати її сенс від більшості людей.
Але розшифрування інформації зазвичай займало багато часу , однак з розвитком ПК розшифрувати текст стало можливо за декілька секунд .Тому сьогодні криптографія особливо розвинулася. Банки та інші фінансові установи піклуються про збереження своєї безпеки і приділяють особливу увагу шифруванню конфіденційної інформації. У ХХ ст. криптографія припинила використовуватися тільки у військові справі і розширилась у всі сфери життя, ставши незалежно наукою і об'єктом математичних досліджень [4].Зараз високо ціняться фахівці у цій сфері.
Отже, розглянувши цей розділ можна зробити
висновки що кожні дані можуть бути викрадені , персоналізовані і використані у
поганих цілях. З метою запобігання цього є шифрування інформації , яке
забезпечує безпечне зберігання і передачу даних . Шифрування - це оборотне
перетворення даних, з метою приховання інформації. Цей процес складається з
двох частин : шифрування і розшифрування. Основним властивостями надійного
шифру є його криптостійкість, довжина вхідних і вихідних даних має бути
однакова.
.2 Суть шифру Бекона
Френсіс Бекон - англійський письменник, природодослідник, філософ і політичний діяч. У постаті Бекона поєднуються філософ ,політичний діяч, вчений і письменник . Він став автором одного з відомих сьогодні шифрів для кодування тексту. Сам Бекон висунув головні вимоги до своїх шрифтів: «Вони не повинні піддаватися розшифруванню, не повинні вимагати багато часу для написання і читання, і не повинні порушувати ніяких підозр». Ці вимоги зберігаються і сьогодні. Він також запропонував оригінальну ідею захисту інформації, що спирається, по суті, на двійкове кодування букв алфавіту і використання у відкритому тексті двох шрифтів які мало відрізняються. Френсіс Бекон попереджав про можливі негативні наслідки помилок у використанні навіть вельми надійних шифрів. Він писав: «В результаті незручності і не майстерності тих рук, через які проходять найбільші секрети, ці секрети у багатьох випадках виявлялися наділеними слабшими шифрами» [6].Іншими словами, навіть сильний шифр в поганих руках не забезпечує надійного захисту секретів. Надійність шифру полягає не тільки в самому шифрі, але й у руках його користувача. Наступні століття підтвердили цю тезу. Навіть у XX столітті помилки у використанні шифрів зводили «нанівець» всі зусилля по захисту інформації. За справедливим зауваженням Д. Кана «Помилка шифрувальника часом є єдиною надією криптоаналітика».
Френсіс Бекон у своїй першій роботі 1580 запропонував двійковий спосіб кодування латинського алфавіту, за принципом аналогічний тому, що зараз використовується в комп'ютерах. Для кодування повідомлень Френсіс Бекон запропонував кожну букву тексту замінювати на групу з п'яти символів "A" або "B" (так як послідовністю з п'яти двійкових символів можна закодувати багато раз, що достатньо для шифрування 26 букв англійського алфавіту)[8] . За часів Френсіса Бекона англійський алфавіт складався з 24 букв: літери "I" і "J", а також "U" і "V" були попарно невідмітні і використовувалася одна замість іншого [3].
a aaaaa g bbbba n baabb t babbaaaaab h bbbab o aabba u + v abbaaaaabb i + j bbabb p abbab w baaabaabbb k abbba q bbaba x aaabaabbbb l bbbaa r babab y aababbbbbb m bbaab s ababb z ababa
Bаріант шифру Бекона, який використовує сучасний англійський алфавіт:
a aaaaa g bbbba m bbaab s ababb aabab b aaaab h bbbab n baabbbabba z ababa c aaabb i bbabbaabba u abbaa d aabbb j babbb abbab v bbaaa e abbbb k abbbabbaba w baaab f bbbbb l bbbaa
r babab x aaaba
Отже,
розглянувши цей розділ можна підсумувати загальну суть шифру Бекона. Бекон
запропонував двійковий спосіб кодування латинського алфавіту , який полягав у
заміні букв алфавіту на комбінацію з п'яти букв «а» і «в».
1.3
Особливості використання шифру, порівняльний аналіз з іншими шрифтами
Письменниця Елізабет Уелс Геллап протягом свого життя неодноразово досліджувала листи, знайдені у різних місцях написані Беконом. Сам Бекон говорив про те, якщо б хтось розшифрував його повідомлення, то на нього чекала б миттєва смерть. Шифр має певні особливості - довжина вихідних даних у 5 разів перевищує довжину вхідних даних , тому закодований текст займає великий розмір, а, отже, його важче передати , а правилами криптографії говориться, що у кожному хорошому шифрі довжина вхідних і вихідних даних однакова. Закодовані повідомлення можна легко розкодувати. Але і достоїнством шифру є те, що його можна закодувати декілька раз і цим самим підвищити криптостійкість шифру. На сьогоднішній день цей шифр є мало актуальним, оскільки займає багато розміру, а це особливо важливо оскільки від цього залежить швидкість передачі повідомлення вартість його зберігання і т.д.
Якщо зробити порівняння з іншим відомим шифром Атбаш то шифр Бекона має багато недостатків. Шифр Атбаш - стародавній шифр, що використовує техніку дзеркальної перестановки. В шифрі Атбаш перша буква алфавіту замінюється останньою , друга передостанньою і так далі, шифрування відбувається заміною букв відкритого тексту на симетричні ним букви того ж алфавіту, аналогічно виконується дешифрування. Вихідний текст займає такий самий розмір, як і вхідний , що робить його простим у використанні , хоча даний шифр має певні особливості, він має низьку криптостійкість і його запросто зламати маючи простий алфавіт в той час, коли у шифрі Бекона кожній букві ставиться у відповідність комбінація з п'яти символів і його розшифрувати можна лише маючи ключ.
Отже,
якщо зробити порівняння цих двох шифрів, то можна дійти до висновку, що кожен з
них має як і недоліки, так і переваги, але на сьогоднішній час їх майже не
використовують через появу нових універсальних шифрів.
РОЗДІЛ
II. СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ С++ BUILDER
.1
Короткий опис мови С++
Історія розроблення мови програмування C++ починається з мови С, тобто її побудовано на фундаменті та синтаксисі мови С. Мова C++ насправді є надбудовою мови С, тобто усі компілятори C++-програм можна використовувати для компілювання С-програм. Мову C++ можна назвати розширеною та поліпшеною версією мови С, у якій реалізовано технологію об'єктно-орієнтованого, узагальненого та процедурного програмування. Вона також містить ряд інших удосконалень мови С, наприклад, розширений набір бібліотечних функцій.[4]C++ розширення С - був розроблений Бьярном Страуструпом в лабораторії центра AT&T Bell Laboratories (Нью-Джерсі, США) у 1979 році. Початкова назва С була змінена на С++ у 1983 році. Оскільки С - стандартизована, апаратно-незалежна, широко доступна мова, програми, написані на С, часто можуть бути виконані з мінімальними модифікаціями або навіть без них на різних комп’ютерних системах. За останні роки у сфері програмного забезпечення відбувся ряд значних змін. С++ та інші схожі з ними мови програмування відносяться до категорії процедурних мов. Кожен оператор такої мови є вказівкою комп’ютеру виконати певну дію. Програміст створює перелік інструкцій, а комп’ютер виконує дії, що відповідають цим інструкціям.[1]
Мова С++ підтримує декілька основних парадигм програмування: об'єктно-орієнтованої, узагальненої та процедурної. Зараз мова С++ є одною з найбільш популярних мов програмування . На мові С++ написано більшість програм , ОС.
Вона має ряд особливостей:
підтримка об'єктно-орієнтованого програмування через класи;
підтримка узагальненого програмування через шаблони;
доповнення до стандартної бібліотеки;
додаткові типи даних;
обробка винятків;
простори імен;
вбудовані функції;
перевантаження операторів;
перевантаження імен функцій;
посилання і оператори управління вільно розподіленою пам'яттю.
Отже,
мова С++ є одною з найбільш популярних і універсальних мов програмування . Мова
С++ підтримує більшість парадигм програмування. На мові С++ написано багато
програм , ОС.