Почти все по Зязину за все семестры / Лабы / Лаба 2
.docЛабораторная работа № 2
Дешифрование шифра перестановки
Задание:
Дана последовательность букв русского языка. Определить период (длину блока; известно, что значение лежит в пределах от 40 до 60) и найти исходный текст.
Последовательность букв:
ыелтятопцчоикчты1яоярдцрстпхтеватвееехекиррмтвопнзе9рдтпииисьдчсонегцгтма9рнзиа1аюа6окядртыиаявер9мнреояуалгмзннердизезаьрочвлряхотвнтогееыаиыаееборрнюсих1тзааоноуьт9ссд1вюяоя0г9впяв9еннзнодировисиопоанмрвесиывенйехтхынзрооеяоленлвнатбрхтдоваьвиезнросиодтсансксленивогркчеовнврпйыттооелерчхо
Алгоритм:
-
Определим длинну блока:
Число символов в тексте равно 291
Предположим, что текст состоит из нескольких строк, тогда
291=5 * 50 + 41
получаем 5 строк по 50 символов и одна не полная строка длинной 41 символ.
Отметим, что последняя строка и должна быть неполной, т.к. если бы это было иначе, то это дало бы нам сведения о длинне числового ключа.
2. Разбиваем последовательность на блоки по 50 символов. В двух строках есть цифры (вторая строка: 99169 и четвертая строка: 191099) – предположим что это даты, тогда составляем 1999год в этих строках и 6июня во второй строке и 10июня в четвертой строке. Далее подбирая окончания слов в каждой строке ищем нужные столбцы и осуществляем перестановку.
Последовательность, разбитая на блоки:
Перестановка:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
31 42 32 50 44 30 24 02 48 18 15 12 23 36 03 01 38 08 05 26 41 22 35 25 20 33 16 28 27 43 19 09 37 49 06 47 46 04 10 40 31 45 07 21 11 39 29 14 13 17
Искомый текст:
Подсчитаем растояние единственности: