Шифрование и дешифрование текстовых файлов методом XOR-шифрования - Студенческий научный форум

XIII Международная студенческая научная конференция Студенческий научный форум - 2021

Шифрование и дешифрование текстовых файлов методом XOR-шифрования

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Вопросам защиты информации в настоящее время уделяется большое внимание. Среди разнообразных средств защиты информации криптографические методы занимают особое место. В работе показана разработка программного продукта на языке программирования С++, реализующего такие методы шифрования как метод простой замены (подстановки), позволяющего обычным пользователям компьютера зашифровать и расшифровать необходимый им текст.

Ключевые слова: шифрование, дешифрование, XOR-шифрование.

Information security issues are currently receiving much attention. Among the various means of protecting information, cryptographic methods occupy a special place. The work shows the development of a software product in the C ++ programming language, which implements such encryption methods as the simple replacement (substitution) method, allowing ordinary computer users to encrypt and decrypt the text they need.

Keywords: encryption, decryption, XOR encryption.

В последние десятилетия накопление практического опыта использования различных алгоритмов и протоколов происходит очень быстро, а знания по этой теме не могут претендовать на полноту изложения. В этой связи, актуальность темы очевидна, так как информация в современном обществе – одна из самых ценных вещей в жизни, требующая защиты от несанкционированного проникновения лиц, не имеющих к ней доступа.

Программ для шифрования файлов существует бессчетное множество, большинство из них просты и удобны в применении [2]. Как ни странно, но самым простым и одним из самых эффективных, на мой взгляд, (при правильном использовании) алгоритмов шифрования является так называемое XOR-шифрование [1]. Алгоритм XOR-шифрования основан на применении бинарной логической операции «Исключающее или» [3].

На вход алгоритму подается исходный текст (в общем случае, любой набор байт, т.е. произвольный файл) и строка пароля/ключа. Идея алгоритма заключается в том, что к каждому символу исходного текста и очередному символу строки пароля/ключа применяется побитовая логическая операция XOR. Результат записывается в файл. Операция XOR обладает симметричностью [4]. Это значит, что если зашифровать один и тот же файл два раза с одним и тем же паролем/ключом, то на выходе получим сам этот файл без изменений. Из этого факта становится ясно, что для шифрования и расшифровывания будет использоваться одна и та же функция, что существенно упрощает реализацию алгоритма. При этом, если при расшифровывании используется тот же пароль/ключ, что и при шифровании, то на выходе будет получен исходный файл. Если же пароли/ключи различаются, то на выходе будет получен файл, который будет содержать некорректные данные.

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

1) На входе поступают указатели на исходный и результирующий файлы.

2) Ввод ключа шифрования.

3) Чтение очередного символа (байта) из исходного файла.

4) Применение операции XOR к прочитанному байту и очередному символу ключа.

5) Результат операции записывается в результирующий файл.

6) Если не достигнут конец исходного файла, переход на шаг 2.

7) Если ключ короче исходного файла (а в подавляющем большинстве случаев так и будет), то ключ используется циклически, т.е. после последнего символа пароля вновь переход к первому.

Рис.1 Результат работы программы «Шифрование»

Инструкция для работы с приложением «Шифрование».

1) Открыть файл input.txt и ввести исходный текст для шифрования. 2) Запустить приложение Shifr.exe. 3) Ввести ключ шифрования размером от 1 до 10 символов. При введении ключа более 10 символов, программа будет шифровать текст, но в ключе читаются только первые 10 символов, остальные программа отбрасывает. 4) Нажать Enter. 5) Открыть файл Shifr.txt, в который записался зашифрованный текст.

Приведу фрагмент программного кода «Шифрование».

setlocale(LC_ALL, "Russian");

char key[10];

cout<<"Введите код шифрования "<<endl;

cin>>key;

FILE *input = fopen("input.txt", "rb"); \\открытиефайлаввода

FILE *output = fopen("shifr.txt", "wb"); \\открытиефайлавывода

if ( input != NULL && output != NULL )

{

unsigned char buffer[BUFSIZ];

size_t count, i, j = 0;

do {

count = fread(buffer, sizeof *buffer, sizeof buffer, input); \\началочтенияисходногофайла

for ( i = 0; i < count; ++i ) \\началопобайтногосложения XOR

{

buffer[i] ^= key[j++];

if ( key[j] == '\0' )

j = 0;

}

fwrite(buffer, sizeof *buffer, count, output); \\переписьисходногофайлавзашифрованныйвид

} while ( count == sizeof buffer );

fclose(input); \\закрытиефайлаввода

fclose(output); \\закрытие файла вывода

}

cout<<"Готово, текст зашифрован ";

return 0;

}

Аналогично, для расшифрования текста нужно.

1) Открыть файл Shifr.txt и скопировать/ввести в него текст, который нужно расшифровать. 2) Запустить приложение Deshifr.exe. 3) Ввести ключ шифрования, он должен быть тем же, что и при шифровании текста, иначе программа текст не расшифрует (в ключе читаются только первые 10 символов, остальные программа отбрасывает и продолжает шифрование). 4) Нажать Enter. 5) Открыть файл Deshifr.txt, в который записывается расшифрованный текст.

В заключении можно добавить, что по своей структуре программы шифрования и дешифрования информации хорошо организованы, и это позволяет в случае необходимости их легко модифицировать. Тема моего исследования очень интересна для меня и на сегодняшний день является актуальной. С каждым годом компьютерная информация играет всё более важную роль в нашей жизни и проблема её защиты становится наиболее острой.

Список литературы.

1. Банк лекций. Шифрование и дешифрование [Электронный ресурс]. – URL: https://siblec.ru/telekommunikatsii/teoreticheskie-osnovy-tsifrovoj-svyazi/14-shifrovanie-ideshifrovanie (дата обращения: 04.10.2020).

2. Басалова Г. Основы криптографии: Информация [Электронный ресурс]. – URL: https://www.intuit.ru/studies/courses/691/547/info (дата обращения: 07.10.2020).

3. Методика XOR-шифрования [Электронный ресурс]. – URL: http://kriptografea.narod.ru/XOR.html (дата обращения: 17.10.2020).

4. Симметричные и ассиметричные криптосистемы [Электронный ресурс]. – URL: https://ru.wikipedia.org/wiki/Симметричные_криптосистемы (дата обращения: 07.10.2020).

5. Шифрование [Электронный ресурс]. – URL:https://ru.wikipedia.org/wiki/Шифрование (дата обращения: 12.10.2020).

Просмотров работы: 710