Найти в Дзене

Игры в шпионов из детства

Оглавление

Много тут статей, касающихся жизни, быта и игр из времён СССР.

Ну и я решил внести свою лепту. Правда речь пойдет про чуть более поздний период.

Был во времена после распада Союза и формирования РФ такой детский, точнее, подростковый журнал - Трамвай.

Обложка одного из первых выпусков. Взята из поиска Яндекс.Картинок
Обложка одного из первых выпусков. Взята из поиска Яндекс.Картинок

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

Смысл в том, чтобы расположить на квадратном листе, условно поделённом на 64 клетки (8 на 8), небольшой текст, чтобы его никто не прочитал.

Выглядит готовая шифровка примерно так:

Линии остались от табличного редактора. Решил не удалять, так как сам делал подобное на тетрадных листах.
Линии остались от табличного редактора. Решил не удалять, так как сам делал подобное на тетрадных листах.

Конечно, пробелы и знаки препинания тут не учитываются, но ведь на то она и шифровка!

Чтобы прочитать текст на изображении выше потребуется матрица, с помощью которой текст был написан. Вот эта матрица:

Матрица для чтения шифровки на предыдущем изображении
Матрица для чтения шифровки на предыдущем изображении

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

Теперь самое интересное: изготовление матрицы

Все приложенные изображения выполнены в табличном редакторе, но лишь потому, что у меня скверный почерк. На самом деле карандашом или ручкой делать удобнее.

И так. Берем лист бумаги, разлинованный на 64 клетки и начинаем заполнять, проставляя цифры от 1 до 16, начиная с самой верхней левой клетки.

Важно заполнять по 4 цифры, перенося пятую на строку ниже:

1й этап заполнения матрицы
1й этап заполнения матрицы

Затем поворачиваем лист на 90% (по часовой стрелке или против - непринципиально) и продолжаем заполнение по тем же правилам.

2й этап заполнения матрицы
2й этап заполнения матрицы

Проделываем эти действия еще дважды. В итоге получается пронумерованная матрица с цифрами 1 по углам и цифрами 16 в центральных клетках.

Заполненная матрица
Заполненная матрица

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

И так. Для завершения матрицы необходимо прорезать отверстия по цифрам таким образом, чтобы ни одна цифра не повторилась. То есть, строго от 1 до 16.

Самая очевидная матрица - вырезать квадрат 4х4 в одном из углов.

Самая примитивная матрица
Самая примитивная матрица

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

Готовая матрица
Готовая матрица

Таким образом, мы получили матрицу, представленную вначале статьи. Теперь, наложив эту матрицу на квадрат бумаги, заполняем первый 16 вырезов буквами. Затем поворачиваем матрицу и продолжаем заполнение. В итоге, повернув матрицу 3 раза и заполнив 4 раза по 16 букв, мы получим шифровку.

Но и это еще не всё

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

1 0 1 0 0 0 0 0
0 0 0 1 0 0 1 0
0 0 1 0 1 0 0 0
1 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0
0 1 0 0 1 0 1 0
1 0 0 0 0 0 0 1
0 0 1 0 1 0 0 0

В целом, это уже можно записать на обратной стороне записки и передать адресату. Для большей криптостойкости нули, стоящие слева, можно не указывать. Однако можно еще больше защитить информацию о матрице. Обратимся к переводу двоичной системы счисления в десятичную и обратно. Для этого запомним, что крайней правой цифре каждого ряда нулей и единиц соответствует 1. Второй справа - 2. Третьей - 4. Четвертой - 8. И так далее с удвоением.

128 64 32 16 8 4 2 1
1 0 1 0 0 0 0 0
0 0 0 1 0 0 1 0
0 0 1 0 1 0 0 0
1 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0
0 1 0 0 1 0 1 0
1 0 0 0 0 0 0 1
0 0 1 0 1 0 0 0

Теперь складываем те числа, которым соответствуют единицы в каждом из рядов. То есть, для первого ряда это будет 32 + 128 = 160. Получаем:

160
18
40
128
18
74
129
40

Вот это уже можно смело писать на обороте шифровки. Естественно, с адресатом заранее нужно договориться о таком методе шифрования матрицы, зато посторонний уже не поймёт, что же эти числа значат.

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

Делим 40 пополам. Получаем 20. Так как остатка нет, записываем 0 в крайнюю правую позицию.

х х х х х х х 0

Далее 20 делим пополам. Получаем 10, записываем 0.

х х х х х х 0 0

Продолжаем. 10 / 2 = 5, пишем 0.

х х х х х 0 0 0

5 / 2 = 2,5. Так как есть остаток, пишем 1.

х х х х 1 0 0 0

Остаток отбрасываем и делим 2 пополам. Получаем 1. Без остатка. Значит пишем 0.

х х х 0 1 0 0 0

1 / 2 = 0,5. Есть остаток - пишем 1.

х х 1 0 1 0 0 0

Остаток отбрасываем. Так как остается 0, то все оставшиеся в ряду позиции - тоже 0.

Получили 0 0 1 0 1 0 0 0 - точно в соответствии с записью, которую мы сделали до пересчета двоичного ряда в десятичное число.

Надеюсь, вам понравилось!