Постановка на проблема - Програма - Шифър на Цезар

Кодирането е процес на присвояване на символи на икономическа информация, предмет на определени правила. Наборът от правила, по които се извършва кодирането, се нарича система за кодиране. Кодът е обозначение на характеристика на обект под формата на знак или група от знаци в съответствие с приетата система за кодиране. Има два вида кодове: машинни и икономически. Машинните кодове се използват за управление на компютър и представяне на команди, икономическите кодове комбинират всички видове кодове, използвани за представяне на техническа и икономическа информация. Знаците, използвани в процеса на кодиране, съставят азбуката на кода. Броят на знаците от азбучен код, използван в обозначението на кода, се нарича основа на кода. Цифровата азбука на кода се състои от цифри, смесена - от букви и цифри.

В изчислителната техника има система, наречена двоична система за кодиране, базирана на представянето на данни чрез поредица от само два знака: 0 и 1. Понякога системите за кодиране се наричат ​​числови системи. Има още осмична (0 до 7), шестнадесетична (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) и десетична (0 до 9) бройни системи.

Кодирането на информация е тясно свързано с използването на методи за сортиране, групиране, търсене. Тези методи определят предназначението и структурата на кодовете. Кодирането и обратният процес - декодирането - се извършват многократно по време на автоматизирана обработка на данни, като се започне с подготовката на документи или други носители на информация, предаването на данни по комуникационни канали и завършва с издаването на ефективна информация на потребителя.

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

Системата за поредно кодиране е такова обозначение на позиционната номенклатура, което съответства на нейните серийни номера. Поредният код се използва за идентифициране на второстепенни, установени списъци с имена. Предимствата на кода са лекота на изграждане; недостатъци - невъзможност за разграничаване на класификационни групи и подгрупи признаци, невъзможност за разширяване на номенклатурата при нови имена на обекти.

Системата за серийно кодиране е по-нататъшно развитие на редния номер. Характеристиките са предварително групирани според икономическите изисквания. На всяка група се присвоява поредица от числа във възходящ ред, но като се вземе предвид резервът, има свободни позиции в случай, че се появят нови обекти. Предимството на тази система е лекотата на разширяване на номенклатурата, когато не се нарушава приетата система за групиране на признаци, недостатъкът е липсата на автоматична възможност за получаване на резултати.

Системата за позиционно кодиране се използва за кодиране на елементи с голям брой знаци. Класификацията на обектите се извършва, за да се идентифицират групи, подгрупи, разновидности на признаци. Предимствата на тази система са предоставянето на групиране на данни по различни критерии, възможността за автоматично компресиране на информация, недостатъците са многоцифрени, тромави.

Шахматната система за кодиране е разновидност на позиционната. Обикновено свързва два знака едновременно под формата на матрица, където единият знак (най-високият) е разположен хоризонтално (в редове), а другият (най-младият) - вертикално (в колони). Кодът е изграден в клетките на матрицата като комбинация от две характеристики.

Комбинираната система за кодиране се основава на комбинация от различни системи за кодиране, като се вземат предвид техните предпочитания. В зависимост от конкретните случаи е препоръчително да използвате напр.сериен позиционен код, сериен ред и т.н.

Изборът на конкретна система за кодиране зависи от обема на кодираната номенклатура, нейната стабилност, от задачите, които системата има, по-специално от това колко време отнема търсенето на данни, както и тяхната пълнота, надеждност и надеждност.

Кодиране на информация в двоичен код.

Има различни начини за кодиране и декодиране на информация в компютър. Зависи от вида на информацията: текст, число, графично изображение или звук. За едно число също е важно как ще се използва: в текст, или в изчисления, или в процеса на въвеждане-извеждане. Цялата информация е кодирана в двоичната бройна система: с помощта на числата 0 и 1. Тези два знака се наричат ​​двоични цифри или битове. Технически е лесно да се организира такъв метод на кодиране: 1 - има електрически сигнал, 0 - няма сигнал. Недостатъкът на двоичното кодиране е дългите кодове. Но в технологиите е по-лесно да се работи с голям брой прости елементи от един и същи тип, отколкото с малък брой сложни.

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

Когато се натисне клавиш на клавиатурата, сигналът се изпраща към компютъра като двоично число, което се съхранява в кодова таблица. Кодовата таблица е вътрешно представяне на символи в компютър. ASCII таблицата (American Standard Code for Information Interchange - Американски стандартен код за обмен на информация) е приета като стандарт в света. За съхраняване на двоичния код на един знак се отделя 1 байт = 8 бита. Тъй като 1 бит приема стойност 0 или 1, тогава с помощта на един байт можете да кодирате 28 = 256 различни символа, т.к. това е колко различни кодови комбинации можете да направите. Тези комбинации съставят ASCII таблицата. Например буквата S има код 01010011; когато го натиснете на клавиатурата,върху него се изгражда декодиране на двоичния код и изображението на символа на екрана на монитора.

Стандартът ASCII дефинира първите 128 знака: цифри, букви от латинската азбука, контролни знаци. Втората половина на кодовата таблица не е дефинирана от американския стандарт и е предназначена за национални знаци, псевдографски и някои нематематически знаци. Различните държави могат да използват различни версии на втората половина на кодовата таблица. Цифрите се кодират съгласно този стандарт по време на въвеждане-изход и ако се срещат в текста. Ако те участват в изчисленията, тогава те се преобразуват в друг двоичен код.

Двоичната бройна система използва двете цифри 0 и 1 за представяне.

десетична 435.6710 = 4102 + 3101 + 5100 + 6 10-1 + 7 10-2 десетична 10110.1012 = 1 24 +0 23 +1 22 +1 21 +0 20 +1 2-1 +0 2-2 +1 2-3

Операциите с числата в двоичната система се изучават от науката двоична аритметика. Всички основни закони на аритметичните операции за такива числа също са изпълнени.

За сравнение, разгледайте две опции за кодиране на числото 45. Когато използвате число в текста, всяка цифра се кодира с 8 бита в съответствие с ASCII (т.е. необходими са 2 байта): 4 - 01000011, 5 - 01010011. Когато се използва в изчисления, кодът на това число се получава съгласно специални правила за преобразуване от десетична в двоична под формата на 8-битово двоично число: 4510 = 001011 012, което ще изисква 1 байт.

Кодиране на графична информация.

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

Аудио кодиране.

Звуковата информация може да бъде представена чрез поредица от елементарни звуци (фонеми) и паузи между тях. Всеки звук се кодира и съхранява в паметта. Извеждането на звуци от компютъра се осъществява от синтезатор на реч, който чете съхранения звуков код от паметта. Много по-трудно е да преобразувате речта на човек в код, т.к. живата реч има голямо разнообразие от нюанси. Всяка изговорена дума трябва да бъде сравнена с еталон, предварително съхранен в паметта на компютъра, и ако съвпадат, тя се разпознава и записва.

Тема: Разработване на програма за Windows "Caesar Cipher".

Условие на задачата: "Caesar Cipher" изпълнява следната текстова трансформация: всяка буква от изходния текст се заменя с третата буква след нея в азбуката, която се счита за написана в кръг.

Обект на изследване е криптирането идешифриране на текст, за предоставяне на достъп до файлове на определен кръг от хора. Тази програма за криптиране е базирана на технологията за шифиране на Цезар.

1) Анализирайте научната литература по криптография.

2) Разработване на автоматизирана система за криптиране, използваща метода на шифъра на Цезар.

Методологическа основа на изследването е литературата за различни методи за криптиране и тяхното използване в практиката.

Изследователски методи. За решаване на поставените задачи бяха използвани методите на емпиричното изследване: анализ на литературата по изследваната тема, сравнителен анализ; обобщаване и систематизиране на получените данни, разработване на софтуер.

Практическата значимост на изследването. Благодарение на свършената работа се появи софтуерът. Създаването му позволи да се проникне във важността на информационната сигурност, да се разберат нейните аспекти и в бъдеще да се използват по-модерни и по-сигурни методи за криптиране на данни.

Входни и изходни данни. Входните данни са информацията, която трябва да бъде криптирана, въведена в текстовите полета.

Списък на изходните данни:

1) Криптирано съобщение, което може да бъде записано във файл;

2) Криптирано съобщение, прочетено от файла;

3) Декриптирана информация;

4) Файл с пълната записана информация.

Формата се управлява с помощта на бутони, които отговарят за различни действия с програмата.

Цезар използва следния алгоритъм, за да шифрова съобщенията си, той взема първата буква от обикновения текст и я измества 3 позиции напред в азбуката, като по този начин получава буквата от шифрованата азбука. Шифърът на Цезар е симетричен алгоритъм. Симетричните алгоритми саалгоритми, при които ключът за криптиране може да бъде изчислен от ключа за декриптиране и обратно. В повечето симетрични системи ключовете за криптиране и декриптиране са еднакви. Тези алгоритми се наричат ​​още алгоритми с таен ключ или алгоритми с един ключ. Работата на такава система изисква изпращачът и получателят да се договорят за ключа, който да се използва, преди да започне защитеното предаване на съобщението (да имат защитен канал за предаване на ключа). Сигурността на симетричния алгоритъм се определя от ключа, т.е. разкриването на ключа позволява на атакуващия да криптира и декриптира всички съобщения.

Предимството на тази система е лекотата на криптиране и декриптиране. Недостатъците на системата Цезар включват:

- заместванията, извършени в съответствие със системата на Цезар, не маскират честотите на появяване на различни букви в изходния и отворения текст;

- азбучният ред се запазва в последователността на заместващите букви; при промяна на стойността на ключа се променят само началните позиции на такава последователност;

- броят на възможните ключове е малък;

- Шифърът на Цезар се разбива лесно въз основа на анализа на честотата на срещане на буквите в шифъра.

В програмата, която се разработва, ключът е 3. Програмата осигурява въвеждане на текст в прозореца на програмата или зареждане от външен файл. В лентата с инструменти на програмата е необходимо да предоставите бутоните "Кодиране" и "Декодиране".

При натискане на бутона "Кодиране" програмата последователно прочита знака, ако този знак е буква от българската азбука, програмата го заменя със следващата буква от азбуката със стъпка равна на три. Ако символът не е буква от българската азбука, програмата го оставя непроменен. Буквите от английската азбука също остават непроменени.

Припри натискане на бутона "Декодиране" програмата последователно прочита знака, ако този знак е буква от българската азбука, програмата го заменя с предишната буква от българската азбука със стъпка три. Ако символът не е буква от българската азбука, програмата го оставя непроменен.

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

Алгоритъмът на програмата е даден в Приложение 1.