Математика и криптография : тайны шифров и логическое мышление | страница 40



Что такое «система индексации»? Можно сказать, что это способ, который поможет нам понять, какую букву необходимо взять из книги. На ум сразу же приходит несколько таких способов:

1. Пересчитать все буквы в книге, дав им последовательно номера (индексы) от 1 и так далее до самой последней буквы. Это очень неудобный способ, поскольку числа будут всё увеличиваться и, в конце концов, достигнут астрономических размеров.

2. Можно указывать номер буквы на странице — а страницы в книгах уже пронумерованы. Тогда код для буквы будет состоять из двух чисел: номер страницы + номер буквы на странице. Этот способ намного легче, тем более что один из индексов уже создан (номера страниц).

3. Наконец, можно указывать номер страницы, номер строки на странице и номер буквы в строке. Уже три числа для каждой буквы! Но такой тройной индекс намного проще. И опять один из номеров уже напечатан в самой книге, остаётся найти два других.

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

Как же шифровать таким методом? Необходимо выбрать в качестве ключа достаточно редкую книгу. По одному экземпляру такой книги должно быть у тебя и у того, с кем ты переписываешься. Итак, если ты хочешь зашифровать, скажем, слово «ПОБЕДА», то в произвольном месте книги ты должен найти букву «П» и записать её тройной индекс. Например, вот так: (20 17 35), что обозначает «буква на странице 20, в строке 17, на позиции 35». Шифрограмма всего слова будет примерно такой: (20 17 35) (6 5 3) (37 5 15) (32 5 21) (1 4 6) (5 13 7). Можно даже отказаться от скобок, поскольку довольно просто откладывать каждый раз по три числа и использовать их в качестве кода. Зато у криптоаналитика будет такая головная боль, что он спать не сможет! Если не использовать скобки, то начнут встречаться повторные числа, но это не должно тебя волновать: ведь это только затуманит и усложнит процесс расшифровки, и горе-криптоаналитик потратит огромное количество времени на частотный анализ, а он здесь вообще бессмыслен.

Соответственно, расшифровка происходит абсолютно так же, только в обратном направлении. Если тебе встречается код (20 17 35), то открой двадцатую страницу своей кодовой книги, отсчитай сверху семнадцатую строку, а в этой строке отсчитай тридцать пятую букву и выпиши ее. И так далее, для всей шифровки.