Каталог@Mail.ru - каталог ресурсов интернет HitMeter - счетчик посетителей сайта, бесплатная статистика

Шифр Скитала

На главную Другие шифры Хеш-функции Для отзывов

Описание скиталы

Шифр Скитала - штука древняя, использовалась ещё античными греками. Потому суть скиталы проста и не напряжна. Пусть у нас есть какой-нибудь текст, например, НАС_АТАКУЮТ. Его нужно выписать в табличку размерами m строк и n столбцов. Размеры подбираются так, чтобы при записи одного символа в одну ячейку весь текст влез в эту таблицу. По-другому нельзя - здесь нет разбиения текста на блоки, как, скажем, это делается в методе простых шифрующих таблиц. В принципе возможны случаи, когда останутся незанятые ячейки, например, если количество символов в тексте - простое число. Такие ячейки заполняются пробелом или другим заранее выбранным символом.

Текст выписывается вот как:

НАС_
АТАК
УЮТ_


Первые n символов выписываются в первую строку слева направо (в примере n=4, m=3). Следующие символы выписываем во вторую строку, пока её также не заполним. И так далее. Если все символы выписаны, а остались незаполненные ячейки, заполняем их пробелом (смотрите зелёную ячейку в таблице выше). Если выписаны не все символы, а таблица заполнена, значит, при выборе размеров допущена ошибка.

Теперь ведём считывание по столбцам. Сначала по самому левому сверху вниз, затем по его правому соседу также сверху вниз и т.д. В нашем случае получится НАУ АТЮ САТ _К_. Как видим, символы, которыми забивали "лишние" ячейки (у нас был таким один из пробелов), не выбрасываем. Вот так создаётся шифрованный текст по шифру скитала.

Теперь о расшифровке скиталы. В общем-то она строго обратна шифрованию, но на всякий случай лучше пояснить. Скажем, у нас есть шифрованный текст РНОАЫЙКЕСЕ_КТВА, применялся шифр скитала, количество строк таблицы m=3, количество столбцов n=5. Мы знаем, что при шифровании считывание велось по столбцам таблицы, причём в каждом столбцы было по 3 символа. Бьём шифрованный текст на группы по 3 символа: РНО АЫЙ КЕС Е_К ТВА.

Сначала восстанавливаем первый слева столбец - по первым трём левым символам. При этом самый левый символ из первых трёх - самый верхний в первом левом столбце:

Р****
Н****
О****


По следующим трём символам восстанавливаем второй столбец:

РА***
НЫ***
ОЙ***


После восстановления всех столбцов:

РАКЕТ
НЫЕ_В
ОЙСКА


Зная, как создавалась табличка по шифру скитала, легко понять: зашифрован текст РАКЕТНЫЕ_ВОЙСКА.

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

Пусть ключ - количество строк m, а k - длина сообщения. Тогда количество столбцов n определяется как [(k-1)/m]+1. Выражение вида [x] означает целую часть числа x, то есть выбирается наибольшее целое число, не превосходящее x. Например, [3,5] = 3, [4] = 4.

Пример: текст ОХРАНА_ИДЁТ, количество строк m = 3. Тогда k = 11 (пробел учитываем), n = [10/3] + 1 = [3,33...] + 1 = 3 + 1 = 4. Выписывание в таблицу выполняется вот так:

ОХРА
НА_И
ДЁТ_

Аналоги шифра скитала

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

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

copyright © Исканцев Н.В., 2012

На главную
X