Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Информационная безопасность.doc
Скачиваний:
41
Добавлен:
24.09.2019
Размер:
1 Мб
Скачать
☆

2.3Симметричные криптосистемы

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

2.4Алгоритм Цезаря

Моноалфавитные подстановки – это наиболее простой вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. В случае моноалфавитных подстановок каждый символ исходного текста преобразуется в символ шифрованного текста по одному и тому же закону.

Самый древний алгоритм, предложенный Юлием Цезарем. В настоящее время не может использоваться, так как его криптостойкость чрезвычайно мала.

Идея состоит в следующем: задан алфавит и задан шаг (целое число). Шифрование заключается в замене символа исходного текста на символ, отстоящий в алфавите на шаг вправо. Важно, что алфавит рассматривается как «склеенная в кольцо» последовательность символов, то есть вслед за последним символом алфавита идет снова первый.

Пример. Пусть дан алфавит «аяздкв бмл». Шаг равен 5. Исходный текст «задавака». Тогда результат шифрования: «бвмвавлв».

2.5Алгоритм замены полиалфавитный

Усложнить шифр можно, используя не один, а несколько алфавитов. Алфавиты могут различаться количеством и порядком символов. Очевидно, что во всех алфавитах должны быть все символы исходного текста и, возможно, еще какие-то. Алфавиты перебираются по некоторому закону, который определен ключом или задан в алгоритме. Одному символу исходного текста соответствует один или несколько символов результирующего.

Пример. Пусть дан первый алфавит «аяздкв бмл», второй «яозеадивлкн» и третий «аколд кмзв». Пусть алфавиты используются по очереди. Шаг равен 5. Исходный текст «задавака». Тогда результат шифрования: «бквво лк».

2.6Алгоритм замены с большим ключом

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

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

Но, к сожалению, этот способ неудобен для практического применения. Основная его проблема состоит в том, что для расшифрования требуется заранее некоторым секретным способом передать ключ. И чем больше ключ, тем проблематичнее передача. Можно, конечно, передать не сам ключ, а алгоритм его формирования. Но тогда этот алгоритм должен быть секретным.

Так, например, криптокарта Forteza, используемая агентами национальной безопасности США, базируется на том, что и отправитель и получатель одновременно генерируют одинаковый ключ, пользуясь неким аппаратным средством.

Можно предложить схему с одноразовым блокнотом, применяющую алгоритм Диффи-Хэлмана для генерации очередного секретного ключа. Алгоритм будет рассмотрен ниже.

Пример 1. Пусть дан алфавит «аяздкв бмл». Ключ, то есть множество шагов: 1, 5, 3, 7, 2, 6, 4, 1, 7, 3, 3. Исходный текст «задавака». Тогда результат шифрования: «дв бб мя».

Пример 2. Пусть дан алфавит «аяздкв бмл». Задан ключ, то есть алгоритм его вычисления: для шифрования первого символа берется шаг, равный 2, а для каждого последующего – шаг, равный остатку от деления на 10 кода предыдущего исходного символа (номера в таблице ASCII). Исходный текст «задавака». Коды «з» - 231, «а» - 224, «д» - 228, «в» - 226, «к» - 234. Тогда результат шифрования: «ккякякмк». Т.к. здесь результат шифрования зависим от исходного текста, то такой алгоритм можно отнести к блоковым.