Квадрат Полибия

Шаг 1: Формирование таблицы шифрования

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

Латинский алфавит

В современном латинском алфавите 26 букв, следовательно таблица должна состоять из 5 строк и 5 столбцов, так как 25=5*5 наиболее близкое к 26 число. При этом буквы I, J не различаются (J отождествляется с буквой I), так как не хватает 1 ячейки:

12345
1ABCDE
2FGHI/JK
3LMNOP
4QRSTU
5VWXYZ

Русский алфавит

Идею формирования таблицы шифрования проиллюстрируем для русского языка. Число букв в русском алфавите отличается от числа букв в греческом алфавите, поэтому размер таблицы выбран другой (квадрат 6*6=36, поскольку 36 наиболее близкое число к 33):

123456
1АБВГДЕ
2ЁЖЗИЙК
3ЛМНОПР
4СТУФХЦ
5ЧШЩЪЫЬ
6ЭЮЯ

Возможен также другой вариант составления, предусматривающий объединение букв Е и Ё, И и Й, Ъ и Ь. В данном случае получаем следующий результат:

123456
1АБВГДЕ/Ё
2ЖЗИ/ЙКЛМ
3НОПРСТ
4УФХЦЧШ
5ЩЫЬ/ЪЭЮЯ

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

Или есть такой вариант: Шифр «Квадрат Полибия».

«Квадрат Полибия» представляет собой квадрат 5×5, столбцы и строки которого нумеруются цифрами от 1 до 5. В каждую клетку этого квадрата записывается одна буква (в нашем алфавите 31 буква, Ъ и Ё исключены, кроме того в одну клетку поместите буквы е-э, и-й, ж-з, р-с, ф-х, ш-щ). Буквы расположены в алфавитном порядке. В результате каждой букве соответствует пара чисел, и шифрованное сообщение превращается в последовательность пар чисел. Расшифровывается путем нахождения буквы, стоящей на пересечении строки и столбца.

   1    2   3    4   5
1  А    Б   В    Г   Д
2 Е/Э   Ж   З   И/Й  К
3  Л    М   Н    О   П
4 Р/С   Т   У   Ф/Х  Ц
5  Ч   Ш/Щ  Ы    Ю   Я

Шаг 2: Принцип шифрования

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

Метод 1

Зашифруем слово «SOMETEXT»:

Для шифрования на квадрате находили букву текста и вставляли в шифровку нижнюю от неё в том же столбце. Если буква была в нижней строке, то брали верхнюю из того же столбца.

Таблица координат
Буква текста:SOMETEXT
Буква шифротекста :XTRKYKCY

Таким образом после шифрования получаем:

Результат
До шифрования:SOMETEXT
После шифрования:XTRKYKCY

Метод 2

Сообщение преобразуется в координаты по квадрату Полибия, координаты записываются вертикально:

Таблица координат
Буква:SOMETEXT
Координата горизонтальная:34254534
Координата вертикальная:43314154

Затем координаты считывают по строкам:

34  25  45  34  43  31  41  54                                                                                                                   (*)

Далее координаты преобразуются в буквы по этому же квадрату:

Таблица координат
Координата горизонтальная:32434345
Координата вертикальная:45543114
Буква:SWYSOCDU

Таким образом после шифрования получаем:

Результат
До шифрования:SOMETEXT
После шифрования:SWYSOCDU

Метод 3

Усложненный вариант, который заключается в следующем: полученный первичный шифротекст (*) шифруется вторично. При этом он выписывается без разбиения на пары:

3425453443314154   

Полученная последовательность цифр сдвигается циклически влево на один шаг(нечетное количество шагов):

4254534433141543

Эта последовательность вновь разбивается в группы по два:

42 54 53 44 33 14 15 43

и по таблице заменяется на окончательный шифротекст:

Таблица координат
Координата горизонтальная:45543114
Координата вертикальная:24343453
Буква:IUPTNQVO

Таким образом после шифрования получаем:

Результат
До шифрования:SOMETEXT
После шифрования:IUPTNQVO

Добавление ключа

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

  1. возможность заполнить квадрат Полибия буквами произвольно, а не только строго по алфавиту;
  1. возможность периодически заменять квадраты.

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

Буквы могут вписываться в таблицу в произвольном порядке — заполнение таблицы в этом случае и является ключом. Для латинского алфавита в первую клетку можно вписать одну из 25 букв, во вторую — одну из 24, в третью — одну из 23 и т. д. Получаем максимальное количество ключей для шифра на таблице латинского алфавита:

N = 25*24*23*...*2*1 = 25!

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

Пример

Зашифруем слово «SOMETEXT», используя ключ «DRAFT». Составим предварительно таблицу шифрования с данным ключом, записывая символы ключа по порядку в таблицу, после них остальной алфавит:

12345
1DRAFT
2BCEGH
3IKLMN
4OPQSU
5VWXYZ

Преобразуем сообщение в координаты по квадрату Полибия:

Таблица координат
Буква:SOMETEXT
Координата горизонтальная:41435335
Координата вертикальная:44321251

Считаем координаты по строкам:

41 43 53 35 44 32 12 51

Преобразуем координаты в буквы по этому же квадрату:

Таблица координат
Координата горизонтальная:44534315
Координата вертикальная:13354221
Буква:FMNXSEBT

Таким образом после шифрования получаем:

Результат
До шифрования:SOMETEXT
После шифрования:FMNXSEBT