В Средние века широкое распространение получили шифры, основу которых составляли так называемые магические квадраты.
В математике магическими квадратами называются таблицы с одинаковым количеством строк и столбцов. В каждую ячейку такой таблицы вписывается какое-либо число, при этом сумма всех чисел, расположенных в одном столбце, в одной строке и на одной диагонали, составляет одно и то же число.
Необходимо отметить, что для шифрования проще всего использовать магические квадраты, в ячейки которых записываются числа по порядку без повторов, начиная от цифры 1 и до числа, которое определяется количеством ячеек в данном квадрате. При этом не следует забывать о том, что для шифрования длинных сообщений потребуются таблицы большего размера. Так, например, для шифрования открытого текста, состоящего из 16 знаков, достаточно воспользоваться магическим квадратом размером 4x4, а для шифрования текста, содержащего 64 знака, потребуется таблица размером 8x8.
При использовании шифров, основанных на магических квадратах, алгоритм шифрования заключается в том, что в ячейки таблицы вместо цифр магического квадрата по определенному правилу вписываются буквы и знаки открытого текста После того как все ячейки будут заполнены, текст криптограммы выписывается из таблицы по строкам или по столбцам.
Как известно, чем меньше столбцов и строк в квадратной таблице, тем меньше вариантов построения на ее основе магического квадрата Так, например, для таблицы, состоящей из трех столбцов и трех строк, известен всего лишь один вариант заполнения ячеек цифрами от 1 до 9, в результате которого получится магический квадрат. Такая таблица будет выглядеть так:
Нетрудно подсчитать, что сумма цифр в каждом столбце, в каждой строке и в каждой большой диагонали составляет одно и то же число и равна 15.
При использовании шифров, основанных на магических квадратах, один из простейших алгоритмов шифрования заключается в том, что в ячейки таблицы вместо цифр магического квадрата вписываются по порядку буквы открытого текста. Так, например, вместо цифры 1 в соответствующую ей ячейку следует записать первую букву сообщения, вместо цифры 2 — вторую букву, вместо цифры 3 — третью букву и так далее.
В качестве примера зашифруем с помощью этого магического квадрата открытый текст РАЗВЕДЧИК При этом в ячейку с цифрой 1 следует записать букву Р, в ячейку с цифрой 2 — букву А, в ячейку с цифрой 3 — букву 3 и так до конца сообщения. В результате таблица примет следующий вид:
Теперь для создания криптограммы достаточно последовательно выписать буквы из ячеек первой строки, затем из ячеек второй строки и так далее.
В окончательном виде криптограмма для открытого текста РАЗВЕДЧИК будет выглядеть так:
ИРД ЗЕЧ ВКА
Получив такую шифрограмму, получатель для расшифровки сообщения должен сначала заполнить таблицу буквами криптограммы, а затем из соответствующих ячеек выписать буквы открытого текста в порядке, определяемом цифрами используемого магического квадрата.
Необходимо отметить, что утверждение о существовании лишь одного магического квадрата размером 3x3 для цифр от 1 до 9 не касается случаев, когда другие магические квадраты могут быть образованы из первоначального с помощью поворота таблицы или отражения строк и столбцов.
Один из таких производных квадратов может выглядеть следующим образом:
Такой магический квадрат также с успехом можно использовать для шифрования коротких сообщений в соответствии с приведенным выше алгоритмом.
В одном из древних индийских храмов исследователи обнаружили квадратную таблицу, которая при более подробном изучении оказалась одним из самых первых известных магических квадратов. По мнению некоторых историков, эта таблица была создана в XII веке.
Ячейки данной таблицы, состоящей из четырех столбцов и четырех строк, заполнены числами от 1 до 16 так, что сумма всех чисел, расположенных в одном столбце, в одной строке и на одной диагонали, составляет одно и то же число, а именно 34. Более того, сумма чисел в четырех ячейках, образующих квадратные таблицы внутри данного магического квадрата, также составляет 34.
Порядок заполнения ячеек в этой таблице выглядит следующим образом:
Естественно, что такой магический квадрат также можно использовать для шифровки короткого сообщения, содержащего до шестнадцати знаков.
В качестве примера зашифруем, например, открытый текст СЕКРЕТНАЯ ВСТРЕЧА. Для шифрования данного сообщения с использованием рассмотренного ранее алгоритма необходимо сначала вставить в ячейки таблицы вместо цифр буквы открытого текста. При этом вместо цифры 1 в соответствующую ячейку следует вставить первую букву открытого текста, в рассматриваемом примере это будет буква С. Вместо цифры 2 в соответствующую ячейку следует вставить вторую букву открытого текста, то есть букву Е, и так далее.
В результате такой замены шифровальная таблица примет следующий вид:
Теперь для создания криптограммы достаточно последовательно выписать буквы из ячеек первой строки, затем из ячеек второй строки и так далее.
В окончательном виде криптограмма для открытого текста СЕКРЕТНАЯ ВСТРЕЧА будет выглядеть так:
НТСЕ ЕРАС АКВЕ ЯТЧР
Для того чтобы расшифровать эту шифрограмму, получатель сообщения должен сначала заполнить таблицу известных ему размеров буквами криптограммы, а затем из соответствующих ячеек выписать буквы открытого текста в порядке, определяемом цифрами используемого магического квадрата.
По утверждению некоторых источников, классических магических квадратов размером 4x4 существует всего 12. При этом другие магические квадраты тех же размеров могут быть образованы из первоначального, например с помощью поворота таблицы или отражения строк и столбцов. Общее число таких производных магических квадратов разными специалистами оценивается от нескольких сотен до нескольких тысяч. С учетом того, что любой из упомянутых магических квадратов может быть использован для шифрования сообщения, задача взлома шифра для незаконного пользователя с помощью подбора необходимой таблицы вручную становится практически невыполнимой.
Известный математик, астролог и криптограф Леонард Эйлер, долгое время работавший в России в XVIII веке, является автором известной таблицы, состоящей из восьми столбцов и восьми строк.
Все клетки так называемого квадрата Эйлера заполнены числами от 1 до 64 так, что сумма всех чисел, расположенных в одном столбце и в одной строке, составляет одно и то же число, а именно 260. Более того, если данную таблицу разделить на четыре квадратные таблицы, то и в каждой из них сумма чисел в ячейках одного столбца и одной строки также будет одинакова и составит 130. Таким же свойством обладает и квадрат размером 4x4, составленный из ячеек, расположенных в центральной части большой таблицы.
Порядок заполнения ячеек в квадрате Эйлера выглядит следующим образом:
Нетрудно заметить, что с математической точки зрения данная таблица не является классическим магическим квадратом, поскольку суммы чисел в ячейках, образующих диагонали, не равны между собой. В то же время квадрат Эйлера можно использовать для шифрования сравнительно длинных сообщений, используя алгоритм шифрования, рассмотренный ранее для классических магических квадратов.
Как отмечалось ранее, для шифрования длинных сообщений необходимо использовать таблицы большего размера. При этом не следует забывать о том, что чем больше столбцов и строк в квадратной таблице, тем больше вариантов построения на ее основе магического квадрата. Данный факт значительно усложняет незаконному пользователю задачу расшифровки сообщений, зашифрованных, например, с помощью магического квадрата размером 4x4.
Естественно, применение магических квадратов, например, размером 9x9 обеспечивает еще более высокую степень защиты и уменьшает вероятность того, что сообщение будет прочитано тем, кому оно не предназначено.
Один из вариантов такого квадрата имеет следующий вид:
Как и упоминавшийся квадрат Эйлера, данный магический квадрат также можно использовать для шифрования длинных сообщений, используя рассмотренный ранее алгоритм шифрования для классических магических квадратов. При этом открытый текст может содержать до 81 знака.
Для создания шифрованных сообщений можно использовать специальные трафареты, которые представляют собой, например, лист бумаги с вырезанными в произвольном порядке отверстиями. Необходимо отметить, что в настоящее время известно множество систем шифрования, в которых применяются различные способы создания и использования таких трафаретов. Естественно, при применении таких шифров получатель криптограммы должен не только иметь точно такой же трафарет, но и хорошо знать правила работы с ним.
Один из вариантов простого шифра с использованием трафарета применял, например, великий русский писатель А. С. Грибоедов в начале XIX века. На лист бумаги он с помощью трафарета наносил текст сообщения, а затем уже без трафарета дополнял текст так, чтобы получилось вполне невинное письмо.
Трафаретные шифры неоднократно упоминаются и в произведениях авторов детективных романов. Среди более сложных шифров с трафаретами следует отметить, например, так называемую решетку Кардано.
При использовании такого способа шифрования сначала необходимо сделать трафарет из листа бумаги с вырезанными в нем отверстиями. Для этого удобно воспользоваться листом бумаги в клеточку, в котором отдельные клетки следует вырезать в произвольном порядке.
Так, например, трафарет для шифрования сообщений может выглядеть так, как показано на рис. 5.5.