2024 [8-10] Исходный код

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

Разработчики по ошибке опубликовали код функции шифрования в публичном репозитории (листинг 1). Зная исходный код и перехваченные зашифрованные данные определите исходное сообщение. В ответе укажите исходное сообщение и обоснуйте алгоритм дешифрования.

Зашифрованное сообщение:

122 72 127 124 81 93 96 122 81 74 65 117 91 85 113 94 118 170 170

 

Листинг 1. Функция шифрования на различных языках программирования

Python

def encrypt(text, key):

encrypted = []

for i, char in enumerate(text):

    encrypted.append(

        (ord(char)+i)^key )

return encrypted

C

char* encrypt(char* text, char key)

{

char *encrypted = new char[strlen(text)+1];

for (int i = 0; i < strlen(text); i++)

    encrypted[i] = (text[i] + i) ^ key;

encrypted[strlen(text)] = '\0';

return encrypted;

}

С++

std::string encrypt(std::string text, char key)

{

std::string encrypted = "";

for (int i = 0; i < text.length(); i++)

    encrypted[i] = (text[i] + i) ^ key;

return encrypted;

}

Показать подсказку

Показать решение

Показать ответ




<< Назад в раздел (Все задания)

Ваше сообщение получено!