РАСШИФРОВКА С ПОМОЩЬЮ «ПАСЬЯНСА»
Основная идея состоит в том, что получатель генерирует тот же ключевой поток и потом вычитает буквы ключевого потока из букв шифртекста.
1. Возьмите шифртекст и разбейте его на группы из пяти букв. (Он уже должен быть в таком виде.)
OSKJJ JGTMW
2. С помощью «Пасьянса» сгенерируйте десять букв ключевого потока. Если получатель использует тот же ключ, что и отправитель, буквы должны получиться те же:
KDWUP ONOWT
3. Переведите шифртекст из букв в цифры:
15 19 11 10 10 10 7 20 13 23
4. Переведите ключевой поток аналогичным образом:
11 4 23 21 16 15 14 15 23 20
5. Вычтите числа ключевого потока из чисел шифртекста по модулю 26. Например, 22 — 1 = 20, 1 — 22 = 5. (Это легко. Если первое число меньше второго, перед вычитанием прибавьте к нему 26. Тогда 1 — 22 =? станет 27 — 22 = 5.)
4 15 14 15 20 21 19 5 16 3
6. Переведите числа обратно в буквы.
DONOT USEPC
Расшифрование происходит так же, как зашифрование, только вы вычитаете ключевой поток из шифртекста.
ГЕНЕРАЦИЯ БУКВ КЛЮЧЕВОГО ПОТОКА
Это суть «Пасьянса». Приведенное выше описание шифрования и расшифрования работает для любого поточного шифра с обратной связью по выходу. Дальше объясняется, как работает «Пасьянс».
«Пасьянс» генерирует ключевой поток с помощью колоды карт. Колоду в 54 листа (помните про джокеров) можно представить как 54-элементную перестановку. Существует 54!, или 2, 31 х 1071 возможных раскладов колоды. Что еще лучше, в колоде 52 листа (без джокеров), а в латинском алфавите — 26 букв. Мимо такого совпадения грех пройти.
Для «Пасьянса» в колоде должен быть полный набор из 52 карт и двух джокеров. Джокеры должны как-то отличаться. (Обычно так оно и есть. В колоде, на которую я смотрю, когда пишу, на джокерах звезды: на одном большая, на другом маленькая.) Пусть один джокер будет А, другой Б. Обычно графический элемент у джокеров одинаковый, отличается только размер. Назовите больший джокер «Б» от слова «больше». Если вам так проще, напишите на джокерах «А» и «Б», но помните, что, если вас поймают, вам придется объяснять это тайной полиции.
Для инициализации колоды возьмите ее в руку, лицом вверх. Потом разложите карты в начальной последовательности, которая представляет собой ключ. (Про ключ я объясню позже, но это не то же, что ключевой поток.) Теперь мы готовы сгенерировать цепочку букв ключевого потока.
Вот «Пасьянс»:
1. Найдите джокер А. Переложите его на одну карту вниз. (То есть поменяйте местами с картой, которая лежит сразу под ним.) Если джокер — нижняя карта в колоде, положите его под верхнюю карту.