Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Uchebnaya_praktika / task4 / Условие

.doc
Скачиваний:
29
Добавлен:
02.06.2015
Размер:
113.15 Кб
Скачать

Задача D. Шифровки

В заданном файле содержится зашифрованный текст. Известна следующая информация.

1. Язык исходного текста – английский.

2. Перед шифрованием из текста были удалены все символы, кроме букв, которые были приведены к верхнему регистру.

3. Исходный текст представляет собой отрывок из произведения известного американского писателя.

4. Для шифрования текста был использован один из трех алгоритмов: Цезаря, простой подстановки или Виженера (размерность ключа – 10 байт).

Ниже представлены базовые сведения о каждом из этих алгоритмов.

Шифр Цезаря является частным случаем подстановочного шифра. Главнейший элемент алгоритма – сдвиговое число (в случае английского алфавита – от 0 до 25). Каждая буква исходного текста заменяется на символ, находящийся ровно на позиций правее в алфавите (принимая во внимание возможность кругового перехода). Так, при буква A будет заменена на букву D, B – на E, а Y – на B. Например, строка EXAMPLE при превратится в строку OHKWZVO.

Подстановочный шифр устроен похожим образом, за тем исключением, что для каждой буквы алфавита выбирается парная буква для замены, таким образом, чтобы множество букв-заменителей образовывало перестановку алфавита. Например, строка EXAMPLE при перестановке XCFGBZYKLMTUPOQISRVHAWEDJN (A заменяется на X, B заменяется на С, C заменяется на F и так далее) перейдет в строку BDXPMUB.

Приведенное ниже описание шифра Виженера заимствовано с ресурса Wikipedia.

Шифр состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для зашифровывания может использоваться таблица алфавитов, называемая tabula recta или таблица (квадрат) Виженера (рисунок 1). Применительно к латинскому алфавиту таблица составляется из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций. Таким образом, в таблице получается 26 различных шифров Цезаря. На разных этапах кодировки шифр Виженера использует различные алфавиты из этой таблицы. На каждом этапе шифрования используются различные алфавиты, выбираемые в зависимости от символа ключевого слова.

Рисунок 1 – Таблица Виженера

Пусть исходный текст представляет собой строку ATTACKATDAWN, а ключом выступает слово LEMON. Первым действием следует записывать ключевое слово циклически до тех пор, пока его длина не будет соответствовать длине исходного текста (в данном примере – LEMONLEMONLE). Тогда первый символ исходного текста A будет зашифрован последовательностью L, которая является первым символом ключа. Первый символ L шифрованного текста находится на пересечении строки L и столбца A в таблице Виженера. Точно так же для второго символа исходного текста используется второй символ ключа; то есть второй символ шифрованного текста X получается на пересечении строки E и столбца T. Остальная часть исходного текста шифруется подобным способом. Зашифрованный текст будет иметь вид LXFOPVEFRNHR.

Задача

Ваша задача – расшифровать как можно больше текстов.

Технический регламент

Все участники получают три файла task1.txt, task2.txt и task3.txt. Известно, что при шифровании первого текста были использован шифр Цезаря, второго – простой подстановки, третьего – Виженера.

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

Для уточнения деталей обратитесь к примеру.

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

Система оценки

Итоговый балл участника рассчитывается как , где , и равны единице, если соответствующий текст был полностью расшифрован, и нулю в противном случае. Если участник не дал удовлетворяющего условию задачи ответа, соответствующий элемент принимается равным нулю. Победителем считается участник, набравший максимальный балл.

Пример

task1.txt

ans1.txt

OHKWZVO

EXAMPLE

За предлагаемый ответ будет начислен 1 балл.

Соседние файлы в папке task4