logo search
Коды и шифры

Катастрофические ошибки при использовании книжного шифра

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

Пример 7.5 (шпион делает ошибку и тем самым выдает себя)

Два сообщения посланы одним и тем же лицом с одинаковыми индикаторами с интервалом в несколько часов; в нашем распоряжении имеются следующие шифрованные тексты:

ZECBH MOPJO IIUXJ ELFDR WRSJX CQ.

ZECSS HLIEL RVBCM CUAKA OLPBP PPP

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

Начало решения

Поскольку первые три буквы шифрованного текста в обоих случаях одинаковы, мы предполагаем, что в первом сообщении пропущена именно четвертая буква книжной гаммы. Если перебрать все 26 вариантов этой буквы во втором шифрованном сообщении, то мы получим 26 вариантов четвертой буквы этого текста. Для каждого из вариантов с помощью первого шифрованного текста можно вычислить пятую букву книжной гаммы. Зная пятую букву книжной гаммы, теперь можно восстановить пятую букву текста второго сообщения, что, в свою очередь, позволит нам по первому сообщению вычислить шестую букву книжной гаммы, и так далее. Таким образом, мы сможем восстановить и книжную гамму, и текст сообщения, начиная с четвертой буквы и до самого конца. Разумеется, придется перебрать все 26 вариантов четвертой буквы гаммы. Но по мере восстановления текстов книжной гаммы и сообщения мы быстро установим, какой вариант является правильным. Для экономии времени и места мы просто посмотрим, что получается, когда выбран верный вариант четвертого знака гаммы (буква F). Обозначим шифрованные тексты через CT1 и CT2. Текст CT2 является правильным текстом, а текст CT1 содержит ошибку. Буквы открытого текста можно вычислять непосредственно, как показано ниже, а можно использовать таблицу 7.3.

По CT2: (буква шифрованного текста) - (знак гаммы) на 4-ом месте = буква открытого текста на 4-ом месте, то есть S-F=N.

По CT1: (буква шифрованного текста) - (буква открытого текста) на 4‑ом месте = знак гаммы на 5-ом месте, то есть B-N=O.

По CT2: (буква шифрованного текста) - (знак гаммы) на 5-ом месте = буква открытого текста на 5-ом месте, то есть S-O=E.

По CT1: (буква шифрованного текста) - (буква открытого текста) на 5‑ом месте = знак гаммы на 6-ом месте, то есть H-E=D.

По CT2: (буква шифрованного текста) - (знак гаммы) на 6-ом месте = буква открытого текста на 6-ом месте, то есть H-D=E.

По CT1: (буква шифрованного текста) - (буква открытого текста) на 6‑ом месте = знак гаммы на 7-ом месте, то есть M-E=I.

По CT2: (буква шифрованного текста) - (знак гаммы) на 7-ом месте = буква открытого текста на 7-ом месте, то есть L-I=D.

По CT1: (буква шифрованного текста) - (буква открытого текста) на 7‑ом месте = знак гаммы на 8-ом месте, то есть O-D=L.

По CT2: (буква шифрованного текста) - (знак гаммы) на 8-ом месте = буква открытого текста на 8-ом месте, то есть I-L=X.

Таким образом, получаем часть текста гаммы и сообщения:

Гамма: ...F O D I L

Сообщение: ...N E E D X

Это выглядит вполне правдоподобно.

Задача 7.3.

Доведите до конца начатое выше решение задачи.