Материалы Международной студенческой научной конференции
Студенческий научный форум 2024

ШИФРОВАНИЕ И ДЕШИФРОВАНИЕ ТЕКСТОВЫХ ФАЙЛОВ МЕТОДОМ XOR-ШИФРОВАНИЯ

Куклин А.Е. 1
1 Тюменский индустриальный университет, Тобольский индустриальный институт (филиал)
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).

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

}

missing image file

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

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

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

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


Библиографическая ссылка

Куклин А.Е. ШИФРОВАНИЕ И ДЕШИФРОВАНИЕ ТЕКСТОВЫХ ФАЙЛОВ МЕТОДОМ XOR-ШИФРОВАНИЯ // Материалы МСНК "Студенческий научный форум 2024". – 2021. – № 7. – С. 70-72;
URL: https://publish2020.scienceforum.ru/ru/article/view?id=404 (дата обращения: 26.04.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674