Частотний криптоаналіз
Написання програми на Python, яка могла би порахувати скільки яких символів у в тексті (ігноруючи коми й крапки). Проведено частотний аналіз використання букв української мови. Відповідність між символами зашифрованого тексту та літерами вхідного тексту.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | практическая работа |
Язык | украинский |
Дата добавления | 16.11.2020 |
Размер файла | 271,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Міністерство освіти і науки України
Державний вищий навчальний заклад «Київський національний економічний університет імені Вадима Гетьмана»
Кафедра комп'ютерної математики та інформаційної безпеки
Практична робота
«Прикладна криптологія»
На тему: «Частотний криптоаналіз»
Виконала:
студентка гр. ІК-301
Меднікова М.В.
Перевірив: викладач кафедри КМІБ:
Нагірна А.М.
Київ
2020
Завдання
Узяти 2 невеликих тексти (1-3 речення) і відобразити в текстовому документі частоту появи кожного символу;
Виконання
1) Беремо простий невеликий текст і шифруємо його.
Відкритий текст:
У норі попід землею жив собі гобіт. Ні, не в бридкій брудній вологій норі, де звідусіль стирчать хвости хробаків і смердить тванню, але й не в сухій і порожній піщаній норі, де ні на що присісти й нічого з'їсти: то була гобітська нора, а отже, -- з усіми вигодами.
Зашифрований текст:
X aсkq jсjqh dfnifv tzp sсyq wсyqr. Aq, af p ykzhlqe ykxhaqe pсiсwqe aсkq, hf dpqhxsqib srzkgorb !pсsrz !kсyolqp q snfkhzrb rpoaav, oif e af p sx!qe q jсkсtaqe jqmoaqe aсkq, hf aq ao mс jkzsqsrz e aqgсwс d'usrz: rс yxio wсyqrsblo aсko, o сrtf, -- d xсqnz pzwсhonz.
Пишемо невеличку програмку на Python, яка могла би порахувати скільки яких символів у нас в тексті є (ігноруючи коми й крапки). (текст програми буде в додатку 1).
Отримуємо такі результати:
Маємо частотну характеристику алфавіту української мови(взяту зі статті О.О. Архипової та В.М. Журавльова «Частотний аналіз використання букв української мови»)
частотний криптоаналіз зашифрований текст
Можемо допустити що або Q або C відповідають українській літері О(адже вона найбільш часто використовується в укр мові).
Оскільки у нас доволі часто зустрічаються поодинокі символи Q, то це точно не літера О. Робимо заміну символа С на літеру О.
Одразу припускаємо, що символ Q відповідає українській А або І. Усе ж припустимо, що Q = укр І. Робимо відповідну заміну
Наступним за кількістю появ буде символ A і йому ми сміливо можемо співставити українську літеру Н.
Ставимо у відповідність символу U літеру Ї.
У комбінації з м літерою н доволі часто використовується літера Е. Тому ставимо у відповідність символу F літеру Е.
Ппісля словосполучення «не» скорше за все буде йти одинична літера В, саме тому ставимо у відповідність символу P літеру В.
Очевидно, що буквосполучення з двох літер, одна з яких «е», а інша точно не «н» буде «де». Тому робимо відповідну заміну символа H на літеру Д.
Словосполучення «ні нo mо», де символ після m є літерою О, скорше за все буде словосполученням «ні на що». Робимо відповідні заміни.
Буквосполучення «аiе» очевидно відповідатиме буквосполученню «але».
Словосполучення «а оrtе» дуже схоже на «а отже».
Поодинокі символи «e» вказують на те, що це скорше за все літера Й.
Буквосполучення «ноkі» «ноkа» натякають на те, що символ K насправді літер Р. А слова це норі/нора.
Тепер стає очевидним, що символ J відповідає літері П.
А це «sx!ій» тепер очевидно слово «сухій». Робимо відповідні заміни.
Далі лишаються лише очевидні заміни. Тому описувавти я їх не буду просто заміню всі символи відповідно.
Отже, отримали таку відповідність. Текст розшифрували.
2) Таку саму процедуру робимо з ще одним текстом.
Вхідний текст:
Найчастіше бот у складі ботнета є програмою, щи скрито встановлюється на комп'ютері жертви і що дозволяє зловмисникові виконувати якісь дії з використанням ресурсів зараженого комп'ютера. Зазвичай використовуються для нелегальної або несхвалюваної діяльності -- розсилки спаму, перебору паролів на видаленій системі, атак на відмову в обслуговуванні.
Зашифрований текст:
Tze+zmxjqf ulx b mavzgj ulxtfxz r kwlnwzyl(, !i mawixl smxztlsv(rxpm) tz alyk'(xfwj ofwxsi j !l glhslv)r hvlsyimtialsj sialtbszxi )ajmp gjd h sialwimxztt)y wfmbwmjs hzwzoftlnl alyk'(xfwz. Hzhsi+ze sialwimxlsb(xpm) gv) tfvfnzvptld zul tfmcszv(sztld gj)vptlmxj -- wlhmivai mkzyb, kfwfulwb kzwlvjs tz sigzvftje mimxfyj, zxza tz sjgylsb s lumvbnlsbszttj.
Отримуємо результат:
Ставимо у відповідність символу L літеру О.
Далі у відповідність символу Z можемо поставити літеру А.
(Усе це робимо користуючись усе тією ж частотною характеристикою укр алфавіту)
Буквосполучення «аuо» очевидно э словом «або».
Наступними за частотою появи в тексті є символи S та T, як на мене це мають бути приголосні літери. Отже це або В або Н.
Поставимо у відповідність S літеру В, адже вона зустрічається поодинокою, а відповідно T буде літерою Н.
Наступним за частотою э символ X і він має бути пригорлосним, а також буквосполучення «боx» доволі сильно нагадує слово «бот».
Отже, змінюємо X на Т.
Очевидно що це «ботнfта» слово «ботнета». Звідси ж виходимо на припущення, що для зв'язки слів бот та ботнета використовують слово У.
Слово «атаa» є очевидно словом «атак».
Слово «вiконуватi» ну дууже схоже на слово «виконувати». Робимо выдповідну заміну.
Це словосполучення «атак на вjgyову в обmvуnовуваннj» очевидно означає «атак на відмову в обслуговуванні». Робимо заміни.
Далі знову лишаються лише елементарні заміни, які нема сенсу пояснювати.
Текст розшифровано.
Отримано такий результат:
Висновок: за допомогою частотного аналізу простіше розшифровувати великі тексти, адже там статистика повторюваності літер показується найкраще, найточніше. Я дослідила 2 тексти, за допомогою нескладної програми порахувала кількість кожного з символів і доволі швидко визначила відповідність між символами зашифрованого тексту та літерами вхідного тексту.
Додаток 1
def ChastotnyAnaliz(text):
Frequencies = [0]*(ord(max(text))+1)
for symbol in text:
Frequencies[ord(symbol)] += 1
return Frequencies
from sys import *
text = stdin.read()
Frequencies = ChastotnyAnaliz(text)
for ord_symbol in range(len(Frequencies)):
if Frequencies[ord_symbol] != 0:
print(chr(ord_symbol), Frequencies[ord_symbol])
Размещено на Allbest.ru
...Подобные документы
Видалення, додавання та упорядкування тексту. Установка позицій символів і міжсимвольної відстані. Зміна регістру символів. Вставка символів та форматування абзаців. Вибір теми та шаблону. Створення документу з кількох колонок. Створення буквиці у тексті.
реферат [804,0 K], добавлен 09.08.2011Дослідження методів криптографічного аналізу. Властивості гарної статистики. Технічні та програмні засоби. Алгоритм програми криптографічного аналізу. Модель статичного кріптоаналізу. Аналіз зашифрованого тексту. Рекомендації щодо використання програми.
курсовая работа [1,5 M], добавлен 05.12.2012Сучасні методи захисту текстової інформації. Порівняльний аналіз шифру Бекона з іншими відомими шифрами. Практичне використання алгоритмів кодування тексту. Написання програми "Шифр Бекона", використані компоненти для реалізації алгоритму, їх властивості.
курсовая работа [606,8 K], добавлен 28.03.2016Поняття криптографії та криптографічних систем. Загальні відомості про блокові шифри. Особливості стандарту DES. Процедура генерування раундових підключів. Розшифрування зашифрованого тексту. Криптоаналіз блокових шифрів. Система шифрування RSA.
курсовая работа [712,4 K], добавлен 29.01.2013Огляд існуючих методів розробки компіляторів, детальний опис мови. Характеристика та специфіка процесу розробки програми компілятора на рівні блок-схем і тексту програми. Подання тексту компілятора, а також результатів тестування розробленої програми.
курсовая работа [510,2 K], добавлен 03.06.2011Розробка програми транслітерації україномовних текстів латинськими літерами. Сутність транслітерації - механічної передачі тексту, який записаний однією графічною системою засобами іншої графічної системи, тобто передачі однієї писемності літерами іншої.
курсовая работа [193,9 K], добавлен 05.03.2011Основи Web-програмування. Використання мови HTML. Базові елементи HTML. Форматування тексту. Вирівнювання тексту та горизонтальна лінія. Значення RGB- коду. Таблиці та списки, посилання та робота з ними. Створення посилань на документи і файли.
курсовая работа [40,9 K], добавлен 12.02.2009Сегментація і нормалізація зображень. Основні функціональні можливості та режими роботи комплексу розпізнавання письмового тексту. Розробка комплексу оптичного розпізнавання символів. Шрифтові та безшрифтові алгоритми розпізнавання друкованого тексту.
курсовая работа [1,7 M], добавлен 19.05.2014Проектування архітектури гри "Тетріс". Аналіз вимог до неї. Вивчення особливостей реалізації, кодування та тестування програми. Алгоритм побудови робочого поля. Вибір мови програмування. Розробка і налагодження тексту програми. Інструкції з експлуатації.
курсовая работа [460,9 K], добавлен 04.03.2014Розробка програми для тренування швидкого десяти пальцевого набору тексту на клавіатурі за допомогою класів, які будуть містити в собі параметри об’єктів та їх методи. Аналіз об'єкту програмування. Основні принципи об'єктно-орієнтованого програмування.
курсовая работа [1,8 M], добавлен 18.05.2017Розробка програми реєстрації автомобілів для збереження та перегляду інформації про модель машини, рік її випуску, об'єм двигуна і витрати палива. Складання алгоритмів розв'язання поставленої задачі та написання тексту програми в середовищі Turbo Pascal.
курсовая работа [29,7 K], добавлен 13.10.2010Програмування під DOS мовою низького рівня Асемблер (ASM-86). Функції програми: виведення в довільне місце екрану тексту заданого стилю та кольору, змінення шрифту, розміру літер та напрямку їх виводу. Алгоритм програми, системні вимоги до комп'ютера.
курсовая работа [47,4 K], добавлен 03.06.2009Основні переваги програмування на мові Delphi. Використання стандартних операторів при створенні інтерфейсу користувача. Вибір складу технічних і програмних засобів, організація вхідних і вихідних даних. Розробка програми, блок-схеми та тексту програми.
реферат [316,1 K], добавлен 22.01.2013Поняття та основні властивості алгоритму. Реалізація програми здійснюється за допомогою написаного раніше тексту (вихідного коду). Особливості середовища програмування Турбо Паскаль. Питання синтаксичної правильності та самодокументованості тексту.
практическая работа [1023,8 K], добавлен 03.07.2014Поняття компілятора та теоретичні основи його роботи. Введення коду програми завантаженням текстового файлу. Опрацювання тексту лексичним та синтаксичним аналізаторами. Генерація та оптимізанія об'єктного коду. Побудова графічного інтерфейсу програми.
курсовая работа [586,6 K], добавлен 22.01.2014Програми і мови програмування. Алфавіт мови програмування. Лексеми, зарезервовані слова мови Pascal. Ідентифікатори, типи даних. Арифметичні вирази, операції. Стандартні функції, структура програми. Процедури введення-виведення. Правила написання команд.
лекция [445,0 K], добавлен 24.07.2014Розробка резидентної програми за допомогою мови асемблер, яка дозволить перехопити зміст текстового та графічного екрану у файл (відповідно TXT і BMP). Вибір та обґрунтування методу розв'язки даної задачі. Алгоритм і реалізація програми, системні вимоги.
курсовая работа [14,9 K], добавлен 08.08.2009Головні параметри і характеристики технології Wi-Fi. Огляд її стандартів та частотних каналів. Робота з компонентами Windows Forms. Техніко-економічне обґрунтування програми. Охорона праці та забезпечення безпечних, нешкідливих і сприятливих умов праці.
дипломная работа [1,4 M], добавлен 24.07.2014Програма Txtprint.com для друку на принтері вибіркового тексту з екрану. Обґрунтування вибору принципу розробки та методики побудови системи. Розрахунки та експерементальні матеріали, які підтверджують вірність програмних рішень, текст програми.
курсовая работа [29,8 K], добавлен 08.08.2009Об'єктно-орієнтована мова Python - сучасна мова програмування, проста у вивченні та використанні. Наявність повної стандартної бібліотеки. Середовища програмування на Python. Механізм функціонування інтерпретатора. Колекції даних, комбіновані оператори.
презентация [753,2 K], добавлен 06.02.2014