К каждому языку отдельно составляется таблица шифрования с одинаковым (не обязательно) количеством пронумерованных строк и столбцов, параметры которой зависят от его мощности (количества букв в алфавите). Берутся два целых числа, произведение которых ближе всего к количеству букв в языке — получаем нужное число строк и столбцов. Затем вписываем в таблицу все буквы алфавита подряд — по одной на каждую клетку. При нехватке клеток можно вписать в одну две буквы (редко употребляющиеся или схожие по употреблению).
Латинский алфавит
В современном латинском алфавите 26 букв, следовательно таблица должна состоять из 5 строк и 5 столбцов, так как 25=5*5 наиболее близкое к 26 число. При этом буквы I, J не различаются (J отождествляется с буквой I), так как не хватает 1 ячейки:
A | B | C | D | E | |
F | G | H | I | K | |
L | M | N | O | P | |
Q | R | S | T | U | |
V | W | X | Y | Z |
Русский алфавит
Идею формирования таблицы шифрования проиллюстрируем для русского языка. Число букв в русском алфавите отличается от числа букв в греческом алфавите, поэтому размер таблицы выбран другой (квадрат 6*6=36, поскольку 36 наиболее близкое число к 33):
|
|
А | Б | В | Г | Д | Е | |
Ё | Ж | З | И | Й | К | |
Л | М | Н | О | П | Р | |
С | Т | У | Ф | Х | Ц | |
Ч | Ш | Щ | Ъ | Ы | Ь | |
Э | Ю | Я |
Возможен также другой вариант составления, предусматривающий объединение букв Е и Ё, И и Й, Ъ и Ь. В данном случае получаем следующий результат
:
А | Б | В | Г | Д | Е | |
Ж | З | И | К | Л | М | |
Н | О | П | Р | С | Т | |
У | Ф | Х | Ц | Ч | Ш | |
Щ | Ы | Ь | Э | Ю | Я |
Используя подобный алгоритм таблицу шифрования можно задать для любого языка. Чтобы расшифровать закрытый текст необходимо знать, таблицей шифрования какого алфавита он зашифрован.
Шаг 2: Принцип шифрования
Существует несколько методов шифрования с помощью квадрата Полибия. Ниже приведены три из них.
Метод 1
Зашифруем слово "SOMETEXT":
Для шифрования на квадрате находили букву текста и вставляли в шифровку нижнюю от нее в том же столбце. Если буква была в нижней строке, то брали верхнюю из того же столбца.
Таблица координат | ||||||||
Буква текста: | S | O | M | E | T | E | X | T |
Буква шифротекста: | X | T | R | K | Y | K | C | Y |
Таким образом после шифрования получаем:
Результат | |
До шифрования: | SOMETEXT |
После шифрования: | XTRKYKCY |
Метод 2
Сообщение преобразуется в координаты по квадрату Полибия, координаты записываются вертикально:
Таблица координат | ||||||||
Буква: | S | O | M | E | T | E | X | T |
Координата горизонтальная: | ||||||||
Координата вертикальная: |
Затем координаты считывают по строкам:
|
|
Далее координаты преобразуются в буквы по этому же квадрату:
Таблица координат | ||||||||
Координата горизонтальная: | ||||||||
Координата вертикальная: | ||||||||
Буква: | S | W | Y | S | O | C | D | U |
Таким образом после шифрования получаем:
Результат | |
До шифрования: | SOMETEXT |
После шифрования: | SWYSOCDU |
Метод 3
Усложненный вариант, который заключается в следующем: полученный первичный шифротекст (*) шифруется вторично. При этом он выписывается без разбиения на пары:
3425453443314154Полученная последовательность цифр сдвигается циклически влево на один шаг(нечетное количество шагов):
4254534433141543
Эта последовательность вновь разбивается в группы по два:
42 54 53 44 33 14 15 43и по таблице заменяется на окончательный шифротекст:
Таблица координат | ||||||||
Координата горизонтальная: | ||||||||
Координата вертикальная: | ||||||||
Буква: | I | U | P | T | N | Q | V | O |
Таким образом после шифрования получаем:
Результат | |
До шифрования: | SOMETEXT |
После шифрования: | IUPTNQVO |
Добавление ключа
На первый взгляд шифр кажется очень нестойким, но для его реальной оценки следует учитывать два фактора:
_ 1.возможность заполнить квадрат Полибия буквами произвольно, а не только строго по алфавиту;
_ 2.возможность периодически заменять квадраты.
Тогда анализ предыдущих сообщений ничего не дает, так как к моменту раскрытия шифра он может быть заменен.
Буквы могут вписываться в таблицу в произвольном порядке - заполнение таблицы в этом случае и является ключом. Для латинского алфавита в первую клетку можно вписать одну из 25 букв, во вторую - одну из 24, в третью - одну из 23 и т.д. Получаем максимальное количество ключей для шифра на таблице латинского алфавита:
N = 25 * 24 * 23 *... * 2 * 1 = 25!
Соответственно для дешифрования сообщения потребуется не только знание алфавита, но и ключа, с помощью которого составлялась таблица шифрования. Но произвольный порядок букв тяжело запомнить, поэтому пользователю шифра необходимо постоянно иметь при себе ключ - квадрат. Появляется опасность тайного ознакомления с ключом посторонних лиц. В качестве компромиссного решения был предложен ключ - пароль. Пароль выписывается без повторов букв в квадрат; в оставшиеся клетки в алфавитном порядке выписываются буквы алфавита, отсутствующие в пароле.
Пример
Зашифруем слово "SOMETEXT", используя ключ "DRAFT". Составим предварительно таблицу шифрования с данным ключом, записывая символы ключа по порядку в таблицу, после них остальной алфавит:
D | R | A | F | T | |
B | C | E | G | H | |
I | K | L | M | N | |
O | P | Q | S | U | |
V | W | X | Y | Z |
Преобразуем сообщение в координаты по квадрату Полибия:
Таблица координат | ||||||||
Буква: | S | O | M | E | T | E | X | T |
Координата горизонтальная: | ||||||||
Координата вертикальная: |
Считаем координаты по строкам:
41 43 53 35 44 32 12 51Преобразуем координаты в буквы по этому же квадрату:
Таблица координат | ||||||||
Координата горизонтальная: | ||||||||
Координата вертикальная: | ||||||||
Буква: | F | M | N | X | S | E | B | T |
Таким образом после шифрования получаем:
Результат | |
До шифрования: | SOMETEXT |
После шифрования: | FMNXSEBT |
Историческая справка
Еще в далекой древности у человека возникла необходимость передачи сигналов на расстояние. Для усиления голоса при подаче сигналов на охоте стали применять простейшие рупоры в виде рогов, раковин и др. Целями подачи служили тамтамы, барабаны и подобные им устройства, а чуть позже световые средства - факелы, костры. Даже эти примитивные предметы световой сигнализации позволили резко увеличить расстояние, на котором людям удавалось поддерживать связь.
|
|
С развитием общества возникла необходимость в передаче более разнообразных сигналов, в том числе сигналов, смысл которых не был обусловлен заранее. В книге Полибия описан способ применения водяных часов, так называемых клепсидр, в устройстве для дальней сигнализации. Клепсидры представляли собой сосуды с водой, на поверхности которой находились поплавки с вертикальными стойками на них. Вода из сосудов вытекала с постоянной скоростью, и длина видимой части стоек была обратно пропорциональна времени. Суть использования клепсидр для сигнализации состояла в том, что их вертикальные стойки имели однотипную разметку: вместо часовых делений на них были написаны в одинаковой последовательности различные слова, команды и т. п. По условному сигналу с передающего пункта обе клепсидры одновременно запускались, а по другому сигналу останавливались в тот момент, когда на стойках была видна надпись, которую нужно было передать. Так как клепсидры были довольно точными часами, то на передающем и на приемном пунктах они показывали один и тот же сигнал. В этом способе связи дальность определялась условиями видимости сигналов, которые могли подаваться любыми другими известными тогда сигнальными средствами.
Это был, пожалуй, первый cпособ связи с использованием технических средств (клепсидр), основанный на применении принципа синхронизации приборов во времени.
Полибий описывает также и второй способ сигнализации, основанный на ином принципе, изобретение которого он связывает с именами Клеоксена и Демоклита из Александрии. По этому способу для сигнализации использовали факелы, которые выставляли на сигнальной стене. При этом существовал определенный код, составленный следующим образом. Греческий алфавит (24 буквы) разделяли на 5 групп таким образом, что каждая буква определялась номером группы и порядковым номером ее в группе. Число факелов в левой части сигнальной стены означало номер группы, а число факелов в правой части стены - номер места в группе. Такой способ, хотя и требовал много времени на передачу каждого сигнала, однако давал возможность передавать буквенным текстом любое сообщение. Полибий, описывая этот способ, как раз приводил таблицу такого кода (таблица Полибия), которая рассматривается в статье, в дальнейшем нашедшую применение во многих системах сигнализации. Это, по-видимому, была одна из первых попыток использовать код (пятеричный двухразрядный) для передачи информации.
|
|
Интересно заметить, что в несколько измененном виде код Полибия дошел до наших дней и получил интересное название "тюремный шифр". Для его применения необходимо знать лишь естественный порядок расположения букв в алфавите (как в указанных выше примерах для латинского и русского алфавитов). Число 3, например, передавалось путем трехкратного стука. При передаче буквы сперва отстукивалось число, соответствующее строке, в которой располагалась буква, а затем номер столбца. Например, буква "H" передавалась двухкратным стуком (вторая строка) и затем трехкратным (третий столбец). Доподлинно известно, что декабристы, посаженные в тюрьму после неудачного восстания 1825 года, не могли установить связь с находившимся в одиночной камере Петропавловской крепости князем Одоевским. Оказалось, что он не помнил естественный порядок расположения букв в русском и французском алфавитах (другими языками он не владел). Декабристы для русского алфавита использовали прямоугольник размера 5x6 и сжатый до 30 букв алфавит. Поэтому "Тюремный шифр", строго говоря, не шифр, а способ модификации сообщения с целью его приведения к виду, удобному для передачи по каналу связи (через стенку).