Постановка задачі - Програма - Шифр ​​Цезаря

Кодування - це присвоєння економічної інформації умовних позначень, підпорядкованих певним правилам. Сукупність правил, якими здійснюється кодування, називається системою кодування. Код є позначенням ознаки об'єкта у вигляді знака або групи знаків відповідно до прийнятої системи кодування. Розрізняють два типи кодів: машинні та економічні. Машинні коди використовують для управління ПК та подання команд, економічні об'єднують усі види кодів, що використовуються для подання техніко-економічної інформації. Знаки, які у процесі кодування, становлять абетку коду. Число знаків буквеного коду, що використовуються в кодовому позначенні, називається основою коду. Цифрова абетка коду складається з цифр, змішана – з літер та цифр.

У обчислювальної техніки існує система, яка називається двійкова система кодування, заснована на поданні даних послідовністю всього двох знаків: 0 і 1. Іноді системи кодування називають системами числення. Також є вісімкова (від 0 до 7), шістнадцяткова (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, B, C, D, E, F) та десяткова (від 0 до 9) системи числення.

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

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

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

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

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

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

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

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

Кодування інформації у двійковому коді.

Існують різні способи кодування та декодування інформації в комп'ютері. Це залежить від виду інформації: текст, число, зображення або звук. Для числа також важливо, як воно буде використано: у тексті, чи обчисленнях, чи процесі вводу-вывода. Вся інформація кодується у двійковій системі числення: за допомогою цифр 0 і 1. Ці два символи називають двійковими цифрами або бітами. Такий спосіб кодування технічно легко організувати: 1 – є електричний сигнал, 0 – немає сигналу. Недолік двійкового кодування – довгі коди. Але в техніці легше мати справу з великою кількістю простих однотипних елементів, ніж з невеликою кількістю складних.

Кодування текстової інформації.

При натисканні клавіші клавіатури сигнал надсилається до комп'ютера у вигляді двійкового числа, яке зберігається в кодовій таблиці. Кодова таблиця - це внутрішнє уявлення символів у комп'ютері. Як стандарт у світі прийнято таблицю ASCII (American Standart Code for Information Interchange - Американський стандартний код обмінюватись інформацією). Для зберігання двійкового коду одного символу виділено 1 байт = 8біт. Оскільки 1 біт приймає значення 0 чи 1, то з допомогою одного байта можна закодувати 28 = 256 різних знаків, т.к. саме стільки різних кодових комбінацій можна скласти. Ці комбінації складають таблицю ASCII. Наприклад, буква S має код 01010011; при натисканні на клавіатурі відбуваєтьсядекодування двійкового коду і будується зображення символу на екрані монітора.

Стандарт ASCII визначає перші 128 символів: цифри, літери латинського алфавіту, символи керування. Друга половина кодової таблиці не визначена американським стандартом та призначена для національних символів, псевдографічних та деяких нематематичних символів. У різних країнах можуть використовуватись різні варіанти другої половини кодової таблиці. Цифри кодуються за цим стандартом під час введення-виведення і якщо вони зустрічаються в тексті. Якщо вони беруть участь у обчисленнях, здійснюється їх перетворення на інший двійковий код.

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

у десятковій системі числення 435,6710 = 4 102 + 3 101 + 5 100 + 6 10-1 + 7 10-2 у десятковій системі числення 10110,1012 = 1 24 +0 23 +1 22 +1 21 +0 2 2-1+0 2-2+1 2-3

Дії з числами у двійковій системі числення вивчає наука двійкова арифметика. Усі основні закони арифметичних дій для таких чисел також виконуються.

Для порівняння розглянемо два варіанти кодування для числа 45. При використанні числа в тексті кожна цифра кодується 8 бітами відповідно до ASCII (тобто потрібно 2 байти): 4 - 01000011, 5 - 01010011. При використанні в обчисленнях код цього числа виходить за спеціальними правилами переведення з десяткової системи числення у двійкову у вигляді 8-розрядного двійкового числа: 4510 = 001011012, що вимагатиме 1 байт.

Кодування графічної інформації.

Графічний об'єкт на комп'ютері може бути представлений як растрове або векторне зображення. Від цього залежить спосіб кодування. Растрове зображення є сукупністю точок різного кольору. Об'єм растрового зображеннядорівнює добутку кількості точок на інформаційний обсяг однієї точки, який залежить від кількості можливих кольорів. Для чорно-білого зображення інформаційний обсяг точки дорівнює 1 біт, т.к. вона може бути білою, або чорною, що можна закодувати двома цифрами 0 і 1. Розглянемо, скільки потрібно біт для зображення точки: 8 кольорів - 3 біти (8 = 23); для 16 кольорів – 4 біти (16 = 24); для 256 кольорів – 8 бітів (1 байт). Різні кольори виходять із трьох основних - червоного, зеленого та синього. Векторне зображення є графічним об'єктом, що складається з елементарних відрізків і дуг. Положення цих елементарних об'єктів визначається координатами точок та довжиною радіусу. Для кожної лінії вказується її тип (суцільна, пунктирна, штрих-пунктирна), товщина та колір. Інформація про векторне зображення кодується як звичайна буквено-цифрова та обробляється спеціальними програмами.

Кодування звукової інформації.

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

Тема: Розробити програму для Windows "Шифр Цезаря".

Умова завдання: «Шифр Цезаря» реалізує таке перетворення тексту: кожна літера вихідного тексту замінюється третьою після неї літерою в алфавіті, який вважається написаним по колу.

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

1) Проаналізувати наукову літературу про криптографію.

2) Розробка автоматизованої системи шифрування шляхом шифру Цезаря.

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

Методи дослідження. Для вирішення поставлених завдань використовувалися методи емпіричного дослідження: аналіз літератури на тему дослідження, порівняльно-порівняльний аналіз; узагальнення та систематизації отриманих даних, розробка програмного забезпечення.

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

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

Перелік вихідних даних:

1) Зашифроване повідомлення, яке можна записати у файл;

2) Прочитане із файлу зашифроване повідомлення;

3) Розшифрована інформація;

4) Файл із його повною записаною інформацією.

Керування формою здійснюється за допомогою кнопок, які відповідають за різні дії із програмою.

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

Перевагою цієї системи є простота шифрування та дешифрування. До недоліків системи Цезаря слід зарахувати:

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

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

- Число можливих ключів мало;

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

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

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

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

Програма передбачає кодування/декодування тексту як набраного вручну, і завантаженого з файла. Закодований або розшифрований текст також можна зберегти у зовнішній файл.

Алгоритм роботи програми наведено у Додатку 1.