Криптозащита и безопасные коммуникации
Шифрование с помощью ключа
Процесс шифрования с помощью ключа рассмотрим на конкретном примере.
Предположим, нам нужно зашифровать открытый текст "Привет Вася" с помощью простейшего алгоритма - замены букв их номерами в алфавите. В результате мы получим зашифрованный текст вида: 17 18 10 3 6 20 3 1 19 33. Очевидно, что если посторонний узнает алгоритм шифрования, то использовать его в дальнейшем будет невозможно.
Этого несложно избежать, если использовать шифрование с ключом. Для того чтобы пояснить суть процесса шифрования с ключом, приведем простой пример (рис. 10.2).
Выпишем буквы текста и под ними запишем их номера в алфавите. Третьей строчкой запишем буквы ключа, повторяя это слово на всю строку. Под буквами ключа запишем их номера в алфавите, а в четвертой строчке запишем сумму, которая и будет зашифрованным сообщением: 20 19 29 36 и т.д.
Зная ключ и алгоритм, легко расшифровать сообщение: 20 - 3 = 17, а 17-я буква алфавита - это "П" и т.д. Даже если злоумышленнику известен алгоритм, но неизвестен ключ, прочитать сообщение без длительной процедуры подбора ключа невозможно. Таким образом, один алгоритм можно использовать со многими ключами для разных каналов связи, закрепив за каждым корреспондентом отдельный ключ.
Чем длиннее ключ шифра, тем больше потребуется переборов различных комбинаций при расшифровке и тем, соответственно, сложнее раскодировать сообщение.
Шифрование с симметричным ключом
Рассмотрим конкретный пример: пусть корреспонденты А и В пишут друг другу письмо (рис. 10.3). Каждый имеет свой секретный ключ (определенный секретный код), который можно использовать для шифрования данных перед отправкой в Сеть. Для того чтобы нагляднее изобразить схему шифрования, будем пользоваться пиктограммами (рис. 10.2), т.е. изображать ключ в виде обычного ключа, а зашифрованное сообщение - в виде документа, заклеенного в конверт. Тогда процесс шифрования и расшифровки можно представить в виде, показанном на рис. 10.3.
Пользователь А зашифровывает сообщение своим секретным ключом, отсылает сообщение по Сети, а получатель В (пользуясь таким же секретным ключом) расшифровывает сообщение. Если посмотреть на рисунок, нетрудно убедиться, что схема симметрична. Левый и правый пользователи применяют одинаковые (симметричные) ключи, поэтому данный вид шифрования получил название шифрования с симметричным ключом.
Метод шифрования с секретным ключом имеет определенные недостатки. Прежде всего, симметричное шифрование не позволяет решить проблему аутентификации. Например, А может написать письмо некоему третьему лицу С и заявить, что это сделал В.
Кроме того, симметричный ключ должен быть установлен на компьютер отправителя и получателя до обмена секретными сообщениями. Очевидно, что шифрование для безопасного общения в Интернете имеет смысл в том случае, когда корреспондентам не нужно встречаться лично. Проблема возникает при передаче секретного ключа. Действительно, если А передаст В секретный ключ в незашифрованном виде, его могут перехватить. Если ключ послать в зашифрованном виде, то В не сможет его получить. Для переписки с несколькими корреспондентами необходимо иметь по одному ключу на каждого корреспондента, что неудобно. Для того чтобы решить эти проблемы, была предложена схема асимметричного шифрования (шифрования с публичным ключом).