Шифр с открытым ключом

Рассмотрим простенький шифр с открытым ключом, изображённый в приложении № 26.

Из картона или пластика изготавливаются два диска, которые разбиваются на 33 равных сектора (по количеству букв). Диск меньшего диаметра накладывается на диск большего диаметра соосно. По окружности большого диска размещаются все 33 буквы в алфавитном порядке. По окружности маленького диска размещается шкала с цифрами. Центральная клетка шкалы не заполнена, чистая. В нашем примере шкала имеет 33 клетки. Все ячейки шкалы пронумерованы числами от 1 до 16, как влево, так и вправо. Нумерация начинается от центральной (пустой, нулевой) ячейки и продолжается в обе стороны.

В процессе шифрования буква исходного текста заменяется на смешанную трёхзначную группу, состоящую из двух цифр и одной буквы. Двузначная цифровая группа является ключом и указывает – на сколько позиций сдвинут алфавит. Таким образом, в нашем случае для замены каждой буквы выбирается сочетание число-буква из 32 возможных. Чтобы не было путаницы, желательно исключить одновременное попадание в триграф: буквы О и цифры 0, буквы З и цифры 3, буквы Ч и цифры 4, буквы Б и цифры 6.

Требуется зашифровать текст «У агента не должно быть слабых мест». Процесс шифрования следующий. Букву открытого текста находим в алфавите. Поворачивая диски относительно друг друга, кольцо с алфавитом и кольцо с цифрами смещаем так, чтобы шифруемая буква оказалась напротив центральной пустой клетки шкалы. Ключом является случайное, произвольное, смещение алфавита с помощью цифровой шкалы.

Пусть мы решили для шифрования первой буквы применить сдвиг по алфавиту на 1 пункт вправо. Тогда над цифрой 1 (в правой части шкалы) мы видим букву Ф (см. приложение № 26). Первую букву (У) открытого текста заменяем на букву Ф с прибавлением к ней цифровой группы 01, которая указывает шаг смещения.

Вторую букву (А) шифруемого текста ставим напротив центральной ячейки шкалы и произвольно применяем сдвиг, например, на 9 пунктов влево. Тогда над девяткой в левой части шкалы видим букву Ч. Вторую шифруемую букву (А) заменяем на букву Ч, к которой дописываем цифровую группу 09. Алфавит и шкалу можно развернуть в прямую ленту, как показано на рисунке 10.

  Ч Ш Щ Ъ Ы Ь Э Ю Я А Б  
                         

Рис. 10. Шифруется буква А.

Букву Г подводим к центру шкалы и, применяя сдвиг на 5 символов вправо, берём для замены букву З (см. рис. 11).

  Б В Г Д Е Ё Ж З И Й К  
                         

Рис. 11. Шифруется буква Г.

Очередную букву открытого текста (Е), применяя случайное смещение влево, заменяем на триграмму 03В.

Аналогично шифруем остальные буквы исходного текста, произвольно выбирая комбинации букв и двузначных чисел (ключа). Криптограмма может быть такой, как показано на рис. 12.

ОТ У А Г Е Н Т А Н Е Д
ШТ Ф01 09Ч З05 03В 02Л Ы09 Г03 05И Н09 Е01
ОТ О Л Ж Н О Б Ы Т Ь С
ШТ 13В 09Г 02Е 00Н 06И Й09 А05 07Л Е09 07К
ОТ Л А Б Ы Х М Е С Т  
ШТ С06 А00 Н13 Д09 05Р О02 03В 09И Ч05  

Рис. 12. Таблица соответствия

открытого и шифрованного текстов.

Расшифрование происходит в следующем порядке. Первая группа криптограммы - Ф01. Числовой показатель сдвига (01) расположен справа от буквы. Значит, пользуемся правой частью шкалы. Поворачивая кольца с алфавитом и числами, число 1 на правой половине шкалы совмещаем с буквой Ф и над центром шкалы получаем первую букву (У) исходного текста.

Цифры шифрограммы можно искусственно подгонять под какие-нибудь числовые выражения или даты. С целью запутать разведку противника так же буквы шифрограммы можно специально подогнать под читаемый (как бы открытый) текст. Если разделить криптограмму (разбить группы) на две части: числовую (ключ) и буквенную, то последняя будет читаемой (осмысленным текстом), что поставит злоумышленника в тупик.

Шкала, располагаясь по дуге, может иметь не 33, а 21 клетку с нумерацией от 1 до 10 в каждую сторону. Десятые (крайние) ячейки нумеруются нулём. Тогда в шифрообозначениях будет одна буква и только одна цифра. Т.е. используемые для замены составные буквенно-цифровые группы будут не трёхзначными, а двузначными. Шифрограмма будет компактней. Но подгонять шифротекст под читаемый (смысловой) тут вряд ли получится. И выбор для замены каждой буквы будет поменьше, из 20 пар.

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

Шкала может быть пронумерована в одну сторону числами от 0 до 32 (показано в приложении № 27). Но такая нумерация (количество чисел равно количеству букв в русском языке) для потенциального криптоаналитика будет хорошей подсказкой об открытом ключе. В качестве числовой шкалы так же можно применить буквы, расположенные в алфавитном порядке (внутреннее кольцо - приложение № 27) или в случайной последовательности. Для примера зашифруем букву Ч. Находим её на внешнем кольце и совмещаем с буквой А на внутреннем кольце, соответствующей нулевой отметки на числовой шкале. В качестве ключа возьмём букву Х на внутреннем кольце, что равноценно числовому ключу 22, т.е. алфавит сдвинут на двадцать две позиции. Напротив ключа Х из внешнего кольца берём букву шифротекста М. Если работаем с открытым ключом, к букве М дописываем ключ (букву Х или число 22). Таким образом, в шифрограмме будет пара МХ или триграф М22, соответствующие букве Ч открытого текста. Если ключ секретный, то в шифрограмме будет только буква М. Расшифровываем в обратном порядке.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: