1. Главная
  2. Библиотека
  3. Программирование
  4. Метод «железнодорожной изгороди» (по правде говоря, авт...
Решение задачи на тему

Метод «железнодорожной изгороди» (по правде говоря, авторы задачи не понимают смысл этого термина :) ) — один из простейших методов шифрования текстовых сообщений, разработанный в начале XX века. Конечно, сейчас говорить о его надёжности и стойкости

  • Программирование
  • #Основы алгоритмизации и программирования
  • #Структуры и алгоритмы обработки данных
Метод «железнодорожной изгороди» (по правде говоря, авторы задачи не понимают смысл этого термина :) ) — один из простейших методов шифрования текстовых сообщений, разработанный в начале XX века. Конечно, сейчас говорить о его надёжности и стойкости

Условие:

Метод «железнодорожной изгороди» (по правде говоря, авторы задачи не понимают смысл этого термина :) ) — один из простейших методов шифрования текстовых сообщений, разработанный в начале XX века. Конечно, сейчас говорить о его надёжности и стойкости смешно, но, тем не менее, в анналы криптографии он занесен… Суть метода «железнодорожной изгороди» заключается в следующем: текст длиной N символов посимвольно записывается «змейкой» в таблицу из N столбцов и k строк (здесь k — ключ шифрования). Пример заполнения таблицы показан на рисунке для k = 5 и исходной строки Thisisasecretmessage, для наглядности пробелы заменены символом нижнего подчёркивания.



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

Вам требуется зашифровать сообщение методом «железнодорожной изгороди».

Формат входных данных
Первая строка содержит величину ключа k (2 ≤ k ≤ 1000). Во второй строке записано шифруемое сообщение, длина которого не меньше 1 символа и не превосходит 30000 символов (в 50 % тестов эта длина не превосходит 255). В сообщение могут входить символы с кодами от 32 до 127, пробелов в начале и конце строки нет.
Формат выходных данных
Выведите единственную строку с зашифрованным сообщением.

Решение:

Для решения задачи шифрования методом «железнодорожной изгороди» мы будем следовать следующим шагам:

  1. Чтение входных данных: Сначала мы получим значение ключа k и сообщение, которое нужно зашифровать.

  2. Создание таблицы: Мы создадим таблицу с k строками и N столбцами, где N — это длина сообщения. Мы будем заполнять эту таблицу «змейкой», то есть поочередно заполняя строки.

  3. Заполнение таблицы: Мы будем заполнять таблицу, начиная с первой строки и двигаясь вниз до последней строки, а затем снова вверх, пока не заполним все символы сообщения.

  4. Чтение зашифрованного сообщения: После за...

Создадим список списков для хранения символов сообщения.

Теперь мы будем заполнять таблицу «змейкой».

Теперь мы будем считывать символы из таблицы построчно.

Выведем зашифрованное сообщение.

Теперь объединим все шаги в один код:

Если ввести:

Вывод будет:

Таким образом, мы успешно зашифровали сообщение методом «железнодорожной изгороди».

Выбери предмет