Перестановка " Магический квадрат "

Перестановка " Магический квадрат "

https://t.me/ENcoding

По сравнению с предыдущими криптосистемами является наиболее сложной и продуманной. Самостоятельное построение может вызвать трудности, так как квадратная таблица, которая лежит в основе системы и выглядит вот так ( один из её вариантов ):

2 7 6

9 5 1

4 3 8

имеет несколько особенностей :

  • Числа не могут быть одинаковы
  • Сумма чисел в каждом столбце, строке и диагоналях должна быть одинакова
  • Эта сумма чисел должна задаваться формулой n * ( n * n + 1 ) / 2

Звучит устрашающе, тем более формула в шифре встретилась нам впервые :c. Поэтому, разберём всё по порядку:

Формула

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

Шифрование " чётным " квадратом

Так как длина нашего сообщения " подели на ноль " даже вместе с пробелами была равна 14, то подберём иное, квадратный корень длины которого будет равен 4. Таким словосочетанием станет " шифрование строк ". Теперь пора построить квадратную таблицу размером 4*4 ( поскольку в сообщении вместе с пробелом 16 символов ):

16 3 2 13

9 6 7 12

5 10 11 8

4 15 14 1

Cумма чисел каждого столбца, строки и диагоналей равна 34

Проверим по формуле является ли таблица верной :

4 * ( 4 * 4 + 1 ) / 2 = 68/2 = 34

Как же будем производить шифрование ? На самом деле, всё очень просто. Ещё раз взглянем на таблицу. Смысл её в том, что она нам показывает, какой по счёту элемент сообщения на каком месте должен находиться. К примеру, на первом месте нашей таблицы стоит число 16, значит 16 символом зашифрованного сообщения должен стать 1 символ сообщения исходного. А на 16 месте в таблице стоит число 1, значит 1 символом зашифрованного сообщения станет 16 символ исходного сообщения. И так далее. ( Раскрою секрет: та таблица, которую я построил, называется супермагической, поскольку в ней числа взаимопереставляемые, т.е 16 символом становится 1 символ, а 1 символом - 16. Таких таблиц очень немного, в иных же происходит не взаимная перестановка ).

После шифрования получаем сообщение :

КФИТИВАСОЕ_НРОРШ

( По счастливой случайности пробел остался нетронутым )

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

Шифрование " нечётным " квадратом

В отличие от квадратов размером 4 * 4, эти не имеют супермагических вариантов ( попробуйте догадаться, почему ). В данном случае предыдущее сообщение оказывается слишком длинным, поэтому мы будем шифровать слово "кодировка" , так как оно имеет всего лишь 9 символов. Строим таблицу 3 * 3:

2 7 6

9 5 1

4 3 8

Сумма чисел каждого столбца, строки и диагоналей равна 15

Проверим по формуле является ли таблица верной :

3 * ( 3 * 3 + 1 ) / 2 = 30/2 = 15

Алгоритм шифрования точно такой же: на первом месте таблицы стоит число 2, значит 1 символ исходного сообщения будет 2 в сообщении зашифрованном. На втором месте таблицы стоит число 7, значит 2 символ исходного сообщения будет 7 в зашифрованном. И так далее.

После шифрования получаем сообщение :

ОККВРДОАИ

Здесь расшифровка будет отличаться от алгоритмов " чётных " квадратов, прежде всего своей сложностью. Чтобы её выполнить, необходимо произвести те же самые операции, что и при шифровке, используя тот же самый квадрат. К примеру, если первое число таблицы равно 2, то 1 буква зашифрованного сообщения будет в исходном стоять на 2 месте. В данном случае, это буква "О". По аналогии проводим расшифровку и получаем следующее сообщение:

КОДИРОВКА

Вывод

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


============

https://t.me/ENcoding

============




Report Page