Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000261.doc
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
1.3 Mб
Скачать
    1. Одноразовые блокноты

Разработать шифр, который невозможно взломать, на самом деле весьма просто. Методика для этого известна уже несколько десятилетий. В качестве ключа выбирается произвольная битовая строка, длина которой совпадает с длиной исходного текста. Открытый текст также преобразуется в последовательность двоичных разрядов, например, с помощью стандартной кодировки ASCII. Наконец, эти две строки поразрядно складываются по модулю 2 (операция «исключающее ИЛИ», XOR). Полученный в результате зашифрованный текст сломать невозможно, поскольку в достаточно большом отрывке любая буква, биграмма или триграмма будет равновероятной. Этот метод, известный как одноразовый блокнот, теоретически является панацеей от любых атак, независимо от вычислительных мощностей, которыми обладает или будет когда-либо в будущем обладать взломщик. Объясняется этот невероятный факт с помощью теории информации: дело в том, что в зашифрованном сообщении не содержится никакой информации для взломщика, поскольку любой открытый текст является равновероятным кандидатом.

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

С появлением компьютеров метод одноразового блокнота может получить практическое применение. Ключ можно хранить на специальном диске DVD, содержащем несколько гигабит информации. Он даже не вызовет особых подозрений, если его перевозить в коробке от видеокомпакт-диска и в начале даже записать несколько минут фильма. Конечно, в сетях со скоростями передачи данных, исчисляющимися гигабитами, необходимость менять компакт-диск через каждые 30 секунд быстро утомит. Получается, что DVD с одноразовым ключом нужно вручить лично в руки будущему получателю секретного сообщения, а такой подход резко снижает вероятность практического использования метода одноразового блокнота.

    1. Основные принципы криптографии

Все существующие криптографические системы в своей основе построены на двух простых принципах. Первый принцип гласит, что все зашифрованные сообщения должны содержать определенную избыточность, то есть информацию, не требующуюся для понимания сообщения. Поясним это на примере. Представим себе компанию «Домосед», торгующую по почтовым заказам продуктами 60 000 наименований. Радуясь, что им удалось так экономно распорядиться ресурсами, программисты компании «Домосед» решили, что весь бланк заказа будет состоять из 16 байт имени клиента, за которым последует 3-байтовое поле товара (1 байт для обозначения количества и 2 байта для идентификатора товара). Последние три байта было решено закодировать с помощью очень длинного ключа, известного только клиенту и компании «Домосед».

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

Когда эти сообщения прибывают, компьютер компании «Домосед» по имени клиента находит ключ для дешифрации сообщения. К несчастью для компании «Домосед», почти все 3-байтовые сообщения могут восприниматься как достоверные, поэтому компьютер начинает печатать заявки на доставку товаров. Хотя может показаться странным, если клиент заказывает 837 сидений для детских качелей или 540 песочниц, однако вполне возможно, что клиент собирается заняться строительством детских игровых площадок. Таким образом, активный злоумышленник (уволенный сотрудник) способен доставить очень много неприятностей, даже не вникая в смысл сообщений, посылаемых его компьютером.

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

Однако добавление избыточной информации облегчает работу криптоаналитика по взлому шифра. Предположим, что конкуренция в бизнесе почтовых заказов чрезвычайно высока и что главному конкуренту компании «Домосед», фирме «Лежебока», очень хочется узнать, сколько песочниц в месяц продает компания «Домосед». Для этого «лежебоки» подключились к телефонной линии «домоседов». В исходной схеме с 3-байтовыми номерами криптоанализ был почти невозможен, поскольку, предположив значение ключа, криптоаналитик не мог проверить правильность своей догадки. Как-никак, почти все сообщения были технически корректны. С введением новой 12-байтовой схемы криптоаналитик легко сможет отличить допустимое сообщение от недопустимого. Итак:

Криптографический принцип номер 1:

Сообщения должны содержать избыточные данные.

Другими словами, при расшифровке сообщения получатель должен иметь возможность проверить его подлинность путем анализа и, возможно, выполнения несложных вычислений. Избыточность требуется для того, чтобы можно было противостоять попыткам активных злоумышленников обмануть получателя фальшивыми сообщениями, содержащими мусор. Вместе с тем, добавление избыточной информации облегчает пассивным злоумышленникам задачу взлома системы, так что здесь есть определенное противоречие. Кроме того, избыточные данные никогда не должны принимать форму последовательности нулей в начале или конце сообщения, так как при зашифровке подобных сообщений некоторые алгоритмы дают более предсказуемые результаты, что облегчает работу криптоаналитиков. Многочлен циклического избыточного кода (CRC) значительно лучше подойдет для этих целей, чем просто ряд нулей, поскольку получатель сможет проверить его корректность, и это несколько усложняет работу криптоаналитика. Гораздо удобнее использовать криптографические хэш-функции.

Одной из грубых форм избыточности можно считать повторение передачи одного и того же сообщения. Если две пришедшие копии оказываются не идентичными, то можно узнать, что либо канал сильно зашумлен, либо кто-то перехватывает данные. Конечно, отправлять все по два раза — это слишком. Гораздо лучше использовать код Хэмминга или Рида—Соломона для определения и коррекции ошибок.

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

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

Криптографический принцип номер 2:

Необходим способ борьбы с повторной отправкой посланных ранее сообщений.

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