Шифром замены
называется алгоритм шифрования, который производит замену каждой буквы открытого
текста на какой-то символ шифрованного текста. Получатель
сообщения расшифровывает его путем обратной замены.
В классической криптографии различают 4
разновидности шифров замены:
-
Простая замена,
или
одноалфавитный шифр.
Каждая
буква открытого текста заменяется на один и тот же символ шифртекста.
-
Омофонная замена.
Аналогична простой замене с единственным отличием: каждой букве открытого текста
ставятся в соответствие несколько символов шифртекста. Например, буква "А"
заменяется на цифру 5, 13, 25
или 57
,
а буква "Б" — на 7, 19, 31
или 43 и так далее.
-
Блочная замена.
Шифрование открытого текста производится блоками. Например, блоку "АБА" может
соответствовать "РТК", а блоку "АББ" — "СЛЛ".
-
Многоалфавитная замена. Состоит из нескольких шифров простои замены.
Например, могут использоваться пять шифров простой замены, а какой из них
конкретно применяется для шифрования данной буквы открытого текста, — зависит от
ее положения в тексте.
Примером шифра простой замены может служить программа ROT13, которую обычно
можно найти в операционной системе UNIX. С ее помощью буква "А" открытого текста
на английском языке заменяется на букву "N", "В" — на "О" и так далее. Таким
образом, ROT13 циклически сдвигает каждую букву английского алфавита на 13
позиций вправо. Чтобы получить исходный открытый текст надо применить функцию
шифрования ROT 13 дважды:
Р = ROT13(ROT13(P))
Все упомянутые шифры замены легко взламываются с использованием современных
компьютеров, поскольку замена недостаточно хорошо маскирует стандартные частоты
встречаемости букв в открытом тексте.
Разновидностью шифра замены можно считать код, который вместо букв
осуществляет замену слов, фраз и даже целых предложений. Например, кодовый текст
"ЛЕДЕНЕЦ" может соответствовать фразе открытого текста "ПОВЕРНУТЬ ВПРАВО НА
90°". Однако коды применимы только при определенных условиях: если, например, в
коде отсутствует соответствующее значение для слова "МУРАВЬЕД", то вы не можете
использовать это слово в открытом тексте своего сообщения, предназначенном для
кодирования.
|